NanoBoyAdvance v1.8.0 is released. NanoboyAdvance is a Nintendo Game Boy Advance (TM) emulator written in C++17. The goal is to create a minimal, accurate and reasonably efficient Game Boy Advance emulator in modern C++. The emulator implements the core hardware completely and with high accuracy. Almost all games can be emulated without any known issues, even the ‘Classic NES’ titles which abuse a variety of edge-cases and undefined behaviour.
nanoboyadvance Features:
* very accurate GBA emulation
* RTC emulation
* high quality audio rendering
* game controller support
* basic GLSL shader support
* lightweight: minimal, configurable SDL2 frontend
nanoboyadvance v1.8.0 changelog:
UI: implement “Sharp” video filter for better nearest interpolation at non-integer scales (thanks GranMinigun)
UI: implemented PPU viewers for palettes, tiles, backgrounds and sprites
UI: add an option to set the audio volume
UI: do not unpause emulator after loading a new ROM
Input: fix input dropping regression introduced in NBA 1.7.1
Input: move from SDL game controller to SDL joystick API (fixes broken mapping on some controllers)
APU: MP2K HLE: interpolate envelopes and use floating-point math
APU: MP2K HLE: implement a better reverb algorithm
APU: MP2K HLE: add an option to force-enable reverb
APU: remove “Zombie” mode emulation (does not appear to exist on GBA)
APU: fix mid-note envelope frequency changes
APU: FIFO writes should happen in place
APU: reset FIFOs on overflow
APU: add master-enable checks for 16-bit/32-bit IO writes
PPU: fix sprite pixels from previous scanline displayed in the last scanline
PPU: more accurate update of attribute buffer for OBJWIN sprites (fixes #275)
PPU: more accurate emulation of horizontal and vertical sprite mosaic (fixes #322)
PPU: more accurate handling of mid-frame vertical mosaic reconfiguration
PPU: fix out-of-bounds bitmap fetches in Mode 3 to 5
DMA: fix incorrect mapping of DMA channel to APU FIFO
Timer: somewhat handle timer overflow during one cycle enable delay (thanks alyosha)
Game Pak: simulate ~6 ms EEPROM device busy period after write (not yet accurate to cartridges that e.g. have been in the freezer for 30 minutes)
Game Pak: emulate the Mask ROM internal address register
Audio: fix clicking artifacts when using Sinc resampling
Audio: fix incorrect liner interpolation in Cosine resampling
PlatformCore: fixed hang when fast-forwarding while the emulator is paused
Misc: implemented support for unicode paths