Author Topic: Playing around with some SPC code in ROMs is fun!  (Read 23888 times)

JCE3000GT

  • Guardian (+100)
  • *
  • Posts: 114
    • View Profile
    • BlitzKrieg Innovations
Re: Playing around with some SPC code in ROMs is fun!
« Reply #120 on: January 16, 2008, 05:20:24 pm »
Ok, I've been messing with SPC data again today. Out of all the songs, I found one that i actually did good on, the other imports suck. I know Vehek did an import of this song a few months back.

FF6's Johnny C. Bad.

I used Millennial Fair Strings for the first two instruments and bass for thrid and Snare drum for the forth instrument.

I've had a few people tell me it sounds just like the FF6 version... so here ya go. Check it out.

Sounds great.  Like I said on Slick's forums I did the same instruments myself when I did that import.  :D

Vehek

  • Errare Explorer (+1500)
  • *
  • Posts: 1756
    • View Profile
Re: Playing around with some SPC code in ROMs is fun!
« Reply #121 on: January 16, 2008, 07:45:33 pm »
Do you mean what I think you mean?  As in each sequence has all of the samples stored?  That would be very wasteful in terms of space.
I don't know about this, but I looked up information about N-SPC.
http://mattrizzle.16bitzone.com/docs/bouche's_nspc_notes.rtf
Quote
SMAS/N-SPC music format:

Most games will have more than one (if not all) songs loaded into the SPC bank, there is usually a table of pointers which point to the songs in the SPC bank (btw, when calculating SPC pointers, omit the header which is 0x100 bytes)
If you're going along specifically with SMB3, here's a few guidelines.
at 0x1F6 in the SPC should be the current song number.
If your 0x1F6 is 00, then change it to a non-zero number under 0x1B ( i think that was the limit, I may be wrong), and play the song in an SPC player, it should play the song number you changed 0x1F6 to. 

JCE3000GT

  • Guardian (+100)
  • *
  • Posts: 114
    • View Profile
    • BlitzKrieg Innovations
Re: Playing around with some SPC code in ROMs is fun!
« Reply #122 on: January 16, 2008, 10:33:24 pm »
Do you mean what I think you mean?  As in each sequence has all of the samples stored?  That would be very wasteful in terms of space.
I don't know about this, but I looked up information about N-SPC.
http://mattrizzle.16bitzone.com/docs/bouche's_nspc_notes.rtf
Quote
SMAS/N-SPC music format:

Most games will have more than one (if not all) songs loaded into the SPC bank, there is usually a table of pointers which point to the songs in the SPC bank (btw, when calculating SPC pointers, omit the header which is 0x100 bytes)
If you're going along specifically with SMB3, here's a few guidelines.
at 0x1F6 in the SPC should be the current song number.
If your 0x1F6 is 00, then change it to a non-zero number under 0x1B ( i think that was the limit, I may be wrong), and play the song in an SPC player, it should play the song number you changed 0x1F6 to. 

Thanks for the doc, I'll check it out on my next day off.

In the mean time, a new youtube video.

http://www.youtube.com/watch?v=xC5Ka3DWH5A
« Last Edit: January 16, 2008, 10:38:52 pm by JCE3000GT »

MathOnNapkins

  • Iokan (+1)
  • *
  • Posts: 13
    • View Profile
Re: Playing around with some SPC code in ROMs is fun!
« Reply #123 on: January 21, 2008, 12:37:04 pm »
Those are very incomplete notes about the N-SPC. I have the Zelda 3 one fully documented, but the documentation is mostly in the form of a disassembly of the SPC code. I'd link to it but the most up to date version is not on my webspace just yet. Just like with the S-SPC (square-spc I guess that's what you guys call it right?), there are memory map variations across versions, as well as capability variations. E.g. Super Metroid's N-SPC engine is probably the most advanced I've seen, and its code segment is about 0x4000 bytes long. That's over twice as long as Chrono Trigger's. I'm going to be working on porting some CT songs to the N-SPC in the near future, hopefully it won't be a huge pain.

oh... what the hell http://math.arc-nova.org/Zelda_SPC.log
« Last Edit: January 21, 2008, 01:13:47 pm by MathOnNapkins »

JCE3000GT

  • Guardian (+100)
  • *
  • Posts: 114
    • View Profile
    • BlitzKrieg Innovations
Re: Playing around with some SPC code in ROMs is fun!
« Reply #124 on: January 21, 2008, 01:49:32 pm »
Those are very incomplete notes about the N-SPC. I have the Zelda 3 one fully documented, but the documentation is mostly in the form of a disassembly of the SPC code. I'd link to it but the most up to date version is not on my webspace just yet. Just like with the S-SPC (square-spc I guess that's what you guys call it right?), there are memory map variations across versions, as well as capability variations. E.g. Super Metroid's N-SPC engine is probably the most advanced I've seen, and its code segment is about 0x4000 bytes long. That's over twice as long as Chrono Trigger's. I'm going to be working on porting some CT songs to the N-SPC in the near future, hopefully it won't be a huge pain.

oh... what the hell http://math.arc-nova.org/Zelda_SPC.log

Awsome, thanks for the file.  I'm still piecing together some of the differences to the S-SPC cores from the various games (I'm going through MQ right now).  I hope to have a more complete understanding by the end of this year.  :)

