V-Gears 0
Free Final Fantasy VII engine.
FieldDisassembler.h File Reference
#include <array>
#include "installer/decompiler/Disassembler.h"
#include "FieldScriptFormatter.h"
Include dependency graph for FieldDisassembler.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  FieldDisassembler
 A disassebler for field maps. More...
 
struct  FieldDisassembler::InstructionRecord
 Information about an instruction. More...
 
struct  FieldDisassembler::ScriptInfo
 Info about a script. More...
 
struct  FieldDisassembler::ScriptHeader
 A script header. More...
 

Enumerations

enum  OPCODES {
  RET = 0x0 , REQ = 0x01 , REQSW = 0x02 , REQEW = 0x03 ,
  PREQ = 0x04 , PRQSW = 0x05 , PRQEW = 0x06 , RETTO = 0x07 ,
  JOIN = 0x08 , SPLIT = 0x09 , SPTYE = 0x0A , GTPYE = 0x0B ,
  DSKCG = 0x0E , SPECIAL = 0x0F , JMPF = 0x10 , JMPFL = 0x11 ,
  JMPB = 0x12 , JMPBL = 0x13 , IFUB = 0x14 , IFUBL = 0x15 ,
  IFSW = 0x16 , IFSWL = 0x17 , IFUW = 0x18 , IFUWL = 0x19 ,
  MINIGAME = 0x20 , TUTOR = 0x21 , BTMD2 = 0x22 , BTRLD = 0x23 ,
  WAIT = 0x24 , NFADE = 0x25 , BLINK = 0x26 , BGMOVIE = 0x27 ,
  KAWAI = 0x28 , KAWIW = 0x29 , PMOVA = 0x2A , SLIP = 0x2B ,
  BGPDH = 0x2C , BGSCR = 0x2D , WCLS = 0x2E , WSIZW = 0x2F ,
  IFKEY = 0x30 , IFKEYON = 0x31 , IFKEYOFF = 0x32 , UC = 0x33 ,
  PDIRA = 0x34 , PTURA = 0x35 , WSPCL = 0x36 , WNUMB = 0x37 ,
  STTIM = 0x38 , GOLDU = 0x39 , GOLDD = 0x3A , CHGLD = 0x3B ,
  HMPMAX1 = 0x3C , HMPMAX2 = 0x3D , MHMMX = 0x3E , HMPMAX3 = 0x3F ,
  MESSAGE = 0x40 , MPARA = 0x41 , MPRA2 = 0x42 , MPNAM = 0x43 ,
  MPU = 0x45 , MPD = 0x47 , ASK = 0x48 , MENU = 0x49 ,
  MENU2 = 0x4A , BTLTB = 0x4B , HPU = 0x4D , HPD = 0x4F ,
  WINDOW = 0x50 , WMOVE = 0x51 , WMODE = 0x52 , WREST = 0x53 ,
  WCLSE = 0x54 , WROW = 0x55 , GWCOL = 0x56 , SWCOL = 0x57 ,
  STITM = 0x58 , DLITM = 0x59 , CKITM = 0x5A , SMTRA = 0x5B ,
  DMTRA = 0x5C , CMTRA = 0x5D , SHAKE = 0x5E , NOP = 0x5F ,
  MAPJUMP = 0x60 , SCRLO = 0x61 , SCRLC = 0x62 , SCRLA = 0x63 ,
  SCR2D = 0x64 , SCRCC = 0x65 , SCR2DC = 0x66 , SCRLW = 0x67 ,
  SCR2DL = 0x68 , MPDSP = 0x69 , VWOFT = 0x6A , FADE = 0x6B ,
  FADEW = 0x6C , IDLCK = 0x6D , LSTMP = 0x6E , SCRLP = 0x6F ,
  BATTLE = 0x70 , BTLON = 0x71 , BTLMD = 0x72 , PGTDR = 0x73 ,
  GETPC = 0x74 , PXYZI = 0x75 , PLUS_ = 0x76 , PLUS2_ = 0x77 ,
  MINUS_ = 0x78 , MINUS2_ = 0x79 , INC_ = 0x7A , INC2_ = 0x7B ,
  DEC_ = 0x7C , DEC2_ = 0x7D , TLKON = 0x7E , RDMSD = 0x7F ,
  SETBYTE = 0x80 , SETWORD = 0x81 , BITON = 0x82 , BITOFF = 0x83 ,
  BITXOR = 0x84 , PLUS = 0x85 , PLUS2 = 0x86 , MINUS = 0x87 ,
  MINUS2 = 0x88 , MUL = 0x89 , MUL2 = 0x8A , DIV = 0x8B ,
  DIV2 = 0x8C , MOD = 0x8D , MOD2 = 0x8E , AND = 0x8F ,
  AND2 = 0x90 , OR = 0x91 , OR2 = 0x92 , XOR = 0x93 ,
  XOR2 = 0x94 , INC = 0x95 , INC2 = 0x96 , DEC = 0x97 ,
  DEC2 = 0x98 , RANDOM = 0x99 , LBYTE = 0x9A , HBYTE = 0x9B ,
  TWOBYTE = 0x9C , SETX = 0x9D , GETX = 0x9E , SEARCHX = 0x9F ,
  PC = 0xA0 , opCodeCHAR = 0xA1 , DFANM = 0xA2 , ANIME1 = 0xA3 ,
  VISI = 0xA4 , XYZI = 0xA5 , XYI = 0xA6 , XYZ = 0xA7 ,
  MOVE = 0xA8 , CMOVE = 0xA9 , MOVA = 0xAA , TURA = 0xAB ,
  ANIMW = 0xAC , FMOVE = 0xAD , ANIME2 = 0xAE , ANIM_1 = 0xAF ,
  CANIM1 = 0xB0 , CANM_1 = 0xB1 , MSPED = 0xB2 , DIR = 0xB3 ,
  TURNGEN = 0xB4 , TURN = 0xB5 , DIRA = 0xB6 , GETDIR = 0xB7 ,
  GETAXY = 0xB8 , GETAI = 0xB9 , ANIM_2 = 0xBA , CANIM2 = 0xBB ,
  CANM_2 = 0xBC , ASPED = 0xBD , CC = 0xBF , JUMP = 0xC0 ,
  AXYZI = 0xC1 , LADER = 0xC2 , OFST = 0xC3 , OFSTW = 0xC4 ,
  TALKR = 0xC5 , SLIDR = 0xC6 , SOLID = 0xC7 , PRTYP = 0xC8 ,
  PRTYM = 0xC9 , PRTYE = 0xCA , IFPRTYQ = 0xCB , IFMEMBQ = 0xCC ,
  MMBUD = 0xCD , MMBLK = 0xCE , MMBUK = 0xCF , LINE = 0xD0 ,
  LINON = 0xD1 , MPJPO = 0xD2 , SLINE = 0xD3 , SIN = 0xD4 ,
  COS = 0xD5 , TLKR2 = 0xD6 , SLDR2 = 0xD7 , PMJMP = 0xD8 ,
  PMJMP2 = 0xD9 , AKAO2 = 0xDA , FCFIX = 0xDB , CCANM = 0xDC ,
  ANIMB = 0xDD , TURNW = 0xDE , MPPAL = 0xDF , BGON = 0xE0 ,
  BGOFF = 0xE1 , BGROL = 0xE2 , BGROL2 = 0xE3 , BGCLR = 0xE4 ,
  STPAL = 0xE5 , LDPAL = 0xE6 , CPPAL = 0xE7 , RTPAL = 0xE8 ,
  ADPAL = 0xE9 , MPPAL2 = 0xEA , STPLS = 0xEB , LDPLS = 0xEC ,
  CPPAL2 = 0xED , RTPAL2 = 0xEE , ADPAL2 = 0xEF , MUSIC = 0xF0 ,
  SOUND = 0xF1 , AKAO = 0xF2 , MUSVT = 0xF3 , MUSVM = 0xF4 ,
  MULCK = 0xF5 , BMUSC = 0xF6 , CHMPH = 0xF7 , PMVIE = 0xF8 ,
  MOVIE = 0xF9 , MVIEF = 0xFA , MVCAM = 0xFB , FMUSC = 0xFC ,
  CMUSC = 0xFD , CHMST = 0xFE , GAMEOVER = 0xFF
}
 Field opcodes. More...
 
