Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - mario land 2 level data | |
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
midget35

Paragoomba
Level: 13

Posts: 42/70
EXP: 8877
For next: 1390

Since: 03-17-05

Since last post: 3 days
Last activity: 14 hours
Posted on 07-28-05 04:42 PM Link | Quote
Hi all.

I'm getting into hacking sml2, and seem to have made good progress so far. Level data doesn't seem to be compressed and is managable within a hex editor. cool.

Anyway- has anyone done much hacking of sml2? I would be very grateful if anyone could point me to any info or docs thay have on the game.

I am specifically looking for the hex $addresses that dictate level dimensions and sprite & enemy locations for the first level of the game.

Thanks as always for any help, and please let me know if you'd like to get involved in a sml2 hack.
stag019

Snifit
Level: 23

Posts: 94/299
EXP: 62259
For next: 5464

Since: 06-10-05
From: C:\Documents and Settings\stag019\Desktop

Since last post: 9 days
Last activity: 7 hours
Posted on 07-29-05 12:57 AM Link | Quote
2. RLE
Main use: Data
Implemented in: Super Mario Land 2 (Levels)
This compression method relies on unbroken repeating strings. The "proper" format is a length byte followed by a data byte. For example, 06 0A is equal to 0A 0A 0A 0A 0A 0A - the 06 means repeat 6 times. It's possible, but uncommon, for the data byte to come first.
Often, the length byte is only 7 bits, with the highest bit being an indicator of whether it's a length byte or an uncompressed data byte. If your uncompressed data is something like 0D 46 93 00 you don't want to have to compress that - that'd result in a string of 01 0D 01 46 01 93 01 00, doubling the length. However, this can only work if you know all the data bytes will be less than 7F - otherwise the high bit will be set, and your program would interpret it as a length byte.
RLE compression is very flexible and can have more than one byte for both length and data, so you could use RLE to compress a string such as 0D 0A 0D 0A 0D 0A 0D 0A, provided the program was designed for 16-bit data. In some cases, the length and data bytes could be combined. For example, if you know neither will exceed 15 (decimal), you could use the upper 4 bits for length and lower 4 for data. This is rare, however, since it restricts the values so much.
RLE compression isn't too hard to implement, but it can make hacking a bitch, since you need to know what to look for and usually need a lot more room for new stuff. (Plus if you plan to make an editor, you'll either need to be able to code a routine to RLE-compress data the same way it is in the game, or ASM-hack it to disable the compression altogether.)

That's all the info I got, I took that from The Crimson Chin's website.
midget35

Paragoomba
Level: 13

Posts: 44/70
EXP: 8877
For next: 1390

Since: 03-17-05

Since last post: 3 days
Last activity: 14 hours
Posted on 07-29-05 05:18 AM Link | Quote
Thanks for replying stag! I was beginning to wonder if anyone would!

Needless to say- within about 15 secs of instigating this post, I realised there WAS compression involved. Nonetheless it's very basic, and level layout-wise I understand it.

As far as I can see- so long as the scrolling, map data, enemy & item data remains unchanged, I can already realise a significant amount of (arduously implemented!) level design changes!

I must re-iterate my priorities- finding the scrolling/level length data seems to have eluded everyone so far. They don't seem to appear at the start of the level layout data as one might expect.

I urge anyone with any interest to help me investigate this further and get involved. SML2 has a fantastic engine that is underappreciated because ithe game's too easy to complete. There's real potential here. Please don't hold back with any seemingly insignificant info you might have.

Thanks again Stag.
stag019

Snifit
Level: 23

Posts: 100/299
EXP: 62259
For next: 5464

Since: 06-10-05
From: C:\Documents and Settings\stag019\Desktop

Since last post: 9 days
Last activity: 7 hours
Posted on 07-29-05 05:31 AM Link | Quote
Originally posted by midget35
Thanks for replying stag! I was beginning to wonder if anyone would!

Needless to say- within about 15 secs of instigating this post, I realised there WAS compression involved. Nonetheless it's very basic, and level layout-wise I understand it.

As far as I can see- so long as the scrolling, map data, enemy & item data remains unchanged, I can already realise a significant amount of (arduously implemented!) level design changes!

