Pages: 1
Posted on 02-12-16, 11:35 am (rev. 5 by  skawo on 02-08-18, 12:07 pm)


Karma: 19752
Posts: 252/1100
Since: 04-02-13
An absolutely awful, finnicky half-working tutorial, GO!


Tools
DS Lazy: http://www.romhacking.net/utilities/793/
Modified NSMBe: https://www.dropbox.com/s/cc9q1nhv8vazps8/NSMBe_ID%20Extract.rar?dl=1
This shitty bat script: https://www.dropbox.com/s/fgd5zddv0npfzws/add_zero.bat?dl=1

Steps

1. Open your ROM in DS Lazy and click unpack. Let it finish. The files will be in the same directory as the exe, in a folder named NDS_UNPACK.
2. Open your ROM in the provided NSMBe. Go over to the ROM Filesystem tab and extract the whole filesystem somewhere.
3. Out of what NSMBe extracted, save fnt.bin somewhere.
4. Go into what NSMBe extracted, and into the course folder. Create a new folder, and move all files starting with a number less than 1000 into it. Place the shitty bat script there, too, and run it. It should append a zero to every filename's beginning. Move the files back into /course, delete the folder you made and the batch script.
5. Go into what DS Lazy extracted and copy over the four files that aren't in folders from data folder somewhere. Delete the data folder afterwards.
6. Copy over the NSMBe-extracted data folder over to the NDS_UNPACK folder of DSLazy. Delete the files that aren't in folders, and copy over the ones from DSLazy.
7. You can now add your new files. To do so, create a folder in NDS_UNPACK/data/ that's latter alphabetically than all the rest. For instance, start it with "z". Then, add your files into that folder.
8. Once done, start DS Lazy again and click "pack", choose destination. Test the ROM.

Now, for the stupid bit of this; unfortunately, someone decided that NSMBe should load levels and tilesets per filename. Thus, while the created rom will work splendidly on an emulator or console, it will no longer be editable in NSMBe aside from the ROM Filesystem and Background tabs.

To fix this, you can either become a wizard and manually return all the names to what they were originally in the fnt.bin, or you can import the original fnt.bin and then relaunch the editor. This will cause all the names to go back to what they were, and the new files will stay over too and work -- but without extensions or names. You can, of course, reimport the new fnt.bin again to get those back and keep switching if you wish.

What can I do with this, though?
Well, that depends on you. Mostly useful for ASM hacking, but you can rewire backgrounds to use those newly added files or things like that.
Posted on 02-12-16, 01:04 pm
Death by cuteness

Karma: 6554
Posts: 355/598
Since: 05-01-13
Ah! Glad I'm not the only one who did that

