Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,434,521
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-19-24 05:05 AM
Guest: Register | Login

0 users currently in ROM Hacking | 1 guest | 1 bot

Main - ROM Hacking - Super Mario Kart custom music (How I do it) New thread | New reply

Pages: 1 2

BLaBrake
Posted on 07-26-14 07:44 AM (rev. 4 of 08-04-14 11:07 AM) Link | Quote | ID: 157517


Goomba
Level: 14

Posts: 11/34
EXP: 11867
Next: 1204

Since: 06-27-14

Last post: 2420 days
Last view: 247 days
There seems to be some ongoing interest in this and yet there's no real guide for it. I've spent many hours of trial and error to get some results. While this may not be a true tutorial, it should be enough of a guide to lead people into the right direction to make it happen. Here's my method. I'm open to feedback, mistakes being pointed out, and suggestions on how to make the process more efficient. Maybe in time we can compile a real tutorial for future hackers.


First off, I've been porting midis of non gaming songs. I use MVS's Ultimate Music Tutorial to prep my files. Follow the steps, but of course ignore the references to SMW and addmusic. We're not using those. You can find that guide here: http://www.smwcentral.net/?p=viewthread&t=54040

After you're midi is fixed and ready for insert, I export each instrument to it's own .mid file. Probably unnecessary, but it makes it easier for me to keep track of things. I export them to the folder with tinymm in it. Drag each .mid file into tinymm and now you'll have a .mml file.

Open the mml editing tool and then open one of your new .mml files you just created. Under tools, click the Fix MML File option. Copy the new text that was made and copy/paste it into a new .txt file.

At the top of what you paste, you need to change the following for each instrument. The layout goes in this order (ignore parentheses): #1(Channel) @15(Instrument) v200(Volume of instrument for mixing) y10 t39(Tempo)

Change each item as needed. You have channels 0-7 to work with. 3,5,6,7 are shared with sound effects. By experimenting, I've seemed to notice those channels are used for the following:

Channel 3-Pick up coins, jumps, end of the item pick up jingle, and bogged down off road sounds
channel 5-going through water or mud
channel 6- other drivers' engines
channel 7-your own engine

The rest of the commands are in the porting tutorial if you want to experiment with them. An instrument list can be found here under Dirtbag's notes: http://acmlm.kafuka.org/board/thread.php?id=4412&page=21

After all instruments are set, save your text file. Next go here to get messiaen's import tool. (It's about half way down the thread) http://acmlm.kafuka.org/board/thread.php?id=5604

Extract to a new folder. Put a copy of cmd.exe, a copy of the rom you're working with, and your new .txt files in there. Open the command prompt in the folder and type in "nspc yourfile.txt" You'll now have a file called "yourfile.txt.bin"

Make sure the new music is no bigger than the one you are replacing or else you will overwrite data and corrupt your rom. Here are the original sizes as noted in the Stifu's offset notes:

Title - 419
Player Select - 11E
Mario Circuit - 575
Donut Plains - 49F
Choco Island - 527
Koopa Beach - 43A
Vanilla Lake - 474
Ghost House - 2A2
Bowser Castle - 375
Battle Mode - 4A0
Podium (1st-3rd) - 210
Podium (4th) - 1D9
Credits - 454
Rainbow Road - 551

Still in the command prompt, type in the following: "smk -e yourfile.txt.bin yourSMKfile.smc 2" The number at the end is for the location that you are replacing. They are as follows:

1-Title Music (currently does not work)
2-Player Select
3-Mario Circuit
4-Donut Plains
5-Choco Island
6-Koopa Beach
7-Vanilla Lake
8-Ghost House
9-Bowser Castle
10-Battle Mode
11-Podium Finish (1st-3rd places)
12-Podium Finish (4th place)
13-Credits
14-Rainbow Road

Load up your rom and test it. Don't be surprised if you need to tweak things a few times with instruments and such to get it to sound right. That's why I said to use a copy of your rom.

Hopefully this has worked for you. If not, please let me know. I've gotten so much help from the community and now I want to give back.

