Valley Bell's SMPS Research

Discussion in 'Technical Discussion' started by ValleyBell, Dec 31, 2013.

  1. ValleyBell

    ValleyBell

    Tech Members Tech Member
    236
    0
    0
    researching SMPS sound drivers
    After a few final cleanups, I can finally release version 5 of my SMPS research package.

    This version includes rips of all MegaDrive/Genesis games that are known to use the SMPS (or preSMPS) sound driver.
    The package now contains:
    • 35 SMPS 68k games
    • 128 SMPS Z80 games (including 18x Game Toshokan and 14x unlicensed)
    • 24 preSMPS games (11x preSMPS Z80, 13x preSMPS 68k)
    • 4 Sega Pico games
    That makes a total of 191 rips. (not counting the few prototype rips that I put in the main ROM's folder)
    Small note: Ripped preSMPS songs have a custom file header. I had to modify the rips anyway, because the sound driver stores the song tempo separate from the actual song header, so I went ahead and added a few more pieces of information (like endianess and base offset) as well.

    The preSMPS stuff was quite a challenge. All preSMPS Z80 and early preSMPS 68k drivers often had major changes regarding coordination flags, so I had to disassemble most of them. (And those preSMPS Z80 drivers are a terrible mess, IMO.) preSMPS Z80 also has a few nasty bugs related to the "change volume" command that were difficult to emulate in SMPSPlay.

    Nevertheless, most rips play fine in SMPSPlay.
    Known issues are:
    • Wonder Boy 3 references instruments from other songs (via their song ID), so some FM instruments are wrong
    • Quack Shot is known to be off due to a unique per-instrument transpose table
    • Sword of Vermillion uses a "Melodic DAC" mode that doesn't work in SMPSPlay (featuring a separate list of playback speed values per PCM sample)
    • FM drums in Wrestle War don't work, because they are played using external sound IDs (They are also distributed over 2 (!) FM channels.)

    As before, the package is split in two parts.
    Part 1 (rips and tools) (12.4 MB) and Part 2 (disassemblies) (22.3 MB)

    SMPSPlay v2.20: Win32/64 Binary (source archive, GitHub repo)

    Enjoy!
     
  2. Dracula

    Dracula

    Oldbie Oldbie
    601
    0
    16
    I'm watching you!
    Restoring Thunder Force II Music and Voices from X68000 Version
    Is it possible to get this to work with Technosoft and Telenet Z80 sound driver to work on SMPSPlay instead of me to go back and forth by pasting the bin file into the ROM?
     
  3. ValleyBell

    ValleyBell

    Tech Members Tech Member
    236
    0
    0
    researching SMPS sound drivers
    Sorry, but that's not going to work. Those sound drivers probably use a very different sequence format* and there are a few basics about how SMPS works in general that you can't change by editing configuration files.
    That's the drawback of high level emulation, compared to formats like NSF and PSF that just use the original sound code.

    * I haven't looked at the Telenet sound format, but I know Technosoft is very different.
     
  4. Dracula

    Dracula

    Oldbie Oldbie
    601
    0
    16
    I'm watching you!
    Restoring Thunder Force II Music and Voices from X68000 Version
    Thanks for the info!