Pages: 12 »
Posted on 06-04-18, 04:21 pm in tutorial (Updated) Music Hacking Guide for New Super Mario Bros. (rev. 6 by TheTimebreaker on 06-22-18, 08:36 am)
W1 out :)

Karma: 494
Posts: 82/229
Since: 10-22-17
Ermm...Hey there. Yeah that's right, another Music hacking guide.

But we already have a Music Hacking Guide!
Yeah I know. But it's outdated, some things are more complicated than necessary and honestly it was hard to understand (at least for a music-hacking-noob like me)

Who should read this guide?
This guide won‘t help you if you are already a music hacking god. If you are just getting started, a beginner, then this guide should help you.

That's not working!
If you did everything right, it should. You probably did something wrong.
But you can try a different method, some things simply don't work with a certain method. But if that's the case, it is mentioned (if i did not forget it of course ^^)

I don't understand that!
Reading again can help. But if you still have no clue what I am talking about you can watch one of the videos linked at the end of each chapter.
If you want to harm yourself by looking at my bad editing skills: I won't stop you. But you've been warned /._./
Oh yeah, I didn't use the YouTube tag of this page because YT videos are taking way to much space and will disturb you more than it will help.
Playlist with all videos: Link

I still have a question!
If you tried reading again, watched the video, tried again at the next day and still have a question: Ask either in the forum or below this tutorial. But be polite (sad that this has the be said) and EXPLAIN YOUR PROBLEMS EXACTLY AND WITH SCREENSHOTS (sorry about yelling, but really: no one can help you when you don't describe your problem)

1. Theory
2. What you need (Tools)
3. Scenarios
-> I....Extract Sound Database from NSMBDS
-> II...Extract Sound Database from other DS games
-> III..Extract a song from any DS game using VGMTrans (easier method)
-> IV...Extract a song from any DS game using Nitro Studio (harder method)
-> V....Extract a song from any DS game when VGMTrans crashes or won't work properly
-> VI...Edit and/or create a song
-> VII..Insert a song into a Sound Database (replacing method)
-> VIII.Insert a song into a Sound Database (inserting method) or: How to add more songs to your game
-> IX...Re-insert an edited Sound Database into NSMBDS
-> X....Note about Sound hacking
4. Thanks/Sources
5. Final Words
1. Theory Game Theory? nope, sry

I know, no one likes to read a ton of theory without doing anything. But: Without knowing the theory behind something you will not be able to understand what you are doing. Also, it makes a ton of things much easier.

Every DS game contains a file with the format ".sdat". This stands for Sound Database and you guessed it right! It contains all songs used in a specific DS game.
E.g. the sound_data.sdat from New Super Mario Bros. contains all good (and not so good) tracks like the Overworld Theme, the Underground Theme, the Credit Theme and so on

In this .sdat files we have a structure that can be found in every DS Game:

Sequence: Format = .sseq, Basically a converted MIDI file. Tells the game, wich instrument plays wich note when, how, with which volume, etc.
Sequence Archive: Can be compared to the Wave Archive, just for .sseq files. But Nitro Studio can't edit them and we don't have to edit them for Music Hacking either.
Bank: Format = .sbnk, Those files contain information about the used instruments.
Wave Archive: Format = .swar and .swav. A .swav file is a converted WAVE file. A .swar file contains plenty of those .swav files. The .swav files can contain SFX, Instruments and a ton of other stuff. Bank files need those files to work.
Stream: Some DS games can use "streamed" music (e.g. Animal Crossing Wild World Title Screen Music is a streamed track). But NSMB DS does not use these files so for hacking the Music and the Sound of this game you won't need this folder.

You won't need to edit "symb.bin" and "info.bin" because Nitro Studio does this on it's own.
SYMB.bin: Contains the names of all files (e.g. BGM_VS_CHIJOU and all other names of all other files contained in the Sound Database file.
INFO.bin: Contains information about each entry. Volume, Priorities, wich bank file is used by wich Sequence file and everything else

Short Explanation:
File ID: Refers to a File in FILES->Sequence/Bank/Wave Archive. Wich sub-folder it is depends on if you are looking at a Sound Sequence entry, a Instrument Bank entry or a Wave entry.
Bank ID: Refers to an entry in the Instrument Bank. The File ID found in the instrument bank refers to a .sbnk file in the FILES->Bank folder.
Wave 0/Wave 1/Wave 2/Wave 3: (not on the picture) These entrys can be found in any Instrument Bank entry below the Banks file ID. Those refer to entrys in Wave.
Volume: Usually 127. Sets the Volume of the track.
Channel Priority: Usually 64. The DS can only play 16 channels at once. If a situation would force the device to play more than 16 channels, the system will cut off the Music/Sound with the lowest priority. But you shouldn't set this to something different than 64 unless you know what you are doing.
Player Priority: Usually 50. Same explanation as above. Set this to 50 unless you know what you are doing.
Player Number: Usually 0. Because the DS has to play multiple things at once, there are multiple players. Each player plays one sequence (a piece of music, a SFX, ...). Set it to 0 unless you REALLY know what you are doing.
2. What you need (an overview)

I will of course tell before each chapter wich tools will be used but if you were just looking for a complete "What do I need to hack Music and Sound?" list: Here we go.

- Your very own copy of New Super Mario Bros. and a ROM of it on your computer (No one was expecting that!)
- time (hacking music and sound can be a lot of trial and error and takes a lot of time if you want to create completely original tracks)

- Nitro Studio (the best sound_data.sdat editor in the entire multiverse, GitHub Link)
- VGM Trans (Can be used to listen to the tracks and extract/convert some files; GitHub Link)
- kiwi.ds/NDS Editor (Can be used to look inside the files of DS Games. Needed, if you want to use tracks and sounds from another DS game; Link)
- NSMBe (You should probably know what this is used for Link)
- NSMBe modified (Needed if you want to add more songs into the game (we will come to that later); Link)

Because Nitro Studio can do all the conversions we need by it's own, you don't need to download them (especially because the Nitro Studio version of some converters is working better than it's .exe counterpart. But listing them here does not hurt anyone:

A MIDI editor of your choice to create and/or edit MIDI files, e.g.:
- Anvil Studio (free; Link)
- Cakewalk Sonar (with costs, but trials exist; While writing this tutorial, I could not find a way to download this trial from the official website, so if you wanna use this program: Google is your friend)
- FL Studio (with costs, but trial version works perfectly for everything we are doing with it; Homepage)
basically any MIDI editor should work. But things might work slightly different with each editor.

But one MIDI editor you definetly need is:
- Anvil Studio (free; Link; Used for looping the tracks)

And last but not least: interest and patience!

'nuff said. Let's jump right into it.

3. Scenarios

I. How to get your own NSMBDS-.sdat file
What you need for this: NSMBe (any version), ROM of NSMBDS (any region should work, but because most hacks are done for the US version and I don't know if there are any side effects using different regions for music hacking, you should probably use a US ROM)

That's basically the first thing you need to do when hacking music. You extract the .sdat file and save it somewhere.

Step 1:
Open NSMBe (any version) and open your NSMBDS ROM.

Step 2:
Click on "ROM File Browser" and look for "root". Expand it.

Step 3:
You should now see "mgvs_sound_data.sdat" (= songs used in Mario versus Luigi mode (MvL for short) and the minigames) and "sound_data.sdat" (= tracks used in the "normal" levels). Left-click and choose "Extract" at the bottom of the window. Do this for both files

Congratulations! You now have your own copy of the NSMB Sound Database.

video on youtube


II. How to extract the Sound Database from other DS games
What you need for this: kiwi.ds/NDS editor, ROM of any game you want

While this is a little bit more complicated than doing this with NSMBDS, it's not the most complex thing in this tutorial. Let's get started:

Step 1:
Get any DS game you want (.nds format and legally bought please) and copy it to an easy-to-find folder.

Step 2:
Open up kiwi.ds, click on "File", then on "Open" and open a DS game of your choice.

Step 3:
As you can see the game was added to the list. Double-click it and two smaller windows should open (if not: Click on "View", then on "File Browser" and try double-clicking the game again)

Warning: kiwi.ds can't open all DS games. For some reason, some games can't be opened at all or double-clicking some games to look at their files crashes kiwi.ds. Sorry about that, but I can't help you with that
But don't worry: I tried kiwi.ds with a lot of games and at least the bigger games like Mario games seemed to work (but I didn't try ALL Mario games, guess you will have to try it out by yourself to see if it's working)

One window contains a ton of informations about the game. You can memorize this if you want to impress your friends: Then close the window, we don't need it.
Take a look at the second window. This thing should be a list containing the ROMs name only. Expand the list by clicking on the "+" symbol on the left side of the name.

Now it gets a little tricky: you have to find the Sound Database by yourself. Because every game contains the file somewhere else you have to expand all sub-folders to look for the file. But luckily they are called something similar to "sound_data.sdat". You can find it if you just try hard enough.

Step 4:
You found the Sound Database AND ticked the box on it's left side? Great! Now look at the buttons above the whole list: hover your cursor over the buttons. The first one should say "Extract Selected". Press that button. A message should pop up, saying that one file was extracted successfully. Close that message
note: Some games have multiple .sdat files. In that case: select all .sdat files and extract them.

Step 5:
Go to the folder where you saved your ROM. There should be another folder with the same name as the ROM. Open it and it's subfolders until you find a file called something similar to "sound_data.sdat". That's the Sound Database. Rename it so you don't forget the game it's from and copy it whereever you want it to be.

Step 6:

video on youtube


III. How to extract a song from NSMBDS (or any other game) using VGMTrans (easier method)

This method is the easiest way to extract a track from any game. If VGMTrans crashes while opening the file, look at V. How to extract a song from another game when VGMTrans crashes or won't work properly
Step 0.5:
When opening some game's Sound Database you might face a problem: All tracks have the same name (e.g. Animal Crossing, Mario Kart DS).
To find the song you need you have to options:
....1st: Listen to every song using the PLAY function until you find the track you want.
....2nd: Research for a list. Google is your friend.
Some games like NSMBDS have a list and their files have names, making it a lot easier to find them. If you can't find the song you want by using the 2nd method you have to use the 1st one

Step 1:
Open VGMTrans and open your Sound Database.

Step 2:
Choose the song you want to extract by left-clicking it. You can play the songs by left-click on their name followed by pressing SPACE on your keyboard.

Step 3:
In the left-bottom corner you will see a small box containing different files. Those are the .sseq, the .sbnk and the .swar files that song is made of.
.sseq file: The first entry. Icon: notes and music paper. Can be exported as .sseq/Sequence file and as .mid/MIDI file.
.sbnk file: The second entry. Icon: Violin or guitar or something similar. Can be exported as .sbnk/Bank file, as .dls/Downloadable Sounds file and as .sf2/SoundFont2 file.
.swar file(s): Every other file after the Bank file. Icon: a Wave. Can be exported as .swar/Wave file or as .wav/Wave file.
Right-click every entry in that list and press "Save as original format". Don't forget to add the extensions .sseq, .sbnk and .swar to the files.
If you want to edit this track/use it as a base for a new song: Additionally Save the Sequence file as MIDI and the Bank file as DLS and/or SoundFont2 file.

video on youtube


IV. How to extract a song from NSMBDS (and any other game) using Nitro Studio (harder method)
What you need for this: Nitro Studio, Sound Database of NSMBDS
note: This method is a little bit tricky because you have to jump a lot between folders and lists. But if VGMTrans crashes or won't work properly, this method can help.

No matter if you want to create a new song or just arrange one from another game or just copy/paste a song from another DS game: You need to extract the song first to do all of this.

Step 1:
Open Nitro Studio. Select "File" (next to "Edit", "Help" and "About"), "Open" and open up your Sound Database.

Step 2:
Expand "Sound Sequence" and left-click the song you want to extract. If you are not sure wich song you want you can left-click every song one by one and press "Play" on the left side of the window to see if that's a song you want or you can use the List of Music.

Step 3:
After Left-Clicking the track you see some informations popping up at the left side of the list.

Short Explanation:
File ID: Refers to a .sseq file in the FILES->Sequence folder
Bank ID: Refers to an entry in the Instrument Bank. The File ID found in the instrument bank refers to a .sbnk file in the FILES->Bank folder.
Volume: Usually 127. Sets the Volume of the track.
Channel Priority: Usually 64.
Player Priority: Usually 50.
Player Number: Usually 0.
If you are not sure about the last four settings; don't worry. You can set them to the usual value and forget about it in most cases.

Write down the number (and the name if you wanna play it safe) of both File ID and Bank ID.

Step 4:
Fold in (the opposite of expanding the list. No idea what's the correct term for that) the "Sound Seqeunce" List And take a look at "FILES":
Expand the "FILES" list.

Step 5:
Expand "Sequence" and look for the File ID you noted.
Right-Click the File and select "Export".
Navigate to a place where your file stays safe and give him a cool name (or just keep the original name to keep track of the songs).
Right below the name you are giving the extracted file you see a box saying "MID Sequence File (*mid)". If you want the MIDI file simply ignore this box. If you want the .sseq file click on that box and select "Misc. Nitro Sound File (*.sseq)" If you are not sure what you want (or you know that you will need both files) just extract both formats by saving one format, then Right-Click the file again to choose a different format.
note: When you want to edit this song, you need the MIDI file. But extracting both does not cost much time and disk space

Step 6:
Fold in the "FILES" and expand "Instrument Bank" instead.
Look for the Bank ID you noted and Left-Click it.
You will see one File ID (note it) and up to four Waves (note them too.) If one Wave says "FFFF - Blank" or something similar you can ignore that specific Wave.

Step 7:
Now expand the "FILES", then "Bank". Look for the File ID of the Instrument Bank you just noted. Right-Click, choose "Export" and save it whereever you want.

Step 8:
Fold in "FILES" again to expand "Wave" (right below "Instrument Bank")
Search all Wave ID's you noted. Left-Click each of them and note the File ID of each. Also note, wich File ID was Wave 0/Wave 1/Wave 2/Wave 3 in the Bank entry in "Instrument Bank" as setting these things wrong will result in wrong instrument settings in the track.

Step 9:
Fold in "Wave" and expand "FILES" one last time. Expand "Wave Archive".
Right-Click each Wave you noted and save them.
IMPORTANT: It is necessary to note wich Wave file was wich Wave in the Bank (Wave 0/Wave 1/Wave 2/Wave 3). Otherwise the track will sound very different!

Step 10:

Trust me; it's hard to not forget something while extracting tracks. But once you get used to it, it will become much easier.

video on youtube


V. How to extract a song from another game when VGMTrans crashes or won't work properly
What you need: Nitro Studio, kiwi.ds, Sound Database of whatever game you want
Warning: This part of the tutorial is not as accurate as the rest might be, because every DS game works different with the tools. But with this steps and a little bit of trying you should be able to get it work.

Step 1:
When VGMTrans crashes, you can do a procedure similar to the Nitro Studio method found in IV. How to extract a song from NSMBDS (and any other game) using Nitro Studio (harder method)
The "Sound Sequence" refers to a .sseq file in the FILES folder and a Bank ID in "Instrument Banks".
The entry with that Bank ID refers you to a .sbnk file in the FILES folder and to 1-4 WAVE ID's.
Entry's in "Wave" with that Wave ID refer to a .swar file in the FILES folder.

When trying the Nitro Studio methode with a Sound Database that crashes VGMTrans it can happen that Nitro Studio won't show you informations about something and gives an error message. In my case, the only files that made problems were the WAVE files in the "Wave" list (not in FILES subfolder!) of Animal Crossing.
If that's the case you have two options:

Step 2a:
You know the WAVE ID because you looked at the Instrument Bank in Nitro Studio. Take the Bank ID number (e.g. ID 20) and go to FILES, Wave Archive and count the Waves beginning with 0! => 0, 1, 2, ... , 20. When you reach the ID number, right click the .swar file and extract it.

Step 2b:
If this does not work (or you don't want to count) there is another way.
You still need all the ID's from Nitro Studio that you can get.
Open kiwi.ds and don't close Nitro Studio. Open your Sound Database with kiwi.ds and double-click it. The file browser should open.
Expand the file itself, then "Wave Archive". Then look for the Wave ID of your WAVE file (those files should be named like WAVE001, WAVE002 etc.). Tick the box of the right WAVE file and press the "Extract Selected" button above.
Now look at the folder where your Sound Database is located: the new folder contains the .swar file.

Step 3:
You now should have one .sseq file, one .sbnk file and one to four .swar files. Rename them to remember what they are.

Step 4:

video on youtube


VI. How to edit and/or create a song
What you need: a MIDI editor, Anvil Studio, VGMTrans, a Sound Database file from any game (NSMBDS is recommended because it's the easiest)

This is where the fun begins. You can use this tutorial to create your own songs, to recreate songs from non-DS games or to edit originals.
Step 1:
Think about the song you are going to create or recreate (or edit). Now open up VGM Trans (some Sound Database can't be opened by VGMTrans, in this case Nitro Studio might work for listening to the songs and MKDS Course Modifier can export the files we need in the format we need them. Look below to see how this works).
Open up your Sound Database. A list will load at the bottom of the window containing all music tracks that we can use. Left click the first one and press "SPACE" on you keyboard. The song will start to play.

Step 1-3: If VGMTrans can't open the .sdat file
If that's the case, download MKDS Course Modifier: On
Now open your Sound Database in Nitro Studio and in MKDS Course Modifier.
Expand "Sound Sequence" in Nitro Studio and listen to the instruments of the song and ask yourself "Can this work with my idea of the track?". Because we are not going to write our own Bank files, we need one from a DS game that contains the instruments we want.
If this does not sound like something you would use, listen to the next song. Repeat this, until you find a song that fits.

If you found a good song, look at FILE ID and BANK ID. Write down both.
Now expand "FILES" (still Nitro Studio), "Sequence" and right-click the file with your FILE ID.
Choose "Export" and save it as a MIDI file.

Then go to MKDS Course Modifier. On the left side of the window there should be a list of folders.
Left-click "Bank" and look at the mass of Bank files you can see in the center of the window.
Right-click the file with your written-down BANK ID (e.g. BANK ID was 22, then look for "Bank 22.sbnk") and "Convert to DLS". Save it where you saved your MIDI file.
If you are using a non-NSMBDS song, expand "Instrument Bank" in Nitro Studio, select the Bank file from your BANK ID and look at the Waves used (left part of the window).
Now export those Wave files like shown in [[[. How to extract a song from another game; Step 2a or Step 2b
. . . . . . . . . . . .Continue with Step 4. . . . . . . . . . . .

Step 2:
Listen to the instruments and ask yourself "Can this work with my idea of the song?". Because we are not going to write our own Bank files, we need one from a DS game that contains the instruments we want.
If this does not sound like something you would use, press the down-arrow on your keyboard, then SPACE again. This will play the next song. Continue, until you find a instrumentation that fits.

Step 3:
When you got the song you need, look at the left side of the track list. There should be a box containing some files.
The first file (icon: some notes and note paper) is the Sequence file. Right-click it and "Save as MIDI".
The next file (icon: a very compressed violin or something like that) is the Bank file. Right-click it and "Convert to DLS" or "Convert to SoundFont2" (depending on wich format your MIDI editor can use). If the song you are using is not from NSMBDS, right-click again and "Save as original format" (be sure to add the extension ".sbnk". Otherwise we can't use the file afterwards)
If you are using a non-NSMBDS song, right-click all files following the Bank file (those are the Wave files) and "Save as original format". Add the extension ".swar", otherwise we can't use the file afterwards.

Step 4: (from now on this tutorial is very generic because how things work will discern between MIDI editors)
Now you can open the MIDI with any MIDI editor that can use either DLS or SoundFont2 files (or both). (e.g. Anvil Studio can't use both, FL Studio supports DLS. You should know this better than me. But I'm sure you can research it)
Load the DLS/SoundFont2 file and Play the song. It should sound like it did in VGMTrans or in the game itself. If it doesn't, well, figure out how it works. To do the really cool stuff you have to learn a MIDI editor. (I am using FL Studio, tutorial about how this works can be found here(video)
If that's the case, continue with Step 5

Step 5:
Now you can edit the song however you want.
As mentioned, you need to know how your MIDI editor works in order to do some cool stuff.
Once finished editing and polishing the song, save it as a MIDI file and export it.

Step 6: optional
This was like the only thing I never made working. Some tracks support them, but to make Goombas and Koopa Troopas dance, you need to make them work with another tutorial.
So the only thing I can say is: " skawo made a hard-to-understand-but-it-seems-to-work-tutorial. Go check it out. And explain me how this works in a pm (just kidding )"
You don't necessarily need those things and some tracks sound stupid with them, but that's yours to decide.
If I ever am able to understand those things, I'll try to expand this tutorial and explain it easier.
Attention: If you want to loop the song AND add custom bahps: only follow the tutorial until step three, but don't convert the MIDI into a .sseq file, only save as MIDI.

Step 7a: optional
This part is based on this wiki page. "Thank you"'s go to the person who wrote this.
Step 7.1:
Count the measures of your song (e.g. 64 measures), the time signature (e.g. 4/4, 4/2, 4/8, 6/8 etc. (usually 4/4)) and the tempo (e.g. 128 bpm, 78 bpm, etc.) and write those things down.
Also write down wich measure should be in the loop (everything before the loop starts will played once, everything inside the loop will loop and everything after the loop won't be played at all)
The borders of the loop will be set after those numbers.
e.g. I want to loop my track from measure 18 until 45 included. Then I have to use the numbers 17 and 45.

note: If your loop should start from the beginning of the track (= you want to loop the whole track) you have to set the first Marker (loopStart) to 0:00:00:00

Step 7.2:
If this is your first use of Anvil Studio, you need to set it up. If you already made these settings, skip to Step 7.3
Open Anvil Studio and look at the top. Right below "Help" you should see the three buttons "Time", "Mouse" and "Duration". Click on "Time".
In the new window, choose for "Units for Position/Time" the option "Hour:Minute:Second:Frame". The "Frames Per Seconds" box next to this option has to be clicked. Set the FPS to 30, then "OK" all windows to return to the "normal"/main window.
Those adjustments to the settings will be done once and you don't need to make them again.

Step 7.3:
Click onto "Edit", then select "Insert MIDI Event".
Tick the box "Include Meta events" and choose "Marker" from the list above.

Step 7.4:
Now we have to do some MATH!!! Noooooooooooo
But don't worry, you only have to insert some numbers into a formula.

You will have to calculate two numbers, to time stamps to be exactly.
first one: (60s x beats_per_measure x measure_of_loop_start) : BPM or tempo
in my example this would be (60s x 4 x 17) : 120bpm = 34s

second one: (60s x beats_per_measure x measure_of_loop_end) : BPM or tempo
in my case (60s x 4 x 45) : 120bpm = 90s

The measures you insert there (measure_of_loop_start and measure_of_loop_End) will be in the loop. e.g. 17 and 45 will play this:
1 2 3 ... 17 18 ... 45 17 18 ... 45 17 (and so on)

If the numbers have decimals (e.g. 34.6s) you need to convert it into s:FPS:
Take everything before the "." (in this case 34) as seconds.
Calculate the FPS with everything after "." (e.g. 0.6): 0.6 x 30 FPS = 18 FPS. If the FPS are decimals too, round them according to the common rules.
Put them together: 34s 18FPS

Now we have to convert our values into the format used for times in Anvil Studio: Hours:Minutes:Seconds:FPS but substract one FPS!!!
In this case: 00(hours), 00(Minutes), 34(seconds), 00(FPS) => 00:00:33:29 (loopStart)
And 00(hours), 01(minute), 30(seconds), 00(FPS) => 00:01:29:29 (loopEnd)

Enter the first time into "Time of". Click the blank box below the "Include Meta events" box and write "loopStart".
The second time/Marker will be called "loopEnd".
If you did this correctly, click "File" and "Export MIDI-0 format file...". Name it something like "0_oldname.mid" or whatever. Just don't overwrite your non-looped file by naming the MIDI-0 file the same (in case something goes wrong).

Step 7b:
Due to the fact that some programs export bad MIDI's (yeah I'm looking at you FL Studio) we have to do something (you don't have to do this if you looped your track as showed above):
Open your track with Anvil Studio.
Choose "File" on the top of the window and click on "Export MIDI-0 format file...". Name it something like "0_oldname.mid" or whatever. Just don't overwrite your original file by naming the MIDI-0 file the same (in case something goes wrong).

Step 8
You can now use either the looped MIDI-0 file or the non-looped MIDI-0 file to insert them into your game using one of the methods mentioned below (VII., VIII.)

no video this time


VII. How to insert a song into a Sound Database (replacing method)
What you need: Nitro Studio, Sound Database of NSMBDS, your new track

Step 1:
Open Nitro Studio. And open a copy of your .sdat file you wanna edit. Why copy? Because if something gets messed up you did not kill your original trust me it's worth it

Step 2:
Think about a track you don't need. E.g when inserting another desert theme you could replace the original desert theme. If you know one, expand "Sound Sequence", left-click that track and write down the File ID.

Step 3:
Fold in the "Sound Sequence" list and expand "FILES" instead followed by "Sequence".

Step 4:
Right-Click the File ID you decided to replace. Select "Replace" and choose your file (can be .sseq or MIDI-0). If the window simply dissappears and you look into Nitro Studio again, that's good. If you get an error message, look at V. How to edit and/or create a song; Step 7a/Step 7b. If this still doesn't work, ask in the forum if someone knows how to help.

Step 5:
Fold in "FILES" to expand "Sound Sequence" again. Left-Click the File you replaced. It still has the same name as before. Right-Click and select Rename to give the track the name it deserves.

Step 6:
After correcting the name of the file, take a look at the left side of the window again.

Step 7a: if the song uses a Bank file from NSMBDS
Look at Bank ID. Click on the list and choose the Bank file your track uses.
Set the four Settings below to the default setting (Volume = 127, can be adjusted if track is too loud or too quiet compared to other tracks, Channel Priority = 64, Player Priority = 50, Player Number = 0)
Continue with Step 8:

Step 7b: if the song uses a non-NSMBDS Bank file
Look at the Bank ID. Write down that number, expand "Instrument Bank", find that file, left-click it and look at it's "File ID" and the Waves.
Now Expand "FILES", "Bank" and right-click the file from your File ID. "Replace" that file by the Bank file your track uses. You can rename this file afterwards in "Instrument Bank".
Expand "Wave" and write down the File ID's of your Waves (the ID's of the Waves of the bank file).
Now look at "FILES", "Wave Archive" and replace the Waves with the ID's by your new waves.
If you need to add more Waves than you can replace, right-click "Wave Archive" and "Add" your file. Be sure to rename it by right-clicking the New entry in "Wave".
Then select your Bank file in "Instrument Bank" again to make sure it uses the correct Waves.

Step 8:
Select your track in "Sound Sequence" and press Play.
If it works: Congratulation
If not: you probably did something wrong. Check the Steps.

Step 9:
SAVE THE SOUND DATABASE: "File", "Save" and don't be like me and loose everything you edited.

Step 10:

video on youtube


VIII. How to insert a song into a Sound Database (inserting method) or: How to add more songs to your game
What you need: Nitro Studio, Sound Database of NSMBDS, your new track, modified version of NSMBe
Thanks to  Gota7 for creating: original thread

This method is only recommended if you want to add a ton of new songs to the game. You only need to do this method when adding .sseq files. You can add .sbnk and .swar files with the replacing method (VI).

Step 0.5 You need to prepare your ROM to be able to handle this
To make your ROM be able to handle the Sound Database file we will create, you need to enable  RoadrunnerWMC's ASM patch that enables SSEQ indexes over 111: Link
You don't know how to use ASM patches? Use the Search function of NSMB Hacking Domain to find out. It's not that hard.

Step 1:
Open your copy of the Sound Database in Nitro Studio.

Step 2:
Expand "FILES" and right-click "Sequence". Choose "Add" and select your new song (MIDI-0 and .sseq can work).
This will add a new entry at the bottom of the "Sequence" list.
Jump to "Sound Sequence", expand the list and look at the bottom of the list.
You will find an entry called "New File".
Right-click and rename it.

Step 3:
Now you have to set the Bank and Wave settings right.
To do this you can follow VII. How to insert a song into a Sound Database (replacing method); Step 7a/Step 7b until the end.

But how do I use the newly inserted songs?
Oh good that you asked other me.
Level editing on a ROM with more songs than allowed can be done with all versions of NSMBe.
Setting the Music settings is a different story:

You need Nitro Studio, your current Sound Database and a copy (because sometimes the ROM simply breaks and then you will beg for a copy of your work) of NSMBDS where your Sound Database is inserted (how to do this in IX. How to re-insert an edited Sound Database into NSMBDS)
Open your Sound Database with Nitro Studio and your NSMBDS ROM with NSMBe modified.

Open a level you wanna edit and click a View.
Left bottom corner, look at Music. You no longer see a drop-down list but a text field with a number in it. The music that will play depends on the ID you enter there.

Wich ID? Expand "Sound Sequence" with Nitro Studio. Every song has it's own number, these are the ID's.

video on youtube


IX. How to re-insert an edited Sound Database into NSMBDS
What you need:NSMBe (any version), edited Sound Database, NSMBDS ROM

Step 1:
Open your NSMBDS ROM using NSMBe.

Step 2:
Choose the tab "ROM File Browser". Expand "root".

Step 3:
Left-click "sound_data.sdat" and choose "Replace" at the bottom of the screen. Choose your edited Sound Database.

Step 4: optional, but recommended
Go to the tab "Tools/Options" and look for "Music Slots". Try to remember wich song you replaced with wich new song (e.g. I replaced the 06: Desert theme with a Pokémon theme)
Left-click the entry you want to rename and press "Rename". This will also edit the name in the Level editor, so selecting new songs in NSMBe is easier.

advice if you re-insert a Sound Database with edited songs: Use a copy of your ROM. Always. Because sometimes your ROM size can expand above 32MB.
For those who don't know: NSMBDS was written in a 32MB file. Every action that causes the file to exceed 32MB will make the ROM Header invalid.
What does this mean?
Honestly I am not sure. I think it causes problems when the ROM is played on a real DS/3DS. Because DeSmuMe can still play the games.
Invalid isn't good, don't upload patches to broken ROM's
Sometimes, the file size exceeds without a reason (once I changed wich Music will be played in 1-1 and this broke the header).
In this case: Use your backup to create another copy and try again what you did.
Oh yeah, not adding hundreds of songs into the game might also help.

video on youtube


X. note about Sound hacking
Or: Why I didn't write something about Sound hacking:
1. For most of the people, Music hacking is the father of hacking and Sound hacking is it's little brother that noone likes.
2. It's really, and I mean really complicated. It can be harder than anything else in this tutorial.
So, if you still want to edit the Sounds of NSMBDS, go check the original tutorial posted way back in 2011.
It's old, some parts of it are really complicated but because I never did Sound hacking and I did not plan to try it out soon, just read that tutorial and try your best. Me explaining something I don't understand doesn't work.


4. Thanks/Sources

-  Dirbaio for reposting the original Music and Sound Hacking guide made by Orengefox: Link
-  Gota7 and  RoadrunnerWMC for making it possible to add more songs to the game: Link
-  skawo for making the "How to add custom bahps" tutorial: Link
- no clue who wrote this but thanks for writing a tutorial on how to loop sseq files
- Everyone who answered my questions about Music hacking or helped me with music (by name and in no order: Thierry,  SGC,  Bloom, Fairy of Fire,  KTRMAmbiance,  newluigidev,  DaneGaming,  LuigiXHero, RicBent,  Gota7)
- The online dictionary helped a lot because, as you can read in the Final Words, I am German and sometimes I need to research a phrase and this page helped me. (kind of off-topic maybe, but I think I should thank everyone and everything that helped, even if the help was being a dictionary)
- All creators of the tools mentioned in the "What you need" section.
And last but not least: everyone who reads this, comments what he thinks about this tutorial, helps correcting mistakes or simply is happy about a new guide.

I wrote this tutorial all on my own, but some parts are strongly inspired/partially copied from other tutorials (in this case: it is mentioned) and my knowledge is all based on the things mentioned above and on everything I found out by myself.
It is still possible that I forgot someone to mention. In that case: I am really sorry, please write me that I forgot you/forgot a link and I'll add it as soon as possible.
Also, the videos showing things in action were recorded by myself.

5. Final Words
I am not a music hacking god. I make mistakes. If you are smarter than I am and you see something I described wrong: tell me and I will correct it.
Also, i am German, so if you find any mistakes (grammar mistakes, misspelling something, bad expression): tell me and I'll try to fix it.
It took hours of writing, rewriting and recording the videos for this tutorial and I had a ton of fun doing this.

Hmmm, what else can I say?
Well, bye bye people, pray to the Helix, the one and only true god and have a nice day!

previously (un)known as BooChewbaca
Posted on 08-23-18, 06:11 pm in v1.0 New Super Luigi DS (rev. 2 by TheTimebreaker on 08-23-18, 09:32 pm)
W1 out :)

Karma: 494
Posts: 195/229
Since: 10-22-17
dedicated to everyone who wanted to see more of the green clothed plumber. Now in low 256x192 solution on your DS.

In New Super Luigi DS it is Luigi's job to save the day (yeah the princess too).


This is planned as an 8-world hack. But it will be released world by world (meaning v1.0, v1.1 etc will contain the first world, v2.x will contain World 2 and so on)
You are helping Luigi to save the princess from Bowser, Bowser Jr. and their army (very creative storyline i know).
This hack is not really hard. At least not if you don't try to collect all star coins. Then it gets hard.
Not as hard as some other hacks but defintely harder than the original game.
Pack your Fire Flowers, Mushrooms and a new pair of jumping shoes because you'll definitely need them.
Expect frustration, new music, secrets to explore and more frustration if you decide to play this game.
god i am so bad at describing things

(current) Features:
Luigi Physics: Jump higher than Mario!
Adjusted tilesets
Quality-of-life adjustments (mostly ASM hacks, see full list down in the credits)
Custom music

World 1: completed
World 2: 0 %

When will the next world be released?/Is this dead?
Read this for the first question.
If you want to know the answer of the second question: probably not. Click on my name and see if i was online recently. If I was then it's probably not dead. I am just working very veryvery slow.

Here is a playlist of all the songs I created/transcribed for the game: YouTube Playlist
Download link is also there.
(Disclaimer: The soundtrack mostly contains transcriptions of non-DS music. If a track is from an original DS game, the track won't be included in the download link because I do not own any rights on those tracks)

I am happy about every feedback given. This can be everything: bugs, suggestions, things you liked or disliked, questions, level design or whatever. Just be polite

known bugs

Credits/Thank You's

Nintendo for making the game

ASM Hacks
-  skawo Always load the correct boss particles if necessary
-  skawo Disable Titlescreen cutscene
-  skawo &  MeroMero Faster Star coins
-  MeroMero Improved Blue Shell
-  MeroMero Improved Red Coins
-  skawo Item on SELECT
-  MeroMero New Super Luigi U physics for Luigi
-  skawo Podoboo flip
-  MeroMero Star Coins are worth 4000 points
-  skawo Timed Podoboos

Direct ROM Patches (collected by  skawo, don't know if he made all of them)
- Always play as Luigi
- Disable the opening cutscene
- Disable the minigames/multiplayer/options buttons on the title screen
- Save anytime (US)
- Tower Bowser Jr. takes 18 fireballs instead of 8

RicBent for making the NSMB Titlescreen Editor
 Gota7 for making Nitro Studio
NSMBe for giving the possibility of easily editing levels
devkitPro for ASMHacking

Thank You to everyone who helped me by answering questions I had.



if more than a trailer is needed i can upload some gameplay.
If a new world is released, there will also be a new trailer.

Download the xdelta patch (current version: 1.0): Click here
Click here to find out how to apply the patch
This version was tested on my 3DS. It didn't lag but if you are encountering lag on either an emulator or on a real DS/3DS, please tell me where and how and i'll fix it as soon as possible.

What is planned for the future?
Highest priority is finishing the next world.
Besides that, probably some changes to the worlds icons.
Once figured out how to this, maybe some adjustments to the world map.
And some other stuff that comes in my mind and sounds like a cool idea.

Have fun, save the princess
previously (un)known as BooChewbaca
Posted on 09-30-18, 04:43 pm in v1.06 demo New Super Mario Bros. U DS
W1 out :)

Karma: 494
Posts: 218/229
Since: 10-22-17
no autoscroller until world 7? This has to be a great hack!
previously (un)known as BooChewbaca
Posted on 11-05-17, 07:08 pm in Metro Kingdom - First look at my new hack.
W1 out :)

Karma: 494
Posts: 9/229
Since: 10-22-17
The idea of this level is really cool, but in my opinion the modern Mario model and the retro graphics of everything else just dont match.
If your game isnt intended as completely retro styled, i recommend to change the pipe graphic to a retro style. This would look much better than a retro level and one modern pipe.
If you wanna make a retro styled hack with every level in retro style, you should try to change the Mario model (and probably the enemy sprites too). But I don't know if and how this works.

But all in all i can say: keep going! The graphics themselve look really good and the level looks interesting.
previously (un)known as BooChewbaca
Posted on 11-06-17, 08:35 pm in Metro Kingdom - First look at my new hack.
W1 out :)

Karma: 494
Posts: 10/229
Since: 10-22-17
In my opinion this looks much much better!

The graphics look really cool.
previously (un)known as BooChewbaca
Posted on 11-10-17, 09:39 pm in Edit Title Screen Background (Not Logo)
W1 out :)

Karma: 494
Posts: 13/229
Since: 10-22-17
thank you
previously (un)known as BooChewbaca
Posted on 11-14-17, 08:52 pm in Newer Super Mario Bros. DS
W1 out :)

Karma: 494
Posts: 21/229
Since: 10-22-17
Posted by Thierry
cool speech.

Im not sure if you mean me (because i dont know what staph means).
If you mean me: Thanks
If not: forget this post : D

Posted by Thierry
staph acting like everybody is impatient

As far as i noticed, the people here are very patient. But i saw many people loosing interest in hacking because of other people constantly asking for a release date. Just dont want this seing happen with NewerDS.

Posted by Thierry
we've been waiting for a while, there's no reason we can't keep it up.

And thats what i hope. This hack had a long time in development, a couple of months (and even years) shouldnt matter as long as the final game is good.
previously (un)known as BooChewbaca
Posted on 12-15-17, 09:41 pm in We Need to Fight for Net Neutrality
W1 out :)

Karma: 494
Posts: 25/229
Since: 10-22-17
What a ban can cause:
CON: you have to pay more money to visit popular sites or you cant access them at all because the provider hates it (e.g. Spotifiy can only be used with 100kbit/s but the providers music streaming works well)
CON: every page could be slowed down if they dont pay (what COULD affect this site aswell)
PRO: Life important connections (e.g. doctors making an important operation via internet and robots, what is actually possible) now work without lag (But as far as I know there are already exceptions that include Life Saving without ping, but i dont know for sure)

What no ban can cause:
CON: Life Saving may lag (but as i said, im pretty sure that they dont have this problem , also those things dont make a huge percentage of the internet traffic, so they shouldnt have those lag problems if they have a good-enough internet connection)
PRO: You can use every website, every Social Network and everything else without fearing that your provider will shut it down.

"""Article 19
Everyone has the right to freedom of opinion and expression; this right includes
freedom to hold opinions without interference and to seek, receive and impart
information and ideas through any media and regardless of frontiers.
""" ~Universal Declaration of Human Rights, Article 19

MYCONCLUSION: When I think about this article, I always think "Doesn't killing netneutrality violate human rights?". And even If experts say, the answer is "No.", we all should think about this.
Killing netneutrality doesnt give us anything. Its only good for money-makers (providers) to make more money.

Posted by MarioFanatic64
Shame the 90% of internet users who aren't in the US can't do a thing about the it, even though this will inevitably impact the internet on an international scale, be it America thinking they can control everything, or other countries letting America control everything.

As far as I know, the only thing slowing down would be the connection of your provider. As far as I know, I (in Germany) wont be affected until Germany decides to kill NetNeutrality too. (but as i said, im not sure. Everyone who knows better should please tell me)

And even if NetNeutrality in USA doesnt directly affect me over in Germany: We all have to fight for this. This isn't only a fight for Americans but for all Internet Users. Taking away this important thing, this (i would call it) human right can't be ignored or accepted.
previously (un)known as BooChewbaca
Posted on 12-29-17, 05:35 pm in One-word-at-a-time-story, take three.
W1 out :)

Karma: 494
Posts: 31/229
Since: 10-22-17
I was wandering around
Then I saw my
previously (un)known as BooChewbaca
Posted on 02-13-18, 02:09 pm in ASMB - Adventure Super Mario Bros.
W1 out :)

Karma: 494
Posts: 37/229
Since: 10-22-17
Maybe im just very very stupid, but I can't find the download link
previously (un)known as BooChewbaca
Posted on 04-13-18, 10:57 am in The truth has been discovered!!!
W1 out :)

Karma: 494
Posts: 45/229
Since: 10-22-17
Posted by itsamemario
Hitler was behind this all along

Ndymario discovered the truth, but the connections to Hitler are a little too far-fetched.

But Staplebutter calls himself communist leader! This combined with Ndymario's discovery leads us to the conclusion that he (Staplebutter) and Dirbaio as his partner in crime might be the guy's behind the hacking attacks from russia.
Now we can assume, that the server of this website is the one from where the attacks started.
Wich basically means we all have a huge problem now :]
previously (un)known as BooChewbaca
Posted on 04-25-18, 09:36 am in full 80 level hack "New-ISH" Super Mario Bros. DS
W1 out :)

Karma: 494
Posts: 48/229
Since: 10-22-17
You don't need to post a new thread. As far as I know you can just edit this one to add the screenshots.
previously (un)known as BooChewbaca
Posted on 05-03-18, 07:27 pm in full game download New-ISH Download!!
W1 out :)

Karma: 494
Posts: 52/229
Since: 10-22-17

Didn't work for me either. The same error message like before.
But I made some patched two, both worked for me so I think uploading them here to see if they work for everyone else is a good idea:


previously (un)known as BooChewbaca
Posted on 05-17-18, 12:21 pm in requesting Music (rev. 1 by TheTimebreaker on 08-19-18, 03:43 pm)
W1 out :)

