./emulators/jgenesis, Sega Genesis - Sega CD - SNES - Master System - Game Gear emulator

[ Image CVSweb ] [ Image Homepage ] [ Image RSS ] [ Image Required by ] [ Image Add to tracker ]


Branch: CURRENT, Version: 0.11.2, Package name: jgenesis-0.11.2, Maintainer: pkgsrc-users

Cross-platform multi-console emulator supporting a number of 8-bit and 16-bit
gaming consoles.

Features:

- Emulation for the following consoles:
- Sega Genesis / Mega Drive
- Sega CD / Mega CD
- Sega Master System / Mark III
- Game Gear
- Nintendo Entertainment System (NES) / Famicom
- Super Nintendo Entertainment System (SNES) / Super Famicom
- Game Boy / Game Boy Color


Master sites:

Filesize: 1068.579 KB

Version history: (Expand)


CVS history: (Expand)


   2026-03-08 07:45:48 by Thomas Klausner | Files touched by this commit (1)
Log message:
jgenesis: needs cmake during build
   2026-03-02 13:07:43 by pin | Files touched by this commit (3) | Package updated
Log message:
emulators/jgenesis: update to 0.11.2

0.11.2
New Features

    (Genesis) Added an anamorphic widescreen aspect ratio option that stretches \ 
