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 - How I used FCEUXD to find warp data for SMB2 (might help ppl learning ASM) | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Ice Ranger

Leever
Level: 23

Posts: 152/183
EXP: 60462
For next: 7261

Since: 03-16-04

Since last post: 82 days
Last activity: 3 days
Posted on 06-25-05 09:46 AM Link | Quote
NOTE: if the thread title is too long, change it.

Alright, it took me awhile to figure out a thread title, because I wanted to address the lack of use of FCEUXD for finding data (man, I hope this doesn't sound like a testimonial from somebody who enjoyed it). Plus, it might help people understand ASM a little bit better (doing this hack is what's helped me so much).

Anyway, I played the entire game logging all the data (This one includes all warps being activated).

Then went back and activated a warp, made note of what happened in the tracer. Then, went to world 3, re-loaded the file (so the warp wouldn't already have the data searched for, which turns out didn't matter anyway, but I wanted to make sure) and repeated the steps again. I did this for all 7 worlds. Here are my notes.


--------------------------------------------------------------------
WARP FROM WORLD 1 TO 4
--------------------------------------------------------------------
(24097663 lines skipped)
$E763:B9 5A F6 LDA $F65A,Y @ $F65A = #$03 A:00 X:00 Y:00 P:nvUbdIZc
(19524 lines skipped)
$EAAF:BD 00 DC LDA $DC00,X @ $DC24 = #$94 A:24 X:24 Y:03 P:nvUbdIzc
(1 lines skipped)
$EAB4:BD 01 DC LDA $DC01,X @ $DC25 = #$71 A:94 X:24 Y:03 P:NvUbdIzc

--------------------------------------------------------------------
WARP FROM WORLD 2 TO 2
--------------------------------------------------------------------
(32292425 lines skipped)
$E763:B9 5A F6 LDA $F65A,Y @ $F65B = #$01 A:00 X:00 Y:01 P:nvUbdIzc
(19522 lines skipped)
$EAAF:BD 00 DC LDA $DC00,X @ $DC24 = #$94 A:24 X:24 Y:01 P:nvUbdIzc
(1 lines skipped)
$EAB4:BD 01 DC LDA $DC01,X @ $DC25 = #$71 A:94 X:24 Y:01 P:NvUbdIzc

--------------------------------------------------------------------
WARP FROM WORLD 3 TO 5
--------------------------------------------------------------------
(44085078 lines skipped)
$E763:B9 5A F6 LDA $F65A,Y @ $F65C = #$04 A:00 X:00 Y:02 P:nvUbdIzc
(19534 lines skipped)
$EAAF:BD 00 DC LDA $DC00,X @ $DC24 = #$94 A:24 X:24 Y:04 P:nvUbdIzc
(1 lines skipped)
$EAB4:BD 01 DC LDA $DC01,X @ $DC25 = #$71 A:94 X:24 Y:04 P:NvUbdIzc

--------------------------------------------------------------------
WARP FROM WORLD 4 TO 6
--------------------------------------------------------------------
(28321692 lines skipped)
$E763:B9 5A F6 LDA $F65A,Y @ $F65D = #$05 A:00 X:00 Y:03 P:nvUbdIzc
(19524 lines skipped)
$EAAF:BD 00 DC LDA $DC00,X @ $DC24 = #$94 A:24 X:24 Y:05 P:nvUbdIzc
(1 lines skipped)
$EAB4:BD 01 DC LDA $DC01,X @ $DC25 = #$71 A:94 X:24 Y:05 P:NvUbdIzc

--------------------------------------------------------------------
WARP FROM WORLD 5 TO 7
--------------------------------------------------------------------
(23767211 lines skipped)
$E763:B9 5A F6 LDA $F65A,Y @ $F65E = #$06 A:00 X:00 Y:04 P:nvUbdIzc
(19516 lines skipped)
$EAAF:BD 00 DC LDA $DC00,X @ $DC24 = #$94 A:24 X:24 Y:06 P:nvUbdIzc
(1 lines skipped)
$EAB4:BD 01 DC LDA $DC01,X @ $DC25 = #$71 A:94 X:24 Y:06 P:NvUbdIzc

