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

0 users currently in ROM Hacking | 5 guests

Main - ROM Hacking - Let's hack NSMB! (To be exact, a level viewer.) New thread | New reply

Pages: 1 2 3 4 5

Treeki
Posted on 07-21-07 10:41 AM (rev. 2 of 07-21-07 01:29 PM) Link | Quote | ID: 56545


Red Cheep-cheep
Level: 34

Posts: 21/209
EXP: 236613
Next: 17038

Since: 07-12-07
From: Rogueport

Last post: 3928 days
Last view: 3629 days
Noooo, about half the thread was killed. I've readded the latest screenshot and download to the first post.

edit: Oh yeah, to Sonicandfails: I did get the download you posted, so don't worry about reuploading it.

____________________
I'll put something here later.

Sonicandfails
Posted on 07-21-07 11:30 PM Link | Quote | ID: 56617


Lantern Ghost
Level: 60

Posts: 728/766
EXP: 1679537
Next: 93241

Since: 02-19-07

Last post: 5964 days
Last view: 5770 days


Anyways, fix the missing pieces for those who downloaded my pack. It should be included in the next release though, so no need in me linking it.

____________________
I miss post headers more.

Treeki
Posted on 07-22-07 12:42 AM Link | Quote | ID: 56637


Red Cheep-cheep
Level: 34

Posts: 22/209
EXP: 236613
Next: 17038

Since: 07-12-07
From: Rogueport

Last post: 3928 days
Last view: 3629 days
Yaaay, new version! 1.4, to be exact.

What's new:
+ Sonicandfails's pack of definitions (with some slight modifications by me) is now included
+ Support for BGDAT files has been removed: now ROMs can be directly loaded/edited
+ Descriptions can now be used for object definitions. See Help for details!
+ Some other minor fixes.

Go to first post for download! (If you got it in the small period before I took it down, please redownload, as it has a rather annoying bug I fixed!)

____________________
I'll put something here later.

Sonicandfails
Posted on 07-22-07 12:45 AM Link | Quote | ID: 56638


Lantern Ghost
Level: 60

Posts: 732/766
EXP: 1679537
Next: 93241

Since: 02-19-07

Last post: 5964 days
Last view: 5770 days
Castle side extension is actually what Mario goes behind when you beat a level I believe. Didn't test it too much but it's what it seems like.

____________________
I miss post headers more.

Treeki
Posted on 07-22-07 12:48 AM Link | Quote | ID: 56639


Red Cheep-cheep
Level: 34

Posts: 23/209
EXP: 236613
Next: 17038

Since: 07-12-07
From: Rogueport

Last post: 3928 days
Last view: 3629 days
Posted by Sonicandfails
Castle side extension is actually what Mario goes behind when you beat a level I believe. Didn't test it too much but it's what it seems like.

It is, that's why I mentioned it's necessary. (Having used an ARDS with "always Mega Mario" code and having Mega Mario be hidden only by that object kinda gives it away!)

____________________
I'll put something here later.

Sonicandfails
Posted on 07-22-07 04:45 AM Link | Quote | ID: 56696


Lantern Ghost
Level: 60

Posts: 733/766
EXP: 1679537
Next: 93241

Since: 02-19-07

Last post: 5964 days
Last view: 5770 days
So I've started working with what we got and I've produced this...
The start of Newer New Super Mario Bros.

zomg

Don't worry Goomba Lovers Inc., he shortly afterwards pops up through the tube!

It's a good thing Mario can jump

Mama-Mia!

____________________
I miss post headers more.

Tanks
Posted on 07-22-07 06:30 AM Link | Quote | ID: 56710


Dry Bones
Level: 55

Posts: 601/627
EXP: 1243759
Next: 70430

Since: 02-19-07

Last post: 5520 days
Last view: 5266 days
[citation needed]

____________________




Sonicandfails
Posted on 07-22-07 06:31 AM Link | Quote | ID: 56711


Lantern Ghost
Level: 60

Posts: 734/766
EXP: 1679537
Next: 93241

Since: 02-19-07

Last post: 5964 days
Last view: 5770 days
[citation needed]

____________________
I miss post headers more.

Treeki
Posted on 07-22-07 11:25 AM Link | Quote | ID: 56782


Red Cheep-cheep
Level: 34

Posts: 26/209
EXP: 236613
Next: 17038

