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

Main - Posts by Treeki

Pages: 1 2 3 4 5 6 7 8 9 10

Treeki
Posted on 07-24-07 01:30 AM, in Let's hack NSMB! (To be exact, a level viewer.) Link | Quote | ID: 57342


Red Cheep-cheep
Level: 34

Posts: 41/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
So I decided to post this.. Maybe it's of use to someone who can help me continue? I'll carry on tomorrow.

NSMB Level Format Documentation
Written by Treeki. Copyright 2007

BGDAT files:
10 bytes for each object.
A map:
2 = Tile type
2 = X
2 = Y
2 = Width
2 = Height
Each of these are encoded in 2 bytes.

Formula to convert 2 byte format to an integer:
((second byte * 256) + first byte)

Formula to convert integer to 2 byte format:
first byte = number mod 256
second byte = (number - (number mod 256)) / 256

All positions are in tiles, not in pixels. Each tile is 16x16 pixels.
Collisions are determined by the tile; you do not have to set them yourself.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Normal level files:
-- To be updated as more is discovered --
Enemies are encoded in 12 bytes. I do not know how the area they start is delimited, though.

These values are encoded using the same 2 byte format described above:
0x74 = Time Limit
0x76 = Background Graphics Set
0x7C = Level Tileset Graphics Set (also, collision data)
0x82 = Background (Near Layer) Graphics Set
0xAA = Background Tile Layout (seems to also change some tiles like question block and brick to their appropiate level's palette)
0xAC = Background Palette

These I haven't tested, but am fairly sure of:
0xC0 = Level Tileset Palette
0xD2 = Background (Near Layer) Tile Layout
0xD4 = Background (Near Layer) Palette

The quest to crack NSMB's level format continues!

BTW, the new editor will be released tomorrow.
Also hopefully I will have full level editing (enemies etc) in a few days. (or maybe sooner!)

____________________
I'll put something here later.

Treeki
Posted on 07-24-07 03:22 PM, in Let's hack NSMB! (To be exact, a level viewer.) Link | Quote | ID: 57444


Red Cheep-cheep
Level: 34

Posts: 42/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days

Set for release later today, if all goes well.
Yep, you can now organise the objects in the list. I will also be adding basic editing of some stuff in the level header (time limit, Mario's start position, tileset, background).

____________________
I'll put something here later.

Treeki
Posted on 07-24-07 03:47 PM, in Let's hack NSMB! (To be exact, a level viewer.) Link | Quote | ID: 57447


Red Cheep-cheep
Level: 34

Posts: 43/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by Tanks
Your object tutorial works fine. I don't see why you haven't implemented it yet though... I'm currently making an object list... it will take a while but I've found things like possible beta collision blocks, the flag, and even check points. I even found a collision block of doom that kills you if you run into it . (It will only kill ou once and then it disappears...) I have yet to go farther but for now all I can do is keeping moving at a very slow pace...



I haven't implemented it because the offset at which objects start is different for every level, I think. It won't be in the first version of Lakitu's Cloud (ugh, I need a better name) but it will definitely be in a later version!
Object definitions will also be extended to support them, when they're added. If you manage to make an object list, do post it, as it will save me time once I decide to add this!

____________________
I'll put something here later.

Treeki
Posted on 07-24-07 08:23 PM, in Let's hack NSMB! (To be exact, a level viewer.) Link | Quote | ID: 57467


Red Cheep-cheep
Level: 34

Posts: 44/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Nah, I've decided to change it back to NSMB Editor 2.0.

Editor is almost done! Everything works, just need to design, code and test the Level Header dialog.

Here's a full list of stuff that will be changeable in this version:
+ Time limit
+ Mario's start position
+ Level tileset (GFX set, palette)
+ Level background (GFX set, palette, tile layout)
+ Parallax background (GFX set, palette, tile layout)

I do want to add more when I find the data.

Also, I'll be making a new thread for the new editor (I think this one's run its course) so keep an eye out for that when it's released!

____________________
I'll put something here later.

Treeki
Posted on 07-24-07 08:32 PM, in Let's hack NSMB! (To be exact, a level viewer.) Link | Quote | ID: 57469


Red Cheep-cheep
Level: 34

Posts: 45/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by Reini
Posted by Treeki
Nah, I've decided to change it back to NSMB Editor 2.0.

Editor is almost done! Everything works, just need to design, code and test the Level Header dialog.

Here's a full list of stuff that will be changeable in this version:
+ Time limit
+ Mario's start position
+ Level tileset (GFX set, palette)
+ Level background (GFX set, palette, tile layout)
+ Parallax background (GFX set, palette, tile layout)

I do want to add more when I find the data.

Also, I'll be making a new thread for the new editor (I think this one's run its course) so keep an eye out for that when it's released!