I must re-iterate my priorities- finding the scrolling/level length data seems to have eluded everyone so far. They don't seem to appear at the start of the level layout data as one might expect.

I urge anyone with any interest to help me investigate this further and get involved. SML2 has a fantastic engine that is underappreciated because ithe game's too easy to complete. There's real potential here. Please don't hold back with any seemingly insignificant info you might have.

Thanks again Stag.
No problem.But, I have a question for you. I've wanted to hack this for a long time, but didn't know how. Could you document like where the levels are, where the pieces are, and all the pieces? I really want to hack this game.
Edit: 100th Post!!!!!


(edited by stag019 on 07-28-05 08:32 PM)
midget35

Paragoomba
Level: 13

Posts: 45/70
EXP: 8877
For next: 1390

Since: 03-17-05

Since last post: 3 days
Last activity: 14 hours
Posted on 07-29-05 08:58 PM Link | Quote
Ok Stag. Let's see...

I haven't bothered writing down the starting addresses for any of the levels passed l1 yet, as I still have so much to understand about the layout / design principles. I'm taking it one step at a time, and focusing purely on the 1st level as it is easiest to get to and check as I make changes.

l1 object data starts at $24500. This data then goes from the top left hand 'block' across to the top right block. The following numbers are repeated dictating the 'blocks' to be used for that upper row:

E0 FF E0 FF E0 FF E0 FF etc ...

E0 is, basically 'thin air': a white square with no collision values or other properties to speak of.

FF then dictates that the preceding block is to be repeated 255 times (+ 1 for the original E0, if you get me!).

So a lot of thin air. There is a prefixed level length value that I cannot track down at this time. Nonetheless- once the blocks reach the end of the row, they automatically return to the far left and drawing of the next row begins.

This 'signal' to end one row and start the next does NOT appear within the block layout. ie. there is no explicit value saying the end has been reached. Within this code for example ...

E0 FF E0 FF E0 FF E0 FF E0 FF E0 FF E0 FF E0 FF

several rows are created, with no 'on the fly' cut-of-point indicating the next row is to be started.

Ok.

values 00 -7F are individual blocks. For example 01 draws a single '?' coin block.

values 80 -FF dictate there is to be a row of a particular block, and must be followed by a value stating how long the row is (+ 1). A7 33, for example, draws 52 blocks of grass.

Editing is arduous for this reason: the number of blocks in a row has to be spot on. If I changed A7 33 to A7 32, for example, all the rows below it would be offset by one!

This is why I'm so frustrated that I can't locate the level dimension data.

Something for you to play with:

$x24C9A is the starting address for the row directly underfoot for level 1. It starts:
A7 33 29 2B 28
This draws a long row of grass (A7 33) and the bottom of a small mound (29 2B 28) directly after.

Change the final 3 values to anything you like between 00 - 7F to see the diversity of blocks available. Changing the first value to 80 - FF changes the style and attributes of blocks underfoot for that row. Changing the 2nd (row value) will offset all rows thereafter. Go down a pipe to see how this takes effect.

I'm not interested in documenting all the block types & their values until I know more about the essentials of sml2 level creation. I'm into level & graphics hacking, but such info would be fairly useless until I can dictate the level scrolling & dimensions, item & enemy placement.

I've made a lot more progress than I've listed here, but this is the most important I feel.

Good luck stag, let's see if we can crack this thing!
stag019

Snifit
Level: 23

Posts: 130/299
EXP: 62259
For next: 5464

Since: 06-10-05
From: C:\Documents and Settings\stag019\Desktop

Since last post: 9 days
Last activity: 7 hours
Posted on 07-29-05 09:19 PM Link | Quote
All of this info is pure gold. Perhaps, If there's a decompressor, we could make an editor. This is just amazing! Good luck with any hacks you're planning, you deserve it! Do you know anything on overworld editing?
Originally posted by midget35
I'm not interested in documenting all the block types & their values until I know more about the essentials of sml2 level creation. I'm into level & graphics hacking, but such info would be fairly useless until I can dictate the level scrolling & dimensions, item & enemy placement.
I'll work on that, you try to find the enemy data. Again, great info, let's get to work!
midget35

Paragoomba
Level: 13

Posts: 46/70
EXP: 8877
For next: 1390

Since: 03-17-05

