jgenesis v0.7.1 is released. Cross-platform multi-console emulator supporting a number of 8-bit and 16-bit gaming consoles: Sega Genesis / Sega CD / SNES / Master System / Game Gear emulator.
jgenesis v0.7.1 Changelog:
Summary: CHD support for Sega CD, AppImage builds for Linux, and a bunch of minor fixes/improvements (mostly SNES bugfixes) that have accumulated since the 0.7.0 tag
Features
(Sega CD) CHD files are now supported in addition to CUE/BIN files
(Sega CD) Added an option to load the CD-ROM image into RAM at startup, which significantly increases RAM usage (by up to 650MB for the largest CDs) but removes the need for the emulator to access disk after starting up
(NES) Added an option for whether or not simultaneous opposing directional inputs are allowed, which defaults to not allowed
Some NES games exhibit severe glitches when the game reads left+right or up+down pressed simultaneously, including Zelda II and Battletoads
(NES) Added support for the unlicensed mapper used by Action 52 and Cheetahmen II (iNES mapper 228)
Added a new Video option “auto-prescale” that will automatically adjust the image prescale factor based on the viewport size instead of requiring it to be specified manually
Fixes
(Genesis) Writes to higher-numbered VDP registers are now ignored while in mode 4 (SMS mode); this fixes glitchy graphics in Bass Masters Classic: Pro Edition
This game does not actually render any graphics while in mode 4, but it accidentally depends on the VDP ignoring certain register writes while it’s in mode 4 due to it temporarily switching the VDP to mode 4 during some screen transitions
(NES) Fixed the MMC1 mapper not correctly handling the outer 256KB bank in games that have 512KB of PRG ROM; this fixes Dragon Quest III and Dragon Quest IV from failing to boot
(NES) Fixed the MMC5 mapper incorrectly applying extended attributes mappings while rendering is disabled; this fixes horribly glitched maps in the SimCity prototype cartridge
(SNES) Fixed the APU timers incorrectly continuing to tick while disabled; this fixes Jurassic Park from freezing after the title screen
(SNES) Implemented the 1-cycle delay that occurs for handling interrupts that trigger during a DMA; this fixes Wild Guns from having horribly glitched graphics during gameplay
(SNES) Super FX GSU instruction timings have been made more accurate, particularly for instructions that access RAM; this fixes occasional glitchy sprite graphics in Winter Gold which seems to be extremely sensitive to the GSU running too fast
(SNES) DMA is no longer allowed to access address bus B (PPU/APU/WRAM ports) through address bus A; this fixes incorrect color palettes in Krusty’s Super Fun House
(SNES) Fixed several SA-1 and Super FX games incorrectly persisting cartridge RAM to disk when the actual cartridge did not have a battery backup (e.g. Star Fox and Dragon Ball Z: Hyper Dimension)
(SNES) Fixed the entire screen rendering one pixel too low in 512×448 interlaced mode
(SNES) Fixed forced blanking not clearing the bottom half of the frame buffer in 512×448 interlaced mode
(SNES) Fixed an off-by-one error in how the window is applied in high-resolution modes; this fixes the entire screen appearing as if shifted half a pixel to the left in Jurassic Park
(SNES) Fixed behavior when GPDMA and HDMA are simultaneously enabled on the same DMA channel (the HDMA should cancel the GPDMA)
(GB) Implemented the DMG STAT interrupt bug, where writing to the STAT register while any of the four STAT conditions is true will briefly enable all four STAT interrupt sources; this fixes Road Rash (GB version) and Zerd no Densetsu from failing to boot
This is emulated only in DMG mode because some Game Boy Color games do not work correctly if this behavior is emulated in CGB mode
Improvements
(Sega CD) Backup RAM and the RAM cartridge are now saved to separate files instead of concatenating them into a single 136KB file (the emulator will still load save files in the old format)
(SNES) Slight performance improvement in games that use the SA-1 coprocessor
Linux releases are now provided as AppImage packages instead of standalone binaries
Note these are built on Ubuntu 22.04 due to a dependency on a newer version of SDL2 than what Ubuntu 20.04 provides, so these builds will likely not work on distros more than a few years old
The renderer now caches GPU resources per-internal resolution instead of recreating everything on every internal resolution change; this eliminates a potential minor stutter that could have occurred any time a Genesis or SNES game changed its resolution (e.g. between 256×224 and 320×224 on Genesis)
This was particularly noticeable in Seiken Densetsu 3 / Trials of Mana (SNES), which changes resolution from 256×224 to 512×224 any time there is a text box onscreen and then switches back to 256×224 when the text box is gone
The “SNES adaptive” blur shader now behaves much more reasonably when used with non-SNES consoles; it now provides a lighter blur effect than the other shaders by upscaling to 2x native resolution before applying the blur (e.g. for Genesis in H320px mode, it internally upscales to H640px before blending with adjacent pixels)
Symbols and debuginfo are now stripped from release binaries which slightly reduces executable size