diff --git a/tools/msgdis.py b/tools/msgdis.py index 74e2fed92e..9171db69ac 100755 --- a/tools/msgdis.py +++ b/tools/msgdis.py @@ -173,53 +173,1271 @@ item_ids = { 0xFF : "ITEM_NONE", } -# From https://stackoverflow.com/questions/241327/remove-c-and-c-comments-using-python -def remove_comments(text : str) -> str: - def replacer(match : re.Match) -> str: - string : str = match.group(0) - if string.startswith("/"): - return " " # note: a space and not an empty string - else: - return string - - pattern = re.compile( - r'//.*?$|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"', re.DOTALL | re.MULTILINE - ) - return re.sub(pattern, replacer, text) +sfx_ids = { + 0x0000 : "NA_SE_PL_WALK_GROUND", + 0x0001 : "NA_SE_PL_WALK_SAND", + 0x0002 : "NA_SE_PL_WALK_CONCRETE", + 0x0003 : "NA_SE_PL_WALK_DIRT", + 0x0004 : "NA_SE_PL_WALK_WATER0", + 0x0005 : "NA_SE_PL_WALK_WATER1", + 0x0006 : "NA_SE_PL_WALK_WATER2", + 0x0007 : "NA_SE_PL_WALK_MAGMA", + 0x0008 : "NA_SE_PL_WALK_GRASS", + 0x0009 : "NA_SE_PL_WALK_IRON", + 0x000A : "NA_SE_PL_WALK_LADDER", + 0x000B : "NA_SE_PL_WALK_GLASS", + 0x000C : "NA_SE_PL_WALK_WALL", + 0x000D : "NA_SE_PL_WALK_HEAVYBOOTS", + 0x000E : "NA_SE_PL_DUMMY_14", + 0x000F : "NA_SE_PL_WALK_ICE", + 0x0010 : "NA_SE_PL_JUMP", + 0x0011 : "NA_SE_PL_JUMP_SAND", + 0x0012 : "NA_SE_PL_JUMP_CONCRETE", + 0x0013 : "NA_SE_PL_JUMP_DIRT", + 0x0014 : "NA_SE_PL_JUMP_WATER0", + 0x0015 : "NA_SE_PL_JUMP_WATER1", + 0x0016 : "NA_SE_PL_JUMP_WATER2", + 0x0017 : "NA_SE_PL_JUMP_MAGMA", + 0x0018 : "NA_SE_PL_JUMP_GRASS", + 0x0019 : "NA_SE_PL_JUMP_IRON", + 0x001A : "NA_SE_PL_JUMP_LADDER", + 0x001B : "NA_SE_PL_JUMP_GLASS", + 0x001C : "NA_SE_PL_DUMMY28", + 0x001D : "NA_SE_PL_JUMP_HEAVYBOOTS", + 0x001E : "NA_SE_PL_DUMMY30", + 0x001F : "NA_SE_PL_JUMP_ICE", + 0x0020 : "NA_SE_PL_LAND", + 0x0021 : "NA_SE_PL_LAND_SAND", + 0x0022 : "NA_SE_PL_LAND_CONCRETE", + 0x0023 : "NA_SE_PL_LAND_DIRT", + 0x0024 : "NA_SE_PL_LAND_WATER0", + 0x0025 : "NA_SE_PL_LAND_WATER1", + 0x0026 : "NA_SE_PL_LAND_WATER2", + 0x0027 : "NA_SE_PL_LAND_MAGMA", + 0x0028 : "NA_SE_PL_LAND_GRASS", + 0x0029 : "NA_SE_PL_LAND_IRON", + 0x002A : "NA_SE_PL_LAND_LADDER", + 0x002B : "NA_SE_PL_LAND_GLASS", + 0x002C : "NA_SE_PL_DUMMY_44", + 0x002D : "NA_SE_PL_LAND_HEAVYBOOTS", + 0x002E : "NA_SE_PL_DUMMY_46", + 0x002F : "NA_SE_PL_LAND_ICE", + 0x0030 : "NA_SE_PL_SLIPDOWN", + 0x0031 : "NA_SE_PL_CLIMB_CLIFF", + 0x0032 : "NA_SE_PL_SIT_ON_HORSE", + 0x0033 : "NA_SE_PL_GET_OFF_HORSE", + 0x0034 : "NA_SE_PL_TAKE_OUT_SHIELD", + 0x0035 : "NA_SE_PL_CHANGE_ARMS", + 0x0036 : "NA_SE_PL_CATCH_BOOMERANG", + 0x0037 : "NA_SE_PL_DUMMY_55", + 0x0038 : "NA_SE_PL_DUMMY_56", + 0x0039 : "NA_SE_PL_SWIM", + 0x003A : "NA_SE_PL_THROW", + 0x003B : "NA_SE_PL_BODY_BOUND", + 0x003C : "NA_SE_PL_ROLL", + 0x003D : "NA_SE_PL_SKIP", + 0x003E : "NA_SE_PL_BODY_HIT", + 0x003F : "NA_SE_PL_DAMAGE", + 0x0040 : "NA_SE_PL_SLIP", + 0x0041 : "NA_SE_PL_SLIP_SAND", + 0x0042 : "NA_SE_PL_SLIP_CONCRETE", + 0x0043 : "NA_SE_PL_SLIP_DIRT", + 0x0044 : "NA_SE_PL_SLIP_WATER0", + 0x0045 : "NA_SE_PL_SLIP_WATER1", + 0x0046 : "NA_SE_PL_SLIP_WATER2", + 0x0047 : "NA_SE_PL_SLIP_MAGMA", + 0x0048 : "NA_SE_PL_SLIP_GRASS", + 0x0049 : "NA_SE_PL_SLIP_IRON", + 0x004A : "NA_SE_PL_SLIP_LADDER", + 0x004B : "NA_SE_PL_SLIP_GLASS", + 0x004C : "NA_SE_PL_DUMMY76", + 0x004D : "NA_SE_PL_SLIP_HEAVYBOOTS", + 0x004E : "NA_SE_PL_DUMMY78", + 0x004F : "NA_SE_PL_SLIP_ICE", + 0x0050 : "NA_SE_PL_BOUND", + 0x0051 : "NA_SE_PL_BOUND_SAND", + 0x0052 : "NA_SE_PL_BOUND_CONCRETE", + 0x0053 : "NA_SE_PL_BOUND_DIRT", + 0x0054 : "NA_SE_PL_BOUND_WATER0", + 0x0055 : "NA_SE_PL_BOUND_WATER1", + 0x0056 : "NA_SE_PL_BOUND_WATER2", + 0x0057 : "NA_SE_PL_BOUND_MAGMA", + 0x0058 : "NA_SE_PL_BOUND_GRASS", + 0x0059 : "NA_SE_PL_BOUND_IRON", + 0x005A : "NA_SE_PL_BOUND_LADDER", + 0x005B : "NA_SE_PL_BOUND_WOOD", + 0x005C : "NA_SE_PL_DUMMY_92", + 0x005D : "NA_SE_PL_BOUND_HEAVYBOOTS", + 0x005E : "NA_SE_PL_DUMMY_94", + 0x005F : "NA_SE_PL_BOUND_ICE", + 0x0060 : "NA_SE_PL_DUMMY_96", + 0x0061 : "NA_SE_PL_DUMMY_97", + 0x0062 : "NA_SE_PL_DUMMY_98", + 0x0063 : "NA_SE_PL_FACE_UP", + 0x0064 : "NA_SE_PL_DIVE_BUBBLE", + 0x0065 : "NA_SE_PL_MOVE_BUBBLE", + 0x0066 : "NA_SE_PL_METALEFFECT_KID", + 0x0067 : "NA_SE_PL_METALEFFECT_ADULT", + 0x0068 : "NA_SE_PL_SPARK", + 0x0069 : "NA_SE_PL_PULL_UP_PLANT", + 0x006A : "NA_SE_PL_PULL_UP_ROCK", + 0x006B : "NA_SE_PL_IN_BUBBLE", + 0x006C : "NA_SE_PL_PULL_UP_BIGROCK", + 0x006D : "NA_SE_PL_SWORD_CHARGE", + 0x006E : "NA_SE_PL_FREEZE", + 0x006F : "NA_SE_PL_PULL_UP_POT", + 0x0070 : "NA_SE_PL_KNOCK", + 0x0071 : "NA_SE_PL_CALM_HIT", + 0x0072 : "NA_SE_PL_CALM_PAT", + 0x0073 : "NA_SE_PL_SUBMERGE", + 0x0074 : "NA_SE_PL_FREEZE_S", + 0x0075 : "NA_SE_PL_ICE_BROKEN", + 0x0076 : "NA_SE_PL_SLIP_ICE_LELEL", + 0x0077 : "NA_SE_PL_PUT_OUT_ITEM", + 0x0078 : "NA_SE_PL_PULL_UP_WOODBOX", + 0x0079 : "NA_SE_PL_MAGIC_FIRE", + 0x007A : "NA_SE_PL_MAGIC_WIND_NORMAL", + 0x007B : "NA_SE_PL_MAGIC_WIND_WARP", + 0x007C : "NA_SE_PL_MAGIC_SOUL_NORMAL", + 0x007D : "NA_SE_PL_ARROW_CHARGE_FIRE", + 0x007E : "NA_SE_PL_ARROW_CHARGE_ICE", + 0x007F : "NA_SE_PL_ARROW_CHARGE_LIGHT", + 0x0080 : "NA_SE_PL_DUMMY_128", + 0x0081 : "NA_SE_PL_DUMMY_129", + 0x0082 : "NA_SE_PL_DUMMY_130", + 0x0083 : "NA_SE_PL_PULL_UP_RUTO", + 0x0084 : "NA_SE_PL_DUMMY_132", + 0x0085 : "NA_SE_PL_DUMMY_133", + 0x0086 : "NA_SE_PL_DUMMY_134", + 0x0087 : "NA_SE_PL_DUMMY_135", + 0x0088 : "NA_SE_PL_DUMMY_136", + 0x0089 : "NA_SE_PL_DUMMY_137", + 0x008A : "NA_SE_PL_DUMMY_138", + 0x008B : "NA_SE_PL_DUMMY_139", + 0x008C : "NA_SE_PL_DUMMY_140", + 0x008D : "NA_SE_PL_DUMMY_141", + 0x008E : "NA_SE_PL_DUMMY_142", + 0x008F : "NA_SE_PL_DUMMY_143", + 0x0090 : "NA_SE_PL_DUMMY_144", + 0x0091 : "NA_SE_PL_DUMMY_145", + 0x0092 : "NA_SE_PL_DUMMY_146", + 0x0093 : "NA_SE_PL_DUMMY_147", + 0x0094 : "NA_SE_PL_DUMMY_148", + 0x0095 : "NA_SE_PL_DUMMY_149", + 0x0096 : "NA_SE_PL_DUMMY_150", + 0x0097 : "NA_SE_PL_DUMMY_151", + 0x0098 : "NA_SE_PL_DUMMY_152", + 0x0099 : "NA_SE_PL_DUMMY_153", + 0x009A : "NA_SE_PL_DUMMY_154", + 0x009B : "NA_SE_PL_DUMMY_155", + 0x009C : "NA_SE_PL_DUMMY_156", + 0x009D : "NA_SE_PL_DUMMY_157", + 0x009E : "NA_SE_PL_DUMMY_158", + 0x009F : "NA_SE_PL_DUMMY_159", + 0x00A0 : "NA_SE_PL_DUMMY_160", + 0x00A1 : "NA_SE_PL_DUMMY_161", + 0x00A2 : "NA_SE_PL_DUMMY_162", + 0x00A3 : "NA_SE_PL_DUMMY_163", + 0x00A4 : "NA_SE_PL_DUMMY_164", + 0x00A5 : "NA_SE_PL_DUMMY_165", + 0x00A6 : "NA_SE_PL_DUMMY_166", + 0x00A7 : "NA_SE_PL_DUMMY_167", + 0x00A8 : "NA_SE_PL_DUMMY_168", + 0x00A9 : "NA_SE_PL_DUMMY_169", + 0x00AA : "NA_SE_PL_DUMMY_170", + 0x00AB : "NA_SE_PL_DUMMY_171", + 0x00AC : "NA_SE_PL_DUMMY_172", + 0x00AD : "NA_SE_PL_DUMMY_173", + 0x00AE : "NA_SE_PL_DUMMY_174", + 0x00AF : "NA_SE_PL_DUMMY_175", + 0x00B0 : "NA_SE_PL_CRAWL", + 0x00B1 : "NA_SE_PL_CRAWL_SAND", + 0x00B2 : "NA_SE_PL_CRAWL_CONCRETE", + 0x00B3 : "NA_SE_PL_CRAWL_DIRT", + 0x00B4 : "NA_SE_PL_CRAWL_WATER0", + 0x00B5 : "NA_SE_PL_DUMMY_181", + 0x00B6 : "NA_SE_PL_DUMMY_182", + 0x00B7 : "NA_SE_PL_DUMMY_183", + 0x00B8 : "NA_SE_PL_DUMMY_184", + 0x00B9 : "NA_SE_PL_DUMMY_185", + 0x00BA : "NA_SE_PL_DUMMY_186", + 0x00BB : "NA_SE_PL_CRAWL_WOOD", + 0x00BC : "NA_SE_PL_CRAWL_ICE", + 0x00BD : "NA_SE_PL_DUMMY_189", + 0x00BE : "NA_SE_PL_DUMMY_190", + 0x00BF : "NA_SE_PL_DUMMY_191", + 0x00C0 : "NA_SE_PL_MAGIC_SOUL_FLASH", + 0x00C1 : "NA_SE_PL_ROLL_DUST", + 0x00C2 : "NA_SE_PL_DUMMY_192", + 0x00C3 : "NA_SE_PL_MAGIC_SOUL_BALL", + 0x00C4 : "NA_SE_PL_SPIRAL_HEAL_BEAM", + 0x00C5 : "NA_SE_PL_BOUND_NOWEAPON", + 0x00C6 : "NA_SE_PL_PLANT_GROW_UP", + 0x00C7 : "NA_SE_PL_PLANT_TALLER", + 0x00C8 : "NA_SE_PL_MAGIC_WIND_VANISH", + 0x00C9 : "NA_SE_PL_HOBBERBOOTS_LV", + 0x00CA : "NA_SE_PL_PLANT_MOVE", + 0x00CB : "NA_SE_EV_WALL_MOVE_SP", + 0x00CC : "NA_SE_PL_DUMMY_204", + 0x00CD : "NA_SE_PL_DUMMY_205", + 0x00CE : "NA_SE_PL_DUMMY_206", + 0x00CF : "NA_SE_PL_DUMMY_207", + 0x00D0 : "NA_SE_PL_SLIP_LEVEL", + 0x00D1 : "NA_SE_PL_SLIP_SAND_LEVEL", + 0x00D2 : "NA_SE_PL_SLIP_CONCRETE_LEVEL", + 0x00D3 : "NA_SE_PL_SLIP_DIRT_LEVEL", + 0x00D4 : "NA_SE_PL_SLIP_WATER0_LEVEL", + 0x00D5 : "NA_SE_PL_SLIP_WATER1_LEVEL", + 0x00D6 : "NA_SE_PL_SLIP_WATER2_LEVEL", + 0x00D7 : "NA_SE_PL_SLIP_MAGMA_LEVEL", + 0x00D8 : "NA_SE_PL_SLIP_GRASS_LEVEL", + 0x00D9 : "NA_SE_PL_SLIP_IRON_LEVEL", + 0x00DA : "NA_SE_PL_SLIP_GLASS_LEVEL", + 0x00DB : "NA_SE_PL_SLIP_WOOD_LEVEL", + 0x00DC : "NA_SE_PL_DUMMY_220", + 0x00DD : "NA_SE_PL_DUMMY_221", + 0x00DE : "NA_SE_PL_SLIP_HEAVYBOOTS_LEVEL", + 0x00DF : "NA_SE_PL_SLIP_ICE_LEVEL", + 0x1000 : "NA_SE_IT_SWORD_IMPACT", + 0x1001 : "NA_SE_IT_SWORD_SWING", + 0x1002 : "NA_SE_IT_SWORD_PUTAWAY", + 0x1003 : "NA_SE_IT_SWORD_PICKOUT", + 0x1004 : "NA_SE_IT_ARROW_SHOT", + 0x1005 : "NA_SE_IT_BOOMERANG_THROW", + 0x1006 : "NA_SE_IT_SHIELD_BOUND", + 0x1007 : "NA_SE_IT_BOW_DRAW", + 0x1008 : "NA_SE_IT_SHIELD_REFLECT_SW", + 0x1009 : "NA_SE_IT_ARROW_STICK_HRAD", + 0x100A : "NA_SE_IT_HAMMER_HIT", + 0x100B : "NA_SE_IT_HOOKSHOT_CHAIN", + 0x100C : "NA_SE_IT_SHIELD_REFLECT_MG", + 0x100D : "NA_SE_IT_BOMB_IGNIT", + 0x100E : "NA_SE_IT_BOMB_EXPLOSION", + 0x100F : "NA_SE_IT_BOMB_UNEXPLOSION", + 0x1010 : "NA_SE_IT_BOOMERANG_FLY", + 0x1011 : "NA_SE_IT_SWORD_STRIKE", + 0x1012 : "NA_SE_IT_HAMMER_SWING", + 0x1013 : "NA_SE_IT_HOOKSHOT_REFLECT", + 0x1014 : "NA_SE_IT_ARROW_STICK_CRE", + 0x1015 : "NA_SE_IT_ARROW_STICK_OBJ", + 0x1016 : "NA_SE_IT_DUMMY", + 0x1017 : "NA_SE_IT_DUMMY2", + 0x1018 : "NA_SE_IT_SWORD_SWING_HARD", + 0x1019 : "NA_SE_IT_DUMMY3", + 0x101A : "NA_SE_IT_WALL_HIT_HARD", + 0x101B : "NA_SE_IT_WALL_HIT_SOFT", + 0x101C : "NA_SE_IT_STONE_HIT", + 0x101D : "NA_SE_IT_WOODSTICK_BROKEN", + 0x101E : "NA_SE_IT_LASH", + 0x101F : "NA_SE_IT_SHIELD_POSTURE", + 0x1020 : "NA_SE_IT_SLING_SHOT", + 0x1021 : "NA_SE_IT_SLING_DRAW", + 0x1022 : "NA_SE_IT_SWORD_CHARGE", + 0x1023 : "NA_SE_IT_ROLLING_CUT", + 0x1024 : "NA_SE_IT_SWORD_STRIKE_HARD", + 0x1025 : "NA_SE_IT_SLING_REFLECT", + 0x1026 : "NA_SE_IT_SHIELD_REMOVE", + 0x1027 : "NA_SE_IT_HOOKSHOT_READY", + 0x1028 : "NA_SE_IT_HOOKSHOT_RECEIVE", + 0x1029 : "NA_SE_IT_HOOKSHOT_STICK_OBJ", + 0x102A : "NA_SE_IT_SWORD_REFLECT_MG", + 0x102B : "NA_SE_IT_DEKU", + 0x102C : "NA_SE_IT_WALL_HIT_BUYO", + 0x102D : "NA_SE_IT_SWORD_PUTAWAY_STN", + 0x102E : "NA_SE_IT_ROLLING_CUT_LV1", + 0x102F : "NA_SE_IT_ROLLING_CUT_LV2", + 0x1030 : "NA_SE_IT_BOW_FLICK", + 0x1031 : "NA_SE_IT_BOMBCHU_MOVE", + 0x1032 : "NA_SE_IT_SHIELD_CHARGE_LV1", + 0x1033 : "NA_SE_IT_SHIELD_CHARGE_LV2", + 0x1034 : "NA_SE_IT_SHIELD_CHARGE_LV3", + 0x1035 : "NA_SE_IT_SLING_FLICK", + 0x1036 : "NA_SE_IT_SWORD_STICK_STN", + 0x1037 : "NA_SE_IT_REFLECTION_WOOD", + 0x1038 : "NA_SE_IT_SHIELD_REFLECT_MG2", + 0x1039 : "NA_SE_IT_MAGIC_ARROW_SHOT", + 0x103A : "NA_SE_IT_EXPLOSION_FRAME", + 0x103B : "NA_SE_IT_EXPLOSION_ICE", + 0x103C : "NA_SE_IT_EXPLOSION_LIGHT", + 0x103D : "NA_SE_IT_FISHING_REEL_SLOW", + 0x103E : "NA_SE_IT_FISHING_REEL_HIGH", + 0x103F : "NA_SE_IT_PULL_FISHING_ROD", + 0x1040 : "NA_SE_IT_DM_FLYING_GOD_PASS", + 0x1041 : "NA_SE_IT_DM_FLYING_GOD_DASH", + 0x1042 : "NA_SE_IT_DM_RING_EXPLOSION", + 0x1043 : "NA_SE_IT_DM_RING_GATHER", + 0x1044 : "NA_SE_IT_INGO_HORSE_NEIGH", + 0x1045 : "NA_SE_IT_EARTHQUAKE", + 0x1046 : "NA_SE_IT_DUMMY4", + 0x1047 : "NA_SE_IT_KAKASHI_JUMP", + 0x1048 : "NA_SE_IT_FLAME", + 0x1049 : "NA_SE_IT_SHIELD_BEAM", + 0x104A : "NA_SE_IT_FISHING_HIT", + 0x104B : "NA_SE_IT_GOODS_APPEAR", + 0x104C : "NA_SE_IT_MAJIN_SWORD_BROKEN", + 0x104D : "NA_SE_IT_HAND_CLAP", + 0x104E : "NA_SE_IT_MASTER_SWORD_SWING", + 0x104F : "NA_SE_IT_DUMMY5", + 0x2000 : "NA_SE_EV_DOOR_OPEN", + 0x2001 : "NA_SE_EV_DOOR_CLOSE", + 0x2002 : "NA_SE_EV_EXPLOSION", + 0x2003 : "NA_SE_EV_HORSE_WALK", + 0x2004 : "NA_SE_EV_HORSE_RUN", + 0x2005 : "NA_SE_EV_HORSE_NEIGH", + 0x2006 : "NA_SE_EV_RIVER_STREAM", + 0x2007 : "NA_SE_EV_WATER_WALL_BIG", + 0x2008 : "NA_SE_EV_OUT_OF_WATER", + 0x2009 : "NA_SE_EV_DIVE_WATER", + 0x200A : "NA_SE_EV_ROCK_SLIDE", + 0x200B : "NA_SE_EV_MAGMA_LEVEL", + 0x200C : "NA_SE_EV_BRIDGE_OPEN", + 0x200D : "NA_SE_EV_BRIDGE_CLOSE", + 0x200E : "NA_SE_EV_BRIDGE_OPEN_STOP", + 0x200F : "NA_SE_EV_BRIDGE_CLOSE_STOP", + 0x2010 : "NA_SE_EV_WALL_BROKEN", + 0x2011 : "NA_SE_EV_CHICKEN_CRY_N", + 0x2012 : "NA_SE_EV_CHICKEN_CRY_A", + 0x2013 : "NA_SE_EV_CHICKEN_CRY_M", + 0x2014 : "NA_SE_EV_SLIDE_DOOR_OPEN", + 0x2015 : "NA_SE_EV_FOOT_SWITCH", + 0x2016 : "NA_SE_EV_HORSE_GROAN", + 0x2017 : "NA_SE_EV_BOMB_DROP_WATER", + 0x2018 : "NA_SE_EV_HORSE_JUMP", + 0x2019 : "NA_SE_EV_HORSE_LAND", + 0x201A : "NA_SE_EV_HORSE_SLIP", + 0x201B : "NA_SE_EV_FAIRY_DASH", + 0x201C : "NA_SE_EV_SLIDE_DOOR_CLOSE", + 0x201D : "NA_SE_EV_STONE_BOUND", + 0x201E : "NA_SE_EV_STONE_STATUE_OPEN", + 0x201F : "NA_SE_EV_TBOX_UNLOCK", + 0x2020 : "NA_SE_EV_TBOX_OPEN", + 0x2021 : "NA_SE_SY_TIMER", + 0x2022 : "NA_SE_EV_FLAME_IGNITION", + 0x2023 : "NA_SE_EV_SPEAR_HIT", + 0x2024 : "NA_SE_EV_ELEVATOR_MOVE", + 0x2025 : "NA_SE_EV_WARP_HOLE", + 0x2026 : "NA_SE_EV_LINK_WARP", + 0x2027 : "NA_SE_EV_PILLAR_SINK", + 0x2028 : "NA_SE_EV_WATER_WALL", + 0x2029 : "NA_SE_EV_RIVER_STREAM_S", + 0x202A : "NA_SE_EV_RIVER_STREAM_F", + 0x202B : "NA_SE_EV_HORSE_LAND2", + 0x202C : "NA_SE_EV_HORSE_SANDDUST", + 0x202D : "NA_SE_EV_DUMMY45", + 0x202E : "NA_SE_EV_LIGHTNING", + 0x202F : "NA_SE_EV_BOMB_BOUND", + 0x2030 : "NA_SE_EV_WATERDROP", + 0x2031 : "NA_SE_EV_TORCH", + 0x2032 : "NA_SE_EV_MAGMA_LEVEL_M", + 0x2033 : "NA_SE_EV_FIRE_PILLAR", + 0x2034 : "NA_SE_EV_FIRE_PLATE", + 0x2035 : "NA_SE_EV_BLOCK_BOUND", + 0x2036 : "NA_SE_EV_METALDOOR_SLIDE", + 0x2037 : "NA_SE_EV_METALDOOR_STOP", + 0x2038 : "NA_SE_EV_BLOCK_SHAKE", + 0x2039 : "NA_SE_EV_BOX_BREAK", + 0x203A : "NA_SE_EV_HAMMER_SWITCH", + 0x203B : "NA_SE_EV_MAGMA_LEVEL_L", + 0x203C : "NA_SE_EV_SPEAR_FENCE", + 0x203D : "NA_SE_EV_GANON_HORSE_NEIGH", + 0x203E : "NA_SE_EV_GANON_HORSE_GROAN", + 0x203F : "NA_SE_EV_FANTOM_WARP_S", + 0x2040 : "NA_SE_EV_FANTOM_WARP_L", + 0x2041 : "NA_SE_EV_FOUNTAIN", + 0x2042 : "NA_SE_EV_KID_HORSE_WALK", + 0x2043 : "NA_SE_EV_KID_HORSE_RUN", + 0x2044 : "NA_SE_EV_KID_HORSE_NEIGH", + 0x2045 : "NA_SE_EV_KID_HORSE_GROAN", + 0x2046 : "NA_SE_EV_WHITE_OUT", + 0x2047 : "NA_SE_EV_LIGHT_GATHER", + 0x2048 : "NA_SE_EV_TREE_CUT", + 0x2049 : "NA_SE_EV_VOLCANO", + 0x204A : "NA_SE_EV_GUILLOTINE_UP", + 0x204B : "NA_SE_EV_GUILLOTINE_BOUND", + 0x204C : "NA_SE_EV_ROLLCUTTER_MOTOR", + 0x204D : "NA_SE_EV_CHINETRAP_DOWN", + 0x204E : "NA_SE_EV_PLANT_BROKEN", + 0x204F : "NA_SE_EV_SHIP_BELL", + 0x2050 : "NA_SE_EV_FLUTTER_FLAG", + 0x2051 : "NA_SE_EV_TRAP_BOUND", + 0x2052 : "NA_SE_EV_ROCK_BROKEN", + 0x2053 : "NA_SE_EV_FANTOM_WARP_S2", + 0x2054 : "NA_SE_EV_FANTOM_WARP_L2", + 0x2055 : "NA_SE_EV_COFFIN_CAP_OPEN", + 0x2056 : "NA_SE_EV_COFFIN_CAP_BOUND", + 0x2057 : "NA_SE_EV_WIND_TRAP", + 0x2058 : "NA_SE_EV_TRAP_OBJ_SLIDE", + 0x2059 : "NA_SE_EV_METALDOOR_OPEN", + 0x205A : "NA_SE_EV_METALDOOR_CLOSE", + 0x205B : "NA_SE_EV_BURN_OUT", + 0x205C : "NA_SE_EV_BLOCKSINK", + 0x205D : "NA_SE_EV_CROWD", + 0x205E : "NA_SE_EV_WATER_LEVEL_DOWN", + 0x205F : "NA_SE_EV_NAVY_VANISH", + 0x2060 : "NA_SE_EV_LADDER_DOUND", + 0x2061 : "NA_SE_EV_WEB_VIBRATION", + 0x2062 : "NA_SE_EV_WEB_BROKEN", + 0x2063 : "NA_SE_EV_ROLL_STAND", + 0x2064 : "NA_SE_EV_BUYODOOR_OPEN", + 0x2065 : "NA_SE_EV_BUYODOOR_CLOSE", + 0x2066 : "NA_SE_EV_WOODDOOR_OPEN", + 0x2067 : "NA_SE_EV_METALGATE_OPEN", + 0x2068 : "NA_SE_IT_SCOOP_UP_WATER", + 0x2069 : "NA_SE_EV_FISH_LEAP", + 0x206A : "NA_SE_EV_KAKASHI_SWING", + 0x206B : "NA_SE_EV_KAKASHI_ROLL", + 0x206C : "NA_SE_EV_BOTTLE_CAP_OPEN", + 0x206D : "NA_SE_EV_JABJAB_BREATHE", + 0x206E : "NA_SE_EV_SPIRIT_STONE", + 0x206F : "NA_SE_EV_TRIFORCE_FLASH", + 0x2070 : "NA_SE_EV_FALL_DOWN_DIRT", + 0x2071 : "NA_SE_EV_NAVY_FLY", + 0x2072 : "NA_SE_EV_NAVY_CRASH", + 0x2073 : "NA_SE_EV_WOOD_HIT", + 0x2074 : "NA_SE_EV_SCOOPUP_WATER", + 0x2075 : "NA_SE_EV_DROP_FALL", + 0x2076 : "NA_SE_EV_WOOD_GEAR", + 0x2077 : "NA_SE_EV_TREE_SWING", + 0x2078 : "NA_SE_EV_HORSE_RUN_LEVEL", + 0x2079 : "NA_SE_EV_ELEVATOR_MOVE2", + 0x207A : "NA_SE_EV_ELEVATOR_STOP", + 0x207B : "NA_SE_EV_TRE_BOX_APPEAR", + 0x207C : "NA_SE_EV_CHAIN_KEY_UNLOCK", + 0x207D : "NA_SE_EV_SPINE_TRAP_MOVE", + 0x207E : "NA_SE_EV_HEALING", + 0x207F : "NA_SE_EV_GREAT_FAIRY_APPEAR", + 0x2080 : "NA_SE_EV_GREAT_FAIRY_VANISH", + 0x2081 : "NA_SE_EV_RED_EYE", + 0x2082 : "NA_SE_EV_ROLL_STAND_2", + 0x2083 : "NA_SE_EV_WALL_SLIDE", + 0x2084 : "NA_SE_EV_TRE_BOX_FLASH", + 0x2085 : "NA_SE_EV_WINDMILL_LEVEL", + 0x2086 : "NA_SE_EV_GOTO_HEAVEN", + 0x2087 : "NA_SE_EV_POT_BROKEN", + 0x2088 : "NA_SE_PL_PUT_DOWN_POT", + 0x2089 : "NA_SE_EV_DIVE_INTO_WATER", + 0x208A : "NA_SE_EV_JUMP_OUT_WATER", + 0x208B : "NA_SE_EV_GOD_FLYING", + 0x208C : "NA_SE_EV_TRIFORCE", + 0x208D : "NA_SE_EV_AURORA", + 0x208E : "NA_SE_EV_DEKU_DEATH", + 0x208F : "NA_SE_EV_BUYOSTAND_RISING", + 0x2090 : "NA_SE_EV_BUYOSTAND_FALL", + 0x2091 : "NA_SE_EV_BUYOSHUTTER_OPEN", + 0x2092 : "NA_SE_EV_BUYOSHUTTER_CLOSE", + 0x2093 : "NA_SE_EV_STONEDOOR_STOP", + 0x2094 : "NA_SE_EV_S_STONE_REVIVAL", + 0x2095 : "NA_SE_EV_MEDAL_APPEAR_S", + 0x2096 : "NA_SE_EV_HUMAN_BOUND", + 0x2097 : "NA_SE_EV_MEDAL_APPEAR_L", + 0x2098 : "NA_SE_EV_EARTHQUAKE", + 0x2099 : "NA_SE_EV_SHUT_BY_CRYSTAL", + 0x209A : "NA_SE_EV_GOD_LIGHTBALL_2", + 0x209B : "NA_SE_EV_RUN_AROUND", + 0x209C : "NA_SE_EV_CONSENTRATION", + 0x209D : "NA_SE_EV_TIMETRIP_LIGHT", + 0x209E : "NA_SE_EV_BUYOSTAND_STOP_A", + 0x209F : "NA_SE_EV_BUYOSTAND_STOP_U", + 0x20A0 : "NA_SE_EV_OBJECT_FALL", + 0x20A1 : "NA_SE_EV_JUMP_CONC", + 0x20A2 : "NA_SE_EV_ICE_MELT", + 0x20A3 : "NA_SE_EV_FIRE_PILLAR_S", + 0x20A4 : "NA_SE_EV_BLOCK_RISING", + 0x20A5 : "NA_SE_EV_NABALL_VANISH", + 0x20A6 : "NA_SE_EV_SARIA_MELODY", + 0x20A7 : "NA_SE_EV_LINK_WARP_OUT", + 0x20A8 : "NA_SE_EV_FIATY_HEAL", + 0x20A9 : "NA_SE_EV_CHAIN_KEY_UNLOCK_B", + 0x20AA : "NA_SE_EV_WOODBOX_BREAK", + 0x20AB : "NA_SE_EV_PUT_DOWN_WOODBOX", + 0x20AC : "NA_SE_EV_LAND_DIRT", + 0x20AD : "NA_SE_EV_FLOOR_ROLLING", + 0x20AE : "NA_SE_EV_DOG_CRY_EVENING", + 0x20AF : "NA_SE_EV_JABJAB_HICCUP", + 0x20B0 : "NA_SE_EV_NALE_MAGIC", + 0x20B1 : "NA_SE_EV_FROG_JUMP", + 0x20B2 : "NA_SE_EV_ICE_FREEZE", + 0x20B3 : "NA_SE_EV_BURNING", + 0x20B4 : "NA_SE_EV_WOODPLATE_BOUND", + 0x20B5 : "NA_SE_EV_GORON_WATER_DROP", + 0x20B6 : "NA_SE_EV_JABJAB_GROAN", + 0x20B7 : "NA_SE_EV_DARUMA_VANISH", + 0x20B8 : "NA_SE_EV_BIGBALL_ROLL", + 0x20B9 : "NA_SE_EV_ELEVATOR_MOVE3", + 0x20BA : "NA_SE_EV_DIAMOND_SWITCH", + 0x20BB : "NA_SE_EV_FLAME_OF_FIRE", + 0x20BC : "NA_SE_EV_RAINBOW_SHOWER", + 0x20BD : "NA_SE_EV_FLYING_AIR", + 0x20BE : "NA_SE_EV_PASS_AIR", + 0x20BF : "NA_SE_EV_COME_UP_DEKU_JR", + 0x20C0 : "NA_SE_EV_SAND_STORM", + 0x20C1 : "NA_SE_EV_TRIFORCE_MARK", + 0x20C2 : "NA_SE_EV_GRAVE_EXPLOSION", + 0x20C3 : "NA_SE_EV_LURE_MOVE_W", + 0x20C4 : "NA_SE_EV_POT_MOVE_START", + 0x20C5 : "NA_SE_EV_DIVE_INTO_WATER_L", + 0x20C6 : "NA_SE_EV_OUT_OF_WATER_L", + 0x20C7 : "NA_SE_EV_GANON_MANTLE", + 0x20C8 : "NA_SE_EV_DIG_UP", + 0x20C9 : "NA_SE_EV_WOOD_BOUND", + 0x20CA : "NA_SE_EV_WATER_BUBBLE", + 0x20CB : "NA_SE_EV_ICE_BROKEN", + 0x20CC : "NA_SE_EV_FROG_GROW_UP", + 0x20CD : "NA_SE_EV_WATER_CONVECTION", + 0x20CE : "NA_SE_EV_GROUND_GATE_OPEN", + 0x20CF : "NA_SE_EV_FACE_BREAKDOWN", + 0x20D0 : "NA_SE_EV_FACE_EXPLOSION", + 0x20D1 : "NA_SE_EV_FACE_CRUMBLE_SLOW", + 0x20D2 : "NA_SE_EV_ROUND_TRAP_MOVE", + 0x20D3 : "NA_SE_EV_HIT_SOUND", + 0x20D4 : "NA_SE_EV_ICE_SWING", + 0x20D5 : "NA_SE_EV_DOWN_TO_GROUND", + 0x20D6 : "NA_SE_EV_KENJA_ENVIROMENT_0", + 0x20D7 : "NA_SE_EV_KENJA_ENVIROMENT_1", + 0x20D8 : "NA_SE_EV_SMALL_DOG_BARK", + 0x20D9 : "NA_SE_EV_ZELDA_POWER", + 0x20DA : "NA_SE_EV_RAIN", + 0x20DB : "NA_SE_EV_IRON_DOOR_OPEN", + 0x20DC : "NA_SE_EV_IRON_DOOR_CLOSE", + 0x20DD : "NA_SE_EV_WHIRLPOOL", + 0x20DE : "NA_SE_EV_TOWER_PARTS_BROKEN", + 0x20DF : "NA_SE_EV_COW_CRY", + 0x20E0 : "NA_SE_EV_METAL_BOX_BOUND", + 0x20E1 : "NA_SE_EV_ELECTRIC_EXPLOSION", + 0x20E2 : "NA_SE_EV_HEAVY_THROW", + 0x20E3 : "NA_SE_EV_FROG_CRY_0", + 0x20E4 : "NA_SE_EV_FROG_CRY_1", + 0x20E5 : "NA_SE_EV_COW_CRY_LV", + 0x20E6 : "NA_SE_EV_RONRON_DOOR_CLOSE", + 0x20E7 : "NA_SE_EV_BUTTERFRY_TO_FAIRY", + 0x20E8 : "NA_SE_EV_FIVE_COUNT_LUPY", + 0x20E9 : "NA_SE_EV_STONE_GROW_UP", + 0x20EA : "NA_SE_EV_STONE_LAUNCH", + 0x20EB : "NA_SE_EV_STONE_ROLLING", + 0x20EC : "NA_SE_EV_TOGE_STICK_ROLLING", + 0x20ED : "NA_SE_EV_TOWER_ENERGY", + 0x20EE : "NA_SE_EV_TOWER_BARRIER", + 0x20EF : "NA_SE_EV_CHIBI_WALK", + 0x20F0 : "NA_SE_EV_KNIGHT_WALK", + 0x20F1 : "NA_SE_EV_PILLAR_MOVE_STOP", + 0x20F2 : "NA_SE_EV_ERUPTION_CLOUD", + 0x20F3 : "NA_SE_EV_LINK_WARP_OUT_LV", + 0x20F4 : "NA_SE_EV_LINK_WARP_IN", + 0x20F5 : "NA_SE_EV_OCARINA_BMELO_0", + 0x20F6 : "NA_SE_EV_OCARINA_BMELO_1", + 0x20F7 : "NA_SE_EV_EXPLOSION_FOR_RENZOKU", + 0x3000 : "NA_SE_EN_DODO_J_WALK", + 0x3001 : "NA_SE_EN_DODO_J_CRY", + 0x3002 : "NA_SE_EN_DODO_J_FIRE", + 0x3003 : "NA_SE_EN_DODO_J_DAMAGE", + 0x3004 : "NA_SE_EN_DODO_J_DEAD", + 0x3005 : "NA_SE_EN_DODO_K_CRY", + 0x3006 : "NA_SE_EN_DODO_K_DAMAGE", + 0x3007 : "NA_SE_EN_DODO_K_DEAD", + 0x3008 : "NA_SE_EN_DODO_K_WALK", + 0x3009 : "NA_SE_EN_DODO_K_FIRE", + 0x300A : "NA_SE_EN_GOMA_WALK", + 0x300B : "NA_SE_EN_GOMA_HIGH", + 0x300C : "NA_SE_EN_GOMA_CLIM", + 0x300D : "NA_SE_EN_GOMA_DOWN", + 0x300E : "NA_SE_EN_GOMA_CRY1", + 0x300F : "NA_SE_EN_GOMA_CRY2", + 0x3010 : "NA_SE_EN_GOMA_DAM1", + 0x3011 : "NA_SE_EN_GOMA_DAM2", + 0x3012 : "NA_SE_EN_GOMA_DEAD", + 0x3013 : "NA_SE_EN_GOMA_UNARI", + 0x3014 : "NA_SE_EN_GOMA_BJR_EGG1", + 0x3015 : "NA_SE_EN_GOMA_BJR_EGG2", + 0x3016 : "NA_SE_EN_GOMA_BJR_WALK", + 0x3017 : "NA_SE_EN_GOMA_BJR_CRY", + 0x3018 : "NA_SE_EN_GOMA_BJR_DAM1", + 0x3019 : "NA_SE_EN_GOMA_BJR_DAM2", + 0x301A : "NA_SE_EN_GOMA_BJR_DEAD", + 0x301B : "NA_SE_EN_GOMA_DEMO_EYE", + 0x301C : "NA_SE_EN_GOMA_LAST", + 0x301D : "NA_SE_EN_GOMA_UNARI2", + 0x301E : "NA_SE_EN_GOMA_FAINT", + 0x301F : "NA_SE_EN_GOMA_BJR_FREEZE", + 0x3020 : "NA_SE_EN_DODO_M_CRY", + 0x3021 : "NA_SE_EN_DODO_M_DEAD", + 0x3022 : "NA_SE_EN_DODO_M_MOVE", + 0x3023 : "NA_SE_EN_DODO_M_DOWN", + 0x3024 : "NA_SE_EN_DODO_M_UP", + 0x3025 : "NA_SE_EN_GANON_THROW_MASIC", + 0x3026 : "NA_SE_EN_DODO_M_EAT", + 0x3027 : "NA_SE_EN_GANON_DD_THUNDER", + 0x3028 : "NA_SE_EN_RIZA_ONGND", + 0x3029 : "NA_SE_EN_RIZA_CRY", + 0x302A : "NA_SE_EN_RIZA_ATTACK", + 0x302B : "NA_SE_EN_RIZA_DAMAGE", + 0x302C : "NA_SE_EN_RIZA_WARAU", + 0x302D : "NA_SE_EN_RIZA_DEAD", + 0x302E : "NA_SE_EN_RIZA_WALK", + 0x302F : "NA_SE_EN_RIZA_JUMP", + 0x3030 : "NA_SE_EN_STALKID_WALK", + 0x3031 : "NA_SE_EN_STALKID_ATTACK", + 0x3032 : "NA_SE_EN_STALKID_DAMAGE", + 0x3033 : "NA_SE_EN_STALKID_DEAD", + 0x3034 : "NA_SE_EN_FLOORMASTER_SLIDING", + 0x3035 : "NA_SE_EN_TEKU_WALK_WATER", + 0x3036 : "NA_SE_EN_LIGHT_ARROW_HIT", + 0x3037 : "NA_SE_EN_TUBOOCK_FLY", + 0x3038 : "NA_SE_EN_STAL_WARAU", + 0x3039 : "NA_SE_EN_STAL_SAKEBI", + 0x303A : "NA_SE_EN_STAL_DAMAGE", + 0x303B : "NA_SE_EN_STAL_DEAD", + 0x303C : "NA_SE_EN_WOLFOS_APPEAR", + 0x303D : "NA_SE_EN_STAL_WALK", + 0x303E : "NA_SE_EN_WOLFOS_CRY", + 0x303F : "NA_SE_EN_WOLFOS_ATTACK", + 0x3040 : "NA_SE_EN_FFLY_ATTACK", + 0x3041 : "NA_SE_EN_FFLY_FLY", + 0x3042 : "NA_SE_EN_FFLY_DEAD", + 0x3043 : "NA_SE_EN_WOLFOS_DAMAGE", + 0x3044 : "NA_SE_EN_AMOS_WALK", + 0x3045 : "NA_SE_EN_AMOS_WAVE", + 0x3046 : "NA_SE_EN_AMOS_DEAD", + 0x3047 : "NA_SE_EN_AMOS_DAMAGE", + 0x3048 : "NA_SE_EN_AMOS_VOICE", + 0x3049 : "NA_SE_EN_SHELL_MOUTH", + 0x304A : "NA_SE_EN_SHELL_DEAD", + 0x304B : "NA_SE_EN_WOLFOS_DEAD", + 0x304C : "NA_SE_EN_DODO_K_COLI", + 0x304D : "NA_SE_EN_DODO_K_COLI2", + 0x304E : "NA_SE_EN_DODO_K_ROLL", + 0x304F : "NA_SE_EN_DODO_K_BREATH", + 0x3050 : "NA_SE_EN_DODO_K_DRINK", + 0x3051 : "NA_SE_EN_DODO_K_DOWN", + 0x3052 : "NA_SE_EN_DODO_K_OTAKEBI", + 0x3053 : "NA_SE_EN_DODO_K_END", + 0x3054 : "NA_SE_EN_DODO_K_LAST", + 0x3055 : "NA_SE_EN_DODO_K_LAVA", + 0x3056 : "NA_SE_EN_GANON_FLOAT", + 0x3057 : "NA_SE_EN_GANON_DARKWAVE_M", + 0x3058 : "NA_SE_EN_DODO_J_BREATH", + 0x3059 : "NA_SE_EN_DODO_J_TAIL", + 0x305A : "NA_SE_EN_WOLFOS_WALK", + 0x305B : "NA_SE_EN_DODO_J_EAT", + 0x305C : "NA_SE_EN_DEKU_MOUTH", + 0x305D : "NA_SE_EN_DEKU_ATTACK", + 0x305E : "NA_SE_EN_DEKU_DAMAGE", + 0x305F : "NA_SE_EN_DEKU_DEAD", + 0x3060 : "NA_SE_EN_DEKU_JR_MOUTH", + 0x3061 : "NA_SE_EN_DEKU_JR_ATTACK", + 0x3062 : "NA_SE_EN_DEKU_JR_DEAD", + 0x3063 : "NA_SE_EN_DEKU_SCRAPE", + 0x3064 : "NA_SE_EN_TAIL_FLY", + 0x3065 : "NA_SE_EN_TAIL_CRY", + 0x3066 : "NA_SE_EN_TAIL_DEAD", + 0x3067 : "NA_SE_EN_GANON_SPARK", + 0x3068 : "NA_SE_EN_STALTU_DOWN", + 0x3069 : "NA_SE_EN_STALTU_UP", + 0x306A : "NA_SE_EN_STALTU_LAUGH", + 0x306B : "NA_SE_EN_STALTU_DAMAGE", + 0x306C : "NA_SE_EN_STAL_JUMP", + 0x306D : "NA_SE_EN_TEKU_DAMAGE", + 0x306E : "NA_SE_EN_TEKU_DEAD", + 0x306F : "NA_SE_EN_TEKU_WALK", + 0x3070 : "NA_SE_EN_PO_KANTERA", + 0x3071 : "NA_SE_EN_PO_FLY", + 0x3072 : "NA_SE_EN_PO_AWAY", + 0x3073 : "NA_SE_EN_PO_APPEAR", + 0x3074 : "NA_SE_EN_PO_DISAPPEAR", + 0x3075 : "NA_SE_EN_PO_DAMAGE", + 0x3076 : "NA_SE_EN_PO_DEAD", + 0x3077 : "NA_SE_EN_PO_DEAD2", + 0x3078 : "NA_SE_EN_EXTINCT", + 0x3079 : "NA_SE_EN_GOLON_LAND_BIG", + 0x307A : "NA_SE_EN_RIZA_DOWN", + 0x307B : "NA_SE_EN_DODO_M_GND", + 0x307C : "NA_SE_EN_NUTS_UP", + 0x307D : "NA_SE_EN_NUTS_DOWN", + 0x307E : "NA_SE_EN_NUTS_THROW", + 0x307F : "NA_SE_EN_NUTS_WALK", + 0x3080 : "NA_SE_EN_NUTS_DAMAGE", + 0x3081 : "NA_SE_EN_NUTS_DEAD", + 0x3082 : "NA_SE_EN_NUTS_FAINT", + 0x3083 : "NA_SE_EN_PO_BIG_GET", + 0x3084 : "NA_SE_EN_STALTU_ROLL", + 0x3085 : "NA_SE_EN_STALWALL_DEAD", + 0x3086 : "NA_SE_EN_PO_SISTER_DEAD", + 0x3087 : "NA_SE_EN_BARI_SPLIT", + 0x3088 : "NA_SE_EN_TEKU_REVERSE", + 0x3089 : "NA_SE_EN_VALVAISA_LAND2", + 0x308A : "NA_SE_EN_TEKU_LAND_WATER", + 0x308B : "NA_SE_EN_LAST_DAMAGE", + 0x308C : "NA_SE_EN_STALWALL_ROLL", + 0x308D : "NA_SE_EN_STALWALL_DASH", + 0x308E : "NA_SE_EN_TEKU_JUMP_WATER", + 0x308F : "NA_SE_EN_TEKU_LAND_WATER2", + 0x3090 : "NA_SE_EN_FALL_AIM", + 0x3091 : "NA_SE_EN_FALL_UP", + 0x3092 : "NA_SE_EN_FALL_CATCH", + 0x3093 : "NA_SE_EN_FALL_LAND", + 0x3094 : "NA_SE_EN_FALL_WALK", + 0x3095 : "NA_SE_EN_FALL_DAMAGE", + 0x3096 : "NA_SE_EN_FALL_DEAD", + 0x3097 : "NA_SE_EN_KAICHO_FLUTTER", + 0x3098 : "NA_SE_EN_BIRI_FLY", + 0x3099 : "NA_SE_EN_BIRI_JUMP", + 0x309A : "NA_SE_EN_BIRI_SPARK", + 0x309B : "NA_SE_EN_BIRI_DEAD", + 0x309C : "NA_SE_EN_BIRI_BUBLE", + 0x309D : "NA_SE_EN_BARI_ROLL", + 0x309E : "NA_SE_EN_GOMA_JR_FREEZE", + 0x309F : "NA_SE_EN_BARI_DEAD", + 0x30A0 : "NA_SE_EN_GANON_FIRE", + 0x30A1 : "NA_SE_EN_FANTOM_TRANSFORM", + 0x30A2 : "NA_SE_EN_FANTOM_THUNDER", + 0x30A3 : "NA_SE_EN_FANTOM_SPARK", + 0x30A4 : "NA_SE_EN_FANTOM_FLOAT", + 0x30A5 : "NA_SE_EN_FANTOM_MASIC1", + 0x30A6 : "NA_SE_EN_FANTOM_MASIC2", + 0x30A7 : "NA_SE_EN_FANTOM_FIRE", + 0x30A8 : "NA_SE_EN_FANTOM_HIT_THUNDER", + 0x30A9 : "NA_SE_EN_FANTOM_ATTACK", + 0x30AA : "NA_SE_EN_FANTOM_STICK", + 0x30AB : "NA_SE_EN_FANTOM_EYE", + 0x30AC : "NA_SE_EN_FANTOM_LAST", + 0x30AD : "NA_SE_EN_FANTOM_THUNDER_GND", + 0x30AE : "NA_SE_EN_FANTOM_DAMAGE", + 0x30AF : "NA_SE_EN_FANTOM_DEAD", + 0x30B0 : "NA_SE_EN_FANTOM_LAUGH", + 0x30B1 : "NA_SE_EN_FANTOM_DAMAGE2", + 0x30B2 : "NA_SE_EN_FANTOM_VOICE", + 0x30B3 : "NA_SE_EN_KAICHO_DAMAGE", + 0x30B4 : "NA_SE_EN_GANON_ATTACK_DEMO", + 0x30B5 : "NA_SE_EN_GANON_FIRE_DEMO", + 0x30B6 : "NA_SE_EN_KAICHO_CRY", + 0x30B7 : "NA_SE_EN_KAICHO_ATTACK", + 0x30B8 : "NA_SE_EN_MORIBLIN_WALK", + 0x30B9 : "NA_SE_EN_MORIBLIN_SLIDE", + 0x30BA : "NA_SE_EN_MORIBLIN_ATTACK", + 0x30BB : "NA_SE_EN_MORIBLIN_VOICE", + 0x30BC : "NA_SE_EN_MORIBLIN_SPEAR_AT", + 0x30BD : "NA_SE_EN_MORIBLIN_SPEAR_NORM", + 0x30BE : "NA_SE_EN_MORIBLIN_DEAD", + 0x30BF : "NA_SE_EN_MORIBLIN_DASH", + 0x30C0 : "NA_SE_EN_OCTAROCK_ROCK", + 0x30C1 : "NA_SE_EN_OCTAROCK_FLOAT", + 0x30C2 : "NA_SE_EN_OCTAROCK_JUMP", + 0x30C3 : "NA_SE_EN_OCTAROCK_LAND", + 0x30C4 : "NA_SE_EN_OCTAROCK_SINK", + 0x30C5 : "NA_SE_EN_OCTAROCK_BUBLE", + 0x30C6 : "NA_SE_EN_OCTAROCK_DEAD1", + 0x30C7 : "NA_SE_EN_OCTAROCK_DEAD2", + 0x30C8 : "NA_SE_EN_BUBLE_WING", + 0x30C9 : "NA_SE_EN_BUBLE_MOUTH", + 0x30CA : "NA_SE_EN_BUBLE_LAUGH", + 0x30CB : "NA_SE_EN_BUBLE_BITE", + 0x30CC : "NA_SE_EN_BUBLE_UP", + 0x30CD : "NA_SE_EN_BUBLE_DOWN", + 0x30CE : "NA_SE_EN_BUBLE_DEAD", + 0x30CF : "NA_SE_EN_BUBLEFALL_FIRE", + 0x30D0 : "NA_SE_EN_VALVAISA_APPEAR", + 0x30D1 : "NA_SE_EN_VALVAISA_ROAR", + 0x30D2 : "NA_SE_EN_VALVAISA_MAHI1", + 0x30D3 : "NA_SE_EN_VALVAISA_MAHI2", + 0x30D4 : "NA_SE_EN_VALVAISA_KNOCKOUT", + 0x30D5 : "NA_SE_EN_VALVAISA_DAMAGE1", + 0x30D6 : "NA_SE_EN_VALVAISA_DAMAGE2", + 0x30D7 : "NA_SE_EN_VALVAISA_ROCK", + 0x30D8 : "NA_SE_EN_VALVAISA_SW_NAIL", + 0x30D9 : "NA_SE_EN_VALVAISA_DEAD", + 0x30DA : "NA_SE_EN_VALVAISA_BURN", + 0x30DB : "NA_SE_EN_VALVAISA_FIRE", + 0x30DC : "NA_SE_EN_BARI_DAMAGE", + 0x30DD : "NA_SE_EN_MOFER_CORE_LAND", + 0x30DE : "NA_SE_EN_MOFER_CORE_MOVE_WT", + 0x30DF : "NA_SE_EN_MOFER_CORE_SMJUMP", + 0x30E0 : "NA_SE_EN_MONBLIN_GNDWAVE", + 0x30E1 : "NA_SE_EN_MONBLIN_HAM_DOWN", + 0x30E2 : "NA_SE_EN_MONBLIN_HAM_UP", + 0x30E3 : "NA_SE_EN_BUBLE_DAMAGE", + 0x30E4 : "NA_SE_EN_REDEAD_CRY", + 0x30E5 : "NA_SE_EN_REDEAD_AIM", + 0x30E6 : "NA_SE_EN_REDEAD_DAMAGE", + 0x30E7 : "NA_SE_EN_REDEAD_DEAD", + 0x30E8 : "NA_SE_EN_REDEAD_ATTACK", + 0x30E9 : "NA_SE_EN_NYU_MOVE", + 0x30EA : "NA_SE_EN_NYU_HIT_STOP", + 0x30EB : "NA_SE_EN_KAICHO_DEAD", + 0x30EC : "NA_SE_EN_PO_LAUGH", + 0x30ED : "NA_SE_EN_PO_CRY", + 0x30EE : "NA_SE_EN_PO_ROLL", + 0x30EF : "NA_SE_EN_PO_LAUGH2", + 0x30F0 : "NA_SE_EN_MOFER_APPEAR", + 0x30F1 : "NA_SE_EN_MOFER_ATTACK", + 0x30F2 : "NA_SE_EN_MOFER_WAVE", + 0x30F3 : "NA_SE_EN_MOFER_CATCH", + 0x30F4 : "NA_SE_EN_MOFER_CUT", + 0x30F5 : "NA_SE_EN_MOFER_MOVE_DEMO", + 0x30F6 : "NA_SE_EN_MOFER_BUBLE_DEMO", + 0x30F7 : "NA_SE_EN_MOFER_CORE_JUMP", + 0x30F8 : "NA_SE_EN_MOFER_DEAD", + 0x30F9 : "NA_SE_EN_MOFER_LASTVOICE", + 0x30FA : "NA_SE_EN_MOFER_CORE_ROLL", + 0x30FB : "NA_SE_EN_MOFER_CORE_FLY", + 0x30FC : "NA_SE_EN_GOLON_WAKE_UP", + 0x30FD : "NA_SE_EN_GOLON_SIT_DOWN", + 0x30FE : "NA_SE_EN_CHICKEN_FLUTTER", + 0x30FF : "NA_SE_EN_DEKU_WAKEUP", + 0x3100 : "NA_SE_EN_DEADHAND_BITE", + 0x3101 : "NA_SE_EN_DEADHAND_WALK", + 0x3102 : "NA_SE_EN_DEADHAND_GRIP", + 0x3103 : "NA_SE_EN_DEADHAND_HAND_AT", + 0x3104 : "NA_SE_EN_DAIOCTA_MAHI", + 0x3105 : "NA_SE_EN_DAIOCTA_SPLASH", + 0x3106 : "NA_SE_EN_DAIOCTA_VOICE", + 0x3107 : "NA_SE_EN_DAIOCTA_DAMAGE", + 0x3108 : "NA_SE_EN_DAIOCTA_SINK", + 0x3109 : "NA_SE_EN_DAIOCTA_DEAD", + 0x310A : "NA_SE_EN_DAIOCTA_DEAD2", + 0x310B : "NA_SE_EN_GANON_HIT_THUNDER", + 0x310C : "NA_SE_EN_TWINROBA_APPEAR_MS", + 0x310D : "NA_SE_EN_TWINROBA_TRANSFORM", + 0x310E : "NA_SE_EN_TWINROBA_MS_FIRE", + 0x310F : "NA_SE_EN_TWINROBA_FIRE_EXP", + 0x3110 : "NA_SE_EN_TWINROBA_POWERUP", + 0x3111 : "NA_SE_EN_TWINROBA_SHOOT_FREEZE", + 0x3112 : "NA_SE_EN_TWINROBA_MS_FREEZE", + 0x3113 : "NA_SE_EN_TWINROBA_MASIC_SET", + 0x3114 : "NA_SE_EN_TWINROBA_CUTBODY", + 0x3115 : "NA_SE_EN_GANON_HIT_GND_IMP", + 0x3116 : "NA_SE_EN_TWINROBA_DAMAGE_VOICE", + 0x3117 : "NA_SE_EN_TWINROBA_REFL_FIRE", + 0x3118 : "NA_SE_EN_TWINROBA_REFL_FREEZE", + 0x3119 : "NA_SE_EN_GANON_CUTBODY", + 0x311A : "NA_SE_EN_TWINROBA_YOUNG_DAMAGE", + 0x311B : "NA_SE_EN_TWINROBA_YOUNG_DEAD", + 0x311C : "NA_SE_EN_GOLON_EYE_BIG", + 0x311D : "NA_SE_EN_GOLON_GOOD_BIG", + 0x311E : "NA_SE_EN_TWINROBA_FB_FLY", + 0x311F : "NA_SE_EN_TWINROBA_FLY", + 0x3120 : "NA_SE_EN_TWINROBA_UNARI", + 0x3121 : "NA_SE_EN_TWINROBA_ROLL", + 0x3122 : "NA_SE_EN_TWINROBA_SHOOT_FIRE", + 0x3123 : "NA_SE_EN_TWINROBA_THROW_MASIC", + 0x3124 : "NA_SE_EN_DARUNIA_HIT_BREAST", + 0x3125 : "NA_SE_EN_DARUNIA_HIT_LINK", + 0x3126 : "NA_SE_EN_OWL_FLUTTER", + 0x3127 : "NA_SE_EN_VALVAISA_LAND", + 0x3128 : "NA_SE_EN_IRONNACK_WALK", + 0x3129 : "NA_SE_EN_IRONNACK_SWING_AXE", + 0x312A : "NA_SE_EN_IRONNACK_ARMOR_DEMO", + 0x312B : "NA_SE_EN_IRONNACK_STAGGER_DEMO", + 0x312C : "NA_SE_EN_IRONNACK_ARMOR_OFF_DEMO", + 0x312D : "NA_SE_EN_IRONNACK_ARMOR_LAND1_DEMO", + 0x312E : "NA_SE_EN_IRONNACK_ARMOR_LAND2_DEMO", + 0x312F : "NA_SE_EN_IRONNACK_ARMOR_LAND3_DEMO", + 0x3130 : "NA_SE_EN_FLOORMASTER_ATTACK", + 0x3131 : "NA_SE_EN_FLOORMASTER_SM_WALK", + 0x3132 : "NA_SE_EN_FLOORMASTER_SM_DEAD", + 0x3133 : "NA_SE_EN_FLOORMASTER_RESTORE", + 0x3134 : "NA_SE_EN_FLOORMASTER_EXPAND", + 0x3135 : "NA_SE_EN_FLOORMASTER_SPLIT", + 0x3136 : "NA_SE_EN_FLOORMASTER_SM_STICK", + 0x3137 : "NA_SE_EN_FLOORMASTER_SM_LAND", + 0x3138 : "NA_SE_EN_IRONNACK_WAVE_DEMO", + 0x3139 : "NA_SE_EN_IRONNACK_FINGER_DEMO", + 0x313A : "NA_SE_EN_IRONNACK_ARMOR_HIT", + 0x313B : "NA_SE_EN_NUTS_CUTBODY", + 0x313C : "NA_SE_EN_BALINADE_LEVEL", + 0x313D : "NA_SE_EN_BALINADE_DAMAGE", + 0x313E : "NA_SE_EN_BALINADE_FAINT", + 0x313F : "NA_SE_EN_BALINADE_BREAK", + 0x3140 : "NA_SE_EN_BALINADE_DEAD", + 0x3141 : "NA_SE_EN_BALINADE_STICK", + 0x3142 : "NA_SE_EN_BALINADE_THUNDER", + 0x3143 : "NA_SE_EN_BALINADE_BL_SPARK", + 0x3144 : "NA_SE_EN_BALINADE_BL_DEAD", + 0x3145 : "NA_SE_EN_BALINADE_BREAK2", + 0x3146 : "NA_SE_EN_BALINADE_HIT_RINK", + 0x3147 : "NA_SE_EN_GANON_WAVE_GND", + 0x3148 : "NA_SE_EN_AWA_BOUND", + 0x3149 : "NA_SE_EN_AWA_BREAK", + 0x314A : "NA_SE_EN_BROB_WAVE", + 0x314B : "NA_SE_EN_NYU_DEAD", + 0x314C : "NA_SE_EN_EIER_DAMAGE", + 0x314D : "NA_SE_EN_EIER_DEAD", + 0x314E : "NA_SE_EN_EIER_FLUTTER", + 0x314F : "NA_SE_EN_EIER_FLY", + 0x3150 : "NA_SE_EN_SHADEST_TAIKO_LOW", + 0x3151 : "NA_SE_EN_SHADEST_TAIKO_HIGH", + 0x3152 : "NA_SE_EN_SHADEST_CLAP", + 0x3153 : "NA_SE_EN_SHADEST_FLY_ATTACK", + 0x3154 : "NA_SE_EN_PIHAT_UP", + 0x3155 : "NA_SE_EN_PIHAT_FLY", + 0x3156 : "NA_SE_EN_PIHAT_DAMAGE", + 0x3157 : "NA_SE_EN_PIHAT_LAND", + 0x3158 : "NA_SE_EN_BALINADE_HAND_DOWN", + 0x3159 : "NA_SE_EN_BALINADE_HAND_UP", + 0x315A : "NA_SE_EN_BALINADE_HAND_DAMAGE", + 0x315B : "NA_SE_EN_BALINADE_HAND_DEAD", + 0x315C : "NA_SE_EN_GOMA_JR_WALK", + 0x315D : "NA_SE_EN_GOMA_JR_CRY", + 0x315E : "NA_SE_EN_GOMA_JR_DAM1", + 0x315F : "NA_SE_EN_GOMA_JR_DAM2", + 0x3160 : "NA_SE_EN_GOMA_JR_DEAD", + 0x3161 : "NA_SE_EN_GOMA_EGG1", + 0x3162 : "NA_SE_EN_GOMA_EGG2", + 0x3163 : "NA_SE_EN_GANON_BODY_SPARK", + 0x3164 : "NA_SE_EN_SHADEST_HAND_WAVE", + 0x3165 : "NA_SE_EN_SHADEST_CATCH", + 0x3166 : "NA_SE_EN_SHADEST_LAND", + 0x3167 : "NA_SE_EN_SHADEST_HAND_FLY", + 0x3168 : "NA_SE_EN_SHADEST_SHAKEHAND", + 0x3169 : "NA_SE_EN_SHADEST_DAMAGE", + 0x316A : "NA_SE_EN_SHADEST_DAMAGE_HAND", + 0x316B : "NA_SE_EN_SHADEST_DISAPPEAR", + 0x316C : "NA_SE_EN_GANON_CHARGE_MASIC", + 0x316D : "NA_SE_EN_GANON_THROW_BIG", + 0x316E : "NA_SE_EN_SHADEST_FREEZE", + 0x316F : "NA_SE_EN_SHADEST_DEAD", + 0x3170 : "NA_SE_EN_BIMOS_ROLL_HEAD", + 0x3171 : "NA_SE_EN_BIMOS_LAZER", + 0x3172 : "NA_SE_EN_BIMOS_LAZER_GND", + 0x3173 : "NA_SE_EN_BIMOS_AIM", + 0x3174 : "NA_SE_EN_BUBLEWALK_WALK", + 0x3175 : "NA_SE_EN_BUBLEWALK_AIM", + 0x3176 : "NA_SE_EN_BUBLEWALK_REVERSE", + 0x3177 : "NA_SE_EN_BUBLEWALK_DAMAGE", + 0x3178 : "NA_SE_EN_BUBLEWALK_DEAD", + 0x3179 : "NA_SE_EN_YUKABYUN_FLY", + 0x317A : "NA_SE_EN_FLAME_DAMAGE", + 0x317B : "NA_SE_EN_TWINROBA_FLY_DEMO", + 0x317C : "NA_SE_EN_FLAME_KICK", + 0x317D : "NA_SE_EN_FLAME_RUN", + 0x317E : "NA_SE_EN_FLAME_ROLL", + 0x317F : "NA_SE_EN_FLAME_MAN_RUN", + 0x3180 : "NA_SE_EN_FLAME_MAN_DAMAGE", + 0x3181 : "NA_SE_EN_FLAME_LAUGH", + 0x3182 : "NA_SE_EN_FLAME_MAN_SLIDE", + 0x3183 : "NA_SE_EN_FLAME_FIRE_ATTACK", + 0x3184 : "NA_SE_EN_PIHAT_SM_FLY", + 0x3185 : "NA_SE_EN_PIHAT_SM_DEAD", + 0x3186 : "NA_SE_EN_RIVA_APPEAR", + 0x3187 : "NA_SE_EN_AKINDONUTS_HIDE", + 0x3188 : "NA_SE_EN_RIVA_DAMAGE", + 0x3189 : "NA_SE_EN_RIVA_DEAD", + 0x318A : "NA_SE_EN_RIVA_MOVE", + 0x318B : "NA_SE_EN_FLAME_MAN_SURP", + 0x318C : "NA_SE_EN_SHADEST_LAST", + 0x318D : "NA_SE_EN_SHADEST_MOVE", + 0x318E : "NA_SE_EN_SHADEST_PRAY", + 0x318F : "NA_SE_EN_MGANON_ROAR", + 0x3190 : "NA_SE_EN_LIKE_WALK", + 0x3191 : "NA_SE_EN_LIKE_UNARI", + 0x3192 : "NA_SE_EN_LIKE_DRINK", + 0x3193 : "NA_SE_EN_LIKE_EAT", + 0x3194 : "NA_SE_EN_LIKE_THROW", + 0x3195 : "NA_SE_EN_LIKE_DAMAGE", + 0x3196 : "NA_SE_EN_LIKE_DEAD", + 0x3197 : "NA_SE_EN_MGANON_SWORD", + 0x3198 : "NA_SE_EN_GERUDOFT_ATTACK", + 0x3199 : "NA_SE_EN_GERUDOFT_DAMAGE", + 0x319A : "NA_SE_EN_GERUDOFT_DEAD", + 0x319B : "NA_SE_EN_MGANON_DAMAGE", + 0x319C : "NA_SE_EN_ANUBIS_FIRE", + 0x319D : "NA_SE_EN_ANUBIS_FIREBOMB", + 0x319E : "NA_SE_EN_MGANON_DEAD1", + 0x319F : "NA_SE_EN_ANUBIS_DEAD", + 0x31A0 : "NA_SE_EN_MUSI_LAND", + 0x31A1 : "NA_SE_EN_MGANON_DEAD2", + 0x31A2 : "NA_SE_EN_EIER_ATTACK", + 0x31A3 : "NA_SE_EN_EIER_CRY", + 0x31A4 : "NA_SE_EN_FREEZAD_BREATH", + 0x31A5 : "NA_SE_EN_FREEZAD_DAMAGE", + 0x31A6 : "NA_SE_EN_FREEZAD_DEAD", + 0x31A7 : "NA_SE_EN_DEADHAND_LAUGH", + 0x31A8 : "NA_SE_EN_DEADHAND_HIDE", + 0x31A9 : "NA_SE_EN_DEADHAND_DAMAGE", + 0x31AA : "NA_SE_EN_DEADHAND_HAND_DEAD", + 0x31AB : "NA_SE_EN_DEADHAND_DEAD", + 0x31AC : "NA_SE_EN_IRONNACK_BREAK_PILLAR2", + 0x31AD : "NA_SE_EN_IRONNACK_BREAK_PILLAR", + 0x31AE : "NA_SE_EN_IRONNACK_HIT_GND", + 0x31AF : "NA_SE_EN_MGANON_BREATH", + 0x31B0 : "NA_SE_EN_TWINROBA_LAUGH", + 0x31B1 : "NA_SE_EN_TWINROBA_LAUGH2", + 0x31B2 : "NA_SE_EN_DUMMY434", + 0x31B3 : "NA_SE_EN_TWINROBA_SHOOT_VOICE", + 0x31B4 : "NA_SE_EN_TWINROBA_SENSE", + 0x31B5 : "NA_SE_EN_TWINROBA_DIE", + 0x31B6 : "NA_SE_EN_DUMMY438", + 0x31B7 : "NA_SE_EN_TWINROBA_YOUNG_DAMAGE2", + 0x31B8 : "NA_SE_EN_TWINROBA_YOUNG_SHOOTVC", + 0x31B9 : "NA_SE_EN_TWINROBA_YOUNG_LAUGH", + 0x31BA : "NA_SE_EN_DUMMY442", + 0x31BB : "NA_SE_EN_TWINROBA_YOUNG_WINK", + 0x31BC : "NA_SE_EN_DUMMY444", + 0x31BD : "NA_SE_EN_DUMMY445", + 0x31BE : "NA_SE_EN_IRONNACK_DAMAGE", + 0x31BF : "NA_SE_EN_IRONNACK_DASH", + 0x31C0 : "NA_SE_EN_IRONNACK_DEAD", + 0x31C1 : "NA_SE_EN_IRONNACK_PULLOUT", + 0x31C2 : "NA_SE_EN_IRONNACK_WAKEUP", + 0x31C3 : "NA_SE_EN_DUMMY451", + 0x31C4 : "NA_SE_EN_DUMMY452", + 0x31C5 : "NA_SE_EN_DUMMY453", + 0x31C6 : "NA_SE_EN_GERUDOFT_BREATH", + 0x31C7 : "NA_SE_EN_GANON_LAUGH", + 0x31C8 : "NA_SE_EN_GANON_VOICE_DEMO", + 0x31C9 : "NA_SE_EN_GANON_THROW", + 0x31CA : "NA_SE_EN_GANON_AT_RETURN", + 0x31CB : "NA_SE_EN_GANON_HIT_GND", + 0x31CC : "NA_SE_EN_GANON_DAMAGE1", + 0x31CD : "NA_SE_EN_GANON_DAMAGE2", + 0x31CE : "NA_SE_EN_GANON_DOWN", + 0x31CF : "NA_SE_EN_GANON_RESTORE", + 0x31D0 : "NA_SE_EN_GANON_DEAD", + 0x31D1 : "NA_SE_EN_GANON_BREATH", + 0x31D2 : "NA_SE_EN_GANON_TOKETU", + 0x31D3 : "NA_SE_EN_GANON_CASBREAK", + 0x31D4 : "NA_SE_EN_GANON_BIGMASIC", + 0x31D5 : "NA_SE_EN_GANON_DARKWAVE", + 0x31D6 : "NA_SE_EN_FANTOM_ST_LAUGH", + 0x31D7 : "NA_SE_EN_MGANON_WALK", + 0x31D8 : "NA_SE_EN_MGANON_STAND", + 0x31D9 : "NA_SE_EN_MGANON_UNARI", + 0x31DA : "NA_SE_EN_STALGOLD_ROLL", + 0x31DB : "NA_SE_EN_KDOOR_WAVE", + 0x31DC : "NA_SE_EN_KDOOR_HIT", + 0x31DD : "NA_SE_EN_KDOOR_BREAK", + 0x31DE : "NA_SE_EN_KDOOR_HIT_GND", + 0x31DF : "NA_SE_EN_MGANON_SWDIMP", + 0x31E0 : "NA_SE_EN_STALTU_WAVE", + 0x31E1 : "NA_SE_EN_STALTU_DOWN_SET", + 0x31E2 : "NA_SE_EN_DUMMY482", + 0x31E3 : "NA_SE_EN_GOMA_BJR_LAND", + 0x31E4 : "NA_SE_EN_GOMA_BJR_LAND2", + 0x31E5 : "NA_SE_EN_GOMA_JR_LAND", + 0x31E6 : "NA_SE_EN_GOMA_JR_LAND2", + 0x31E7 : "NA_SE_EN_TWINROBA_FIGHT", + 0x31E8 : "NA_SE_EN_PO_BIG_CRY", + 0x31E9 : "NA_SE_EN_MUSI_SINK", + 0x31EA : "NA_SE_EN_STALGOLD_UP_CRY", + 0x31EB : "NA_SE_EN_GOLON_CRY", + 0x31EC : "NA_SE_EN_MOFER_CORE_DAMAGE", + 0x31ED : "NA_SE_EN_DAIOCTA_LAND_WATER", + 0x31EE : "NA_SE_EN_RIVA_BIG_APPEAR", + 0x31EF : "NA_SE_EN_MONBLIN_HAM_LAND", + 0x31F0 : "NA_SE_EN_MUSI_WALK", + 0x31F1 : "NA_SE_EN_MIMICK_BREATH", + 0x31F2 : "NA_SE_EN_STALWALL_LAUGH", + 0x4000 : "NA_SE_SY_WIN_OPEN", + 0x4001 : "NA_SE_SY_WIN_CLOSE", + 0x4002 : "NA_SE_SY_CORRECT_CHIME", + 0x4003 : "NA_SE_SY_GET_RUPY", + 0x4004 : "NA_SE_SY_MESSAGE_WOMAN", + 0x4005 : "NA_SE_SY_MESSAGE_MAN", + 0x4006 : "NA_SE_SY_ERROR", + 0x4007 : "NA_SE_SY_TRE_BOX_APPEAR", + 0x4008 : "NA_SE_SY_DECIDE", + 0x4009 : "NA_SE_SY_CURSOR", + 0x400A : "NA_SE_SY_CANCEL", + 0x400B : "NA_SE_SY_HP_RECOVER", + 0x400C : "NA_SE_SY_ATTENTION_ON", + 0x400D : "NA_SE_SY_DUMMY_13", + 0x400E : "NA_SE_SY_DUMMY_14", + 0x400F : "NA_SE_SY_LOCK_OFF", + 0x4010 : "NA_SE_SY_LOCK_ON_HUMAN", + 0x4011 : "NA_SE_SY_DUMMY_17", + 0x4012 : "NA_SE_SY_DUMMY_18", + 0x4013 : "NA_SE_SY_CAMERA_ZOOM_UP", + 0x4014 : "NA_SE_SY_CAMERA_ZOOM_DOWN", + 0x4015 : "NA_SE_SY_DUMMY_21", + 0x4016 : "NA_SE_SY_DUMMY_22", + 0x4017 : "NA_SE_SY_ATTENTION_ON_OLD", + 0x4018 : "NA_SE_SY_MESSAGE_PASS", + 0x4019 : "NA_SE_SY_WARNING_COUNT_N", + 0x401A : "NA_SE_SY_WARNING_COUNT_E", + 0x401B : "NA_SE_SY_HITPOINT_ALARM", + 0x401C : "NA_SE_SY_DUMMY_28", + 0x401D : "NA_SE_SY_DEMO_CUT", + 0x401E : "NA_SE_SY_NAVY_CALL", + 0x401F : "NA_SE_SY_GAUGE_UP", + 0x4020 : "NA_SE_SY_DUMMY_32", + 0x4021 : "NA_SE_SY_DUMMY_33", + 0x4022 : "NA_SE_SY_DUMMY_34", + 0x4023 : "NA_SE_SY_PIECE_OF_HEART", + 0x4024 : "NA_SE_SY_GET_ITEM", + 0x4025 : "NA_SE_SY_WIN_SCROLL_LEFT", + 0x4026 : "NA_SE_SY_WIN_SCROLL_RIGHT", + 0x4027 : "NA_SE_SY_OCARINA_ERROR", + 0x4028 : "NA_SE_SY_CAMERA_ZOOM_UP_2", + 0x4029 : "NA_SE_SY_CAMERA_ZOOM_DOWN_2", + 0x402A : "NA_SE_SY_GLASSMODE_ON", + 0x402B : "NA_SE_SY_GLASSMODE_OFF", + 0x402C : "NA_SE_SY_FOUND", + 0x402D : "NA_SE_SY_HIT_SOUND", + 0x402E : "NA_SE_SY_MESSAGE_END", + 0x402F : "NA_SE_SY_RUPY_COUNT", + 0x4030 : "NA_SE_SY_LOCK_ON", + 0x4031 : "NA_SE_SY_GET_BOXITEM", + 0x4032 : "NA_SE_SY_WHITE_OUT_L", + 0x4033 : "NA_SE_SY_WHITE_OUT_S", + 0x4034 : "NA_SE_SY_WHITE_OUT_T", + 0x4035 : "NA_SE_SY_START_SHOT", + 0x4036 : "NA_SE_SY_METRONOME", + 0x4037 : "NA_SE_SY_ATTENTION_URGENCY", + 0x4038 : "NA_SE_SY_METRONOME_LV", + 0x4039 : "NA_SE_SY_FSEL_CURSOR", + 0x403A : "NA_SE_SY_FSEL_DECIDE_S", + 0x403B : "NA_SE_SY_FSEL_DECIDE_L", + 0x403C : "NA_SE_SY_FSEL_CLOSE", + 0x403D : "NA_SE_SY_FSEL_ERROR", + 0x403E : "NA_SE_SY_SET_FIRE_ARROW", + 0x403F : "NA_SE_SY_SET_ICE_ARROW", + 0x4040 : "NA_SE_SY_SET_LIGHT_ARROW", + 0x4041 : "NA_SE_SY_SYNTH_MAGIC_ARROW", + 0x4042 : "NA_SE_SY_METRONOME_2", + 0x4043 : "NA_SE_SY_KINSTA_MARK_APPEAR", + 0x4044 : "NA_SE_SY_FIVE_COUNT_LUPY", + 0x4045 : "NA_SE_SY_CARROT_RECOVER", + 0x4046 : "NA_SE_EV_FAIVE_LUPY_COUNT", + 0x4047 : "NA_SE_SY_DUMMY_71", + 0x5000 : "NA_SE_OC_OCARINA", + 0x5001 : "NA_SE_OC_ABYSS", + 0x5002 : "NA_SE_OC_DOOR_OPEN", + 0x5003 : "NA_SE_OC_SECRET_WARP_IN", + 0x5004 : "NA_SE_OC_SECRET_WARP_OUT", + 0x5005 : "NA_SE_OC_SECRET_HOLE_OUT", + 0x5006 : "NA_SE_OC_REVENGE", + 0x5007 : "NA_SE_OC_HINT_MOVIE", + 0x6000 : "NA_SE_VO_LI_SWORD_N", + 0x6001 : "NA_SE_VO_LI_SWORD_L", + 0x6002 : "NA_SE_VO_LI_LASH", + 0x6003 : "NA_SE_VO_LI_HANG", + 0x6004 : "NA_SE_VO_LI_CLIMB_END", + 0x6005 : "NA_SE_VO_LI_DAMAGE_S", + 0x6006 : "NA_SE_VO_LI_FREEZE", + 0x6007 : "NA_SE_VO_LI_FALL_S", + 0x6008 : "NA_SE_VO_LI_FALL_L", + 0x6009 : "NA_SE_VO_LI_BREATH_REST", + 0x600A : "NA_SE_VO_LI_BREATH_DRINK", + 0x600B : "NA_SE_VO_LI_DOWN", + 0x600C : "NA_SE_VO_LI_TAKEN_AWAY", + 0x600D : "NA_SE_VO_LI_HELD", + 0x600E : "NA_SE_VO_LI_SNEEZE", + 0x600F : "NA_SE_VO_LI_SWEAT", + 0x6010 : "NA_SE_VO_LI_DRINK", + 0x6011 : "NA_SE_VO_LI_RELAX", + 0x6012 : "NA_SE_VO_LI_SWORD_PUTAWAY", + 0x6013 : "NA_SE_VO_LI_GROAN", + 0x6014 : "NA_SE_VO_LI_AUTO_JUMP", + 0x6015 : "NA_SE_VO_LI_MAGIC_NALE", + 0x6016 : "NA_SE_VO_LI_SURPRISE", + 0x6017 : "NA_SE_VO_LI_MAGIC_FROL", + 0x6018 : "NA_SE_VO_LI_PUSH", + 0x6019 : "NA_SE_VO_LI_HOOKSHOT_HANG", + 0x601A : "NA_SE_VO_LI_LAND_DAMAGE_S", + 0x601B : "NA_SE_VO_LI_NULL_0x1b", + 0x601C : "NA_SE_VO_LI_MAGIC_ATTACK", + 0x601D : "NA_SE_VO_BL_DOWN", + 0x601E : "NA_SE_VO_LI_DEMO_DAMAGE", + 0x601F : "NA_SE_VO_LI_ELECTRIC_SHOCK_LV", + 0x6020 : "NA_SE_VO_LI_SWORD_N_KID", + 0x6021 : "NA_SE_VO_LI_ROLLING_CUT_KID", + 0x6022 : "NA_SE_VO_LI_LASH_KID", + 0x6023 : "NA_SE_VO_LI_HANG_KID", + 0x6024 : "NA_SE_VO_LI_CLIMB_END_KID", + 0x6025 : "NA_SE_VO_LI_DAMAGE_S_KID", + 0x6026 : "NA_SE_VO_LI_FREEZE_KID", + 0x6027 : "NA_SE_VO_LI_FALL_S_KID", + 0x6028 : "NA_SE_VO_LI_FALL_L_KID", + 0x6029 : "NA_SE_VO_LI_BREATH_REST_KID", + 0x602A : "NA_SE_VO_LI_BREATH_DRINK_KID", + 0x602B : "NA_SE_VO_LI_DOWN_KID", + 0x602C : "NA_SE_VO_LI_TAKEN_AWAY_KID", + 0x602D : "NA_SE_VO_LI_HELD_KID", + 0x602E : "NA_SE_VO_LI_SNEEZE_KID", + 0x602F : "NA_SE_VO_LI_SWEAT_KID", + 0x6030 : "NA_SE_VO_LI_DRINK_KID", + 0x6031 : "NA_SE_VO_LI_RELAX_KID", + 0x6032 : "NA_SE_VO_LI_SWORD_PUTAWAY_KID", + 0x6033 : "NA_SE_VO_LI_GROAN_KID", + 0x6034 : "NA_SE_VO_LI_AUTO_JUMP_KID", + 0x6035 : "NA_SE_VO_LI_MAGIC_NALE_KID", + 0x6036 : "NA_SE_VO_LI_SURPRISE_KID", + 0x6037 : "NA_SE_VO_LI_MAGIC_FROL_KID", + 0x6038 : "NA_SE_VO_LI_PUSH_KID", + 0x6039 : "NA_SE_VO_LI_HOOKSHOT_HANG_KID", + 0x603A : "NA_SE_VO_LI_LAND_DAMAGE_S_KID", + 0x603B : "NA_SE_VO_LI_NULL_0x1b_KID", + 0x603C : "NA_SE_VO_LI_MAGIC_ATTACK_KID", + 0x603D : "NA_SE_VO_BL_DOWN_KID", + 0x603E : "NA_SE_VO_LI_DEMO_DAMAGE_KID", + 0x603F : "NA_SE_VO_LI_ELECTRIC_SHOCK_LV_KID", + 0x6040 : "NA_SE_VO_NAVY_ENEMY", + 0x6041 : "NA_SE_VO_NAVY_HELLO", + 0x6042 : "NA_SE_VO_NAVY_HEAR", + 0x6043 : "NA_SE_VO_NAVY_CALL", + 0x6044 : "NA_SE_VO_NA_HELLO_3", + 0x6045 : "NA_SE_VO_DUMMY_0x45", + 0x6046 : "NA_SE_VO_DUMMY_0x46", + 0x6047 : "NA_SE_VO_DUMMY_0x47", + 0x6048 : "NA_SE_VO_DUMMY_0x48", + 0x6049 : "NA_SE_VO_DUMMY_0x49", + 0x604A : "NA_SE_VO_DUMMY_0x4a", + 0x604B : "NA_SE_VO_DUMMY_0x4b", + 0x604C : "NA_SE_VO_DUMMY_0x4c", + 0x604D : "NA_SE_VO_DUMMY_0x4d", + 0x604E : "NA_SE_VO_DUMMY_0x4e", + 0x604F : "NA_SE_VO_DUMMY_0x4f", + 0x6050 : "NA_SE_VO_TA_SLEEP", + 0x6051 : "NA_SE_VO_TA_SURPRISE", + 0x6052 : "NA_SE_VO_TA_CRY_0", + 0x6053 : "NA_SE_VO_TA_CRY_1", + 0x6054 : "NA_SE_VO_IN_CRY_0", + 0x6055 : "NA_SE_VO_IN_LOST", + 0x6056 : "NA_SE_VO_IN_LASH_0", + 0x6057 : "NA_SE_VO_IN_LASH_1", + 0x6058 : "NA_SE_VO_FR_LAUGH_0", + 0x6059 : "NA_SE_VO_FR_SMILE_0", + 0x605A : "NA_SE_VO_NB_AGONY", + 0x605B : "NA_SE_VO_NB_CRY_0", + 0x605C : "NA_SE_VO_NB_NOTICE", + 0x605D : "NA_SE_VO_NA_HELLO_0", + 0x605E : "NA_SE_VO_NA_HELLO_1", + 0x605F : "NA_SE_VO_NA_HELLO_2", + 0x6060 : "NA_SE_VO_RT_CRASH", + 0x6061 : "NA_SE_VO_RT_DISCOVER", + 0x6062 : "NA_SE_VO_RT_FALL", + 0x6063 : "NA_SE_VO_RT_LAUGH_0", + 0x6064 : "NA_SE_VO_RT_LIFT", + 0x6065 : "NA_SE_VO_RT_THROW", + 0x6066 : "NA_SE_VO_RT_UNBALLANCE", + 0x6067 : "NA_SE_VO_ST_DAMAGE", + 0x6068 : "NA_SE_VO_ST_ATTACK", + 0x6069 : "NA_SE_VO_Z0_HURRY", + 0x606A : "NA_SE_VO_Z0_MEET", + 0x606B : "NA_SE_VO_Z0_QUESTION", + 0x606C : "NA_SE_VO_Z0_SIGH_0", + 0x606D : "NA_SE_VO_Z0_SMILE_0", + 0x606E : "NA_SE_VO_Z0_SURPRISE", + 0x606F : "NA_SE_VO_Z0_THROW", + 0x6070 : "NA_SE_VO_SK_CRY_0", + 0x6071 : "NA_SE_VO_SK_CRY_1", + 0x6072 : "NA_SE_VO_SK_CRASH", + 0x6073 : "NA_SE_VO_SK_LAUGH", + 0x6074 : "NA_SE_VO_SK_SHOUT", + 0x6075 : "NA_SE_VO_Z1_CRY_0", + 0x6076 : "NA_SE_VO_Z1_CRY_1", + 0x6077 : "NA_SE_VO_Z1_OPENDOOR", + 0x6078 : "NA_SE_VO_Z1_SURPRISE", + 0x6079 : "NA_SE_VO_Z1_PAIN", + 0x607A : "NA_SE_VO_KZ_MOVE", + 0x607B : "NA_SE_VO_NB_LAUGH", + 0x607C : "NA_SE_VO_IN_LAUGH", + 0x607D : "NA_SE_VO_DUMMY_0x7d", + 0x607E : "NA_SE_VO_DUMMY_0x7e", + 0x607F : "NA_SE_VO_DUMMY_0x7f", +} def read4(data : bytes, p : int) -> int: return struct.unpack(">I", data[p:p+4])[0] -def read_sfx_ids(): - sfx_tables = ( - (0x0000, "playerbank_table.h"), - (0x1000, "itembank_table.h"), - (0x2000, "environmentbank_table.h"), - (0x3000, "enemybank_table.h"), - (0x4000, "systembank_table.h"), - (0x5000, "ocarinabank_table.h"), - (0x6000, "voicebank_table.h"), - ) - - sfx_ids = {} - - for base,header_name in sfx_tables: - contents = None - with open("include/tables/sfx/" + header_name, "r") as infile: - contents = infile.read() - contents = remove_comments(contents).replace("\\\n", "").strip() - value = base - for line in contents.split("\n"): - line = line.strip() - assert line.startswith("DEFINE_SFX(") and line.endswith(")") - line = line[len("DEFINE_SFX("):-len(")")] - args = [a.strip() for a in line.split(",")] - assert len(args) == 5 - sfx_ids[value] = args[0] - value += 1 - - return sfx_ids - def unique_or_none(lst : List[T]) -> Optional[T]: if not lst: return None @@ -230,8 +1448,7 @@ def unique_or_none(lst : List[T]) -> Optional[T]: return elem class MessageDecoder: - def __init__(self, sfx_ids : Dict[int,str], control_end : int, control_codes : Dict[int, Tuple[str, str, Optional[Tuple[Callable[[int], str]]]]], extraction_charmap : Dict[int, str]) -> None: - self.sfx_ids : Dict[int,str] = sfx_ids + def __init__(self, control_end : int, control_codes : Dict[int, Tuple[str, str, Optional[Tuple[Callable[[int], str]]]]], extraction_charmap : Dict[int, str]) -> None: self.control_end : int = control_end self.control_codes : Dict[int, Tuple[str, str, Optional[Tuple[Callable[[int], str]]]]] = control_codes self.extraction_charmap : Dict[int, str] = extraction_charmap @@ -269,9 +1486,9 @@ class MessageDecoder: def format_sfx_id(self, c : int) -> str: if c & 0x800: - return self.sfx_ids[c & ~0x800] + return sfx_ids[c & ~0x800] else: - return f"{self.sfx_ids[c]} - SFX_FLAG" + return f"{sfx_ids[c]} - SFX_FLAG" def format_item_id(self, c : int) -> str: return item_ids[c] @@ -487,7 +1704,7 @@ class MessageDecoder: }[c] class MessageDecoderJPN(MessageDecoder): - def __init__(self, sfx_ids : Dict[int, str]) -> None: + def __init__(self) -> None: control_end = 0x8170 control_codes = { 0x000A : ("NEWLINE", "", None), @@ -538,7 +1755,7 @@ class MessageDecoderJPN(MessageDecoder): # Possibly from a SHIFT-JIS extension, python doesn't have builtin support 0x86D3 : "┯", } - super().__init__(sfx_ids, control_end, control_codes, extraction_charmap) + super().__init__(control_end, control_codes, extraction_charmap) self.pop_char = self.pop_2byte self.pop_char_end = self.pop_2byte_end @@ -562,7 +1779,7 @@ class MessageDecoderJPN(MessageDecoder): }[c1] class MessageDecoderNES(MessageDecoder): - def __init__(self, sfx_ids : Dict[int, str]) -> None: + def __init__(self) -> None: control_end = 0x02 control_codes = { 0x01 : ("NEWLINE", "", None), @@ -643,7 +1860,7 @@ class MessageDecoderNES(MessageDecoder): 0xAA : '[Control-Pad]', 0xAB : '[D-Pad]', } - super().__init__(sfx_ids, control_end, control_codes, extraction_charmap) + super().__init__(control_end, control_codes, extraction_charmap) self.pop_char = self.pop_byte self.pop_char_end = self.pop_byte_end @@ -850,9 +2067,8 @@ def main(): code_bin = (baserom_segments_dir / "code").read_bytes() - sfx_ids = read_sfx_ids() - jpn_decoder = MessageDecoderJPN(sfx_ids) - nes_decoder = MessageDecoderNES(sfx_ids) + jpn_decoder = MessageDecoderJPN() + nes_decoder = MessageDecoderNES() message_tables : List[Optional[MessageTableDesc]] = [None for _ in range(4)] # JP, EN, FR, DE message_table_staff : MessageTableDesc = None