Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define FF12SCR_INSTR_COUNT 100
- struct tInstructions
- {
- std::wstring instructionName;
- u32 stackPopped; // used only for some instructions
- u32 stackPushed; // used only for some instructions
- u16 instructionSize;
- u16 unknown;
- };
- //static initializer
- const CScriptContainer::tInstructions CScriptContainer::instructions[FF12SCR_INSTR_COUNT] = {
- {L"NOP", 0, 0, 0, 0}, // 0
- {L"LABEL", 0, 0, 0, 8}, // 1
- {L"TAG", 0, 0, 0, 7}, // 2
- {L"SYSHALT", 0, 0, 1, 0}, // 3
- {L"SYSTEM", 0, 0, 1, 0}, // 4
- {L"OPLOR", 1, 1, 1, 0}, // 5
- {L"OPLAND", 1, 1, 1, 0}, // 6
- {L"OPOR", 1, 1, 1, 0}, // 7
- {L"OPEOR", 1, 1, 1, 0}, // 8
- {L"OPAND", 1, 1, 1, 0}, // 9
- {L"OPEQ", 2, 1, 1, 0}, // 0xA
- {L"OPNE", 2, 1, 1, 0}, // 0xB
- {L"OPGT", 2, 1, 1, 0}, // 0xC
- {L"OPLS", 2, 1, 1, 0}, // 0xD
- {L"OPGTE", 2, 1, 1, 0}, // 0xE
- {L"OPLSE", 2, 1, 1, 0}, // 0xF
- {L"OPSLL", 1, 1, 1, 0}, // 0x10
- {L"OPSRL", 1, 1, 1, 0}, // 0x11
- {L"OPADD", 2, 2, 1, 0}, // 0x12
- {L"OPSUB", 2, 2, 1, 0}, // 0x13
- {L"OPMUL", 2, 2, 1, 0}, // 0x14
- {L"OPDIV", 2, 2, 1, 0}, // 0x15
- {L"OPMOD", 2, 2, 1, 0}, // 0x16
- {L"OPNOT", 1, 1, 1, 0}, // 0x17
- {L"OPBNOT", 1, 1, 1, 0}, // 0x18
- {L"OPUMINUS", 0, 0, 1, 0}, // 0x19
- {L"OPFIXADRS", 0, 0, 1, 0}, // 0x1A
- {L"PUSHA", 0, 0, 1, 0}, // 0x1B
- {L"POPA", 0, 0, 1, 0}, // 0x1C
- {L"PUSHX", 0, 0, 1, 0}, // 0x1D
- {L"PUSHY", 0, 0, 1, 0}, // 0x1E
- {L"POPX", 0, 0, 1, 0}, // 0x1F
- {L"POPY", 0, 0, 1, 0}, // 0x20
- {L"REQ", 0, 0, 1, 0}, // 0x21
- {L"FREQ", 0, 0, 1, 0}, // 0x22
- {L"TREQ", 0, 0, 1, 0}, // 0x23
- {L"REQSW", 0, 0, 1, 0}, // 0x24
- {L"FREQSW", 0, 0, 1, 0}, // 0x25
- {L"TREQSW", 0, 0, 1, 0}, // 0x26
- {L"REQEW", 0, 0, 1, 0}, // 0x27
- {L"FREQEW", 0, 0, 1, 0}, // 0x28
- {L"TREQEW", 0, 0, 1, 0}, // 0x29
- {L"PREQ", 0, 0, 1, 0}, // 0x2A
- {L"PREQSW", 0, 0, 1, 0}, // 0x2B
- {L"PREQEW", 0, 0, 1, 0}, // 0x2C
- {L"RET", 0, 0, 1, 0}, // 0x2D
- {L"RETN", 0, 0, 1, 0}, // 0x2E
- {L"RETT", 0, 0, 1, 0}, // 0x2F
- {L"RETTN", 0, 0, 1, 0}, // 0x30
- {L"DRET", 0, 0, 1, 0}, // 0x31
- {L"REQWAIT", 0, 0, 1, 0}, // 0x32
- {L"PREQWAIT", 0, 0, 1, 0}, // 0x33
- {L"REQCHG", 0, 0, 1, 0}, // 0x34
- {L"REQCANCEL", 0, 0, 1, 0}, // 0x35
- {L"POPI0", 0, 0, 1, 0}, // 0x36
- {L"POPI1", 0, 0, 1, 0}, // 0x37
- {L"POPI2", 0, 0, 1, 0}, // 0x38
- {L"POPI3", 0, 0, 1, 0}, // 0x39
- {L"POPF0", 0, 0, 1, 0}, // 0x3A
- {L"POPF1", 0, 0, 1, 0}, // 0x3B
- {L"POPF2", 0, 0, 1, 0}, // 0x3C
- {L"POPF3", 0, 0, 1, 0}, // 0x3D
- {L"PUSHI0", 0, 0, 1, 0}, // 0x3E
- {L"PUSHI1", 0, 0, 1, 0}, // 0x3F
- {L"PUSHI2", 0, 0, 1, 0}, // 0x40
- {L"PUSHI3", 0, 0, 1, 0}, // 0x41
- {L"PUSHF0", 0, 0, 1, 0}, // 0x42
- {L"PUSHF1", 0, 0, 1, 0}, // 0x43
- {L"PUSHF2", 0, 0, 1, 0}, // 0x44
- {L"PUSHF3", 0, 0, 1, 0}, // 0x45
- {L"DVAR", 0, 0, 1, 0}, // 0x46
- {L"LONGCODESTART", 0, 0, 1, 0}, // 0x47
- {L"PUSHV", 0, 0, 3, 3}, // 0x48
- {L"POPV", 0, 0, 3, 3}, // 0x49
- {L"PUSHDBG", 0, 0, 3, 3}, // 0x4A
- {L"PUSHP", 0, 0, 3, 3}, // 0x4B
- {L"PUSHTAG", 0, 0, 3, 2}, // 0x4C
- {L"PUSHACT", 0, 0, 3, 2}, // 0x4D
- {L"PUSHI", 0, 0, 3, 2}, // 0x4E
- {L"PUSHII", 0, 0, 3, 1}, // 0x4F
- {L"PUSHF", 0, 0, 3, 5}, // 0x50
- {L"JMP", 0, 0, 3, 8}, // 0x51
- {L"POPCMPYEQJMP", 0, 0, 3, 8}, // 0x52
- {L"POPCMPYLOWJMP", 0, 0, 3, 8}, // 0x53
- {L"POPCMPYLOWEQJMP", 0, 0, 3, 8}, // 0x54
- {L"POPCMPYHIGHJMP", 0, 0, 3, 8}, // 0x55
- {L"POPCMPYHIGHEQJMP", 0, 0, 3, 8}, // 0x56
- {L"POP2CMPYBTWNJMP", 0, 0, 3, 8}, // 0x57
- {L"CALL", 0, 0, 3, 4}, // 0x58
- {L"CALLACT", 0, 0, 3, 4}, // 0x59
- {L"POPXJMP", 0, 0, 3, 8}, // 0x5A
- {L"POPXCJMP", 0, 0, 3, 8}, // 0x5B
- {L"POPXNCJMP", 0, 0, 3, 8}, // 0x5C
- {L"CALLPOPA", 0, 0, 3, 4}, // 0x5D
- {L"CALLACTPOPA", 0, 0, 3, 4}, // 0x5E
- {L"REQALL", 0, 0, 3, 6}, // 0x5F
- {L"JMPINTERNAL", 0, 0, 3, 8}, // 0x60
- {L"REQWAITALL", 0, 0, 3, 6}, // 0x61
- {L"INCINITTAG", 0, 0, 3, 0}, // 0x62
- {L"REQIALL", 0, 0, 3, 6}, // 0x63
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement