News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: SPC700 Hacking: How to Begin  (Read 4700 times)

nintendo_nerd85

  • Jr. Member
  • **
  • Posts: 65
    • View Profile
SPC700 Hacking: How to Begin
« on: June 26, 2011, 11:42:43 pm »
I noticed that this thread was made a couple of years ago - http://www.romhacking.net/forum/index.php/topic,8776.msg135836.html#msg135836 and piqued my interest.  Then I was lead to this - - - http://www.ff6hacking.com/forums/showthread.php?tid=493 - - - which tells you how to begin hacking SPC files with a hex editor. Well, I began to follow this guide only to hit a dead end.  Under the section "04 - Setting Your Song's Instruments" it asks you to find a specific offset.

Now that we have established some understanding of this structure, let's examine a song. We're going to look at the Battle Theme.
Now, the location of the Battle Theme's instruments starts at Hex Address "054614".
This is what it looks like:

00 0D 00 0E 00 1E 00 02 00 0F 00 11 00 12 00 22 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00

It then proceeded to ask to open Final Fantasy 3.smc.

After trying programs such as WindHex, Cygnus Hex Editor, etc and every time I search for the Offset "054614", none of them have any results and don't show the above address. So, how in the heck can I find these hex values for the SPC data if I can't even find one?  :huh: 

What needs to be done in order to first, find the right programs, second, find the patience to find/hack the hex values and lastly, port SPC data from game to another. I know it's easier to use SPC data that uses a certain driver, i.e. Final Fantasy 6 and Chrono Trigger use the same one, etc. To be honest I'm overwhelmed, but I love a challenge. 
« Last Edit: June 27, 2011, 11:11:14 am by nintendo_nerd85 »

Lenophis

  • IRC Staff
  • Hero Member
  • *****
  • Posts: 959
  • The return of the sombrero!
    • View Profile
    • Slick Productions
Re: SPC700 Hacking: How to Begin
« Reply #1 on: June 27, 2011, 02:14:15 am »
Under the section "04 - Setting Your Song's Instruments" it asks you to
Error: unexpected end of file. Does not compute. :o

Quote
Now that we have established some understanding of this structure
Who what huh wtfomgbbq.

Quote
After trying programs such as WindHex, Cygnus Hex Editor, etc and every time I search for the Offset "054614", none of them have any results and don't show the above address.
Then you aren't doing it right. I scrolled down to that offset and found exactly what you pasted. I even did a partial search of the ADSR data you pasted and still ended up at the very same address.

Quote
I know it's easier to use SPC data that uses a certain driver, i.e. Final Fantasy 6 and Chrono Trigger use the same one, etc.
No, they use similar engines, not the same engine. CT's was based on FF6's.


https://ff6randomizer.codeplex.com/ - Randomize your FF6 experience!

nintendo_nerd85

  • Jr. Member
  • **
  • Posts: 65
    • View Profile
Re: SPC700 Hacking: How to Begin
« Reply #2 on: June 27, 2011, 11:03:15 am »
What's "the right way" to find the offset? What program are you using? I didn't mean to say "the same engine" but a similar one. Am I going to get some help here or not?  :-\  And I meant to say "Section 4 asks you to find the offset and change some instruments around, save it and load FF6 in an emulator". Do you type "054614" in "Got To Offset" or "Jump to Offset List" in WinHex32? If someone would tell me, or show a screenshot of what this guy is talking about, I'd actually be able to make some progress.  I'm not trying to sound like a noob, but I want to learn about this and it seems like I'm getting the runaround.   Yes, I know that SPC hacking can either be pretty simple or downright frustrating, but then, so were emulators, but like emulators, I got used to navigating/using them. Heck, so was compiling emulators from SVN. Sure they're completely unrelated but the principle's the same; new things can be intimidating, but once you get the hang of it, it's not so bad. This is why I'm asking this here, on the Romhacking Forums, because I expected to get some help/advice on where to get started. What command and program did you use to find the offset? Is that so hard to ask? I assume you loaded Final Fantasy 3 1.0.smc, right?
« Last Edit: June 27, 2011, 11:13:08 am by nintendo_nerd85 »

Nightcrawler

  • Hero Member
  • *****
  • Posts: 5763
    • View Profile
    • Nightcrawler's Translation Corporation
Re: SPC700 Hacking: How to Begin
« Reply #3 on: June 27, 2011, 12:04:49 pm »
Any of the programs you mentioned will work. Hex offsets are typically on the left in the programs you mentioned. You'll want to use "Goto To Offset" choice, yes. Alternatively, just scroll down using page down key, down arrow, or other key. Please read the help file for your hex editor to learn how to navigate your hex editor of choice. ANY hex editor can do this.

