From 416ef99e4217e1f309b7560974fb5dabfa1329a8 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 6 Jun 2017 17:58:40 -0400 Subject: Pick up decompiling field_effect.s --- include/field_effect.h | 10 ++++++++++ include/field_weather.h | 2 ++ include/gba/types.h | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/field_effect.h b/include/field_effect.h index a46c048cb..d4ec0c8b4 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -3,6 +3,15 @@ #include "sprite.h" +extern const struct SpritePalette gTrainerFrontPicPaletteTable[2]; +extern const struct SpritePalette gUnknown_0839F114; +extern const struct SpriteSheet gTrainerFrontPicTable[2]; +extern const struct SpriteTemplate gSpriteTemplate_839F128; +extern const struct OamData gOamData_839F0F4; +extern struct SpriteTemplate gUnknown_02024E8C; + +extern const struct SpritePalette *sub_80409C8(u16, u32, u32); + u32 FieldEffectStart(u8 id); bool8 FieldEffectCmd_loadtiles(u8 **script, u32 *val); bool8 FieldEffectCmd_loadfadedpal(u8 **script, u32 *val); @@ -25,5 +34,6 @@ void FieldEffectActiveListClear(void); void FieldEffectActiveListAdd(u8 id); void FieldEffectActiveListRemove(u8 id); bool8 FieldEffectActiveListContains(u8 id); +void sub_807DE38(u8 index); #endif // GUARD_FIELD_EFFECT_H diff --git a/include/field_weather.h b/include/field_weather.h index af07c970d..df216aea7 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -31,6 +31,8 @@ void sub_807D874(u8); // ... void sub_807DB64(u8, u8); // ... +void sub_807DE68(void); +// ... void PlayRainSoundEffect(void); // ... void SetSav1Weather(u32); diff --git a/include/gba/types.h b/include/gba/types.h index fd8a20a4c..96e057ab7 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -34,7 +34,7 @@ struct PlttData u16 g:5; // green u16 b:5; // blue u16 unused_15:1; -}; +} /*__attribute__((packed))*/; struct OamData { -- cgit v1.2.3 From a89c10aa0a2426096a9588f2a5294825f69e3e7f Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 6 Jun 2017 18:56:46 -0400 Subject: Pokecenter Heal and Hall Of Fame Record Effect, 1 --- include/field_effect.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) (limited to 'include') diff --git a/include/field_effect.h b/include/field_effect.h index d4ec0c8b4..e3e80b3df 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -3,6 +3,74 @@ #include "sprite.h" +enum FieldEffectScriptIdx +{ + FLDEFF_EXCLAMATION_MARK_ICON_1, + FLDEFF_USE_CUT_ON_GRASS, + FLDEFF_USE_CUT_ON_TREE, + FLDEFF_SHADOW, + FLDEFF_TALL_GRASS, + FLDEFF_RIPPLE, + FLDEFF_FIELD_MOVE_SHOW_MON, + FLDEFF_ASH, + FLDEFF_SURF_BLOB, + FLDEFF_USE_SURF, + FLDEFF_DUST, + FLDEFF_USE_SECRET_POWER_CAVE, + FLDEFF_JUMP_TALL_GRASS, + FLDEFF_SAND_FOOTPRINTS, + FLDEFF_JUMP_BIG_SPLASH, + FLDEFF_SPLASH, + FLDEFF_JUMP_SMALL_SPLASH, + FLDEFF_LONG_GRASS, + FLDEFF_JUMP_LONG_GRASS, + FLDEFF_UNKNOWN_19, + FLDEFF_UNKNOWN_20, + FLDEFF_UNKNOWN_21, + FLDEFF_UNKNOWN_22, + FLDEFF_BERRY_TREE_GROWTH_SPARKLE, + FLDEFF_DEEP_SAND_FOOTPRINTS, + FLDEFF_POKECENTER_HEAL, + FLDEFF_USE_SECRET_POWER_TREE, + FLDEFF_USE_SECRET_POWER_SHRUB, + FLDEFF_TREE_DISGUISE, + FLDEFF_MOUNTAIN_DISGUISE, + FLDEFF_NPCFLY_OUT, + FLDEFF_USE_FLY, + FLDEFF_FLY_IN, + FLDEFF_EXCLAMATION_MARK_ICON_2, + FLDEFF_FEET_IN_FLOWING_WATER, + FLDEFF_BIKE_TIRE_TRACKS, + FLDEFF_SAND_DISGUISE, + FLDEFF_USE_ROCK_SMASH, + FLDEFF_USE_DIG, + FLDEFF_SAND_PILE, + FLDEFF_USE_STRENGTH, + FLDEFF_SHORT_GRASS, + FLDEFF_HOT_SPRINGS_WATER, + FLDEFF_USE_WATERFALL, + FLDEFF_USE_DIVE, + FLDEFF_POKEBALL, + FLDEFF_HEART_ICON, + FLDEFF_NOP_47, + FLDEFF_NOP_48, + FLDEFF_POP_OUT_OF_ASH, + FLDEFF_LAVARIDGE_GYM_WARP, + FLDEFF_SWEET_SCENT, + FLDEFF_SAND_PILLAR, + FLDEFF_BUBBLES, + FLDEFF_SPARKLE, + FLDEFF_SECRET_POWER_CAVE, + FLDEFF_SECRET_POWER_TREE, + FLDEFF_SECRET_POWER_SHRUB, + FLDEFF_CUT_GRASS, + FLDEFF_FIELD_MOVE_SHOW_MON_INIT, + FLDEFF_USE_FLY_ANCIENT_TOMB, + FLDEFF_PCTURN_ON, + FLDEFF_HALL_OF_FAME_RECORD, + FLDEFF_USE_TELEPORT +}; + extern const struct SpritePalette gTrainerFrontPicPaletteTable[2]; extern const struct SpritePalette gUnknown_0839F114; extern const struct SpriteSheet gTrainerFrontPicTable[2]; -- cgit v1.2.3 From d48792a69d0687f50401db08e5b133cd60a9a81a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 6 Jun 2017 23:18:03 -0400 Subject: Some functions related to queueing overworld fly fldeff --- include/asm.inc.h | 6 +++--- include/field_effect.h | 2 ++ include/rom4.h | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) mode change 100644 => 100755 include/asm.inc.h mode change 100644 => 100755 include/field_effect.h mode change 100644 => 100755 include/rom4.h (limited to 'include') diff --git a/include/asm.inc.h b/include/asm.inc.h old mode 100644 new mode 100755 index 7c090dec2..3837af64b --- a/include/asm.inc.h +++ b/include/asm.inc.h @@ -207,9 +207,9 @@ void sub_8083A84(TaskFunc); s32 sub_8083BF4(u8 id); // asm/field_effect.o -u8 CreateTrainerSprite_BirchSpeech(u8, u16, u16, u8, void *); -void LoadTrainerGfx_TrainerCard(u8 gender, int, void *); -u8 CreateBirchSprite(u8, u8, u8); +u8 CreateTrainerSprite_BirchSpeech(u8, s16, s16, u8, u8 *); +void LoadTrainerGfx_TrainerCard(u8 gender, u16, u8 *); +u8 CreateBirchSprite(s16, s16, u8); // asm/unknown_task.o void remove_some_task(void); diff --git a/include/field_effect.h b/include/field_effect.h old mode 100644 new mode 100755 index e3e80b3df..d35ca599b --- a/include/field_effect.h +++ b/include/field_effect.h @@ -80,6 +80,8 @@ extern struct SpriteTemplate gUnknown_02024E8C; extern const struct SpritePalette *sub_80409C8(u16, u32, u32); +extern u8 gLastFieldPokeMenuOpened; + u32 FieldEffectStart(u8 id); bool8 FieldEffectCmd_loadtiles(u8 **script, u32 *val); bool8 FieldEffectCmd_loadfadedpal(u8 **script, u32 *val); diff --git a/include/rom4.h b/include/rom4.h old mode 100644 new mode 100755 index 476a0e103..ab63068b2 --- a/include/rom4.h +++ b/include/rom4.h @@ -18,7 +18,7 @@ struct LinkPlayerMapObject }; // sub_8052F5C -// flag_var_implications_of_teleport_ +void flag_var_implications_of_teleport_(void); void new_game(void); void sub_8053014(void); void sub_8053050(void); -- cgit v1.2.3 From 585cab7a47066e5e70d89180e7e7154652058400 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 7 Jun 2017 15:45:12 -0400 Subject: sub_8086870 (nonmatching) --- include/global.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/global.h b/include/global.h index 716aae15f..67a9548b6 100644 --- a/include/global.h +++ b/include/global.h @@ -10,6 +10,8 @@ // to help in decompiling #define asm_comment(x) asm volatile("@ -- " x " -- ") +#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided\n") + #define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) #define POKEMON_NAME_LENGTH 10 -- cgit v1.2.3 From 5980e95c3daadaa2fe91713fa72b36eeead7678f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 9 Jun 2017 20:05:28 -0400 Subject: FldEff_PopOutOfAsh (misnamed?) --- include/rom4.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/rom4.h b/include/rom4.h index ab63068b2..9bfb9a51f 100755 --- a/include/rom4.h +++ b/include/rom4.h @@ -52,7 +52,7 @@ void sub_8053570(void); void sub_8053588(u8); void sub_80535C4(s16 a1, s16 a2); void sub_805363C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); -// sub_8053678 +void sub_8053678(void); void sub_8053690(s8, s8, s8, s8, s8); // warp1_set_to_warp2 void sub_80536E4(s8, s8, s8, s8, s8); -- cgit v1.2.3 From 19c16e2f94dda9fe354692f6e449b271e845ad22 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 10 Jun 2017 21:36:41 -0400 Subject: Attempt at decompiling field effect for sending out pokemon for field move --- include/field_effect.h | 23 +++++++++++++++++++++++ include/gba/defines.h | 3 +++ 2 files changed, 26 insertions(+) mode change 100644 => 100755 include/gba/defines.h (limited to 'include') diff --git a/include/field_effect.h b/include/field_effect.h index d35ca599b..6306b81ac 100755 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -106,4 +106,27 @@ void FieldEffectActiveListRemove(u8 id); bool8 FieldEffectActiveListContains(u8 id); void sub_807DE38(u8 index); +void SpriteCB_PokeballGlow(struct Sprite *); +void SpriteCB_PokecenterMonitor(struct Sprite *); +void SpriteCB_HallOfFameMonitor(struct Sprite *); + +void PokecenterHealEffect_0(struct Task *); +void PokecenterHealEffect_1(struct Task *); +void PokecenterHealEffect_2(struct Task *); +void PokecenterHealEffect_3(struct Task *); + +void HallOfFameRecordEffect_0(struct Task *); +void HallOfFameRecordEffect_1(struct Task *); +void HallOfFameRecordEffect_2(struct Task *); +void HallOfFameRecordEffect_3(struct Task *); + +void PokeballGlowEffect_0(struct Sprite *); +void PokeballGlowEffect_1(struct Sprite *); +void PokeballGlowEffect_2(struct Sprite *); +void PokeballGlowEffect_3(struct Sprite *); +void PokeballGlowEffect_4(struct Sprite *); +void PokeballGlowEffect_5(struct Sprite *); +void PokeballGlowEffect_6(struct Sprite *); +void PokeballGlowEffect_7(struct Sprite *); + #endif // GUARD_FIELD_EFFECT_H diff --git a/include/gba/defines.h b/include/gba/defines.h old mode 100644 new mode 100755 index 0f7f06755..e88d2da8b --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -58,4 +58,7 @@ #define WIN_RANGE(a, b) (((a) << 8) | (b)) +#define min(a, b) (a >= b ? a : b) +#define max(a, b) (a <= b ? a : b) + #endif // GUARD_GBA_DEFINES -- cgit v1.2.3 From a3162cb844dbbc6bbfd850163526c42cc0191d1c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 11 Jun 2017 21:04:00 -0400 Subject: Finish FldEff_FieldMoveShowMon except solitary nonmatching function --- include/global.h | 8 ++++++++ 1 file changed, 8 insertions(+) mode change 100644 => 100755 include/global.h (limited to 'include') diff --git a/include/global.h b/include/global.h old mode 100644 new mode 100755 index 67a9548b6..13db2620f --- a/include/global.h +++ b/include/global.h @@ -12,6 +12,14 @@ #define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided\n") +#define nonmatching(fndec, x) {\ +__attribute__((naked))\ +fndec\ +{\ + asm_unified(x);\ +}\ +} + #define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) #define POKEMON_NAME_LENGTH 10 -- cgit v1.2.3