Tests Continue to Pay Dividends for Saturn MiSTer Core Development

The lead developer of the MiSTer’s Saturn core continues to use custom tests to refine the timings between emulated circuits in his implementation of the console in the FPGA.

Over the last month, Sergiy “SRG320” Dvodnenko has made refinements to his core emulation of the SH-2 processors, system control unit, both video display processors, the sound processor and the SMPC, or System Management & Peripheral Control chip. He credited many of those refinements to “sstests,” which are made by Celeriyacon, who first became involved in the core last summer when they contributed a sound chip testing tool.

The tests are not public, possibly for fear that they’d be misinterpreted, as they yield highly technical data, according to Zet-sensei, who works closely with Dvodnenko to test updates.

“Let’s be very clear, this isn’t about power, possession, or anything like that,” Zet-sensei said Tuesday after the most recent Saturn core update. “Even for me, these tests aren’t entirely useful, except for testing or verifying the possibility of having different revisions of certain chips. These tests won’t tell you if your machine still works or not (they aren’t burn-in tests or for repair). However, these tests are invaluable and vital for advancing the design of the core, as well as software emulators. Provided you know what you’re doing, how to read them, and how to interpret them. I think that’s also why their development and use are currently kept very secretive. So that they aren’t used or interpreted haphazardly.”

The tests are also being used by StrikerX3 to develop the new Saturn emulator Ymir.

None of Dvodnenko’s updates over the last month are available on the main branch of the MiSTer, accessible when users run “update_all,” which was last updated a month ago. Instead, they’re in “unstable nightlies” cores that can be downloaded from the unstable nightlies channel on the MiSTer Discord server.

According to the project’s GitHub, these are the updates that have been made since the last time SHIRO! reported on the Saturn core in early October:

  • SH7604:
    • implement the ID/OD bits of Cache Control Register
    • implement self-refresh mode
    • implement standby mode
  • SCU:
    • rework Timers logic (sstests)
    • fix writes to Interrupt registers (sstests)
    • fix reset state for registers (sstests)
    • fix reading from A-BUS CS2 in word space
    • implement refresh for A-BUS
  • VDP1:
    • fix Jump commands (sstests)
    • fix reset state for registers (sstests)
    • increase the dimension for calculating coordinates (Puyo Puyo Tsuu: glitched frame)
  • VDP2:
    • re-fix DISP flags latching (Worldwide Soccer ’98, Gokujou Parodius Da!, Pro Yakyuu Greatest Nine ’98 Summer Action, Astal’s Stage 6, Samurai Sprits Zankurou Musuken, VDP2 mid-frame test)
    • add reset state for HV counters (sstests)
    • fix reset state for registers (sstests)
    • fix Back Color when display is disabled (Gokujou Parodius Da! Deluxe Pack: glitched frame in first game)
  • SCSP:
    • implement reset state for DSP memories (sstests)
  • SMPC:
    • fix Clock Change commands (sstests)
    • adjust the execution time of commands (sstests)
    • fix RTC update (sstests)
    • adjust the execution time of commands (sstests)
    • fix timing for INTBACK command (sstests)
    • fix timing and priority of interrupts (sstests)
  • CD Block:
    • fix IO’s FIFO (sstests)

One of the games that now boots up again thanks to last week’s new unstable nightly core is Die Hard Trilogy, a game that’s sensitive to SMPC timings. Even better, the core didn’t break any other SMPC-sensitive games like Shinobi Legions, In the Hunt or Crusader: No Remorse.

A photo of Suchie-Pie Doki Doki Nightmare being played on the MiSTer by Zet-sensei.

Die Hard Trilogy stopped booting up at some point when other SMPC changes took effect. “Die Hard was a ‘collateral victim’ of SRG320’s timing rewrites and refinements,” Zet-sensei said.

His refinements have led Dvodnenko to submit two updates to the main MiSTer core last Friday: “fix the status of commands (Die Hard Arcade, Suchie-Pie Doki Doki Nightmare)” and “increase max seek delay between tracks (Pocket Fighter).” Essentially, they address issues with emulating CD reading.

They were accepted as an unstable nightly build over the weekend, whose notes read, “fix the status of commands, increase max seek delay between tracks.” The unstable nightly main MiSTer cores are available in the MiSTer server’s unstable nightlies channel, just like the Saturn core’s.

Dvodnenko first released a playable build of the core to the public 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, of course, the Saturn.

About the author

Danthrax

Danthrax is a member of the SHIRO! Media Group, writing stories for the website when Saturn news breaks and helping to manage the group's social media accounts. While he was a Sega Genesis kid in the '90s, he didn't get a Saturn until 2018. It didn't take him long to fall in love with the console's library as well as the fan translation and homebrew scene. He contributed heavily to the Bulk Slash and Stellar Assault SS fan localizations, and he's helped as an editor on several other Saturn and Dreamcast fan projects such as Cotton 2, Rainbow Cotton and Sakura Wars Columns 2.

Be the first to comment

Leave a comment

Your email address will not be published.


*


Skip to toolbar