MathOnNapkins

  • Iokan (+1)
  • *
  • Posts: 13
    • View Profile
Re: Playing around with some SPC code in ROMs is fun!
« Reply #125 on: February 12, 2008, 03:08:09 am »
well... been a while and these are the fruits of my labors so far

http://math.arc-nova.org/music_savestates/

Chrono Trigger music inserted into The Legend of Zelda: A Link to the Past.

Requires a rom and Snes9x. The sole spc in there kind of works but craps out after about 13 seconds so you might as well not bother.

JCE3000GT

  • Guardian (+100)
  • *
  • Posts: 114
    • View Profile
    • BlitzKrieg Innovations
Re: Playing around with some SPC code in ROMs is fun!
« Reply #126 on: February 12, 2008, 07:30:24 pm »
well... been a while and these are the fruits of my labors so far

http://math.arc-nova.org/music_savestates/

Chrono Trigger music inserted into The Legend of Zelda: A Link to the Past.

Requires a rom and Snes9x. The sole spc in there kind of works but craps out after about 13 seconds so you might as well not bother.

Very nicely done.  I've been too busy at both of my jobs and my new car search to have any freetime to mess around with it.  I hope to have some freetime next week or the week after once all the car business is taken care of and my 2 days vacation takes effect.   8)

Shinrin

  • Chrono Trigger Threads of Time
  • Squaretable Knight (+400)
  • *
  • Posts: 487
  • Chrono Trigger Fan # 100
    • View Profile
    • Shinrin Cole
Re: Playing around with some SPC code in ROMs is fun!
« Reply #127 on: March 16, 2008, 10:47:59 pm »
Kinda did some music hacking, on another rom a few nights ago, and decided to Locke's Theme.

[attachment deleted by admin]

Shinrin

  • Chrono Trigger Threads of Time
  • Squaretable Knight (+400)
  • *
  • Posts: 487
  • Chrono Trigger Fan # 100
    • View Profile
    • Shinrin Cole
Star Stealing Girl in Chrono Trigger 100% working!
« Reply #128 on: March 20, 2008, 03:34:13 am »
Ok, the story about this song, when put into CT one of the instruments plays out of sync with the rest of the tune. so i decided to mess with the spc by changing certain hex code. i found the right address and worked with it and got it at least near perfect with the song.

here's both versions from Radical Dreamers and CT

[attachment deleted by admin]

Shinrin

  • Chrono Trigger Threads of Time
  • Squaretable Knight (+400)
  • *
  • Posts: 487
  • Chrono Trigger Fan # 100
    • View Profile
    • Shinrin Cole
Re: Playing around with some SPC code in ROMs is fun!
« Reply #129 on: March 20, 2008, 01:20:11 pm »
After fooling around the with song some more, I fixed a pitch problem that made the flute sound like crap.

I used the pan Flute in this, after lowering the pitch. I played each other basicly neck and neck against each other, and the pan flutes sound the same.  :lee:

Anyway here's probably the final version of this song.

[attachment deleted by admin]

justin3009

  • Fan Project Leader
  • God of War (+3000)
  • *
  • Posts: 3296
    • View Profile
Re: Playing around with some SPC code in ROMs is fun!
« Reply #130 on: March 20, 2008, 01:40:39 pm »
Romancing Saga 3 - Ice Galaxy imported into CT

It's hard to make it sound Icey in CT ;/

[attachment deleted by admin]

Vehek

  • Errare Explorer (+1500)
  • *
  • Posts: 1756
    • View Profile
Re: Playing around with some SPC code in ROMs is fun!
« Reply #131 on: March 22, 2008, 02:24:37 am »
My own attempt at Ice Lake, and an import of Decisive Battle that I did while working on Prophet's Guile.

Edit-Modified version of my previous Frozen Flame import.

[attachment deleted by admin]
« Last Edit: March 29, 2008, 04:22:11 am by Vehek »

Vehek

  • Errare Explorer (+1500)
  • *
  • Posts: 1756
    • View Profile
Re: Playing around with some SPC code in ROMs is fun!
« Reply #132 on: April 05, 2008, 12:23:01 am »
Under the Moonlight import.
RS3 - Boundaries import.
JCE3000GT's SPC editor is really useful for finding out the instruments FF6 and RS3 songs use.

[attachment deleted by admin]
« Last Edit: April 05, 2008, 01:09:13 am by Vehek »

JCE3000GT

  • Guardian (+100)
  • *
  • Posts: 114
    • View Profile
    • BlitzKrieg Innovations
Re: Playing around with some SPC code in ROMs is fun!
« Reply #133 on: April 08, 2008, 07:34:49 pm »
Awsome to see other people importing with success.  :D  Nice work guys.

Vehek

  • Errare Explorer (+1500)
  • *
  • Posts: 1756
    • View Profile
Re: Playing around with some SPC code in ROMs is fun!
« Reply #134 on: April 08, 2008, 07:41:51 pm »
Hey, what do you think is the best way of resolving the F7 xx yy and F8 xx yy problem?
Your way is replacing the commands with F2's, which use 1 parameter, same as F7 and F8 in some of the later SPCs.
Shinrin's seems to be changing a 00 after the F8 to a 8B.
Mine is expanding them and changing all the pointers in the SPC to match.