Update some script macro arguments

This commit is contained in:
dannye 2025-10-05 11:42:58 -05:00
parent 32c26e2035
commit 3a4940b28c
5 changed files with 672 additions and 98 deletions

View File

@ -279,16 +279,16 @@ Func_2c50a:
ld [$d594], a
xor a
start_script
set_npc_position_and_direction $22, $05, $09, $02
set_npc_position_and_direction $24, $08, $09, $02
set_npc_position_and_direction $31, $07, $09, $02
set_npc_position_and_direction OW_ISAAC, 5, 9, SOUTH
set_npc_position_and_direction OW_NICHOLAS, 8, 9, SOUTH
set_npc_position_and_direction OW_GR_4, 7, 9, SOUTH
end_script
jr .asm_2c55e
.asm_2c54f
xor a
start_script
set_npc_position_and_direction $22, $05, $06, $02
set_npc_position_and_direction $24, $08, $08, $02
set_npc_position_and_direction OW_ISAAC, 5, 6, SOUTH
set_npc_position_and_direction OW_NICHOLAS, 8, 8, SOUTH
end_script
.asm_2c55e
scf
@ -761,19 +761,19 @@ Func_2cda2:
ld [$d594], a
xor a
start_script
set_npc_position_and_direction $26, $07, $06, $02
set_npc_position_and_direction $27, $05, $06, $02
set_npc_position_and_direction $28, $06, $06, $02
set_npc_position_and_direction $29, $08, $0a, $02
set_npc_position_and_direction OW_MURRAY, 7, 6, SOUTH
set_npc_position_and_direction OW_ROBERT, 5, 6, SOUTH
set_npc_position_and_direction OW_DANIEL, 6, 6, SOUTH
set_npc_position_and_direction OW_STEPHANIE, 8, 10, SOUTH
end_script
jr .asm_2ce0f
.asm_2cdf6
xor a
start_script
set_npc_position_and_direction $26, $06, $03, $02
set_npc_position_and_direction $27, $05, $06, $02
set_npc_position_and_direction $28, $06, $0a, $02
set_npc_position_and_direction $29, $08, $0a, $02
set_npc_position_and_direction OW_MURRAY, 6, 3, SOUTH
set_npc_position_and_direction OW_ROBERT, 5, 6, SOUTH
set_npc_position_and_direction OW_DANIEL, 6, 10, SOUTH
set_npc_position_and_direction OW_STEPHANIE, 8, 10, SOUTH
end_script
.asm_2ce0f
scf
@ -1103,9 +1103,9 @@ Func_2d673:
ld [$d594], a
xor a
start_script
set_npc_position_and_direction $0a, $05, $01, $02
set_npc_position_and_direction $0b, $08, $01, $02
set_npc_position_and_direction $0c, $06, $01, $02
set_npc_position_and_direction OW_MATTHEW, 5, 1, SOUTH
set_npc_position_and_direction OW_RYAN, 8, 1, SOUTH
set_npc_position_and_direction OW_ANDREW, 6, 1, SOUTH
end_script
.asm_2d6a4
scf
@ -2416,9 +2416,9 @@ Func_2f0a5:
jr nz, .asm_2f0c3
xor a
start_script
load_npc $ac, $04, $06, $02
load_npc $ad, $03, $06, $01
load_npc $ae, $05, $06, $03
load_npc OW_CAPTURED_AMY, 4, 6, SOUTH
load_npc OW_CAPTURED_SARA, 3, 6, EAST
load_npc OW_CAPTURED_AMANDA, 5, 6, WEST
end_script
jr .asm_2f0f5
.asm_2f0c3
@ -2435,9 +2435,9 @@ Func_2f0a5:
.asm_2f0e1
xor a
start_script
set_npc_position_and_direction $19, $09, $05, $02
set_npc_position_and_direction $1c, $08, $05, $02
set_npc_position_and_direction $1d, $0a, $05, $02
set_npc_position_and_direction OW_AMY, 9, 5, SOUTH
set_npc_position_and_direction OW_SARA, 8, 5, SOUTH
set_npc_position_and_direction OW_AMANDA, 10, 5, SOUTH
end_script
.asm_2f0f5
scf
@ -2794,10 +2794,10 @@ Func_2f86e:
jr nz, .asm_2f891
xor a
start_script
set_npc_position_and_direction $1e, $07, $0a, $02
set_npc_position_and_direction $1f, $06, $0a, $02
set_npc_position_and_direction $20, $05, $0a, $02
set_npc_position_and_direction $21, $08, $0a, $02
set_npc_position_and_direction OW_KEN, 7, 10, SOUTH
set_npc_position_and_direction OW_JOHN, 6, 10, SOUTH
set_npc_position_and_direction OW_ADAM, 5, 10, SOUTH
set_npc_position_and_direction OW_JONATHAN, 8, 10, SOUTH
end_script
jr .asm_2f8c6
.asm_2f891
@ -2812,10 +2812,10 @@ Func_2f86e:
jr z, .asm_2f8c6
xor a
start_script
set_npc_position_and_direction $1e, $07, $0a, $02
set_npc_position_and_direction $1f, $06, $0a, $02
set_npc_position_and_direction $20, $05, $0a, $02
set_npc_position_and_direction $21, $08, $0a, $02
set_npc_position_and_direction OW_KEN, 7, 10, SOUTH
set_npc_position_and_direction OW_JOHN, 6, 10, SOUTH
set_npc_position_and_direction OW_ADAM, 5, 10, SOUTH
set_npc_position_and_direction OW_JONATHAN, 8, 10, SOUTH
end_script
.asm_2f8c6
scf

