(sio_postbattle) Extract data

This commit is contained in:
Eebit 2024-05-29 19:38:12 -04:00
parent 059cd7208d
commit c542fdeb00
7 changed files with 223 additions and 166 deletions

View File

@ -1,29 +1,5 @@
.section .rodata
.global post_gUnknown_080D9D61
post_gUnknown_080D9D61:
.incbin "baserom.gba", 0xD9D70, 0xD9DE4 - 0xD9D70
.global gUnknown_080D9DE4
gUnknown_080D9DE4: @ 0x080D9DE4
.incbin "baserom.gba", 0xD9DE4, 0xE
.global gUnknown_080D9DF2
gUnknown_080D9DF2: @ 0x080D9DF2
.incbin "baserom.gba", 0xD9DF2, 0x14
.global gUnknown_080D9E06
gUnknown_080D9E06: @ 0x080D9E06
.incbin "baserom.gba", 0xD9E06, 0x8
.global gUnknown_080D9E0E
gUnknown_080D9E0E: @ 0x080D9E0E
.incbin "baserom.gba", 0xD9E0E, 0xE
.global gUnknown_080D9E1C
gUnknown_080D9E1C: @ 0x080D9E1C
.incbin "baserom.gba", 0xD9E1C, 0x28
.global gUnknown_080D9E44
gUnknown_080D9E44: @ 0x080D9E44
.incbin "baserom.gba", 0xD9E44, 0xC

View File

@ -1,85 +1,5 @@
.section .data
.global gUnknown_085A96D4
gUnknown_085A96D4: @ 0x085A96D4
.4byte gUnknown_080D9D61 + 0xd, gUnknown_080D9D61 + 0x15, gUnknown_080D9D61 + 0x1d, gUnknown_080D9D61 + 0x25
.global gUnknown_085A96E4
gUnknown_085A96E4: @ 0x085A96E4
.4byte gUnknown_080D9D61 + 0x2d, gUnknown_080D9D61 + 0x41, gUnknown_080D9D61 + 0x61, gUnknown_080D9D61 + 0x75
.global gUnknown_085A96F4
gUnknown_085A96F4: @ 0x085A96F4
@ PROC_YIELD
.short 0xe, 0x0
.word 0x0
@ PROC_CALL
.short 0x2, 0x0
.word sub_8045208
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_8045234
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_804538C
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global gUnknown_085A971C
gUnknown_085A971C: @ 0x085A971C
@ PROC_CALL
.short 0x2, 0x0
.word sub_8045640
@ PROC_CALL
.short 0x2, 0x0
.word FadeInBlackSpeed20
@ PROC_YIELD
.short 0xe, 0x0
.word 0x0
@ PROC_CALL
.short 0x2, 0x0
.word Clear_0203DDDC
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_80457F8
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_804589C
@ PROC_CALL
.short 0x2, 0x0
.word Set_0203DDDC
@ PROC_CALL
.short 0x2, 0x0
.word sub_8013F40
@ PROC_YIELD
.short 0xe, 0x0
.word 0x0
@ PROC_CALL
.short 0x2, 0x0
.word BMapVSync_Start
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global gUnknown_085A9774
gUnknown_085A9774: @ 0x085A9774
@ PROC_SLEEP
.short 0xe, 0x10
.word 0x0
@ PROC_CALL
.short 0x2, 0x0
.word sub_80458E8
@ PROC_SLEEP
.short 0xe, 0xd2
.word 0x0
@ PROC_CALL
.short 0x2, 0x0
.word sub_8045920
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_SIOPRA
ProcScr_SIOPRA: @ 0x085A979C
@ PROC_NAME

View File