--------------------------------------------------------------------
WARP FROM WORLD 6 TO 6
--------------------------------------------------------------------
(33398425 lines skipped)
$E763:B9 5A F6 LDA $F65A,Y @ $F65F = #$05 A:00 X:00 Y:05 P:nvUbdIzc
(19524 lines skipped)
$EAAF:BD 00 DC LDA $DC00,X @ $DC24 = #$94 A:24 X:24 Y:05 P:nvUbdIzc
(1 lines skipped)
$EAB4:BD 01 DC LDA $DC01,X @ $DC25 = #$71 A:94 X:24 Y:05 P:NvUbdIzc

--------------------------------------------------------------------
WARP FROM WORLD 7 TO 7
--------------------------------------------------------------------
(52154268 lines skipped)
$E763:B9 5A F6 LDA $F65A,Y @ $F660 = #$06 A:00 X:00 Y:06 P:nvUbdIzc
(19144 lines skipped)
$EAAF:BD 00 DC LDA $DC00,X @ $DC24 = #$94 A:24 X:24 Y:06 P:nvUbdIzc
(1 lines skipped)
$EAB4:BD 01 DC LDA $DC01,X @ $DC25 = #$71 A:94 X:24 Y:06 P:NvUbdIzc


Notice the part after the = sign in the first line of each code. It's the only part that changes where the value loaded into the accumulator is from a different area (and the values are the same as those wanted for most GG codes for starting worlds (00-06)).

Using the right click over those values in the RAM view (which were at the location $F66x area) it allowed me to go to that area in ROM. Where the real changes need to be made.


Now, for what you really want... offsets to change world the warps go to:

0x01F66A - WORLD 1's warp (currently 03)
0x01F66B - WORLD 2's warp (currently 01)
0x01F66C - WORLD 3's warp (currently 04)
0x01F66D - WORLD 4's warp (currently 05)
0x01F66E - WORLD 5's warp (currently 06)
0x01F66F - WORLD 6's warp (currently 05)
0x01F670 - WORLD 7's warp (currently 06)

Yeah, that's right, there's all the worlds and the changes do work. That means, if you're in WORLD 7, you can make a warp to lead to WORLD 1.

Screenshots don't do it justice, but...







Screenshots are from the hack I am working on...

I hope the number of data seekers increases. I actually found it fun.
Heian-794

Red Super Koopa
Level: 44

Posts: 730/896
EXP: 611014
For next: 271

Since: 06-01-04
From: Kyoto, Japan

Since last post: 21 days
Last activity: 10 days
Posted on 06-25-05 07:27 PM Link | Quote
The ASM/logging stuff is something I never could have come up with -- great find! -- but I really like those screenshots, especially the metallic door and more-3D-looking basket and Ninji (or is that a Snifit?). Looking forward to your hack!



Kyoufu Kawa
I'm not bad. I'm just drawn that way.
Level: 70

Posts: 1697/2481
EXP: 3008456
For next: 7355

Since: 03-19-04
From: Catgirl Central

Since last post: 14 hours
Last activity: 13 hours
Posted on 06-25-05 07:35 PM Link | Quote
Top work, Chill.

Also, that's a ninji indeed, and a vase. (note: "vahz", not face )
beneficii

Lakitu
Level: 36

Posts: 198/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-25-05 08:13 PM Link | Quote
CP,

Actually, I was able to put FCEUXD to great use when I was searching for the lock, pipe, starting space, and airship fleeing spaces data for SMB3. I probably would have been unable to find them weren't it for FCEUXD.
bbitmaster

Koopa
Level: 18

Posts: 83/103
EXP: 25264
For next: 4633

Since: 03-28-04
From: Knoxville, tTN

Since last post: 12 days
Last activity: 7 days
Posted on 06-26-05 06:28 AM Link | Quote
yes, that feature where the trace logger works with the code data logger is extremely powerful. I'm glad that someone put it to good use.

Speaking of using FCEUXD to find things, I thought I'd post a link to an old document I wrote about findindg enemy health with it.
http://bitmaster.panicus.org/misc/EnemyHealth.txt
BillyGraham21

Micro-Goomba
Level: 5

Posts: 7/10
EXP: 363
For next: 166

Since: 06-23-05

Since last post: 47 days
Last activity: 13 hours
Posted on 06-27-05 04:42 PM Link | Quote
very cool CP. These using FCEUXD examples are excellent for those learning to utilize the potential of the emulator/debugger and associated tools.
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - How I used FCEUXD to find warp data for SMB2 (might help ppl learning ASM) | |


ABII


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



Page rendered in 0.018 seconds.