Coincidentally, I'm working on something similar for FF7. It's progressing fairly well; it'll turn this:
UC Disabled=1 //0x0
MENU2 Disabled=1 //0x2
PTURA PartyID=0, Speed=15, Direction=2 //0x4
IFSW BankValue1=2, BankValue2=0, Value1=0, Value2=999, Comparison=2, Offset=16 //0x8 --> 1f
WINDOW WindowID=1, X=67, Y=137, Width=233, Height=73 //0x10
MESSAGE WindowID=1, DialogueID=121 //0x1a
JMPF Offset=14 //0x1d --> 2c
WINDOW WindowID=1, X=39, Y=153, Width=261, Height=57 //0x1f
MESSAGE WindowID=1, DialogueID=120 //0x29
UC Disabled=0 //0x2c
MENU2 Disabled=0 //0x2e
TURNGEN BankRotation=0, Rotation=164, Direction=2, Steps=15, Calculation=2 //0x30
Into this:
string sMyoldmanwas = "“My old man was a miner, but\n he couldn't go to work after monsters \n started appearing in the Mythril Mines.”{New Scr}“Now all he does is sit around\n getting drunk in the bar…”";
string sMydadstill = "“My dad still just sits at the\n bar drinking, even though\n he knows Meteor's coming!”{New Scr}“It's sad. Even though he's an adult,\n he just doesn't want to see\n the world as it really is.\n I dunno what to do.”";
EnableMenuAndMove(False);
TurnToPartyMember(0, 15);
if (PPV > 999) {
ShowMessage(67, 137, 233, 73, sMydadstill);
} else {
ShowMessage(39, 153, 261, 57, sMyoldmanwas);
}
EnableMenuAndMove(True);
TurnSmooth(164, Closest, 15);
It'll extract nested if's and while loops from the instructions; I just really need to finish processing all the various opcodes. Shouldn't take too long, since the code structure is the tricky part, and that's mostly done.