Since last post: 3 days
Last activity: 14 hours
Posted on 07-30-05 06:31 AM Link | Quote
I can't find the item & level data. I'll keep looking but it has been very well hidden. I'm completely lost.
stag019

Snifit
Level: 23

Posts: 194/299
EXP: 62259
For next: 5464

Since: 06-10-05
From: C:\Documents and Settings\stag019\Desktop

Since last post: 9 days
Last activity: 7 hours
Posted on 07-30-05 08:42 AM Link | Quote
I'm working on the list, which I'll post after midnight.
Violent J

Melon Bug
Level: 41

Posts: 499/749
EXP: 479154
For next: 991

Since: 05-05-04
From: The Lotus Pod

Since last post: 8 hours
Last activity: 8 hours
Posted on 07-30-05 09:10 AM Link | Quote
Its after midnight Mr. NonStop Poster! POST TEH LIST! I wouldnt mind trying to see if I can understand this and maybe help out.
stag019

Snifit
Level: 23

Posts: 206/299
EXP: 62259
For next: 5464

Since: 06-10-05
From: C:\Documents and Settings\stag019\Desktop

Since last post: 9 days
Last activity: 7 hours
Posted on 07-30-05 09:34 AM Link | Quote
Originally posted by Sonicandtails
Its after midnight Mr. NonStop Poster! POST TEH LIST! I wouldnt mind trying to see if I can understand this and maybe help out.
Well excuse me for trying to get some point in the ACS. Because of that, I'm only listing ten Items at a time. I'll edit this post each time I decide to add more.
The List:

00=Used Block
01=? Block With Coin
02=Solid Emptiness
03=Used Block
04=Conveyer Belt Right
05=Conveyer Belt Left
06=Fireball Destroy Blocks
07=Used Block
08=Vertical Top Left Side of Pipe
09= Vertical Top Right Side of Pipe
0A=Vertical Bottom Left Side of Pipe
0B=Vertical Bottom Right Side of Pipe
0C=Horizontal Top Left Side of Pipe
0D=Horizontal Bottom Left Side of Pipe
0E=Horizontal Top Right Side of Pipe
0F=Horizontal Bottom Right Side of Pipe

I don't know what in the ? block, because I can't reach it. Is there any other object you know of that I can change?(SOLVED)
Oh, and It would be great if you helped out.


(edited by stag019 on 07-31-05 11:13 PM)
(edited by stag019 on 07-31-05 11:14 PM)
midget35

Paragoomba
Level: 13

Posts: 47/70
EXP: 8877
For next: 1390

Since: 03-17-05

Since last post: 3 days
Last activity: 14 hours
Posted on 07-30-05 04:59 PM Link | Quote
Change the value at 24C2F to 00 - 7F. This is easily accessible.

I didn't realise you were only operating with the example values I gave you.

rows start something like this:

etc.
24906
249C3
24A6A
24AF9 (etc)
24B9C (row3)
24C2F (row 2)
24C9A (ground level)

The blocks you noted as 'emptiness' may have more significance- many seemingly blank blocks are solid, act as conveyer belts, water, gue properties etc. Keep an eye out for those!

*Oh, and It would be great if you helped out.*

Is this directed at me? I've spent the last day and a half looking for sprite data per your request.
richyawyingtmv

Koopa
Level: 15

Posts: 45/116
EXP: 14829
For next: 1555

Since: 06-14-05

Since last post: 15 hours
Last activity: 14 hours
Posted on 07-30-05 05:54 PM Link | Quote
No, im sure he meant Sonicandtails.
stag019

Snifit
Level: 23

Posts: 214/299
EXP: 62259
For next: 5464

Since: 06-10-05
From: C:\Documents and Settings\stag019\Desktop

Since last post: 9 days
Last activity: 7 hours
Posted on 08-01-05 08:13 AM Link | Quote
Originally posted by richyawyingtmv
No, im sure he meant Sonicandtails.
Yeah I meant Sonicandtails. I've been busy so I only have up until 0F done, however, next time I update, I'll add a lot more.
Coolman

Goomba
Level: 10

Posts: 8/32
EXP: 3753
For next: 661

Since: 08-29-04
From:
Germany
FWB

