As the Saturn core of the MiSTer FPGA draws closer to perfect emulation of Sega’s fifth-generation console, its developers have turned their attention to adding extra features — most recently, support for the ST-V Titan arcade platform and for lightguns that work with modern televisions.
The ST-V Titan is essentially an arcade version of the Saturn with a few differences such as running games of cartridges instead of CDs — with the exception of one fishing game that uses a CD — and having a couple arcade vendor test modes. Most Titan games aren’t playable yet on the MiSTer core so more work is needed to fully add the feature.

While the Saturn core already supported the console’s original Stunner (a.k.a. Virtua Gun) lightguns via the SNAC adapter when the MiSTer is hooked up to a CRT TV, players now can use modern lightguns like the Sinden and Gun4IR, too. Even a Wii Remote is usable with Saturn lightgun games now. Simply map your gun’s buttons in the MiSTer main menu and within the Saturn core, choose “virtual gun” from the core’s input menu, and off you go.
The latest updates haven’t been added to the main MiSTer branch yet, so they must be manually downloaded from the official MiSTer Discord server’s unstable nightlies channel and put into your MiSTer’s “cores” folder.
Sergiy “SRG320” Dvodnenko is the core’s main developer, but he’s gotten some help recently from others. JAMMIX-io, for example, has been the catalyst for all the modern lightgun updates. And Kuba-J added a “composite blend” option to the core, giving players the ability to soften the image output’s pixels in the way that a real CRT TV with a composite connection would.


On the left in this off-screen photo is Yuka from Advanced V.G. with composite blending on. On the right, composite blending is off.
Quite a few bugs got fixed recently by Dvodnenko in Saturn games, too. According to the core’s GitHub, the following updates have been made since the last main MiSTer branch update to the Saturn core four weeks ago:
- SH7604:
- fix division by zero in DIVU (Dead or Alive freezes)
- SCU:
- fix CBUS refresh in single SDRAM build (Dark Savior)
- SCSP:
- fix RAM access priority (SEGA Ages – After Burner II regression)
- fix RAM access (Dark Savior)
- VDP1:
- fix Vblank Erase timing (Linkle Liver Story)
- rework the sprite drawing (Princess Crown, Tomb Raider, Revolution X, Battle Garegga sprites)
- fix sprite data output in hires mode (NBA Live 98)
- fix sprite drawing (Sega Worldwide Soccer ’97 regression)
- fix Vblank Erase (Battle Garegga regression)
- fix Vblank Erase with prohibited setting (J. League Jikkyou Honoo no Striker title screen)
- fix End code processing (Mortal Kombat II character)
- VDP2:
- implement Gradation calculation function (Saturn Bomberman boss 4)
- fix window position (Radiant Silvergun regression)
- fix timing of VRAM access slots (Dark Savior)
- disable the Gradation function with a Color Mode other than 0 (according to the manual) (Astal regression)
- fix VTIM starting position to match the original timings
- fix 8bit sprite color mode (Fighting Vipers, Fighters Megamix regression)
- fix NBG2/3 rendering with incorrect VRAM pattern (Initial D)
- SMPC:
- fix timing for INTBACK command in optimized mode (Zoop regression)
- add support for 3D Pad digital mode
- fix SF flag for INTBACK command (Guardian Heroes menu)
- use MiSTer date/time for system date/time
- Miscellaneous:
- add vertical crop option 216p(5x), crop offset and scale (Normal, V-Integer, Narrower HV-Integer, Wider HV-Integer)
- black transitions option set to default
- add option for custom aspect ratio [ARC1], [ARC2], renaming 4:3, Stretched -> Original, Full Screen to unify with other cores
- Initial Virtual LightGun support, changed CONF_STR to use newer bit selects
- Added Virt LGun entries to CONF_STR. Enabling SNAC now greys-out the Pad 1 options
- Add second Lightgun module, various other tweaks
- Fix for P2 Virt LightGun crosshair colour
- Slightly simplified the Crosshair logic
- Re-added the OFF option for joypads (needed for a few games)
- add composite blend
- add cofi assignment
- add cofi module
- STV:
- Initial support for STV
- fix joystick
- add Coin button
- add eeprom
- do not swap bytes in the first 2Mb of the cartridge
Dvodnenko first released to the public a playable build of the core in May 2022 and has updated it many times since then. It was first added to the main MiSTer branch in October 2023, indicating that it was mature enough to be available to all MiSTer users rather than as an optional core that had to be added manually.
Anyone interested in supporting Dvodnenko can do so at his Patreon.
The MiSTer is a field-programmable gate array, a chip that can be changed by programming it to physically emulate retro video game consoles. It includes an SD card reader from which “cores” and games can be loaded.
The cores are the programming that tells the FPGA chip how to configure itself to reproduce the performance of a console. There are cores for a wide array of consoles, from the Atari 2600 to the PlayStation — and now the Saturn.
Main MiSTer branch updated in January
A lot of progress has been made on the core since SHIRO! last reported on it four months ago. (Sorry about that gap.)
One of the biggest developments was the Saturn core on the main MiSTer branch being updated Jan. 13 — the first time in seven months, pushing all of the progress made in that time to every MiSTer owner who hadn’t been keeping up with the unstable nightly cores. Dvodnenko marked the occasion by making a post on his Patreon page.
There had been a flurry of progress made to the core in the month and a half leading up to the main branch update. According to the project’s GitHub, the following fixes were made in December last year through Jan. 13 this year:
- SH7604:
- fix DRAM/SDRAM access in 16-bit mode
- fix access to peripheral space to match the original timings (Radiant Silvergun: score flickering)
- fix consecutive write to the bus (Nights into Dreams: boss battle)
- fix DMAC in burst mode (Mortal Kombat Trilogy regression)
- fix DMAC in burst mode (Die Hard Trilogy regression)
- fix burst reading for ordinary space
- fix TE flag clearing (Black Dawn crashes)
- SCU:
- fix C-BUS bus request (Shining Force 3 regression)
- fix A-BUS timing for CS0/CS1 (cartridge) space to match the original timings (Street Fighter Zero 3 intro)
- separate CPU buffer logic for A/B-BUS (Panzer Dragoon: boss flickering)
- VDP1:
- fix rendering of Scaled sprite with negative height (Slam ‘n Jam ’96: baskeball nets)
- VDP2:
- fix NBG0/1 reduce function (Slam ‘n Jam ’96 playfield)
- fix the VCNT increment position (Space Jam demo)
- fix RAM access slots in partitioned VRAM bank mode (Street Fighter Zero 3 intro)
- Fixes for Interlaced mode
- Centered PAL Video
- implemented undocumented behavior with window start position (Snatcher: intro)
- fix resolution with incorrect setting (Sonic Jam EU)
- fix line scroll function in double interlace mode (Virtual On – Netlink Edition: menu)
- fix rendering Normal screen with incorrect address of character data (Nights into Dreams: water in 1st level)
- fix rendering Rotated screen with incorrect address of coefficient data (Radiant Silvergun: graphical glitches at the start)
- fix undocumented window position (Dodonpachi/Golden Axe – The Duel regression)
- fix rendering Normal screen (Golden Axe – The Duel regression)
- SMPC:
- prevent clock/calendar from resetting when loading the game
- Miscellaneous:
- Add Bob Deinterlacing (Change 16:9 option to Streched)
- Remove the useless video option to save FPGA resources
- Add backup cartridge support
- add black transitions
And before that, a lot of work was done between Oct. 30 and Nov. 16 last year — here are those updates:
- SH7604:
- rework Bus state controller to match original timings (Fighters Megamix/Fighting Vipers intro freeze, E letter in Cube Battler, Shutsudou! Miniskirt Police/Super Tempo boot)
- fix MULT module (Grandia intro sound, Sega Touring Car Championship regression)
- fix DMAC access to unsupported address (Sankyo Fever – Jikki Simulation S)
- fix consecutive access to the bus (Teitoku no Ketsudan II boot, Fighters Megamix: intro freeze)
- fix bus cycle termination on reset in slave mode (Virtua Cop: demo hang)
- SCU:
- fix A-BUS/B-BUS/IO access to match the original timings (Magic Knight Rayearth intro)
- add page break for B-BUS DMA to match the original timings (Dark Savior: Climax logo)
- fix CBUS DMA timing (Bouken Katsugeki Monomono)
- fix A-BUS timing for CS0/CS1 space
- fix B-BUS access timing for VDP2 (Sakura Taisen – Jouki Radio Show boot)
- fix DMA write to CBUS (Idol Janshi Suchie-Pai Secret Album)
- YGR019:
- fix IO access to match the original timings (Magic Knight Rayearth intro)
- fix Put Sector command (SEGA Ages, Virtual On regression)
- SCSP:
- fix RAM access to match the original timings (Magic Knight Rayearth intro)
- SDRAM2:
- invert CS signal
- DCC:
- fix RAM-L/SMPC access to match the original timings (Magic Knight Rayearth intro)
- VDP1:
- fix sprite clipping (Virtual Hydlide)
- fix VRAM access to match the original timings (Magic Knight Rayearth intro)
- fix Scaled sprite clipping (Saturn Music School)
- fix drawing Scaled sprite with zero width/height (Gokujou Parodius Da! Deluxe Pack: KONAMI sign)
- fix VRAM write timing
- fix Vblank Erase timing (Panzer Dragoon: text in intro)
- VDP2:
- fix rendering Normal screen with incorrect VRAM cycle pattern settings (Alien Trilogy level 11)
- implement a limitation for Color calculation function in hires mode (Dark Savior: sound test)
- fix Transparent Enable mode (Sonic Jam: green screen in manuals)
- fix RAM access slots to match the original timings (Dark Savior: Climax logo, Bouken Katsugeki Monomono, Battle Garegga: Option Screen)
- implement Mosaic function (Digital Dance Mix Vol. 1: main menu)
- SMPC:
- fix calculation of INTBACK start position for different vertical resolutions
- correct the execution time of some commands (Do not overuse this option!!!)
- Miscellaneous:
- Fixed Interlacing on Analog Out
- Fix warnings
- Move RAMH to the second sdram to provide the original access timings (dual sdram build only!) (slowdowns in Dead or Alive and other fighting games, Pyon Pyon Kyaruru no Mahjong Biyori intro)
- Add a menu option to speed up some timing to compensate ddr3 latency (for single sdram build) (Do not overuse this option!!!)
Be the first to comment