Will this work on any version of NSMB?'Cause when I tried one of them with your
editor,an error has been occured.

What error? What description? When did it happen?
I haven't tried it on any version, only the US version. But an error shouldn't happen.
But if you do get an error, please describe it. Saying "An error has been occured" won't help at all!

____________________
I'll put something here later.

Treeki
Posted on 07-24-07 09:02 PM, in Let's hack NSMB! (To be exact, a level viewer.) Link | Quote | ID: 57478


Red Cheep-cheep
Level: 34

Posts: 46/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by Tanks
Well I know how much work is needed to make a thurough object list since I've been tediously working... but I'll give it a try if I could get sonic's help.

I've just found out how to change Koopa Troopa colors too. I'll toss that in along with my documentation. I'm a bit hesitant to try this on paratroopas or even goombas but for the sake of documentation it shall be done!

As for the editor a name... I was thinking NSLM (New Super Lunar Magic) but you'd probably get in a heap of trouble for that... so how about NSME ('Nother Super Mario Editor)

PS 'nother as in another

Changing Koopa colours probably won't do much to Goombas. It will probably either make them not appear, not load the level or have them with glitched graphics.

____________________
I'll put something here later.

Treeki
Posted on 07-24-07 09:13 PM, in Let's hack NSMB! (To be exact, a level viewer.) Link | Quote | ID: 57482


Red Cheep-cheep
Level: 34

Posts: 47/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by GuyPerfect
He'll settle on OldHack. Tonight, a vision will come to him in a dream as to why it is crucial to use that name.

Here is my totally scientific formula why the name will not be changed then.

AcmlmBoard doesn't support editing topic titles + Editor will be released later, before your "dream" has a chance = No change of name.

____________________
I'll put something here later.

Treeki
Posted on 07-24-07 09:28 PM, in Let's hack NSMB! (To be exact, a level viewer.) Link | Quote | ID: 57485


Red Cheep-cheep
Level: 34

Posts: 48/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
[citation needed]

____________________
I'll put something here later.

Treeki
Posted on 07-24-07 10:09 PM, in New SMB Editor 2 - Now improved and easier to use! (rev. 5 of 08-24-07 08:31 PM) Link | Quote | ID: 57492


Red Cheep-cheep
Level: 34

Posts: 49/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
The old post got deleted and I don't have a backup. But, I've tried to recreate what I can remember here.


This is the rewritten version of my editor for New Super Mario Bros, which was done in 2 days.
It lets you edit various things in the game and is updated often!

FAQ:
Q: Why are the graphics messed up?
A: Because they're not yet finished. You can still see tile previews for some tiles in the Pick Tile/Object Editor dialogs.

Q: Where do I find a NSMB ROM?
A: Somewhere. We can't post ROM links here, so go look on a ROM site or something.

Q: What emulator plays NSMB?
A: No$GBA.

Q: How do I use this?
A: Open program, open ROM, select level.
Double-click on an object in the list to change it.
Click on an object in the level view to scroll to it in the list.
To change time limit, graphics or Mario's tileset, click on Edit Level Header.
Save your level when done.

