Users browsing this thread: 1 Guest(s)
General Music Hacking Guide

Posts: 2,322
Threads: 92
Thanks Received: 332
Thanks Given: 303
Joined: Aug 2009
Reputation: 44
Title:: FF3us_MusicMaking
Author:: MetroidQuest
Description:: A Guide to Custom Music Composing in Final Fantasy 3 US.                                              

Special Thanks to JCE3000GT ( for finding the FF6 BRR Offsets and SPC Code Info
Also Thanks to a document found here:

Required things:
- A Hex Editor

Recommended things:
- A MIDI sequencing software
- MetroidQuests music chart, found here

01 - An Introduction
This document is a guide on how to compose custom music for use in FF6/3us for SNES. It is based on my findings when I composed music for my hack, Final Fantasy VI: The Eternal Crystals version X. I will not be explaining any sound patch tweaking in this document.

Understanding Digital Music:
You either understand music or you don't. But here is a quick 'cheat sheet'

Track - Typically one instrument's 'melody' in a song with many instruments
Channel - A stereo track has two channels, a mono track has one. Got it? That's all you need to know.
Note - the frequency produced by an instrument for a given amount of time
Rest - silence in a track for a given amount of time
Tempo - the speed of the piece of music
Octave - you better understand it to do this.. "DO re mi fa so la ti DO" (the Do's are one octave apart )
Panning - moves from one channel to another (left to right in stereo)

Understanding the FF6 SPC engine and how music works in FF6:

02 - Locations:

First of all, there are two banks in the ROM we are going to look at. The first one determines the instruments used in each song. That exists
at Hex Address:  "054195" through "054C34". There are 32 available bytes for each song's instruments. Each instrument assignment uses 2 bytes thus allowing for a total of 16 instruments.

The actual songs themselves start at Hex Address "085E7A" and go all the way down to "09FEEB"
The first part of each song's address (starting with the 3rd byte) contains the location to each channel of each track. Those pointers are 2 bytes each (example of 2 bytes: xx xx ). There are 16 pointers total (or 32 bytes). Keep in mind that you can only play 8 instruments at one time, so assigning too many instruments to play at once will lead to cutoffs. You will notice a lot of the original songs use 2 pointers going to the same location. This is used to make stereo.

All things are linear:

The pointers at the beginning of each song tell the SPC engine to read the data at those locations starting at the exact same time. Any SPC data other than a "note" or a "rest" is negligible in real time. Only a note or a rest can be perceived in time when playing. If you want to start a track 8 beats into the song, you need to buffer that time with 2 "whole rests" just like in sheet music. I will get into that later.

Watch out for conflicts:

The game's sound effects use specific channels which will override any music in those channels. This is another important reason why the game uses stereo. A sound effect that uses one channel will not seem to impede as much if the music track using that channel is playing on another channel simultaneously.

Got it? Good. Let's go into more depth.

03 - Instrument Values
Here is a list of values that can be entered into the instrument bank for each song.
This is an incomplete list and there may be other variations and some mistakes.. but overall it is correct.

00 00 - Nothing
00 01 - Spanish Guitar
00 02 - Electric Bass
00 03 - Pan Flute
00 04 - Sitar
00 05 - Cello
00 06 - Choir
00 07 - Flute
00 08 - Clarinet
00 09 - Unusual Synth (Atma)
00 0A - Oboe
00 0B - Rock Organ
00 0C - Piano
00 0D - Strings
00 0E - Trumpet
00 0F - Hi Hat Closed
00 10 - Shadow's picked string
00 11 - Hi Hat Open
00 12 - Crash Cymbal
00 13 - Breath (like Narshe)
00 14 - Snare
00 15 - Snapping fingers
00 16 - Timpani
00 17 - Conga Drum (Tom)
00 18 - Floor Bass
00 19 - Pizzo String
00 1A - Trombone
00 1B - Harp
00 1C - Bass Guitar
00 1D - Picked String?
00 1E - Distortion Guitar
00 1F - Ocarina
00 20 - Marimba
00 21 - Snare (hard hit)
00 22 - Kick
00 23 - Cow Bell
00 24 - Tubular Bell
00 25 - Church Organ
00 26 - Woot
00 27 - Synth
00 28 - More Synth
00 29 - Even More Synth
00 2A - Snapping Fingers
00 2B - ?? Synth
00 2C - Contrabass
00 2D - Guiro
00 2E - Conga Drum
00 2F - Shaker
00 30 - Wood Block
00 31 - Bright Piano
00 32 - Acoustic Guitar
00 33 - Bagpipe
00 34 - Pan Flute
00 35 - Violin
00 36 - Bottle Blow
00 37 - Tambourine
00 38 - Male Voice
00 39 - Low Male Voice
00 3A - Female Voice
00 3B - Pipe Organ
00 3C - Metal Bang
00 3D - Metal Clank
00 3E - Xylophone
00 3F - Crowd Noise

04 - Setting Your Song's Instruments

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

On a closer look, you'll see the assignments for the song's instruments. It starts with "00 0D" which, according to the above list, is strings. The next instrument, "00 0E" is the trumpet. We can count a total of 9 instruments used in this song. Obviously, all 9 can't be used at the same time, but we'll get into that later. First, let's try swapping some instruments. It's a pretty simple process.

Go ahead, open up your Hex Editor, open up the ROM,  and navigate to Hex Address "054614". Do you see the same data as above? If not, you either have the wrong ROM or are at the wrong address.

If you see the same data, go ahead and swap "00 0D" with another value. You'll want something that can be sustained (not a piano or a xylophone). Choir might be a good one ( "00 06" ). Now, save the ROM, open it in your favorite emulator, and get into a regular battle. Do you hear the change in instrument? Fantastic. That was the easy part. Feel free to mess around with the instruments until you get a good handle of it. When you feel comfortable, you can move on the harder part…

05 - Dissecting a Song's Sequence

The actual song sequencing data is a combination of pointers, notes and operators. As I mentioned earlier, everything is linear and each track plays simultaneously and continuously. Recomposing the song requires understanding that the only way to get tracks playing together in sync is to make sure all the data on each track lines up accordingly.

Let's take a look at the Battle Theme again. This time we are going to the song itself at Hex Address: "090043"
The first part of the song's data includes the channel pointers. Here is what you see:

06 07 69 FE 4B 05 69 FE 75 00 3F 02 19 04 76 FF 9F 01 19 03 CE 03 69 FE 75 00 3F 02 19 04 76 FF 9F 01 19 03 CE 03

Now, I am not really sure about the function of the first two bytes "06 07" so I am going to leave those out.

The channel data starts at "69 FE". This says that Channel 1 will play the data at "090069" The "69" refers to the last two digits of the address where the "FE" is relative to the middle two digits. In this case, it is always two hex values less than the address' value. So, "00" minus "2" = "FE ". If you understand hex, this makes perfect sense to you. If you do not, go learn Hex.

So, lets go to that address ( 090069 ). It starts off with some important song information. Let's dissect.

F0 AA = "F0" Set the tempo of the song to value "AA"

F7 00 46 = Not quite sure what these do, so I don't touch them

F8 00 00 = Not quite sure what these do, so I don't touch them

F2 32 = "F2" set reverb amount to value "32"

C4 3C = "C4" set the volume or level of the track to value "3C"

DC 20 = "DC" set the instrument to "20" which is the first value from the instrument list found at address "054614"
So, here is how this works. "DC 20" sets the track instrument to the first value which is "00 0D" which  would make this a track with strings!
"DC 21" would set the track to the second value which is "00 0E"
"DC 22" would set the track to the third value which is "00 1E"

E4 = "E4" tells the engine to give a smooth transition between the following notes instead of ending the sample between them.

0A 34 5E 88 = these are note assignments. If you look at my Musical Notes Reference Guide, you will see that it is either a string of 16th notes at 6/4 measure or 32nd notes in a 3/4 measure. Either way, they're pretty darn short. So can you figure out what part of the song this is? It's at the beginning of the track. There are no rests and they are short notes. The notes are going higher. Yes! It's the beginning of the ramp up at the opening of the Battle Theme. Let's continue.

D7 = No, this is not a note. It's an operator. It says, "move the following notes up to the next octave"

0A 34 5E 88 = Yep, it's those same notes again.. except they are an octave higher.

D7 = Up another octave

0A 34 5E 88 = Those same notes even higher

E5 = Remember "E4"? Well "E5" says when to end the smooth transition between notes.

B6 B6 = As shown in my reference guide, I call these "whole note rests" So here we have two of them. This is because this strings section is not playing for the next 8 beats. Instead, the rhythmic is playing on other tracks.

C6 22 = Pan song left->right as "22" increases

C4 3C =  Set track volume level to value "3C"

D8 = Remember "D7" brings the octave up by 1… so "D8" brings the octave down by 1

E2 01 = "E2" sets a loop for the next sequence. "01" means the following sequence will loop twice! If it were "E2 02", the following sequence would loop three times!

E2 02 = This is a loop nested in the previous loop. It is saying to loop the following sequence three times.

42 BF C2 D7 0A BF C2 D8 42 BF C2 D7 42 BF C2 D8 50 BF C2 D7 26 BF C2 D8 50 BF C2 D7 50 BF C2 D8 = Notes, Rests, and Octave changes. These are what make up most songs. See my Reference Guide to figure out what these all mean.

E3 = "E3" ends the most recent loop

Is this all starting to make sense? I'm not going to go through every single byte, so let's get down to the nitty gritty.

Let's go to Address "090173". This is the final operator of the first track. Here's what it says:

F6 93 FE = "F6" means "Jump to".  "93 FE" is just like the channel pointers. The channel is going to start playing at address "090093". Now, that's not the beginning of the track, but it's where the strings start over after the rhythmic is done (remember the 8 beats of silence? yes, after that..)

The next byte after the "93 FE" is located at "090176". Now, look at the channel pointers at the beginning of the song. Do you see some that say "76 FF" ? Yup! Those channels are going to play that track. "76" for the last two digits of the address and "FF" because it is 2 less than "01" (the middle two digits).

05a - Things to Note:
You'll start to see patterns. Most tracks start out with a "C4 XX" but not always. I believe all tracks assign an instrument  ("DC XX" command). Each track will usually end with a "jump to" command ( F6 XX XX ) so it restarts the song. Having this jump command is EXTREMELY important otherwise the game will keep reading the data ahead of it.

To save valuable bytes, the game uses a lot of "F5 XX aaaa" operators. This will jump to address "aa aa" once it has looped XX amount of times. I will only use this if it seems I will run out of room.

I am not going to get into ALL the operators as they have already been written about in the previously mentioned "ff3info.txt". I have enclosed with this document, a "ff3-SPC-info" document which is an excerpt from that file that specifically addresses the SPC information.

06 - Recommendations on Custom Composing

The best way, that I have found, to start a custom composition is to fill each track with WHOLE RESTS.
This will give you the silence you need to start hearing your changes.
Now, you don't just want to enter B6 just throughout the entire song data. Instead, leave all the pointers at the beginning of the song and even the tempo, panning and volume settings (you can alter those later). Also, leave the jump commands ("F6 XX XX") at the end of each track. Everything in between? You got it, B6 B6 B6 B6….

When you're done doing that, you'll have a silent song.

Now, start adding your notes, rests, octave changes, and so on. This is where a MIDI sequencer or sheet music comes in handy. It's good to know what notes you'll need in each track!

You may want to try a simple 4/4 song before you get into anything crazy like "Battle on the Big Bridge" (most tedious 70 hours ever!).

Remember, SNES can only play 8 sounds at the same time, don't pick a song that has a 30 tracks!

Also note that each track can only play one note at a time - any harmonizing notes must be on different tracks.

The Musical Note Reference Guide is a good guide to use… but most importantly, USE YOUR EARS.

If a track is off by even a 32nd note, it will mess up your whole song. Everything must end (or jump to) on the same musical beat of the same measure or the whole thing will be off.

07 - Locations of Each Song (thanks to JCE3000GT)

085E7A 085E9F SPC No (Silence) (00) (51) 10/1/2002
085EA0 08661D SPC No 3.16 - The Prelude (01) 10/1/2002
08661E 086932 SPC No 1.03 - Awakening (05) 10/1/2002
086933 086F68 SPC No 2.01 - Terra (06) 10/1/2002
086F69 0872C4 SPC No 1.11 - Shadow (07) 10/1/2002
0872C5 0876BE SPC No 2.18 - Strago (08) 10/1/2002
0876BF 087AF7 SPC No 1.18 - Gau (09) 10/1/2002
087AF8 087EAE SPC No 1.07 - Edgar & Sabin (0A) 10/1/2002
087EAF 088227 SPC No 2.02 - Coin Song (0B) 10/1/2002
088228 088637 SPC No 1.13 - Cyan (0C) 10/1/2002
088638 088A99 SPC No 1.04 - Locke (0D) 10/1/2002
088A9A 088DEC SPC No 2.04 - Forever Rachel (0E) 10/1/2002
088DED 089155 SPC No 2.19 - Relm (0F) 10/1/2002
089156 08976E SPC No 2.11 - Setzer (10) 10/1/2002
08976F 089A28 SPC No 3.09 - Epitaph (11) 10/1/2002
089A29 089D61 SPC No 1.22 - Celes (12) 10/1/2002
089D62 08A7D3 SPC No 2.03 - Techno de Chocobo (13) 10/1/2002
08A7D4 08AF35 SPC No 1.24 - The Decisive Battle (14) 10/1/2002
08AF36 08B69C SPC No 2.12 - Johnny C. Bad (15) 10/1/2002
08B69D 08B9B7 SPC No 1.01 - Opening Theme 2 (03) 10/1/2002
08B9B8 08C1E7 SPC No 1.08 - Kefka (16) 10/1/2002
08C1E8 08C44B SPC No 1.02 - The Mines of Narshe (17) 10/1/2002
08C44C 08CA81 SPC No 1.15 - The Phantom Forest (18) 10/1/2002
08CA82 08D0C0 SPC No 1.01 - Opening Theme 3 (04) 10/1/2002
08D0C1 08D52F SPC No 1.17 - Wild West (19) 10/1/2002
08D530 08DC55 SPC No 1.23 - Save Them! (1A) 10/1/2002
08DC56 08DFBE SPC No 2.13 - The Empire Gestahl (1B) 10/1/2002
08DFBF 08E36A SPC No 1.12 - Troops March On (1C) 10/1/2002
08E36B 08E556 SPC No 1.21 - Under Martial Law (1D) 10/1/2002
08E557 08E5E1 SPC No Waterfall (1E) 10/1/2002
08E5E2 08EC47 SPC No 1.25 - Metamorphosis (1F) 10/1/2002
08EC48 08F1A5 SPC No 1.16 - The Phantom Train 1 & 2 (20) 10/1/2002
08F1A6 08F671 SPC No 2.20 - Another World of Beasts (21) 10/1/2002
08F672 08FC14 SPC No 2.10 - Grand Finale 2 (22) 10/1/2002
08FC15 090042 SPC No 1.09 - Mt. Koltz (23) 10/1/2002
090043 09074A SPC No 1.05 - Battle Theme (24) 10/1/2002
09074B 0907E8 SPC No Fanfare (25) 10/1/2002
0907E9 090C65 SPC No 2.09 - The Wedding Waltz 1 (26) 10/1/2002
090C66 09169B SPC No 2.08 - Aria de Mezzo Caraterre (27) 10/1/2002
09169C 091C4B SPC No 1.20 - Kids Run Through the City Corner (2A)
091C4C 0920DC SPC No 3.08 - Gogo (2D) 10/1/2002
0920DD 09288E SPC No 1.10 - Returners (2E) 10/1/2002
09288F 092B96 SPC No 1.06 - Fanfare (2F) 10/1/2002
092B97 09300A SPC No 3.11 - Umaro (30) 10/1/2002

09300B 093457 SPC No 2.17 - Mog (31) 10/1/2002
093458 0939FE SPC No 1.14 - The Unforgiven (32) 10/1/2002
0939FF 0941AD SPC No 3.03 - The Fierce Battle (33) 10/1/2002
0941AE 094664 SPC No 3.06 - The Day After (34) 10/1/2002
094665 094CB2 SPC No 2.15 - Blackjack (35) 10/1/2002
094CB3 094F6E SPC No 3.02 - Catastrophe (36) 10/1/2002
094F6F 095515 SPC No 3.10 - The Magic House (37) 10/1/2002
095516 0955DA SPC No Nighty Night (38) 10/1/2002
0955DB 0956C4 SPC No Wind (39) 10/1/2002
0956C5 095756 SPC No Windy Shores (3A) 10/1/2002
095757 0964C8 SPC No "3.14 - Dancing Mad 1, 2, & 3 (3B)" 10/1/2002
0964C9 0965CC SPC No The Raft and the Flowing River (3C) 10/1/2002
0965CD 096B02 SPC No 2.06 - Spinach Rag (3D) 10/1/2002
096B03 096C6D SPC No 3.04 - Rest in Peace (3E) 10/1/2002
096C6E 096D18 SPC No Train Running (3F) 10/1/2002
096D19 096DC1 SPC No The Dream of a Train (40) 10/1/2002
096DC2 0972D9 SPC No 2.07 - Overture 1 (41) 10/1/2002
0972DA 0973C8 SPC No 2.07 - Overture 2 (42) 10/1/2002
0973C9 097C05 SPC No 2.07 - Overture 3 (43) 10/1/2002
097C06 097EEA SPC No 2.09 - The Wedding Waltz 2 (44) 10/1/2002
097EEB 09817B SPC No 2.09 - The Wedding Waltz 3 (45) 10/1/2002
09817C 0985DA SPC No 2.09 - The Wedding Waltz 4 (46) 10/1/2002
0985DB 098A41 SPC No 1.01 - Opening Theme 1 (02) 10/1/2002
098A42 098E98 SPC No 2.14 - Devil's Lab (47) 10/1/2002
098E99 098EE7 SPC No Fire! (48) 10/1/2002
098EE8 098F84 SPC No Machine Running (49) 10/1/2002
098F85 099013 SPC No Inside the Burning House (4A) 10/1/2002
099014 0992B5 SPC No 2.16 - ??? (2B) 10/1/2002
0992B6 0995A1 SPC No 1.19 - The Serpent Trench (28) 10/1/2002
0995A2 09995E SPC No 2.05 - Slam Shuffle (29) 10/1/2002
09995F 0999DE SPC No 2.10 - Grand Finale 1 (2C) 10/1/2002
0999DF 099FBE SPC No 3.01 - New Continent (4B) 10/1/2002
099FBF 09A44E SPC No 3.07 - Searching for Friends (4C) 10/1/2002
09A44F 09A5D7 SPC No 3.12 - Fanatics (4D) 10/1/2002
09A5D8 09AE50 SPC No 3.13 - Last Dungeon & Aura (4E) 10/1/2002
09AE51 09B09E SPC No 3.05 - Dark World (4F) 10/1/2002
09B09F 09BBB8 SPC No 3.14 - Dancing Mad 4.2 (50) 10/1/2002
09BBB9 09BCF8 SPC No 3.14 - Dancing Mad 4.1 (52) 10/1/2002
09BCF9 09E13E SPC No 3.15 - Ending Theme 1 (53) 10/1/2002
09E13F 09FEEB SPC No 3.15 - Ending Theme 2 (54) 10/1/2002

08 - SPC Note Info

00-0A       Play note, frequency 0
10-1A       Play note, frequency 1
20-2A       Play note, frequency 2
30-3A       Play note, frequency 3
40-4A       Play note, frequency 4
50-5A       Play note, frequency 5
60-6A       Play note, frequency 6
70-7A       Play note, frequency 7
80-8A       Play note, frequency 8
90-9A       Play note, frequency 9
A0-AA       Play note, frequency 10
B0-BA       Play silence
C4 xx       Set volume of channel to xx (00-7F), higher values == greater volume.
C5 ss xx    Fade volume to xx at speed ss
C6 xx       Pan song left->right as xx (00-7F) increases
C7 xx       Pan song right->left as xx (00-7F) increases
//C8            Created an odd ascending portamento effect.
CD xx       Pan repeatedly back and forth at speed xx (00-FF), higher values == slower panning.
CE          Disable pan loop
D7          Raise octave by 1
D8          Lower octave by 1
DE          Disables DF.
//DF            Created an odd volume "cut" very shortly into the note...
//E4            Creates a portamento effect linking all following notes with pitch slides.
E5          Disables E4.
E6          Enable vibrato.
E7          Disable vibrato.
F0 xx       Set tempo to xx (00-FF), higher values == faster tempo.
F1 ss xx    Fade tempo to xx at speed ss
F2 xx       Set echo to xx
F3 ss xx    Fade echo to xx at speed ss


0x70ba2: Table of loop start for the samples (2 bytes for each sample)
0x70ae7: Table of addresses for samples (3 bytes)
0x70e11: Table of the samples used in each song (16x2 bytes)
0x70d18: Table of adresses of the songs (3 bytes)
0x70c1e: Table of relative frequencies for each sample (1 signed byte, add 256 to get the relative frequency)
There are 82 songs in FF6US.
The samples begin with the length of the sample in bytes, then the sample comes after it, in BRR format. Every 16 samples are compressed into 9 bytes. They have the following format:
rrrrffle 01 23 45 67 89 AB CD EF
rrrr - Granularity (shift every nybble upwards by this granularity)
ff - filter designation
l - looping sample, only used in the last block
e - end of sample
01010000 01 23 21 0F ED CB CD EF
0000 0020 0040 0060 0040 0020 0000 FFE0 FFC0 FFA0 FF80 FF60 FF80 FFA0 FFC0 FFE0

The songs begin with 19 words. Word 3 to 11 contains the low 16-bit half of the offset to each channel's data. The high half is the same as the address to the table if the low part is higher than the low part of the address of the table, if it is lower, the high half is the high half of the address to the table +1.
The format of each channel in the song:
Bytes below 0xC4 - Divide by 14 to get the note. 12 is nothing and 13 means note off. The remainder is an offset to a table which contains the length of the note. The table is:
192, 96, 64, 72, 48, 32, 36, 24, 16, 12, 8, 6, 4, 3
C4 xx: Volume
C5 tt xx: VolSlide
C6 xx: Pan
C7 tt xx: PanSlide
C8 tt xx: Portamento. Xx denotes the increase in pitch. When this is immediately followed by a note, the portamento comes after the note.
C9 ss tt dd: Vibrato. Ss is the speed of the vibrato. Tt is the time until the vibrato appears. Dd is the depth.
CA: Vibrato off
CB ss tt dd: Tremolo
CC: Tremolo off
CD ?? ??: Pan sweep back and forth
CE: Pansweep off
D6: Set octave
D7: 1 Octave up
D8: 1 Octave down
DA: Set transpose
DB: Add to transpose
DC: Change sample
E2 xx: Loop start. Xx is number of times to loop -1.
There can be up to 4 nested loops.
E3: Loop end
E8 xx: Set the length of the next note
EB: End of channel
F0: Set speed
F5 xx aaaa: When instruction has been executed xx times, jump to aaaa and end the most recent loop
F6 aaaa: Jump to aaaa
FB: set drum mode on
FC: set drum mode off
I don't know where the table for the drums is, but it is 36 bytes for each song containing the instrument, note and pan position for each drum.

We are born, live, die and then do the same thing over again.
[-] The following 1 user says Thank You to Gi Nattak for this post:
  • Astaroth_ (04-23-2013)

Posts: 2,762
Threads: 88
Thanks Received: 50
Thanks Given: 265
Joined: Jun 2009
Reputation: 25
this looks really complex, but this is promising

"Sometimes ninjas do wrong to each other, and in dat way the force of tha earf' comes around da moon - and at that presence, da dirt, it overshadows the grass, so you're like, I can't cut dis grass, there's no sun comin' through. So in order to enable each other the two fruits have to look each other in da eye and understand we can only be right, as da ripe is wrong, you know what I mean?"

[-] The following 1 user says Thank You to SSJ Rick for this post:
  • Gi Nattak (05-26-2013)

yeah its a long text poco XD , but thnx nattak for this tutorial i was searching for someone who knew how to this kinda shit and you did it !!!!! XD good work bro

Posts: 4
Threads: 1
Thanks Received: 0
Thanks Given: 0
Joined: Aug 2010
Reputation: 0
Great tutorial, hacking the music is one of the first thing I tried to do with the FF games. Its harder then even getting the movies off those disk.

Posts: 413
Threads: 20
Thanks Received: 0
Thanks Given: 0
Joined: Sep 2010
Reputation: -1
?.? O_O dont undestand this but i do my best because i need an new fight theme for my FF6 hack.

Wurmi: ... i live in Peach`s castle together with don`t know how bad that is D:
Mario: is this so bad?
Wurmi: *cries*
Mario: don`t worry i am here Laugh
Wurmi: UWAAAAH! D;

Posts: 13
Threads: 2
Thanks Received: 0
Thanks Given: 0
Joined: May 2011
Reputation: 0
The FF3US-MUSIC.pdf is gone. Could someone re-upload it?

Posts: 2,322
Threads: 92
Thanks Received: 332
Thanks Given: 303
Joined: Aug 2009
Reputation: 44
Thanks, and fix'd.

We are born, live, die and then do the same thing over again.

Posts: 109
Threads: 11
Thanks Received: 2
Thanks Given: 8
Joined: Jun 2011
Reputation: 1
Sorry if I sound like a noob, as I'm relative new to this type of hacking, as of now, I can do nothing more than changing around the instruments in the FF6 battle theme - "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" Changing things like "00 0D" to "00 06" isn't all that overwhelming. But what I want to know if I were to take say, a song from CT/Silent Light, and replace it over the FF6 cave theme (like what GiNattack did with the Eternal Crystals hack), what exactly do you do to place it in the right sequence? Do you copy and paste it in a text editor and then edit it accordingly with a hex editor?

Posts: 2,322
Threads: 92
Thanks Received: 332
Thanks Given: 303
Joined: Aug 2009
Reputation: 44
(06-27-2011, 06:26 PM)the_randomizer Wrote: But what I want to know if I were to take say, a song from CT/Silent Light, and replace it over the FF6 cave theme (like what GiNattack did with the Eternal Crystals hack), what exactly do you do to place it in the right sequence?

First of all, JCE3000GT is responsible for injecting Chrono Trigger's Silent Light into FF6 that replaces Umaro's theme, and has released the patch for it. I had nothing to do with it, or Eternal Crystals for that matter, that hack belongs to MetroidQuest.

Now you see, the way MetroidQuest is doing his custom music is by literally custom composing it, rather manually sequencing the music data using a hex editor and the help of a midi sequencer, and that is what this tutorial here explains. It is incredibly challenging, and requires some actual knowledge about musical notation.

The way JCE3000GT is injecting music into FF6, is by finding Squaresoft games with similar SPC cores, like Chrono Trigger, Romancing Saga's, Radical Dreamers, etc. These games use the same type of commands and code for the music that you will see in the FF6 song data. But while similar, they are not the exact same, and still requires a lot of know-how and experience to properly cross the songs over, it is no easy feat in itself, but is certainly easier than composing a custom song from scratch by referencing a midi sequencer, or sheet music.

(06-27-2011, 06:26 PM)the_randomizer Wrote: Do you copy and paste it in a text editor and then edit it accordingly with a hex editor?

No, that usually will not work. You might hear parts of the track, but it is not that simple and would most likely come out sounding bad, because the games use slightly different commands here and there, and you must consider that If you wanted to copy/past (insert the binary data) from one track from another songs data, it would have to be the same size or smaller. I have had mild success with crossing some songs tracks over with this method, Ruined World from CT is one that comes to mind, but only a very select few songs will sound good. Pretty much every song will need more work than just copy and pasting one track, to another.

You must estimate the size of the sequence data and create the length-specifying bytes when you insert it. If the data exceeds that of the original song data, you will have to put the new song data where there is enough free space, and then change the pointers and instrument sample indexes and all that. Hopefully JCE3000GT can explain how he does it better when he gets back.

We are born, live, die and then do the same thing over again.

Posts: 109
Threads: 11
Thanks Received: 2
Thanks Given: 8
Joined: Jun 2011
Reputation: 1
I know there's that program that JCE3000GT made, but it doesn't allow one to export/import spc files, but anyways, I need to experiment more with the sound tutorial first, like swapping instruments and sequences. Heck, I need to know more about music first. A challenge to be sure, but it's something I definitely want to learn more about. Hit

A quick off topic question about Breath of Fire 2, but this is still related to SPC hex hacking, halfway through the game, the battle theme changes over (after you get the magic flute for Tunlan). Yes, there are people out there who like the second theme better, but I don't. What values/address need to be located and changed, which control both SPC files? Has anyone found the addresses for BOF2?

Forum Jump:

Users browsing this thread: 1 Guest(s)

Theme by Madsiur2017Custom Graphics by JamesWhite