The problem here is you probably need to go to offset "054414" because the offsets in that document are for a ROM with a header. I imagine you probably have one without a header. That's probably what your problem is.

TransCorp - Over 20 years of community dedication.
Dual Orb 2, Wozz, Emerald Dragon, Tenshi No Uta, Glory of Heracles IV SFC/SNES Translations

nintendo_nerd85

  • Jr. Member
  • **
  • Posts: 65
    • View Profile
Re: SPC700 Hacking: How to Begin
« Reply #4 on: June 27, 2011, 12:11:56 pm »
Okay, I think I see it, I searched for 054414 and on the right side, I see [00 00 00 00 00 0D 00 0E 00 1E 00 02 00 0F 00 11]
and when I selected the fifth "00", the offset does indeed tell me that it's 54614, but why does the complete address look different
from the one GiNattack posted on his website? Will I still be able to change the instrument(s)?

Lenophis

  • IRC Staff
  • Hero Member
  • *****
  • Posts: 959
  • The return of the sombrero!
    • View Profile
    • Slick Productions
Re: SPC700 Hacking: How to Begin
« Reply #5 on: June 27, 2011, 12:16:00 pm »
The difference of the 0x200 bytes is because of a copier header, which a ton of SNES games were dumped with. They serve no purpose, although a bunch of older programs depend on them existing for file calculations (hex editors do not).

Yes, you will still be able to change whatever you wish.


https://ff6randomizer.codeplex.com/ - Randomize your FF6 experience!

nintendo_nerd85

  • Jr. Member
  • **
  • Posts: 65
    • View Profile
Re: SPC700 Hacking: How to Begin
« Reply #6 on: June 27, 2011, 12:51:20 pm »
After doing that, where do I go from here? Let's say I want to port a song from Chrono Trigger into FF6 using FF3usME (which has sound/music editor of sorts, at least it lists something for BRR), porting a song from CT to FF6 couldn't be done by copying and pasting, so, is there a guide for that?

Edit 11:01 AM - Holy Crap, I changed the value "00 0E" to "00 06" and the effect took place! Wow! I'm actually starting to figure this out!

http://www.filefactory.com/file/cc08c04/n/FF3_SPC_Hack.mp3

Now comes the tricky part, the song sequence.
« Last Edit: June 27, 2011, 01:23:40 pm by nintendo_nerd85 »

Zeemis

  • Sr. Member
  • ****
  • Posts: 309
  • ジーミス
    • View Profile
Re: SPC700 Hacking: How to Begin
« Reply #7 on: July 05, 2011, 05:01:52 pm »
After doing that, where do I go from here? Let's say I want to port a song from Chrono Trigger into FF6 using FF3usME (which has sound/music editor of sorts, at least it lists something for BRR), porting a song from CT to FF6 couldn't be done by copying and pasting, so, is there a guide for that?

Edit 11:01 AM - Holy Crap, I changed the value "00 0E" to "00 06" and the effect took place! Wow! I'm actually starting to figure this out!

http://www.filefactory.com/file/cc08c04/n/FF3_SPC_Hack.mp3

Now comes the tricky part, the song sequence.


Not trolling or flaming or anything but perhaps if you asked on that site, you'd get more responses.
Just saying. ;)

Shinrin

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Re: SPC700 Hacking: How to Begin
« Reply #8 on: July 07, 2011, 05:02:20 pm »
You are stepping in a world i used to mess with, and to be quite frank, It's not easy. For example Porting Radical Dreamer Music into Chrono Trigger will not play the song right, you have to work with the hex data to make the song play right. (for example all songs copy from Radical Dreamers will have one instrument that doesn't allign with the others) After you do that, you gotta chose instrumets that will go along with the song. and This is hard, as each game uses different insturments. Not only that you can have pitch problems. Porting the Prelude from FFVI to CT will cause some pitch problems with some insturments, as they are design to go up to a ceartin pitch before going back to a low pitch sound.

Though as for porting CT music in FF, i was unsuccessful.

Also you can only use the following games (that i know of) to put music into FF6 without doing some wacky editing:

Chrono Trigger
Radical Dreamers
Romancing SaGa 3

There maybe another Square game or 2 that is compatable.

Just some tips for a guy who's done music hacking in CT.
I  support Pandora's Box!
Released Hacks: FF6 Hard Challenge and Chrono Trigger Ingame loading
Coming Soon: Matsumi - Saga 1