Peanut-GB est un émulateur dédié aux développeurs basé sur Greg’s GameBoy Emulator. En effet, tout le code est inclus dans un unique fichier et propose une API permettant de l’utiliser.
Pour l’heure, il émule la GameBoy (DMG) avec le soucis de la performance plutôt que de la précision.
Plusieurs exemples d’utilisation sont fournis dont un en SDL, ce qui en fait un émulateur prêt à l’utilisation pour les non développeurs.
Les nouveautés sont:
Highlights
– Add automated testing for LCD emulation. This is checked when a pull request is made.
– Fixed LSDJ not working due to MBC5 RAM bank switching not emulated correctly.
– Fixed a bug in the LCD emulation whereby the LCD was in HBlank state rather than OAM Scan after VBlank. This fixed an issue with Final Fantasy Legend III crashing on entering a battle, and the flickering in Prince of Persia (#73)
– Fixed Final Fantasy Legend III not starting because Peanut-GB was not starting the APU when a bootrom was not being used.
– Fixed Dragon Quest III, whereby halting the CPU with no interrupts enabled would cause Peanut-GB to infinite loop (#83)
– Added list of projects that use Peanut-GB to README
– Minor optimisation in the setting of f register in some CPU instructions. Clearing all 8 bits of the register can be faster than only clearing multiple specific bits in the register.
– Use of macros to remove repetitive code in similar CPU instructions.
– Improve emulation speed by counting the duration of time that the LCD is switched off
– Improve RTC emulation accuracy (still not perfect)
– Add repeating A and B keys to peanut-sdl by @lesleyrs in #97
– Use SDL_HINT_WINDOWS_DPI_AWARENESS only if it’s available by @RobLoach in #94
– Demonstrated support for Windows 3.11 with Win32s and Windows NT 3.1
– Fixed MBC3 RTC on cartridges with no RAM.
– Minor optimisations.
– Added a basic graphical UI debugger.
– Further improvements to overall emulator stability and other minor adjustments have been made to enhance the user experience.
API
– PGB_DEPRECATED macro is added to mark deprecated functions.
– gb_tick_rtc() is deprecated. The RTC is now ticked internally by Peanut-GB automatically. This will be removed in v2.0.0.
– Deprecate non-portable joypad_bits bitfield by @ccawley2011 in #106
Other changes
– Added PGB_LIKELY() and PGB_UNLIKELY() macros.
– Fixes to minifb by @lesleyrs in #99
– Fix warning due to RTC_CYCLES cast by @ccawley2011 in #104
– frontends: Fix parameter types in lcd_draw_line by @ccawley2011 in #105
– Use bool for bitfield values by @ccawley2011 in #103
– Add GB_INIT_INVALID_MAX by @ccawley2011 in #115
– Update SDL2 in peanut-sdl to v2.32.4.
– Fix incorrect free in debugger