View File

@ -4,7 +4,7 @@ Func_341c4:
xor a
start_script
script_command_01
check_event $f1
check_event EVENT_SET_UNTIL_MAP_RELOAD_2
script_jump_if_b0nz .ows_341dd
print_npc_text Text126e
give_card SUPER_ENERGY_RETRIEVAL
@ -18,7 +18,7 @@ Func_341c4:
script_command_02
move_active_npc $41f0
wait_for_player_animation
unload_npc $03
unload_npc OW_RONALD
end_script
ld a, [wNextMusic]
farcall PlayAfterCurrentSong

View File

@ -209,14 +209,14 @@ Func_3c3ca:
xor a
start_script
script_command_01
set_var $25, $0f
check_event $f1
set_var VAR_25, $0f
check_event EVENT_SET_UNTIL_MAP_RELOAD_2
script_jump_if_b0nz .ows_3c41b
inc_var $22
get_var $22
inc_var VAR_22
get_var VAR_22
compare_loaded_var $0a
script_jump_if_b1nz .ows_3c3e3
set_var $22, $0a
set_var VAR_22, $0a
.ows_3c3e3
compare_loaded_var $03
script_jump_if_b1nz .ows_3c3f8
@ -255,12 +255,12 @@ Func_3c3ca:
get_player_direction
compare_loaded_var $02
script_jump_if_b0z .ows_3c42d
set_player_direction $03
set_player_direction WEST
animate_player_movement $81, $02
.ows_3c42d
move_active_npc $4492
wait_for_player_animation
unload_npc $05
unload_npc OW_IMAKUNI_BLACK
end_script
ld a, $00
ld [wd582], a
@ -301,7 +301,7 @@ Func_3c3ca:
.ows_3c474
print_npc_text Text12d2
get_var $22
get_var VAR_22
compare_loaded_var $06
script_jump_if_b1nz .ows_3c486
compare_loaded_var $09

View File