gridatttack
Posted on 07-28-14 03:50 AM Link | Quote | ID: 157538


Red Cheep-cheep
Level: 32

Posts: 162/202
EXP: 203632
Next: 2810

Since: 07-11-10

Last post: 1421 days
Last view: 246 days
Thanks for the tutorial.

I wonder, how do I make sure I dont exceed the original file size?

____________________

BLaBrake
Posted on 07-28-14 09:24 AM Link | Quote | ID: 157540


Goomba
Level: 14

Posts: 15/34
EXP: 11867
Next: 1204

Since: 06-27-14

Last post: 2420 days
Last view: 247 days
There's a couple of ways. You can use the data looping technique discussed in MVS's porting tutorial or remove an instrument's part that's not really essential. To play it safe, I've been using just a verse and chorus then let that loop. It's not like that races are that long to play through and it's kept my files sizes at about half of the original song's.

gridatttack
Posted on 07-28-14 09:50 AM Link | Quote | ID: 157541


Red Cheep-cheep
Level: 32

Posts: 163/202
EXP: 203632
Next: 2810

Since: 07-11-10

Last post: 1421 days
Last view: 246 days
Posted by BLaBrake
There's a couple of ways. You can use the data looping technique discussed in MVS's porting tutorial or remove an instrument's part that's not really essential. To play it safe, I've been using just a verse and chorus then let that loop. It's not like that races are that long to play through and it's kept my files sizes at about half of the original song's.


Thanks. I wonder, what are the original file size of each music?

Also I wonder, what if the new file is smaller than the original? Will it cause any trouble?

____________________

Mattrizzle
Posted on 07-28-14 01:22 PM Link | Quote | ID: 157542


Red Cheep-cheep
Level: 33

Posts: 197/202
EXP: 226206
Next: 2973

Since: 04-21-07
From: United States

Last post: 2413 days
Last view: 2374 days
Posted by gridatttack
Also I wonder, what if the new file is smaller than the original? Will it cause any trouble?
No, it shouldn't. You'll just be left with free space after your music file.

____________________

BLaBrake
Posted on 07-28-14 02:55 PM Link | Quote | ID: 157544


Goomba
Level: 14

Posts: 16/34
EXP: 11867
Next: 1204

Since: 06-27-14

Last post: 2420 days
Last view: 247 days
The original music file sizes are as follows:

Title - 419
Player Select - 11E
Mario Circuit - 575
Donut Plains - 49F
Choco Island - 527
Koopa Beach - 43A
Vanilla Lake - 474
Ghost House - 2A2
Bowser Castle - 375
Battle Mode - 4A0
Podium (1st-3rd) - 210
Podium (4th) - 1D9
Credits - 454
Rainbow Road - 551

Stifu
Posted on 07-28-14 06:55 PM Link | Quote | ID: 157546


Cobrat
Level: 56

Posts: 532/666
EXP: 1360506
Next: 37670

Since: 02-22-07

Last post: 678 days
Last view: 300 days
Posted by BLaBrake
The original music file sizes are as follows (...)

And it's all in the offset notes. Lazy gridatttack.

gridatttack
Posted on 07-28-14 07:28 PM Link | Quote | ID: 157547


Red Cheep-cheep
Level: 32

Posts: 164/202
EXP: 203632
Next: 2810

Since: 07-11-10

Last post: 1421 days
Last view: 246 days
Thanks all
Posted by Stifu
Posted by BLaBrake
The original music file sizes are as follows (...)

And it's all in the offset notes. Lazy gridatttack.


Welp, I swear, I checked them, but I dont remember them >.>

But yes, unfortunately I dont have much free time (or access to my laptop) so, :effort:



____________________

Chaobomr
Posted on 07-28-14 07:58 PM Link | Quote | ID: 157548


Buster Beetle
Banned: Spammer takeover?
Level: 45

Posts: 364/467
EXP: 638217
Next: 21947

Since: 05-07-13
From: The dirty south

Last post: 3473 days
Last view: 3471 days
Can this be done for many SNES games? I'm personally not interested in SNES hacking, but making SNES music could turn into one of my many hobbies.

