Releases with ports for two or more operating systems.
- Details
- Category: Multiple Platform
What's New:
playmode
- improved rendering stability
* applies when monitor is similar in refresh rate to emulated TV
- opengl VSYNC "immediate updates" will synchronise with timer
* this may improve performance on some systems
- improved sharpen shader, removing ugly graphical artefacts
* artefacts were particularly noticeable in games with flicker kernels
screenshots
- added new composite screenshot mode
* composite is very good at capturing motion on the screen
* activated with CTRL-F12
- other screenshot modes renamed to 'single' and 'motion'
* activated with F12 and SHIFT-F12 respectively
cartridges
- added SCABS bank switching method
ROM select window
- thumbnailer shows a smoother image
plusrom
- fixed issue with rewind "boundaries" being inserted too often
* reading from the network queue would insert a boundary
* a boundary is only needed when data is sent to the network
bug fixes
- using right mouse button to capture mouse for paddle input no longer interferes with context menus for any open windows
- Details
- Category: Multiple Platform
What's New:
OSD: no more unwanted debug info
Fix ACSI command wrongly interpreted as SCSI
Adjust MFP timer reading timing (Lethal Xcess, broken again!)
- Details
- Category: Multiple Platform
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
- Details
- Category: Multiple Platform
What's New:
Added
- Implement a experimental libretro port.
- Add thumbnails to ROM list UI.
- Increase interpreter performance by 4 times.
- Implement a dynamic recompiler, a.k.a. JIT compiler, which is 70% faster than the interpreted version. But the recompiler is not very optimized yet. It is only targeting x64.
- Delta-compress rewinding's save states.
Changed
- Renamed packages from using _ to -, like from gameroy_native to gameroy-native.
Fixed
- Replace poorly maintained OpenGL backend by glutin.
- Fix resizing in Wayland.
- Fix bench command's "times faster" calculation.
- Details
- Category: Multiple Platform
What's New:
- Fix Win64 Dynapro issues (O_BINARY, setvbuf was causing a crash).
- Fix a KEGS bug in the Bank $E0 memory map which could corrupt data in the Apple IIgs memory from $E0/6000 - $E0/A000.
- Actual Win32 support. 1.24 was only Win64.
- Details
- Category: Multiple Platform
What's New:
- Tilt controls: Restore "Low end radius" control
- Android: Restore the ability to choose "display" (hardware scaler) resolution
- Improve the workarounds for the DJ Max games
- Android: Fix running some file formats directly from the Downloads folder
- OpenGL: Restore most of the lost performance on low-end hardware from the shader variant reduction
- Add a simple profiling tool to check CPU usage by the GL backend
- Loader: Fix bug preventing WWE 2009 from starting
- Misc minor fixes and optimizations
- Details
- Category: Multiple Platform
What's New:
The only difference between 2.4.1 and 2.4.2 is a compilation fix for UNIX systems, so the Windows version has not been updated
- Details
- Category: Multiple Platform
What's New:
- Additional mappers implemented:
* BNROM (iNES mapper 34)
* NINA-001 (also iNES mapper 34)
* GxROM (iNES mapper 66)
* Jaleco JF-11 / JF-14 (iNES mapper 140)
* Bandai FCG-1 / FCG-2 (iNES mapper 16, submapper 4)
* Bandai LZ93D50 w/ X24C01 EEPROM chip (iNES mapper 159)
* Bandai LZ93D50 w/ X24C02 EEPROM chip or no writable memory (iNES mapper 16, submapper 5)
* Bandai LZ93D50 w/ 8KB SRAM (iNES mapper 153)
- Additional mapper features implemented:
* Konami VRC6 expansion audio is now slightly amplified linearly; before this change, audio output from this mapper was very quiet compared to the builtin APU audio and other boards with expansion audio
- Web frontend made much more featureful:
* Allow loading different ROM files without needing to refresh the page
* Add a reset button
* Add aspect ratio (NTSC / Square pixels) and image filtering options (Nearest neighbor / Linear 1x/2x/3x); the linear 2x/3x options are implemented using CPU scaling because WebGL does not support GPU compute shaders
* Implement audio using the AudioWorklet API
* Implement audio sync to prevent the emulator from running too fast on high refresh rate displays
* Implement persistent save files using local storage, and add a button to download the save file for the currently running game
* Fix window scaling so that the window size accounts for DPI scale factor
* Disallow opposing directional inputs to be pressed simultaneously (left+right or up+down); allowing these can cause severe glitches in some games (e.g. Zelda 2 and Battletoads). If opposing inputs are pressed simultaneously, left/up will be sent to the emulated NES rather than right or down
* Add a .nes file filter to the file picker dialog (previously there was no filter at all)
* When the page is loaded, hide the UI and display "Loading..." until the WASM is loaded and all event listeners are added
- Add an option to all frontends to allow silencing the triangle wave audio channel when it is outputting waves at ultrasonic frequencies, which can reduce audio popping in some games (e.g. Mega Man 2)
- Enable link-time optimizations for published release builds to significantly reduce executable binary sizes
- Implement a hack to fix the GUI scaling factor from defaulting to 4.5 on the Steam Deck, which made the GUI completely unusable
- A few minor performance improvements:
* Refactor audio downsampling code to avoid needing to do floating point multiplications and divisions on every emulated CPU cycle
* In the PPU code, add a bit set storing which pixels contain any sprites to avoid needing to loop over all sprites on the scanline on pixels that don't contain any sprites
* Change the square wave channel sweep units to only recompute the target period when one of their inputs changes, either the sweep config or the phase timer period
- Details
- Category: Multiple Platform
A cross-platform NES emulator. Has a native frontend built using SDL2 as well as a web frontend that compiles to WASM and runs in the browser.
- Details
- Category: Multiple Platform
What's New:
- Controls: SOCD Resolution Options
- Diagonal Correction: SOCD Defaults to Last Input for X & Y
- GGPO: Increase Protocol Version
* Prevents players from connecting if they are on different versions. Prevents desyncs.
- Remove Diagonal Correction as Default, Keep as Toggle
- Fixed Frequency: Demolish Fist, Force Audio Sync
- Linux: Copy arcade flash memory from shared dir if available
- Linux: Prepare for Linux packing, distinct binary name
* In preparation for Arch Linux build scripts. Cleanly compiles and does not conflict with flycast package in AUR.
- Details
- Category: Multiple Platform
What's New:
- updated Nintendo Switch database includes Legend of Zelda: Tears of the Kingdom!
- Details
- Category: Multiple Platform
What's New:
- PPU: disallow out-of-bounds BG VRAM tile fetches and return open bus (fixes #298)
- Core: do not skip to the next event if the CPU woke up during a DMA (fixes #297)
- KeyPad: always request IRQs from the emulator (not the calling) thread (fixes #290)
- GameDB: fix entries for a bunch of Classic NES and Famicom Mini titles (fixes #302)
- IO: do not enter STOP mode when it is not implemented
- mGBA log: clear the message buffer after printing the message
- mGBA log: flush STDOUT after each message
- Catch fmt::system_error when fmt::print() fails to write to STDOUT (fixes #301)