ref: 427c822910ac429a89518550bdf7b00d8e60a9a9
dir: /extras/pksv.py/
pksv_gs = { 0x00: "2call", 0x01: "3call", 0x02: "2ptcall", 0x03: "2jump", 0x04: "3jump", 0x05: "2ptjump", 0x06: "if equal", 0x07: "if not equal", 0x08: "if false", 0x09: "if true", 0x0A: "if less than", 0x0B: "if greater than", 0x0C: "jumpstd", 0x0D: "callstd", 0x0E: "3callasm", 0x0F: "special", 0x10: "2ptcallasm", 0x11: "checkmaptriggers", 0x12: "domaptrigger", 0x13: "checktriggers", 0x14: "dotrigger", 0x15: "writebyte", 0x16: "addvar", 0x17: "random", 0x19: "copybytetovar", 0x1A: "copyvartobyte", 0x1B: "loadvar", 0x1C: "checkcode", 0x1E: "writecode", 0x1F: "giveitem", 0x20: "takeitem", 0x21: "checkitem", 0x22: "givemoney", 0x23: "takemoney", 0x24: "checkmonkey", 0x25: "givecoins", 0x26: "takecoins", 0x27: "checkcoins", 0x2B: "checktime", 0x2C: "checkpoke", 0x2D: "givepoke", 0x2E: "giveegg", 0x2F: "givepokeitem", 0x31: "checkbit1", 0x32: "clearbit1", 0x33: "setbit1", 0x34: "checkbit2", 0x35: "clearbit2", 0x36: "setbit2", 0x37: "wildoff", 0x38: "wildon", 0x39: "xycompare", 0x3A: "warpmod", 0x3B: "blackoutmod", 0x3C: "warp", 0x41: "itemtotext", 0x43: "trainertotext", 0x44: "stringtotext", 0x45: "itemnotify", 0x46: "pocketisfull", 0x47: "loadfont", 0x48: "refreshscreen", 0x49: "loadmovesprites", 0x4B: "3writetext", 0x4C: "2writetext", 0x4E: "yesorno", 0x4F: "loadmenudata", 0x50: "writebackup", 0x51: "jumptextfaceplayer", 0x52: "jumptext", 0x53: "closetext", 0x54: "keeptextopen", 0x55: "pokepic", 0x56: "pokepicyesorno", 0x57: "interpretmenu", 0x58: "interpretmenu2", 0x5C: "loadpokedata", 0x5D: "loadtrainer", 0x5E: "startbattle", 0x5F: "returnafterbattle", 0x60: "catchtutorial", 0x63: "winlosstext", 0x65: "talkaftercancel", 0x67: "setlasttalked", 0x68: "applymovement", 0x6A: "faceplayer", 0x6B: "faceperson", 0x6C: "variablesprite", 0x6D: "disappear", 0x6E: "appear", 0x6F: "follow", 0x70: "stopfollow", 0x71: "moveperson", 0x74: "showemote", 0x75: "spriteface", 0x76: "follownotexact", 0x77: "earthquake", 0x79: "changeblock", 0x7A: "reloadmap", 0x7B: "reloadmappart", 0x7C: "writecmdqueue", 0x7D: "delcmdqueue", 0x7E: "playmusic", 0x7F: "playrammusic", 0x80: "musicfadeout", 0x81: "playmapmusic", 0x82: "reloadmapmusic", 0x83: "cry", 0x84: "playsound", 0x85: "waitbutton", 0x86: "warpsound", 0x87: "specialsound", 0x88: "passtoengine", 0x89: "newloadmap", 0x8A: "pause", 0x8B: "deactivatefacing", 0x8C: "priorityjump", 0x8D: "warpcheck", 0x8E: "ptpriorityjump", 0x8F: "return", 0x90: "end", 0x91: "reloadandreturn", 0x92: "resetfuncs", 0x93: "pokemart", 0x94: "elevator", 0x95: "trade", 0x96: "askforphonenumber", 0x97: "phonecall", 0x98: "hangup", 0x99: "describedecoration", 0x9A: "fruittree", 0x9C: "checkphonecall", 0x9D: "verbosegiveitem", 0x9E: "loadwilddata", 0x9F: "halloffame", 0xA0: "credits", 0xA1: "warpfacing", 0xA2: "storetext", 0xA3: "displaylocation", } #see http://www.pokecommunity.com/showpost.php?p=4347261 #NOTE: this has some updates that need to be back-ported to gold pksv_crystal = { 0x00: "2call", 0x01: "3call", 0x02: "2ptcall", 0x03: "2jump", 0x04: "3jump", 0x05: "2ptjump", 0x06: "if equal", 0x07: "if not equal", 0x08: "if false", 0x09: "if true", 0x0A: "if less than", 0x0B: "if greater than", 0x0C: "jumpstd", 0x0D: "callstd", 0x0E: "3callasm", 0x0F: "special", 0x10: "2ptcallasm", 0x11: "checkmaptriggers", 0x12: "domaptrigger", 0x13: "checktriggers", 0x14: "dotrigger", 0x15: "writebyte", 0x16: "addvar", 0x17: "random", 0x19: "copybytetovar", 0x1A: "copyvartobyte", 0x1B: "loadvar", 0x1C: "checkcode", 0x1D: "writevarcode", 0x1E: "writecode", 0x1F: "giveitem", 0x20: "takeitem", 0x21: "checkitem", 0x22: "givemoney", 0x23: "takemoney", 0x24: "checkmonkey", 0x25: "givecoins", 0x26: "takecoins", 0x27: "checkcoins", 0x28: "addcellnum", 0x29: "delcellnum", 0x2B: "checktime", 0x2C: "checkpoke", 0x2D: "givepoke", 0x2E: "giveegg", 0x2F: "givepokeitem", 0x31: "checkbit1", 0x32: "clearbit1", 0x33: "setbit1", 0x34: "checkbit2", 0x35: "clearbit2", 0x36: "setbit2", 0x37: "wildoff", 0x38: "wildon", 0x39: "xycompare", 0x3A: "warpmod", 0x3B: "blackoutmod", 0x3C: "warp", 0x41: "itemtotext", 0x43: "trainertotext", 0x44: "stringtotext", 0x45: "itemnotify", 0x46: "pocketisfull", 0x47: "loadfont", 0x48: "refreshscreen", 0x49: "loadmovesprites", 0x4B: "3writetext", 0x4C: "2writetext", 0x4E: "yesorno", 0x4F: "loadmenudata", 0x50: "writebackup", 0x51: "jumptextfaceplayer", 0x53: "jumptext", 0x54: "closetext", 0x55: "keeptextopen", 0x56: "pokepic", 0x57: "pokepicyesorno", 0x58: "interpretmenu", 0x59: "interpretmenu2", 0x5D: "loadpokedata", 0x5E: "loadtrainer", 0x5F: "startbattle", 0x60: "returnafterbattle", 0x61: "catchtutorial", 0x64: "winlosstext", 0x66: "talkaftercancel", 0x68: "setlasttalked", 0x69: "applymovement", 0x6B: "faceplayer", 0x6C: "faceperson", 0x6D: "variablesprite", 0x6E: "disappear", 0x6F: "appear", 0x70: "follow", 0x71: "stopfollow", 0x72: "moveperson", 0x75: "showemote", 0x76: "spriteface", 0x77: "follownotexact", 0x78: "earthquake", 0x7A: "changeblock", 0x7B: "reloadmap", 0x7C: "reloadmappart", 0x7D: "writecmdqueue", 0x7E: "delcmdqueue", 0x7F: "playmusic", 0x80: "playrammusic", 0x81: "musicfadeout", 0x82: "playmapmusic", 0x83: "reloadmapmusic", 0x84: "cry", 0x85: "playsound", 0x86: "waitbutton", 0x87: "warpsound", 0x88: "specialsound", 0x89: "passtoengine", 0x8A: "newloadmap", 0x8B: "pause", 0x8C: "deactivatefacing", 0x8D: "priorityjump", 0x8E: "warpcheck", 0x8F: "ptpriorityjump", 0x90: "return", 0x91: "end", 0x92: "reloadandreturn", 0x93: "resetfuncs", 0x94: "pokemart", 0x95: "elevator", 0x96: "trade", 0x97: "askforphonenumber", 0x98: "phonecall", 0x99: "hangup", 0x9A: "describedecoration", 0x9B: "fruittree", 0x9C: "specialphonecall", 0x9D: "checkphonecall", 0x9E: "verbosegiveitem", 0x9F: "verbosegiveitem2", 0xA0: "loadwilddata", 0xA1: "halloffame", 0xA2: "credits", 0xA3: "warpfacing", 0xA4: "storetext", 0xA5: "displaylocation", 0xB2: "unknown0xb2", } #these cause the script to end; used in create_command_classes pksv_crystal_more_enders = [0x03, 0x04, 0x05, 0x0C, 0x51, 0x53, 0x8D, 0x8F, 0x90, 0x91, 0x92, 0x9B, 0xB2, #maybe? 0xCC, #maybe? ] #these have no pksv names as of pksv 2.1.1 pksv_crystal_unknowns = [ 0x9F, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xCC, 0xCD, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, ] #byte: [name, [param1 name, param1 type], [param2 name, param2 type], ...] #0x9E: ["verbosegiveitem", ["item", ItemLabelByte], ["quantity", SingleByteParam]], from crystal import ScriptPointerLabelParam, ScriptPointerLabelBeforeBank,\ PointerLabelToScriptPointer,\ SingleByteParam, MultiByteParam, AsmPointerParam,\ PointerToAsmPointerParam, MapGroupParam, MapIdParam,\ RAMAddressParam, ItemLabelByte, MoneyByteParam, CoinByteParam,\ PokemonParam, DecimalParam, PointerParamToItemAndLetter,\ TrainerIdParam, TrainerGroupParam, RawTextPointerLabelParam,\ PointerLabelBeforeBank, TextPointerLabelParam, MenuDataPointerParam,\ MovementPointerLabelParam, MapDataPointerParam, PointerLabelParam pksv_crystal_more = { 0x00: ["2call", ["pointer", ScriptPointerLabelParam]], 0x01: ["3call", ["pointer", ScriptPointerLabelBeforeBank]], 0x02: ["2ptcall", ["pointer", PointerLabelToScriptPointer]], 0x03: ["2jump", ["pointer", ScriptPointerLabelParam]], 0x04: ["3jump", ["pointer", ScriptPointerLabelBeforeBank]], 0x05: ["2ptjump", ["pointer", PointerLabelToScriptPointer]], 0x06: ["if equal", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]], 0x07: ["if not equal", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]], 0x08: ["if false", ["pointer", ScriptPointerLabelParam]], 0x09: ["if true", ["pointer", ScriptPointerLabelParam]], 0x0A: ["if less than", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]], 0x0B: ["if greater than", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]], 0x0C: ["jumpstd", ["predefined_script", MultiByteParam]], 0x0D: ["callstd", ["predefined_script", MultiByteParam]], 0x0E: ["3callasm", ["asm", AsmPointerParam]], 0x0F: ["special", ["predefined_script", MultiByteParam]], 0x10: ["2ptcallasm", ["asm", PointerToAsmPointerParam]], #should map_group/map_id be dealt with in some special way in the asm? 0x11: ["checkmaptriggers", ["map_group", SingleByteParam], ["map_id", SingleByteParam]], 0x12: ["domaptrigger", ["map_group", MapGroupParam], ["map_id", MapIdParam], ["trigger_id", SingleByteParam]], 0x13: ["checktriggers"], 0x14: ["dotrigger", ["trigger_id", SingleByteParam]], 0x15: ["writebyte", ["value", SingleByteParam]], 0x16: ["addvar", ["value", SingleByteParam]], 0x17: ["random", ["input", SingleByteParam]], 0x18: ["checkver"], 0x19: ["copybytetovar", ["address", RAMAddressParam]], 0x1A: ["copyvartobyte", ["address", RAMAddressParam]], 0x1B: ["loadvar", ["address", RAMAddressParam], ["value", SingleByteParam]], 0x1C: ["checkcode", ["variable_id", SingleByteParam]], 0x1D: ["writevarcode", ["variable_id", SingleByteParam]], 0x1E: ["writecode", ["variable_id", SingleByteParam], ["value", SingleByteParam]], 0x1F: ["giveitem", ["item", ItemLabelByte], ["quantity", SingleByteParam]], 0x20: ["takeitem", ["item", ItemLabelByte], ["quantity", SingleByteParam]], 0x21: ["checkitem", ["item", ItemLabelByte]], 0x22: ["givemoney", ["account", SingleByteParam], ["money", MoneyByteParam]], 0x23: ["takemoney", ["account", SingleByteParam], ["money", MoneyByteParam]], 0x24: ["checkmonkey", ["account", SingleByteParam], ["money", MoneyByteParam]], 0x25: ["givecoins", ["coins", CoinByteParam]], 0x26: ["takecoins", ["coins", CoinByteParam]], 0x27: ["checkcoins", ["coins", CoinByteParam]], #0x28-0x2A not from pksv 0x28: ["addcellnum", ["person", SingleByteParam]], 0x29: ["delcellnum", ["person", SingleByteParam]], 0x2A: ["checkcellnum", ["person", SingleByteParam]], #back on track... 0x2B: ["checktime", ["time", SingleByteParam]], 0x2C: ["checkpoke", ["pkmn", PokemonParam]], #0x2D: ["givepoke", ], .... see GivePoke class 0x2E: ["giveegg", ["pkmn", PokemonParam], ["level", DecimalParam]], 0x2F: ["givepokeitem", ["pointer", PointerParamToItemAndLetter]], 0x30: ["checkpokeitem", ["pointer", PointerParamToItemAndLetter]], #not pksv 0x31: ["checkbit1", ["bit_number", MultiByteParam]], 0x32: ["clearbit1", ["bit_number", MultiByteParam]], 0x33: ["setbit1", ["bit_number", MultiByteParam]], 0x34: ["checkbit2", ["bit_number", MultiByteParam]], 0x35: ["clearbit2", ["bit_number", MultiByteParam]], 0x36: ["setbit2", ["bit_number", MultiByteParam]], 0x37: ["wildoff"], 0x38: ["wildon"], 0x39: ["xycompare", ["pointer", MultiByteParam]], 0x3A: ["warpmod", ["warp_id", SingleByteParam], ["map_group", MapGroupParam], ["map_id", MapIdParam]], 0x3B: ["blackoutmod", ["map_group", MapGroupParam], ["map_id", MapIdParam]], 0x3C: ["warp", ["map_group", MapGroupParam], ["map_id", MapIdParam], ["x", SingleByteParam], ["y", SingleByteParam]], 0x3D: ["readmoney", ["account", SingleByteParam], ["memory", SingleByteParam]], #not pksv 0x3E: ["readcoins", ["memory", SingleByteParam]], #not pksv 0x3F: ["RAM2MEM", ["memory", SingleByteParam]], #not pksv 0x40: ["pokenamemem", ["pokemon", PokemonParam], ["memory", SingleByteParam]], #not pksv 0x41: ["itemtotext", ["item", ItemLabelByte], ["memory", SingleByteParam]], 0x42: ["mapnametotext", ["memory", SingleByteParam]], #not pksv 0x43: ["trainertotext", ["trainer_id", TrainerIdParam], ["trainer_group", TrainerGroupParam], ["memory", SingleByteParam]], 0x44: ["stringtotext", ["text_pointer", RawTextPointerLabelParam], ["memory", SingleByteParam]], 0x45: ["itemnotify"], 0x46: ["pocketisfull"], 0x47: ["loadfont"], 0x48: ["refreshscreen", ["dummy", SingleByteParam]], 0x49: ["loadmovesprites"], 0x4A: ["loadbytec1ce", ["byte", SingleByteParam]], #not pksv 0x4B: ["3writetext", ["text_pointer", PointerLabelBeforeBank]], 0x4C: ["2writetext", ["text_pointer", TextPointerLabelParam]], 0x4D: ["repeattext", ["byte", SingleByteParam], ["byte", SingleByteParam]], #not pksv 0x4E: ["yesorno"], 0x4F: ["loadmenudata", ["data", MenuDataPointerParam]], 0x50: ["writebackup"], 0x51: ["jumptextfaceplayer", ["text_pointer", RawTextPointerLabelParam]], 0x53: ["jumptext", ["text_pointer", TextPointerLabelParam]], 0x54: ["closetext"], 0x55: ["keeptextopen"], 0x56: ["pokepic", ["pokemon", PokemonParam]], 0x57: ["pokepicyesorno"], 0x58: ["interpretmenu"], 0x59: ["interpretmenu2"], #not pksv 0x5A: ["loadpikachudata"], 0x5B: ["battlecheck"], 0x5C: ["loadtrainerdata"], #back to pksv.. 0x5D: ["loadpokedata", ["pokemon", PokemonParam], ["level", DecimalParam]], 0x5E: ["loadtrainer", ["trainer_group", TrainerGroupParam], ["trainer_id", TrainerIdParam]], 0x5F: ["startbattle"], 0x60: ["returnafterbattle"], 0x61: ["catchtutorial", ["byte", SingleByteParam]], #not pksv 0x62: ["trainertext", ["which_text", SingleByteParam]], 0x63: ["trainerstatus", ["action", SingleByteParam]], #back to pksv.. 0x64: ["winlosstext", ["win_text_pointer", TextPointerLabelParam], ["loss_text_pointer", TextPointerLabelParam]], 0x65: ["scripttalkafter"], #not pksv 0x66: ["talkaftercancel"], 0x67: ["talkaftercheck"], 0x68: ["setlasttalked", ["person", SingleByteParam]], 0x69: ["applymovement", ["person", SingleByteParam], ["data", MovementPointerLabelParam]], 0x6A: ["applymovement2", ["data", MovementPointerLabelParam]], #not pksv 0x6B: ["faceplayer"], 0x6C: ["faceperson", ["person1", SingleByteParam], ["person2", SingleByteParam]], 0x6D: ["variablesprite", ["byte", SingleByteParam], ["sprite", SingleByteParam]], 0x6E: ["disappear", ["person", SingleByteParam]], #hideperson 0x6F: ["appear", ["person", SingleByteParam]], #showperson 0x70: ["follow", ["person2", SingleByteParam], ["person1", SingleByteParam]], 0x71: ["stopfollow"], 0x72: ["moveperson", ["person", SingleByteParam], ["x", SingleByteParam], ["y", SingleByteParam]], 0x73: ["writepersonxy", ["person", SingleByteParam]], #not pksv 0x74: ["loademote", ["bubble", SingleByteParam]], 0x75: ["showemote", ["bubble", SingleByteParam], ["person", SingleByteParam], ["time", SingleByteParam]], 0x76: ["spriteface", ["person", SingleByteParam], ["facing", SingleByteParam]], 0x77: ["follownotexact", ["person2", SingleByteParam], ["person1", SingleByteParam]], 0x78: ["earthquake", ["param", SingleByteParam]], 0x79: ["changemap", ["map_data_pointer", MapDataPointerParam]], 0x7A: ["changeblock", ["x", SingleByteParam], ["y", SingleByteParam], ["block", SingleByteParam]], 0x7B: ["reloadmap"], 0x7C: ["reloadmappart"], 0x7D: ["writecmdqueue", ["queue_pointer", MultiByteParam]], 0x7E: ["delcmdqueue", ["byte", SingleByteParam]], 0x7F: ["playmusic", ["music_pointer", MultiByteParam]], 0x80: ["playrammusic"], 0x81: ["musicfadeout", ["music", MultiByteParam], ["fadetime", SingleByteParam]], 0x82: ["playmapmusic"], 0x83: ["reloadmapmusic"], 0x84: ["cry", ["cry_id", SingleByteParam], ["wtf", SingleByteParam]], #XXX maybe it should use PokemonParam 0x85: ["playsound", ["sound_pointer", MultiByteParam]], 0x86: ["waitbutton"], 0x87: ["warpsound"], 0x88: ["specialsound"], 0x89: ["passtoengine", ["data_pointer", PointerLabelBeforeBank]], 0x8A: ["newloadmap", ["which_method", SingleByteParam]], 0x8B: ["pause", ["length", SingleByteParam]], 0x8C: ["deactivatefacing", ["time", SingleByteParam]], 0x8D: ["priorityjump", ["pointer", ScriptPointerLabelParam]], 0x8E: ["warpcheck"], 0x8F: ["ptpriorityjump", ["pointer", ScriptPointerLabelParam]], 0x90: ["return"], 0x91: ["end"], 0x92: ["reloadandreturn"], 0x93: ["resetfuncs"], 0x94: ["pokemart", ["dialog_id", SingleByteParam], ["mart_id", MultiByteParam]], #maybe it should be a pokemark constant id/label? 0x95: ["elevator", ["floor_list_pointer", PointerLabelParam]], 0x96: ["trade", ["trade_id", SingleByteParam]], 0x97: ["askforphonenumber", ["number", SingleByteParam]], 0x98: ["phonecall", ["caller_name", RawTextPointerLabelParam]], 0x99: ["hangup"], 0x9A: ["describedecoration", ["byte", SingleByteParam]], 0x9B: ["fruittree", ["tree_id", SingleByteParam]], 0x9C: ["specialphonecall", ["call_id", SingleByteParam], ["wtf", SingleByteParam]], 0x9D: ["checkphonecall"], 0x9E: ["verbosegiveitem", ["item", ItemLabelByte], ["quantity", DecimalParam]], 0x9F: ["verbosegiveitem2", ["item", ItemLabelByte]], 0xA0: ["loadwilddata", ["map_group", MapGroupParam], ["map_id", MapIdParam]], 0xA1: ["halloffame"], 0xA2: ["credits"], 0xA3: ["warpfacing", ["facing", SingleByteParam], ["map_group", MapGroupParam], ["map_id", MapIdParam], ["x", SingleByteParam], ["y", SingleByteParam]], 0xA4: ["storetext", ["pointer", PointerLabelBeforeBank], ["memory", SingleByteParam]], 0xA5: ["displaylocation", ["id", SingleByteParam]], 0xA8: ["unknown0xa8", ["unknown", SingleByteParam]], 0xB2: ["unknown0xb2", ["unknown", SingleByteParam]], 0xCC: ["unknown0xcc"], }