BSNES 0.20


Total votes: 41

bsnes is an emulator that began development on 10/14/2004. The purpose of the emulator is a bit different from other emulators: it focuses on accuracy, debugging functionality, and clean code.

The emulator does not focus on things that would hinder accuracy. This includes speed and game-specific hacks for compatibility. As a result, the minimum system requirements for bsnes are quite high. Excluding unemulated special chips, there is only one known bug in all SNES games ever released.

The emulator itself was not derived from any existing emulator source code, such as SNES9x. It was written from scratch by myself. Any similarities to other emulators are merely coincidental.


* Added blargg's new S-DSP emulator, runs at 1.024mhz. Many thanks to blargg for this, as this puts all portions of SNES emulation except for the S-PPU at bus-accuracy
* blargg's S-DSP core fixes bugs in both Koushien 2 (J) and Toy Story (U)
* Corrected all S-SMP cycle timings to be hardware accurate. Thanks to blargg for creating an amazing test ROM that tested every possible opcode
* Corrected S-CPU wai instruction timing, fixes Mortal Kombat II
* Reverted HDMA sync emulation once more to fix Breath of Fire II (G) and Secret of Mana (U)
* Completely rewrote user interface to use libui, which is a wrapper that allows the same code to produce the same UI on both Windows (through the Win32 API) and Linux (through the GTK+ API)
* Corrected $2100.d7 OAM reset behavior, thanks to research from anomie
* Massively revamped the Linux port, should compile with no warnings or errors now
* Added 64-bit support to libco, tested on FreeBSD/amd64, should work on Linux as well
* Revamped makefile with suggestions from Nach
* Improved Linux Xv renderer to use the far more common YUY2 format, which should work on most Xorg drivers, allowing hardware accelerated video scaling
* Completely rewrote config file system. bsnes.cfg is now saved to user's profile folder on both Windows and Linux, allowing multi-user support
* A lot more work has been done behind the scenes, including massive code cleanups and portability improvements