Sonic and Sega Retro Message Board: Data East / Side Pocket Sound Driver - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
  • 2 Pages +
  • 1
  • 2
    Locked
    Locked Forum

Data East / Side Pocket Sound Driver reverse engineered

#16 User is offline ValleyBell 

Posted 02 May 2012 - 10:15 AM

  • Posts: 197
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
Cool.

I made a page from the list: Data East Music Hacking/Music Pointers
I also included notes are reused soundtracks (just complete soundtracks, not single songs) and the number of songs for all games. (except the ones with a Side Pocket-like pointer list)

#17 User is offline Tiberious 

Posted 06 May 2012 - 04:40 PM

  • Yeah, I'm furry. Got a problem?
  • Posts: 553
  • Joined: 18-August 03
  • Wiki edits:1
I tried to log VGMs from that Samurai Shodown II pirate (the Cham Cham and Nakoruru tracks are DAMN good for a pirate effort), but I can't play them in WinAmp (VGM plugin) without it crashing.

What changed in the format that kills playback?

#18 User is offline ValleyBell 

Posted 06 May 2012 - 04:59 PM

  • Posts: 197
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
The player logs VGM v1.60, so you need the new in_vgm to play it.
Logging VGMs v1.60 in players is a lot more comfortable and it's smaller than v1.50. SMPSPlay logs v1.60, too, btw.

To answer your question: The actual change in the format is, that it can now tell the player to stream DAC data at a specific sample rate to the chip. It needs just 1 or 2 commands for that.
In VGM v1.50 and earlier this was done "manually", I.e. many 'write DAC data xx' and 'wait xx samples' commands.

#19 User is offline Tiberious 

Posted 07 May 2012 - 03:00 AM

  • Yeah, I'm furry. Got a problem?
  • Posts: 553
  • Joined: 18-August 03
  • Wiki edits:1
Awesome. That worked out well.

However, it apparently doesn't log 'loop to start' quite like it should. I tried to log the Nakoruru music, and it wouldn't stop because the way it's written apparently doesn't trigger the loop-detection routine the way an 'intro-then-loop' track does.

#20 User is offline ValleyBell 

Posted 07 May 2012 - 03:37 PM

  • Posts: 197
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
Yeah, some songs have really weird loops.

Example: The first song in Shui Hu: Feng Yun Zhuan has a 50 measure loop in all melody tracks and a 13 measure loop in the drum track.
That doesn't only sound weird, but would take hours until the correct loop back point is reached.

#21 User is offline ValleyBell 

Posted 18 October 2013 - 04:29 PM

  • Posts: 197
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
After not touching anything related to the Data East sound driver for more than a year, I decided that it might be a good idea to sort all the things I researched and release them. So here we go.


Since the last release of my Data East player I did some additional research on the Side Pocket sound driver (early version of the format) and added support for it to the player.
You can download the Win32 binary or the C source code. I also updated the YM2612 sound emulation to fix a few bugs related to the LFO. (which these sound drivers use for vibrato)

The music folder contains 2 demo songs. One is a homebrew song I made: Aladdin Boss theme (based on the Amiga version)
I also included a small tool called DEExtract, which is able to extract DAC sounds and songs from ROMs.


Most of the recent additions to the player were made by disassembling the two sound drivers (High Seas Havoc and Side Pocket), so if you're interested, you can also download the sound driver disassemblies.
The archive includes .idb (for IDA Pro 6.1) and .asm files for both games and some .txt files that describe the sequence format and RAM layout. (The .asm files contain the sound driver part only.)
High Seas Havoc's sound driver is commented well and data and code should be separated properly for the whole game.
Side Pocket's driver has fewer comments. I mainly commented the parts that differ from HSH's driver.

As a bonus I included a Sonic 1 ROM that uses the HSH sound driver, including the files you need to build it.

Enjoy.

  • 2 Pages +
  • 1
  • 2
    Locked
    Locked Forum

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users