Something I didn't try yet in practice, but in theory with this trick you should then be able to setup an ASM hack to dedicate one background, one foreground and one tileset for each of the 177 areas (or 176 if you're playing the US version).
And I dare say you can push this even further to make the game select even a background, foreground, tileset, Soundset, Spriteset per View located in one given Area (but it'll have to be changed dynamically as the game reload the Area)!



Since  skawo and I use slightly different tactics, here's how I do it:
1. Basically the same thing expect I used DSBuff instead, and you'll have to specify the folder where you want to extract the ROM.
2. The same.
3. From there it's different, what I do is that, in the extracted files from DSBuff, I create a new sub folder in the "data" folder that begins by "z" and place each of the new files there.
4. Be careful! The last file in the UiStudio folder will give you the last file ID used by the game, for some reason the game doesn't load the file ID who would numerically come immediately after this one (in EU version that would be file ID 2449), so this file must be empty.
5. Now you can pack the files into a new ROM with DSBuff.
6. Open your new ROM 1 with Tinke, and click Save ROM, this will bring the filesize to the next power of 2.
Oh! And Tinke won't let you save to an already existing ROM.
7. Open your new ROM 2 with NSMBe and extract the fnt.bin.
8. Open both the old and the new fnt in a Hex editor, what I do from there is that I copy the file info from the old fnt and paste it in the new fnt, there's no need to copy the folder info.

Basically you begin to select from ARC0.narc and all the way to the end of the file, then c/p to the new fnt beginning from ARCO.narc.
9. Open NSMBe, import the new fnt in the new ROM 2.
10. Close and re-open NSMBe, now the files should be in the correct order.
11. Select the root folder, click Replace and select the root folder you extracted earlier in step 2.
12. Test in DeSmuMe.
13. ???
14. Profit
Posted on 02-12-16, 01:22 pm


Karma: 19752
Posts: 253/1100
Since: 04-02-13
Be careful! The last file in the UiStudio folder will give you the last file ID used by the game, for some reason the game doesn't load the file ID who would numerically come immediately after this one (in EU version that would be file ID 2449)


That's interesting, but it doesn't seem to happen in the US version? I didn't leave my first added file empty and it's quite happily loading.
Posted on 02-15-16, 04:19 pm
Death by cuteness

Karma: 6554
Posts: 361/598
Since: 05-01-13
I remember that when I tried to load file 2449 (which at the time was a copy of A01_1.bin to setup the Luigi story mode), I would get greeted with a black screen when the level was supposed to load, but file 2450 and afterwards worked, so yeah since then I decided that file 2449 filesize would amount to a grand total of 0 byte.
Posted on 01-26-18, 11:45 pm (rev. 1 by Mr.M on 01-27-18, 05:10 am)
Dead Account

Karma: -65
Posts: 37/39
Since: 12-10-17
Link Doen'st Work, Anyway Good ASM Hack
_________________________
Dead Account
Posted on 01-27-18, 11:59 am
Paragoomba
F-Zero DSX lead develloper

Karma: 221
Posts: 23/75
Since: 11-25-17
Try Every File Explorer for adding files
----------------------------------------------------------------

Official DSX YouTube Channel
F-Zero DSX on Twitter
The F-Zero DSX Discord Server
Posted on 05-20-18, 04:48 pm (rev. 1 by  Skylander on 05-20-18, 04:54 pm)
Giant Paratroopa
Cream Cheese King

Karma: 2140
Posts: 161/1379
Since: 04-24-18
I'm having trouble. When It says copy the data folder that NSMBe extracted, I couldn't find it. I thought it was thr root folder. So I copied that over and deleted, copied files from dslazy.... Then NSMBe wouldn't open it because "The Index was outside the lines of array." So I added the fnt. file like you said, and it still wouldn't open

I'm trying to add a folder so I can make custom level intros, since nobody else offered. I don't want anything fancy, not even a picture. Just a Wii U themed loading screen
_________________________


Discord Server 1 - Discord Server 2 - Youtube Channel
Posted on 01-26-19, 08:19 pm
Giant Red Paratroopa
Not Edible

Karma: 3366
Posts: 720/1447
Since: 02-12-16
Every File Explorer can actually add, delete and rename files and folders very easily. I suggest people use that tool instead of following this tutorial, it'll save you some time.
_________________________
Nothing to say, so jadnjkfmnjamnfjkldnajfnjkanfjdksan jsdnvj m.

Posted on 07-16-19, 11:57 am
Goomba
hopefully non-existent

Karma: 23
Posts: 6/20
Since: 07-15-19
sorry to bump

but my game crashes when i load the rom (have a backup, few) and i dont know what is meant by reimport the fnt.bin please help
Posted on 08-11-20, 09:24 am


Karma: 2
Posts: 3/3
Since: 07-28-20
Why DsLazy Packs the rom with only 20mb? The extracted had 32mb.
Posted on 08-11-20, 06:11 pm (rev. 1 by  poudink on 08-12-20, 07:58 pm)
Giant Red Paratroopa
Not Edible

Karma: 3366
Posts: 1091/1447
Since: 02-12-16
use Every File Explorer instead.
edit: I'm dumb, listen to bent instead.
_________________________
Nothing to say, so jadnjkfmnjamnfjkldnajfnjkanfjdksan jsdnvj m.

Posted on 08-12-20, 06:45 am
Mariomaster

Karma: 8528
Posts: 1573/1681
Since: 06-09-12
DS Lazy doesn't pad the ROM to powers of two. NSMB has several MBs of empty space which DS Lazy does not generate.
_________________________
GitHub - Kuribo64 - YouTube
Pages: 1