____________________
Sorry for the stupidity. That jerk will be dealt with in the most insane way possible.

dirtbag
Posted on 07-28-14 08:26 PM Link | Quote | ID: 157552


Red Koopa
Level: 27

Posts: 108/128
EXP: 114611
Next: 1548

Since: 02-24-07

Last post: 3180 days
Last view: 3093 days
Good work BLaBrake, interesting I got the music channels slightly off.

It's worth pointing out that once you have the .bin file you can compress and insert the music with EE or luna compress. This means if we can findout where the other music is stored in the game we can edit those also.

As for the title music if the address is 68003/4 then the tool Messen made will have the wrong offset. However I still can't change it with custom music, although I can with a copy of the GV music.

Chaobmr, yes but with slightly different tools. I'd suggest you would do SMW as there are more details, tools and things to get you going.

What I have not worked out yet is how to get a MIDI tracker (I am using 3MLE currently) to have custom instrument set. I'll be more than happy to invest the time to extract and convert the BRR files to WAV if they could them be used to compose a MIDI. Anyone any experience with this sort of thing?


MiniCompute
Posted on 07-28-14 08:43 PM Link | Quote | ID: 157554


Bubble
Level: 66

Posts: 562/981
EXP: 2420049
Next: 41802

Since: 04-25-07

Last post: 482 days
Last view: 691 days
Posted by dirtbag

What I have not worked out yet is how to get a MIDI tracker (I am using 3MLE currently) to have custom instrument set. I'll be more than happy to invest the time to extract and convert the BRR files to WAV if they could them be used to compose a MIDI. Anyone any experience with this sort of thing?



You can try this out here http://www.anvilstudio.com
You can try sonar producer v7.0 or up

BLaBrake
Posted on 07-29-14 05:52 PM (rev. 2 of 08-04-14 10:56 AM) Link | Quote | ID: 157568


Goomba
Level: 14

Posts: 18/34
EXP: 11867
Next: 1204

Since: 06-27-14

Last post: 2420 days
Last view: 247 days
Dirtbag, yes I found that channel 3 uses the coin pickup sound, jumps, the end of the picking up an item jingle, and the bogged down sound (like driving over snow on Vanilla Lake). I almost have all of my songs initially inserted. I plan on going back and tweaking them to work with the sound effects and loop a little better. I just found out about the [r1]99 trick to stop songs from looping too quickly.

Good point to mention that Lunar can be used to insert .bin's too. I'll add that later to the first post along with what sound effects go on which channel.

I do have a question though. I plan on poking around with the unknown data areas mentioned in the offset notes after I'm done working on the first version of my hack. How should I extract the files or what can I use to test them to see if they are music? I should be reaching that stage in the next couple of weeks.

Edit: Best I can tell channel 3 is for coin sounds, etc, channel 4 is open, 5 is for going through water and mud, 6 is for the other racers engine sounds, and 7 is your own engine sound.

dirtbag
Posted on 07-31-14 10:51 PM Link | Quote | ID: 157603


Red Koopa
Level: 27

Posts: 109/128
EXP: 114611
Next: 1548

Since: 02-24-07

Last post: 3180 days
Last view: 3093 days
Posted by BLaBrake

I do have a question though. I plan on poking around with the unknown data areas mentioned in the offset notes after I'm done working on the first version of my hack. How should I extract the files or what can I use to test them to see if they are music? I should be reaching that stage in the next couple of weeks.


That is the question you can try corruption, or extraction at different offsets and recompression/ insertion. There will be more elegant ways debugging the game to work backwards to where the music is loaded in to the SPC's memory, but I can't tell you how. I'm assuming the data is all compressed.

@MikeTechno: Thanks that's very helpful, I guess the term I was looking for is sound font

MiniCompute
Posted on 07-31-14 11:12 PM Link | Quote | ID: 157605


Bubble
Level: 66

Posts: 565/981
EXP: 2420049
Next: 41802

Since: 04-25-07

Last post: 482 days
Last view: 691 days
Posted by dirtbag
Posted by BLaBrake

