New/Improved Features

  • Conditional r/w/rw debugger watchpoints
  • Added the “!=” operator to the debugger
  • Redefined the debugger input and output syntax, being more consistent with RGBDS
  • Debugger now reads .sym files (Tested with 3 popular formats). It shows symbols when possible, and allows using them in expressions
  • Debugger data types can now be either 16-bit values, or 25-bit full addresses that include a bank identifier
  • Debugger commands and expressions support full addresses as parameters. This allows, for example, breaking on an address on a specific ROM bank, or reading a value from a specific MBC RAM bank.
  • Some debugger commands may now run without breaking the debugger. (Similar to LLDB or GDB’s async mode)
  • SDL port now supports save states
  • Improved performance by about 6% by enabling link-time optimizations
  • Reduced file size by stripping executables
  • Several Cocoa-only UX improvements:
    • Prevented being paused “twice” (Both by the pause option and the debugger)
    • Optional proportional resizing
    • Proper fullscreen support
    • Mouse cursor is now hidden while running

Accuracy Improvements/Fixes

This version includes major accuracy improvements, which allow it to pass 54 tests out of mooneye-gb’s 58 acceptance tests (2 of which fail due to not including the original boot ROM); more than any other emulator.

  • Rewritten MBC support, with MBC1M support (Fixing some N-in-1 cartridges)
  • Major accuracy improvements to OAM DMA.
  • Corrected a lot of instruction memory-access timings
  • Corrected some IO register masks
  • Major accuracy improvements to timers (TIMA/DIV)

Bug Fixes

  • Corrected operator priorities in the debugger
  • Fixed a bug where a breakpoint might have been ignored
  • Reduced CPU usage when running games with a real time clock
  • Handling ^C and ^D more sanely in SDL port
  • Fixed memory leak in Cocoa

Misc Internal Changes

  • Added infrared API, but it is not actually used by any of the GUIs
  • Fixed build system bugs that caused needless dep file generation, and made the Cocoa build fail sometimes if SDL is not installed