Ice Ranger
Posts: 152/183 |
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. |