I've been playing around with this game (Angelic Layer for the GBA), but I've hit a wall, in that as far as I can tell, the pointers are hard-coded.
To make matters worse, the game has a lot of control codes in the script, like movement, display things etc.
There's a giant table with pointers to ASM routines. There's actually a reference table of sorts, which is compared to something (I haven't gotten that far backwards in the ASM yet) to determine which pointer to take.
In the ASM routines, it then has hard-coded pointers to where the actual script pieces are. And they're all over the place as far as I can tell. Some ASM routines are ASM hard-coded to run a piece of script repeatedly, usually a control code such as movement. (I assume to save space...) And they all use the same script reading routine for text or control codes.
I was thinking of writing a half-baked ASM interpreter to run through the entire thing to try and pick out the pointers to actual script (by noting everytime it calls the script reading routine), but it has so many false positives due to the hard-coded ASM to save space...
Or maybe look at the giant blocks of actual script, and try to see if there's a range for it all, and put that through an algorithm to distill the actual script pieces and the pointers?
Or I guess I could go through it one by one manually...but I'm wondering....is there any great ideas I missed? Or should I be just giving up?