enum  OPCODES_SPECIAL {
  ARROW = 0xF5 , PNAME = 0xF6 , GMSPD = 0xF7 , SMSPD = 0xF8 ,
  FLMAT = 0xF9 , FLITM = 0xFA , BTLCK = 0xFB , MVLCK = 0xFC ,
  SPCNM = 0xFD , RSGLB = 0xFE , CLITM = 0xFF
}
 SPECIAL opcodes. More...
 
enum  OPCODES_KAWAI {
  EYETX = 0x00 , TRNSP = 0x01 , AMBNT = 0x02 , Unknown03 = 0x03 ,
  Unknown04 = 0x04 , Unknown05 = 0x05 , LIGHT = 0x06 , Unknown07 = 0x07 ,
  Unknown08 = 0x08 , Unknown09 = 0x09 , SBOBJ = 0x0A , Unknown0B = 0x0B ,
  Unknown0C = 0x0C , SHINE = 0x0D , RESET = 0xFF
}
 KAWAI opcodes. More...
 

Enumeration Type Documentation

◆ OPCODES

enum OPCODES

Field opcodes.

Enumerator
RET 
REQ 
REQSW 
REQEW 
PREQ 
PRQSW 
PRQEW 
RETTO 
JOIN 
SPLIT 
SPTYE 
GTPYE 
DSKCG 
SPECIAL 
JMPF 
JMPFL 
JMPB 
JMPBL 
IFUB 
IFUBL 
IFSW 
IFSWL 
IFUW 
IFUWL 
MINIGAME 
TUTOR 
BTMD2 
BTRLD 
WAIT 
NFADE 
BLINK 
BGMOVIE 
KAWAI 
KAWIW 
PMOVA 
SLIP 
BGPDH 
BGSCR 
WCLS 
WSIZW 
IFKEY 
IFKEYON 
IFKEYOFF 
UC 
PDIRA 
PTURA 
WSPCL 
WNUMB 
STTIM 
GOLDU 
GOLDD 
CHGLD 
HMPMAX1 
HMPMAX2 
MHMMX 
HMPMAX3 
MESSAGE 
MPARA 
MPRA2 
MPNAM 
MPU 
MPD 
ASK 
MENU 
MENU2 
BTLTB 
HPU 
HPD 
WINDOW 
WMOVE 
WMODE 
WREST 
WCLSE 
WROW 
GWCOL 
SWCOL 
STITM 
DLITM 
CKITM 
SMTRA 
DMTRA 
CMTRA 
SHAKE 
NOP 
MAPJUMP 
SCRLO 
SCRLC 
SCRLA 
SCR2D 
SCRCC 
SCR2DC 
SCRLW 
SCR2DL 
MPDSP 
VWOFT 
FADE 
FADEW 
IDLCK 
LSTMP 
SCRLP 
BATTLE 
BTLON 
BTLMD 
PGTDR 
GETPC 
PXYZI 
PLUS_ 
PLUS2_ 
MINUS_ 
MINUS2_ 
INC_ 
INC2_ 
DEC_ 
DEC2_ 
TLKON 
RDMSD 
SETBYTE 
SETWORD 
BITON 
BITOFF 
BITXOR 
PLUS 
PLUS2 
MINUS 
MINUS2 
MUL 
MUL2 
DIV 
DIV2 
MOD 
MOD2 
AND 
AND2 
OR 
OR2 
XOR 
XOR2 
INC 
INC2 
DEC 
DEC2 
RANDOM 
LBYTE 
HBYTE 
TWOBYTE 
SETX 
GETX 
SEARCHX 
PC 
opCodeCHAR 
DFANM 
ANIME1 
VISI 
XYZI 
XYI 
XYZ 
MOVE 
CMOVE 
MOVA 
TURA 
ANIMW 
FMOVE 
ANIME2 
ANIM_1 
CANIM1 
CANM_1 
MSPED 
DIR 
TURNGEN 
TURN 
DIRA 
GETDIR 
GETAXY 
GETAI 
ANIM_2 
CANIM2 
CANM_2 
ASPED 
CC 
JUMP 
AXYZI 
LADER 
OFST 
OFSTW 
TALKR 
SLIDR 
SOLID 
PRTYP 
PRTYM 
PRTYE 
IFPRTYQ 
IFMEMBQ 
MMBUD 
MMBLK 
MMBUK 
LINE 
LINON 
MPJPO 
SLINE 
SIN 
COS 
TLKR2 
SLDR2 
PMJMP 
PMJMP2 
AKAO2 
FCFIX 
CCANM 
ANIMB 
TURNW 
MPPAL 
BGON 
BGOFF 
BGROL 
BGROL2 
BGCLR 
STPAL 
LDPAL 
CPPAL 
RTPAL 
ADPAL 
MPPAL2 
STPLS 
LDPLS 
CPPAL2 
RTPAL2 
ADPAL2 
MUSIC 
SOUND 
AKAO 
MUSVT 
MUSVM 
MULCK 
BMUSC 
CHMPH 
PMVIE 
MOVIE 
MVIEF 
MVCAM 
FMUSC 
CMUSC 
CHMST 
GAMEOVER 

◆ OPCODES_KAWAI

KAWAI opcodes.

KAWAI opcode is a special one. It's a multi-purpose opcode, used to perform graphics related tasks. It has a sub-opcode, in the next address, that determines the operation to perform. This is a list of those sub-opcodes.

Enumerator
EYETX 
TRNSP 
AMBNT 
Unknown03 
Unknown04 
Unknown05 
LIGHT 
Unknown07 
Unknown08 
Unknown09 
SBOBJ 
Unknown0B 
Unknown0C 
SHINE 
RESET 

◆ OPCODES_SPECIAL

SPECIAL opcodes.

SPECIAL opcode is a special one. It's a multi-purpose opcode, used to perform game-specific tasks. It has a sub-opcode, in the next address, that determines the operation to perform. This is a list of those sub-opcodes.

Enumerator
ARROW 
PNAME 
GMSPD 
SMSPD 
FLMAT 
FLITM 
BTLCK 
MVLCK 
SPCNM 
RSGLB 
CLITM