@MikeTechno: Thanks that's very helpful, I guess the term I was looking for is sound font


Thats the best you can hope right now, the rest you will need to search, dig and sift through stuff to find free quality stuff.

http://www.soundfonts.gonet.biz
I'm about to purchase a new pci-e sound card so I can have a dedicated synthesizer.
Doing without one for too long and making music without hearing it in any midi editor is a bitch especially on windows vista- windows 8.


BLaBrake
Posted on 08-08-14 11:57 AM Link | Quote | ID: 157727


Goomba
Level: 14

Posts: 23/34
EXP: 11867
Next: 1204

Since: 06-27-14

Last post: 2420 days
Last view: 247 days
Anybody know how to keep the "Hurry Up!" tempo speed for the last lap after the music loop has played through once? It plays fine the first time and then goes back to normal speed afterwards. I'm not sure if it's in the way I wrote my file or if I'm missing a command. I would guess the answer would be similar to how it's handled for SMW?

MiniCompute
Posted on 08-11-14 05:56 AM Link | Quote | ID: 157755


Bubble
Level: 66

Posts: 572/981
EXP: 2420049
Next: 41802

Since: 04-25-07

Last post: 482 days
Last view: 691 days
Posted by BLaBrake
Anybody know how to keep the "Hurry Up!" tempo speed for the last lap after the music loop has played through once? It plays fine the first time and then goes back to normal speed afterwards. I'm not sure if it's in the way I wrote my file or if I'm missing a command. I would guess the answer would be similar to how it's handled for SMW?


Ask stifu if his editor can normalize the tempo speed for the last lap.
If I'm not mistaken you would have to do a little bit of hex editing in the rom to get it to work.
Thats about as far I can get you to. :/

Stifu
Posted on 08-11-14 06:51 PM Link | Quote | ID: 157760


Cobrat
Level: 56

Posts: 541/666
EXP: 1360506
Next: 37670

Since: 02-22-07

Last post: 678 days
Last view: 300 days
Posted by MikeTechno
Ask stifu if his editor can normalize the tempo speed for the last lap.

Nope.

MiniCompute
Posted on 08-11-14 08:32 PM Link | Quote | ID: 157768


Bubble
Level: 66

Posts: 574/981
EXP: 2420049
Next: 41802

Since: 04-25-07

Last post: 482 days
Last view: 691 days
Posted by Stifu
Posted by MikeTechno
Ask stifu if his editor can normalize the tempo speed for the last lap.

Nope.


:/ well the only place left is to ask the smwcentral addmusic moderator blabrake.
http://www.smwcentral.net/?p=profile&id=9961

Have him view this thread and show him your text file.
If he doesn't know it may have to stay onthe back burner for now.

dirtbag
Posted on 08-11-14 10:19 PM Link | Quote | ID: 157770


Red Koopa
Level: 27

Posts: 110/128
EXP: 114611
Next: 1548

Since: 02-24-07

Last post: 3180 days
Last view: 3093 days
I'd not really tested music in tracks too much before. I've had a go and you're quite right the 5th lap sped up music only lasts for one loop of the song then it returns to normal speed.

Maybe it's something to do with the head values we are using. Really we need to extract some of the orginal music and with a list of SPC codes workout how they are different.

MiniCompute
Posted on 08-11-14 11:10 PM Link | Quote | ID: 157771


Bubble
Level: 66

Posts: 575/981
EXP: 2420049
Next: 41802

Since: 04-25-07

Last post: 482 days
Last view: 691 days
Posted by dirtbag

Maybe it's something to do with the head values we are using. Really we need to extract some of the orginal music and with a list of SPC codes workout how they are different.


Hmm since you put it that way you would need to adjust the tempo in your mml file somehow.
That or seek out the help of masterlink at smwcentral, he should be able to tell you what to do in order to stabilize the tempo in all the laps.

Good luck.
Pages: 1 2


Main - ROM Hacking - Super Mario Kart custom music (How I do it) New thread | New reply

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.028 seconds. (348KB of memory used)
MySQL - queries: 132, rows: 172/172, time: 0.018 seconds.