Sound Improves Drastically on Saturn MiSTer Core

In the last month, MiSTer Saturn core developer Sergiy Dvodnenko — aka SRG320 — has drilled down on everything from audio improvements to video RAM accuracy and made big gains in hardware emulation in the process.

The new builds for single- and dual-RAM setups are not available in the main MiSTer branch — they must be downloaded from the unstable nightlies channel of the MiSTer’s official Discord server.

Dvodnenko has updated the core 12 times since SHIRO! last reported on his progress on Feb. 9. The core’s development Github lists all of the fixes:

  • SH core
    • fix register bypassing for indirect index register addressing instructions (Pinball Graffiti)
  • VDP1
    • fix drawing to framebuffer (fix some regression)
    • fix MSB ON drawing (fix some regression)
    • update User clipping coordinate also in System clipping coordinate set command (need to check on original hardware!) (Whizz intro)
    • extended to 16 bits some calculations for drawing objects with prohibitive coordinate values (Dragon Master Silk)
    • revert fix of drawing start position (fix some regression)
    • fix vblank erase mode (regressions)
    • fix the CLUT start address (Culdcept sprite colors)
    • fix manual drawing trigger (fix some regression)
    • extended to 12 bits coordinate calculations (Burning Rangers)
    • rework VRAM access for better accuracy
  • VDP2
    • rework single write to VRAM for better accuracy (Daytona USA menu screen)
    • adjust the position of rotation reading (fix some regression)
    • fix transparent shadow (Soukyuu Gurentai)
    • use DTEN to check the end of single write (Batsugun)
    • fix sprite transparent condition (Yumimi Mix Remix regression)
    • fix unsupported window position (Darius Gaiden, route D)
    • fix VRAM bank selection (Bouken Katsugeki Mono Mono)
    • hide NBG2/3 when NBG0/1 reduction is enabled (Culdcept)
    • fix the start time for rotation coordinate calculation (Sakura Wars corrupted line)
    • rework the reset (fix some hangs on reset)
    • implement undocumented behavior when rendering NBG2/3 with incorrect VRAM access patterns (Gouketsuji Ichizoku 3 – Groove on Fight, J. League Jikkyou Honoo no Striker, Grandia)
    • fix rendering NBG0/1 with incorrect VRAM access timing slot for Vertical cell scroll data (Rayman: Anguish Lagoon)
  • SMPC
    • attempt to fix INTBACK command (fix some regression)
    • disable sound CPU by CKCHG commands (Pro Pinball sound)
    • fix continue/break request to INTBACK command (Dark Seed)
    • rework CKCHGxxx command to wait for VBLANK
    • move SMEM to bram
  • SCU
    • rework CPU access to B-BUS for better accuracy
    • fix LPS command in DSP (Pandemonium speed)
    • fix B-BUS reading from SCSP space for better accuracy
    • rework indirect mode for better accuracy
  • SCSP
    • fix output levels
    • DSP fixes
    • add float convertion for DSP (audible clicks in some games)
    • add internal registers reset
    • rework key on/off trigger
    • rework loop control (Blast Wind)
    • fix RAM addressing for sound CPU (After Burner)
    • rework sound CPU RAM access to improve accuracy in time-critical code (Virtua Fighter 2)
    • fix some sound level overflows
  • Add auto region selection (latest unstable main is required)
  • Fix for dual sdram project
  • Reset core clock, reorganize memory
  • DDRAM
    • Redesign of DDRAM controller to reduce resources
    • reorganize to reduce LE
    • increase FIFO depth for some channels for acceleration
  • SH7604
    • implemented undocumented registers in Division unit (Assault Suit Leynos 2 graphical glitches)
    • fix priority for bus requests (Shutsudou! Miniskirt Police,Super Tempo)
    • return null when reading from reserved space (Slayers Royal)
    • fix clearing busy flag in external vector read cycle (Assault Suit Leynos 2 hang)

The most recent fixes came just today when improvements targeted making the Saturn core work on configurations of MiSTer RAM that had trouble running the core before. They also make it work better with MiSTers that have just a single stick of RAM.

But earlier in the month, SRG320 drastically improved audio with a battery of updates to emulation of the Saturn’s sound chip, the SCSP.

One user in the MiSTer Discord server, MARI0, reported audio in games like Sega Ages Afterburner II, Tetris Plus, Radiant Silvergun and more had been fixed.

“Shining Force III also sounds great now! Blaze spell doesn’t destroy my speakers!” MARI0 said. “This update, along with the previous one from a few days ago, is a game changer. Insane audio improvements all around.”

Other users found games sounding better, too. “Manx TT sounds way better,” Robby said. “Engine sounds aren’t clipping.”

“Almost every game sounds better, no more overdriven sounds,” Kuba said. “Even shots in Panzer Dragoon caused crackling.”

But some games remain a problem. Aktane recorded a video demonstrating that Sega Rally Championship’s audio cuts out when going from the demo to the title screen.

A video Aktane shot with their MiSTer demonstrating an audio problem with Sega Rally Championship. It was posted to the MiSTer Discord server.

Dvodnenko has been cranking out updates for the core every few days since escaping Russian occupation in eastern Ukraine at the beginning of this year. Before that, there had been only occasional updates every month or two since he first released to the public a playable build of the core in May 2022.

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.

About the author

Danthrax

Danthrax is a contributor to the Shiro Media Group, writing stories for the website when Saturn news breaks. 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 has helped as an editor on several other Saturn and Dreamcast fan projects such as Cotton 2, Rainbow Cotton and Sakura Wars Columns 2.

Leave a comment

Your email address will not be published.


*