@ -54,6 +54,25 @@ struct SioSaveConf {
} __attribute__((packed));
extern struct SioSaveConf gSioSaveConfig;
struct SioUnknown_0203DD90
{
// 00 -- ??
// 01 -- current phase
// 02 -- current cursor unit idx
// 03 -- current cursor unit idx (again?)
// 04 -- current selected unit idx (attacker)
// 05 -- current selected combat target unit id
// 06 -- weapon index maybe?
// 07-09 -- ??
// 0A-0D = byte array - num units alive per team
// 14-24? - scores - word array
STRUCT_PAD(0x00, 0x24);
u16 unk_24[4]; // leader face IDs
// more?
};
struct SioUnknown_0203DD90 gUnk_Sio_0203DD90;
u32 SioStrCpy(u8 const * src, u8 * dst);
void SioDrawNumber(struct Text * text, int x, int color, int number);
void SioInit(void);
@ -264,7 +283,7 @@ void sub_8048260(ProcPtr); // StartNameSelect
// ??? sub_8048838(???);
void CallEraseSaveEvent(ProcPtr);
// ??? sub_8048864(???);
// ??? sub_8048884(???);
void sub_8048884(void *); // TODO: Fix param type
// ??? sub_8048934(???);
// ??? sub_8048988(???);
// ??? nullsub_43(???);
@ -461,7 +480,7 @@ void sub_804D24C(int, s16);
// ??? sub_804D664(???);
// ??? sub_804D6B4(???);
// ??? sub_804D6C4(???);
// ??? sub_804D6D4(???);
void sub_804D6D4(void);
// ??? sub_804D724(???);
// ??? sub_804D778(???);
// ??? sub_804D7B0(???);
@ -486,6 +505,7 @@ void sub_804D834(int, int);
// extern ??? gUnk_Sio_02000000
extern struct Font gUnk_Sio_02000C60;
// extern ??? gLinkArenaSt
// extern ??? gUnknown_0203DA30
// extern ??? gUnk_Sio_0203DA78
@ -495,7 +515,7 @@ extern struct Text Texts_0203DAB0;
// extern ??? gUnk_Sio_0203DAC5
extern struct Text Texts_0203DB14[10];
// extern ??? gUnk_Sio_0203DB1C
extern struct Text gUnk_Sio_0203DB1C[];
extern struct Font Font_0203DB64;
// extern ??? gUnk_Sio_0203DB7C
// extern ??? gSioResultRankings
@ -523,10 +543,18 @@ extern s16 gUnknown_080D9C9E[];
// extern ??? gUnknown_080D9D56
// extern ??? gUnknown_080D9D5E
// extern ??? gUnknown_080D9D61
// extern ??? gUnknown_080D9DE4
// extern ??? gUnknown_080D9DF2
// extern ??? gUnknown_080D9E06
// extern ??? gUnknown_080D9E0E
extern u16 const Sprite_080D9D6E[];
extern u16 const Sprite_080D9D76[];
extern u16 const Sprite_080D9D7E[];
extern u16 const Sprite_080D9D86[];
extern u16 const Sprite_080D9D8E[];
extern u16 const Sprite_080D9DA2[];
extern u16 const Sprite_080D9DC2[];
extern u16 const Sprite_080D9DD6[];
extern u16 const gUnknown_080D9DE4[];
extern u16 const gUnknown_080D9DF2[];
extern u16 const gUnknown_080D9E06[];
extern u16 const gUnknown_080D9E0E[];
// extern ??? gUnknown_080D9E1C
// extern ??? gUnknown_080D9E44
// extern ??? gLinkArenaRuleData

View File

@ -21,7 +21,7 @@ extern u16 *gMinimapObjectFlashPal;
extern u8 gUnknown_02000940[];
extern u8 gUnknown_02000944[];
extern struct PlaySt_OptionBits gUnknown_02000948[];
// extern ??? gUnk_Sio_02000C60
// extern ??? gUnk_Sio_02000C78
// extern ??? gUnk_Sio_02000F00
// extern ??? gBmMapBuffer
@ -571,7 +571,7 @@ extern u16 CONST_DATA Pal_EventCursorShinning[];
// extern ??? gUnknown_085AA9D8
// extern ??? gUnknown_085AAA0E
// extern ??? gUnknown_085AAA48
// extern ??? gUnknown_085AAA50
extern u16 gUnknown_085AAA50[]; // sprite
// extern ??? gUnknown_085AAA5E
// extern ??? gUnknown_085AAA78
// extern ??? gUnknown_085AAA90
@ -595,31 +595,31 @@ extern u8 Img_LinkArenaMenu[];
extern u8 Img_TacticianSelObj[];
// extern ??? gUnknown_085AC604
extern u8 Img_LinkArenaRankIcons[]; // img
// extern ??? gUnknown_085ACD20
extern u8 gUnknown_085ACD20[]; // img
extern u8 gUnknown_085ACEFC[]; // img
// extern ??? gUnknown_085AD0CC
extern u8 gUnknown_085AD0CC[]; // img
// extern ??? gUnknown_085AD80C
// extern ??? gUnknown_085AD9CC
// extern ??? gUnknown_085ADA38
extern u8 gUnknown_085ADA38[]; // img
extern u16 Pal_LinkArenaMenu[];
extern u16 Pal_TacticianSelObj[];
extern u16 Pal_LinkArenaRankIcons[]; // pal
// extern ??? gUnknown_085ADDA8
// extern ??? gUnknown_085ADDC8
extern u16 gUnknown_085ADDC8[]; // pal
// extern ??? gUnknown_085ADDE8
extern u16 gUnknown_085ADE08[]; // pal
// extern ??? gUnknown_085ADE28
// extern ??? gUnknown_085ADE48
extern u16 Pal_085ADE68[];
// extern ??? gUnknown_085ADE88
extern u8 gUnknown_085ADE88[]; // tsa?
// extern ??? gUnknown_085ADF40
extern u16 Tsa_085AE190[];
extern u8 Tsa_SioResultRankings[]; // tsa
extern u8 gUnknown_085AE778[]; // tsa
// extern ??? gUnknown_085AE7EC
// extern ??? gUnknown_085AF170
// extern ??? gUnknown_085B081C
// extern ??? gUnknown_085B089C
extern u8 gUnknown_085AF170[]; // img
extern u16 gUnknown_085B081C[]; // pal
extern u8 gUnknown_085B089C[]; // tsa
// extern ??? gUnknown_085B0DE8
// extern ??? gUnknown_085B0F2C
// extern ??? gProcScr_TargetSelection

