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 - Only Still Preliminary, But Current Data Is Quite Convincing: SMB3 Airship Retreat Points | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
beneficii

Lakitu
Level: 36

Posts: 117/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 06-11-05 06:22 PM Link | Quote
EDIT: BTW, the same position is often repeated many times throughout the level data. It's very redundant.

NOTE: All numbers in hexadecimal unless otherwise mentioned!

First thing, the airship start-off point is always at the castle and it's always sprite #2 in each world, even if that sprite is set to something other than the ship start-off point.

Now, it seems quite random where the airship retreats to, and it is. But I think I found two sets of points right here:

1700E:
Choice of y positions. There are 12 per world, and so this lasts 7E bytes (7 worlds each have an airship, not 8--remember). It's written like this:

yyyy 0000
y = y position in Discombobulator or Workshop + 2

1709E:
Choice x positions. Again, there are 12 per world, and so this lasts 7E bytes too. Here:

xxxx ssss
x = x position
s = screen number

I'm not sure if anybody had found this before, but here you go. Here are some of my thoughts on this:

The two x and y positions always link up, for example if it chooses byte #5 in the y set, then it will choose byte #5 in the x set. If it reads 1701A in the y set, then it will read 170AA in the x set, etc.

The aircraft will only retreat thrice, after which it holds its ground. When it picks, say byte #A, then byte #B will be its next choice, ending with byte #C. If it starts with byte #12, then it will probably go back around to byte #1 (i.e. the very first byte) next, then end at byte #2.

Alright, tell me what you guys think. I hope this and the lock data are helpful.


(edited by beneficii on 06-11-05 03:34 AM)
DurfarC

Beezo
Level: 33

Posts: 404/483
EXP: 218551
For next: 10628

Since: 09-04-04
From: Norway

Since last post: 20 days
Last activity: 12 hours
Posted on 06-11-05 10:05 PM Link | Quote
They're not helpful; they're very helpful. If I get this to work, among with moving the lock blocks, I can design my world maps to look more different from the original ones. Two of the biggest mysteries in SMB3 seem to be solved. Thanks again!
beneficii

Lakitu
Level: 36

Posts: 118/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 06-11-05 10:34 PM Link | Quote
Originally posted by DurfarC
They're not helpful; they're very helpful. If I get this to work, among with moving the lock blocks, I can design my world maps to look more different from the original ones. Two of the biggest mysteries in SMB3 seem to be solved. Thanks again!


Thanks! I'm glad to hear that my work is appreciated! I'm going to work on pipes next!

Acmlm

Torosu
heh
Level: 51

Posts: 1125/1173
EXP: 981994
For next: 31944

Since: 03-15-04
From: Somewhere that isn't outside of Sherbrooke, Québec, Canada

Since last post: 39 days
Last activity: 3 hours
Posted on 06-12-05 12:24 AM Link | Quote
I thought it just picked a random level pointer on the map (since it'd have to be on a valid spot you can access) and moved there ... but this would be a problem in World 2 for example if the airship goes into the secret area, so I guess this explains why it uses separate data

And good job on finding it too


Now find where the starting position in X is stored (shouldn't be hard, I found the table for Y long ago but X is constant), and make it like Y so you can really start anywhere on the map, and that'll make world maps even more customizable
beneficii

Lakitu
Level: 36

Posts: 120/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 06-12-05 06:15 AM Link | Quote
Originally posted by Acmlm
I thought it just picked a random level pointer on the map (since it'd have to be on a valid spot you can access) and moved there ... but this would be a problem in World 2 for example if the airship goes into the secret area, so I guess this explains why it uses separate data

And good job on finding it too


Now find where the starting position in X is stored (shouldn't be hard, I found the table for Y long ago but X is constant), and make it like Y so you can really start anywhere on the map, and that'll make world maps even more customizable


Perhaps, now that I'm mostly done with the pipes.

EDIT: BTW, hadn't you ever noticed that in a hack, sometimes the airship will retreat to somewhere inaccessible?

EDIT 2: I found the x starting position. It's at 16258, but it's hardcoded in, and so changing it for one world will change it for all. Perhaps I can pull off an ASM hack somehow. That could work out.


(edited by beneficii on 06-11-05 01:16 PM)
(edited by beneficii on 06-11-05 05:22 PM)
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - Only Still Preliminary, But Current Data Is Quite Convincing: SMB3 Airship Retreat Points | |


ABII


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



Page rendered in 0.013 seconds.