@ -458,7 +458,254 @@ directions = [
"WEST",
]
events = []
events = [
"EVENT_PLAYER_GENDER",
"EVENT_MASONS_LAB_CHALLENGE_MACHINE_STATE",
"EVENT_02",
"EVENT_MASONS_LAB_CHALLENGE_MACHINE_STATE_DUMMY",
"EVENT_GOT_CHANSEY_COIN",
"EVENT_GOT_ODDISH_COIN",
"EVENT_GOT_CHARMANDER_COIN",
"EVENT_GOT_STARMIE_COIN",
"EVENT_GOT_PIKACHU_COIN",
"EVENT_GOT_ALAKAZAM_COIN",
"EVENT_GOT_KABUTO_COIN",
"EVENT_GOT_GR_COIN",
"EVENT_GOT_GR_COIN_PIECE_TOP_LEFT",
"EVENT_GOT_GR_COIN_PIECE_TOP_RIGHT",
"EVENT_GOT_GR_COIN_PIECE_BOTTOM_LEFT",
"EVENT_GOT_GR_COIN_PIECE_BOTTOM_RIGHT",
"EVENT_GOT_MAGNEMITE_COIN",
"EVENT_GOT_GOLBAT_COIN",
"EVENT_GOT_MAGMAR_COIN",
"EVENT_GOT_PSYDUCK_COIN",
"EVENT_GOT_MACHAMP_COIN",
"EVENT_GOT_MEW_COIN",
"EVENT_GOT_SNORLAX_COIN",
"EVENT_GOT_TOGEPI_COIN",
"EVENT_GOT_PONYTA_COIN",
"EVENT_GOT_HORSEA_COIN",
"EVENT_GOT_ARBOK_COIN",
"EVENT_GOT_JIGGLYPUFF_COIN",
"EVENT_GOT_DUGTRIO_COIN",
"EVENT_GOT_GENGAR_COIN",
"EVENT_GOT_RAICHU_COIN",
"EVENT_GOT_LUGIA_COIN",
"EVENT_TALKED_TO_GENE",
"EVENT_TALKED_TO_MATTHEW",
"EVENT_TALKED_TO_RYAN",
"EVENT_TALKED_TO_ANDREW",
"EVENT_TALKED_TO_MITCH",
"EVENT_TALKED_TO_MICHAEL",
"EVENT_TALKED_TO_CHRIS",
"EVENT_TALKED_TO_JESSICA",
"EVENT_TALKED_TO_NIKKI",
"EVENT_TALKED_TO_BRITTANY",
"EVENT_TALKED_TO_KRISTIN",
"EVENT_TALKED_TO_HEATHER",
"EVENT_BEAT_BRITTANY",
"EVENT_TALKED_TO_RICK",
"EVENT_TALKED_TO_DAVID",
"EVENT_TALKED_TO_JOSEPH",
"EVENT_TALKED_TO_ERIK",
"EVENT_TALKED_TO_AMY",
"EVENT_TALKED_TO_JOSHUA",
"EVENT_TALKED_TO_SARA",
"EVENT_TALKED_TO_AMANDA",
"EVENT_35",
"EVENT_36",
"EVENT_TALKED_TO_ISAAC",
"EVENT_TALKED_TO_JENNIFER",
"EVENT_TALKED_TO_NICHOLAS",
"EVENT_TALKED_TO_BRANDON",
"EVENT_BEAT_NICHOLAS",
"EVENT_TALKED_TO_KEN",
"EVENT_TALKED_TO_JOHN",
"EVENT_TALKED_TO_ADAM",
"EVENT_TALKED_TO_JONATHAN",
"EVENT_TALKED_TO_MURRAY",
"EVENT_TALKED_TO_ROBERT",
"EVENT_TALKED_TO_DANIEL",
"EVENT_TALKED_TO_STEPHANIE",
"EVENT_BEAT_MURRAY",
"EVENT_WALKED_INTO_MURRAYS_CLUB_ROOM",
"EVENT_TALKED_TO_MIDORI",
"EVENT_TALKED_TO_YUTA",
"EVENT_TALKED_TO_MIYUKI",
"EVENT_TALKED_TO_MORINO",
"EVENT_FREED_RICK",
"EVENT_YUTAS_ROOM_DOOR_STATE",
"EVENT_MIYUKIS_ROOM_DOOR_STATE",
"EVENT_BEAT_MORINO",
"EVENT_TALKED_TO_RENNA",
"EVENT_TALKED_TO_ICHIKAWA",
"EVENT_TALKED_TO_CATHERINE",
"EVENT_TALKED_TO_TAP",
"EVENT_RENNAS_ROOM_DOOR_STATE",
"EVENT_ICHIKAWAS_ROOM_DOOR_STATE",
"EVENT_BEAT_CATHERINE",
"EVENT_TALKED_TO_JES",
"EVENT_TALKED_TO_YUKI",
"EVENT_TALKED_TO_SHOKO",
"EVENT_TALKED_TO_HIDERO",
"EVENT_JES_ROOM_DOOR_STATE",
"EVENT_YUKIS_ROOM_DOOR_STATE",
"EVENT_SHOKOS_ROOM_DOOR_STATE",
"EVENT_BEAT_HIDERO",
"EVENT_TALKED_TO_MIYAJIMA",
"EVENT_TALKED_TO_SENTA",
"EVENT_TALKED_TO_AIRA",
"EVENT_TALKED_TO_KANOKO",
"EVENT_MIYAJIMAS_ROOM_DOOR_STATE",
"EVENT_SENTAS_ROOM_BRIDGE_STATE",
"EVENT_AIRAS_ROOM_BRIDGE_STATE",
"EVENT_BEAT_KANOKO",
"EVENT_TALKED_TO_KAMIYA",
"EVENT_TALKED_TO_GODA",
"EVENT_TALKED_TO_GRACE",
"EVENT_BEAT_KAMIYA",
"EVENT_FREED_MITCH",
"EVENT_GRACES_ROOM_CHEST_STATE",
"EVENT_TALKED_TO_MIWA",
"EVENT_TALKED_TO_KEVIN",
"EVENT_TALKED_TO_YOSUKE",
"EVENT_TALKED_TO_RYOKO",
"EVENT_TALKED_TO_MAMI",
"EVENT_BEAT_MIWA",
"EVENT_BEAT_KEVIN",
"EVENT_BEAT_YOSUKE",
"EVENT_BEAT_RYOKO",
"EVENT_BEAT_MAMI",
"EVENT_TALKED_TO_NISHIJIMA",
"EVENT_TALKED_TO_ISHII",
"EVENT_TALKED_TO_SAMEJIMA",
"EVENT_BEAT_NISHIJIMA",
"EVENT_BEAT_ISHII",
"EVENT_BEAT_SAMEJIMA",
"EVENT_BEAT_COLORLESS_ALTAR_MEMBERS",
"EVENT_TALKED_TO_NISHIJIMA_2",
"EVENT_TALKED_TO_ISHII_2",
"EVENT_TALKED_TO_SAMEJIMA_2",
"EVENT_TALKED_TO_KANZAKI",
"EVENT_TALKED_TO_RUI",
"EVENT_BEAT_KANZAKI",
"EVENT_BEAT_RUI",
"EVENT_MET_GR_GAL_ISHIHARAS_VILLA",
"EVENT_TALKED_TO_BIRURITCHI",
"EVENT_TALKED_TO_TRADE_NPC_ROCK_CLUB",
"EVENT_TALKED_TO_TRADE_NPC_FIGHTING_CLUB",
"EVENT_TALKED_TO_TRADE_NPC_FIRE_CLUB",
"EVENT_TALKED_TO_TRADE_NPC_LIGHTNING_CLUB",
"EVENT_TALKED_TO_TRADE_NPC_PSYCHIC_CLUB",
"EVENT_TALKED_TO_TRADE_NPC_TCG_CHALLENGE_HALL",
"EVENT_TALKED_TO_TRADE_NPC_GRASS_FORT",
"EVENT_TALKED_TO_TRADE_NPC_LIGHTNING_FORT",
"EVENT_TALKED_TO_TRADE_NPC_GR_CHALLENGE_HALL",
"EVENT_TALKED_TO_TRADE_NPC_FIRE_FORT",
"EVENT_TALKED_TO_TRADE_NPC_WATER_FORT",
"EVENT_TALKED_TO_TRADE_NPC_PSYCHIC_STRONGHOLD",
"EVENT_91",
"EVENT_92",
"EVENT_TALKED_TO_SAM",
"EVENT_94",
"EVENT_TALKED_TO_ISHIHARA",
"EVENT_BATTLED_ISHIHARA",
"EVENT_TALKED_TO_ISHIHARA_POST_GAME",
"EVENT_MET_GR1_ROCK_CLUB",
"EVENT_MET_GR4_LIGHTNING_CLUB",
"EVENT_MET_GR4_PSYCHIC_CLUB",
"EVENT_MET_YUKI_FIRE_FORT",
"EVENT_MET_FIGHTING_FORT_MEMBERS",
"EVENT_MET_PSYCHIC_STRONGHOLD_MEMBERS",
"EVENT_MET_MAMI_AND_ROD",
"EVENT_MET_COLORLESS_ALTAR_MEMBERS",
"EVENT_MET_BIRURITCHI_AND_ADMINS",
"EVENT_GR_CASTLE_STAIRS_RUI_ROADBLOCK",
"EVENT_MET_RONALD_GAME_CENTER",
"EVENT_TALKED_TO_GR1_FIGHTING_CLUB",
"EVENT_TALKED_TO_GR2_SCIENCE_GRASS_CLUB",
"EVENT_TALKED_TO_GR3_WATER_CLUB",
"EVENT_TALKED_TO_GR4_PSYCHIC_CLUB",
"EVENT_A7",
"EVENT_OBTAINED_TWO_GR_COIN_PIECES",
"EVENT_TALKED_TO_GR5_POKEMON_DOME",
"EVENT_TALKED_TO_GR5_TCG_AIRPORT",
"EVENT_TRADED_CARDS_ROCK_CLUB",
"EVENT_TRADED_CARDS_FIGHTING_CLUB",
"EVENT_TRADED_CARDS_FIRE_CLUB",
"EVENT_TRADED_CARDS_LIGHTNING_CLUB",
"EVENT_TRADED_CARDS_PSYCHIC_CLUB",
"EVENT_TRADED_CARDS_TCG_CHALLENGE_HALL",
"EVENT_B1",
"EVENT_B2",
"EVENT_TRADED_CARDS_GRASS_FORT",
"EVENT_TRADED_CARDS_LIGHTNING_FORT",
"EVENT_TRADED_CARDS_GR_CHALLENGE_HALL",
"EVENT_TRADED_CARDS_FIRE_FORT",
"EVENT_TRADED_CARDS_WATER_FORT",
"EVENT_TRADED_CARDS_PSYCHIC_STRONGHOLD",
"EVENT_GODAS_ROOM_CAGE_STATE",
"EVENT_MIDORIS_ROOM_CAGE_STATE",
"EVENT_BB",
"EVENT_BC",
"EVENT_BD",
"EVENT_ENTERED_GRAND_MASTER_CUP",
"EVENT_FREED_COURTNEY",
"EVENT_FREED_STEVE",
"EVENT_FREED_JACK",
"EVENT_FREED_ROD",
"EVENT_GOT_CHIPS_FROM_GAME_CENTER_ATTENDANT",
"EVENT_TALKED_TO_SLOT_MACHINE_WOMAN",
"EVENT_TALKED_TO_COIN_TOSS_BOY",
"EVENT_C5",
"EVENT_LIGHTNING_FORT_ENTRANCE_DOOR_STATE",
"EVENT_FIRE_FORT_ENTRANCE_DOOR_STATE",
"EVENT_WATER_FORT_ENTRANCE_DOOR_STATE",
"EVENT_FIGHTING_FORT_ENTRANCE_DOOR_STATE",
"EVENT_INSERTED_LEFT_COIN_IN_FIGHTING_FORT_DOOR",
"EVENT_INSERTED_RIGHT_COIN_IN_FIGHTING_FORT_DOOR",
"EVENT_CAN_TRAVEL_PAST_FIGHTING_FORT",
"EVENT_GR_CASTLE_ENTRANCE_DOOR_STATE",
"EVENT_INSERTED_LEFT_COIN_IN_GR_CASTLE_DOOR",
"EVENT_INSERTED_RIGHT_COIN_IN_GR_CASTLE_DOOR",
"EVENT_SEALED_FORT_DOOR_STATE",
"EVENT_OPENED_CHEST_GRACES_ROOM",
"EVENT_OPENED_CHEST_FIGHTING_FORT_1",
"EVENT_OPENED_CHEST_FIGHTING_FORT_2",
"EVENT_OPENED_CHEST_FIGHTING_FORT_3",
"EVENT_OPENED_CHEST_FIGHTING_FORT_4",
"EVENT_OPENED_CHEST_FIGHTING_FORT_5",
"EVENT_OPENED_CHEST_FIGHTING_FORT_BASEMENT",
"EVENT_SHORT_GR_ISLAND_FLYOVER_SEQUENCE",
"EVENT_BEAT_GRAND_MASTER_CUP",
"EVENT_DB",
"EVENT_GHOST_MASTER_STATUES_STATE",
"EVENT_BATTLED_TOBICHAN",
"EVENT_BATTLED_EIJI",
"EVENT_BATTLED_MAGICIAN",
"EVENT_BATTLED_TOSHIRON",
"EVENT_BATTLED_PIERROT",
"EVENT_BATTLED_ANNA",
"EVENT_BATTLED_DEE",
"EVENT_BATTLED_MASQUERADE",
"EVENT_BATTLED_YUI",
"EVENT_TALKED_TO_PAWN",
"EVENT_TALKED_TO_KNIGHT",
"EVENT_TALKED_TO_BISHOP",
"EVENT_TALKED_TO_ROOK",
"EVENT_TALKED_TO_QUEEN",
"EVENT_EB",
"EVENT_EC",
"EVENT_SET_UNTIL_MAP_RELOAD_1",
"EVENT_EE",
"EVENT_EF",
"EVENT_F0",
"EVENT_SET_UNTIL_MAP_RELOAD_2",
"EVENT_F2",
"EVENT_F3",
"EVENT_ISHIHARA_CARD_TRADE_STATE",
"EVENT_F5",
]
maps = [
"OVERWORLD_MAP_TCG",
@ -936,7 +1183,256 @@ npcs = [
"OW_STRONGHOLD_PLATFORM",
]
sfxs = []
sfxs = [
"SFX_STOP",
"SFX_01",
"SFX_02",
"SFX_03",
"SFX_04",
"SFX_05",
"SFX_06",
"SFX_07",
"SFX_08",
"SFX_09",
"SFX_0A",
"SFX_0B",
"SFX_0C",
"SFX_0D",
"SFX_0E",
"SFX_0F",
"SFX_10",
"SFX_11",
"SFX_12",
"SFX_13",
"SFX_14",
"SFX_15",
"SFX_16",
"SFX_17",
"SFX_18",
"SFX_19",
"SFX_1A",
"SFX_1B",
"SFX_1C",
"SFX_1D",
"SFX_1E",
"SFX_1F",
"SFX_20",
"SFX_21",
"SFX_22",
"SFX_23",
"SFX_24",
"SFX_25",
"SFX_26",
"SFX_27",
"SFX_28",
"SFX_29",
"SFX_2A",
"SFX_2B",
"SFX_2C",
"SFX_2D",
"SFX_2E",
"SFX_2F",
"SFX_30",
"SFX_31",
"SFX_32",
"SFX_33",
"SFX_34",
"SFX_35",
"SFX_36",
"SFX_37",
"SFX_38",
"SFX_39",
"SFX_3A",
"SFX_3B",
"SFX_3C",
"SFX_3D",
"SFX_3E",
"SFX_3F",
"SFX_40",
"SFX_41",
"SFX_42",
"SFX_43",
"SFX_44",
"SFX_45",
"SFX_46",
"SFX_47",
"SFX_48",
"SFX_49",
"SFX_4A",
"SFX_4B",
"SFX_4C",
"SFX_4D",
"SFX_4E",
"SFX_4F",
"SFX_50",
"SFX_51",
"SFX_52",
"SFX_53",
"SFX_54",
"SFX_55",
"SFX_56",
"SFX_57",
"SFX_58",
"SFX_59",
"SFX_5A",
"SFX_5B",
"SFX_5C",
"SFX_5D",
"SFX_5E",
"SFX_5F",
"SFX_60",
"SFX_61",
"SFX_62",
"SFX_63",
"SFX_64",
"SFX_65",
"SFX_66",
"SFX_67",
"SFX_68",
"SFX_69",
"SFX_6A",
"SFX_6B",
"SFX_6C",
"SFX_6D",
"SFX_6E",
"SFX_6F",
"SFX_70",
"SFX_71",
"SFX_72",
"SFX_73",
"SFX_74",
"SFX_75",
"SFX_76",
"SFX_77",
"SFX_78",
"SFX_79",
"SFX_7A",
"SFX_7B",
"SFX_7C",
"SFX_7D",
"SFX_7E",
"SFX_7F",
"SFX_80",
"SFX_81",
"SFX_82",
"SFX_83",
"SFX_84",
"SFX_85",
"SFX_86",
"SFX_87",
"SFX_88",
"SFX_89",
"SFX_8A",
"SFX_8B",
"SFX_8C",
"SFX_8D",
"SFX_8E",
"SFX_8F",
"SFX_90",
"SFX_91",
"SFX_92",
"SFX_93",
"SFX_94",
"SFX_95",
"SFX_96",
"SFX_97",
"SFX_98",
"SFX_99",
"SFX_9A",
"SFX_9B",
"SFX_9C",
"SFX_9D",
"SFX_9E",
"SFX_9F",
"SFX_A0",
"SFX_A1",
"SFX_A2",
"SFX_A3",
"SFX_A4",
"SFX_A5",
"SFX_A6",
"SFX_A7",
"SFX_A8",
"SFX_A9",
"SFX_AA",
"SFX_AB",
"SFX_AC",
"SFX_AD",
"SFX_AE",
"SFX_AF",
"SFX_B0",
"SFX_B1",
"SFX_B2",
"SFX_B3",
"SFX_B4",
"SFX_B5",
"SFX_B6",
"SFX_B7",
"SFX_B8",
"SFX_B9",
"SFX_BA",
"SFX_BB",
"SFX_BC",
"SFX_BD",
"SFX_BE",
"SFX_BF",
"SFX_C0",
"SFX_C1",
"SFX_C2",
"SFX_C3",
"SFX_C4",
"SFX_C5",
"SFX_C6",
"SFX_C7",
"SFX_C8",
"SFX_C9",
"SFX_CA",
"SFX_CB",
"SFX_CC",
"SFX_CD",
"SFX_CE",
"SFX_CF",
"SFX_D0",
"SFX_D1",
"SFX_D2",
"SFX_D3",
"SFX_D4",
"SFX_D5",
"SFX_D6",
"SFX_D7",
"SFX_D8",
"SFX_D9",
"SFX_DA",
"SFX_DB",
"SFX_DC",
"SFX_DD",
"SFX_DE",
"SFX_DF",
"SFX_E0",
"SFX_E1",
"SFX_E2",
"SFX_E3",
"SFX_E4",
"SFX_E5",
"SFX_E6",
"SFX_E7",
"SFX_E8",
"SFX_E9",
"SFX_EA",
"SFX_EB",
"SFX_EC",
"SFX_ED",
"SFX_EE",
"SFX_EF",
"SFX_F0",
"SFX_F1",
"SFX_F2",
"SFX_F3",
"SFX_F4",
"SFX_F5",
"SFX_F6",
"SFX_F7",
]
songs = [
"MUSIC_STOP",
@ -1000,3 +1496,69 @@ songs = [
"MUSIC_DITTY6",
"MUSIC_3B",
]
vars = [
"VAR_00",
"VAR_01",
"VAR_02",
"VAR_03",
"VAR_TIMES_MET_RONALD",
"VAR_05",
"VAR_06",
"VAR_07",
"VAR_08",
"VAR_09",
"VAR_0A",
"VAR_0B",
"VAR_0C",
"VAR_0D",
"VAR_0E",
"VAR_0F",
"VAR_10",
"VAR_11",
"VAR_12",
"VAR_13",
"VAR_14",
"VAR_15",
"VAR_16",
"VAR_17",
"VAR_18",
"VAR_19",
"VAR_1A",
"VAR_1B",
"VAR_1C",
"VAR_1D",
"VAR_1E",
"VAR_1F",
"VAR_20",
"VAR_21",
"VAR_22",
"VAR_23",
"VAR_24",
"VAR_25",
"VAR_26",
"VAR_27",
"VAR_28",
"VAR_29",
"VAR_2A",
"VAR_2B",
"VAR_2C",
"VAR_2D",
"VAR_2E",
"VAR_2F",
"VAR_30",
"VAR_31",
"VAR_32",
"VAR_33",
"VAR_34",
"VAR_35",
"VAR_36",
"VAR_37",
"VAR_38",
"VAR_39",
"VAR_3A",
"VAR_3B",
"VAR_NPC_DECK_ID",
"VAR_3D",
"VAR_3E",
]

View File

@ -13,6 +13,7 @@ from constants import maps
from constants import npcs
from constants import sfxs
from constants import songs
from constants import vars
args = None
rom = None
@ -30,107 +31,107 @@ script_commands = {
0x04: { "name": "print_variable_text", "params": [ "text", "text" ] },
0x05: { "name": "print_npc_text", "params": [ "text" ] },
0x06: { "name": "print_variable_npc_text", "params": [ "text", "text" ] },
0x07: { "name": "ask_question", "params": [ "text", "byte" ] },
0x07: { "name": "ask_question", "params": [ "text", "bool" ] },
0x08: { "name": "script_jump", "params": [ "script" ] },
0x09: { "name": "script_jump_if_b0nz", "params": [ "script" ] },
0x0a: { "name": "script_jump_if_b0z", "params": [ "script" ] },
0x0b: { "name": "script_jump_if_b1nz", "params": [ "script" ] },
0x0c: { "name": "script_jump_if_b1z", "params": [ "script" ] },
0x0d: { "name": "compare_loaded_var", "params": [ "byte" ] },
0x0e: { "name": "set_event", "params": [ "byte" ] },
0x0f: { "name": "reset_event", "params": [ "byte" ] },
0x10: { "name": "check_event", "params": [ "byte" ] },
0x11: { "name": "set_var", "params": [ "byte", "byte" ] },
0x12: { "name": "get_var", "params": [ "byte" ] },
0x13: { "name": "inc_var", "params": [ "byte" ] },
0x14: { "name": "dec_var", "params": [ "byte" ] },
0x15: { "name": "load_npc", "params": [ "byte", "byte", "byte", "byte" ] },
0x16: { "name": "unload_npc", "params": [ "byte" ] },
0x17: { "name": "set_player_direction", "params": [ "byte" ] },
0x18: { "name": "set_active_npc_direction", "params": [ "byte" ] },
0x0e: { "name": "set_event", "params": [ "event" ] },
0x0f: { "name": "reset_event", "params": [ "event" ] },
0x10: { "name": "check_event", "params": [ "event" ] },
0x11: { "name": "set_var", "params": [ "var", "byte" ] },
0x12: { "name": "get_var", "params": [ "var" ] },
0x13: { "name": "inc_var", "params": [ "var" ] },
0x14: { "name": "dec_var", "params": [ "var" ] },
0x15: { "name": "load_npc", "params": [ "npc", "byte_decimal", "byte_decimal", "direction" ] },
0x16: { "name": "unload_npc", "params": [ "npc" ] },
0x17: { "name": "set_player_direction", "params": [ "direction" ] },
0x18: { "name": "set_active_npc_direction", "params": [ "direction" ] },
0x19: { "name": "do_frames", "params": [ "byte_decimal" ] },
0x1a: { "name": "load_tilemap", "params": [ "word", "byte", "byte" ] },
0x1b: { "name": "show_card_received_screen", "params": [ "card" ] },
0x1c: { "name": "set_player_position", "params": [ "byte", "byte" ] },
0x1d: { "name": "set_active_npc_position", "params": [ "byte", "byte" ] },
0x1e: { "name": "set_scroll_state", "params": [ "byte" ] },
0x1c: { "name": "set_player_position", "params": [ "byte_decimal", "byte_decimal" ] },
0x1d: { "name": "set_active_npc_position", "params": [ "byte_decimal", "byte_decimal" ] },
0x1e: { "name": "set_scroll_state", "params": [ "byte" ] }, # todo: enum scroll states
0x1f: { "name": "scroll_to_position", "params": [ "byte", "byte" ] },
0x20: { "name": "set_active_npc", "params": [ "byte", "text" ] },
0x21: { "name": "set_player_position_and_direction", "params": [ "byte", "byte", "byte" ] },
0x22: { "name": "set_npc_position_and_direction", "params": [ "byte", "byte", "byte", "byte" ] },
0x23: { "name": "fade_in", "params": [ "byte", "byte" ] },
0x24: { "name": "fade_out", "params": [ "byte", "byte" ] },
0x25: { "name": "set_npc_direction", "params": [ "byte", "byte" ] },
0x26: { "name": "set_npc_position", "params": [ "byte", "byte", "byte" ] },
0x27: { "name": "set_active_npc_position_and_direction", "params": [ "byte", "byte", "byte" ] },
0x20: { "name": "set_active_npc", "params": [ "npc", "text" ] },
0x21: { "name": "set_player_position_and_direction", "params": [ "byte_decimal", "byte_decimal", "direction" ] },
0x22: { "name": "set_npc_position_and_direction", "params": [ "npc", "byte_decimal", "byte_decimal", "direction" ] },
0x23: { "name": "fade_in", "params": [ "byte", "bool" ] },
0x24: { "name": "fade_out", "params": [ "byte", "bool" ] },
0x25: { "name": "set_npc_direction", "params": [ "npc", "direction" ] },
0x26: { "name": "set_npc_position", "params": [ "npc", "byte_decimal", "byte_decimal" ] },
0x27: { "name": "set_active_npc_position_and_direction", "params": [ "byte_decimal", "byte_decimal", "direction" ] },
0x28: { "name": "animate_player_movement", "params": [ "byte", "byte" ] },
0x29: { "name": "animate_npc_movement", "params": [ "byte", "byte", "byte" ] },
0x29: { "name": "animate_npc_movement", "params": [ "npc", "byte", "byte" ] },
0x2a: { "name": "animate_active_npc_movement", "params": [ "byte", "byte" ] },
0x2b: { "name": "move_player", "params": [ "word", "byte" ] },
0x2c: { "name": "move_npc", "params": [ "byte", "word" ] },
0x2d: { "name": "move_active_npc", "params": [ "word" ] },
0x2e: { "name": "start_duel", "params": [ "byte", "byte" ] },
0x2b: { "name": "move_player", "params": [ "word", "byte" ] }, # todo: parse movement data
0x2c: { "name": "move_npc", "params": [ "npc", "word" ] }, # todo: parse movement data
0x2d: { "name": "move_active_npc", "params": [ "word" ] }, # todo: parse movement data
0x2e: { "name": "start_duel", "params": [ "byte", "song" ] }, # todo: enumerate decks
0x2f: { "name": "wait_for_player_animation", "params": [] },
0x30: { "name": "wait_for_fade", "params": [] },
0x31: { "name": "get_card_count_in_collection_and_decks", "params": [ "card" ] },
0x32: { "name": "get_card_count_in_collection", "params": [ "card" ] },
0x33: { "name": "give_card", "params": [ "card" ] },
0x34: { "name": "take_card", "params": [ "card" ] },
0x35: { "name": "npc_ask_question", "params": [ "text", "byte" ] },
0x35: { "name": "npc_ask_question", "params": [ "text", "bool" ] },
0x36: { "name": "get_player_direction", "params": [] },
0x37: { "name": "compare_var", "params": [ "byte", "byte" ] },
0x37: { "name": "compare_var", "params": [ "var", "byte" ] },
0x38: { "name": "get_active_npc_direction", "params": [] },
0x39: { "name": "scroll_to_active_npc", "params": [] },
0x3a: { "name": "scroll_to_player", "params": [] },
0x3b: { "name": "scroll_to_npc", "params": [ "byte" ] },
0x3c: { "name": "spin_active_npc", "params": [ "word" ] },
0x3b: { "name": "scroll_to_npc", "params": [ "npc" ] },
0x3c: { "name": "spin_active_npc", "params": [ "word_decimal" ] },
0x3d: { "name": "restore_active_npc_direction", "params": [] },
0x3e: { "name": "spin_active_npc_reverse", "params": [ "word" ] },
0x3f: { "name": "reset_npc_flag6", "params": [ "byte" ] },
0x40: { "name": "set_npc_flag6", "params": [ "byte" ] },
0x41: { "name": "duel_requirement_check", "params": [ "byte" ] },
0x3e: { "name": "spin_active_npc_reverse", "params": [ "word_decimal" ] },
0x3f: { "name": "reset_npc_flag6", "params": [ "npc" ] },
0x40: { "name": "set_npc_flag6", "params": [ "npc" ] },
0x41: { "name": "duel_requirement_check", "params": [ "byte" ] }, # todo: enumerate duel requirements
0x42: { "name": "get_active_npc_opposite_direction", "params": [] },
0x43: { "name": "get_player_opposite_direction", "params": [] },
0x44: { "name": "play_sfx", "params": [ "byte" ] },
0x45: { "name": "play_sfx_and_wait", "params": [ "byte" ] },
0x44: { "name": "play_sfx", "params": [ "sfx" ] },
0x45: { "name": "play_sfx_and_wait", "params": [ "sfx" ] },
0x46: { "name": "set_text_ram2", "params": [ "text" ] },
0x47: { "name": "set_variable_text_ram2", "params": [ "text", "text" ] },
0x48: { "name": "wait_for_npc_animation", "params": [ "byte" ] },
0x48: { "name": "wait_for_npc_animation", "params": [ "npc" ] },
0x49: { "name": "get_player_x_position", "params": [] },
0x4a: { "name": "get_player_y_position", "params": [] },
0x4b: { "name": "restore_npc_direction", "params": [ "byte" ] },
0x4c: { "name": "spin_npc", "params": [ "byte", "word" ] },
0x4d: { "name": "spin_npc_reverse", "params": [ "byte", "word" ] },
0x4b: { "name": "restore_npc_direction", "params": [ "npc" ] },
0x4c: { "name": "spin_npc", "params": [ "npc", "word_decimal" ] },
0x4d: { "name": "spin_npc_reverse", "params": [ "npc", "word_decimal" ] },
0x4e: { "name": "push_var", "params": [] },
0x4f: { "name": "pop_var", "params": [] },
0x50: { "name": "script_call", "params": [ "script", "condition" ] },
0x50: { "name": "script_call", "params": [ "script", "condition" ] }, # todo: enumerate conditions
0x51: { "name": "script_ret", "params": [] },
0x52: { "name": "give_coin", "params": [ "byte" ] },
0x52: { "name": "give_coin", "params": [ "byte" ] }, # todo: enumerate coins
0x53: { "name": "backup_active_npc", "params": [] },
0x54: { "name": "load_player", "params": [ "byte", "byte", "byte" ] },
0x54: { "name": "load_player", "params": [ "byte_decimal", "byte_decimal", "direction" ] },
0x55: { "name": "unload_player", "params": [] },
0x56: { "name": "give_booster_packs", "params": [ "word" ] },
0x56: { "name": "give_booster_packs", "params": [ "word" ] }, # todo: parse booster data
0x57: { "name": "get_random", "params": [ "byte" ] },
0x58: { "name": "script_command_58", "params": [] }, # ?
0x59: { "name": "set_text_ram3", "params": [ "word" ] },
0x5a: { "name": "quit_script", "params": [] },
0x5b: { "name": "play_song", "params": [ "byte" ] },
0x5b: { "name": "play_song", "params": [ "song" ] },
0x5c: { "name": "resume_song", "params": [] },
0x5d: { "name": "script_callfar", "params": [ "script_far" ] },
0x5e: { "name": "script_retfar", "params": [] },
0x5f: { "name": "card_pop", "params": [ "byte" ] },
0x60: { "name": "play_song_next", "params": [ "byte" ] },
0x5f: { "name": "card_pop", "params": [ "byte" ] }, # todo: enumerate Card Pop! events
0x60: { "name": "play_song_next", "params": [ "song" ] },
0x61: { "name": "set_text_ram2b", "params": [ "text" ] },
0x62: { "name": "set_variable_text_ram2b", "params": [ "text", "text" ] },
0x63: { "name": "replace_npc", "params": [ "byte", "byte" ] },
0x63: { "name": "replace_npc", "params": [ "npc", "npc" ] },
0x64: { "name": "script_command_64", "params": [ "byte" ] }, # ?
0x65: { "name": "check_npc_loaded", "params": [ "byte" ] },
0x66: { "name": "give_deck", "params": [ "byte" ] },
0x65: { "name": "check_npc_loaded", "params": [ "npc" ] },
0x66: { "name": "give_deck", "params": [ "byte" ] }, # todo: enumerate decks
0x67: { "name": "script_command_67", "params": [ "byte", "byte" ] }, # ?
0x68: { "name": "script_command_68", "params": [] }, # wait for ?
0x69: { "name": "print_npc_text_instant", "params": [ "text" ] },
0x6a: { "name": "var_add", "params": [ "byte", "byte" ] },
0x6b: { "name": "var_sub", "params": [ "byte", "byte" ] },
0x6a: { "name": "var_add", "params": [ "var", "byte" ] },
0x6b: { "name": "var_sub", "params": [ "var", "byte" ] },
0x6c: { "name": "receive_card", "params": [ "card" ] },
0x6d: { "name": "fetch_wda99", "params": [] },
0x6e: { "name": "compare_loaded_var_word", "params": [ "word" ] },
@ -144,8 +145,8 @@ script_commands = {
0x76: { "name": "script_command_76", "params": [] }, # ?
0x77: { "name": "link_duel", "params": [] },
0x78: { "name": "wait_song", "params": [] },
0x79: { "name": "load_palette", "params": [ "word" ] },
0x7a: { "name": "set_sprite_frameset", "params": [ "byte", "word" ] },
0x79: { "name": "load_palette", "params": [ "word" ] }, # todo: enumerate palettes
0x7a: { "name": "set_sprite_frameset", "params": [ "npc", "word" ] }, # todo: enumerate framesets
0x7b: { "name": "wait_sfx", "params": [] },
0x7c: { "name": "print_text_wide_textbox", "params": [ "text" ] },
0x7d: { "name": "wait_input", "params": [] },
@ -163,6 +164,7 @@ quit_commands = [
param_lengths = {
"byte": 1,
"byte_decimal": 1,
"bool": 1,
"condition": 1,
"deck": 1,
"direction": 1,
@ -172,6 +174,7 @@ param_lengths = {
"prizes": 1,
"sfx": 1,
"song": 1,
"var": 1,
"word": 2,
"word_decimal": 2,
"card": 2,
@ -284,6 +287,13 @@ def dump_script(start_address, address=None, visited=set()):
output += " ${:02x}".format(param)
elif param_type == "byte_decimal":
output += " {}".format(param)
elif param_type == "bool":
if param == 0:
output += " FALSE"
elif param == 1:
output += " TRUE"
else:
raise ValueError
elif param_type == "condition":
if param != 0:
output += " ${:02x}".format(param)
@ -303,6 +313,8 @@ def dump_script(start_address, address=None, visited=set()):
output += " {}".format(sfxs[param])
elif param_type == "song":
output += " {}".format(songs[param])
elif param_type == "var":
output += " {}".format(vars[param])
elif param_type == "word":
output += " ${:04x}".format(param + rom[address + 1] * 0x100)
elif param_type == "word_decimal":