jgnes - Windows  jgnes - Linux  jgnes (Source)

What's New:

- Additional mappers implemented:
  * Namco 108 (iNES mapper 206); used in multiple games including Pac-Mania and Gauntlet (unlicensed version)
  * Namco 108 variant w/ 128KB CHR ROM (iNES mapper 88); used in 3 games including Dragon Spirit: Aratanaru Densetsu
  * Namco 129 / 163 (iNES mapper 19), including Namco 163 expansion audio; used in multiple games including Digital Devil Story: Megami Tensei II
  * Namco 175 / 340 (iNES mapper 210); used in multiple games including Splatterhouse: Wanpaku Graffiti
  * NAMCOT-3425 (iNES mapper 95); used only in Dragon Buster
  * NAMCOT-3446 (iNES mapper 76); used only in Digital Devil Story: Megami Tensei
  * NAMCOT-3453 (iNES mapper 154); used only in Devil Man
- Additional mapper features implemented:
  * Konami VRC7's FM synthesizer chip is now implemented; this chip was only used in Lagrange Point. (The JP version of Tiny Toon Adventures 2 uses the VRC7 board but doesn't use the audio chip)
  * The VRC7 implementation additionally will now work properly with older ROM dumps that don't specify an NES 2.0 submapper
- In the native GUI app, most options can now be changed while a game is running
  * Input bindings notably cannot be changed while a game is running, for the moment
  * Renderer (SDL2/wgpu) and wgpu backend also cannot be changed while a game is running
- Implemented fast forward with a configurable speed multiplier
- Implemented rewind with a configurable rewind buffer length (10 seconds by default)
- Removed the Adaptive VSync option because it isn't supported on any computer I was able to test on, including Windows with an Nvidia GPU. Fast VSync option is still present and is supported on common configurations
- Web frontend changes:
  * Implemented input reconfiguration instead of having hardcoded key bindings
  * Changed the canvas to display random white noise instead of nothing at all before the first ROM file is loaded
  * Reduced the audio sync threshold to hopefully reduce audio lag at >60Hz refresh rates, although animation is unfortunately still somewhat choppy at high refresh rates
  * Added a button to upload a save file for the currently running game (for games with persistent save files, e.g. the Zelda games)
  * Made some minor tweaks to bring focus back to the emulator after clicking on certain UI elements, such as the Reset button
  * Changed the 'Open ROM file' button text to 'Open NES ROM file'
- Fixed a very minor logging bug where the TRACE log message indicating that an address low byte overflow occurred during an absolute indexed read instruction was logged unconditionally instead of only logging when overflow occurred