github jsgroth/jgenesis v0.10.0

latest releases: v0.12.1, v0.12.0, v0.11.4...
11 months ago

Notable changes since 0.9.0:

  • Genesis CRAM dots are now emulated
  • Significantly improved performance for Genesis and Sega CD, and to a lesser extent 32X
  • Genesis / Sega CD / 32X audio low-pass filter cutoff freqencies are now configurable
  • Lots of bugfixes for every emulated system, particularly Genesis

Save states are not compatible with previous versions.

Full changelog below


New Features

  • (Genesis) CRAM dots are now emulated
  • (Genesis / Sega CD) Audio low-pass filter cutoff frequencies are now configurable
  • (Genesis) New option to apply a second-order low-pass filter only to YM2612 audio output, which should be similar to the audio circuitry in later Model 2 consoles (when used in combination with a first-order filter applied to all audio output)
  • (Genesis) Added an aspect ratio "Auto" option (now default) that will function as either NTSC (8:7 / 32:35 PAR) or PAL (11:8 / 11:10 PAR) based on whether the emulator is running in NTSC or PAL mode
  • (Genesis) Added an option for whether to emulate YM2612 or YM3438 busy flag behavior, which affects audio in a few games (e.g. Earthworm Jim and Hellfire)
    • There is also an Always 0 option that is less accurate to hardware but produces the "correct" behavior for both of these games
  • (SMS / Game Gear) Added a hardware region "Auto" setting that attempts to auto-detect region from the cartridge header (#214)
  • (SMS) Added the option to boot from a BIOS rather than booting directly into the game
  • (SMS / Sega CD) Added the ability to boot directly into the BIOS with no cartridge/disc inserted
  • (NES) Added an option to disable vertical overscan cropping in NTSC mode (i.e. display in 256x240 instead of 256x224)
  • Added an audio option to mute all emulator audio output (#248)
  • Added an option to configure the initial window size when not running in fullscreen (#409)
  • GUI: Added a new File menu button and hotkey to quickly open the most recently opened ROM file (#248)

Multi-System Fixes

  • Fixed the emulator not reading gamepad inputs while the window does not have focus (#248)
  • Fixed the GUI sometimes segfaulting when you close the main GUI window while an emulator is running
  • The GUI window now remembers its size when the application is closed and reopened
  • Initial window size now takes aspect ratio into account

Genesis / Mega Drive Fixes

  • Improved both behavioral accuracy and timing accuracy of VDP ports, VDP DMA, and the VDP FIFO; this fixes a number of bugs
    • Fixes Clue sometimes having corrupted main menu graphics (#159)
    • Fixes Gaiares having flickering text on the title screen
    • The emulator now fully passes the VDPFIFOTesting test ROM (#103)
    • Fixes incorrect color palettes in some demos (#183)
    • Fixes a glitch on the title screen of the homebrew Rick Dangerous 2 port (#102)
  • Significantly improved performance due primarily to optimizations related to the YM2612 code
  • Lots of mostly minor fixes to YM2612 sound chip emulation
    • Fixed multiple timing precision bugs with the LFO and hardware timers
    • Fixed vibrato / LFO FM calculations incorrectly using 11-bit precision instead of 12-bit
    • Fixed vibrato incorrectly affecting how detune computes key code
    • Fixed the accurate quantization option incorrectly quantizing channel outputs instead of carrier outputs
    • More accurate emulation of DAC crossover distortion (ladder effect)
    • Added emulation for operator evaluation pipelining in channel output calculations
    • Fixed the DAC channel not respecting the channel 6 panning bits
  • Fixed a Z80 timing bug caused by a VDP DMA "optimization" introduced in v0.8.2; this fixes video/audio desync in Overdrive 2
  • Fixed behavior when the controller port TH pin is set to input; this fixes controls not working properly in Micro Machines (#226)
  • Improved display behavior when games switch between H32 and H40 modes shortly after the start of VBlank; this fixes glitchy frames in Bugs Bunny in Double Trouble (#252)
  • Fixed the window nametable address not being masked correctly in H40 mode; this fixes glitchy graphics on some screens in Cheese Cat-Astrophe Starring Speedy Gonzales (#253)
  • Added a 1-instruction delay to handling HINT if a game enables HINTs while an HINT is pending; this fixes Fatal Rewind / The Killing Game Show failing to boot (#254)
  • Added a 1 CPU cycle delay on every 68000 access to the Z80 side of the bus; this fixes broken audio in Pac-Man 2: The New Adventures (#255)
  • Fixed several major bugs in how the V counter and the VBlank status flag are emulated in interlaced modes; this fixes Combat Cars freezing in 2P mode as well as occasional sprite glitches in Sonic the Hedgehog 2's Vs. mode (#258)
  • Fixed the Z80 RESET line not resetting the YM2612 in addition to the Z80; this fixes audio glitches in Fantastic Dizzy (#397)
  • Fixed the emulator not correctly initializing cartridge SRAM when the cartridge header specifies less common RAM types; this fixes the Mega Drive Mode 7 demo not working (#250)
  • Fixed the interlaced ODD flag in the VDP status register not toggling correctly in single-screen interlaced mode if deinterlacing is enabled (#354)
  • Fixed a number of European games with bad region headers defaulting to NTSC mode instead of PAL (#176 / #394)
  • The 68000 interrupt handler now takes 54 CPU cycles instead of 44; this is more accurate and fixes a minor glitch in Overdrive (#419)
  • Fixed the emulator crashing if a game reads from Z80 $7F0C-$7F0F or writes to Z80 $7F08-$7F0F
  • When horizontal border rendering is enabled, fixed the right border rendering as the wrong color if the backdrop color is changed between lines (Overdrive 1 does this on some screens)
  • The non-linear VDP color scale option is now enabled by default because it is more accurate to actual hardware's video output (#249)

Sega CD Fixes

  • Fixed the CDD reset register ($FF8001) not correctly resetting CDD state; this fixes the Pier Solar enhanced audio disc failing to boot in SCD Mode 2 (#215)
  • Fixed the CUE parser being too strict around parsing leading whitespace on lines (#418)
  • Fixed some bugs related to changing discs while a game is running (particularly when using a Model 1 BIOS)
  • Implemented more accurate memory mirroring in sub CPU memory map; this fixes excessive error logging in WWF: Rage in the Cage (#216)

32X Fixes

  • Fixed the Genesis VDP and 32X VDP frames incorrectly lining up exactly when the Genesis VDP is in H32 mode; this fixes some minor graphical issues in NFL Quarterback Club (#230)
  • Files with .bin extensions are now auto-detected as 32X instead of Genesis if they contain the 32X security program at the expected location in ROM (#259)
  • Horizontal blur shaders now scale the effect properly when the Genesis VDP is in H32 mode
  • The "apply Genesis low-pass filter to PWM" setting is now on by default because that seems to be more accurate to actual hardware's audio circuitry
  • Fixed initial window size being slightly too small to fit integer-height-scaled output when the Genesis VDP is in H32 mode (#420)

Master System / Game Gear Fixes

  • Somewhat improved VDP-related timings; this fixes glitchy cutscene graphics in Madou Monogatari I (#213) and fixes most tests in the SMSVDPTest test ROM (#190)
  • (SMS) Fixed sprites never displaying on the topmost line of active display
  • (SMS) Fixed the "crop vertical borders" setting incorrectly cropping the top 16 lines and bottom 16 lines in 224-line mode
  • (Game Gear) The region bit in I/O port $00 now properly reflects the hardware region instead of being hardcoded to 1; this fixes the Start button not working on the title screen of Pop Breaker (#214)
  • (Game Gear) Fixed the viewport Y offset being 16 lines off in 224-line mode; this fixes glitchy graphics in Micro Machines (#221)
  • (Game Gear) I/O port $01 is now read/write; this fixes Primal Rage freezing at the title screen (#220)

NES Fixes

  • Improved accuracy of Namco 163 expansion audio emulation (used by Megami Tensei II among other games)
  • Cartridge PRG RAM is now initialized to all 1s instead of all 0s; this fixes Famicom Jump II crashing on first boot (#280)
  • CNROM cartridges (iNES mapper 3) are now allowed to have PRG RAM; this fixes Hayauchi Super Igo effectively freezing upon starting a game (#273)
  • Fixed MMC5 PRG RAM bank mapping in MMC5 cartridges that have two 8KB RAM chips; this fixes Uncharted Waters being completely broken upon starting a game (#275)
  • Added support for NROM cartridges (iNES mapper 0) with only 8KB of PRG ROM; this fixes Galaxian failing to boot (#261)
  • Fixed a VRC4 mapper bug where the highest bit of the 9-bit CHR ROM bank number was not working correctly; this fixes corrupted graphics in World Hero (#283)
  • Fixed the DMC sample address incorrectly defaulting to $8000 at power-on instead of $C000 (#292)
  • PPU palette RAM is now initialized to the palette in the power_up_palette test ROM instead of all 0s
  • Fixed iNES header parsing reading the wrong byte when checking for the PAL bit; this fixes the Populous prototype incorrectly defaulting to NTSC instead of PAL (#391)
  • OAMADDR is now reset to 0 on every line during rendering; this fixes Ghostbusters II freezing after the title screen (#421)

SNES Fixes

  • Fixed incorrect cartridge SRAM mapping for LoROM cartridges with more than 32 KB of SRAM; this fixes Kaite Tsukutte Asoberu Dezaemon failing to boot (#234)
  • Fixed Mode 7 incorrectly clipping the scrolled center point to signed 11-bit rather than signed 10-bit; this fixes glitched Mode 7 graphics in Kaite Tsukutte Asoberu Dezaemon
  • Fixed incorrect emulation of interactions between offset-per-tile modes and BG1/BG2 horizontal scrolling; this fixes glitchy graphics in some stages in The Adventures of Batman & Robin (#246)
  • WRAM contents are now randomized at power-on; this fixes major bugs in Power Drive and the European version of PGA Tour Golf (#188 / #235)
  • Cartridge SRAM is now initialized to all 1s instead of all 0s; this fixes Ken Griffey Jr. Presents Major League Baseball crashing when you select Season mode (#231)
  • Fixed incorrect mapping of the DSP-1 port mirrors in LoROM cartridges; this fixes the DSP-1 tech demo prototype not working properly (#233)
  • Fixed some revisions of Dungeon Master being incorrectly detected as DSP-1 instead of DSP-2

Game Boy [Color] Fixes

  • The MBC5 ROM bank is now initialized to 1 instead of 0; this fixes Project S-11 failing to boot (#410)
  • Cartridge SRAM is now initialized to all 1s instead of all 0s

Don't miss a new jgenesis release

NewReleases is sending notifications on new releases.