(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
04-29-24 08:28 PM
0 users currently in ROM Hacking.
Acmlm's Board - I3 Archive - ROM Hacking - Help with Super Mario Land : Frank15? New poll | |
Add to favorites | Next newer thread | Next older thread
User Post
Jayenkai
Newcomer








Since: 08-14-06
From: Bolton, England

Last post: 6467 days
Last view: 6467 days
Posted on 08-14-06 06:13 PM Link | Quote
Hi, I've started work on a Super Mario Land remake, and it's coming along reasonably well. The only issue I have right now, is that it'll take me ages to convert the levels without having access to the original layouts.. It'll be one of those "Take several hours, one bit at a time, pen and graph paper" type things..

If anyone has any info on the way the levels are stored (Frank15 seems to be quite knowledgeable. Your Super Super Mario Land's great!) then could you please give me a few pointers, to get me heading in the right direction?

Thanks..
Kattwah

Acro
RIP Acmlm's Board: Feb. 18 2007








Since: 11-17-05

Last post: 6280 days
Last view: 6279 days
Posted on 08-14-06 09:09 PM Link | Quote
Moved on account of the wrong forum... in addition...

You should probably go and request admissions to this place if you want to be interactive.

A few people (hackers) feel you show a good enough interest to be accepted, but only time will tell really
Jouw

Koopa








Since: 12-03-05

Last post: 6289 days
Last view: 6289 days
Posted on 08-14-06 09:18 PM Link | Quote
Take a look at this:
http://www.vgmaps.com/Atlas/GB-GBC/index.htm#SuperMarioLand
Jayenkai
Newcomer








Since: 08-14-06
From: Bolton, England

Last post: 6467 days
Last view: 6467 days
Posted on 08-15-06 06:26 AM Link | Quote
Thanks for the link to the maps. Using intelligent image reading, I think I can get my proggy to read most of the level detail from those maps. They're most useful.

Slight issue being the lack of Enemy placement. So, again, if anyone could help on that angle, that'd be much appreciated. Thanks again.

WIP :
Not fullscreen, and will probably change as dev progresses.
Thanks again to Jouw for the Heads-up to the level images.
Plenty of work to do, yet!


(edited by Jayenkai on 08-15-06 08:36 AM)
Frank15

Goomba








Since: 01-01-06
From: New Orleans

Last post: 6466 days
Last view: 6280 days
Posted on 08-15-06 01:10 PM Link | Quote
I hope I'm answering your question the right way here: if I'm not, feel free to re-ask.

Level information for World 1 is from $A200-$B872, though it looks like there's free space from $A200-$B8D7, if needed.

Level information for World 2 is from $56CD-$65D2, while level information for World 4 is from $65D3-$7DAD, though there's a decent amount of free space, up to $7FFD. The information for worlds 2 and 4 run together, and you could likely use more space for World 4 by using less for World 2, and vice versa.

Level information in World 3 is from $D22C-$E416. No additional free space this time.

And here is the data that determines the screen order: each "screen" is two bytes; specifically, the address of the start of the screen you want to use for that "screen" of the level. If desired, you can start the screen after any occurance of FE without trouble, though it's easiest to design levels by just working with individual screens of twenty FEs.

The four bytes before the screen order for the levels is for the screen you would like to use for up to two bonus rooms. 1-2, 2-3, and 4-3 have this as well, even though you cannot add bonus rooms for those levels. Maybe with ASM, but that's above my level here.

Note that the addresses, for some reason, are listed as 4000 lower than they truly are for World 1, and 8000 lower for World 3. No idea why, but they are.

SCREEN ORDER

1-1: $A198-$A1B5
1-2: $A1BD-$A1D8
1-3: $A1E0-$A1FD
2-1: $55C1-$55E0
2-2: $55E8-$5603
2-3: $560B-$562E
3-1: $D045-$D072
3-2: $D07A-$D099
3-3: $D0A1-$D0BE
4-1: $5636-$5663
4-2: $566B-$5692
4-3: $569A-$56C9

As for editing the levels--or screens themselves, each screen is made up of 20 vertical lines. The information for each vertical line ends in FE. A vertical line with no objects would simply have another FE after the previous FE. Objects you want to use require at least two bytes: one for the vertical location in that line, and another for the actual object

Let's see if I can word this better, 'cause that's confusing even for me to look at. For the first byte, you'd have to have something like, say, E2. The E is the vertical height for the object, and the 2 is the number of objects you're going to have. After the E2, you would have two more bytes, to indicate the two objects at the E and F heights. Probably ground tiles in this case. And of course, you'd put FE after you've put all the objects you want for that vertical line.

I hope you're understanding this... I can't think of how to word all of this better than I am.
Jayenkai
Newcomer








Since: 08-14-06
From: Bolton, England

Last post: 6467 days
Last view: 6467 days
Posted on 08-15-06 06:32 PM Link | Quote
Great, thanks for that, makes a lot of sense and helps quite a bit. I'll have a play about with that, tonight.
One little thing, are the baddies and such also stored in that same area, or are they in a seperate place?
Frank15

Goomba








Since: 01-01-06
From: New Orleans

Last post: 6466 days
Last view: 6280 days
Posted on 08-15-06 07:40 PM Link | Quote
You want bad guy information? Here ya' go!

Each enemy is three bytes, looking enemy looks something like this:

19 8F 04

The first byte is for the horizontal position, by pixels. Each screen has 0A "spaces." The checkpoints at every level are at 00, 28, 50, 78, A0, and C8, for your convenience, if you have trouble keeping track of where in the level you're placing enemies: they're useful points of reference. It is important to place the enemies in the same horizontal order they appear in the level, or the spites can mess up.

The second byte is, mostly, the vertical position. 0F is actually ground level. 4F, 8F, and CF can also be used to fine-tune the horizontal positioning a little more. Also, 4x and Cx should be used for Piranha Plants and Bullet Bill cannons so that they appear correctly. Jumping fish start start at 13, 53, 93, or D3, depending on how you want it to be aligned horizontally.

The third byte is the specific enemy. A list of common enemies is below.

And below is the location for the enemies, and other non-power-up sprites for each level. Tempting as it is, you are not allowed to use fewer enemies in one level to add more to another. It's really annoying in 3-3, which uses way too few sprites.

1-1: $A002-$A070
1-2: $A073-$A0FC
1-3: $A0FE-$A18D
2-1: $5179-$5220
2-2: $5222-$5299
2-3: $529B-$530F
3-1: $CE74-$CF1B
3-2: $CF1D-$CFD6
3-3: $CFD8-$D03D
4-1: $5311-$5403
4-2: $5405-$54D3
4-3: $54D5-$55B8

And the enemy list. Add 8 to the first digit to have an enemy appear in hard mode only. Like 80 would be a Goomba that only appears in hard mode, A4 would be a jumping seahorse that appears only in hard mode, etc. This also applies to the moving platforms, despite that the original game never had hard mode-only moving platforms.

00: Goomba.
02: Piranha Plant.
03: Infinite giant boulders.
04: Bomb Koopa.
06: Pipe fist.
08: Sphinx boss.
09: Bubble-spitting flower.
0A: Vertically moving platform.
0B: Horizontally moving platform.
0C: Stone that falls after a few seconds, used in 1-3.
0E: Fly (world 1) or jumping spider (world 3)--same enemy, different graphics for it.
10: Jumping skeleton fish.
16: Head-throwing robot.
1A: Seahorse boss.
1D: Swimming seahorse.
24: Jumping seahorse.
25: Descending ceiling spider.
2F: Triple fish.
31: Really really fast running stone head.
32: Stone head boss.
35: Falling stalactite.
36: Platform that falls when stepped on.
38: Diagonally moving platform.
39: Diagonally moving platform. Can't think which was which.
3A: Skinny vertically moving platform.
3B: Skinny horizontally moving platform.
3C: Flying stone head.
3F: Sphinx (world 1) or snake (world 4)--same enemy, different graphics for it.
42: Flying arrow-dropping bee.
47: Single giant boulder.
48: Seahorse invincible fireball protector.
49: Bullet Bill cannon.
52: Airplane gunner.
53: Flying chicken.
54: Roto-Disc.
55: Upside-down Piranha Plant.
56: Jumping zombie ninja.
61: Cloud boss.


(edited by Frank15 on 08-15-06 06:41 PM)
(edited by Frank15 on 08-15-06 06:44 PM)
Jayenkai
Newcomer








Since: 08-14-06
From: Bolton, England

Last post: 6467 days
Last view: 6467 days
Posted on 08-15-06 07:48 PM Link | Quote
Sorted!! Thanks so much for all your help. I'll be sure to credit you in my game
Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - ROM Hacking - Help with Super Mario Land : Frank15? |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.015 seconds; used 384.23 kB (max 469.71 kB)