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 register in some CPU instructions. Clearing all 8 bits of the register can be faster than only clearing multiple specific bits in the register.f
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
New Contributors
@RobLoach made their first contribution in #94
@lesleyrs made their first contribution in #99
@ccawley2011 made their first contribution in #104
Binaries
The attached binaries are Release builds with debug symbols attached.
Action Keyboard Joypad
A z A
B x B
Start Return START
Select Backspace BACK
D-Pad Arrow Keys DPAD
Repeat A a
Repeat B s
Normal Speed 1
Turbo x2 (Hold) Space
Turbo X2 (Toggle) 2
Turbo X3 (Toggle) 3
Turbo X4 (Toggle) 4
Reset r
Change Palette p
Reset Palette Shift + p
Fullscreen F11 / f
Frameskip (Toggle) o
Interlace (Toggle) i
Dump BMP (Toggle) b