the screen horizontally to a 16:9 screen aspect ratio (#605)
    Added a new general video setting to change the wgpu power preference \ 
setting, which controls what graphics device the emulator uses if multiple are \ 
available (e.g. both a dedicated and integrated GPU) (#606)
        (Previously this was hardcoded to always prefer a dedicated GPU if available)

Improvements

    On Windows, the wgpu backend Auto setting now prefers DirectX 12 over Vulkan \ 
if both are available (#606)
        This is to work around what seems like a bug in either wgpu or AMD's \ 
graphics drivers that can potentially cause incorrect colors when using the \ 
Vulkan backend on Windows with an AMD GPU

Fixes

    (GB) Fixed initial value of the DMA register in CGB mode; this fixes \ 
graphical glitches in Doc Cosmos: The Saga Begins (#601)
    (GBA) Fixed brightness increase/decrease effects incorrectly never applying \ 
to semi-transparent sprites; this fixes graphical glitches in Final Fantasy VI \ 
Advance and Mario vs. Donkey Kong (and probably other games) (#596 / #597)
    (GBA) Fixed save memory type auto-detection incorrectly giving Iridion II \ 
SRAM, which caused the game to freeze during boss fights (#608)
    (GBA) Adjusted initial PPU state when the "skip BIOS intro \ 
animation" option is enabled; this fixes the homebrew game Anguna failing \ 
to boot with that option enabled (#595)
    (GBA) Fixed initial value of the VCOUNT match value in the DISPSTAT \ 
register; this fixes the homebrew demo CuteCube failing to boot (#598)
    Fixed the Memory Viewer rendering code not respecting the wgpu backend setting

0.11.1
Fixes

    (GBA) Fixed an audio filtering bug in the audio interpolation feature that \ 
caused loud buzzing noises in some games (e.g. Fire Emblem) when enhanced \ 
interpolation was enabled but the PSG low-pass filter was not enabled

0.11.0
Game Boy Advance

    Game Boy Advance emulation is now supported; requires a Game Boy Advance BIOS ROM
    Video options for color correction and LCD ghosting emulation (frame \ 
blending), both enabled by default
    Audio enhancement option to apply enhanced interpolation to the Direct Sound \ 
channels rather than accurately emulating actual hardware's resampling behavior
        This massively reduces audio aliasing and noise in most cases, but it \ 
can also make audio sound muffled when games use very low sample rates (as most \ 
GBA games do)
    CPU/prefetch/DMA/etc. timing is not perfect but should be moderately accurate
    All types of cartridge save memory supported, with an option to force a \ 
specific type if auto-detection gets it wrong
    The cartridge RTC chip and solar sensor are emulated for the handful of \ 
games that use them (e.g. Boktai), other cartridge peripherals are not currently \ 
emulated

New Features

    (Genesis) Added an option to ignore configured aspect ratio and display \ 
square pixels when the VDP is in H40/H320px mode (#442)
    (Genesis) Added support for games with 24C64 EEPROM chips; College Slam and \ 
Frank Thomas Big Hurt Baseball are now playable (#459)
    (Genesis) New audio option to enable/disable individual YM2612 audio channels
    (Genesis) New audio option to adjust volume of individual sound sources
    (Genesis) Added some additional memory/register views to the Memory Viewer window
    (Sega CD) Added support for per-region BIOS configuration, where the \ 
emulator will automatically select the appropriate BIOS based on game region
    (32X) Added two new color display options (#492)
        New option to darken Genesis colors relative to 32X colors, enabled by \ 
default; on actual hardware the brightest 32X colors are noticeably brighter \ 
than the brightest Genesis colors
        New option to apply a yellow or purple tint to 32X colors, roughly as \ 
observed on actual hardware
    (32X) Added an option to overclock the SH-2s; this is extremely \ 
CPU-intensive but can reduce slowdown in some games
    (32X) Added options to hide all pixels of a given priority (#494)
    (NES) Added palette customization options (#424)
        Can now load a custom palette from a file; both 64-color and full \ 
512-color palette files supported
        GUI now has a builtin NTSC palette generator with a graphic displaying \ 
the current palette
    (SNES) Added support for the ST018 coprocessor, used by Hayazashi Nidan \ 
Morita Shougi 2
        This is emulated using an ARM7TDMI implementation (ARMv4T) rather than \ 
an ARM6 (ARMv3), but this should not make any functional difference
    (GB) Added a frame blending option that simulates LCD ghosting, enabled by \ 
default; enabling this fixes graphical effects in a few games and demos (#469)
    (GB) When color correction is enabled, you can now manually adjust the LCD \ 
gamma value used for gamma correction
    (GB) Added support for booting from a boot ROM (#404)
    (GB) Added an option to run original Game Boy software in Game Boy Color \ 
mode (#150)
        This feature requires a GBC boot ROM in order to initialize the \ 
compatibility palettes, and it is off by default because it (accurately) causes \ 
major bugs in a few games
    (GB) Added (proper) support for the MBC30 mapper, used by the Japanese \ 
version of Pocket Monsters Crystal Version (#478)
    (GB) Added support for unlicensed/homebrew games with an SRAM size byte of \ 
$01 (2 KB) (#485)
    (Game Gear) Added a frame blending option that simulates LCD ghosting, \ 
currently disabled by default
    (Game Gear) Added support for booting from a BIOS / boot ROM (#404)
    Added turbo button support for face and shoulder buttons on all emulated \ 
systems (#554)
    Added options to automatically pause the emulator when in the background (#585)

Improvements

    Upgraded SDL from SDL2 to SDL3; for the most part this should hopefully have \ 
no noticeable impact except for audio playback maybe working a little better \ 
than before
        As part of this, I removed the borderless vs. exclusive fullscreen \ 
setting because this seemed much less straightforward to change in SDL3; \ 
fullscreen will now always use whatever the platform and graphics driver default \ 
to (probably always borderless on modern platforms)
    The auto-prescale video setting can now use separate scale factors for width \ 
and height, which produces a less aliased image when games use display modes \ 
with sub-1 pixel aspect ratio (e.g. Genesis NTSC H40/H320px mode, SNES high-res \ 
modes)
        Auto-prescale is also now enabled by default (the previous default was a \ 
fixed 3x upscale factor)
    (32X) Improved quality of PWM chip audio resampling
        There is also a new audio option to switch to the old resampling \ 
algorithm, which is lower quality but usually sounds a little sharper (given \ 
that most 32X games use PWM sample rates of 22 KHz or less)
    (SNES) When using the Super Scope, the emulator now displays the new Super \ 
Scope Turbo state whenever you toggle Turbo on/off
    (GB) Audio is now sampled internally at 2 MHz rather than 1 MHz, which \ 
should reduce audio aliasing from the wavetable channel

General Fixes

    Fixed a number of cases that would cause the emulator to crash, none \ 
triggered by official releases (as far as I know) but some triggered by \ 
homebrew/demos/test ROMs
        (Genesis) Loading a ROM file smaller than 1 KB or so (#434)
        (Genesis) Z80 tries to access its own memory through the 32KB 68K memory \ 
bank by mapping it to $A00000-$A07FFF or $A08000-$A0FFFF
        (Genesis) VRAM-to-VRAM copy DMA with source address higher than $1FFFF
        (Genesis) 68000 triggers a privilege violation exception
        (Genesis) 68000 triggers an address error while handling an exception
        (32X) One of the SH-2s executes a SLEEP instruction (#431)
        (32X) One of the SH-2s executes an illegal opcode
        (32X) One of the SH-2s tries to access certain invalid memory addresses \ 
(highest 3 bits set to 100 or 101)
        (32X) 68000 performs a 16-bit read from certain invalid memory addresses
        (SMS / Game Gear / Genesis) Z80 handles an IRQ while in interrupt mode 2
        (SNES) Loading a ROM file smaller than 32 KB (#538)
        (SNES) Loading an SA-1 cartridge where the cartridge header claims it \ 
does not have any BW-RAM (anything that does this now gets 64 KB of BW-RAM)
        (SNES) SA-1 Character Conversion DMA Type 1 with an I-RAM destination \ 
address higher than $7FF
        (GB) CPU executes a STOP instruction with no CGB speed switch armed (#465)
    Fixed changes to the save path and save state path options not applying \ 
immediately if changed while an emulator is running
    Fixed the UI theme option not applying to the Memory Viewer window

Genesis / Sega CD / 32X Fixes

    Fixed the VDP rendering too many pixels of the previous color when a game \ 
makes a mid-scanline backdrop color change while display is disabled; this \ 
improves accuracy of the glitchy lines in Gouketsuji Ichizoku / Power Instinct \ 
(#462)
    Fixed the 6-button controller timeout period being a little too short (#445)
    Fixed two games failing to boot due to the emulator not giving them the \ 
correct type of cartridge save memory
        Honoo no Toukyuuji: Dodge Danpei has a 24C01 EEPROM chip (#460)
        Al Michaels Announces HardBall III has 32 KB of SRAM (#546)
    Slightly adjusted memory refresh delay timing when the main CPU is executing \ 
out of RAM; this fixes incorrectly visible CRAM dots in Snatcher
    (Sega CD) Fixed implementation of VDP DMA reads from word RAM being delayed; \ 
this fixes glitchy background graphics in Snatcher (again)
        This was a regression that affected v0.10.0 and v0.10.1; it was broken \ 
by VDP DMA changes in v0.10.0
    (Sega CD / 32X) Adjusted inter-CPU/VDP timings to account for some VDP \ 
timing changes made in v0.10.0; this fixes the Sega CD version of Mickey Mania \ 
having glitchy graphics on the right side of the screen in the 3D chase stages \ 
(#491)
        This was also a regression that affected v0.10.0 and v0.10.1
    (32X) Improved accuracy of VDP auto fill timing; this fixes occasional major \ 
graphical glitches in Shadow Squadron / Stellar Assault during the intro and \ 
takeoff sequences (#225 / #439)
    (32X) Fixed some inaccuracies around VDP register latching; this fixes some \ 
early 32X demos not working properly (#430)
    (32X) Fixed some PWM resampling bugs that sometimes caused erroneous pops in \ 
PWM audio output
    (32X) Slightly improved SH-2 timing accuracy, particularly around 32-bit \ 
SDRAM writes being way too slow (#493)
    (32X) Fixed 32X HINT counter behavior not matching Genesis HINT behavior, \ 
which caused SH-2 horizontal interrupts to be off by a line (#559)
    (32X) Fixed 32X VDP per-line events (HBlank, line render) triggering \ 
slightly too early in the line
    Several timing fixes that fix graphical bugs in the Chaekopon demo by Limp \ 
Ninja (#435)
        Adjusted low-level sprite processing timings so that sprite attribute \ 
fetching is performed slightly earlier in the line
        Fixed a pretty egregious DMA timing bug where DMA would take way too \ 
long to start copying if initiated during active display with display enabled
    Fixed a number of inaccuracies identified by the testpico test ROM (#482)
        Fixed implementation of how Genesis VINT and HINT are delayed by 1 \ 
instruction when re-enabled; the previous implementation did the wrong thing \ 
when two consecutive MOVE instructions enabled then disabled VDP interrupts
        Fixed the Genesis VDP's F flag starting to read 1 (VINT pending) \ 
slightly later than it's supposed to
        (32X) Fixed behaviors related to enabling/disabling/clearing SH-2 VINT \ 
during VBlank
        (32X) Fixed some register bits being incorrectly writable / not writable
        (32X) Updates to initial state at power-on to more closely match actual \ 
hardware

NES Fixes

    Very slightly adjusted sprite 0 hit timing; this fixes glitchy lines on the \ 
title screen of Indiana Jones and the Last Crusade (#314)
    DMC DMA timing is now emulated; this fixes screen jitter in Ultimate Air \ 
Combat (#268)
    Fixed non-power-of-two CHR ROM sizes not working correctly (#573)
    Several fixes for inaccuracies identified by the AccuracyCoin test ROM (#551)
        Fixed an APU timing issue that sometimes caused an incorrectly skipped \ 
frame counter clock when software wrote 0x80 to $4017 with two consecutive sta \ 
$4017 instructions
        More accurate APU frame counter timing
        More accurate OAM DMA timing
        DMA dummy reads are now emulated (with a new option to disable dummy \ 
controller port reads because they cause input glitches in some games)
        CPU open bus is now properly emulated (it was previously faked by always \ 
returning the address high byte)
        More accurate PPU open bus emulation
        Most PPU registers are no longer writable immediately after reset
        Fixed the 6502 incorrectly polling the interrupt lines during the final \ 
cycle of BRK instructions and IRQ handling
        More accurate controller port behaviors around strobing and \ 
consecutive-cycle reads

SNES Fixes

    Fixed BG2 incorrectly not rendering in Mode 7 if BG1 is disabled and \ 
BG2+EXTBG are enabled; this fixes missing background graphics in F-1 Grand Prix \ 
(#529)
    Fixed V IRQs incorrectly not triggering when a game either 1. changes VTIME \ 
to the current line while V IRQs are enabled, or 2. enables V IRQs while VTIME \ 
is set to the current line; this fixes graphical corruption in F-1 Grand Prix, \ 
F-1 Grand Prix Part III, S.O.S.: Sink or Swim, and RoboCop vs. The Terminator \ 
(#529 / #530 / #543)
    Fixed multiple bugs in the BG vertical mosaic implementation, which was \ 
previously quite wrong; this fixes graphical bugs in Beavis and Butt-Head and \ 
Jurassic Park Part 2: The Chaos Continues (#532 / #540)
    Improved DMA timing accuracy; this fixes graphical glitches in Circuit USA (#531)
    Fixed incorrect DSP-1 port address mapping for DSP-1 cartridges with more \ 
than 1 MB of ROM; this fixes Super Bases Loaded 2 failing to boot (#534)
    Fixed some revisions of Tintin in Tibet incorrectly defaulting to NTSC \ 
timings instead of PAL (#539)
    The 65816 stack pointer is now initialized to $01FF instead of $0100; this \ 
fixes some homebrew games failing to boot due to stack corruption (#468)
    Fixed SA-1 Character Conversion DMA Type 1 in 2bpp or 4bpp mode incorrectly \ 
treating the input packed pixel data as big-endian within a byte when it is \ 
actually little-endian; this fixes graphical glitches in the SA-1 tech demo \ 
cartridge (#537)
    Implemented multiplication/division timing; this fixes some old homebrew \ 
that accidentally depends on reading intermediate division results (#576)

Game Boy [Color] Fixes

    Fixed the GBC color correction implementation nonsensically performing \ 
calculations in sRGB color space rather than linear color space; this makes a \ 
particularly huge difference for the GBA LCD option
    Slightly adjusted timing of when the STAT LY=LYC bit reads 1; this fixes a \ 
glitchy line in Elevator Action (#472)
    The serial port transfer data register (SB / $FF01) is now read/write; this \ 
fixes Card Game not allowing you to start the game (#471)
    Fixed sample output behavior of pulse and wavetable channels when the DAC is \ 
enabled but the channel is inactive
    Added approximate emulation of DAC fading when a channel's DAC is turned on \ 
or off; combined with the above change, this fixes buzzing noises in Cannon \ 
Fodder, 3D Pocket Pool, and others (#475)
    Fixed VRAM DMA incorrectly terminating prematurely when the destination \ 
address increments from $9FFF to $A000; this fixes freezing in F1 Championship \ 
Season 2000 (#464)
    HDMA5 writes with bit 7 set are now allowed to change the length of \ 
in-progress HDMAs; this fixes corrupted graphics in NASCAR 2000 (#467)
    HDMA is now able to halt the CPU mid-instruction; this fixes occasional \ 
glitchy frames in Toy Story Racer
   2025-10-23 22:40:24 by Thomas Klausner | Files touched by this commit (2999)
Log message:
*: recursive bump for pcre2

Running an old binary against the new pcre doesn't work:
/usr/pkg/lib/libpcre2-8.so.0: version PCRE2_10.47 required by \ 
/usr/pkg/lib/libglib-2.0.so.0 not defined
   2025-07-23 10:12:53 by pin | Files touched by this commit (3) | Package updated
Log message:
emulators/jgenesis: update to 0.10.1

0.10.1
Fixes

 - (SNES) Corrected implementation of how Mode 7 clips scrolled center point \ 
coordinates; this fixes missing background graphics on some screens in Super \ 
Metroid (#426)

0.10.0
New Features

 - (Genesis) CRAM dots are now emulated
        These are normally not visible within active display because it's \ 
uncommon to modify CRAM while the VDP is actively rendering, but they're visible \ 
in many games if vertical border rendering is enabled
 - (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 the current timing 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
   2025-04-26 12:22:32 by pin | Files touched by this commit (3) | Package updated
Log message:
emulators/jgenesis: update to 0.9.0

Notable changes since the last release (v0.8.3):

    Revamped low-pass filter options for Genesis / Sega CD / 32X that should be \ 
significantly more accurate to actual hardware than the v0.8.3 settings
    Improved audio quality for all emulated systems via much higher-quality \ 
audio resampling
    A rather large number of bugfixes for Genesis, Sega CD, 32X, SMS, Game Gear, \ 
SNES, Game Boy [Color]
    Major bugfixes for Linux AppImage builds in Wayland
    Save state files are now internally compressed using zstd, which should \ 
reduce save state file size by 70-80% in most cases
    Basic CPU + CD-ROM drive overclocking options for Sega CD, which have fairly \ 
low compatibility but do help in some games

Full changelog below.
New Features

    (Genesis / Sega CD / 32X) Replaced the low-pass filtering settings added in \ 
v0.8.3 with a new set of options that should be more accurate to actual hardware
        New option to apply a first-order 3.39 KHz low-pass filter to Genesis \ 
audio output; this is ON by default (biggest change from previous default \ 
settings)
        New option to apply a second-order 7.97 KHz low-pass filter to Sega CD \ 
PCM audio output; this is ON by default
        New options to individually configure whether the Genesis low-pass \ 
filter is applied to Sega CD and 32X audio output; these are all OFF by default
    (Genesis / SNES) Added a new video setting to disable deinterlacing in the \ 
handful of games that use interlaced display modes (e.g. Sonic the Hedgehog 2 in \ 
2P Vs. mode, Ys III (Genesis) with the in-game "Int Mode" option \ 
enabled, Air Strike Patrol in mission briefing screens)
        Deinterlacing enabled matches the behavior in previous versions: \ 
normal-resolution interlaced modes display the same as progressive mode, and \ 
high-res interlaced modes make the graphics processor render all 448/480 lines \ 
every frame
    (Sega CD) Added an option to overclock the sub CPU by decreasing the master \ 
clock divider (#138)
    (Sega CD) Added an option to increase the disc drive speed when reading data \ 
tracks (#138)
        This has low compatibility but can shorten loading times in some games. \ 
Compatibility is slightly higher when the sub CPU is overclocked
    (Sega CD) Added an additional PCM chip interpolation option for 6-point \ 
cubic Hermite interpolation, which in some cases produces a slightly cleaner \ 
sound than 4-point cubic Hermite (the existing setting)
    Added a new hotkey to quickly toggle whether overclocking settings are \ 
enabled, for the systems that support overclocking (this includes Sega CD's new \ 
drive speed setting)
        This is mainly useful for Sega CD, where increasing the drive speed can \ 
shorten loading times during gameplay but almost always breaks FMVs and animated \ 
cutscenes

Improvements

    Audio resampling code has been rewritten to use the windowed sinc \ 
interpolation algorithm, which is much higher quality than the previous \ 
resampling implementation at a relatively low performance cost (for most \ 
emulated systems)
        Windowed sinc interpolation can be very performance-intensive for NES \ 
and GB/GBC audio resampling, so these two systems have a new audio setting to \ 
choose between windowed sinc interpolation and the old resampling algorithm \ 
(low-pass filter followed by nearest neighbor interpolation)
    (Genesis) Slightly improved performance by optimizing VDP rendering and tile \ 
fetching code
    (Genesis) Frontends now recognize .gen and .smd as file extensions for \ 
Genesis / Mega Drive ROM images (#149)
        This includes attempting to auto-detect when a ROM image is interleaved \ 
(common for .smd files), and deinterleaving it during load
    (SMS) The "crop vertical borders" video setting now defaults to \ 
enabled instead of disabled; unlike the left border, the vertical borders will \ 
only ever show the current backdrop color
    (SMS) The SMS model setting now defaults to SMS1, which emulates a VDP \ 
hardware quirk that is required for the Japanese version of Ys to render \ 
correctly (#182)
    (SMS / Game Gear) Reduced log level of a warning message that caused \ 
excessively verbose log output in Virtua Fighter Mini (#199)
    (SNES) In games that use the SA-1 coprocessor, the SA-1 CPU now gets a wait \ 
cycle every time it accesses SA-1 BW-RAM, similar to actual hardware
        The SA-1 CPU still runs faster than actual hardware in some cases \ 
because bus conflict wait cycles are not emulated
    GUI: When opening a game that requires a BIOS ROM or firmware ROM (e.g. any \ 
Sega CD game), if the BIOS/firmware ROM path is not configured, the error window \ 
now contains a button to configure the appropriate ROM path and immediately \ 
launch the game
    CLI: If no config file exists, the CLI will now attempt to write out the \ 
default config to the config path so that it can be edited manually if desired
    Save state files are now internally compressed using zstd which should \ 
reduce save state file size by at least 50%, often by 70-80%
    Frontends should now correctly handle files with uppercase file extensions

Multi-System Fixes

    Fixed a performance bug in the audio resampling code that could have caused \ 
intermittent extremely poor performance due to performing arithmetic on \ 
subnormal floating-point numbers, which can be up to 100 times slower than \ 
normal floating-point arithmetic on some CPUs (#135)
    Linux: AppImage builds now exclude all Wayland-related system libraries \ 
during packaging; this fixes the emulator failing to launch in some distros, \ 
e.g. Solus Plasma (#143)
    Linux: AppImage builds now interpret relative paths in command-line \ 
arguments as being relative to the original working directory where the AppImage \ 
was launched from, not the AppImage internal runner directory (#147)
    Linux/BSD CLI: For these platforms only and for the CLI only, reverted the \ 
change to estimate window scale factor because SDL_GetDisplayDPI does not return \ 
reliable values on Linux/BSD
    Adjusted frame time sync's sleep implementation to fix frame time sync \ 
potentially causing slowdown on some platforms
    Save state files are now explicitly versioned, which fixes potential \ 
crashing when attempting to load an incompatible save state file from a \ 
different version

Genesis / Mega Drive Fixes

    Fixed the 68000 incorrectly being allowed to access audio RAM while the Z80 \ 
is on the bus; this fixes freezing in Joe & Mac (#144)
    Fixed Z80 RESET not clearing the Z80's HALT status
    Fixed writes to YM2612 F-num high / block registers ($A4-$A6 and $AC-$AE) \ 
taking effect immediately instead of after the next F-num low register write; \ 
this fixes some music glitches in Valis
    Implemented more accurate emulation of how the YM2612 computes operator \ 
amplitude from phase and envelope attenuation
    Fixed in-game saves not working correctly when Sonic & Knuckles is \ 
locked on to a cartridge with SRAM (e.g. Sonic 3)
    Fixed certain revisions of QuackShot not loading correctly due to having \ 
non-standard cartridge ROM address mappings (#174)
    Fixed some illegal 68000 opcodes incorrectly decoding to "valid" \ 
instructions (#184 / #185)
    Fixed an edge case related to how sprite tile/pixel overflow interacts with \ 
H=0 sprite masking (#186)

Sega CD Fixes

    Implemented a higher minimum seek time for small seek distances; this fixes \ 
Thunder Storm FX (JP) failing to boot (#178)
    Fixed a regression introduced in v0.8.3 that caused PCM chip channels to \ 
skip the first sample after being enabled (this made little-to-no audible \ 
difference in practice because the first sample is usually 0)
    Fixed slightly inaccurate emulation of PCM chip looping behavior at sample \ 
rates higher than 0x0800 / 32552 Hz
    Fixed inaccurate emulation of CD-DA fader volumes 1-3 out of 1024 (should be \ 
50-60 dB of attenuation instead of complete silence)
    Unmapped/unknown address accesses will now log an error instead of crashing \ 
the emulator

32X Fixes

    Fixed a major bug in the PWM resampling code that caused PWM audio output to \ 
sound significantly more poppy and crackly than it's supposed to
    Fixed a bug around synchronizing SH-2 accesses to 32X communication ports \ 
that could have caused writes to be skipped in some cases; this fixes freezing \ 
in the Sonic Robo Blast 32X demo (#160)
    Significantly improved timing of 32X VDP interrupts for the SH-2s (#166)
    Significantly improved synchronization between the SH-2s and the 68000
    Fixed PWM DMA transfer rate via DREQ1 not taking the PWM timer interval into \ 
account; this fixes broken sound effects in BC Racers (#179)

Master System / Game Gear Fixes

    Fixed the Z80's RETI instruction not correctly copying IFF2 to IFF1 like \ 
RETN does; this fixes Desert Strike from freezing when you press Start/Pause \ 
(#181)
    Fixed incorrect handling of non-power-of-two ROM sizes, which fixes several \ 
homebrew games and demos (#201 / #203 / #204)
    (Game Gear) Fixed the emulator crashing if a game enables the VDP's 224-line \ 
mode, as the homebrew GG Turrican does (#202)

SNES Fixes

    Implemented more accurate clipping and truncation in Mode 7 intermediate \ 
calculations; this fixes glitched Mode 7 graphics in Tiny Toon Adventures: Wacky \ 
Sports Challenge (#161)
    Mode 7 registers are now latched about 12 pixels before line rendering \ 
begins; this fixes a glitchy line near the bottom of the play area in Battle \ 
Clash, where the screen transitions from Mode 1 to Mode 7
    Implemented an obscure behavior regarding the effects of writing to OAM \ 
during active display; this fixes incorrect sprite display in Uniracers' Vs. \ 
mode (#164)
    Made a best effort at implementing the effects on sprites of toggling forced \ 
blanking during active display; this mostly fixes some test ROMs that exercise \ 
this (#162)
    Adjusted behavior of APU communication ports when the 65816 writes to a port \ 
on the same cycle that the SPC700 cle

    ars the port; this fixes Kishin Douji Zenki: Tenchi Meidou failing...
   2025-02-12 07:45:45 by Ryo ONODERA | Files touched by this commit (850)
Log message:
*: Recursive revbump from audio/flac-1.5.0
   2024-12-26 18:48:11 by pin | Files touched by this commit (3) | Package updated
Log message:
emulators/jgenesis: update to 0.8.3

New Features

    (Genesis / Sega CD / 32X) Added an audio setting to select 1 of 4 different \ 
audio low-pass filters, with cutoff frequencies ranging from about 15000 Hz \ 
(comparable to the existing filter) to about 5000 Hz (produces a very soft \ 
sound)
    (Genesis / Sega CD / 32X) Added a video setting to enable/disable individual \ 
graphics layers
    (Sega CD) Added an audio enhancement setting to apply linear interpolation \ 
or cubic Hermite interpolation to PCM sound chip channels; this significantly \ 
reduces audio noise and audio aliasing in games that play music or voice acting \ 
through the PCM chip (e.g. Lunar: Eternal Blue all the time, Sonic CD in past \ 
stages, basically every FMV game for cutscene audio)
    (GB) Added an option to use a custom 4-color palette, with a color picker UI \ 
for configuring the custom palette colors
    Added a new hotkey that completely exits the application (#140)
        The previous "quit" hotkey (which only closed the currently \ 
running game) has been renamed to "power off"

Improvements

    (32X) PWM chip audio output resampling now uses cubic interpolation rather \ 
than a filter that assumed a source frequency of 22 KHz; this should improve \ 
audio quality in games that use PWM sample rates other than 22 KHz (e.g. After \ 
Burner Complete and Space Harrier)
    Input mappings that use modifier keys (Shift / Ctrl / Alt) no longer \ 
distinguish between Left and Right versions of the modifier, e.g. Left Shift and \ 
Right Shift are now both treated as simply "Shift" for input mapping \ 
purposes (#139)
    Redesigned most of the audio low-pass filters to explicitly target a cutoff \ 
frequency of about 15000 Hz with a stopband edge frequency of about 20000 Hz, \ 
which should further reduce resampling-related audio aliasing
        For performance reasons, NES and GB/GBC instead target a cutoff \ 
frequency of roughly 10000 Hz with a less steep attenuation slope past the \ 
cutoff frequency
    Implemented a performance optimization in how audio low-pass filters are \ 
applied when running on CPUs that support x86_64 AVX and FMA instructions (which \ 
is almost every x86_64 CPU made in the last 10 years; AVX2 is not needed)
    (SMS / Game Gear / Genesis) Improved video memory viewer UI so that it's now \ 
possible to view CRAM and VRAM simultaneously, as well as current VDP settings \ 
(captured once per frame at the beginning of VBlank)
    Display scale factor / DPI is now taken into account when determining \ 
initial emulator window size in windowed mode
    GUI: The GUI window is now repainted immediately when a directory scan \ 
finishes, rather than requiring mouse movement or a keyboard input to trigger \ 
the repaint

Fixes

    (32X) Fixed the 68000 incorrectly being allowed to change the PWM timer \ 
interrupt interval via $A15130 writes; this fixes Primal Rage having horribly \ 
broken sound effects
    Fixed an input configuration bug that made it effectively impossible to \ 
correctly configure any gamepad where SDL reads digital buttons as analog axes, \ 
such as the 8BitDo M30 with its C and R buttons (#135)
    Fixed some minor bugs in the common audio resampling code related to how \ 
low-pass filters are applied
    CLI: For options that only accept a fixed set of possible values, the list \ 
of possible values in the help text is now auto-generated at compile time; this \ 
fixes at least one case where an option's help text listed a possible value that \ 
does not exist, and another case where an option's help text omitted a valid \ 
possible value
   2024-11-27 14:20:33 by pin | Files touched by this commit (1)
Log message:
emulators/jgenesis: re-enable zenety dependency

Forgot to switch this on.