It looks very much like you've found the target. One way you can test is, IIRC, changing the value stored in r1 - you can actually edit the registers at runtime, if I'm not mistaken.
Anyway. You need to find out when the address is loaded into r1. One way to do this is run through the subroutine until it returns, then find the original subroutine call, set a breakpoint to that, and then step through until you find the code you're looking for. If you still can't find it, repeat the process: see where the subroutine that called the subroutine breaks, step through, set a breakpoint to the call and whatnot. Keep tracing the matryoshka outward until you find the address being loaded.
Note that games have this wonderful habit of shuffling values around en route to their goal. It may not be initially loaded into r1: it may be loaded into another register and transferred to r1. You'll need to keep an eye out for that.
Also, an advanced trick that can save you some repetition is looking for the return address in the stack. When a subroutine call happens, the return address is pushed into the stack, so you can actually spot it if the push/pop balance is even or close to it (and the stack pointer hasn't been tweaked in any other way).