diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2020-01-20 20:53:50 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2020-01-20 20:53:50 -0500 |
commit | d873b1c6aaafb211f1184755b1534d9e9e2891af (patch) | |
tree | b5cdd7f0380a92fe4e7749591aac04b1a2afa6ba | |
parent | 5e0a845fc491590a7bf7d9e9cb99cf1f57733665 (diff) |
rodata through gUnknown_8456D34
-rw-r--r-- | asm/union_room.s | 8 | ||||
-rw-r--r-- | data/union_room.s | 68 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/union_room.c | 220 | ||||
-rw-r--r-- | sym_bss.txt | 11 | ||||
-rw-r--r-- | sym_ewram.txt | 26 |
6 files changed, 175 insertions, 160 deletions
diff --git a/asm/union_room.s b/asm/union_room.s deleted file mode 100644 index 2428f2984..000000000 --- a/asm/union_room.s +++ /dev/null @@ -1,8 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - .align 2, 0 @ Don't pad with nop. diff --git a/data/union_room.s b/data/union_room.s index 9bcc4a193..97a681485 100644 --- a/data/union_room.s +++ b/data/union_room.s @@ -6,70 +6,6 @@ .section .rodata .align 2 -gUnknown_8456C74:: @ 8456C74 - .word gUnknown_84571AC - .word gUnknown_8459394 - .word gUnknown_84593A4 - .word gUnknown_84593B4 - .word gUnknown_84593C4 - .word gUnknown_84593D4 - .word gUnknown_84593E4 - .word gUnknown_84593F4 - .word gUnknown_84593DC - .word gUnknown_8459400 - .word gUnknown_8459410 - .word gUnknown_845941C - .word gUnknown_845942C - .word gUnknown_8459434 - .word gUnknown_8459440 - .word gUnknown_84571AC - .word gUnknown_84571AC - .word gUnknown_84571AC - .word gUnknown_84571AC - .word gUnknown_84571AC - .word gUnknown_84571AC - .word gUnknown_84593E4 - .word gUnknown_84593F4 - -gUnknown_8456CD0:: @ 8456CD0 - .byte 0x00, 0x00, 0x00, 0x1E, 0x02, 0x0F @ window template - .2byte 0x0008 - - @ pal table? -gUnknown_8456CD8:: @ 8456CD8 - .2byte 0x0201, 0x0000 - .2byte 0x0202, 0x0000 - .2byte 0x0403, 0x0000 - .2byte 0x0204, 0x0000 - .2byte 0x2509, 0x0000 - .2byte 0x250A, 0x0000 - .2byte 0x350B, 0x0000 - .2byte 0x350D, 0x0000 - .2byte 0x350E, 0x0000 - -gUnknown_8456CFC:: @ 8456CFC - .byte 0x00, 0x01, 0x03, 0x0D, 0x0A, 0x0F @ window template - .2byte 0x0044 - -gUnknown_8456D04:: @ 8456D04 - .byte 0x00, 0x10, 0x03, 0x07, 0x04, 0x0F @ window template - .2byte 0x00C6 - -gUnknown_8456D0C:: @ 8456D0C - .word gUnknown_84571AC, 0 - .word gUnknown_84571AC, 1 - .word gUnknown_84571AC, 2 - .word gUnknown_84571AC, 3 - .word gUnknown_84571AC, 4 - -gUnknown_8456D34:: @ 8456D34 - .word gUnknown_8456D0C - .word NULL - .word sub_81164C8 - .2byte 0x0005 - .2byte 0x0005 - .byte 0x00, 0x00, 0x01, 0x00, 0x20, 0x31, 0x10, 0x42 - gUnknown_8456D4C:: @ 8456D4C .byte 0x00, 0x01, 0x03, 0x11, 0x0A, 0x0F @ window template .2byte 0x0044 @@ -233,7 +169,7 @@ gUnknown_8457034:: @ 8457034 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - + @ starts at gUnknown_082F0474 in pokeemerald, union link groups gUnknown_845704C:: @ 845704C .byte 0x01, 0xFF, 0x00, 0x00 @@ -1393,7 +1329,7 @@ gUnknown_8459250:: @ 8459250 gUnknown_845928C:: @ 845928C .string "Awaiting a response from the\n" .string "WIRELESS COMMUNICATION SYSTEM.$" - + .align 2 .string "ほかの さんかしゃが そろうまで\n" .string "しょうしょう おまちください$" diff --git a/ld_script.txt b/ld_script.txt index 9d476e13a..ac5fc1ad8 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -242,7 +242,6 @@ SECTIONS { src/menu.o(.text); src/quest_log.o(.text); src/union_room.o(.text); - asm/union_room.o(.text); asm/union_room_player_avatar.o(.text); asm/pokemon_special_anim.o(.text); src/party_menu.o(.text); @@ -528,6 +527,7 @@ SECTIONS { data/decorations.o(.rodata); src/menu.o(.rodata); src/quest_log.o(.rodata); + src/union_room.o(.rodata); data/union_room.o(.rodata); data/pokemon_special_anim.o(.rodata); src/party_menu.o(.rodata); diff --git a/src/union_room.c b/src/union_room.c index dc1c2a3fa..73e146a4d 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -44,19 +44,24 @@ #include "constants/field_weather.h" #include "constants/species.h" -EWRAM_DATA u8 sUnionRoomPlayerName[12] = {}; -EWRAM_DATA union UnkUnion_Main gUnknown_203B05C = {}; -EWRAM_DATA u8 gUnknown_203B058 = 0; -EWRAM_DATA u8 gUnknown_203B059 = 0; -EWRAM_DATA struct UnionRoomTrade sUnionRoomTrade = {}; - -IWRAM_DATA struct UnkStruct_Leader * gUnknown_3002024; -IWRAM_DATA struct UnkStruct_Group * gUnknown_3002028; -IWRAM_DATA struct UnkStruct_URoom * gUnknown_300202C; +static EWRAM_DATA u8 sUnionRoomPlayerName[12] = {}; +static EWRAM_DATA u8 gUnknown_203B058 = 0; +static EWRAM_DATA u8 gUnknown_203B059 = 0; +static EWRAM_DATA union UnkUnion_Main sUnionRoomMain = {}; +static EWRAM_DATA u32 sUnref_203B060 = 0; +EWRAM_DATA struct GFtgtGnameSub gUnknown_203B064 = {}; +EWRAM_DATA u16 gUnionRoomOfferedSpecies = SPECIES_NONE; +EWRAM_DATA u8 gUnionRoomRequestedMonType = TYPE_NORMAL; +static EWRAM_DATA struct UnionRoomTrade sUnionRoomTrade = {}; + +static struct UnkStruct_Leader * sLeader; +static struct UnkStruct_Group * sGroup; +static struct UnkStruct_URoom * sURoom; void sub_8115A68(u8 taskId); void sub_81161E4(struct UnkStruct_Leader * leader); bool8 sub_8116444(struct UnkStruct_Leader * leader, u32 a1, u32 a2); +void sub_81164C8(u8 arg0, s32 id, u8 arg2); u8 sub_8116524(struct UnkStruct_Main0 * a0); u8 sub_81165E8(struct UnkStruct_Main0 * a0); void sub_8116738(u8 taskId); @@ -120,12 +125,123 @@ void sub_811B31C(u8 *dest, struct UnkStruct_URoom * uRoom, bool8 gender); u8 sub_811B754(struct UnkStruct_8019BA8 * ptr); void sub_811BA78(void); -extern const u8 *const gUnknown_8456C74[]; -extern const struct WindowTemplate gUnknown_8456CD0; -extern const u32 gUnknown_8456CD8[]; -extern const struct WindowTemplate gUnknown_8456CFC; -extern const struct WindowTemplate gUnknown_8456D04; -extern const struct ListMenuTemplate gUnknown_8456D34; +extern const u8 gUnknown_84571AC[]; +extern const u8 gUnknown_8459394[]; +extern const u8 gUnknown_84593A4[]; +extern const u8 gUnknown_84593B4[]; +extern const u8 gUnknown_84593C4[]; +extern const u8 gUnknown_84593D4[]; +extern const u8 gUnknown_84593E4[]; +extern const u8 gUnknown_84593F4[]; +extern const u8 gUnknown_84593DC[]; +extern const u8 gUnknown_8459400[]; +extern const u8 gUnknown_8459410[]; +extern const u8 gUnknown_845941C[]; +extern const u8 gUnknown_845942C[]; +extern const u8 gUnknown_8459434[]; +extern const u8 gUnknown_8459440[]; + +static const u8 *const gUnknown_8456C74[] = { + gUnknown_84571AC, + gUnknown_8459394, + gUnknown_84593A4, + gUnknown_84593B4, + gUnknown_84593C4, + gUnknown_84593D4, + gUnknown_84593E4, + gUnknown_84593F4, + gUnknown_84593DC, + gUnknown_8459400, + gUnknown_8459410, + gUnknown_845941C, + gUnknown_845942C, + gUnknown_8459434, + gUnknown_8459440, + gUnknown_84571AC, + gUnknown_84571AC, + gUnknown_84571AC, + gUnknown_84571AC, + gUnknown_84571AC, + gUnknown_84571AC, + gUnknown_84593E4, + gUnknown_84593F4 +}; + +static const struct WindowTemplate gUnknown_8456CD0 = { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 30, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x008 +}; + +#define _8456CD8(a, b) ((a) | ((b) << 8)) + +static const u32 gUnknown_8456CD8[] = { + _8456CD8( 1, 2), + _8456CD8( 2, 2), + _8456CD8( 3, 4), + _8456CD8( 4, 2), + _8456CD8( 9, 37), + _8456CD8(10, 37), + _8456CD8(11, 53), + _8456CD8(13, 53), + _8456CD8(14, 53) +}; + +#undef _8456CD8 + +static const struct WindowTemplate gUnknown_8456CFC = { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 3, + .width = 13, + .height = 10, + .paletteNum = 15, + .baseBlock = 0x044 +}; + +static const struct WindowTemplate gUnknown_8456D04 = { + .bg = 0, + .tilemapLeft = 16, + .tilemapTop = 3, + .width = 7, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x0C6 +}; + +const struct ListMenuItem gUnknown_8456D0C[] = { + {gUnknown_84571AC, 0}, + {gUnknown_84571AC, 1}, + {gUnknown_84571AC, 2}, + {gUnknown_84571AC, 3}, + {gUnknown_84571AC, 4} +}; + +static const struct ListMenuTemplate gUnknown_8456D34 = { + .items = gUnknown_8456D0C, + .moveCursorFunc = NULL, + .itemPrintFunc = sub_81164C8, + .totalItems = 5, + .maxShowed = 5, + .windowId = 0, + .header_X = 0, + .item_X = 1, + .cursor_X = 0, + .upText_Y = 0, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 2, + .scrollMultiple = LIST_NO_MULTIPLE_SCROLL, + .fontId = 2, + .cursorKind = 1 +}; + extern const struct WindowTemplate gUnknown_8456D4C; extern const struct WindowTemplate gUnknown_8456D54; extern const struct ListMenuTemplate gUnknown_8456DDC; @@ -303,8 +419,8 @@ void TryBecomeLinkLeader(void) struct UnkStruct_Leader * dataPtr; taskId = CreateTask(sub_8115A68, 0); - gUnknown_203B05C.leader = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_3002024 = dataPtr; + sUnionRoomMain.leader = dataPtr = (void*)(gTasks[taskId].data); + sLeader = dataPtr; dataPtr->state = 0; dataPtr->textState = 0; @@ -314,7 +430,7 @@ void TryBecomeLinkLeader(void) void sub_8115A68(u8 taskId) { u32 id, val; - struct UnkStruct_Leader * data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = sUnionRoomMain.leader; switch (data->state) { @@ -728,7 +844,7 @@ bool8 sub_8116444(struct UnkStruct_Leader * data, u32 arg1, u32 arg2) void sub_81164C8(u8 arg0, s32 id, u8 arg2) { - struct UnkStruct_Leader * data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = sUnionRoomMain.leader; u8 var = 0; switch (data->field_0->arr[id].field_1A_0) @@ -747,7 +863,7 @@ void sub_81164C8(u8 arg0, s32 id, u8 arg2) u8 sub_8116524(struct UnkStruct_Main0 * arg0) { - struct UnkStruct_Leader * data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = sUnionRoomMain.leader; u8 ret = 0; u8 i; s32 id; @@ -788,7 +904,7 @@ u8 sub_8116524(struct UnkStruct_Main0 * arg0) u8 sub_81165E8(struct UnkStruct_Main0 * arg0) { - struct UnkStruct_Leader * data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = sUnionRoomMain.leader; u8 copiedCount; s32 i; u8 ret; @@ -836,8 +952,8 @@ void TryJoinLinkGroup(void) struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_8116738, 0); - gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_3002028 = dataPtr; + sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data); + sGroup = dataPtr; dataPtr->state = 0; dataPtr->textState = 0; @@ -847,7 +963,7 @@ void TryJoinLinkGroup(void) void sub_8116738(u8 taskId) { s32 id; - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; switch (data->state) { @@ -1123,19 +1239,19 @@ u8 sub_8116DE0(void) struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_8116E1C, 0); - gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); + sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data); dataPtr->state = 0; dataPtr->textState = 0; - gUnknown_3002028 = dataPtr; + sGroup = dataPtr; return taskId; } void sub_8116E1C(u8 taskId) { - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; switch (data->state) { @@ -1213,7 +1329,7 @@ u8 sub_8116F5C(struct UnkStruct_Group * data, u32 id) void sub_8116F94(u8 arg0, s32 id, u8 arg2) { - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; u8 var = sub_8116F5C(data, id); sub_811A81C(arg0, 8, arg2, &data->field_0->arr[id], var, id); @@ -1221,7 +1337,7 @@ void sub_8116F94(u8 arg0, s32 id, u8 arg2) u8 sub_8116FE4(void) { - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; u8 ret = 0; u8 i; s32 id; @@ -1603,7 +1719,7 @@ void MEvent_CreateTask_Leader(u32 arg0) struct UnkStruct_Leader * dataPtr; taskId = CreateTask(sub_8117A0C, 0); - gUnknown_203B05C.leader = dataPtr = (void*)(gTasks[taskId].data); + sUnionRoomMain.leader = dataPtr = (void*)(gTasks[taskId].data); dataPtr->state = 0; dataPtr->textState = 0; @@ -1613,7 +1729,7 @@ void MEvent_CreateTask_Leader(u32 arg0) void sub_8117A0C(u8 taskId) { - struct UnkStruct_Leader * data = gUnknown_203B05C.leader; + struct UnkStruct_Leader * data = sUnionRoomMain.leader; struct WindowTemplate winTemplate; s32 val; @@ -1810,8 +1926,8 @@ void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0) struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_8117F20, 0); - gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_3002028 = dataPtr; + sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data); + sGroup = dataPtr; dataPtr->state = 0; dataPtr->textState = 0; @@ -1823,7 +1939,7 @@ void sub_8117F20(u8 taskId) { s32 id; struct WindowTemplate winTemplate1, winTemplate2; - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; switch (data->state) { @@ -1976,8 +2092,8 @@ void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0) struct UnkStruct_Group * dataPtr; taskId = CreateTask(sub_81182DC, 0); - gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_3002028 = dataPtr; + sUnionRoomMain.group = dataPtr = (void*)(gTasks[taskId].data); + sGroup = dataPtr; dataPtr->state = 0; dataPtr->textState = 0; @@ -1989,7 +2105,7 @@ void sub_81182DC(u8 taskId) { s32 id; struct WindowTemplate winTemplate; - struct UnkStruct_Group * data = gUnknown_203B05C.group; + struct UnkStruct_Group * data = sUnionRoomMain.group; switch (data->state) { @@ -2157,11 +2273,11 @@ void UnionRoomSpecial(void) CreateTask(sub_81186E0, 10); // dumb line needed to match - gUnknown_203B05C.uRoom = gUnknown_203B05C.uRoom; + sUnionRoomMain.uRoom = sUnionRoomMain.uRoom; - dataPtr = AllocZeroed(sizeof(*gUnknown_203B05C.uRoom)); - gUnknown_203B05C.uRoom = dataPtr; - gUnknown_300202C = dataPtr; + dataPtr = AllocZeroed(sizeof(*sUnionRoomMain.uRoom)); + sUnionRoomMain.uRoom = dataPtr; + sURoom = dataPtr; dataPtr->state = 0; dataPtr->textState = 0; @@ -2179,7 +2295,7 @@ u16 ReadAsU16(const u8 *ptr) void sub_8118664(u32 nextState, const u8 *src) { - struct UnkStruct_URoom * data = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * data = sUnionRoomMain.uRoom; data->state = 8; data->stateAfterPrint = nextState; @@ -2189,7 +2305,7 @@ void sub_8118664(u32 nextState, const u8 *src) void sub_811868C(const u8 *src) { - struct UnkStruct_URoom * data = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * data = sUnionRoomMain.uRoom; data->state = 26; if (src != gStringVar4) @@ -2211,7 +2327,7 @@ void sub_81186E0(u8 taskId) u32 id = 0; s32 var5 = 0; s32 playerGender = 0; - struct UnkStruct_URoom * data = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * data = sUnionRoomMain.uRoom; s16 *taskData = gTasks[taskId].data; switch (data->state) @@ -2756,7 +2872,7 @@ void sub_81186E0(u8 taskId) { sub_811BA78(); DestroyTask(taskId); - Free(gUnknown_203B05C.uRoom); + Free(sUnionRoomMain.uRoom); sub_81179A4(); } break; @@ -3009,9 +3125,9 @@ void InitUnionRoom(void) if (gQuestLogState == 2 || gQuestLogState == 3) return; CreateTask(sub_81199FC, 0); - gUnknown_203B05C.uRoom = gUnknown_203B05C.uRoom; // Needed to match. - gUnknown_203B05C.uRoom = ptr = AllocZeroed(sizeof(struct UnkStruct_URoom)); - gUnknown_300202C = gUnknown_203B05C.uRoom; + sUnionRoomMain.uRoom = sUnionRoomMain.uRoom; // Needed to match. + sUnionRoomMain.uRoom = ptr = AllocZeroed(sizeof(struct UnkStruct_URoom)); + sURoom = sUnionRoomMain.uRoom; ptr->state = 0; ptr->textState = 0; ptr->field_10 = 0; @@ -3023,7 +3139,7 @@ void sub_81199FC(u8 taskId) { s32 i; u8 text[32]; - struct UnkStruct_URoom * structPtr = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * structPtr = sUnionRoomMain.uRoom; switch (structPtr->state) { @@ -3081,7 +3197,7 @@ void sub_81199FC(u8 taskId) Free(structPtr->field_C); Free(structPtr->field_4); DestroyTask(structPtr->field_20); - Free(gUnknown_203B05C.uRoom); + Free(sUnionRoomMain.uRoom); sub_80F8DC0(); DestroyTask(taskId); break; @@ -3106,7 +3222,7 @@ u8 sub_8119B94(void) { s32 i; u8 j; - struct UnkStruct_URoom * structPtr = gUnknown_203B05C.uRoom; + struct UnkStruct_URoom * structPtr = sUnionRoomMain.uRoom; s32 r7 = 0; for (i = 0; i < 4; i++) @@ -3864,7 +3980,7 @@ void sub_811ABE4(u8 arg0, u8 arg1, struct GFtgtGname * arg2, const u8 * str, u8 void sub_811ACA4(u8 windowId, s32 itemId, u8 y) { - struct UnkStruct_Leader *leader = gUnknown_203B05C.leader; + struct UnkStruct_Leader *leader = sUnionRoomMain.leader; struct GFtgtGname *rfu; s32 i, j; u8 sp4[8]; diff --git a/sym_bss.txt b/sym_bss.txt index 16c5758fc..5651e3366 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -76,17 +76,10 @@ gUnknown_3000FE8: @ 3000FE8 .include "src/link_rfu_3.o" .align 2 .include "src/quest_log.o" - .align 2 -gUnknown_3002024: @ 3002024 - .space 0x4 - -gUnknown_3002028: @ 3002028 - .space 0x4 - -gUnknown_300202C: @ 300202C - .space 0x4 + .include "src/union_room.o" + .align 2 gUnknown_3002030: @ 3002030 .space 0x8 diff --git a/sym_ewram.txt b/sym_ewram.txt index 176e43bf9..8f3f5ae7f 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -350,32 +350,10 @@ gUnknown_203ACF0: @ 203ACF0 .include "src/menu.o" .align 2 .include "src/quest_log.o" - .align 2 -sUnionRoomPlayerName: @ 203B04C - .space 0xC - -gUnknown_203B058: @ 203B058 - .space 0x1 - -gUnknown_203B059: @ 203B059 - .space 0x3 - -gUnknown_203B05C: @ 203B05C - .space 0x8 - -gUnknown_203B064: @ 203B064 - .space 0x4 - -gUnionRoomOfferedSpecies: @ 203B068 - .space 0x2 - -gUnionRoomRequestedMonType: @ 203B06A - .space 0x2 - -sUnionRoomTrade: @ 203B06C - .space 0x18 + .include "src/union_room.o" + .align 2 gUnknown_203B084: @ 203B084 .space 0x4 |