Created
November 5, 2019 22:08
-
-
Save PikalaxALT/702f2205eac650a56bf2cd69c57b54cf to your computer and use it in GitHub Desktop.
Battle script dumper
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import re | |
SONGS = [ | |
'MUS_DUMMY', | |
'SE_KAIFUKU', | |
'SE_PC_LOGIN', | |
'SE_PC_OFF', | |
'SE_PC_ON', | |
'SE_SELECT', | |
'SE_WIN_OPEN', | |
'SE_WALL_HIT', | |
'SE_DOOR', | |
'SE_KAIDAN', | |
'SE_DANSA', | |
'SE_JITENSYA', | |
'SE_KOUKA_L', | |
'SE_KOUKA_M', | |
'SE_KOUKA_H', | |
'SE_BOWA2', | |
'SE_POKE_DEAD', | |
'SE_NIGERU', | |
'SE_JIDO_DOA', | |
'SE_NAMINORI', | |
'SE_BAN', | |
'SE_PIN', | |
'SE_BOO', | |
'SE_BOWA', | |
'SE_JYUNI', | |
'SE_SEIKAI', | |
'SE_HAZURE', | |
'SE_EXP', | |
'SE_JITE_PYOKO', | |
'SE_MU_PACHI', | |
'SE_TK_KASYA', | |
'SE_FU_ZAKU', | |
'SE_FU_ZAKU2', | |
'SE_FU_ZUZUZU', | |
'SE_RU_GASHIN', | |
'SE_RU_GASYAN', | |
'SE_RU_BARI', | |
'SE_RU_HYUU', | |
'SE_KI_GASYAN', | |
'SE_TK_WARPIN', | |
'SE_TK_WARPOUT', | |
'SE_TU_SAA', | |
'SE_HI_TURUN', | |
'SE_TRACK_MOVE', | |
'SE_TRACK_STOP', | |
'SE_TRACK_HAIKI', | |
'SE_TRACK_DOOR', | |
'SE_MOTER', | |
'SE_SAVE', | |
'SE_KON', | |
'SE_KON2', | |
'SE_KON3', | |
'SE_KON4', | |
'SE_SUIKOMU', | |
'SE_NAGERU', | |
'SE_TOY_C', | |
'SE_TOY_D', | |
'SE_TOY_E', | |
'SE_TOY_F', | |
'SE_TOY_G', | |
'SE_TOY_A', | |
'SE_TOY_B', | |
'SE_TOY_C1', | |
'SE_MIZU', | |
'SE_HASHI', | |
'SE_DAUGI', | |
'SE_PINPON', | |
'SE_FUUSEN1', | |
'SE_FUUSEN2', | |
'SE_FUUSEN3', | |
'SE_TOY_KABE', | |
'SE_TOY_DANGO', | |
'SE_DOKU', | |
'SE_ESUKA', | |
'SE_T_AME', | |
'SE_T_AME_E', | |
'SE_T_OOAME', | |
'SE_T_OOAME_E', | |
'SE_T_KOAME', | |
'SE_T_KOAME_E', | |
'SE_T_KAMI', | |
'SE_T_KAMI2', | |
'SE_ELEBETA', | |
'SE_HINSI', | |
'SE_EXPMAX', | |
'SE_TAMAKORO', | |
'SE_TAMAKORO_E', | |
'SE_BASABASA', | |
'SE_REGI', | |
'SE_C_GAJI', | |
'SE_C_MAKU_U', | |
'SE_C_MAKU_D', | |
'SE_C_PASI', | |
'SE_C_SYU', | |
'SE_C_PIKON', | |
'SE_REAPOKE', | |
'SE_OP_BASYU', | |
'SE_BT_START', | |
'SE_DENDOU', | |
'SE_JIHANKI', | |
'SE_TAMA', | |
'SE_Z_SCROLL', | |
'SE_Z_PAGE', | |
'SE_PN_ON', | |
'SE_PN_OFF', | |
'SE_Z_SEARCH', | |
'SE_TAMAGO', | |
'SE_TB_START', | |
'SE_TB_KON', | |
'SE_TB_KARA', | |
'SE_BIDORO', | |
'SE_W085', | |
'SE_W085B', | |
'SE_W231', | |
'SE_W171', | |
'SE_W233', | |
'SE_W233B', | |
'SE_W145', | |
'SE_W145B', | |
'SE_W145C', | |
'SE_W240', | |
'SE_W015', | |
'SE_W081', | |
'SE_W081B', | |
'SE_W088', | |
'SE_W016', | |
'SE_W016B', | |
'SE_W003', | |
'SE_W104', | |
'SE_W013', | |
'SE_W196', | |
'SE_W086', | |
'SE_W004', | |
'SE_W025', | |
'SE_W025B', | |
'SE_W152', | |
'SE_W026', | |
'SE_W172', | |
'SE_W172B', | |
'SE_W053', | |
'SE_W007', | |
'SE_W092', | |
'SE_W221', | |
'SE_W221B', | |
'SE_W052', | |
'SE_W036', | |
'SE_W059', | |
'SE_W059B', | |
'SE_W010', | |
'SE_W011', | |
'SE_W017', | |
'SE_W019', | |
'SE_W028', | |
'SE_W013B', | |
'SE_W044', | |
'SE_W029', | |
'SE_W057', | |
'SE_W056', | |
'SE_W250', | |
'SE_W030', | |
'SE_W039', | |
'SE_W054', | |
'SE_W077', | |
'SE_W020', | |
'SE_W082', | |
'SE_W047', | |
'SE_W195', | |
'SE_W006', | |
'SE_W091', | |
'SE_W146', | |
'SE_W120', | |
'SE_W153', | |
'SE_W071B', | |
'SE_W071', | |
'SE_W103', | |
'SE_W062', | |
'SE_W062B', | |
'SE_W048', | |
'SE_W187', | |
'SE_W118', | |
'SE_W155', | |
'SE_W122', | |
'SE_W060', | |
'SE_W185', | |
'SE_W014', | |
'SE_W043', | |
'SE_W207', | |
'SE_W207B', | |
'SE_W215', | |
'SE_W109', | |
'SE_W173', | |
'SE_W280', | |
'SE_W202', | |
'SE_W060B', | |
'SE_W076', | |
'SE_W080', | |
'SE_W100', | |
'SE_W107', | |
'SE_W166', | |
'SE_W129', | |
'SE_W115', | |
'SE_W112', | |
'SE_W197', | |
'SE_W199', | |
'SE_W236', | |
'SE_W204', | |
'SE_W268', | |
'SE_W070', | |
'SE_W063', | |
'SE_W127', | |
'SE_W179', | |
'SE_W151', | |
'SE_W201', | |
'SE_W161', | |
'SE_W161B', | |
'SE_W227', | |
'SE_W227B', | |
'SE_W226', | |
'SE_W208', | |
'SE_W213', | |
'SE_W213B', | |
'SE_W234', | |
'SE_W260', | |
'SE_W328', | |
'SE_W320', | |
'SE_W255', | |
'SE_W291', | |
'SE_W089', | |
'SE_W239', | |
'SE_W230', | |
'SE_W281', | |
'SE_W327', | |
'SE_W287', | |
'SE_W257', | |
'SE_W253', | |
'SE_W258', | |
'SE_W322', | |
'SE_W298', | |
'SE_W287B', | |
'SE_W114', | |
'SE_W063B', | |
'MUS_W_DOOR', | |
'SE_CARD1', | |
'SE_CARD2', | |
'SE_CARD3', | |
'SE_BAG1', | |
'SE_BAG2', | |
'SE_GETTING', | |
'SE_SHOP', | |
'SE_KITEKI', | |
'SE_HELP_OP', | |
'SE_HELP_CL', | |
'SE_HELP_NG', | |
'SE_DEOMOV', | |
'SE_EXCELLENT', | |
'SE_NAWAMISS', | |
'MUS_ME_ASA', | |
'MUS_FANFA1', | |
'MUS_FANFA4', | |
'MUS_FANFA5', | |
'MUS_ME_BACHI', | |
'MUS_ME_WAZA', | |
'MUS_ME_KINOMI', | |
'MUS_ME_SHINKA', | |
'MUS_SHINKA', | |
'MUS_BATTLE32', | |
'MUS_BATTLE20', | |
'MUS_P_SCHOOL', | |
'MUS_ME_B_BIG', | |
'MUS_ME_B_SMALL', | |
'MUS_ME_WASURE', | |
'MUS_ME_ZANNEN', | |
'MUS_ANNAI', | |
'MUS_SLOT', | |
'MUS_AJITO', | |
'MUS_GYM', | |
'MUS_PURIN', | |
'MUS_DEMO', | |
'MUS_TITLE', | |
'MUS_GUREN', | |
'MUS_SHION', | |
'MUS_KAIHUKU', | |
'MUS_CYCLING', | |
'MUS_ROCKET', | |
'MUS_SHOUJO', | |
'MUS_SHOUNEN', | |
'MUS_DENDOU', | |
'MUS_T_MORI', | |
'MUS_OTSUKIMI', | |
'MUS_POKEYASHI', | |
'MUS_ENDING', | |
'MUS_LOAD01', | |
'MUS_OPENING', | |
'MUS_LOAD02', | |
'MUS_LOAD03', | |
'MUS_CHAMP_R', | |
'MUS_VS_GYM', | |
'MUS_VS_TORE', | |
'MUS_VS_YASEI', | |
'MUS_VS_LAST', | |
'MUS_MASARA', | |
'MUS_KENKYU', | |
'MUS_OHKIDO', | |
'MUS_POKECEN', | |
'MUS_SANTOAN', | |
'MUS_NAMINORI', | |
'MUS_P_TOWER', | |
'MUS_SHIRUHU', | |
'MUS_HANADA', | |
'MUS_TAMAMUSI', | |
'MUS_WIN_TRE', | |
'MUS_WIN_YASEI', | |
'MUS_WIN_GYM', | |
'MUS_KUCHIBA', | |
'MUS_NIBI', | |
'MUS_RIVAL1', | |
'MUS_RIVAL2', | |
'MUS_FAN2', | |
'MUS_FAN5', | |
'MUS_FAN6', | |
'MUS_ME_PHOTO', | |
'MUS_TITLEROG', | |
'MUS_GET_YASEI', | |
'MUS_SOUSA', | |
'MUS_SEKAIKAN', | |
'MUS_SEIBETU', | |
'MUS_JUMP', | |
'MUS_UNION', | |
'MUS_NETWORK', | |
'MUS_OKURIMONO', | |
'MUS_KINOMIKUI', | |
'MUS_NANADUNGEON', | |
'MUS_OSHIE_TV', | |
'MUS_NANASHIMA', | |
'MUS_NANAISEKI', | |
'MUS_NANA123', | |
'MUS_NANA45', | |
'MUS_NANA67', | |
'MUS_POKEFUE', | |
'MUS_VS_DEO', | |
'MUS_VS_MYU2', | |
'MUS_VS_DEN', | |
'MUS_EXEYE', | |
'MUS_DEOEYE', | |
'MUS_T_TOWER', | |
'MUS_SLOWMASARA', | |
'MUS_TVNOIZE', | |
] | |
STRING_IDS = [ | |
'STRINGID_INTROMSG', | |
'STRINGID_INTROSENDOUT', | |
'STRINGID_RETURNMON', | |
'STRINGID_SWITCHINMON', | |
'STRINGID_USEDMOVE', | |
'STRINGID_BATTLEEND', | |
None, | |
None, | |
None, | |
None, | |
None, | |
None, | |
'STRINGID_TRAINER1LOSETEXT', | |
'STRINGID_PKMNGAINEDEXP', | |
'STRINGID_PKMNGREWTOLV', | |
'STRINGID_PKMNLEARNEDMOVE', | |
'STRINGID_TRYTOLEARNMOVE1', | |
'STRINGID_TRYTOLEARNMOVE2', | |
'STRINGID_TRYTOLEARNMOVE3', | |
'STRINGID_PKMNFORGOTMOVE', | |
'STRINGID_STOPLEARNINGMOVE', | |
'STRINGID_DIDNOTLEARNMOVE', | |
'STRINGID_PKMNLEARNEDMOVE2', | |
'STRINGID_ATTACKMISSED', | |
'STRINGID_PKMNPROTECTEDITSELF', | |
'STRINGID_STATSWONTINCREASE2', | |
'STRINGID_AVOIDEDDAMAGE', | |
'STRINGID_ITDOESNTAFFECT', | |
'STRINGID_ATTACKERFAINTED', | |
'STRINGID_TARGETFAINTED', | |
'STRINGID_PLAYERGOTMONEY', | |
'STRINGID_PLAYERWHITEOUT', | |
'STRINGID_PLAYERWHITEOUT2', | |
'STRINGID_PREVENTSESCAPE', | |
'STRINGID_HITXTIMES', | |
'STRINGID_PKMNFELLASLEEP', | |
'STRINGID_PKMNMADESLEEP', | |
'STRINGID_PKMNALREADYASLEEP', | |
'STRINGID_PKMNALREADYASLEEP2', | |
'STRINGID_PKMNWASNTAFFECTED', | |
'STRINGID_PKMNWASPOISONED', | |
'STRINGID_PKMNPOISONEDBY', | |
'STRINGID_PKMNHURTBYPOISON', | |
'STRINGID_PKMNALREADYPOISONED', | |
'STRINGID_PKMNBADLYPOISONED', | |
'STRINGID_PKMNENERGYDRAINED', | |
'STRINGID_PKMNWASBURNED', | |
'STRINGID_PKMNBURNEDBY', | |
'STRINGID_PKMNHURTBYBURN', | |
'STRINGID_PKMNWASFROZEN', | |
'STRINGID_PKMNFROZENBY', | |
'STRINGID_PKMNISFROZEN', | |
'STRINGID_PKMNWASDEFROSTED', | |
'STRINGID_PKMNWASDEFROSTED2', | |
'STRINGID_PKMNWASDEFROSTEDBY', | |
'STRINGID_PKMNWASPARALYZED', | |
'STRINGID_PKMNWASPARALYZEDBY', | |
'STRINGID_PKMNISPARALYZED', | |
'STRINGID_PKMNISALREADYPARALYZED', | |
'STRINGID_PKMNHEALEDPARALYSIS', | |
'STRINGID_PKMNDREAMEATEN', | |
'STRINGID_STATSWONTINCREASE', | |
'STRINGID_STATSWONTDECREASE', | |
'STRINGID_TEAMSTOPPEDWORKING', | |
'STRINGID_FOESTOPPEDWORKING', | |
'STRINGID_PKMNISCONFUSED', | |
'STRINGID_PKMNHEALEDCONFUSION', | |
'STRINGID_PKMNWASCONFUSED', | |
'STRINGID_PKMNALREADYCONFUSED', | |
'STRINGID_PKMNFELLINLOVE', | |
'STRINGID_PKMNINLOVE', | |
'STRINGID_PKMNIMMOBILIZEDBYLOVE', | |
'STRINGID_PKMNBLOWNAWAY', | |
'STRINGID_PKMNCHANGEDTYPE', | |
'STRINGID_PKMNFLINCHED', | |
'STRINGID_PKMNREGAINEDHEALTH', | |
'STRINGID_PKMNHPFULL', | |
'STRINGID_PKMNRAISEDSPDEF', | |
'STRINGID_PKMNRAISEDDEF', | |
'STRINGID_PKMNCOVEREDBYVEIL', | |
'STRINGID_PKMNUSEDSAFEGUARD', | |
'STRINGID_PKMNSAFEGUARDEXPIRED', | |
'STRINGID_PKMNWENTTOSLEEP', | |
'STRINGID_PKMNSLEPTHEALTHY', | |
'STRINGID_PKMNWHIPPEDWHIRLWIND', | |
'STRINGID_PKMNTOOKSUNLIGHT', | |
'STRINGID_PKMNLOWEREDHEAD', | |
'STRINGID_PKMNISGLOWING', | |
'STRINGID_PKMNFLEWHIGH', | |
'STRINGID_PKMNDUGHOLE', | |
'STRINGID_PKMNSQUEEZEDBYBIND', | |
'STRINGID_PKMNTRAPPEDINVORTEX', | |
'STRINGID_PKMNWRAPPEDBY', | |
'STRINGID_PKMNCLAMPED', | |
'STRINGID_PKMNHURTBY', | |
'STRINGID_PKMNFREEDFROM', | |
'STRINGID_PKMNCRASHED', | |
'STRINGID_PKMNSHROUDEDINMIST', | |
'STRINGID_PKMNPROTECTEDBYMIST', | |
'STRINGID_PKMNGETTINGPUMPED', | |
'STRINGID_PKMNHITWITHRECOIL', | |
'STRINGID_PKMNPROTECTEDITSELF2', | |
'STRINGID_PKMNBUFFETEDBYSANDSTORM', | |
'STRINGID_PKMNPELTEDBYHAIL', | |
'STRINGID_PKMNSEEDED', | |
'STRINGID_PKMNEVADEDATTACK', | |
'STRINGID_PKMNSAPPEDBYLEECHSEED', | |
'STRINGID_PKMNFASTASLEEP', | |
'STRINGID_PKMNWOKEUP', | |
'STRINGID_PKMNUPROARKEPTAWAKE', | |
'STRINGID_PKMNWOKEUPINUPROAR', | |
'STRINGID_PKMNCAUSEDUPROAR', | |
'STRINGID_PKMNMAKINGUPROAR', | |
'STRINGID_PKMNCALMEDDOWN', | |
'STRINGID_PKMNCANTSLEEPINUPROAR', | |
'STRINGID_PKMNSTOCKPILED', | |
'STRINGID_PKMNCANTSTOCKPILE', | |
'STRINGID_PKMNCANTSLEEPINUPROAR2', | |
'STRINGID_UPROARKEPTPKMNAWAKE', | |
'STRINGID_PKMNSTAYEDAWAKEUSING', | |
'STRINGID_PKMNSTORINGENERGY', | |
'STRINGID_PKMNUNLEASHEDENERGY', | |
'STRINGID_PKMNFATIGUECONFUSION', | |
'STRINGID_PKMNPICKEDUPITEM', | |
'STRINGID_PKMNUNAFFECTED', | |
'STRINGID_PKMNTRANSFORMEDINTO', | |
'STRINGID_PKMNMADESUBSTITUTE', | |
'STRINGID_PKMNHASSUBSTITUTE', | |
'STRINGID_SUBSTITUTEDAMAGED', | |
'STRINGID_PKMNSUBSTITUTEFADED', | |
'STRINGID_PKMNMUSTRECHARGE', | |
'STRINGID_PKMNRAGEBUILDING', | |
'STRINGID_PKMNMOVEWASDISABLED', | |
'STRINGID_PKMNMOVEISDISABLED', | |
'STRINGID_PKMNMOVEDISABLEDNOMORE', | |
'STRINGID_PKMNGOTENCORE', | |
'STRINGID_PKMNENCOREENDED', | |
'STRINGID_PKMNTOOKAIM', | |
'STRINGID_PKMNSKETCHEDMOVE', | |
'STRINGID_PKMNTRYINGTOTAKEFOE', | |
'STRINGID_PKMNTOOKFOE', | |
'STRINGID_PKMNREDUCEDPP', | |
'STRINGID_PKMNSTOLEITEM', | |
'STRINGID_TARGETCANTESCAPENOW', | |
'STRINGID_PKMNFELLINTONIGHTMARE', | |
'STRINGID_PKMNLOCKEDINNIGHTMARE', | |
'STRINGID_PKMNLAIDCURSE', | |
'STRINGID_PKMNAFFLICTEDBYCURSE', | |
'STRINGID_SPIKESSCATTERED', | |
'STRINGID_PKMNHURTBYSPIKES', | |
'STRINGID_PKMNIDENTIFIED', | |
'STRINGID_PKMNPERISHCOUNTFELL', | |
'STRINGID_PKMNBRACEDITSELF', | |
'STRINGID_PKMNENDUREDHIT', | |
'STRINGID_MAGNITUDESTRENGTH', | |
'STRINGID_PKMNCUTHPMAXEDATTACK', | |
'STRINGID_PKMNCOPIEDSTATCHANGES', | |
'STRINGID_PKMNGOTFREE', | |
'STRINGID_PKMNSHEDLEECHSEED', | |
'STRINGID_PKMNBLEWAWAYSPIKES', | |
'STRINGID_PKMNFLEDFROMBATTLE', | |
'STRINGID_PKMNFORESAWATTACK', | |
'STRINGID_PKMNTOOKATTACK', | |
'STRINGID_PKMNATTACK', | |
'STRINGID_PKMNCENTERATTENTION', | |
'STRINGID_PKMNCHARGINGPOWER', | |
'STRINGID_NATUREPOWERTURNEDINTO', | |
'STRINGID_PKMNSTATUSNORMAL', | |
'STRINGID_PKMNHASNOMOVESLEFT', | |
'STRINGID_PKMNSUBJECTEDTOTORMENT', | |
'STRINGID_PKMNCANTUSEMOVETORMENT', | |
'STRINGID_PKMNTIGHTENINGFOCUS', | |
'STRINGID_PKMNFELLFORTAUNT', | |
'STRINGID_PKMNCANTUSEMOVETAUNT', | |
'STRINGID_PKMNREADYTOHELP', | |
'STRINGID_PKMNSWITCHEDITEMS', | |
'STRINGID_PKMNCOPIEDFOE', | |
'STRINGID_PKMNMADEWISH', | |
'STRINGID_PKMNWISHCAMETRUE', | |
'STRINGID_PKMNPLANTEDROOTS', | |
'STRINGID_PKMNABSORBEDNUTRIENTS', | |
'STRINGID_PKMNANCHOREDITSELF', | |
'STRINGID_PKMNWASMADEDROWSY', | |
'STRINGID_PKMNKNOCKEDOFF', | |
'STRINGID_PKMNSWAPPEDABILITIES', | |
'STRINGID_PKMNSEALEDOPPONENTMOVE', | |
'STRINGID_PKMNCANTUSEMOVESEALED', | |
'STRINGID_PKMNWANTSGRUDGE', | |
'STRINGID_PKMNLOSTPPGRUDGE', | |
'STRINGID_PKMNSHROUDEDITSELF', | |
'STRINGID_PKMNMOVEBOUNCED', | |
'STRINGID_PKMNWAITSFORTARGET', | |
'STRINGID_PKMNSNATCHEDMOVE', | |
'STRINGID_PKMNMADEITRAIN', | |
'STRINGID_PKMNRAISEDSPEED', | |
'STRINGID_PKMNPROTECTEDBY', | |
'STRINGID_PKMNPREVENTSUSAGE', | |
'STRINGID_PKMNRESTOREDHPUSING', | |
'STRINGID_PKMNCHANGEDTYPEWITH', | |
'STRINGID_PKMNPREVENTSPARALYSISWITH', | |
'STRINGID_PKMNPREVENTSROMANCEWITH', | |
'STRINGID_PKMNPREVENTSPOISONINGWITH', | |
'STRINGID_PKMNPREVENTSCONFUSIONWITH', | |
'STRINGID_PKMNRAISEDFIREPOWERWITH', | |
'STRINGID_PKMNANCHORSITSELFWITH', | |
'STRINGID_PKMNCUTSATTACKWITH', | |
'STRINGID_PKMNPREVENTSSTATLOSSWITH', | |
'STRINGID_PKMNHURTSWITH', | |
'STRINGID_PKMNTRACED', | |
'STRINGID_STATSHARPLY', | |
'STRINGID_STATROSE', | |
'STRINGID_STATHARSHLY', | |
'STRINGID_STATFELL', | |
'STRINGID_PKMNSSTATCHANGED', | |
'STRINGID_PKMNSSTATCHANGED2', | |
'STRINGID_PKMNSSTATCHANGED3', | |
'STRINGID_PKMNSSTATCHANGED4', | |
'STRINGID_CRITICALHIT', | |
'STRINGID_ONEHITKO', | |
'STRINGID_123POOF', | |
'STRINGID_ANDELLIPSIS', | |
'STRINGID_NOTVERYEFFECTIVE', | |
'STRINGID_SUPEREFFECTIVE', | |
'STRINGID_GOTAWAYSAFELY', | |
'STRINGID_WILDPKMNFLED', | |
'STRINGID_NORUNNINGFROMTRAINERS', | |
'STRINGID_CANTESCAPE', | |
'STRINGID_DONTLEAVEBIRCH', | |
'STRINGID_BUTNOTHINGHAPPENED', | |
'STRINGID_BUTITFAILED', | |
'STRINGID_ITHURTCONFUSION', | |
'STRINGID_MIRRORMOVEFAILED', | |
'STRINGID_STARTEDTORAIN', | |
'STRINGID_DOWNPOURSTARTED', | |
'STRINGID_RAINCONTINUES', | |
'STRINGID_DOWNPOURCONTINUES', | |
'STRINGID_RAINSTOPPED', | |
'STRINGID_SANDSTORMBREWED', | |
'STRINGID_SANDSTORMRAGES', | |
'STRINGID_SANDSTORMSUBSIDED', | |
'STRINGID_SUNLIGHTGOTBRIGHT', | |
'STRINGID_SUNLIGHTSTRONG', | |
'STRINGID_SUNLIGHTFADED', | |
'STRINGID_STARTEDHAIL', | |
'STRINGID_HAILCONTINUES', | |
'STRINGID_HAILSTOPPED', | |
'STRINGID_FAILEDTOSPITUP', | |
'STRINGID_FAILEDTOSWALLOW', | |
'STRINGID_WINDBECAMEHEATWAVE', | |
'STRINGID_STATCHANGESGONE', | |
'STRINGID_COINSSCATTERED', | |
'STRINGID_TOOWEAKFORSUBSTITUTE', | |
'STRINGID_SHAREDPAIN', | |
'STRINGID_BELLCHIMED', | |
'STRINGID_FAINTINTHREE', | |
'STRINGID_NOPPLEFT', | |
'STRINGID_BUTNOPPLEFT', | |
'STRINGID_PLAYERUSEDITEM', | |
'STRINGID_WALLYUSEDITEM', | |
'STRINGID_TRAINERBLOCKEDBALL', | |
'STRINGID_DONTBEATHIEF', | |
'STRINGID_ITDODGEDBALL', | |
'STRINGID_YOUMISSEDPKMN', | |
'STRINGID_PKMNBROKEFREE', | |
'STRINGID_ITAPPEAREDCAUGHT', | |
'STRINGID_AARGHALMOSTHADIT', | |
'STRINGID_SHOOTSOCLOSE', | |
'STRINGID_GOTCHAPKMNCAUGHT', | |
'STRINGID_GOTCHAPKMNCAUGHT2', | |
'STRINGID_GIVENICKNAMECAPTURED', | |
'STRINGID_PKMNSENTTOPC', | |
'STRINGID_PKMNDATAADDEDTODEX', | |
'STRINGID_ITISRAINING', | |
'STRINGID_SANDSTORMISRAGING', | |
'STRINGID_CANTESCAPE2', | |
'STRINGID_PKMNIGNORESASLEEP', | |
'STRINGID_PKMNIGNOREDORDERS', | |
'STRINGID_PKMNBEGANTONAP', | |
'STRINGID_PKMNLOAFING', | |
'STRINGID_PKMNWONTOBEY', | |
'STRINGID_PKMNTURNEDAWAY', | |
'STRINGID_PKMNPRETENDNOTNOTICE', | |
'STRINGID_ENEMYABOUTTOSWITCHPKMN', | |
'STRINGID_CREPTCLOSER', | |
'STRINGID_CANTGETCLOSER', | |
'STRINGID_PKMNWATCHINGCAREFULLY', | |
'STRINGID_PKMNCURIOUSABOUTX', | |
'STRINGID_PKMNENTHRALLEDBYX', | |
'STRINGID_PKMNIGNOREDX', | |
'STRINGID_THREWPOKEBLOCKATPKMN', | |
'STRINGID_OUTOFSAFARIBALLS', | |
'STRINGID_PKMNSITEMCUREDPARALYSIS', | |
'STRINGID_PKMNSITEMCUREDPOISON', | |
'STRINGID_PKMNSITEMHEALEDBURN', | |
'STRINGID_PKMNSITEMDEFROSTEDIT', | |
'STRINGID_PKMNSITEMWOKEIT', | |
'STRINGID_PKMNSITEMSNAPPEDOUT', | |
'STRINGID_PKMNSITEMCUREDPROBLEM', | |
'STRINGID_PKMNSITEMRESTOREDHEALTH', | |
'STRINGID_PKMNSITEMRESTOREDPP', | |
'STRINGID_PKMNSITEMRESTOREDSTATUS', | |
'STRINGID_PKMNSITEMRESTOREDHPALITTLE', | |
'STRINGID_ITEMALLOWSONLYYMOVE', | |
'STRINGID_PKMNHUNGONWITHX', | |
'STRINGID_EMPTYSTRING3', | |
'STRINGID_PKMNSXPREVENTSBURNS', | |
'STRINGID_PKMNSXBLOCKSY', | |
'STRINGID_PKMNSXRESTOREDHPALITTLE2', | |
'STRINGID_PKMNSXWHIPPEDUPSANDSTORM', | |
'STRINGID_PKMNSXPREVENTSYLOSS', | |
'STRINGID_PKMNSXINFATUATEDY', | |
'STRINGID_PKMNSXMADEYINEFFECTIVE', | |
'STRINGID_PKMNSXCUREDYPROBLEM', | |
'STRINGID_ITSUCKEDLIQUIDOOZE', | |
'STRINGID_PKMNTRANSFORMED', | |
'STRINGID_ELECTRICITYWEAKENED', | |
'STRINGID_FIREWEAKENED', | |
'STRINGID_PKMNHIDUNDERWATER', | |
'STRINGID_PKMNSPRANGUP', | |
'STRINGID_HMMOVESCANTBEFORGOTTEN', | |
'STRINGID_XFOUNDONEY', | |
'STRINGID_PLAYERDEFEATEDTRAINER1', | |
'STRINGID_SOOTHINGAROMA', | |
'STRINGID_ITEMSCANTBEUSEDNOW', | |
'STRINGID_FORXCOMMAYZ', | |
'STRINGID_USINGXTHEYOFZN', | |
'STRINGID_PKMNUSEDXTOGETPUMPED', | |
'STRINGID_PKMNSXMADEYUSELESS', | |
'STRINGID_PKMNTRAPPEDBYSANDTOMB', | |
'STRINGID_EMPTYSTRING4', | |
'STRINGID_ABOOSTED', | |
'STRINGID_PKMNSXINTENSIFIEDSUN', | |
'STRINGID_PKMNMAKESGROUNDMISS', | |
'STRINGID_YOUTHROWABALLNOWRIGHT', | |
'STRINGID_PKMNSXTOOKATTACK', | |
'STRINGID_PKMNCHOSEXASDESTINY', | |
'STRINGID_PKMNLOSTFOCUS', | |
'STRINGID_USENEXTPKMN', | |
'STRINGID_PKMNFLEDUSINGITS', | |
'STRINGID_PKMNFLEDUSING', | |
'STRINGID_PKMNWASDRAGGEDOUT', | |
'STRINGID_PREVENTEDFROMWORKING', | |
'STRINGID_PKMNSITEMNORMALIZEDSTATUS', | |
'STRINGID_TRAINER1USEDITEM', | |
'STRINGID_BOXISFULL', | |
'STRINGID_PKMNAVOIDEDATTACK', | |
'STRINGID_PKMNSXMADEITINEFFECTIVE', | |
'STRINGID_PKMNSXPREVENTSFLINCHING', | |
'STRINGID_PKMNALREADYHASBURN', | |
'STRINGID_STATSWONTDECREASE2', | |
'STRINGID_PKMNSXBLOCKSY2', | |
'STRINGID_PKMNSXWOREOFF', | |
'STRINGID_PKMNRAISEDDEFALITTLE', | |
'STRINGID_PKMNRAISEDSPDEFALITTLE', | |
'STRINGID_THEWALLSHATTERED', | |
'STRINGID_PKMNSXPREVENTSYSZ', | |
'STRINGID_PKMNSXCUREDITSYPROBLEM', | |
'STRINGID_ATTACKERCANTESCAPE', | |
'STRINGID_PKMNOBTAINEDX', | |
'STRINGID_PKMNOBTAINEDX2', | |
'STRINGID_PKMNOBTAINEDXYOBTAINEDZ', | |
'STRINGID_BUTNOEFFECT', | |
'STRINGID_PKMNSXHADNOEFFECTONY', | |
'STRINGID_TWOENEMIESDEFEATED', | |
'STRINGID_TRAINER2LOSETEXT', | |
'STRINGID_PKMNINCAPABLEOFPOWER', | |
'STRINGID_GLINTAPPEARSINEYE', | |
'STRINGID_PKMNGETTINGINTOPOSITION', | |
'STRINGID_PKMNBEGANGROWLINGDEEPLY', | |
'STRINGID_PKMNEAGERFORMORE', | |
'STRINGID_DEFEATEDOPPONENTBYREFEREE', | |
'STRINGID_LOSTTOOPPONENTBYREFEREE', | |
'STRINGID_TIEDOPPONENTBYREFEREE', | |
'STRINGID_QUESTIONFORFEITMATCH', | |
'STRINGID_FORFEITEDMATCH', | |
'STRINGID_PKMNTRANSFERREDSOMEONESPC', | |
'STRINGID_PKMNTRANSFERREDLANETTESPC', | |
'STRINGID_PKMNBOXSOMEONESPCFULL', | |
'STRINGID_PKMNBOXLANETTESPCFULL', | |
'STRINGID_TRAINER1WINTEXT', | |
'STRINGID_TRAINER2WINTEXT' | |
] | |
MOVE_EFFECTS = [ | |
'EFFECT_HIT', | |
'EFFECT_SLEEP', | |
'EFFECT_POISON_HIT', | |
'EFFECT_ABSORB', | |
'EFFECT_BURN_HIT', | |
'EFFECT_FREEZE_HIT', | |
'EFFECT_PARALYZE_HIT', | |
'EFFECT_EXPLOSION', | |
'EFFECT_DREAM_EATER', | |
'EFFECT_MIRROR_MOVE', | |
'EFFECT_ATTACK_UP', | |
'EFFECT_DEFENSE_UP', | |
'EFFECT_SPEED_UP', | |
'EFFECT_SPECIAL_ATTACK_UP', | |
'EFFECT_SPECIAL_DEFENSE_UP', | |
'EFFECT_ACCURACY_UP', | |
'EFFECT_EVASION_UP', | |
'EFFECT_ALWAYS_HIT', | |
'EFFECT_ATTACK_DOWN', | |
'EFFECT_DEFENSE_DOWN', | |
'EFFECT_SPEED_DOWN', | |
'EFFECT_SPECIAL_ATTACK_DOWN', | |
'EFFECT_SPECIAL_DEFENSE_DOWN', | |
'EFFECT_ACCURACY_DOWN', | |
'EFFECT_EVASION_DOWN', | |
'EFFECT_HAZE', | |
'EFFECT_BIDE', | |
'EFFECT_RAMPAGE', | |
'EFFECT_ROAR', | |
'EFFECT_MULTI_HIT', | |
'EFFECT_CONVERSION', | |
'EFFECT_FLINCH_HIT', | |
'EFFECT_RESTORE_HP', | |
'EFFECT_TOXIC', | |
'EFFECT_PAY_DAY', | |
'EFFECT_LIGHT_SCREEN', | |
'EFFECT_TRI_ATTACK', | |
'EFFECT_REST', | |
'EFFECT_OHKO', | |
'EFFECT_RAZOR_WIND', | |
'EFFECT_SUPER_FANG', | |
'EFFECT_DRAGON_RAGE', | |
'EFFECT_TRAP', | |
'EFFECT_HIGH_CRITICAL', | |
'EFFECT_DOUBLE_HIT', | |
'EFFECT_RECOIL_IF_MISS', | |
'EFFECT_MIST', | |
'EFFECT_FOCUS_ENERGY', | |
'EFFECT_RECOIL', | |
'EFFECT_CONFUSE', | |
'EFFECT_ATTACK_UP_2', | |
'EFFECT_DEFENSE_UP_2', | |
'EFFECT_SPEED_UP_2', | |
'EFFECT_SPECIAL_ATTACK_UP_2', | |
'EFFECT_SPECIAL_DEFENSE_UP_2', | |
'EFFECT_ACCURACY_UP_2', | |
'EFFECT_EVASION_UP_2', | |
'EFFECT_TRANSFORM', | |
'EFFECT_ATTACK_DOWN_2', | |
'EFFECT_DEFENSE_DOWN_2', | |
'EFFECT_SPEED_DOWN_2', | |
'EFFECT_SPECIAL_ATTACK_DOWN_2', | |
'EFFECT_SPECIAL_DEFENSE_DOWN_2', | |
'EFFECT_ACCURACY_DOWN_2', | |
'EFFECT_EVASION_DOWN_2', | |
'EFFECT_REFLECT', | |
'EFFECT_POISON', | |
'EFFECT_PARALYZE', | |
'EFFECT_ATTACK_DOWN_HIT', | |
'EFFECT_DEFENSE_DOWN_HIT', | |
'EFFECT_SPEED_DOWN_HIT', | |
'EFFECT_SPECIAL_ATTACK_DOWN_HIT', | |
'EFFECT_SPECIAL_DEFENSE_DOWN_HIT', | |
'EFFECT_ACCURACY_DOWN_HIT', | |
'EFFECT_EVASION_DOWN_HIT', | |
'EFFECT_SKY_ATTACK', | |
'EFFECT_CONFUSE_HIT', | |
'EFFECT_TWINEEDLE', | |
'EFFECT_VITAL_THROW', | |
'EFFECT_SUBSTITUTE', | |
'EFFECT_RECHARGE', | |
'EFFECT_RAGE', | |
'EFFECT_MIMIC', | |
'EFFECT_METRONOME', | |
'EFFECT_LEECH_SEED', | |
'EFFECT_SPLASH', | |
'EFFECT_DISABLE', | |
'EFFECT_LEVEL_DAMAGE', | |
'EFFECT_PSYWAVE', | |
'EFFECT_COUNTER', | |
'EFFECT_ENCORE', | |
'EFFECT_PAIN_SPLIT', | |
'EFFECT_SNORE', | |
'EFFECT_CONVERSION_2', | |
'EFFECT_LOCK_ON', | |
'EFFECT_SKETCH', | |
'EFFECT_UNUSED_60', | |
'EFFECT_SLEEP_TALK', | |
'EFFECT_DESTINY_BOND', | |
'EFFECT_FLAIL', | |
'EFFECT_SPITE', | |
'EFFECT_FALSE_SWIPE', | |
'EFFECT_HEAL_BELL', | |
'EFFECT_QUICK_ATTACK', | |
'EFFECT_TRIPLE_KICK', | |
'EFFECT_THIEF', | |
'EFFECT_MEAN_LOOK', | |
'EFFECT_NIGHTMARE', | |
'EFFECT_MINIMIZE', | |
'EFFECT_CURSE', | |
'EFFECT_UNUSED_6E', | |
'EFFECT_PROTECT', | |
'EFFECT_SPIKES', | |
'EFFECT_FORESIGHT', | |
'EFFECT_PERISH_SONG', | |
'EFFECT_SANDSTORM', | |
'EFFECT_ENDURE', | |
'EFFECT_ROLLOUT', | |
'EFFECT_SWAGGER', | |
'EFFECT_FURY_CUTTER', | |
'EFFECT_ATTRACT', | |
'EFFECT_RETURN', | |
'EFFECT_PRESENT', | |
'EFFECT_FRUSTRATION', | |
'EFFECT_SAFEGUARD', | |
'EFFECT_THAW_HIT', | |
'EFFECT_MAGNITUDE', | |
'EFFECT_BATON_PASS', | |
'EFFECT_PURSUIT', | |
'EFFECT_RAPID_SPIN', | |
'EFFECT_SONICBOOM', | |
'EFFECT_UNUSED_83', | |
'EFFECT_MORNING_SUN', | |
'EFFECT_SYNTHESIS', | |
'EFFECT_MOONLIGHT', | |
'EFFECT_HIDDEN_POWER', | |
'EFFECT_RAIN_DANCE', | |
'EFFECT_SUNNY_DAY', | |
'EFFECT_DEFENSE_UP_HIT', | |
'EFFECT_ATTACK_UP_HIT', | |
'EFFECT_ALL_STATS_UP_HIT', | |
'EFFECT_UNUSED_8D', | |
'EFFECT_BELLY_DRUM', | |
'EFFECT_PSYCH_UP', | |
'EFFECT_MIRROR_COAT', | |
'EFFECT_SKULL_BASH', | |
'EFFECT_TWISTER', | |
'EFFECT_EARTHQUAKE', | |
'EFFECT_FUTURE_SIGHT', | |
'EFFECT_GUST', | |
'EFFECT_FLINCH_MINIMIZE_HIT', | |
'EFFECT_SOLARBEAM', | |
'EFFECT_THUNDER', | |
'EFFECT_TELEPORT', | |
'EFFECT_BEAT_UP', | |
'EFFECT_SEMI_INVULNERABLE', | |
'EFFECT_DEFENSE_CURL', | |
'EFFECT_SOFTBOILED', | |
'EFFECT_FAKE_OUT', | |
'EFFECT_UPROAR', | |
'EFFECT_STOCKPILE', | |
'EFFECT_SPIT_UP', | |
'EFFECT_SWALLOW', | |
'EFFECT_UNUSED_A3', | |
'EFFECT_HAIL', | |
'EFFECT_TORMENT', | |
'EFFECT_FLATTER', | |
'EFFECT_WILL_O_WISP', | |
'EFFECT_MEMENTO', | |
'EFFECT_FACADE', | |
'EFFECT_FOCUS_PUNCH', | |
'EFFECT_SMELLINGSALT', | |
'EFFECT_FOLLOW_ME', | |
'EFFECT_NATURE_POWER', | |
'EFFECT_CHARGE', | |
'EFFECT_TAUNT', | |
'EFFECT_HELPING_HAND', | |
'EFFECT_TRICK', | |
'EFFECT_ROLE_PLAY', | |
'EFFECT_WISH', | |
'EFFECT_ASSIST', | |
'EFFECT_INGRAIN', | |
'EFFECT_SUPERPOWER', | |
'EFFECT_MAGIC_COAT', | |
'EFFECT_RECYCLE', | |
'EFFECT_REVENGE', | |
'EFFECT_BRICK_BREAK', | |
'EFFECT_YAWN', | |
'EFFECT_KNOCK_OFF', | |
'EFFECT_ENDEAVOR', | |
'EFFECT_ERUPTION', | |
'EFFECT_SKILL_SWAP', | |
'EFFECT_IMPRISON', | |
'EFFECT_REFRESH', | |
'EFFECT_GRUDGE', | |
'EFFECT_SNATCH', | |
'EFFECT_LOW_KICK', | |
'EFFECT_SECRET_POWER', | |
'EFFECT_DOUBLE_EDGE', | |
'EFFECT_TEETER_DANCE', | |
'EFFECT_BLAZE_KICK', | |
'EFFECT_MUD_SPORT', | |
'EFFECT_POISON_FANG', | |
'EFFECT_WEATHER_BALL', | |
'EFFECT_OVERHEAT', | |
'EFFECT_TICKLE', | |
'EFFECT_COSMIC_POWER', | |
'EFFECT_SKY_UPPERCUT', | |
'EFFECT_BULK_UP', | |
'EFFECT_POISON_TAIL', | |
'EFFECT_WATER_SPORT', | |
'EFFECT_CALM_MIND', | |
'EFFECT_DRAGON_DANCE', | |
'EFFECT_CAMOUFLAGE' | |
] | |
ABILITIES = [ | |
'ABILITY_NONE', | |
'ABILITY_STENCH', | |
'ABILITY_DRIZZLE', | |
'ABILITY_SPEED_BOOST', | |
'ABILITY_BATTLE_ARMOR', | |
'ABILITY_STURDY', | |
'ABILITY_DAMP', | |
'ABILITY_LIMBER', | |
'ABILITY_SAND_VEIL', | |
'ABILITY_STATIC', | |
'ABILITY_VOLT_ABSORB', | |
'ABILITY_WATER_ABSORB', | |
'ABILITY_OBLIVIOUS', | |
'ABILITY_CLOUD_NINE', | |
'ABILITY_COMPOUND_EYES', | |
'ABILITY_INSOMNIA', | |
'ABILITY_COLOR_CHANGE', | |
'ABILITY_IMMUNITY', | |
'ABILITY_FLASH_FIRE', | |
'ABILITY_SHIELD_DUST', | |
'ABILITY_OWN_TEMPO', | |
'ABILITY_SUCTION_CUPS', | |
'ABILITY_INTIMIDATE', | |
'ABILITY_SHADOW_TAG', | |
'ABILITY_ROUGH_SKIN', | |
'ABILITY_WONDER_GUARD', | |
'ABILITY_LEVITATE', | |
'ABILITY_EFFECT_SPORE', | |
'ABILITY_SYNCHRONIZE', | |
'ABILITY_CLEAR_BODY', | |
'ABILITY_NATURAL_CURE', | |
'ABILITY_LIGHTNING_ROD', | |
'ABILITY_SERENE_GRACE', | |
'ABILITY_SWIFT_SWIM', | |
'ABILITY_CHLOROPHYLL', | |
'ABILITY_ILLUMINATE', | |
'ABILITY_TRACE', | |
'ABILITY_HUGE_POWER', | |
'ABILITY_POISON_POINT', | |
'ABILITY_INNER_FOCUS', | |
'ABILITY_MAGMA_ARMOR', | |
'ABILITY_WATER_VEIL', | |
'ABILITY_MAGNET_PULL', | |
'ABILITY_SOUNDPROOF', | |
'ABILITY_RAIN_DISH', | |
'ABILITY_SAND_STREAM', | |
'ABILITY_PRESSURE', | |
'ABILITY_THICK_FAT', | |
'ABILITY_EARLY_BIRD', | |
'ABILITY_FLAME_BODY', | |
'ABILITY_RUN_AWAY', | |
'ABILITY_KEEN_EYE', | |
'ABILITY_HYPER_CUTTER', | |
'ABILITY_PICKUP', | |
'ABILITY_TRUANT', | |
'ABILITY_HUSTLE', | |
'ABILITY_CUTE_CHARM', | |
'ABILITY_PLUS', | |
'ABILITY_MINUS', | |
'ABILITY_FORECAST', | |
'ABILITY_STICKY_HOLD', | |
'ABILITY_SHED_SKIN', | |
'ABILITY_GUTS', | |
'ABILITY_MARVEL_SCALE', | |
'ABILITY_LIQUID_OOZE', | |
'ABILITY_OVERGROW', | |
'ABILITY_BLAZE', | |
'ABILITY_TORRENT', | |
'ABILITY_SWARM', | |
'ABILITY_ROCK_HEAD', | |
'ABILITY_DROUGHT', | |
'ABILITY_ARENA_TRAP', | |
'ABILITY_VITAL_SPIRIT', | |
'ABILITY_WHITE_SMOKE', | |
'ABILITY_PURE_POWER', | |
'ABILITY_SHELL_ARMOR', | |
'ABILITY_CACOPHONY', | |
'ABILITY_AIR_LOCK', | |
] | |
COMPAR = [ | |
'CMP_EQUAL', | |
'CMP_NOT_EQUAL', | |
'CMP_GREATER_THAN', | |
'CMP_LESS_THAN', | |
'CMP_COMMON_BITS', | |
'CMP_NO_COMMON_BITS' | |
] | |
BATTLE_TYPE_FLAGS = [ | |
'BATTLE_TYPE_DOUBLE', | |
'BATTLE_TYPE_LINK', | |
'BATTLE_TYPE_IS_MASTER', | |
'BATTLE_TYPE_TRAINER', | |
'BATTLE_TYPE_FIRST_BATTLE', | |
'BATTLE_TYPE_20', | |
'BATTLE_TYPE_MULTI', | |
'BATTLE_TYPE_SAFARI', | |
'BATTLE_TYPE_BATTLE_TOWER', | |
'BATTLE_TYPE_OLD_MAN_TUTORIAL', | |
'BATTLE_TYPE_ROAMER', | |
'BATTLE_TYPE_EREADER_TRAINER', | |
'BATTLE_TYPE_KYOGRE_GROUDON', | |
'BATTLE_TYPE_LEGENDARY', | |
'BATTLE_TYPE_REGI', | |
'BATTLE_TYPE_GHOST', | |
'BATTLE_TYPE_POKEDUDE', | |
'BATTLE_TYPE_PALACE', | |
'BATTLE_TYPE_ARENA', | |
'BATTLE_TYPE_TRAINER_TOWER', | |
'BATTLE_TYPE_PIKE', | |
'BATTLE_TYPE_PYRAMID', | |
'BATTLE_TYPE_INGAME_PARTNER', | |
'BATTLE_TYPE_x800000', | |
'BATTLE_TYPE_RECORDED', | |
'BATTLE_TYPE_x2000000', | |
'BATTLE_TYPE_TRAINER_HILL', | |
'BATTLE_TYPE_SECRET_BASE', | |
'BATTLE_TYPE_GROUDON', | |
'BATTLE_TYPE_KYOGRE', | |
'BATTLE_TYPE_RAYQUAZA', | |
'BATTLE_TYPE_x80000000', | |
] | |
BATTLE_SCRIPT_OFFSETS = [ | |
'sPAINSPLIT_HP', | |
None, | |
None, | |
None, | |
'sBIDE_DMG', | |
None, | |
None, | |
None, | |
'sMULTIHIT_STRING', | |
None, | |
None, | |
None, | |
None, | |
None, | |
'sDMG_MULTIPLIER', | |
'sTWOTURN_STRINGID', | |
'sB_ANIM_ARG1', | |
'sB_ANIM_ARG2', | |
'sTRIPLE_KICK_POWER', | |
None, | |
'sMOVEEND_STATE', | |
'sBATTLER_WITH_ABILITY', | |
'sMULTIHIT_EFFECT', | |
'sBATTLER', | |
'sB_ANIM_TURN', | |
'sB_ANIM_TARGETS_HIT', | |
'sSTATCHANGER', | |
'sSTAT_ANIM_PLAYED', | |
'sGIVEEXP_STATE', | |
'sBATTLE_STYLE', | |
'sLVLBOX_STATE', | |
'sLEARNMOVE_STATE', | |
'sFIELD_20', | |
'sRESHOW_MAIN_STATE', | |
'sRESHOW_HELPER_STATE', | |
'sFIELD_23', | |
'sWINDOWS_TYPE', | |
'sMULTIPLAYER_ID', | |
'sSPECIAL_TRAINER_BATTLE_TYPE' | |
] | |
HITMARKER = [ | |
None, | |
None, | |
None, | |
None, | |
'HITMARKER_x10', | |
'HITMARKER_x20', | |
'HITMARKER_DESTINYBOND', | |
'HITMARKER_NO_ANIMATIONS', | |
'HITMARKER_IGNORE_SUBSTITUTE', | |
'HITMARKER_NO_ATTACKSTRING', | |
'HITMARKER_ATTACKSTRING_PRINTED', | |
'HITMARKER_NO_PPDEDUCT', | |
'HITMARKER_SWAP_ATTACKER_TARGET', | |
'HITMARKER_IGNORE_SAFEGUARD', | |
'HITMARKER_SYNCHRONISE_EFFECT', | |
'HITMARKER_RUN', | |
'HITMARKER_IGNORE_ON_AIR', | |
'HITMARKER_IGNORE_UNDERGROUND', | |
'HITMARKER_IGNORE_UNDERWATER', | |
'HITMARKER_UNABLE_TO_USE_MOVE', | |
'HITMARKER_x100000', | |
'HITMARKER_x200000', | |
'HITMARKER_x400000', | |
'HITMARKER_x800000', | |
'HITMARKER_GRUDGE', | |
'HITMARKER_OBEYS', | |
'HITMARKER_x4000000', | |
'HITMARKER_CHARGING', | |
'HITMARKER_UNK(0)', | |
'HITMARKER_UNK(1)', | |
'HITMARKER_UNK(2)', | |
'HITMARKER_UNK(3)' | |
] | |
with open('tmp.json') as fp: | |
commands = json.load(fp)['commands'] | |
symbols = {} | |
with open('pokefirered.map') as mapfile: | |
for line in mapfile: | |
m = re.match(r'^ +(0x0[238][0-9a-f]{6}) +(\w+)$', line) | |
if m: | |
symbols[int(m[1], 0)] = m[2] | |
pointers = {} | |
name = '' | |
end = 0 | |
with open('data/battle_scripts_1.s') as fp: | |
for line in fp: | |
if '::' in line: | |
name = line.split('::')[0] | |
elif 'baserom.gba' in line: | |
addr, size = [int(x, 0) for x in line.split(', ')[1:]] | |
if not name: | |
name = f'BattleScript_8{addr:06X}' | |
pointers[addr] = name | |
name = '' | |
end = max(end, addr + size) | |
ptr_table_addr = min(pointers) | |
ptr_table_name = pointers.pop(ptr_table_addr) | |
script_ptrs = [] | |
with open('baserom.gba', 'rb') as rom: | |
print('#include "constants/moves.h"') | |
print('#include "constants/battle.h"') | |
print('#include "constants/battle_move_effects.h"') | |
print('#include "constants/battle_script_commands.h"') | |
print('#include "constants/battle_anim.h"') | |
print('#include "constants/items.h"') | |
print('#include "constants/abilities.h"') | |
print('#include "constants/species.h"') | |
print('\t.include "asm/macros/battle_script.inc"') | |
print('\t.section script_data, "aw", %progbits') | |
print('\t.align 2') | |
print('') | |
rom.seek(ptr_table_addr) | |
print(f'{ptr_table_name}:: @ 8{ptr_table_addr:06X}') | |
i = 0 | |
while True: | |
ptr = int.from_bytes(rom.read(4), 'little') | |
if ptr >> 24 != 8: | |
break | |
ptr &= 0xFFFFFF | |
if ptr not in pointers: | |
if i < len(MOVE_EFFECTS): | |
name = MOVE_EFFECTS[i].title().replace('_', '') | |
pointers[ptr] = f'BattleScript_{name}' | |
else: | |
pointers[ptr] = f'BattleScript_8{ptr:06X}' | |
print(f'\t.4byte {pointers[ptr]}') | |
i += 1 | |
rom.seek(min(pointers)) | |
while rom.tell() < end: | |
cmd, = rom.read(1) | |
if cmd < len(commands): | |
values = commands[cmd] | |
if values['args']: | |
args = [] | |
for arg in values['args']: | |
value = int.from_bytes(rom.read(arg['nbytes']), 'little') | |
if arg['nbytes'] == 4 and value >> 24 == 8 and value & 0xFFFFFF not in pointers and min(pointers) <= value & 0xFFFFFF < end: | |
pointers[value & 0xFFFFFF] = f'BattleScript_{value:X}' | |
rom.seek(min(pointers)) | |
while rom.tell() < end: | |
if rom.tell() in pointers: | |
print('') | |
print(f'{pointers[rom.tell()]}:: @ 8{rom.tell():06X}') | |
cmd, = rom.read(1) | |
if cmd < len(commands): | |
values = commands[cmd] | |
cmdname = values['name'] | |
if values['args']: | |
args = [] | |
for i, arg in enumerate(values['args']): | |
value = int.from_bytes(rom.read(arg['nbytes']), 'little') | |
if arg['nbytes'] == 1: | |
if i == {'jumpifability': 1, 'jumpifabilitypresent': 0}.get(cmdname, -1): | |
args.append(ABILITIES[value]) | |
elif cmdname in ('jumpifword', 'jumpifhalfword', 'jumpifbyte') and i == 0: | |
args.append(COMPAR[value]) | |
else: | |
args.append(f'0x{value:02X}') | |
elif arg['nbytes'] == 2: | |
if cmdname == 'printstring' and value < len(STRING_IDS) and STRING_IDS[value]: | |
args.append(STRING_IDS[value]) | |
elif cmdname in ('atk55', 'atk54'): | |
args.append(SONGS[value]) | |
else: | |
args.append(f'0x{value:04X}') | |
else: | |
if i == {'jumpifword': 2, 'orword': 1}.get(cmdname, -1) and args[-1] in ('gBattleTypeFlags', 'gHitMarker'): | |
flags = [] | |
array = {'gBattleTypeFlags': BATTLE_TYPE_FLAGS, 'gHitMarker': HITMARKER}[args[-1]] | |
for bit in range(32): | |
if (value >> bit) & 1: | |
flags.append(array[bit]) | |
args.append(' | '.join(flags) or 0) | |
else: | |
if value >> 24 in (2, 3, 8): | |
if value >> 24 == 8 and value & 0xFFFFFF in pointers: | |
value = pointers[value & 0xFFFFFF] | |
else: | |
value = symbols.get(value, value) | |
if isinstance(value, int): | |
for delta in range(1, 0x400): | |
if value - delta in symbols: | |
break | |
if symbols[value - delta] == 'gBattleScripting' and delta < len(BATTLE_SCRIPT_OFFSETS) and BATTLE_SCRIPT_OFFSETS[delta]: | |
value = BATTLE_SCRIPT_OFFSETS[delta] | |
else: | |
value = f'{symbols[value - delta]} + 0x{delta:X}' | |
if isinstance(value, str): | |
args.append(value) | |
else: | |
args.append(f'0x{value:08X}') | |
print('', cmdname, sep='\t', end=' ') | |
print(*args, sep=', ') | |
else: | |
print('', cmdname, sep='\t') | |
else: | |
print(f'\t.byte 0x{cmd:02X}') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"commands": [ | |
{ | |
"name": "attackcanceler", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "accuracycheck", | |
"args": [ | |
{"name": "address", "nbytes": 4}, | |
{"name": "param1", "nbytes": 2} | |
] | |
}, | |
{ | |
"name": "attackstring", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "ppreduce", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "critcalc", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk5", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk6", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk7", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk8", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "attackanimation", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "waitanimation", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "graphicalhpupdate", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "datahpupdate", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "critmessage", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "missmessage", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "resultmessage", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "printstring", | |
"args": [ | |
{"name": "string", "nbytes": 2} | |
] | |
}, | |
{ | |
"name": "printstring2", | |
"args": [ | |
{"name": "string", "nbytes": 2} | |
] | |
}, | |
{ | |
"name": "waitmessage", | |
"args": [ | |
{"name": "delay", "nbytes": 2} | |
] | |
}, | |
{ | |
"name": "printfromtable", | |
"args": [ | |
{"name": "table", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "printfromtable2", | |
"args": [ | |
{"name": "table", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "seteffectwithchancetarget", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "seteffecttarget", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "seteffectuser", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "clearstatus", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "faintpokemon", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "param2", "nbytes": 1}, | |
{"name": "param3", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk1a", | |
"args": [ | |
{"name": "param1", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk1b", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "jumpifstatus", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "status", "nbytes": 4}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifsecondarytstatus", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "status", "nbytes": 4}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifability", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "ability", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifhalverset", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "status", "nbytes": 2}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifstat", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "flag", "nbytes": 1}, | |
{"name": "quantity", "nbytes": 1}, | |
{"name": "statid", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifspecialstatusflag", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "mask", "nbytes": 4}, | |
{"name": "status", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpiftype", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "type", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk23", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk24", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk25", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk26", | |
"args": [ | |
{"name": "param1", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk27", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jump", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifbyte", | |
"args": [ | |
{"name": "ifflag", "nbytes": 1}, | |
{"name": "checkaddr", "nbytes": 4}, | |
{"name": "compare", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifhalfword", | |
"args": [ | |
{"name": "ifflag", "nbytes": 1}, | |
{"name": "checkaddr", "nbytes": 4}, | |
{"name": "compare", "nbytes": 2}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifword", | |
"args": [ | |
{"name": "ifflag", "nbytes": 1}, | |
{"name": "checkaddr", "nbytes": 4}, | |
{"name": "compare", "nbytes": 4}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifarrayequal", | |
"args": [ | |
{"name": "mem1", "nbytes": 4}, | |
{"name": "mem2", "nbytes": 4}, | |
{"name": "size", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifarraynotequal", | |
"args": [ | |
{"name": "mem1", "nbytes": 4}, | |
{"name": "mem2", "nbytes": 4}, | |
{"name": "size", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setbyte", | |
"args": [ | |
{"name": "pointer", "nbytes": 4}, | |
{"name": "value", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "addbyte", | |
"args": [ | |
{"name": "pointer", "nbytes": 4}, | |
{"name": "value", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "subtractbyte", | |
"args": [ | |
{"name": "pointer", "nbytes": 4}, | |
{"name": "value", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "copyarray", | |
"args": [ | |
{"name": "destination", "nbytes": 4}, | |
{"name": "source", "nbytes": 4}, | |
{"name": "size", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk32", | |
"args": [ | |
{"name": "param1", "nbytes": 4}, | |
{"name": "param2", "nbytes": 4}, | |
{"name": "param3", "nbytes": 4}, | |
{"name": "byte", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "orbyte", | |
"args": [ | |
{"name": "pointer", "nbytes": 4}, | |
{"name": "value", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "orhalfword", | |
"args": [ | |
{"name": "pointer", "nbytes": 4}, | |
{"name": "value", "nbytes": 2} | |
] | |
}, | |
{ | |
"name": "orword", | |
"args": [ | |
{"name": "pointer", "nbytes": 4}, | |
{"name": "value", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "bicbyte", | |
"args": [ | |
{"name": "pointer", "nbytes": 4}, | |
{"name": "value", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "bichalfword", | |
"args": [ | |
{"name": "pointer", "nbytes": 4}, | |
{"name": "value", "nbytes": 2} | |
] | |
}, | |
{ | |
"name": "bicword", | |
"args": [ | |
{"name": "pointer", "nbytes": 4}, | |
{"name": "value", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "pause", | |
"args": [ | |
{"name": "pause_duration", "nbytes": 2} | |
] | |
}, | |
{ | |
"name": "waitstateatk", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "somethinghealatk3b", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "return", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "end", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "end2", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "end3", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk40", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "callatk", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpiftype2", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "type", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifabilitypresent", | |
"args": [ | |
{"name": "ability", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk44", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "playanimation", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "animation", "nbytes": 1}, | |
{"name": "var_address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk46", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "address", "nbytes": 4}, | |
{"name": "int", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk47", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "playstatchangeanimation", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "color", "nbytes": 1}, | |
{"name": "byte", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk49", | |
"args": [ | |
{"name": "byte1", "nbytes": 1}, | |
{"name": "byte2", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "damagecalc2", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk4b", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "switch1", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "switch2", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "switch3", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "byte", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "jumpifcannotswitch", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "openpartyscreen", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk51", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "param2", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk52", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk53", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk54", | |
"args": [ | |
{"name": "word", "nbytes": 2} | |
] | |
}, | |
{ | |
"name": "atk55", | |
"args": [ | |
{"name": "int", "nbytes": 2} | |
] | |
}, | |
{ | |
"name": "atk56", | |
"args": [ | |
{"name": "bank_or_side", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk57", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk58", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "checkiflearnmoveinbattle", | |
"args": [ | |
{"name": "param1", "nbytes": 4}, | |
{"name": "param2", "nbytes": 4}, | |
{"name": "bank_maybe", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk5a", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk5b", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk5c", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk5d", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk5e", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk5f", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk60", | |
"args": [ | |
{"name": "byte", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk61", | |
"args": [ | |
{"name": "bank_or_side", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk62_hidepartystatussummary", | |
"args": [ | |
{"name": "bank_or_side", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "jumptoattack", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "statusanimation", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk65", | |
"args": [ | |
{"name": "bank_or_side", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk66", | |
"args": [ | |
{"name": "bank_or_side", "nbytes": 1}, | |
{"name": "bank_or_side2", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk67", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk68", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk69", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "removeitem", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk6b", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk6c", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk6d", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk6e", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk6f", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk70", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk71", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk72", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk73", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk74", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk75", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atk76", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "byte", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "setprotect", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "faintifabilitynotdamp", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setuserhptozero", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "jumpwhiletargetvalid", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setdamageasrestorehalfmaxhp", | |
"args": [ | |
{"name": "address", "nbytes": 4}, | |
{"name": "byte", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "jumptolastusedattack", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setrain", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setreflect", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setleechseed", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "manipulatedamage", | |
"args": [ | |
{"name": "id", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "setrest", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifnotfirstturn", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "nop3", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "jumpifcannotsleep", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "stockpile", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "stockpiletobasedamage", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "stockpiletohprecovery", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "negativedamage", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "statbuffchange", | |
"args": [ | |
{"name": "target", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "normalisebuffs", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setbide", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "confuseifrepeatingattackends", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setloopcounter", | |
"args": [ | |
{"name": "count", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "atk8e", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "forcerandomswitch", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "changetypestoenemyattacktype", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "givemoney", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setlightscreen", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "koplussomethings", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "gethalfcurrentenemyhp", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setsandstorm", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "weatherdamage", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "tryinfatuatetarget", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atk98", | |
"args": [ | |
{"name": "byte", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "setmisteffect", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setincreasedcriticalchance", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "transformdataexecution", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setsubstituteeffect", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "copyattack", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "metronomeeffect", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "nightshadedamageeffect", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "psywavedamageeffect", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "counterdamagecalculator", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "mirrorcoatdamagecalculator", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "disablelastusedattack", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setencore", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "painsplitdamagecalculator", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "settypetorandomresistance", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setalwayshitflag", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "copymovepermanently", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "selectrandommovefromusermoves", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "destinybondeffect", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atkab", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "remaininghptopower", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "reducepprandom", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "clearstatusifnotsoundproofed", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "cursetarget", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setspikes", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setforesight", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setperishsong", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "rolloutdamagecalculation", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "jumpifconfusedandattackmaxed", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "furycutterdamagecalculation", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "happinesstodamagecalculation", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "presentdamagecalculation", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setsafeguard", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "magnitudedamagecalculation", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atkba", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setsunny", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "maxattackhalvehp", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "copyfoestats", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "breakfree", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setcurled", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "recoverbasedonsunlight", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "hiddenpowerdamagecalculation", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "selectnexttarget", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setfutureattack", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "beatupcalculation", | |
"args": [ | |
{"name": "address1", "nbytes": 4}, | |
{"name": "address2", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "hidepreattack", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "unhidepostattack", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setminimize", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "sethail", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "jumpifattackandspecialattackcannotfall", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setforcedtarget", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setcharge", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "callterrainattack", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "cureifburnedparalysedorpoisoned", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "settorment", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "jumpifnodamage", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "settaunt", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "sethelpinghand", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "itemswap", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "copyability", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atkd4", | |
"args": [ | |
{"name": "byte", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setroots", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "doubledamagedealtifdamaged", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "setyawn", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setdamagetohealthdifference", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "scaledamagebyhealthratio", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "abilityswap", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "imprisoneffect", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setgrudge", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "weightdamagecalculation", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "assistattackselect", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setmagiccoat", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "setstealstatchange", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atke1", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "atke2", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
}, | |
{ | |
"name": "jumpiffainted", | |
"args": [ | |
{"name": "bank", "nbytes": 1}, | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "naturepowereffect", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "pickupitemcalculation", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "actualcastformswitch", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "castformswitch", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "settypebasedhalvers", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "seteffectbyweather", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "recycleitem", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "settypetoterrain", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "pursuitwhenswitched", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "snatchmove", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "removereflectlightscreen", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "pokemoncatchfunction", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "catchpoke", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "capturesomethingf1", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "capturesomethingf2", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "capturesomethingf3", | |
"args": [ | |
{"name": "address", "nbytes": 4} | |
] | |
}, | |
{ | |
"name": "removehp", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "curestatusfirstword", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atkf6", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "activesidesomething", | |
"args": [ | |
] | |
}, | |
{ | |
"name": "atkf8", | |
"args": [ | |
{"name": "bank", "nbytes": 1} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment