What's new



Project Page: https://github.com/fleroviux/NanoBoyAdvance
Project Name: NanoBoyAdvance


I've just released version 1.2 of my Game Boy Advance emulator (this is the second official release).
The emulator has been around for a few years but only recently I felt comfortable actually releasing anything.

This emulator focuses on being lightweight, accurate and somewhat efficient while keeping the code readable.

Emulation right now is quite accurate, passing all known CPU tests and many other tests.
I've put a lot of effort particularly in accurate timing emulation, including the GamePak prefetch buffer.
The emulator also is relatively fast (though not as ludicrously fast as mGBA or VBA).

There still are a few games with known issues that I will work on for the next release :p


Last edited:


[MENTION=29958]NES_player4LIFE[/MENTION] thanks for the sticky!

I just released version 1.3 of my GBA emulator.
Notably this is the only software emulator to fully pass the AGS aging cartridge (a hardware test cartridge from Nintendo),
and overall was the first emulator to fully pass it before the Mister FPGA GBA core managed to pass it as well.
With the update the emulator also moved even more towards accurate timing emulation.
It can now handle hardware events on the bus cycle level and DMAs can overtake the bus on any bus cycle (mid-instruction).


- ARM: handle CMP, CMN, TST and TEQ with rD = 15
- ARM: handle mode switches when the register bank does not change.
- ARM: removed errorneous user-mode switch from LDRT/STRT opcodes.
- DMA: allow DMAs to take priority over the CPU in the middle of an instruction
- DMA: delay DMA startup by two cycles and account for 2I internal cycles
- DMA: force ROM accesses to increment source address mode
- DMA: respect source address mode setting for FIFO DMA
- DMA: force FIFO DMA to use word sized accesses
- DMA: handle manual disable (via enable flag) more gracefully
- Timer: respect cascade flag in sample rate calculation
- APU: emulate DAC enable bits (fixes #64)
- PPU: match WIN0/1 trigger logic to hardware (thanks @destoer)
- PPU: fix H-blank IRQ timing (once again)
- PPU: better handle internal affine registers when multiple BG modes are used in a single frame.
- PPU: handle invalid BG modes 6 and 7 (thanks @LadyStarbreeze)
- PPU: update internal affine & mosaic registers at the start of H-blank, not at the end.
- MMIO: do not fallthrough on SOUNDBIAS writes (fixes #125)
- Keypad: implemented keypad IRQ (thanks @destoer)
- Serial: implemented a serial IRQ stub
- SDL: always call glewInit() (fixes #129 )
- SDL: use binary directory as current working directory