Sonic and Sega Retro Message Board: smps2mid - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
Loading News Feed...
 

smps2mid more than a proof of concept

#16 User is offline Herm the Germ 

Posted 19 June 2011 - 11:15 AM

  • FINAL ATTACKRIDE: D-D-D-DECADE!
  • Posts: 1289
  • Joined: 22-April 09
  • Gender:Male
  • Location:Dresden, Saxony, Germany
  • Project:Trying to figure out Sonic Heroes lighting data, anyone willing to help? D:
  • Wiki edits:5
I can confirm that Loop points are preserved in a manner that can, in turn, be understood by mid2smps, by placing MIDI Controller 111 set to 0 and 1 at the start and end of loop points, respectively.

#17 User is online Hitaxas 

Posted 19 June 2011 - 11:16 AM

  • SEGA: Sorry Classic Sonic, we are sending you back to 1994
  • Posts: 1391
  • Joined: 30-September 07
  • Gender:Male
  • Location:Back in Litchfield,CT
  • Project:Sonic: Super Deformed (head director) - Slowly working on it.
  • Wiki edits:196
Along with ICEknight's request for XM support, I would also love to see a feature that allows ripping of the voices/samples from the midi, for a perfect conversion. I know it sounds lazy, but there are times when finding the perfect voice for a track can be frustrating.

#18 User is offline Herm the Germ 

Posted 19 June 2011 - 11:26 AM

  • FINAL ATTACKRIDE: D-D-D-DECADE!
  • Posts: 1289
  • Joined: 22-April 09
  • Gender:Male
  • Location:Dresden, Saxony, Germany
  • Project:Trying to figure out Sonic Heroes lighting data, anyone willing to help? D:
  • Wiki edits:5
Can't Nineko's 2612 Instrument editor tool, found alongside Mid2smps, already rip voices from various sources? The resulting instrument assembly can then be used in conjunction with that tool to include the voices in the new track created, right?

#19 User is offline saxman 

Posted 30 July 2011 - 03:13 AM

  • S2HD Staff - Tools & Assistant Programmer
  • Posts: 2591
  • Joined: 08-April 04
  • Gender:Male
  • Location:United States of America
  • Project:http://www.youtube.com/watch?v=oSkQoKRovEk
  • Wiki edits:136
I used your utility: http://forums.sonicr...showtopic=26025

Very VERY useful! Thank you for making it!

#20 User is offline ValleyBell 

Posted 05 September 2011 - 12:05 PM

  • Posts: 181
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
Bump for smps2mid v0.3. (And today I release the source, too.)
Aside from a few bugfixes and a now 100% GM-correct volume calculation, I did these few but big updates:

- implemented Sonic 3 & Knuckles coordination flags
- added support for the Master System/Game Gear games (including all revisions) Sonic 2, Sonic Chaos, Sonic Triple Trouble and Sonic Blast
- improved Modulation controllers (they still ignore the vibrato delay, but at least it sounds good with the MS GS midi driver)
- improved support for Oerg866's SMPS player - it now works with all SMPS player ROMs and not just the one I used

Note on the Sonic 2 SMS and later SMPS format:
They're 3 revisions. Sonic 2 (rev 1), Sonic Chaos (rev 2) and Sonic Triple Trouble/Sonic Blast (rev 3). rev2+ has additional coordination flags (D8 to DF) to set the channel volume. D8 is PSG volume 0, DF is PSG volume 7.
rev3 (rev2 maybe too) has coord. flag FC, which does the same as flag EB in Sonic & Knuckles.
rev1/2 and rev3 have a different way of calculating their frequencies, so the notes or the key displacement value in rev3 must be 3 octaves lower than in rev1/2.
All the SMS drums that sound (they're some that don't do anything) and mapped to quite fitting GM drum sounds. (more hardcoded stuff :argh:)

smps2mid still fails on some of the Sonic & Knuckles songs. The problem is that I seem to have a wrong music pointer list, so some of the music pointers are wrong.

Happy converting!
This post has been edited by ValleyBell: 05 September 2011 - 01:01 PM

#21 User is offline evilhamwizard 

Posted 05 September 2011 - 01:15 PM

  • Posts: 1134
  • Joined: 16-June 04
  • Gender:Male
  • Wiki edits:109
This is awesome! Working with the DAC/PSG channels is so much better than working with a MIDI converted with VGM2MID. Now I can finally fix up a Diamond Dust Zone Act 1 MIDI that doesn't sound like ass. :)

Although I do have one request. Is it possible to split certain FM channels that change their "instrument" to separate tracks? I know that the MIDIs SMPS2MIDI outputs change the instruments within the one FM channel, but I'd like the option to output the changes to separate channels. Like for example:

Chemical Plant before splitting:
Posted Image

Chemical Plant after splitting:
Posted Image

This is from a MIDI converted with VGM2MIDI but you get the idea.

I'm not sure if there's a program out there that can do this to a MIDI - if there is, I'd love to know what it is. I had to split everything manually so I could work the the entire song in FL Studio. :\

#22 User is offline nineko 

Posted 05 September 2011 - 01:57 PM

  • I am the Holy Cat
  • Posts: 5282
  • Joined: 17-August 06
  • Gender:Male
  • Location:italy
  • Project:I... don't even know anymore :U
  • Wiki edits:5,251

View PostValleyBell, on 05 September 2011 - 12:05 PM, said:

They're 3 revisions. Sonic 2 (rev 1), Sonic Chaos (rev 2) and Sonic Triple Trouble/Sonic Blast (rev 3).
(... details ...)
So that's why I failed when I tried to port a song from STT to SC. Interesting.

