Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
222 commits
Select commit Hold shift + click to select a range
4570fa0
aaa
assidion2 Jun 7, 2026
531e62d
aaaMerge branch 'master' of https://github.com/UsernameFodder/pmdsky-…
assidion2 Jun 7, 2026
2da053d
aaa
assidion2 Jun 7, 2026
0683913
aaa
assidion2 Jun 7, 2026
64c096b
aaa
assidion2 Jun 7, 2026
33fe952
aaa
assidion2 Jun 7, 2026
0503a70
aaa
assidion2 Jun 7, 2026
9825d35
aaa
assidion2 Jun 7, 2026
a638af3
aaa
assidion2 Jun 12, 2026
5ffa25f
aaa
assidion2 Jun 12, 2026
567ccd2
aaa
assidion2 Jun 12, 2026
63f179c
aaa
assidion2 Jun 12, 2026
8892475
aaa
assidion2 Jun 12, 2026
c26ee74
aaa
assidion2 Jun 13, 2026
200e1b7
aaa
assidion2 Jun 13, 2026
ab73edc
aaa
assidion2 Jun 13, 2026
a8a7d30
aaa
assidion2 Jun 13, 2026
0a9ed9f
aaa
assidion2 Jun 13, 2026
f489e44
aaa
assidion2 Jun 13, 2026
43dc1ec
aaa
assidion2 Jun 13, 2026
dbcfd34
aaa
assidion2 Jun 13, 2026
415cae8
aaa
assidion2 Jun 13, 2026
5db767b
aaa
assidion2 Jun 13, 2026
cebbaed
aaa
assidion2 Jun 13, 2026
ac0d314
aaa
assidion2 Jun 13, 2026
2ff8090
aaa
assidion2 Jun 13, 2026
f0658ea
aaa
assidion2 Jun 17, 2026
9dfe789
aaa
assidion2 Jun 17, 2026
957b360
aaaMerge branch 'master' of https://github.com/UsernameFodder/pmdsky-…
assidion2 Jun 18, 2026
272e768
aaa
assidion2 Jun 20, 2026
4f096c0
aaaMerge branch 'master' of https://github.com/UsernameFodder/pmdsky-…
assidion2 Jun 20, 2026
6f01a57
aaa
assidion2 Jun 20, 2026
4d5e32b
aaaMerge branch 'master' of https://github.com/UsernameFodder/pmdsky-…
assidion2 Jun 20, 2026
555506b
aaa
assidion2 Jun 22, 2026
9b06076
aaa
assidion2 Jun 22, 2026
37aed59
aaa
assidion2 Jun 22, 2026
2740c49
aaa
assidion2 Jun 22, 2026
8d62f1e
aaa
assidion2 Jun 22, 2026
a5ef11a
aaa
assidion2 Jun 22, 2026
006190b
aaa
assidion2 Jun 23, 2026
21a410f
aaa
assidion2 Jun 23, 2026
6db4cc7
aaa
assidion2 Jun 23, 2026
00e7910
aaa
assidion2 Jun 27, 2026
0a0ba11
aaa
assidion2 Jun 27, 2026
e900bb1
aaa
assidion2 Jun 27, 2026
3fff17f
aaa
assidion2 Jun 27, 2026
a24b8ee
aaa
assidion2 Jun 28, 2026
b45a0d9
aaa
assidion2 Jun 28, 2026
d323317
aaa
assidion2 Jun 28, 2026
ee0fc4e
aaa
assidion2 Jun 28, 2026
7b23ba4
aaa
assidion2 Jun 28, 2026
c8f985f
aaa
assidion2 Jun 28, 2026
a3664bf
aaa
assidion2 Jun 28, 2026
d728f83
aaaMerge branch 'master' of https://github.com/UsernameFodder/pmdsky-…
assidion2 Jun 28, 2026
b4665db
aaa
assidion2 Jun 28, 2026
9d696e2
aaa
assidion2 Jun 28, 2026
141a8e4
aaa
assidion2 Jun 29, 2026
faab3be
aaa
assidion2 Jun 29, 2026
b17781f
aaa
assidion2 Jun 29, 2026
b780599
aaa
assidion2 Jun 29, 2026
453e17c
aaa
assidion2 Jun 29, 2026
048f471
Update arm9.h
assidion2 Jun 30, 2026
d78a3a7
aaa
assidion2 Jun 30, 2026
cbe4a5d
aaa
assidion2 Jun 30, 2026
d092eeb
aaa
assidion2 Jun 30, 2026
edb8b9e
Update arm9.yml
assidion2 Jul 2, 2026
cbf3a8f
aaa
assidion2 Jul 3, 2026
b167d94
aaa
assidion2 Jul 4, 2026
d041a32
aaaMerge branch 'master' of https://github.com/assidion2/pmdsky-debug
assidion2 Jul 4, 2026
abaef05
aaa
assidion2 Jul 4, 2026
a55024d
aaa
assidion2 Jul 4, 2026
0c08e34
aaa
assidion2 Jul 4, 2026
f130286
aaa
assidion2 Jul 4, 2026
585bd1e
aaa
assidion2 Jul 4, 2026
4429428
aaa
assidion2 Jul 4, 2026
778226b
aaa
assidion2 Jul 4, 2026
316b1e9
aaa
assidion2 Jul 4, 2026
f9702a2
aaa
assidion2 Jul 4, 2026
32467c8
aaa
assidion2 Jul 4, 2026
96f2149
aaa
assidion2 Jul 4, 2026
ff6924a
aaa
assidion2 Jul 4, 2026
f32c22e
aaa
assidion2 Jul 4, 2026
593d2c3
aaa
assidion2 Jul 4, 2026
d5519b3
aaa
assidion2 Jul 5, 2026
855844f
aaa
assidion2 Jul 5, 2026
59e1ca8
aaa
assidion2 Jul 5, 2026
5aa7a0b
aaa
assidion2 Jul 5, 2026
faa36a1
aaa
assidion2 Jul 5, 2026
1af0a00
aaa
assidion2 Jul 5, 2026
edc1502
aaa
assidion2 Jul 5, 2026
fdc2526
aaa
assidion2 Jul 5, 2026
1758f5f
Update headers/types/common/common.h
assidion2 Jul 7, 2026
dbf6c29
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
ed38263
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
47cb260
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
ce63ccd
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
a2738ae
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
d6e8565
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
51a9416
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
e640fcc
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
2c75cb8
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
fcd32e0
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
86fdba4
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
c121c58
Update symbols/overlay26.yml
assidion2 Jul 7, 2026
e787774
aaa
assidion2 Jul 13, 2026
2e8c9e1
aaaMerge branch 'master' of https://github.com/assidion2/pmdsky-debug
assidion2 Jul 13, 2026
bea9367
aaa
assidion2 Jul 13, 2026
a6e03f5
aaa
assidion2 Jul 13, 2026
bcca3c2
aaa
assidion2 Jul 13, 2026
e1a576b
aaa
assidion2 Jul 13, 2026
a3a2e14
aaa
assidion2 Jul 14, 2026
99f0dbf
Update symbols/overlay29.yml
assidion2 Jul 15, 2026
442cccd
Update symbols/overlay29.yml
assidion2 Jul 15, 2026
b16f8a5
aaa
assidion2 Jul 15, 2026
fcd9acd
aaa
assidion2 Jul 27, 2026
3821338
aaa
assidion2 Jul 27, 2026
5af39ff
aaa
assidion2 Jul 27, 2026
02e3ad7
aaa
assidion2 Jul 27, 2026
a720c02
aaa
assidion2 Jul 27, 2026
785d523
aaa
assidion2 Jul 27, 2026
ff75b59
aaa
assidion2 Jul 27, 2026
6a88fdd
aaa
assidion2 Jul 27, 2026
02e30f3
aaa
assidion2 Jul 27, 2026
5835415
aaa
assidion2 Jul 28, 2026
d8895c0
aaa
assidion2 Jul 28, 2026
14a74de
aaa
assidion2 Jul 28, 2026
856034a
aaa
assidion2 Jul 28, 2026
2e9eec6
aaa
assidion2 Jul 28, 2026
a5f8265
aaa
assidion2 Jul 28, 2026
c2fc249
aaa
assidion2 Jul 30, 2026
e83d155
aaa
assidion2 Jul 31, 2026
128c38f
aaa
assidion2 Aug 17, 2026
288d9d2
aaa
assidion2 Aug 17, 2026
dd0aab8
aaa
assidion2 Aug 18, 2026
9988981
aaa
assidion2 Aug 18, 2026
d0cce40
aaa
assidion2 Aug 18, 2026
89a3db5
aaa
assidion2 Aug 18, 2026
0fdef3a
aaa
assidion2 Aug 18, 2026
2b0342a
aaa
assidion2 Aug 18, 2026
bb55823
Update release.yml
assidion2 Aug 22, 2026
881982e
Update overlay10.yml
assidion2 Aug 22, 2026
eb8aae2
aaa
assidion2 Aug 23, 2026
8c7eddb
aaa
assidion2 Aug 23, 2026
f98262b
aaa
assidion2 Aug 23, 2026
5a25a75
aaaRevert "aaa"
assidion2 Aug 23, 2026
72b80a1
aaaRevert "aaa"
assidion2 Aug 23, 2026
12e23cc
aaaRevert "aaa"
assidion2 Aug 23, 2026
b558334
ov10
assidion2 Aug 23, 2026
541690f
Revert "aaa"
assidion2 Aug 23, 2026
630e81c
new edits
assidion2 Aug 23, 2026
f341b40
aaaMerge branch 'master' of https://github.com/assidion2/pmdsky-debug
assidion2 Aug 23, 2026
88fcd03
pre-update
assidion2 Aug 26, 2026
75dab7f
aaaMerge branch 'master' of https://github.com/UsernameFodder/pmdsky-…
assidion2 Aug 26, 2026
e88dfd3
pre-update
assidion2 Sep 5, 2026
361779c
aaa
assidion2 Sep 5, 2026
244f9f7
aaa
assidion2 Sep 5, 2026
aa4abb0
aaa
assidion2 Sep 5, 2026
63f0751
aaa
assidion2 Sep 5, 2026
30b07a5
aaa
assidion2 Sep 5, 2026
b2b0977
aaa
assidion2 Sep 5, 2026
3531fd7
aaa
assidion2 Sep 5, 2026
bd4e605
aaa
assidion2 Sep 5, 2026
5955807
aaa
assidion2 Sep 5, 2026
53e419b
aaa
assidion2 Sep 5, 2026
9de6668
aaa
assidion2 Sep 5, 2026
1d726b3
aaa
assidion2 Sep 6, 2026
3d62cd5
aaa
assidion2 Sep 6, 2026
6642378
Merge branch 'master' of https://github.com/UsernameFodder/pmdsky-debug
assidion2 Sep 19, 2026
fa38cac
aaa
assidion2 Sep 19, 2026
209509d
aaaMerge branch 'master' of https://github.com/UsernameFodder/pmdsky-…
assidion2 Sep 19, 2026
f80ca1c
aaa
assidion2 Sep 22, 2026
41d8f89
aaaMerge branch 'master' of https://github.com/UsernameFodder/pmdsky-…
assidion2 Sep 22, 2026
d3462cc
aaa
assidion2 Sep 22, 2026
413ddbb
aaa
assidion2 Sep 22, 2026
1c1b6be
aaa
assidion2 Sep 22, 2026
ab8f583
aaa
assidion2 Sep 22, 2026
e1b525c
aaa
assidion2 Sep 22, 2026
9f22993
aaa
assidion2 Sep 22, 2026
acde4d5
aaa
assidion2 Sep 22, 2026
5c2352d
aaa
assidion2 Sep 23, 2026
04d270e
aaa
assidion2 Sep 23, 2026
e830274
aaa
assidion2 Sep 23, 2026
38615b2
aaa
assidion2 Sep 23, 2026
038ba25
aaa
assidion2 Sep 23, 2026
dd0e0a7
aaa
assidion2 Sep 24, 2026
9f250c0
aaa
assidion2 Sep 24, 2026
f713e57
aaa
assidion2 Sep 25, 2026
5f184ba
aaa
assidion2 Sep 25, 2026
bb18b2e
aaa
assidion2 Sep 25, 2026
5bd2570
aaa
assidion2 Sep 25, 2026
e855f5d
aaa
assidion2 Sep 26, 2026
f631326
aaa
assidion2 Oct 2, 2026
55b2d82
aaa
assidion2 Oct 2, 2026
3dcc1fd
aaa
assidion2 Oct 3, 2026
2ef308d
aaa
assidion2 Oct 4, 2026
263a1b1
aaa
assidion2 Oct 4, 2026
e8e85ad
aaa
assidion2 Oct 4, 2026
db88d40
aaa
assidion2 Oct 4, 2026
be10aa7
aaa
assidion2 Oct 4, 2026
c512410
aaa
assidion2 Oct 4, 2026
fb061f1
aaa
assidion2 Oct 4, 2026
8033217
aaa
assidion2 Oct 4, 2026
21f879b
aaa
assidion2 Oct 4, 2026
a7b7c48
aaa
assidion2 Oct 4, 2026
e4c6b8e
aaa
assidion2 Oct 5, 2026
7fcc489
aaa
assidion2 Oct 5, 2026
f7ada2a
aaa
assidion2 Oct 6, 2026
fa05143
aaa
assidion2 Oct 8, 2026
e31a896
aaa
assidion2 Oct 8, 2026
9d9f1be
aaa
assidion2 Oct 8, 2026
e9c9836
aaa
assidion2 Oct 10, 2026
a951da9
aaa
assidion2 Oct 10, 2026
ec3db22
aaa
assidion2 Oct 10, 2026
11d661b
aaa
assidion2 Oct 10, 2026
61d63e1
aaa
assidion2 Oct 10, 2026
145d765
aaa
assidion2 Oct 15, 2026
3ced752
aaa
assidion2 Oct 17, 2026
1a2f37a
aaa
assidion2 Oct 17, 2026
ce18bb3
aaa
assidion2 Oct 24, 2026
947af11
aaa
assidion2 Oct 24, 2026
c72d084
aaa
assidion2 Oct 24, 2026
dda4de6
aaa
assidion2 Oct 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions headers/data/arm9.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ extern int16_t MUNCH_BELT_STAT_BOOST;
extern int16_t GUMMI_STAT_BOOST;
extern int32_t MIN_IQ_EXCLUSIVE_MOVE_USER;
extern int16_t WONDER_GUMMI_IQ_GAIN;
extern int16_t WONDER_GUMMI_BELLY_RESTORE;
extern int16_t AURA_BOW_STAT_BOOST;
extern int16_t MULTITALENT_PP_BOOST_AMOUNT;
extern int32_t MIN_IQ_ITEM_MASTER;
Expand Down
1 change: 1 addition & 0 deletions headers/data/overlay10.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ extern int16_t MONSTER_HOUSE_MAX_NON_MONSTER_SPAWNS;
extern int16_t HEAL_ORDER_HP_RESTORATION;
extern int16_t CURSE_DAMAGE_COOLDOWN;
extern int16_t STEEL_WING_BOOST_DEFENSE_CHANCE;
extern int16_t GUMMI_STAT_BOOST_CHANCE;
extern int16_t GOLD_THORN_POWER;
extern int16_t BURN_DAMAGE;
extern int16_t POISON_DAMAGE;
Expand Down
7 changes: 5 additions & 2 deletions headers/functions/arm9.h
Original file line number Diff line number Diff line change
Expand Up @@ -661,7 +661,7 @@ void UpdateWindow(int window_id);
void ClearWindow(int window_id);
void DeleteWindow(int window_id);
void GetWindowRectangle(int window_id, struct window_rectangle* rect_out);
void* GetWindowContents(int window_id);
union window_contents GetWindowContents(int window_id);
void LoadCursors(void);
void InitWindowTrailer(struct window_trailer* trailer);
uint8_t LoadPrevMenuItem(int menu_id);
Expand Down Expand Up @@ -1217,6 +1217,7 @@ void InitializeTeamMemberFromMentry(struct team_member* team_member,
void AddStarterEggMove(struct ground_monster* ground_monster);
void GetLvlUpEntry(struct level_up_entry* level_up_entry, enum monster_id monster_id, int level);
uint8_t* GetEncodedHalfword(uint8_t* data_ptr, uint16_t* result);
bool CanMonsterLearnMove(enum monster_id monster_id, enum move_id move_id);
int GetEvoFamily(undefined* monster, undefined* evo_family);
int GetEvolutions(enum monster_id monster_id, enum monster_id* output_list,
bool skip_sprite_size_check, bool skip_shedinja_check);
Expand All @@ -1239,7 +1240,7 @@ bool IsShaymin(enum monster_id monster_id);
bool IsCastform(enum monster_id monster_id);
bool IsCherrim(enum monster_id monster_id);
bool IsDeoxys(enum monster_id monster_id);
enum monster_id GetSecondFormIfValid(enum monster_id monster_id);
enum monster_id MaleToFemaleForm(enum monster_id monster_id);
enum monster_id FemaleToMaleForm(enum monster_id monster_id);
enum monster_id GetBaseFormCastformDeoxysCherrim(enum monster_id monster_id);
bool BaseFormsEqual(enum monster_id monster1, enum monster_id monster2);
Expand Down Expand Up @@ -1349,6 +1350,8 @@ int CountJobListMissions(void);
int DungeonRequestsDone(uint8_t param_1, bool param_2);
int DungeonRequestsDoneWrapper(uint8_t param_1);
bool AnyDungeonRequestsDone(uint8_t param_1);
bool GetUnfulfilledMissionRestrictions(enum dungeon_id dungeon_id, struct type_id_16* type_id,
struct monster_id_16* monster_id);
bool AddMissionToJobList(struct mission* mission);
struct mission* GetAcceptedMission(uint8_t mission_id);
bool IsAcceptedMissionSlotEmpty(int32_t mission_slot);
Expand Down
9 changes: 6 additions & 3 deletions headers/functions/overlay29.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,9 @@ void PlayEffectAnimation0x1A9(struct entity* entity);
void PlayEffectAnimation0x29(struct entity* entity);
void PlayEffectAnimation0x18E(struct entity* entity);
void PlayKeyDoorUnlockEffect(struct entity* entity, bool is_not_treasure_memo);
void PlayEscapeEffect(int effect_id, struct entity* entity, undefined4 param_3);
void PlayStandardEscapeEffect(struct entity* entity);
void PlayEscapeOrbEscapeEffect(struct entity* entity);
void PlayStairSensorArrowEffect(struct entity* entity, enum direction_id arrow_dir);
void InitMonsterMoveEffect(int live_effect_unique_id, struct entity* entity, undefined4 param_3);
void FreeMonsterMoveEffects(void);
Expand Down Expand Up @@ -480,7 +483,7 @@ int GetMovePower(struct entity* entity, struct move* move);
bool MonsterCanThrowItems(struct monster* monster);
bool UpdateStateFlags(struct monster* monster, uint16_t mask, bool set_flags);
bool IsProtectedFromNegativeStatus(struct entity* user, struct entity* target, bool log_message);
void AddExpSpecial(struct entity* attacker, struct entity* defender, int base_exp);
void AddExp(struct entity* attacker, struct entity* defender, int base_exp);
void EnemyEvolution(struct entity* entity);
void LevelUpItemEffect(struct entity* user, struct entity* target, int levels, bool message,
bool dialogue);
Expand Down Expand Up @@ -864,8 +867,8 @@ union damage_source GetDamageSourceWrapper(struct move* move, enum item_id item_
int LowerSshort(int x);
void PlayMoveAnimation(struct entity* user, struct entity* target, struct move* move,
struct position* position);
uint16_t GetMoveAnimationId(struct move* move, enum weather_id apparent_weather,
bool should_play_alternative_animation);
enum move_id GetMoveAnimationId(enum move_id move_id, enum weather_id apparent_weather,
bool should_play_alternative_animation);
bool ShouldMovePlayAlternativeAnimation(struct entity* user, struct move* move);
bool IsMoveBlockedByTerrain(struct entity* user, struct move* move);
void ExecuteMoveEffect(struct target_list* targets, struct entity* attacker, struct move* move,
Expand Down
3 changes: 1 addition & 2 deletions headers/types/common/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -1201,8 +1201,7 @@ struct monster_data_table_entry {
struct monster_gender_8 gender; // 0x12: Gender of this particular entity entry.
uint8_t body_size; // 0x13: The body size of the Pokemon. Used when determining how many Pokemon
// fits in the party.
struct type_id_8 primary_type; // 0x14: The Pokemon's primary type.
struct type_id_8 secondary_type; // 0x15: The Pokemon's secondary type.
struct type_id_8 types[2]; // 0x14
struct mobility_type_8 movement_type; // 0x16: This decides what terrains the entity can move
// over, and whether its hovering or not.
struct iq_group_id_8 iq_group; // 0x17: The IQ group the Pokemon belongs to.
Expand Down
5 changes: 5 additions & 0 deletions headers/types/common/enums.h
Original file line number Diff line number Diff line change
Expand Up @@ -2214,6 +2214,11 @@ enum type_id {
ENUM_8_BIT(type_id);
#pragma pack(pop)

// This is occasionally stored as a 16-bit integer
#pragma pack(push, 2)
ENUM_16_BIT(type_id);
#pragma pack(pop)

enum type_matchup {
MATCHUP_IMMUNE = 0,
MATCHUP_NOT_VERY_EFFECTIVE = 1,
Expand Down
150 changes: 85 additions & 65 deletions headers/types/common/window.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,30 +31,6 @@ struct preprocessor_args {
};
ASSERT_SIZE(struct preprocessor_args, 80);

struct window;
typedef void (*update_window_fn_t)(struct window* window);

struct window_params {
update_window_fn_t update; // 0x0: A function to update the window
// 0x4: Window left (or right in tandem with the x_offset_end window flag) edge x coordinate,
// divided by 8.
uint8_t x_offset;
// 0x5: Window top (or bottom in tandem with the y_offset_end window flag) edge y coordinate,
// divided by 8.
uint8_t y_offset;
uint8_t width; // 0x6: Window width, divided by 8.
uint8_t height; // 0x7: Window height, divided by 8.
struct screen_8 screen; // 0x8: Screen where the window resides
// 0x9: The box type can affect the window frame and/or the backdrop.
struct box_type_8 box_type;
undefined field_0xa;
undefined field_0xb;
// 0xC: heap-allocated contents for the window, varying by type.
// See callers of NewWindowScreenCheck for the different types
void* contents;
};
ASSERT_SIZE(struct window_params, 16);

// Corner coordinates of the rectangle a window occupies.
struct window_rectangle {
int y_min; // 0x0: Window top y coordinate
Expand Down Expand Up @@ -284,47 +260,6 @@ struct window_trailer {
};
ASSERT_SIZE(struct window_trailer, 36);

// Generic structure for a window containing content
struct window {
struct window_params params; // 0x0
// 0x10: it seems like some windows, such as the scroll box, can have an associated sub-window
// within the main window
int8_t subwindow_id;
uint8_t field_0x11;
uint16_t field_0x12;
// Some heap-allocated struct pointer with size (hdr.width * hdr.height * 0x40)
undefined* field_0x14;
int field_0x18;
int field_0x1c; // hdr.width * hdr.height * 0x40
uint32_t field_0x20;
undefined field_0x24;
undefined field_0x25;
undefined field_0x26;
undefined field_0x27;
int field_0x28;
undefined field_0x2c;
undefined field_0x2d;
undefined field_0x2e;
undefined field_0x2f;
uint16_t field_0x30;
undefined field_0x32;
undefined field_0x33;
struct render_3d_element_64 backdrop; // 0x34: type RENDER64_RECTANGLE
struct render_3d_element_64 frame; // 0x74: type RENDER64_WINDOW_FRAME
uint8_t field_0xb4;
undefined field_0xb5;
int8_t valid; // 0xB6: usually seems to be 0-3
uint8_t field_0xb7;
int32_t field_0xb8;
struct window_trailer trailer; // 0xBC
};
ASSERT_SIZE(struct window, 224);

struct window_list {
struct window windows[20];
};
ASSERT_SIZE(struct window_list, 4480);

// Tracks state related to interactive windows.
// This struct seems to always be at +0x4 of the various window contents structs
// stored in window_params / returned by GetWindowContents.
Expand Down Expand Up @@ -371,6 +306,8 @@ struct unk_scroll_box_coords {
};
ASSERT_SIZE(struct unk_scroll_box_coords, 24);

typedef void (*update_window_fn_t)(struct window* window);

// Also see CreateScrollBoxSingle/CreateScrollBoxMulti
// Up/down paged text boxes with formatting?
// Observed examples:
Expand Down Expand Up @@ -1145,4 +1082,87 @@ struct storage_collection_menu_manager {
};
ASSERT_SIZE(struct storage_collection_menu_manager, 160);

union window_contents {
struct simple_menu* simple_menu;
struct advanced_menu* advanced_menu;
struct collection_menu* collection_menu;
struct options_menu* options_menu;
struct debug_menu* debug_menu;
struct scroll_box* scroll_box;
struct dialogue_box* dialogue_box;
struct portrait_box* portrait_box;
struct text_box* text_box;
struct area_name_box* area_name_box;
struct controls_chart* controls_chart;
struct alert_box* alert_box;
struct advanced_text_box* advanced_text_box;
struct team_selection_menu* team_selection_menu;
struct inventory_menu* inventory_menu;
};
ASSERT_SIZE(union window_contents, 4);

struct window;

struct window_params {
update_window_fn_t update; // 0x0: A function to update the window
// 0x4: Window left (or right in tandem with the x_offset_end window flag) edge x coordinate,
// divided by 8.
uint8_t x_offset;
// 0x5: Window top (or bottom in tandem with the y_offset_end window flag) edge y coordinate,
// divided by 8.
uint8_t y_offset;
uint8_t width; // 0x6: Window width, divided by 8.
uint8_t height; // 0x7: Window height, divided by 8.
struct screen_8 screen; // 0x8: Screen where the window resides
// 0x9: The box type can affect the window frame and/or the backdrop.
struct box_type_8 box_type;
undefined field_0xa;
undefined field_0xb;
// 0xC: heap-allocated contents for the window, varying by type.
// See callers of NewWindowScreenCheck for the different types
union window_contents contents;
};
ASSERT_SIZE(struct window_params, 16);

// Generic structure for a window containing content
struct window {
struct window_params params; // 0x0
// 0x10: it seems like some windows, such as the scroll box, can have an associated sub-window
// within the main window
int8_t subwindow_id;
uint8_t field_0x11;
uint16_t field_0x12;
// Some heap-allocated struct pointer with size (hdr.width * hdr.height * 0x40)
undefined* field_0x14;
int field_0x18;
int field_0x1c; // hdr.width * hdr.height * 0x40
uint32_t field_0x20;
undefined field_0x24;
undefined field_0x25;
undefined field_0x26;
undefined field_0x27;
int field_0x28;
undefined field_0x2c;
undefined field_0x2d;
undefined field_0x2e;
undefined field_0x2f;
uint16_t field_0x30;
undefined field_0x32;
undefined field_0x33;
struct render_3d_element_64 backdrop; // 0x34: type RENDER64_RECTANGLE
struct render_3d_element_64 frame; // 0x74: type RENDER64_WINDOW_FRAME
uint8_t field_0xb4;
undefined field_0xb5;
int8_t valid; // 0xB6: usually seems to be 0-3
uint8_t field_0xb7;
int32_t field_0xb8;
struct window_trailer trailer; // 0xBC
};
ASSERT_SIZE(struct window, 224);

struct window_list {
struct window windows[20];
};
ASSERT_SIZE(struct window_list, 4480);

#endif
4 changes: 1 addition & 3 deletions headers/types/dungeon_mode/dungeon.h
Original file line number Diff line number Diff line change
Expand Up @@ -1529,9 +1529,7 @@ struct dungeon {
// 0x1990C: Stores statuses::unique_id for the monster pointed to by dungeon::snatch_monster.
uint32_t snatch_status_unique_id;
// 0x19910: Spawn genid of the monster to be spawned by the effect of Illuminate
uint16_t illuminate_spawn_genid;
undefined field_0x19912;
undefined field_0x19913;
enum monster_id illuminate_spawn_genid;
// 0x19914: List that matches monster IDs with their sprite index on this floor
struct monster_id_16 sprite_indexes[1155];
undefined field_0x1a21a;
Expand Down
9 changes: 8 additions & 1 deletion headers/types/dungeon_mode/dungeon_mode.h
Original file line number Diff line number Diff line change
Expand Up @@ -705,6 +705,13 @@ ASSERT_SIZE(struct monster, 572);
ASSERT_SIZE(struct monster, 576);
#endif

union entity_info {
struct monster* monster;
struct item* item;
struct trap* trap;
};
ASSERT_SIZE(union entity_info, 4);

// Generic entity data
struct entity {
enum entity_type type; // 0x0
Expand Down Expand Up @@ -742,7 +749,7 @@ struct entity {
uint8_t animation_id_mirror0; // 0xB1
undefined field_0xb2;
undefined field_0xb3;
void* info; // 0xB4: Points to info struct for monster/item/trap
union entity_info info; // 0xB4: Points to info struct for monster/item/trap
};
ASSERT_SIZE(struct entity, 184);

Expand Down
39 changes: 34 additions & 5 deletions symbols/arm9.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11623,6 +11623,17 @@ arm9:
r0: Pointer to encoded value
r1: [output] Buffer where the resulting 2-byte value will be stored.
return: Pointer to the next byte to decode
- name: CanMonsterLearnMove
address:
EU: 0x2054098
description: |-
Returns true if the monster can learn the given move, whether by leveling up or HM/TM.

Always returns false if the move is Struggle or the monster is the Decoy.

r0: monster id
r1: move id
return: bool
- name: GetEvoFamily
address:
EU: 0x205414C
Expand Down Expand Up @@ -11834,16 +11845,18 @@ arm9:

r0: monster ID
return: bool
- name: GetSecondFormIfValid
- name: MaleToFemaleForm
aliases:
- GetSecondFormIfValid
address:
EU: 0x2054F20
NA: 0x2054BA4
JP: 0x2054EDC
description: |-
Note: unverified, ported from Irdkwia's notes
Returns the ID of the second form of the specified monster if the specified ID corresponds to a primary form with male gender and the second form has female gender. If those conditions don't meet, returns the same ID unchanged.

r0: monster ID
return: second form
r0: Monster ID
return: ID of the female form of the monster if the requirements meet, same ID otherwise.
- name: FemaleToMaleForm
address:
EU: 0x2054F5C
Expand Down Expand Up @@ -12937,6 +12950,16 @@ arm9:

r0: ?
return: bool: whether the number of missions completed is greater than 0
- name: GetUnfulfilledMissionRestrictions
address:
EU: 0x205F1BC
description: |-
Checks if the player's party doesn't meet the restrictions for missions they have active in the given dungeon, and outputs their values if so.

r0: dungeon id
r1: [output] type id of an unfulfilled type restriction
r2: [output] monster id of an unfulfilled monster restriction
return: whether at least one unfulfilled mission restriction was found for this dungeon id
- name: AddMissionToJobList
address:
EU: 0x205F434
Expand Down Expand Up @@ -14987,7 +15010,13 @@ arm9:
EU: 0x2
NA: 0x2
JP: 0x2
description: IQ gain when ingesting wonder gummis.
description: IQ gain when ingesting wonder gummis (15).
- name: WONDER_GUMMI_BELLY_RESTORE
address:
EU: 0x20A1E18
length:
EU: 0x2
description: Belly gain when ingesting wonder gummis (50).
- name: AURA_BOW_STAT_BOOST
address:
EU: 0x20A1E1C
Expand Down
6 changes: 6 additions & 0 deletions symbols/overlay10.yml
Original file line number Diff line number Diff line change
Expand Up @@ -962,6 +962,12 @@ overlay10:
NA: 0x2
JP: 0x2
description: "The chance of Steel Wing boosting defense, as a percentage (20%)."
- name: GUMMI_STAT_BOOST_CHANCE
address:
EU: 0x22C4E24
length:
EU: 0x2
description: The chance of a permanent stat boost occurring after eating a Gummi (25%).
- name: GOLD_THORN_POWER
address:
EU: 0x22C4E28
Expand Down
Loading
Loading