Since last post: 5 days
Last activity: 21 hours
Posted on 08-01-05 09:07 PM Link | Quote
Hi,
I'm working on a Mapeditor for SuperMario2 atm. I'm so far that it can view all maps but I don't know if it works with the English version, too...
If I find a English rom, I'll what I can do...
Perhaps I'll give you a little beta version the next days...

EDIT: I just remember that there is only one version of SuperMario2 ^^"


(edited by Coolman on 08-01-05 12:10 PM)
Someguy

Buzzy Beetle
It seems as though the girl you've fallen for is also a pyromaniac.
Level: 32

Posts: 358/397
EXP: 193329
For next: 13113

Since: 03-15-04
From: I'm proud to be an American... I think...

Since last post: 1 day
Last activity: 5 hours
Posted on 08-01-05 09:27 PM Link | Quote
Actually if I remember there is atleast an english and japanese version, if not more. If I saw the rom though I may be able to see which one it is... you are talking about the Super Mario Land 2 game(for Gameboy) and not Super Mario Bros. 2 for NES, right?
Coolman

Goomba
Level: 10

Posts: 9/32
EXP: 3753
For next: 661

Since: 08-29-04
From:
Germany
FWB

Since last post: 5 days
Last activity: 21 hours
Posted on 08-01-05 10:11 PM Link | Quote
Yes,
we are talking about Super Mario Land 2 - Six Golden Coins.
My editor supports 1.0/ENG, 1.2/ENG, 1.0/JAP, 1.2/JAP...

With "only one version" I wanted to say that there is no special German edition...

EDIT: I've made a screenshot of what I have so far:
Screenshot


(edited by Coolman on 08-01-05 01:12 PM)
(edited by Coolman on 08-01-05 01:17 PM)
(edited by Coolman on 08-01-05 01:18 PM)
Someguy

Buzzy Beetle
It seems as though the girl you've fallen for is also a pyromaniac.
Level: 32

Posts: 359/397
EXP: 193329
For next: 13113

Since: 03-15-04
From: I'm proud to be an American... I think...

Since last post: 1 day
Last activity: 5 hours
Posted on 08-02-05 12:35 AM Link | Quote
You are the best for doing that, Coolman. You probably aren't accepting them but I would love to try and beta test and find glitches because when I test things I come acrost them. That and I love SML2!
stag019

Snifit
Level: 23

Posts: 220/299
EXP: 62259
For next: 5464

Since: 06-10-05
From: C:\Documents and Settings\stag019\Desktop

Since last post: 9 days
Last activity: 7 hours
Posted on 08-02-05 01:26 AM Link | Quote
Originally posted by Someguy
You are the best for doing that, Coolman. You probably aren't accepting them but I would love to try and beta test and find glitches because when I test things I come acrost them. That and I love SML2!
Me too, can I beta test it. That editor is awesome. So much for my list. But you don't know how to edit sprites yet, do you.
midget35

Paragoomba
Level: 13

Posts: 48/70
EXP: 8877
For next: 1390

Since: 03-17-05

Since last post: 3 days
Last activity: 14 hours
Posted on 08-02-05 05:54 AM Link | Quote
Very impressive! Is this a mock-up or an actual screenshot?

I'm, working pretty solidly on this too right now. I'd be very appreciative of any and all information you could forward to me- as well as any docs you've come across.

I'm going through the rom byte by byte at the moment looking for enemy location data. I shall of course post my findings here.

Bis jetzt finde ich es sehr Schon!
Coolman

Goomba
Level: 10

Posts: 10/32
EXP: 3753
For next: 661

Since: 08-29-04
From:
Germany
FWB

Since last post: 5 days
Last activity: 21 hours
Posted on 08-02-05 09:49 AM Link | Quote
Originally posted by midget35
Very impressive! Is this a mock-up or an actual screenshot?

I'm, working pretty solidly on this too right now. I'd be very appreciative of any and all information you could forward to me- as well as any docs you've come across.

I'm going through the rom byte by byte at the moment looking for enemy location data. I shall of course post my findings here.

Bis jetzt finde ich es sehr Schon!


It's a actual screenshot(well, now it is old again).

Well I'll look for Sprites and Enemeys this afternoon, I think.

Well, I could give you the docs, but most of them are full of ASM-Stuff...
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - mario land 2 level data | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.019 seconds.