Heyo Spherical. So I've been doing a disassembly of every script in the game and I figured I'd let you know about this so you could (maybe) throw this into your scripting compendium thing you had on your website (which I've been using to correct errors in my own database for SEA).
Applymovementpos is completely documented wrong. The actual command has nothing to do with position actually, but it instead takes the NPC ID from a variable (2 bytes) and then applies the movement in the next pointer (4 bytes). So it's actually formatted as such:
applymovementpos 0x8XXX @teh_movements
I found it very interesting and kinda sad that such a useful command has gone so long undocumented.
Oh, that's easy. Just replace the two bytes at 08062986, 080629D6, 08062A8E, 08062B46, 08062BFE, 08062CAE, 08062CFE, and 08062DB6 with 02 21 (mov r1, #0x2). If you want an explanation, there's basically a giant switch which controls what the copying NPC does (walking at normal, running, and bike speeds; jumping ledges; looking). In all of these functions the "execute movement" function take an argument for relative direction. So basically instead of loading this argument from the NPC it's forced to 0x2 which makes it function properly.
Hey, I was wondering if you could tell me how you managed to make the Copy Player movement behaviour actually work in FireRed? I don't particularly need the the Follow Me function itself (though your work on it is super impressive) but it'd be really useful to be able to have a properly-functioning Copy Player movement.