jgnes - Linux
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.
* Cycle-based 6502 CPU emulation, PPU emulation (graphics), and APU emulation (audio)
* The most commonly used cartridge boards (aka mappers)
- NROM
- The most common NROM variants (UxROM / CNROM / AxROM)
- MMC1
- MMC3/MMC6
* Some less commonly used cartridge boards
- MMC2/MMC4
- MMC5 including expansion audio
- Konami VRC2 / VRC4 / VRC6 / VRC7, including VRC6 expansion audio
** VRC7 FM synth expansion audio is not implemented; only one game used it, Lagrange Point
- Sunsoft 5A / 5B / FME-7, including 5B expansion audio
- Codemasters unlicensed board
- Color Dreams unlicensed board
- Bandai FCG-1 / FCG-2 / LZ93D50
** The LZ93D50 variant that uses the Datach Joint ROM system is not implemented (iNES mapper 157)
- Jaleco JF-11 / JF-14
- GxROM
- BNROM
- NINA-001
* P1 & P2 input with support for keyboard input and DirectInput gamepad input
* Support for 3 different forced aspect ratios (NTSC, 1:1 pixel aspect ratio, 4:3 screen aspect ratio), plus an option for stretched/none
* Overscan customization
* A GPU-backed renderer based on wgpu with an option for integer upscaling + linear interpolation, producing a sharp but clean image even at higher resolutions and non-8:7 aspect ratios
* Save & load state