Sonic and Sega Retro Message Board: Valley Bell's SMPS Research - Sonic and Sega Retro Message Board

Jump to content

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

Valley Bell's SMPS Research includes lots of rips, disassemblies and hacking information

#31 User is offline ValleyBell 

Posted 26 March 2014 - 07:30 AM

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

View PostICEknight, on 25 March 2014 - 01:02 PM, said:

Is there a way of looking for any unused "instruments" within the songs' data? Or any note sequences that aren't accessed by them?
If you hex-edit an SMPS file, the first 2 bytes tell you the offset of the instrument table.
Then you search through the whole file for EF xx commands. (Note: They should be between offset 30h and the instrument table. Also if there's an FF is before the EF, then it's probably a pointer.)
Anyway, you search for EF xx commands (for example EF 03) and note the highest number.
Then you take this number, add one (to get the number of used FM instruments) and multiply it with 19 (hex) or 25 (dec).
Add this to the instrument table offset and you get the end-of-file offset.

If there is any data after the calculated offset, it is unused data.

Considering that all the songs have about 2 KB I doubt that there is any left data though.


View PostICEknight, on 25 March 2014 - 01:02 PM, said:

Why is the data in the two APOM rips of that song so different, anyway? They sound the same to me...
It looks like they optimized the size of the song a bit.

btw: I searched for the song table for the "dance attack" jingles and found it at 00F420 (Rev 00) / 00F5E4 (Rev 01)
	8C 8D 8E - Round 1
	8F 90 91 - Round 2
	95 96 97 - Round 3
	92 93 94 - Round 4
	8C 91 96 - Round 5
	96       - Round 6
	92 93 94 - Round 4 (inside of a Cavern)


#32 User is offline ValleyBell 

Posted 02 July 2014 - 03:26 PM

  • Posts: 223
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
During the last few months I continued my SMPS research. I disassembled many SMPS drivers and ripped a few more games.
And I also completely rewrote SMPSPlay from scratch.

So let me present: SMPSPlay v2
You can download a Windows binary (32-bit and 64-bit) or the source code.
The new version of SMPSPlay was made to be very flexible in order to support as many SMPS variants as possible.
You can make your own SMPS command set and adjust many driver-related settings like FM and PSG frequency tables.
A complete configuration for SMPS Z80 drivers can load up to 10 different files. (driver definition, command definition, modulation and PSG envelopes, DAC sounds and more)

Being a rewrite, it has a few disadvantages over the old one, of course. The new version is currently unable to play SFX and fade previous songs in. But I think these are only very minor issues, considering that it is now able to play almost every SMPS song out there.
Also, even though Chaotix is now supported, I don't emulate the PWM. Instead I imitate it using the YM2612's DAC, so I had to disable the FM6 channel for these songs. (That's noticeable especially in one of the songs.)

btw: If you tried MainMemory's SMPSOUT.DLL, you already heard the new SMPS engine in action.


I also updated the SMPS research package, it is at version 3 now. I ripped songs from another 4 SMPS 68k and 12 SMPS Z80 games, not counting the rips from beta versions of a few games like Sonic 3K and Sonic 2.
In order to be compatible with the new SMPSPlay, there is now a config.ini in every folder with songs.
Every game with a DefCFlag.txt in its folder should play perfectly in SMPSPlay. (I.e. everything SMPS Z80 and some SMPS 68k)

I also increased the number of sound and DAC driver disassemblies. Among them are 9 new SMPS 68k and 29 SMPS Z80 drivers.

Finally, I wrote a few additional tools. One of them, SmpsZ80Extract, analyses SMPS Z80 drivers, lists important offsets and dumps some of the data into files understood by SMPSPlay.
Then there are 3 tools specific to certain games and ROMs. These are decompressors for Dyna Brothers 1/2 and Sorcerian, as well as a tool to dump all sound driver data (both Z80 and 68k) from the Sega MegaCD BIOS files.


I wish you an interesting journey through all of the new driver disassemblies and tools and a nice listen through all of the ripped songs.

EDIT: There is a git repository for SMPSPlay now.
This post has been edited by ValleyBell: 03 July 2014 - 01:54 PM

#33 User is offline Clownacy 

Posted 03 July 2014 - 05:31 PM

  • Layin' the Wax and Spinnin' the Sounds
  • Posts: 620
  • Joined: 06-July 13
  • Gender:Male
  • Location:Englandland
Whoa! I was expecting maybe one or two more 68K drivers, not this many! Well, I should have a fun time reading through all of these, looking for bugfixes and optimisations.

#34 User is offline Xeta 

Posted 03 July 2014 - 05:43 PM

  • Posts: 263
  • Joined: 23-April 14
  • Gender:Not Telling
  • Project:Various ideas and concepts, very few of which are actually put to use
Okay, so I've heard that the theme used in the Sonic Retro splash screens that people have in their hacks was from Space Harrier, and it makes total sense when you listen to the game's main theme. If this is true, then what on earth is the song doing in the folder of Rent-a-Hero songs that comes with the SMPSPlay program? Anyway, good stuff, SMPSPlay and the research pack both. Keep up the good work!

#35 User is offline muteKi 

Posted 03 July 2014 - 07:12 PM

  • Fuck it
  • Posts: 7481
  • Joined: 03-March 05
  • Gender:Male
  • Wiki edits:91
That song is in the game, as are songs from other games that the composer (Hiroshi "Hiro" Kawaguchi) worked on like After Burner and Turbo OutRun.

#36 User is offline ICEknight 

Posted 27 July 2014 - 08:43 PM

  • Posts: 10041
  • Joined: 11-January 03
  • Gender:Male
  • Location:Spain
  • Wiki edits:18
I've just noticed that the second unreferenced track in Sonic 3D is not included in the pack. =|

#37 User is offline ValleyBell 

Posted 28 July 2014 - 08:48 AM

  • Posts: 223
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
Do you mean another unreferenced track that exists in the final?

If you mean the Sonic 4 Boss, it's only present in the Sonic 3D betas which I haven't ripped yet.

#38 User is offline ICEknight 

Posted 28 July 2014 - 09:59 AM

  • Posts: 10041
  • Joined: 11-January 03
  • Gender:Male
  • Location:Spain
  • Wiki edits:18

View PostValleyBell, on 28 July 2014 - 08:48 AM, said:

If you mean the Sonic 4 Boss, it's only present in the Sonic 3D betas which I haven't ripped yet.
Ah, that's right. I can't believe I had forgotten about that, sorry. =|
This post has been edited by ICEknight: 28 July 2014 - 10:51 AM

#39 User is offline Xeta 

Posted 30 July 2014 - 10:18 AM

  • Posts: 263
  • Joined: 23-April 14
  • Gender:Not Telling
  • Project:Various ideas and concepts, very few of which are actually put to use
This may seem a little off-topic, but what sound engine does Contra: Hard Corps use? Probably not SMPS, because it's not on this list, and when listening to the sound test, the first sounds you hear sound like DAC samples or whatever they are in its sound engine.

#40 User is offline Clownacy 

Posted 30 July 2014 - 12:53 PM

  • Layin' the Wax and Spinnin' the Sounds
  • Posts: 620
  • Joined: 06-July 13
  • Gender:Male
  • Location:Englandland
Look here.

Quote

Contra: Hard Corps (Probotector) Konami/Vampire Killer


#41 User is offline ValleyBell 

Posted 17 August 2014 - 04:32 PM

  • Posts: 223
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
I've been researching Master System SMPS a bit recently, so I have a small update to SMPSPlay: (It's now at v2.01.)

  • PSG noise drums are supported now and are defined with a new file called DefDrum_PSG.txt
    These are used in SMS/GG games in general and also in Space Harrier 2 on the MD.
  • in preparation for real preSMPS support, I added the preSMPS instrument format (register-data pairs) and 2x 2op FM drums

