Users browsing this thread: 1 Guest(s)
asm hacking: "faking" short jumps from your code (in a new bank) to old code
The following code allowed me to call a $C2 routine while being in bank $EE. Not the best example but it proves it works. Just enter the battle and set breakpoint at $C20CB0. I'm including the debugger console log. I never touched "step over" or "step out" except one "step over" at $C20D42.
xkas code:
Log:
xkas code:
Code:
hirom
;what is needed for fake jump
org $C26469
RTS
RTL
;hook up
org $C20CB0
JSL newCode
BRA continue
;ending point where code continue normally
org $C20CBA
continue:
org $EEAF01
;$C24B5A function
newCode:
PHX
INC $BE
LDX $BE
LDA $C0FD00,X
PLX
;$C20CB3 code
ORA #$E0
STA $E8
;Fake Jump replacing JSR $0D3D
PHK
PER $0009
PEA $6469 ; return after execution of $C20D3D
PEA $0D3C ; 0D3Dh - 1
JMP $C26469
;Your custom code could continue here :D
RTL
Log:
Code:
c20cb0 jsl $eeaf01 [eeaf01] A:00ff X:000c Y:0004 S:15d6 D:0000 DB:7e NvMXdIzc V:158 H: 268 F:27
eeaf01 phx A:00ff X:000c Y:0004 S:15d3 D:0000 DB:7e NvMXdIzc V:158 H: 322 F:27
eeaf02 inc $be [0000be] A:00ff X:000c Y:0004 S:15d2 D:0000 DB:7e NvMXdIzc V:158 H: 342 F:27
eeaf04 ldx $be [0000be] A:00ff X:000c Y:0004 S:15d2 D:0000 DB:7e nvMXdIzc V:158 H: 376 F:27
eeaf06 lda $c0fd00,x [c0fd47] A:00ff X:0047 Y:0004 S:15d2 D:0000 DB:7e nvMXdIzc V:158 H: 396 F:27
eeaf0a plx A:0078 X:0047 Y:0004 S:15d2 D:0000 DB:7e nvMXdIzc V:158 H: 426 F:27
eeaf0b ora #$e0 A:0078 X:000c Y:0004 S:15d3 D:0000 DB:7e nvMXdIzc V:158 H: 452 F:27
eeaf0d sta $e8 [0000e8] A:00f8 X:000c Y:0004 S:15d3 D:0000 DB:7e NvMXdIzc V:158 H: 464 F:27
eeaf0f phk A:00f8 X:000c Y:0004 S:15d3 D:0000 DB:7e NvMXdIzc V:158 H: 484 F:27
eeaf10 per $0009 [7e0009] A:00f8 X:000c Y:0004 S:15d2 D:0000 DB:7e NvMXdIzc V:158 H: 504 F:27
eeaf13 pea $6469 [7e6469] A:00f8 X:000c Y:0004 S:15d0 D:0000 DB:7e NvMXdIzc V:158 H: 584 F:27
eeaf16 pea $0d3c [7e0d3c] A:00f8 X:000c Y:0004 S:15ce D:0000 DB:7e NvMXdIzc V:158 H: 618 F:27
eeaf19 jml $c26469 [c26469] A:00f8 X:000c Y:0004 S:15cc D:0000 DB:7e NvMXdIzc V:158 H: 652 F:27
c26469 rts A:00f8 X:000c Y:0004 S:15cc D:0000 DB:7e NvMXdIzc V:158 H: 676 F:27
c20d3d php A:00f8 X:000c Y:0004 S:15ce D:0000 DB:7e NvMXdIzc V:158 H: 716 F:27
c20d3e rep #$20 A:00f8 X:000c Y:0004 S:15cd D:0000 DB:7e NvMXdIzc V:158 H: 736 F:27
c20d40 lda $f0 [0000f0] A:00f8 X:000c Y:0004 S:15cd D:0000 DB:7e NvmXdIzc V:158 H: 754 F:27
c20d42 jsr $47b7 [c247b7] A:001e X:000c Y:0004 S:15cd D:0000 DB:7e nvmXdIzc V:158 H: 782 F:27
c20d45 inc A:001d X:000c Y:0004 S:15cd D:0000 DB:7e nvmXdIzc V:159 H: 622 F:27
c20d46 sta $f0 [0000f0] A:001e X:000c Y:0004 S:15cd D:0000 DB:7e nvmXdIzc V:159 H: 634 F:27
c20d48 plp A:001e X:000c Y:0004 S:15cd D:0000 DB:7e nvmXdIzc V:159 H: 662 F:27
c20d49 rts A:001e X:000c Y:0004 S:15ce D:0000 DB:7e NvMXdIzc V:159 H: 688 F:27
c2646a rtl A:001e X:000c Y:0004 S:15d0 D:0000 DB:7e NvMXdIzc V:159 H: 728 F:27
eeaf1d rtl A:001e X:000c Y:0004 S:15d3 D:0000 DB:7e NvMXdIzc V:159 H: 770 F:27
c20cb4 bra $0cba [c20cba] A:001e X:000c Y:0004 S:15d6 D:0000 DB:7e NvMXdIzc V:159 H: 812 F:27
c20cba clc A:001e X:000c Y:0004 S:15d6 D:0000 DB:7e NvMXdIzc V:159 H: 830 F:27
« Next Oldest | Next Newest »
|
||||
Users browsing this thread: 1 Guest(s)