Thread: Development: Uncatchable Pokemon
View Single Post
Old July 14th, 2011 (12:19 PM).
JPAN JPAN is offline
pokemon rom researcher
Join Date: Dec 2008
Posts: 104

Quote originally posted by metapod23:
I tried it out, but haven't gotten it to work. Here's the code I'm using:
.align 2

Catch_me_not: ldr r0, =00007015 bl LoadVariable cmp r0, #0x01 bne return_to_normal ldrb r0, [r0] cmp r0, #0x1 bne return_to_normal ldr r1, battleFlags ldr r1, [r1] ldr r0, afterGhostAddr bx r0

return_to_normal: ldr r1, battleFlags ldr r1, [r1] ldr r0, ghostCheckAddr bx r0

battleFlags: .word 0x02022b4c afterGhostAddr: .word 0x0802d461 ghostCheckAddr: .word 0x0802d457

LoadVariable: ldr r1, ld_Var_addr bx r1 ld_Var_addr: .word 0x0806e569

All the underlined code is what's throwing the code off. The value returned by the variable loader is the value to compare right after. After that, loading from R0 would be loading from address 1, a BIOS address. That address value (if even loaded) will most likely not be 1, so the second check fails.
That second check is used only on the "address reading" version of the code. Clean it off, and it should work.

Here are the links for my work

Currently working on:
Battle Script Documentation
Another large project
Reply With Quote