View File

@ -705,6 +705,7 @@ SECTIONS
. = ALIGN(4); src/sio_main.o(.rodata);
. = ALIGN(4); data/const_data_sio.o(.rodata);
. = ALIGN(4); src/sio_main2.o(.rodata);
. = ALIGN(4); src/sio_postbattle.o(.rodata);
. = ALIGN(4); data/const_data_D8714.o(.rodata);
. = ALIGN(4); src/sio_result.o(.rodata);
. = ALIGN(4); src/sio_rulesettings.o(.rodata);
@ -948,6 +949,7 @@ SECTIONS
. = ALIGN(4); src/sio_main2.o(.data);
. = ALIGN(4); data/sio_main.o(.data);
. = ALIGN(4); data/sio_tactician.o(.data);
. = ALIGN(4); src/sio_postbattle.o(.data);
. = ALIGN(4); data/data_5A92E0.o(.data);
. = ALIGN(4); src/sio_result.o(.data);
. = ALIGN(4); src/sio_rulesettings.o(.data);

View File

@ -6,6 +6,7 @@
#include "bmunit.h"
#include "bmitem.h"
#include "bmsave.h"
#include "ctc.h"
#include "constants/items.h"
#include "sio.h"
#include "sio_core.h"
@ -197,6 +198,97 @@ bool sub_80432F4(void)
u8 const gUnknown_080D9D5E[] = {1, 2, 4};
u8 const gUnknown_080D9D61[] = {
0x02, 0x06, 0x0D, 0x13, 0x14, 0xFE, 0x14, 0x13, 0x0D, 0x06, 0x02, 0x00, 0xFF, 0x01, 0x00,
// ...
0x02, 0x06, 0x0D, 0x13, 0x14, 0xFE, 0x14, 0x13, 0x0D, 0x06, 0x02, 0x00, 0xFF,
};
// Sprite data here is not used until "sio_postbattle.c",
// suggesting that this may have been a particularly large file
// clang-format off
u16 const Sprite_080D9D6E[] =
{
1,
OAM0_SHAPE_32x16, OAM1_SIZE_32x16, OAM2_CHR(0x300) + OAM2_LAYER(1) + OAM2_PAL(3),
};
u16 const Sprite_080D9D76[] =
{
1,
OAM0_SHAPE_32x16, OAM1_SIZE_32x16, OAM2_CHR(0x304) + OAM2_LAYER(1) + OAM2_PAL(4),
};
u16 const Sprite_080D9D7E[] =
{
1,
OAM0_SHAPE_32x16, OAM1_SIZE_32x16, OAM2_CHR(0x308) + OAM2_LAYER(1) + OAM2_PAL(5),
};
u16 const Sprite_080D9D86[] =
{
1,
OAM0_SHAPE_32x16, OAM1_SIZE_32x16, OAM2_CHR(0x30C) + OAM2_LAYER(1) + OAM2_PAL(6),
};
u16 const Sprite_080D9D8E[] =
{
3,
OAM0_SHAPE_32x8 + OAM0_Y(1), OAM1_SIZE_32x8 + OAM1_X(16), OAM2_CHR(0x360) + OAM2_LAYER(1) + OAM2_PAL(7),
OAM0_SHAPE_32x16 + OAM0_Y(9), OAM1_SIZE_32x16 + OAM1_X(16), OAM2_CHR(0x344) + OAM2_LAYER(1) + OAM2_PAL(7),
OAM0_SHAPE_64x32 + OAM0_Y(4), OAM1_SIZE_64x32, OAM2_CHR(0x358) + OAM2_LAYER(1) + OAM2_PAL(7),
};
u16 const Sprite_080D9DA2[] =
{
5,
OAM0_SHAPE_32x16 + OAM0_Y(10), OAM1_SIZE_32x16 + OAM1_X(16), OAM2_CHR(0x348) + OAM2_LAYER(1) + OAM2_PAL(7),
OAM0_SHAPE_32x16 + OAM0_Y(8), OAM1_SIZE_32x16 + OAM1_X(8), OAM2_CHR(0x380) + OAM2_LAYER(1) + OAM2_PAL(7),
OAM0_SHAPE_16x16 + OAM0_Y(8), OAM1_SIZE_16x16 + OAM1_X(40), OAM2_CHR(0x384) + OAM2_LAYER(1) + OAM2_PAL(7),
OAM0_SHAPE_32x16 + OAM0_Y(24), OAM1_SIZE_32x16 + OAM1_X(8), OAM2_CHR(0x386) + OAM2_LAYER(1) + OAM2_PAL(7),
OAM0_SHAPE_16x16 + OAM0_Y(24), OAM1_SIZE_16x16 + OAM1_X(40), OAM2_CHR(0x38A) + OAM2_LAYER(1) + OAM2_PAL(7),
};
u16 const Sprite_080D9DC2[] =
{
3,
OAM0_SHAPE_32x16 + OAM0_Y(12), OAM1_SIZE_32x16 + OAM1_X(16), OAM2_CHR(0x34C) + OAM2_LAYER(1) + OAM2_PAL(7),
OAM0_SHAPE_32x16 + OAM0_Y(8), OAM1_SIZE_32x16 + OAM1_X(16), OAM2_CHR(0x38C) + OAM2_LAYER(1) + OAM2_PAL(7),
OAM0_SHAPE_32x16 + OAM0_Y(24), OAM1_SIZE_32x16 + OAM1_X(16), OAM2_CHR(0x390) + OAM2_LAYER(1) + OAM2_PAL(7),
};
u16 const Sprite_080D9DD6[] =
{
2,
OAM0_SHAPE_32x16 + OAM0_Y(16), OAM1_SIZE_32x16 + OAM1_X(16), OAM2_CHR(0x350) + OAM2_LAYER(1) + OAM2_PAL(7),
OAM0_SHAPE_32x16 + OAM0_Y(16), OAM1_SIZE_32x16 + OAM1_X(16), OAM2_CHR(0x394) + OAM2_LAYER(1) + OAM2_PAL(7),
};
u16 const gUnknown_080D9DE4[] =
{
2,
OAM0_SHAPE_16x16, OAM1_SIZE_16x16, OAM2_CHR(0x355) + OAM2_LAYER(1) + OAM2_PAL(8),
OAM0_SHAPE_8x16, OAM1_SIZE_8x16 + OAM1_X(16), OAM2_CHR(0x357) + OAM2_LAYER(1) + OAM2_PAL(8),
};
u16 const gUnknown_080D9DF2[] =
{
3,
OAM0_SHAPE_32x16, OAM1_SIZE_32x16, OAM2_CHR(0x100) + OAM2_PAL(14),
OAM0_SHAPE_32x16, OAM1_SIZE_32x16 + OAM1_X(32), OAM2_CHR(0x104) + OAM2_PAL(14),
OAM0_SHAPE_8x16, OAM1_SIZE_8x16 + OAM1_X(64), OAM2_CHR(0x108) + OAM2_PAL(14),
};
u16 const gUnknown_080D9E06[] =
{
1,
OAM0_SHAPE_32x16, OAM1_SIZE_32x16, OAM2_CHR(0x100) + OAM2_PAL(14),
};
u16 const gUnknown_080D9E0E[] =
{
2,
OAM0_SHAPE_32x16, OAM1_SIZE_32x16, 0,
OAM0_SHAPE_32x16 + OAM0_Y(16), OAM1_SIZE_32x16, OAM2_CHR(0x4),
};
// clang-format on

