Ok, that's what I had started fiddling with earlier. So far what I did was mostly trial and error, which proved quite limiting.
Battle needs some more ASM hacking to work properly, but I haven't found where exactly to start pasting in the code (What Geiger posted earlier should work again, but trying to skip the step didn't work for some reason).