#23 User is offline ValleyBell 

Posted 05 September 2011 - 02:02 PM

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

View Postevilhamwizard, on 05 September 2011 - 01:15 PM, said:

Although I do have one request. Is it possible to split certain FM channels that change their "instrument" to separate tracks? I know that the MIDIs SMPS2MIDI outputs change the instruments within the one FM channel, but I'd like the option to output the changes to separate channels.

It's easier to write a seperate tool that does that. It would be an easy task, so I'll write one when I have some time.

EDIT: added quote
This post has been edited by ValleyBell: 05 September 2011 - 02:12 PM

#24 User is online DalekSam 

Posted 29 November 2011 - 08:39 AM

  • dubstep extrodinaire
  • Posts: 1794
  • Joined: 19-February 08
  • Gender:Male
  • Location:Northern Ireland, Belfast
  • Project:Sonic Thrash, Amphobius
  • Wiki edits:165
Sorry for the bump, but could you re-upload this? The link's gone down. Or if anyone could mirror it, that'd also be great.
This post has been edited by DalekSam: 29 November 2011 - 08:41 AM

#25 User is offline ValleyBell 

Posted 29 November 2011 - 01:09 PM

  • Posts: 181
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
Hmm ... sometimes a few files on my Mediafire accunt seem to disappear.

Here is the re-upload, or better said, the new smps2mid 0.4 beta.
I've added 2 new SMPS formats since version 0.3.
Which ones? That's something you have to find out by yourself. :P

Enjoy!

#26 User is offline Hendricks 266 

Posted 22 December 2011 - 04:15 AM

  • Posts: 341
  • Joined: 01-June 05
  • Gender:Male
  • Location:United States
  • Wiki edits:58
Sonic CD and Knuckles' Chaotix. :)

*edit* Sorry about the bump.
This post has been edited by Hendricks 266: 22 December 2011 - 04:16 AM

#27 User is offline ValleyBell 

Posted 23 December 2011 - 05:48 AM

  • Posts: 181
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
I already wondered when someone would finally notice it ...
It's good to know there are still a few people that look for new features. :)

#28 User is online DalekSam 

Posted 23 December 2011 - 05:53 AM

  • dubstep extrodinaire
  • Posts: 1794
  • Joined: 19-February 08
  • Gender:Male
  • Location:Northern Ireland, Belfast
  • Project:Sonic Thrash, Amphobius
  • Wiki edits:165
Oh don't worry, I noticed it when selecting SMPS type, I just didn't make any posts about it! :v:

It's interesting to see the past versions of the SCD music actually sequenced in a DAW, though.
This post has been edited by DalekSam: 23 December 2011 - 05:53 AM

#29 User is offline ValleyBell 

Posted 23 December 2011 - 05:54 AM

  • Posts: 181
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
I already wondered when someone would finally notice it ...
It's good to know there are still a few people that look for new features. :)

EDIT: I got redirected to a white page every time I clicked the "Post" button. Please trash all the double posts.
This post has been edited by ValleyBell: 23 December 2011 - 05:55 AM

#30 User is offline ValleyBell 

Posted 13 December 2013 - 05:48 PM

  • Posts: 181
  • Joined: 08-September 10
  • Gender:Male
  • Project:researching SMPS sound drivers
  • Wiki edits:10
Let me present: smps2mid v0.4.3

You can download the Win32 Binary or the source code.

Compared to the 0.4.0 beta, there are a few new features:
  • proper PWM volume/pan conversion
  • support for generic SMPS Z80 and 68k formats
  • support for Ristar and Sonic Spinball SMS
  • improved conversions of songs within ROM banks (I.e. all Z80 formats)
  • fixed a bug with PSG 3 noise notes being off by 1 when replayed

I also did a few changes to the source code that don't have an effect on the conversion, but they show what I have planned:
  • reworked large parts of the source code to make multiple SMPS variants easier to support
    -> preparation for externally definable SMPS coordination flags
  • changed the way I mapped DAC sounds and SMS drum notes
    -> next version will have custom DAC maps
  • It's currently hardcoded via constants, but in the future you have a few options for the PSG instruments.
    • "Square Wave instrument + Bank LSB" or "PSG instrument = MIDI instrument"
    • for PSG noise: "Note based on PSG instrument" or "use SMPS note and set vary PSG instrument"


Sonic & Knuckles still doesn't work properly though. All you can do is decompressing the sound driver manually, insert it into the ROM and make smps2mid use the decompressed pointer lists.
I also need to add a few additional features to improve SMPS Z80 pointer lists in general. There is currently no way to speficy a list of ROM bank values for the pointers. (And not only S&K and S3D are using such lists.)

Also, if you wonder about the version number: fixed PWM volume algrithms were planned for 0.4.0 final, but I did SMPS Z80 support first.

About those "generic" SMPS formats:
SMPS 68k should work with almost all SMPS 68k games. I know that MJ's Moonwalker and Nekketsu Koukou Dodgeball Bu are using Sonic 1-style Modulation commands, so they won't convert correctly.
SMPS Z80 should work with the majority of the SMPS Z80 games, but modified drivers and commands are a lot more common. Ghostbusters has a few custom flags but works mostly. OutRunners and Virtua Racing use a completely custom command set and don't work.
There are a few differences between SMPS "Z80 a" and "Z80 b". One can control the YM2612 timer to change the music/sfx speed (Z80 a) and the other one can jump out of a loop (Z80 b). Just try the other variant if one doesn't work.

Enjoy and happy converting!

  • 2 Pages +
  • 1
  • 2
    Locked
    Locked Forum

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