Since: 07-12-07
From: Rogueport

Last post: 3928 days
Last view: 3629 days
[citation needed]

____________________
I'll put something here later.

Sonicandfails
Posted on 07-22-07 08:42 PM Link | Quote | ID: 56847


Lantern Ghost
Level: 60

Posts: 735/766
EXP: 1679537
Next: 93241

Since: 02-19-07

Last post: 5964 days
Last view: 5770 days
[citation needed]

____________________
I miss post headers more.

Treeki
Posted on 07-22-07 09:03 PM Link | Quote | ID: 56850


Red Cheep-cheep
Level: 34

Posts: 28/209
EXP: 236613
Next: 17038

Since: 07-12-07
From: Rogueport

Last post: 3928 days
Last view: 3629 days
Posted by Sonicandfails
I tried my best but that header file refuses to load. It's as if it tries to load graphics data that isn't there so it crashes. With the level two tileset though it works pretty much ok, but you cannot see the ground because the camera is wonky. If we could select all objects and move them at the same time this would be alot easier. Which reminds me...Is there anything in the game that when you get it it makes sparkles around you quickly and gives you about 1000 points? Something invisible in the level was giving me that right before a pink spinning log. The ground is composed of mostly normal ground tiles but some of them are really messed up and are angled wrong and everything. Theres even parts with massive chunks of the floor missing.

Nope.. I don't think there's any of that..
I tried all the different unused levels. Some weren't accessible; some were. It would be a lot easier if it was possible to use the headers, since then the correct graphics would be loaded, etc, and it would play just like a normal level.

Posted by Sonicandfails
I took the level 2 code because it was a little bigger then the mysterious level and used Translhextion to select all the bytes needed to be used by the last level and then Filled Selection with File and loaded up the last level. All of it's bytes overwrote the ones previously in level 2, and from what it seems after loading it in the editor all of the level data was completely removed from level 2 and even some enemies were replaced, but of course, there was a few lines of hex left which are most likely other enemies (From the overwritten level 2) from what I can guess. I also found that if you take a clean rom and overwrite it with part of a repacked NDS file (After NDStool) making it the same filesize, it still crashes in No$ and other emulators because it seems NSMB has some sort of checksum that it runs through in the beginning after the Nintendo logo. If we can find a way to kill the check or even simulate another checksum (If that is possible) then we could expand levels as far as we want.

There's lots of free space in the NSMB ROM!
NDSTool seems to not work on NSMB; repacked ROMs fail to run.
It is possible to place unused levels (layout, at least) into slots for bigger levels, since a tile of type "255 255" signals the end of a level (no other information is given. just a straight "FF FF" end to the file) and no more objects are read after that. But I don't think there's something similar for the header files.
Probably our best bet is editing the file system table to point the start/end offsets for the level files to the unused levels. Safest, and more efficient. I may try that later! Just a matter of adding some code to the editor's file system parser so I can tell where these offsets are stored.

Posted by Sonicandfails
Interesting point: 144832> <Tanks> I found that the "put under #102" pipes don't break when you try to run into them with massive mario

Yeah, I do think the put under/over #number pipes are something to do with them breaking with Mega Mario. Since they're only in some levels.. Perhaps the bottom one is the part in the ground (that can't be broken) and the top one is the part that can be broken/stamped down?

____________________
I'll put something here later.

Sonicandfails
Posted on 07-22-07 09:11 PM Link | Quote | ID: 56852


Lantern Ghost
Level: 60

Posts: 736/766
EXP: 1679537
Next: 93241

Since: 02-19-07

Last post: 5964 days
Last view: 5770 days
[citation needed]

____________________
I miss post headers more.

GuyPerfect
Posted on 07-22-07 10:21 PM Link | Quote | ID: 56872


Paratroopa
Level: 30

Posts: 102/155
EXP: 152599
Next: 13270

Since: 03-14-07

Last post: 6045 days
Last view: 5994 days
[citation needed]

Sonicandfails
Posted on 07-22-07 11:17 PM (rev. 2 of 07-22-07 11:18 PM) Link | Quote | ID: 56880


Lantern Ghost
Level: 60

Posts: 737/766
EXP: 1679537
Next: 93241

Since: 02-19-07

Last post: 5964 days
Last view: 5770 days
lol [citation needed]

____________________
I miss post headers more.

GuyPerfect
Posted on 07-22-07 11:20 PM Link | Quote | ID: 56882


