- Added GZ / ZIP / JMA archive support [Nach, NSRT team]
- Fixed bug in APU ADDW/SUBW opcode flags, thanks to DMV27, anomymous for info
- Mosaic support is now (mostly) hardware accurate, thanks to TRAC for info
- Fixed a bug in SC tilemap clipping, fixes Seiken Densetsu 3
- Emulated pseudo-hires mode, uses a fairly poor color filter to simulate TV effect, the same one that SNES9x and Super Sleuth use
- Rewrote the ROM loading code to be more port-friendly, and improved header detection
- Added C4 emulation -- mostly correct. Only minor bugs remain, possibly not C4 related [Nach, byuu], also uses code from zsKnight, Overload, and anomie
- Fixed noise channel generation for DSP, fixes Dual Orb 2 opening. Thanks to DMV27 for info
- Fixed bug with DSP VxSRCN registers, fixes horrible sound corruption in Mortal Kombat 2/3
- Modified DSP KON register reading to act according to anomie's research, while still allowing Der Langrisser, etc. to play sounds correctly
- Fixed a bug in CPU BCD math, fixes numbers in SimEarth, thanks to DMV27 for info
- Rewrote the windows port from scratch
- -- Added triple buffering support (buggy)
- -- Added DirectInput (joypad) support, allows both keyboard and joypad to be mapped to the same SNES controller button. Only one controller supported for this release, will be improved shortly
- -- Added pause key (mapped to Pause/Break)
- -- bsnes no longer consumes CPU time when paused or when no ROM is loaded
- -- Updated DirectDraw to 7, and added video mode configuration options to configuration file
- -- Video modes can specify screen width+height, refresh rate, and render width+height
- -- Added CTRL+[1-0] hotkeys for swapping video modes
- -- Added +/- hotkeys for adjusting frameskipping rate
- -- Added adjustable speed regulation. There are five modes, all can be adjusted inside the configuration file. CTRL+[+/-] will adjust the speed mode.
- -- Added PPU options to toggle any BG / OAM layers with any priority, HDMA effects, and offset per tile effects
- -- Added option to accept invalid button combinations (up+down, left+right) to joypad config menu
- -- bsnes now properly clears the main window when unloading games
- [code] Made destructors for base classes virtual, so the correct destructors will be called now
This version adds speed regulation, greatly improves PPU rendering, and increases speed by ~30% over the previous version.
Changelog:
- Rewrote offset-per-tile mode emulation, should be correct now. Fixes Chrono Trigger, Contra III, Tetris Attack, etc.
- Fixed a bug with HDMA occuring during interrupts. Fixes Tales of Phantasia souond test screen
- Updated compiler to Visual Studio 2005, and enabled profile guided optimizations
- Added conditional compilation of debugging functions (faster without them)
- Added conditional compilation of core classes as pointers (allowing polymorphism) or objects (allowing inlining). The latter results in a speed increase
- Small fixes to BG and OAM rendering routines
- Corrected sprite tile bounds wrapping
- Corrected sprite rendering in hires video modes
- Rewrote color add/sub routines, should be correct now. Fixes Illusion of Gaia menu, etc.
- Optimized video blitting routines, will temporarilly break mixed video mode screenshots
- Prevented selecting menu options via return key from being recognized as keypresses by the emulator
- Added system speed regulation (60hz/NTSC or 50hz/PAL)! Many thanks to kode54, GIGO, and Richard Bannister for their assistance
I disabled the debugger and polymorphism, and enabled profile guided optimizations for this build, to maximize speed. The debugger and polymorphism can be re-enabled via uncommenting the respective #defines in src/base.h and recompiling, or bsnes v0.013 can be used. I may start releasing two separate builds in the future... not sure yet.
- Greatly improved HDMA timing and accuracy with help from anomie and DMV27 -- fixes bugs in Energy Breaker and Street Fighter Alpha 2
- Fixed a problem with color add/sub code -- fixes opening battle in Tales of Phantasia and clouds in Energy Breaker
- Temporarily added DMV27's bugfix for the DSP KON register -- fixes sound in Der Langrisser, but this is not a hardware-accurate fix
- Disabled VRAM writes outside of vblank -- fixes Hook, but breaks many PD ROMs and fan translations (Roto's BS Zelda hack, Gideon Zhi's Ys 4 translation, etc). I might add an option in the future to toggle this behavior, but for now these games will no longer work. Please keep in mind these games will not run properly on real SNES hardware, either.
- Improved frameskipping code thanks to a suggestion from Richard Bannister
- Misc. other code cleanups and improvements (notably in the color table generation code)
- bsnes is now endian-safe and runs on Mac OS X
- Added caching support for window clipping tables resulting in a slight speedup. Please let me know if you spot any errors as a result of this change.
Changelog:
- Added S-DSP emulation
- Added sound output support via DirectSound -- no sound buffering though, so sound is muted by default
- Added option to record raw sound output to WAV files
- Added multiple color adjustment filters to the video output
- Added mode3/4 direct color support
- Added mode7 direct color and mosaic support
- Greatly improved mode7 rendering algorithm thanks to anomie
- Fixed mode7 screen repitition and EXTBG effects
- Greatly increased accuracy of NMI and IRQ timing, and emulated many newly discovered hardware quirks involving the two
- A few speed improvements courtesy of Nach for profiling the code for me
I'm now looking for assistance with sound buffering. Specifically, I need help modifying the DirectSound code to allow the emulator to be ran between 50%-400% normal speed, while keeping the sound output relatively good. If you have experience with this and can help, please get in touch with me (setsunakun0 at hotmail dot com).
- Fixed Mode 0 color palette index problem. Fixes ToP, DQ5, etc.
- Improved LoROM memory mapper to support 32mbit images. Fixes Tokimeki Memorial, etc.
- Added full S-DD1 support, SFA2 and Star Ocean are now playable. Special thanks to Andreas Naive
- Updated BGnxOFS / Mode7 registers with anomie's latest findings
- Added basic ROM mirroring support. Fixes copy protection issues in MMX, etc.
- Rewrote string library to work better on gcc/linux
- Cleaned up S-RTC/S-DD1 emulation to make way for future add-on chip emulation
- Rewrote DMA code, now runs cycle-by-cycle
- Rewrote HDMA code, now allows HDMA to be enabled mid-frame, fixes many games
- Fixed a bug in Mode7 vertical screen flip mode. Fixes FF5 title screen, etc.
- Greatly improved IRQ triggering. Fixes Der Langrisser, etc.
- Added full support for open bus. This includes PPU1 and PPU2 open bus support
- Modified CPU core back to cycle-based system. Slower, but improves debugger
- Implemented temporary fix for debugger to handle new cycle-based cores
- Modified CGRAM to ignore highest bit, since it is not used at all by the SNES, and is impossible to read on real hardware. Lowers memory usage by ~1.2mb
- Added mostly accurate PAL timing support. This should increase compatibility by ~30% or so
- More stuff I'm forgetting at the moment...
bsnes now supports SPC700 emulation (no DSP or sound support, however), and has greatly improved compatibility. It also now contains a keyboard-only joypad configuration tool.