mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
update pksv name tables (trial and error)
This commit is contained in:
parent
a4f10572ba
commit
0a7278c144
@ -402,10 +402,11 @@ def clean_up_long_info(long_info):
|
|||||||
long_info = "\n".join(new_lines)
|
long_info = "\n".join(new_lines)
|
||||||
return long_info
|
return long_info
|
||||||
|
|
||||||
def command_debug_information(command_byte=None, map_group=None, map_id=None, address=None, info=None, long_info=None):
|
def command_debug_information(command_byte=None, map_group=None, map_id=None, address=None, info=None, long_info=None, pksv_name=None):
|
||||||
info1 = "parsing command byte " + hex(command_byte) + " for map " + \
|
info1 = "parsing command byte " + hex(command_byte) + " for map " + \
|
||||||
str(map_group) + "." + str(map_id) + " at " + hex(address)
|
str(map_group) + "." + str(map_id) + " at " + hex(address)
|
||||||
info1 += " info: " + str(info)
|
info1 += " pksv: " + str(pksv_name)
|
||||||
|
#info1 += " info: " + str(info)
|
||||||
#info1 += " long_info: " + long_info
|
#info1 += " long_info: " + long_info
|
||||||
return info1
|
return info1
|
||||||
|
|
||||||
@ -419,11 +420,38 @@ def parse_text_engine_script_at(address):
|
|||||||
commands = {}
|
commands = {}
|
||||||
return commands
|
return commands
|
||||||
|
|
||||||
|
def translate_command_byte(crystal=None, gold=None):
|
||||||
|
"""takes a command byte from either crystal or gold
|
||||||
|
returns the command byte in the other (non-given) game
|
||||||
|
|
||||||
|
The new commands are values 0x52 and 0x9F. This means:
|
||||||
|
Crystal's 0x00–0x51 correspond to Gold's 0x00–0x51
|
||||||
|
Crystal's 0x53–0x9E correspond to Gold's 0x52–0x9D
|
||||||
|
Crystal's 0xA0–0xA5 correspond to Gold's 0x9E–0xA3
|
||||||
|
|
||||||
|
see: http://www.pokecommunity.com/showpost.php?p=4347261
|
||||||
|
"""
|
||||||
|
if crystal: #convert to gold
|
||||||
|
if crystal <= 0x51: return crystal
|
||||||
|
if crystal == 0x52: return None
|
||||||
|
if 0x53 <= crystal <= 0x9E: return crystal-1
|
||||||
|
if crystal == 0x9F: return None
|
||||||
|
if 0xA0 <= crystal <= 0xA5: return crystal-2
|
||||||
|
if crystal > 0xA5: raise "dunno yet if crystal has new insertions after crystal:0xA5 (gold:0xA3)"
|
||||||
|
elif gold: #convert to crystal
|
||||||
|
if gold <= 0x51: return gold
|
||||||
|
if 0x52 <= gold <= 0x9D: return gold+1
|
||||||
|
if 0x9E <= gold <= 0xA3: return gold+2
|
||||||
|
if gold > 0xA3: raise "dunno yet if crystal has new insertions after gold:0xA3 (crystal:0xA5)"
|
||||||
|
else: raise "translate_command_byte needs either a crystal or gold command"
|
||||||
|
|
||||||
pksv_gs = {
|
pksv_gs = {
|
||||||
0x00: "2call",
|
0x00: "2call",
|
||||||
0x01: "3call",
|
0x01: "3call",
|
||||||
|
0x02: "2ptcall",
|
||||||
0x03: "2jump",
|
0x03: "2jump",
|
||||||
0x04: "3jump",
|
0x04: "3jump",
|
||||||
|
0x05: "2ptjump",
|
||||||
0x06: "if equal",
|
0x06: "if equal",
|
||||||
0x07: "if not equal",
|
0x07: "if not equal",
|
||||||
0x08: "if false",
|
0x08: "if false",
|
||||||
@ -431,12 +459,19 @@ pksv_gs = {
|
|||||||
0x0A: "if less than",
|
0x0A: "if less than",
|
||||||
0x0B: "if greater than",
|
0x0B: "if greater than",
|
||||||
0x0C: "jumpstd",
|
0x0C: "jumpstd",
|
||||||
|
0x0D: "callstd",
|
||||||
0x0E: "3callasm",
|
0x0E: "3callasm",
|
||||||
0x0F: "special",
|
0x0F: "special",
|
||||||
|
0x10: "2ptcallasm",
|
||||||
|
0x11: "checkmaptriggers",
|
||||||
0x12: "domaptrigger",
|
0x12: "domaptrigger",
|
||||||
|
0x13: "checktriggers",
|
||||||
0x14: "dotrigger",
|
0x14: "dotrigger",
|
||||||
0x15: "writebyte",
|
0x15: "writebyte",
|
||||||
|
0x16: "addvar",
|
||||||
|
0x17: "random",
|
||||||
0x19: "copybytetovar",
|
0x19: "copybytetovar",
|
||||||
|
0x1A: "copyvartobyte", #loadvar ?
|
||||||
0x1C: "checkcode",
|
0x1C: "checkcode",
|
||||||
0x1E: "writecode",
|
0x1E: "writecode",
|
||||||
0x1F: "giveitem",
|
0x1F: "giveitem",
|
||||||
@ -452,6 +487,7 @@ pksv_gs = {
|
|||||||
0x2C: "checkpoke",
|
0x2C: "checkpoke",
|
||||||
0x2D: "givepoke",
|
0x2D: "givepoke",
|
||||||
0x2E: "giveegg",
|
0x2E: "giveegg",
|
||||||
|
0x2F: "givepokeitem",
|
||||||
0x31: "checkbit1",
|
0x31: "checkbit1",
|
||||||
0x32: "clearbit1",
|
0x32: "clearbit1",
|
||||||
0x33: "setbit1",
|
0x33: "setbit1",
|
||||||
@ -460,21 +496,31 @@ pksv_gs = {
|
|||||||
0x36: "setbit2",
|
0x36: "setbit2",
|
||||||
0x37: "wildoff",
|
0x37: "wildoff",
|
||||||
0x38: "wildon",
|
0x38: "wildon",
|
||||||
|
0x39: "xycompare",
|
||||||
0x3A: "warpmod",
|
0x3A: "warpmod",
|
||||||
0x3B: "blackoutmod",
|
0x3B: "blackoutmod",
|
||||||
0x3C: "warp",
|
0x3C: "warp",
|
||||||
|
0x41: "itemtotext",
|
||||||
|
0x43: "trainertotext",
|
||||||
0x44: "stringtotext",
|
0x44: "stringtotext",
|
||||||
|
0x45: "itemnotify",
|
||||||
0x46: "pocketisfull",
|
0x46: "pocketisfull",
|
||||||
0x47: "loadfont",
|
0x47: "loadfont",
|
||||||
|
0x48: "refreshscreen",
|
||||||
0x49: "loadmovesprites",
|
0x49: "loadmovesprites",
|
||||||
0x4B: "3writetext",
|
0x4B: "3writetext",
|
||||||
0x4C: "2writetext",
|
0x4C: "2writetext",
|
||||||
0x4E: "yesorno",
|
0x4E: "yesorno",
|
||||||
|
0x4F: "loadmenudata",
|
||||||
|
0x50: "writebackup",
|
||||||
0x51: "jumptextfaceplayer",
|
0x51: "jumptextfaceplayer",
|
||||||
0x52: "jumptext",
|
0x52: "jumptext",
|
||||||
0x53: "closetext",
|
0x53: "closetext",
|
||||||
0x54: "keeptextopen",
|
0x54: "keeptextopen",
|
||||||
0x55: "pokepic",
|
0x55: "pokepic",
|
||||||
|
0x56: "pokepicyesorno",
|
||||||
|
0x57: "interpretmenu",
|
||||||
|
0x58: "interpretmenu2",
|
||||||
0x5C: "loadpokedata",
|
0x5C: "loadpokedata",
|
||||||
0x5D: "loadtrainer",
|
0x5D: "loadtrainer",
|
||||||
0x5E: "startbattle",
|
0x5E: "startbattle",
|
||||||
@ -482,9 +528,11 @@ pksv_gs = {
|
|||||||
0x60: "catchtutorial",
|
0x60: "catchtutorial",
|
||||||
0x63: "winlosstext",
|
0x63: "winlosstext",
|
||||||
0x65: "talkaftercancel",
|
0x65: "talkaftercancel",
|
||||||
|
0x67: "setlasttalked",
|
||||||
0x68: "applymovement",
|
0x68: "applymovement",
|
||||||
0x6A: "faceplayer",
|
0x6A: "faceplayer",
|
||||||
0x6B: "faceperson",
|
0x6B: "faceperson",
|
||||||
|
0x6C: "variablesprite",
|
||||||
0x6D: "disappear",
|
0x6D: "disappear",
|
||||||
0x6E: "appear",
|
0x6E: "appear",
|
||||||
0x6F: "follow",
|
0x6F: "follow",
|
||||||
@ -496,12 +544,26 @@ pksv_gs = {
|
|||||||
0x77: "earthquake",
|
0x77: "earthquake",
|
||||||
0x79: "changeblock",
|
0x79: "changeblock",
|
||||||
0x7A: "reloadmap",
|
0x7A: "reloadmap",
|
||||||
|
0x7B: "reloadmappart",
|
||||||
|
0x7C: "writecmdqueue",
|
||||||
|
0x7D: "delcmdqueue",
|
||||||
|
0x7E: "playmusic",
|
||||||
|
0x7F: "playrammusic",
|
||||||
0x80: "musicfadeout",
|
0x80: "musicfadeout",
|
||||||
|
0x81: "playmapmusic",
|
||||||
|
0x82: "reloadmapmusic",
|
||||||
0x83: "cry",
|
0x83: "cry",
|
||||||
0x84: "playsound",
|
0x84: "playsound",
|
||||||
0x85: "waitbutton",
|
0x85: "waitbutton",
|
||||||
|
0x86: "warpsound",
|
||||||
|
0x87: "specialsound",
|
||||||
|
0x88: "passtoengine",
|
||||||
|
0x89: "newloadmap",
|
||||||
0x8A: "pause",
|
0x8A: "pause",
|
||||||
|
0x8B: "deactivatefacing",
|
||||||
0x8C: "priorityjump",
|
0x8C: "priorityjump",
|
||||||
|
0x8D: "warpcheck",
|
||||||
|
0x8E: "ptpriorityjump",
|
||||||
0x8F: "return",
|
0x8F: "return",
|
||||||
0x90: "end",
|
0x90: "end",
|
||||||
0x91: "reloadandreturn",
|
0x91: "reloadandreturn",
|
||||||
@ -509,18 +571,30 @@ pksv_gs = {
|
|||||||
0x93: "pokemart",
|
0x93: "pokemart",
|
||||||
0x94: "elevator",
|
0x94: "elevator",
|
||||||
0x95: "trade",
|
0x95: "trade",
|
||||||
|
0x96: "askforphonenumber",
|
||||||
|
0x97: "phonecall",
|
||||||
|
0x98: "hangup",
|
||||||
|
0x99: "describedecoration",
|
||||||
0x9A: "fruittree",
|
0x9A: "fruittree",
|
||||||
|
0x9C: "checkphonecall",
|
||||||
0x9D: "verbosegiveitem",
|
0x9D: "verbosegiveitem",
|
||||||
|
0x9E: "loadwilddata",
|
||||||
|
0x9F: "halloffame",
|
||||||
0xA0: "credits",
|
0xA0: "credits",
|
||||||
0xA1: "warpfacing",
|
0xA1: "warpfacing",
|
||||||
|
0xA2: "storetext",
|
||||||
|
0xA3: "displaylocation",
|
||||||
}
|
}
|
||||||
|
|
||||||
#see http://www.pokecommunity.com/showpost.php?p=4347261
|
#see http://www.pokecommunity.com/showpost.php?p=4347261
|
||||||
|
#NOTE: this has some updates that need to be back-ported to gold
|
||||||
pksv_crystal = {
|
pksv_crystal = {
|
||||||
0x00: "2call",
|
0x00: "2call",
|
||||||
0x01: "3call",
|
0x01: "3call",
|
||||||
|
0x02: "2ptcall",
|
||||||
0x03: "2jump",
|
0x03: "2jump",
|
||||||
0x04: "3jump",
|
0x04: "3jump",
|
||||||
|
0x05: "2ptjump",
|
||||||
0x06: "if equal",
|
0x06: "if equal",
|
||||||
0x07: "if not equal",
|
0x07: "if not equal",
|
||||||
0x08: "if false",
|
0x08: "if false",
|
||||||
@ -528,12 +602,19 @@ pksv_crystal = {
|
|||||||
0x0A: "if less than",
|
0x0A: "if less than",
|
||||||
0x0B: "if greater than",
|
0x0B: "if greater than",
|
||||||
0x0C: "jumpstd",
|
0x0C: "jumpstd",
|
||||||
|
0x0D: "callstd",
|
||||||
0x0E: "3callasm",
|
0x0E: "3callasm",
|
||||||
0x0F: "special",
|
0x0F: "special",
|
||||||
|
0x10: "2ptcallasm",
|
||||||
|
0x11: "checkmaptriggers",
|
||||||
0x12: "domaptrigger",
|
0x12: "domaptrigger",
|
||||||
|
0x13: "checktriggers",
|
||||||
0x14: "dotrigger",
|
0x14: "dotrigger",
|
||||||
0x15: "writebyte",
|
0x15: "writebyte",
|
||||||
|
0x16: "addvar",
|
||||||
|
0x17: "random",
|
||||||
0x19: "copybytetovar",
|
0x19: "copybytetovar",
|
||||||
|
0x1A: "copyvartobyte", #loadvar?
|
||||||
0x1C: "checkcode",
|
0x1C: "checkcode",
|
||||||
0x1E: "writecode",
|
0x1E: "writecode",
|
||||||
0x1F: "giveitem",
|
0x1F: "giveitem",
|
||||||
@ -549,6 +630,7 @@ pksv_crystal = {
|
|||||||
0x2C: "checkpoke",
|
0x2C: "checkpoke",
|
||||||
0x2D: "givepoke",
|
0x2D: "givepoke",
|
||||||
0x2E: "giveegg",
|
0x2E: "giveegg",
|
||||||
|
0x2F: "givepokeitem",
|
||||||
0x31: "checkbit1",
|
0x31: "checkbit1",
|
||||||
0x32: "clearbit1",
|
0x32: "clearbit1",
|
||||||
0x33: "setbit1",
|
0x33: "setbit1",
|
||||||
@ -557,21 +639,31 @@ pksv_crystal = {
|
|||||||
0x36: "setbit2",
|
0x36: "setbit2",
|
||||||
0x37: "wildoff",
|
0x37: "wildoff",
|
||||||
0x38: "wildon",
|
0x38: "wildon",
|
||||||
|
0x39: "xycompare",
|
||||||
0x3A: "warpmod",
|
0x3A: "warpmod",
|
||||||
0x3B: "blackoutmod",
|
0x3B: "blackoutmod",
|
||||||
0x3C: "warp",
|
0x3C: "warp",
|
||||||
|
0x41: "itemtotext",
|
||||||
|
0x43: "trainertotext",
|
||||||
0x44: "stringtotext",
|
0x44: "stringtotext",
|
||||||
|
0x45: "itemnotify",
|
||||||
0x46: "pocketisfull",
|
0x46: "pocketisfull",
|
||||||
0x47: "loadfont",
|
0x47: "loadfont",
|
||||||
|
0x48: "refreshscreen",
|
||||||
0x49: "loadmovesprites",
|
0x49: "loadmovesprites",
|
||||||
0x4B: "3writetext",
|
0x4B: "3writetext",
|
||||||
0x4C: "2writetext",
|
0x4C: "2writetext",
|
||||||
0x4E: "yesorno",
|
0x4E: "yesorno",
|
||||||
|
0x4F: "loadmenudata",
|
||||||
|
0x50: "writebackup",
|
||||||
0x51: "jumptextfaceplayer",
|
0x51: "jumptextfaceplayer",
|
||||||
0x53: "jumptext",
|
0x53: "jumptext",
|
||||||
0x54: "closetext",
|
0x54: "closetext",
|
||||||
0x55: "keeptextopen",
|
0x55: "keeptextopen",
|
||||||
0x56: "pokepic",
|
0x56: "pokepic",
|
||||||
|
0x57: "pokepicyesorno",
|
||||||
|
0x58: "interpretmenu",
|
||||||
|
0x59: "interpretmenu2",
|
||||||
0x5D: "loadpokedata",
|
0x5D: "loadpokedata",
|
||||||
0x5E: "loadtrainer",
|
0x5E: "loadtrainer",
|
||||||
0x5F: "startbattle",
|
0x5F: "startbattle",
|
||||||
@ -579,9 +671,11 @@ pksv_crystal = {
|
|||||||
0x61: "catchtutorial",
|
0x61: "catchtutorial",
|
||||||
0x64: "winlosstext",
|
0x64: "winlosstext",
|
||||||
0x66: "talkaftercancel",
|
0x66: "talkaftercancel",
|
||||||
|
0x68: "setlasttalked",
|
||||||
0x69: "applymovement",
|
0x69: "applymovement",
|
||||||
0x6B: "faceplayer",
|
0x6B: "faceplayer",
|
||||||
0x6C: "faceperson",
|
0x6C: "faceperson",
|
||||||
|
0x6D: "variablesprite",
|
||||||
0x6E: "disappear",
|
0x6E: "disappear",
|
||||||
0x6F: "appear",
|
0x6F: "appear",
|
||||||
0x70: "follow",
|
0x70: "follow",
|
||||||
@ -593,12 +687,26 @@ pksv_crystal = {
|
|||||||
0x78: "earthquake",
|
0x78: "earthquake",
|
||||||
0x7A: "changeblock",
|
0x7A: "changeblock",
|
||||||
0x7B: "reloadmap",
|
0x7B: "reloadmap",
|
||||||
|
0x7C: "reloadmappart",
|
||||||
|
0x7D: "writecmdqueue",
|
||||||
|
0x7E: "delcmdqueue",
|
||||||
|
0x7F: "playmusic",
|
||||||
|
0x80: "playrammusic",
|
||||||
0x81: "musicfadeout",
|
0x81: "musicfadeout",
|
||||||
|
0x82: "playmapmusic",
|
||||||
|
0x83: "reloadmapmusic",
|
||||||
0x84: "cry",
|
0x84: "cry",
|
||||||
0x85: "playsound",
|
0x85: "playsound",
|
||||||
0x86: "waitbutton",
|
0x86: "waitbutton",
|
||||||
|
0x87: "warpsound",
|
||||||
|
0x88: "specialsound",
|
||||||
|
0x89: "passtoengine",
|
||||||
|
0x8A: "newloadmap",
|
||||||
0x8B: "pause",
|
0x8B: "pause",
|
||||||
|
0x8C: "deactivatefacing",
|
||||||
0x8D: "priorityjump",
|
0x8D: "priorityjump",
|
||||||
|
0x8E: "warpcheck",
|
||||||
|
0x8F: "ptpriorityjump",
|
||||||
0x90: "return",
|
0x90: "return",
|
||||||
0x91: "end",
|
0x91: "end",
|
||||||
0x92: "reloadandreturn",
|
0x92: "reloadandreturn",
|
||||||
@ -606,12 +714,44 @@ pksv_crystal = {
|
|||||||
0x94: "pokemart",
|
0x94: "pokemart",
|
||||||
0x95: "elevator",
|
0x95: "elevator",
|
||||||
0x96: "trade",
|
0x96: "trade",
|
||||||
|
0x97: "askforphonenumber",
|
||||||
|
0x98: "phonecall",
|
||||||
|
0x99: "hangup",
|
||||||
|
0x9A: "describedecoration",
|
||||||
0x9B: "fruittree",
|
0x9B: "fruittree",
|
||||||
|
0x9C: "specialphonecall",
|
||||||
|
0x9D: "checkphonecall",
|
||||||
0x9E: "verbosegiveitem",
|
0x9E: "verbosegiveitem",
|
||||||
|
0xA0: "loadwilddata",
|
||||||
|
0xA1: "halloffame",
|
||||||
0xA2: "credits",
|
0xA2: "credits",
|
||||||
0xA3: "warpfacing",
|
0xA3: "warpfacing",
|
||||||
|
0xA4: "storetext",
|
||||||
|
0xA5: "displaylocation",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#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,
|
||||||
|
]
|
||||||
|
|
||||||
|
#use this to keep track of commands without pksv names
|
||||||
|
pksv_no_names = {}
|
||||||
|
def pretty_print_pksv_no_names():
|
||||||
|
"""just some nice debugging output"""
|
||||||
|
for (command_byte, addresses) in pksv_no_names.items():
|
||||||
|
if command_byte in pksv_crystal_unknowns: continue
|
||||||
|
print hex(command_byte) + " appearing in these scripts: "
|
||||||
|
for address in addresses:
|
||||||
|
print " " + hex(address)
|
||||||
|
|
||||||
def parse_script_engine_script_at(address, map_group=None, map_id=None):
|
def parse_script_engine_script_at(address, map_group=None, map_id=None):
|
||||||
"""parses a script-engine script"""
|
"""parses a script-engine script"""
|
||||||
global rom
|
global rom
|
||||||
@ -669,6 +809,7 @@ def parse_script_engine_script_at(address, map_group=None, map_id=None):
|
|||||||
"""
|
"""
|
||||||
size = 3
|
size = 3
|
||||||
command["pointer"] = calculate_pointer_from_bytes_at(start_address+1)
|
command["pointer"] = calculate_pointer_from_bytes_at(start_address+1)
|
||||||
|
end = True #according to pksv
|
||||||
elif command_byte == 0x04: #Pointer code [3b]
|
elif command_byte == 0x04: #Pointer code [3b]
|
||||||
info = "pointer code"
|
info = "pointer code"
|
||||||
long_info = """
|
long_info = """
|
||||||
@ -677,6 +818,7 @@ def parse_script_engine_script_at(address, map_group=None, map_id=None):
|
|||||||
"""
|
"""
|
||||||
size = 4
|
size = 4
|
||||||
command["pointer"] = calculate_pointer_from_bytes_at(start_address+1, bank=True)
|
command["pointer"] = calculate_pointer_from_bytes_at(start_address+1, bank=True)
|
||||||
|
end = True #according to pksv
|
||||||
elif command_byte == 0x05: #Pointer code [2b+3b]
|
elif command_byte == 0x05: #Pointer code [2b+3b]
|
||||||
info = "pointer code"
|
info = "pointer code"
|
||||||
long_info = """
|
long_info = """
|
||||||
@ -685,22 +827,25 @@ def parse_script_engine_script_at(address, map_group=None, map_id=None):
|
|||||||
"""
|
"""
|
||||||
size = 3
|
size = 3
|
||||||
command["pointer"] = calculate_pointer_from_bytes_at(start_address+1)
|
command["pointer"] = calculate_pointer_from_bytes_at(start_address+1)
|
||||||
|
end = True #according to pksv
|
||||||
elif command_byte == 0x06: #RAM check [=byte]
|
elif command_byte == 0x06: #RAM check [=byte]
|
||||||
info = "RAM check [=byte]"
|
info = "RAM check [=byte]"
|
||||||
long_info = """
|
long_info = """
|
||||||
When the conditional is true...
|
When the conditional is true...
|
||||||
.. then go to pointed script, else resume interpreting after the pointer
|
.. then go to pointed script, else resume interpreting after the pointer
|
||||||
"""
|
"""
|
||||||
size = 3
|
size = 4
|
||||||
command["pointer"] = calculate_pointer_from_bytes_at(start_address+1)
|
command["byte"] = ord(rom[start_address+1])
|
||||||
|
command["pointer"] = calculate_pointer_from_bytes_at(start_address+2)
|
||||||
elif command_byte == 0x07: #RAM check [<>byte]
|
elif command_byte == 0x07: #RAM check [<>byte]
|
||||||
info = "RAM check [<>byte]"
|
info = "RAM check [<>byte]"
|
||||||
long_info = """
|
long_info = """
|
||||||
When the conditional is true...
|
When the conditional is true...
|
||||||
.. then go to pointed script, else resume interpreting after the pointer
|
.. then go to pointed script, else resume interpreting after the pointer
|
||||||
"""
|
"""
|
||||||
size = 3
|
size = 4
|
||||||
command["pointer"] = calculate_pointer_from_bytes_at(start_address+1)
|
command["byte"] = ord(rom[start_address+1])
|
||||||
|
command["pointer"] = calculate_pointer_from_bytes_at(start_address+2)
|
||||||
elif command_byte == 0x08: #RAM check [=0]
|
elif command_byte == 0x08: #RAM check [=0]
|
||||||
info = "RAM check [=0]"
|
info = "RAM check [=0]"
|
||||||
long_info = """
|
long_info = """
|
||||||
@ -723,16 +868,18 @@ def parse_script_engine_script_at(address, map_group=None, map_id=None):
|
|||||||
When the conditional is true...
|
When the conditional is true...
|
||||||
.. then go to pointed script, else resume interpreting after the pointer
|
.. then go to pointed script, else resume interpreting after the pointer
|
||||||
"""
|
"""
|
||||||
size = 3
|
size = 4
|
||||||
command["pointer"] = calculate_pointer_from_bytes_at(start_address+1)
|
command["byte"] = ord(rom[start_address+1])
|
||||||
|
command["pointer"] = calculate_pointer_from_bytes_at(start_address+2)
|
||||||
elif command_byte == 0x0B: #RAM check [>byte]
|
elif command_byte == 0x0B: #RAM check [>byte]
|
||||||
info = "RAM check [>byte]"
|
info = "RAM check [>byte]"
|
||||||
long_info = """
|
long_info = """
|
||||||
When the conditional is true...
|
When the conditional is true...
|
||||||
.. then go to pointed script, else resume interpreting after the pointer
|
.. then go to pointed script, else resume interpreting after the pointer
|
||||||
"""
|
"""
|
||||||
size = 3
|
size = 4
|
||||||
command["pointer"] = calculate_pointer_from_bytes_at(start_address+1)
|
command["byte"] = ord(rom[start_address+1])
|
||||||
|
command["pointer"] = calculate_pointer_from_bytes_at(start_address+2)
|
||||||
elif command_byte == 0x0C: #0C codes [xxyy]
|
elif command_byte == 0x0C: #0C codes [xxyy]
|
||||||
info = "call predefined script then end"
|
info = "call predefined script then end"
|
||||||
long_info = """
|
long_info = """
|
||||||
@ -2014,6 +2161,7 @@ def parse_script_engine_script_at(address, map_group=None, map_id=None):
|
|||||||
"""
|
"""
|
||||||
size = 3
|
size = 3
|
||||||
command["script_pointer"] = calculate_pointer_from_bytes_at(start_address+1, bank=False)
|
command["script_pointer"] = calculate_pointer_from_bytes_at(start_address+1, bank=False)
|
||||||
|
end = True #according to pksv
|
||||||
elif command_byte == 0x8E: #Warp check
|
elif command_byte == 0x8E: #Warp check
|
||||||
info = "Reactive all engine checks if player is warping"
|
info = "Reactive all engine checks if player is warping"
|
||||||
long_info = """
|
long_info = """
|
||||||
@ -2030,6 +2178,7 @@ def parse_script_engine_script_at(address, map_group=None, map_id=None):
|
|||||||
"""
|
"""
|
||||||
size = 3
|
size = 3
|
||||||
command["script_pointer"] = calculate_pointer_from_bytes_at(start_address+1, bank=False)
|
command["script_pointer"] = calculate_pointer_from_bytes_at(start_address+1, bank=False)
|
||||||
|
end = True #according to pksv
|
||||||
elif command_byte == 0x90: #Return code1
|
elif command_byte == 0x90: #Return code1
|
||||||
info = "Return code 1"
|
info = "Return code 1"
|
||||||
long_info = """
|
long_info = """
|
||||||
@ -2157,10 +2306,11 @@ def parse_script_engine_script_at(address, map_group=None, map_id=None):
|
|||||||
end = True
|
end = True
|
||||||
command["tree_id"] = ord(rom[start_address+1])
|
command["tree_id"] = ord(rom[start_address+1])
|
||||||
elif command_byte == 0x9C: #Cell phone call code [xx00]
|
elif command_byte == 0x9C: #Cell phone call code [xx00]
|
||||||
info = "Cell phone call [call id][00]"
|
#XXX confirm this?
|
||||||
|
info = "Cell phone call [call id]" #was originally: [call id][00]
|
||||||
long_info = """
|
long_info = """
|
||||||
#Initiates with the next step on a outer world map (permission byte) a phone call.
|
#Initiates with the next step on a outer world map (permission byte) a phone call.
|
||||||
#[9B][Call no][00]
|
#[9B][Call no] and maybe [00] ???
|
||||||
#call no:
|
#call no:
|
||||||
# 01 = PokéRus
|
# 01 = PokéRus
|
||||||
# 02 = Pokémon stolen
|
# 02 = Pokémon stolen
|
||||||
@ -2171,9 +2321,9 @@ def parse_script_engine_script_at(address, map_group=None, map_id=None):
|
|||||||
# 07 = Mother is unhappy that HIRO didn't talk to her before leaving
|
# 07 = Mother is unhappy that HIRO didn't talk to her before leaving
|
||||||
# 08 = PROF. ELM has got something for HIRO a second time
|
# 08 = PROF. ELM has got something for HIRO a second time
|
||||||
"""
|
"""
|
||||||
size = 3
|
size = 2
|
||||||
command["call_id"] = ord(rom[start_address+1])
|
command["call_id"] = ord(rom[start_address+1])
|
||||||
command["byte"] = ord(rom[start_address+2])
|
#command["byte"] = ord(rom[start_address+2])
|
||||||
elif command_byte == 0x9D: #Check cell phone call code
|
elif command_byte == 0x9D: #Check cell phone call code
|
||||||
info = "Check if/which a phone call is active"
|
info = "Check if/which a phone call is active"
|
||||||
long_info = """
|
long_info = """
|
||||||
@ -2261,10 +2411,22 @@ def parse_script_engine_script_at(address, map_group=None, map_id=None):
|
|||||||
size = 2
|
size = 2
|
||||||
command["location_number"] = ord(rom[start_address+1])
|
command["location_number"] = ord(rom[start_address+1])
|
||||||
else:
|
else:
|
||||||
end = True
|
size = 1
|
||||||
|
#end = True
|
||||||
#raise NotImplementedError, "command byte is " + hex(command_byte) + " at " + hex(offset) + " on map " + str(map_group) + "." + str(map_id)
|
#raise NotImplementedError, "command byte is " + hex(command_byte) + " at " + hex(offset) + " on map " + str(map_group) + "." + str(map_id)
|
||||||
|
print "dunno what this command is: " + hex(command_byte)
|
||||||
long_info = clean_up_long_info(long_info)
|
long_info = clean_up_long_info(long_info)
|
||||||
print command_debug_information(command_byte=command_byte, map_group=map_group, map_id=map_id, address=offset, info=info, long_info=long_info)
|
|
||||||
|
if command_byte in pksv_crystal.keys():
|
||||||
|
pksv_name = pksv_crystal[command_byte]
|
||||||
|
else:
|
||||||
|
pksv_name = None
|
||||||
|
if command_byte in pksv_no_names.keys():
|
||||||
|
pksv_no_names[command_byte].append(address)
|
||||||
|
else:
|
||||||
|
pksv_no_names[command_byte] = [address]
|
||||||
|
|
||||||
|
print command_debug_information(command_byte=command_byte, map_group=map_group, map_id=map_id, address=offset, info=info, long_info=long_info, pksv_name=pksv_name)
|
||||||
|
|
||||||
#store the size of the command
|
#store the size of the command
|
||||||
command["size"] = size
|
command["size"] = size
|
||||||
|
Loading…
Reference in New Issue
Block a user