Karma: 494
Posts: 74/229
Since: 10-22-17
Ok, just finished the fortress/Tower theme: (EDIT: v2 because v1 didn't play in the level for some reason) Fortress/Tower Theme from Wii and WiiU

And i already made an Airship Arrangement using the same sbnk and swar files as the above fortress theme (because I was bored I made it before you answered) :Airship
Just if anyone around here is interested
previously (un)known as BooChewbaca
Posted on 05-22-18, 03:58 pm in tutorial How to create loops on midi files using Anvil Studio
W1 out :)

Karma: 494
Posts: 78/229
Since: 10-22-17
You can use this tutorial.
previously (un)known as BooChewbaca
Posted on 05-22-18, 05:52 pm in requesting Music (rev. 1 by TheTimebreaker on 05-22-18, 05:52 pm)
W1 out :)

Karma: 494
Posts: 79/229
Since: 10-22-17
Desert Wii/WiiU: Link
Uses the original DS Desert Bank (BANK_SABAKU_BGM)

Sadly I wasn't able to make the "bahps" working so you will hear the bahps but the goombas etc won't jump.
If someones out there who can and wants to fix it: Do it
previously (un)known as BooChewbaca
Posted on 05-25-18, 11:26 am in Music: Channel Priority, Player Priority and Player Number (rev. 1 by TheTimebreaker on 05-25-18, 11:26 am)
W1 out :)

Karma: 494
Posts: 80/229
Since: 10-22-17
Hello everyone,

When opening a track using Nitro Studio one can set some settings (worst explanation ever, sry for that).
I mean those things:

Just wanted to know what the three highlighted things (Channel Priority, Player Priority and Player Number) do.

previously (un)known as BooChewbaca
Posted on 06-12-18, 10:31 am in How do you feel about Fortnite on Switch?
W1 out :)

Karma: 494
Posts: 91/229
Since: 10-22-17
In my opinion: if i don't like something (a game, a movie, a book or whatever) i ignore it. Fortnite coming for Switch? Yeah cool for everyone who likes the game. You don't like Fortnite? Don't buy it.
As long as Nintendo doesn't kills all other games (this is never going to happen they aren't idiots after all) it doesn't influence my experience with the console so I don't care.
previously (un)known as BooChewbaca
Posted on 08-09-18, 02:30 pm in OVER THROW CAPITALISM (rev. 1 by TheTimebreaker on 08-09-18, 02:30 pm)
W1 out :)

Karma: 494
Posts: 158/229
Since: 10-22-17
I'll just post this quote and see what happens
Posted by BooChewbaca
Don't you know the wheel of communism?

Step 1: Try communism.
Step 2: The communism fails.
Step 3: "But this wasn't true communism!"
Step 4: Repeat.

previously (un)known as BooChewbaca
Posted on 08-18-18, 06:28 pm in Emuparadise and LoveROMS is gone...
W1 out :)

Karma: 494
Posts: 179/229
Since: 10-22-17
Posted by Jamie
and also, @BooChewbaca what happens in 50 years time when save battery's die and bit rot happens?

then i'll sit back in my chair and start laughing because i have all the roms still on my pc.

previously (un)known as BooChewbaca
Pages: 12 »