Category: SNES

bsnes is a Nintendo, Super Nintendo, and Game Boy Color emulator, that began development on 2004. It focuses on accuracy and clean code above all else. It never uses speed or compatibilty hacks. As a result, the minimum system requirements are greater than with other emulators.



Here're release notes for v088 :
As promised from the last news update, this release adds preliminary Game Boy Advance emulation. It's not perfect by any means, but it's one of the better first releases I've put out. It emulates all GBA functionality with the exception of the link cable and ROM prefetch buffer, although being a first release, there are bound to be plenty of bugs lurking in the core. I'd of course love some help with bugfixes, if anyone is interested =)

It's important to note that the GBA emulation has not been optimized yet. The GBA is a more demanding system than the SNES, by way of a much faster CPU core and higher frequency audio. You can expect about ~150fps on average with a Core i7-class CPU for now, but please note that I do intend to improve upon this performance in future releases.

For a bit of backstory: this is basically a byproduct of SNES ST018 emulation. This processor ended up using an ARMv3 CPU core. And since the GBA uses an ARMv4 CPU core, it seemed like a good choice: we could improve the ARM emulation for the ST018, and emulate the final 2D-based Nintendo system.

In the end, it turned out to be harder than expected: it took about a month to complete the emulation core, and it was only this quick due to extensive help from Cydrak; who fixed numerous CPU bugs, emulated the affine and bitmap rendering modes, and also implemented the new GBA FIFO audio channel, among other things.

On a side note, thanks to Cydrak and krom's hardware testing, we do have a nice milestone right out of the gate: proper OBJ mosaic emulation, which seems to be a first. At the very least, hopefully this will be helpful to other emulators.

Note that you will need the GBA BIOS image to use this. There will not be any high-level emulation of the BIOS functions for obvious reasons. Name the file "bios.rom", and place it inside the "Game Boy Advance.sys" folder.

Check out project website for latest files and informations.