Paratroopa
Level: 30

Posts: 103/155
EXP: 152599
Next: 13270

Since: 03-14-07

Last post: 6045 days
Last view: 5994 days
The game will crash if the FAT information is incorrect, and the BIOS is programmed to crash if the CRCs are incorrect.

Sonicandfails
Posted on 07-22-07 11:22 PM Link | Quote | ID: 56884


Lantern Ghost
Level: 60

Posts: 738/766
EXP: 1679537
Next: 93241

Since: 02-19-07

Last post: 5964 days
Last view: 5770 days
I'm not as rom hacking inclined as you may think, so a little more layman's would be nice. Does that mean we could expand the levels and have a bigger ROM thus basically have a full editing right to the games levels?

____________________
I miss post headers more.

GuyPerfect
Posted on 07-22-07 11:38 PM Link | Quote | ID: 56891


Paratroopa
Level: 30

Posts: 104/155
EXP: 152599
Next: 13270

Since: 03-14-07

Last post: 6045 days
Last view: 5994 days
You could probably do that. It would depend on the game's programming, but I doubt there will be restrictions on that. Simply changing the level files--making them bigger or anything--should work just fine, so long as everything in the FAT and ROM header are correct.

It's just like files on your computer. Change a file and you get different data. The size can change. I see no reason it wouldn't work that way for New Super Mario Bros.

Treeki
Posted on 07-23-07 12:56 AM Link | Quote | ID: 56911


Red Cheep-cheep
Level: 34

Posts: 29/209
EXP: 236613
Next: 17038

Since: 07-12-07
From: Rogueport

Last post: 3928 days
Last view: 3629 days
Hmm. I hadn't thought about being able to repack ROMs to create larger levels.
It is possible to make larger levels, as the trimmed ROM is only about 19-20MB. So much expansion is possible. (Don't count on being able to add more levels to the game, though!)
I'm surprised the game still ran once when I tried editing the filename table to swap around the names for one of the unused levels and 1-1 (unsuccessfully- the game still loaded 1-1). Of course, that was quite some time ago. I now know more about the filesystem, so it would probably be better to do it by editing the FAT to point to different (or figgerent, as I almost typed?) levels.

As is probably obvious by looking at the code, my method of loading/saving levels is rather non-technical. I load the filenames, IDs, offsets, etc into an array. For every course file that matches the expression Like "[A-J][0-9][0-9]_[0-9]_b gdat.bin" it is added to a ListBox. Then, the ItemData value of each list item is set to the ID of the file within the various arrays.

The only challenge I would probably face is easily (and efficiently) moving data around in the ROM using VB's Get and Put statements, which aren't very useful when it comes to some things- you can get data and overwrite data, but nothing more! Hopefully, it shouldn't be too hard to find a solution for this. (This is the way of doing things learning programming using QBasic as a 9-year-old has left me with..)

____________________
I'll put something here later.

GuyPerfect
Posted on 07-23-07 01:07 AM Link | Quote | ID: 56922


Paratroopa
Level: 30

Posts: 105/155
EXP: 152599
Next: 13270

Since: 03-14-07

Last post: 6045 days
Last view: 5994 days
After digging up that file for you yesterday, Treekie, my interest in the DS has been rekindled. I'm already looking into homebrew and flash solutions such as the one provided by Datel. I'm also preparing to create some handy software handlers for DS ROMs in general, as to manipulate them to the programmer's desire.

In a few days, I would like to have an API set up that lets you load a ROM into memory, read from its file table, and even write new data into the files regardless of file size. Packing will be done inline with the ROM data, and changes in memory will reflect the final state of the ROM when saved, so it should be quite useful when it's done.

I program primarily in C, but I will port the code to VB for you to use. Anything I do will be released to the public domain (not Satan's GNU GPL), so you won't have to worry about any legal issues.

Treeki
Posted on 07-23-07 01:18 AM Link | Quote | ID: 56929


Red Cheep-cheep
Level: 34

Posts: 30/209
EXP: 236613
Next: 17038

Since: 07-12-07
From: Rogueport

Last post: 3928 days
Last view: 3629 days
[citation needed]

____________________
I'll put something here later.
Pages: 1 2 3 4 5


Main - ROM Hacking - Let's hack NSMB! (To be exact, a level viewer.) New thread | New reply

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

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