You can download the Windows binary (32-bit and 64-bit) or the source code.

The binary package includes rips from Sonic 2 SMS/GG and Sonic Triple Trouble.
There are also two songs from Space Harrier 2, which I converted to normal SMPS by rewriting the song header.

btw: Sonic 2 SMS/GG has a unique feature: a real ADSR envelope. The only song that uses it is Gimmick Mountain and the feature was removed from Triple Trouble. (I haven't looked at Sonic Chaos yet.)
This post has been edited by ValleyBell: 17 August 2014 - 04:37 PM

#42 User is offline ICEknight 

Posted 19 August 2014 - 04:18 AM

  • Posts: 10041
  • Joined: 11-January 03
  • Gender:Male
  • Location:Spain
  • Wiki edits:18
Awesome!


In case it may be useful in some way, here's the link to the topic where the "SGC" format dumps were released: http://forums.nesdev...opic.php?t=5887
This post has been edited by ICEknight: 19 August 2014 - 04:18 AM

#43 User is offline Xeta 

Posted 28 August 2014 - 12:45 PM

  • Posts: 263
  • Joined: 23-April 14
  • Gender:Not Telling
  • Project:Various ideas and concepts, very few of which are actually put to use
Now, here's a question. Is the SMPS engine exclusive to the MegaDrive (excluding the Master System, Game Gear, and Sega CD)?

#44 User is offline muteKi 

Posted 28 August 2014 - 12:54 PM

  • Fuck it
  • Posts: 7481
  • Joined: 03-March 05
  • Gender:Male
  • Wiki edits:91
A similar engine seems to be in use for Sonic 2 GG/SMS. I don't know how much people have looked into the sound engines of the later games.

#45 User is offline amphobius 

Posted 28 August 2014 - 01:12 PM

  • where are the japanese shaman girls, lintahlo?
  • Posts: 2102
  • Joined: 19-February 08
  • Gender:Male
  • Location:Northern Ireland, Belfast
  • Project:Sonic Thrash, Sonic Boom, Super Famidev
  • Wiki edits:165
Sonic CD uses SMPS - it's extremely obvious considering it's using standard Sonic sound effects and several of which have been ported over to the MD.

Sonic CD's past music uses a variant of SMPS to account for the 8 channel PCM usage, and Sonic 2 GG/MS, as noted, also use SMPS. It's just a generic driver for developers to modify as needed.

  • 5 Pages +
  • 1
  • 2
  • 3
  • 4
  • 5
    Locked
    Locked Forum

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