Q: Why are so many tiles named "Unknown Tile", and why are so few tiles in the Pick Tile list?
A: For a tile to show up in either of these, it must have a name listed in objdef.ini. But not every tile has been documented. The format is relatively easy to understand if you wish to add more tiles; just read the descriptive comments in the file and look at the examples already there!

Screenshot:


Download:
NSMB Editor 2.2
Includes: Editor, object definitions for every object in World 1-1, Visual Basic 6 source code

Old versions: (warning, no support is offered for these and they will no longer be updated)
Editor 2.1
Editor 2.0
Editor 1.4
Editor 1.3

Other stuff:
NSMB Level Format documentation, by me (including enemy data information!) (slightly outdated)

Please post a comment if you tried this!
Before you ask a stupid question, do read the FAQ and see if it's answered there.
Find a bug? Then please report it, as I want this program to be as bug-free as possible!
Improved objdef.ini by adding more definitions and/or previews? Help us out by posting them so they can be added to the next update!


____________________
I'll put something here later.

Treeki
Posted on 07-24-07 10:43 PM, in New SMB Editor 2 - Now improved and easier to use! Link | Quote | ID: 57497


Red Cheep-cheep
Level: 34

Posts: 50/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by AlexAR
Wow, it all looks fantastic Treeki. Very very good job. But...how do we play our hacks? Do we have to load em up onto those flash cards thingamabobs that people use to play home brew games on their DS's? I know there are some DS emulators out there, but they area all terrible and you cant really play any DS games on em at any descent speed.

What do you suggest?

No$GBA! Recent versions play NSMB quite well, even on not-so-good computers. A recent update fixed the "intro takes 1 hour" glitch and now it takes 1-2 minutes, and NSMB is perfectly playable. Even more so if you get to the Tower and save, so you don't have to watch the intro every time. I used No$GBA for all the testing I did for this; I don't have a flash cart.

____________________
I'll put something here later.

Treeki
Posted on 07-25-07 12:47 AM, in New SMB Editor 2 - Now improved and easier to use! Link | Quote | ID: 57534


Red Cheep-cheep
Level: 34

Posts: 51/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by GuyPerfect
Ah, OldHack v0.2 is looking quite good!

0.2?

____________________
I'll put something here later.

Treeki
Posted on 07-25-07 01:06 AM, in New SMB Editor 2 - Now improved and easier to use! Link | Quote | ID: 57549


Red Cheep-cheep
Level: 34

Posts: 52/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by GuyPerfect
Indubidibly.

It won't be the only release ever; I will make sure of that.
Yes, it's still a work-in-progress, but there are also stable releases with not all the planned features, which are 2.0, 2.1, etc.
And yes, my "released later" comment was correct.

____________________
I'll put something here later.

Treeki
Posted on 07-25-07 01:24 AM, in New SMB Editor 2 - Now improved and easier to use! Link | Quote | ID: 57553


Red Cheep-cheep
Level: 34

Posts: 53/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by Tanks
Treeki: I was wondering, what do you think the Big Coins are? Are they objects of some sort? I just want your take on this before I do something stupid AGAIN

Probably stored as enemies.


That's a scrapped "show enemy" mode in the old editor. I never finished it, but it works on 1-1 (somewhat)l. You can clearly see the Star Coins!

____________________
I'll put something here later.

Treeki
Posted on 07-25-07 12:00 PM, in New SMB Editor 2 - Now improved and easier to use! Link | Quote | ID: 57794


Red Cheep-cheep
Level: 34

Posts: 54/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by Tanks
Pretty much what you can do when you put your mind to it

Since sonic's too lazy I'll post his vid too

That was almost impossible to see, and why did you link to it twice?

Oh yeah, I'm also planning on creating a sort of "patcher" that can create patches for NSMB levels, since apparently IPS doesn't work on 16MB+ files (NSMB is 32MB).
Basically, it will run through the ROM, create a checksum of each level and if it's not the same as the original, it will be saved in the patch file. Not sure if it will be in the next version, though.
Here are my priorities for stuff I need to do: (stuff at the top has the highest priority)
Enemy editing
More header editing
Easy patching for distribution of hacks
Graphics (From included files, similar to that Super Mario Kart editor)
Graphics (From ROM)