View File

@ -7,6 +7,7 @@
#include "fontgrp.h"
#include "soundwrapper.h"
#include "m4a.h"
#include "bmio.h"
#include "sio_core.h"
#include "sio.h"
@ -57,60 +58,41 @@ struct SioProc85A9774
/* 58 */ int unk_58;
};
struct SioUnknown_0203DD90
// clang-format off
u16 const * CONST_DATA gUnknown_085A96D4[] =
{
// 00 -- ??
// 01 -- current phase
// 02 -- current cursor unit idx
// 03 -- current cursor unit idx (again)
// 04 -- current selected unit idx (attacker)
// 05 -- current selected combat target unit id
// 06 -- weapon index maybe?
// 07-09 -- ??
// 0a-0d = byte array - num units alive per team
// 14-24? - scores - word array
STRUCT_PAD(0x00, 0x24);
u16 unk_24[4]; // leader face IDs
// more?
Sprite_080D9D6E,
Sprite_080D9D76,
Sprite_080D9D7E,
Sprite_080D9D86,
};
struct SioUnknown_0203DD90 gUnk_Sio_0203DD90;
u16 const * CONST_DATA gUnknown_085A96E4[] =
{
Sprite_080D9D8E,
Sprite_080D9DA2,
Sprite_080D9DC2,
Sprite_080D9DD6,
};
extern u16 * gUnknown_085A96E4[];
extern u16 * gUnknown_085A96D4[];
s16 const gUnknown_080D9E1C[5][4] =
{
{ -1, -1, -1, -1, },
extern u16 gUnknown_080D9DE4[];
extern u16 gUnknown_080D9E06[];
extern u16 gUnknown_080D9DF2[];
extern u16 gUnknown_080D9E0E[];
{ -1, -1, -1, -1, },
extern u16 gUnknown_085AAA50[];
{ 7, 13, -1, -1, },
extern s16 gUnknown_080D9E1C[5][4];
{ 5, 10, 15, -1, },
extern u8 gUnknown_085ADE88[];
{ 2, 7, 12, 17, },
};
extern struct Font gUnk_Sio_02000C60;
extern struct Text Texts_0203DB14[];
extern struct Text gUnk_Sio_0203DB1C[];
// clang-format on
extern char gUnk_Sio_0203DAC5[][15];
extern u8 gUnknown_085ADA38[]; // img
extern u8 gUnknown_085AD0CC[]; // img
extern u8 gUnknown_085ACD20[]; // img
extern u8 gUnknown_085AF170[]; // img
extern u16 gUnknown_085ADDC8[]; // pal
extern u16 gUnknown_085ADE08[]; // pal
extern u16 gUnknown_085B081C[]; // pal
extern u8 gUnknown_085B089C[]; // tsa
void sub_8048884(struct SioProc85A971C_Unk44 *);
void sub_804D6D4(void);
//! FE8U = 0x08045208
void sub_8045208(struct SioProc85A96F4 * proc)
{
@ -185,7 +167,21 @@ void sub_804538C(struct SioProc85A96F4 * proc)
return;
}
extern struct ProcCmd gUnknown_085A96F4[];
// clang-format off
struct ProcCmd CONST_DATA gUnknown_085A96F4[] =
{
PROC_YIELD,
PROC_CALL(sub_8045208),
PROC_REPEAT(sub_8045234),
PROC_REPEAT(sub_804538C),
PROC_END,
};
// clang-format on
//! FE8U = 0x08045494
ProcPtr sub_8045494(struct SioProc85A971C * parent, int delayMaybe, u16 fid, u8 oam2, u8 ranking)
@ -383,6 +379,32 @@ void sub_804589C(ProcPtr proc)
return;
}
// clang-format off
struct ProcCmd CONST_DATA gUnknown_085A971C[] =
{
PROC_CALL(sub_8045640),
PROC_CALL(FadeInBlackSpeed20),
PROC_YIELD,
PROC_CALL(Clear_0203DDDC),
PROC_REPEAT(sub_80457F8),
PROC_REPEAT(sub_804589C),
PROC_CALL(Set_0203DDDC),
PROC_CALL(sub_8013F40),
PROC_YIELD,
PROC_CALL(BMapVSync_Start),
PROC_END,
};
// clang-format on
//! FE8U = 0x080458E8
void sub_80458E8(struct SioProc85A9774 * proc)
{
@ -406,3 +428,20 @@ void sub_8045920(void)
StartBgmExt(0x3b, 0, 0);
return;
}
// clang-format off
struct ProcCmd CONST_DATA gUnknown_085A9774[] =
{
PROC_SLEEP(16),
PROC_CALL(sub_80458E8),
PROC_SLEEP(210),
PROC_CALL(sub_8045920),
PROC_END,
};
// clang-format on