____________________
I'll put something here later.

Treeki
Posted on 07-25-07 12:18 PM, in New SMB Editor 2 - Now improved and easier to use! Link | Quote | ID: 57799


Red Cheep-cheep
Level: 34

Posts: 55/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by Squash Monster
You should make your patcher go through all the files in the ROM, not just the levels. It shouldn't be any harder to code, and it'll help the scene out as a whole. The hacking scene needs a new patcher for the new systems anyway.

Well, it -may- be harder if the files are larger/smaller than the originals. I haven't yet figured out how to insert data (instead of overwrite) using VB's Get and Put statements, so I can't easily make something like that.
I would also have to insert all the modified files into the patch, instead of just what's changed, which could cause a problem with the "copyrighted data" thing on games which store all their data in one file (I know there are a few).
That's why I chose to only have it work on NSMB levels.

____________________
I'll put something here later.

Treeki
Posted on 07-25-07 02:15 PM, in New SMB Editor 2 - Now improved and easier to use! Link | Quote | ID: 57809


Red Cheep-cheep
Level: 34

Posts: 56/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by Squash Monster
I think the best approach would be to do IPS-style patching on each of the files. Though that's not quite so easy.

I don't think there's an easy way to insert in VB6. Just overwrite when you go past the limit of a file while storing an array of all the bites you've overwritten. Then when you're past the file treat that array like a queue - put the value you're about to overwrite on the end of the queue, write the value off the front of the queue, and keep going until you run out of file.

An alternative might be to break the game into its component files and have a build option to make a ROM file out of all the game files. This has the advantage of making it a lot easier for people who want to do stuff to the game that doesn't involve the level editor.

But what would I do for things like the ROM header, ARM7/ARM9 programs, etc?

____________________
I'll put something here later.

Treeki
Posted on 07-25-07 07:00 PM, in New SMB Editor 2 - Now improved and easier to use! (rev. 2 of 07-25-07 07:23 PM) Link | Quote | ID: 57867


Red Cheep-cheep
Level: 34

Posts: 57/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
lol [citation needed]

____________________
I'll put something here later.

Treeki
Posted on 07-25-07 07:57 PM, in New SMB Editor 2 - Now improved and easier to use! Link | Quote | ID: 57885


Red Cheep-cheep
Level: 34

Posts: 58/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
Posted by Kyoufu Kawa
And then he discovered XML a defining language with nested data.

Maybe once I find an XML parser for VB.

<objdef version='2.1'>
<definitions scope='global'>
<tile fbyte='10' sbyte='16'>
<name>Ground top</name>
<colour>11</colour>
</tile>
</definitions>
<definitions scope='tileset' tileset='0'>
<tile fbyte='42' sbyte='16'>
<name>I forget</name>
<colour>15</colour>
</tile>
</definitions>
</objdef>

Yay for complicatedness.

____________________
I'll put something here later.

Treeki
Posted on 07-26-07 01:55 AM, in New SMB Editor 2 - Now improved and easier to use! Link | Quote | ID: 57989


Red Cheep-cheep
Level: 34

Posts: 59/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
I haven't had much chance to work on this today.

But get ready for enemy editing, soon!

____________________
I'll put something here later.

Treeki
Posted on 07-26-07 10:32 AM, in New SMB Editor 2 - Now improved and easier to use! Link | Quote | ID: 58251


Red Cheep-cheep
Level: 34

Posts: 60/209
EXP: 236784
Next: 16867

Since: 07-12-07
From: Rogueport

Last post: 3937 days
Last view: 3638 days
[citation needed]

____________________
I'll put something here later.
Pages: 1 2 3 4 5 6 7 8 9 10


Main - Posts by Treeki

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

Page rendered in 0.236 seconds. (330KB of memory used)
MySQL - queries: 127, rows: 159/159, time: 0.224 seconds.