Match sub_80073E0 through sub_8007464

This commit is contained in:
Kermalis 2023-08-07 00:02:22 -04:00
parent 3ee8225409
commit 315ae86101
43 changed files with 69 additions and 144 deletions

View File

@ -5,89 +5,6 @@
.text
thumb_func_start sub_80073E0
sub_80073E0:
push {r4,lr}
lsls r1, r0, 3
adds r1, r0
lsls r1, 3
ldr r0, _08007434
adds r3, r1, r0
adds r0, r3, 0
adds r0, 0x44
ldrb r4, [r0]
cmp r4, 0
bne _08007424
ldr r2, [r3, 0x3C]
ldr r0, [r3, 0x1C]
subs r0, r2, r0
asrs r0, 2
lsls r0, 2
ldr r1, [r3, 0x28]
adds r1, r0
str r1, [r3, 0x30]
str r2, [r3, 0x34]
ldr r0, [r3, 0x40]
subs r0, r2
asrs r0, 2
adds r0, 0x1
lsls r0, 2
str r0, [r3, 0x38]
ldr r1, [r3, 0x2C]
cmp r0, r1
blt _0800741C
str r1, [r3, 0x38]
_0800741C:
ldr r0, [r3, 0x38]
cmp r0, 0
bge _08007424
str r4, [r3, 0x38]
_08007424:
adds r1, r3, 0
adds r1, 0x46
movs r0, 0
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08007434: .4byte gUnknown_2027370
thumb_func_end sub_80073E0
thumb_func_start nullsub_156
nullsub_156:
bx lr
thumb_func_end nullsub_156
thumb_func_start xxx_call_draw_char
xxx_call_draw_char:
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
ldr r1, [sp, 0x18]
ldr r0, _08007460
str r3, [sp]
str r1, [sp, 0x4]
adds r1, r4, 0
adds r2, r5, 0
adds r3, r6, 0
bl xxx_draw_char
add sp, 0x8
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08007460: .4byte gUnknown_2027370
thumb_func_end xxx_call_draw_char
thumb_func_start sub_8007464
sub_8007464:
movs r0, 0
bx lr
thumb_func_end sub_8007464
thumb_func_start xxx_draw_char
xxx_draw_char:
push {r4-r7,lr}

View File

@ -12,18 +12,18 @@ struct UnkTextStruct1
u32 unkC;
u32 unk10;
u32 unk14;
u8 *unk18;
u8 *unk1C;
u32 *unk18;
u32 *unk1C;
s32 unk20;
s32 unk24;
void *unk28; // Somewhere in VRAM
u32 unk2C;
s32 unk30;
s32 unk34;
u32 *unk28; // Somewhere in VRAM
s32 unk2C;
u32 *unk30; // Somewhere in VRAM?
u32 *unk34;
s32 unk38;
u8 *unk3C;
u8 *unk40;
u8 fill44;
u32 *unk3C;
u32 *unk40;
u8 unk44;
bool8 unk45;
u8 unk46;
};

View File

@ -3,9 +3,12 @@
#include "text.h"
u32 xxx_call_draw_char(u32, u32, u32, u32, u32);
void sub_8006518(struct UnkTextStruct2 *);
void sub_8006554(struct UnkTextStruct1 *, void *, u8 *, u16 *, u32, const struct UnkTextStruct2 *, u8, u32, struct UnkTextStruct2_sub *, u8);
void sub_8006554(struct UnkTextStruct1 *, u32 *, u32 *, u16 *, u32, const struct UnkTextStruct2 *, u8, u32, struct UnkTextStruct2_sub *, u8);
void sub_80073B8(s32);
void sub_80073E0(s32);
// text.s
extern void InitGraphics(void);

View File

@ -52,7 +52,6 @@ extern s16 sub_8097870();
extern s32 sub_80977B8();
extern s32 sub_80977F8();
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern void xxx_format_and_draw(u32, u32, const char *, u32, u32);
const u8 *GetAdventureLogLine(u8 index);
extern u32 gUnknown_202DE30;

View File

@ -85,7 +85,6 @@ extern void sub_801BB5C(void);
extern struct PokemonStruct *GetPlayerPokemonStruct(void);
extern void sub_801B748(u32);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32);
extern void PlayMenuSoundEffect(u32);
extern void sub_8013F84(void);

View File

@ -146,7 +146,6 @@ extern u32 sub_801CE58(void);
extern void sub_801CC38(void);
extern void sub_80140B4(struct UnkTextStruct2 *);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern u32 sub_8097DF0(char *, struct subStruct_203B240 **);
extern void sub_8013F84(void);
extern void PlayMenuSoundEffect(u32);

View File

@ -58,7 +58,6 @@ extern const char *sub_8098FB4();
extern void xxx_format_string(const char *, u8 *, u32 **, u32);
extern s32 sub_8008ED0(u8 *);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
void LoadTeamRankBadge(u32, u32, u32);
extern void SetBGPaletteBufferColorArray(s32 index, u8 *colorArray);
extern void sub_8007E20(u32, u32, u32, u32, u32, u8 *, u32);

View File

@ -57,7 +57,6 @@ extern u8 gUnknown_80DC2DC[];
extern void PlayMenuSoundEffect(u32);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern void sub_80140B4(struct UnkTextStruct2 *);
extern void sub_801F918(s32);
extern void sub_801FA58(void);

View File

@ -49,7 +49,6 @@ extern u8 gUnknown_80DC4F0[];
extern u8 *gUnknown_80D49BC[];
extern u8 gUnknown_80DC524[];
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern void sub_8092578(u8 *buffer, u8 index, u8 r2);
void sub_800792C(u32, u32, u32, u32, u32);
void sub_8007A78(u32, u32, u32, u32, u32);

View File

@ -464,7 +464,6 @@ void sub_8023420(void)
extern u8 gUnknown_80DC934[];
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
bool8 HasRecruitedMon(s16 species_);
extern u8 gUnknown_80DC93C[];

View File

@ -48,7 +48,6 @@ ALIGNED(4) const u8 gUnknown_80E1FDC[] = "Password";
ALIGNED(4) static const u8 fill0[] = "pksdir0";
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern void sub_80078A4(u32, u32, u32, u32, u32);
extern void sub_803D2C0(u8 *, struct unkStruct_203B480 *);
extern void PlayMenuSoundEffect(u32);

View File

@ -42,7 +42,6 @@ extern void xxx_format_string(const char *, u8 *, void *, u32);
void PrintYellowDungeonNametoBuffer(u8 *buffer, struct DungeonLocation *dungeonLocation);
extern void xxx_format_and_draw(s32, s32, const u8 *, ...);
extern s32 sub_8008ED0(u8 *);
extern void sub_80073E0(u32);
void sub_809447C(struct unkStruct_8094924 *r0, u8 *r1)
{

View File

@ -40,7 +40,6 @@ extern u16 gUnknown_80E5990[];
extern void sub_80015C0(u32, u32);
extern s32 sub_8001658(u32, u32);
extern void sub_80073E0(u32);
extern void sub_8099690(u32);
extern void sub_8099A5C(u32, u32, u32);
extern void sub_8099AFC(u32, u32, u32);

View File

@ -49,7 +49,6 @@ extern s16 sub_8023B44(void);
extern void sub_8023C60(void);
extern void sub_8008C54(u32);
extern void sub_8013C68(u32 *);
extern void sub_80073E0(u32);
extern void sub_8023DA4(void);
extern void sub_803ACE8();
extern void sub_803AD88();

View File

@ -102,7 +102,6 @@ extern void sub_801C8C4(u32, u32, u32, u32);
extern void sub_801CB5C(u32);
extern void sub_801CCD8();
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern void sub_8013C68(u32 *);
extern u32 sub_801CA08(u32);
extern u8 sub_801CB24();

View File

@ -30,7 +30,6 @@ extern u8 gFelicityMoney[];
extern u8 gUnknown_80DB738;
extern void PlaySound(u32);
extern void sub_80073E0(u32);
extern void sub_8008C54(u32);
extern void sub_8013AA0(u32 *);
extern u32 sub_8013BBC(u32 *);

View File

@ -34,7 +34,6 @@ extern u32 sub_801F890(void);
extern void sub_801F8D0(void);
extern void xxx_format_and_draw(u32, u32, const u8 *, ...);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern u8 gUnknown_202DE58[];
extern u32 sub_801F194(void);

View File

@ -114,7 +114,6 @@ ALIGNED(4) const u8 gFriendListItem[] = _("Item: {COLOR_1 GREEN}{ARG_MOVE_ITEM_0
ALIGNED(4) static const u8 fill0[] = "pksdir0";
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern void xxx_format_and_draw(s32, s32, const u8 *, ...);
extern u32 sub_8023A94(u32);
extern s16 sub_8023B44(void);

View File

@ -48,7 +48,6 @@ extern void PlayMenuSoundEffect(u32);
extern void sub_801E714(void);
extern void sub_801E76C(void);
extern void DisplayChosenHint(void);
extern void sub_80073E0(u32);
extern void sub_8008C54(u32);
void DrawHintSelectionMenu(void);
void sub_801E594(void);

View File

@ -41,7 +41,6 @@ EWRAM_DATA_2 struct TeamInventory *gTeamInventoryRef = {0};
extern s32 sub_8090FEC(s32 a1, u8* a2, u8 a3);
extern u32 sub_8097DF0(char *, struct subStruct_203B240 **);
extern void sub_80078A4(u32, u32, u32, u32, u32);
extern void sub_80073E0(u32);
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
extern s32 sub_8091E94(s32 a1, s32 a2, s32 a3);
extern void SortKecleonShopInventory();

View File

@ -38,7 +38,6 @@ extern const u8 gUnknown_80DB830[]; // "Number?\0"
extern const u8 *gKangaskhanStorageDialogue[2][20];
// text.s
extern void sub_80073E0(u32);
extern void sub_8008C54(u32);
// code_80130A8.s
extern void sub_8013AA0(u32 *);

View File

@ -54,7 +54,6 @@ extern const u8 gTeamToolboxA[];
extern const u8 gTeamToolboxB[];
// text.s
extern void sub_80073E0(u32);
extern void sub_8007B7C(s32, s32, s32, s32, s32);
extern void sub_8008C54(u32);
// code_80130A8.s

View File

@ -53,7 +53,6 @@ extern u8 *GetDungeonLocationInfo(void);
extern u32 GetNumAdventures(void);
extern void PrintDungeonLocationtoBuffer(u8 *, u8 *);
extern u32 sub_8001658(u32, u32);
extern void sub_80073E0(u32);
extern void sub_8008C54(u32);
extern void xxx_format_string(u8 *, u8 *, u8 *, u32);

View File

@ -88,7 +88,6 @@ extern void sub_802B640(u32, u32, u32);
extern void sub_802B7D0(u32);
extern void sub_802B9FC(u8);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern u32 sub_802BA8C(void);
extern void sub_802BACC(void);
extern u8 GetPokemonNewsIndex(void);

View File

@ -66,7 +66,6 @@ ALIGNED(4) const u8 gUnknown_80E0824[] = _("{STAR_BULLET}");
ALIGNED(4) const u8 gMakuhitaCoursePlaceholder[] = _("{COLOR_2}%c%s{END_COLOR_TEXT_2}");
static const u8 makuhita_dojo_fill3[] = "pksdir0";
extern void sub_80073E0(u32);
extern void sub_8008C54(u32);
extern u32 sub_80095E4(s16, u32);
extern void sub_80141B4(const u8 *, u32, struct OpenedFile **, u32);

View File

@ -19,14 +19,12 @@ extern u8 gUnknown_80D4828[];
extern void PlayMenuSoundEffect(u32);
extern s32 sub_8008ED0(const u8 *);
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
extern void sub_80073E0(u32);
void AddMenuCursorSprite_(struct MenuInputStruct *, u32);
void sub_8012EBC(struct MenuStruct *param_1);
extern void sub_8013134(struct MenuInputStruct *, u32, u32);
extern s16 sub_8009614(u32, u32);
extern u32 ReturnIntFromChar2(u8);
struct unkChar *GetCharacter(u32);
extern void xxx_call_draw_char(u32, u32, u32, u32, u32);
extern void nullsub_7(u16 *);
extern void nullsub_34(struct MenuInputStructSub *r0);

View File

@ -60,7 +60,6 @@ int unk_PrintMoveDescription(int, struct Move*, int, struct subStruct_203B240**)
void sub_80928C0(u8 *buffer, struct Move *move, struct unkStruct_80928C0 *param_3);
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
extern void unk_MovePrintData(struct Move*, int); // print something
extern void sub_80073E0(u32);
extern u32 sub_8097DF0(char *, struct subStruct_203B240 **);
extern void sub_80078A4(u32, u32, u32, u32, u32);

View File

@ -53,7 +53,6 @@ extern const char *gUnknown_80D4920[];
extern const char *gUnknown_80D4928[];
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern s32 sub_8008ED0(u8 *);
extern void CreateOthersMenu(void);
extern void sub_80078A4(u32, u32, u32, u32, u32);

View File

@ -172,7 +172,6 @@ extern void sub_801F214(void);
extern u32 sub_801F194(void);
extern u32 sub_801EF38(u32);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern s32 sub_8008ED0(u8 *);
extern void xxx_format_and_draw(s32, s32, const u8 *, ...);
extern s32 sub_80144A4(s32 *);

View File

@ -81,7 +81,6 @@ extern void sub_802DE84(struct unkStruct_802C39C *);
extern void InitializeJobListMenu(u32);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern u32 sub_802C898(void);
extern void sub_802C8F4(void);
extern u32 sub_802DEE0(void);

View File

@ -55,7 +55,6 @@ extern u32 sub_8016080(void);
extern void sub_80160D8(void);
extern void sub_8099690(u32);
extern void sub_80073E0(u32);
extern void sub_8008C54(u32);
extern void sub_800836C(u32, u8 *r0, u32);
extern void SetBGPaletteBufferColorArray(s32 index, u8 *colorArray);

View File

@ -171,7 +171,6 @@ extern char gUnknown_202E5D8[0x50];
extern char gAvailablePokemonNames[0x50];
extern void sub_8008C54(u32);
extern void sub_802BC7C(void);
extern void sub_80073E0(u32);
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);
extern void sub_803B6B0(u32, u32, u32, u32);
extern struct PokemonStruct *sub_808D3BC(void);

View File

@ -189,7 +189,6 @@ extern u8 *sub_80975DC(u32 r0);
extern u8 sub_8099360(u8 *);
extern u8 sub_8099394(volatile u8 *);
extern struct WonderMail *GetJobSlotInfo(u8);
extern void sub_80073E0(u32);
extern void sub_803B6B0(u32, u32, u32, u32);
extern s16 sub_80A2688(u8 r0);
extern u8 sub_80992E0(s16 *, s16 *);

View File

@ -11,7 +11,7 @@ EWRAM_DATA u16 gCharacterSpacing;
EWRAM_DATA u8 gUnknown_20274A5;
EWRAM_DATA u32 gCurrentCharmap;
EWRAM_DATA vu32 gUnknown_20274B0;
EWRAM_DATA u8 gUnknown_20274B4[0x3b00];
EWRAM_DATA u32 gUnknown_20274B4[0xEC0];
EWRAM_DATA struct OpenedFile *gCharmapFiles[2];
EWRAM_DATA struct UnkTextStruct2 gUnknown_202AFC0[4];
EWRAM_DATA u32 gUnknown_202B020;
@ -169,7 +169,7 @@ void sub_8006438(const struct UnkTextStruct2 *a0, u8 a1, u8 a2, struct UnkTextSt
gUnknown_202AFC0[i] = a0[i];
if (a0[i].unkC) {
sub_8006554(gUnknown_2027370, (void *)VRAM, gUnknown_20274B4, &gUnknown_202B038[0][0][0], gUnknown_80B8804[i], a0 + i, a1, r9, a3, 0);
sub_8006554(gUnknown_2027370, (u32 *)VRAM, gUnknown_20274B4, &gUnknown_202B038[0][0][0], gUnknown_80B8804[i], a0 + i, a1, r9, a3, 0);
sub_80089AC(a0 + i, a3);
r9 += a0[i].unkC * a0[i].unk10;
}

View File

@ -8,6 +8,8 @@ extern const u32 gUnknown_80B8814[];
// text.s
extern void sub_8008C6C(struct UnkTextStruct1 *, u32);
u32 xxx_draw_char(struct UnkTextStruct1 *, u32, u32, u32, u32, u32);
void sub_800677C(struct UnkTextStruct1 *, s32, u16 *, u8);
void sub_80069CC(struct UnkTextStruct1 *, s32, s32, s32, u16 *);
void sub_8006AC4(struct UnkTextStruct1 *, s32, s32, s32, u16 *);
@ -36,7 +38,7 @@ u32 sub_8006544(u32 index)
}
// a1 is a VRAM pointer
void sub_8006554(struct UnkTextStruct1 *a0, void *a1, u8 *a2, u16 *a3, u32 a4, const struct UnkTextStruct2 *a5, u8 a6, u32 a7, struct UnkTextStruct2_sub *a8, u8 a9)
void sub_8006554(struct UnkTextStruct1 *a0, u32 *a1, u32 *a2, u16 *a3, u32 a4, const struct UnkTextStruct2 *a5, u8 a6, u32 a7, struct UnkTextStruct2_sub *a8, u8 a9)
{
struct UnkTextStruct1 *t1;
s32 iVar3;
@ -65,10 +67,10 @@ void sub_8006554(struct UnkTextStruct1 *a0, void *a1, u8 *a2, u16 *a3, u32 a4, c
else
t1->unk14 = a7 + a5->unk12 * t1->unk4;
t1->unk18 = &a2[t1->unk10 * 0x20];
t1->unk1C = &a2[t1->unk14 * 0x20];
t1->unk18 = &a2[t1->unk10 * 8];
t1->unk1C = &a2[t1->unk14 * 8];
t1->unk24 = a5->unk12;
t1->unk28 = a1 + (t1->unk14 * 0x20);
t1->unk28 = &a1[t1->unk14 * 8];
if (t1->unkC == 6)
t1->unk2C = t1->unk4 * (t1->unk6 + a5->unk12) * 32;
@ -1265,7 +1267,7 @@ void sub_8007334(s32 a0)
}
#endif // NONMATCHING
// Unused?
// Unused
void nullsub_154(void)
{
}
@ -1273,15 +1275,57 @@ void nullsub_154(void)
void sub_80073B8(s32 a0)
{
struct UnkTextStruct1 *r1;
r1 = &gUnknown_2027370[a0];
r1->unk3C = r1->unk1C + (r1->unk2C >> 2 << 2);
r1->unk3C = &r1->unk1C[(u32)r1->unk2C >> 2];
r1->unk40 = r1->unk1C;
r1->unk46 = 1;
}
// Unused?
// Unused
void nullsub_155(void)
{
}
}
void sub_80073E0(s32 a0)
{
struct UnkTextStruct1 *r1;
r1 = &gUnknown_2027370[a0];
if (r1->unk44 == 0) {
r1->unk30 = &r1->unk28[r1->unk3C - r1->unk1C];
r1->unk34 = r1->unk3C;
r1->unk38 = (r1->unk40 - r1->unk3C + 1) * 4;
if (r1->unk38 >= r1->unk2C)
r1->unk38 = r1->unk2C;
if (r1->unk38 < 0)
r1->unk38 = 0;
}
r1->unk46 = 0;
}
// Unused
void nullsub_156(void)
{
}
u32 xxx_call_draw_char(u32 x, u32 y, u32 a2, u32 color, u32 a4)
{
return xxx_draw_char(gUnknown_2027370, x, y, a2, color, a4);
}
// Unused
bool8 sub_8007464(void)
{
return FALSE;
}
/*u32 xxx_draw_char(struct UnkTextStruct1 *a0, u32 x, u32 y, u32 a3, u32 color, u32 a5)
{
}*/

View File

@ -101,7 +101,6 @@ extern void sub_80141B4(const u8 *, u32, u32, u32);
extern void sub_8008C54(u32);
extern void sub_8013C68(u32 *);
extern void sub_80073E0(u32);
extern u8 sub_801CF14(u32);
extern u32 sub_801D008();
extern void sub_801C8C4(u32, u32, s32 *, u32);

View File

@ -98,7 +98,6 @@ static const u8 wonder_mail_fill1[] = "pksdir0";
extern void sub_802CAA4(void);
extern u8 IsJobSlotEmpty(u8);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern struct WonderMail* GetJobSlotInfo(u8);
extern void sub_803B35C(struct WonderMail *, struct unkStruct_802C39C *);
extern void CreateRescueTitle(struct unkStruct_802C39C *);

View File

@ -18,7 +18,6 @@ extern void DrawPelipperBoardJobMenu(void);
extern void PlayMenuSoundEffect(u32);
extern u8 HasNoPelipperBoardJobs(void);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern struct WonderMail *GetPelipperBoardSlotInfo(u32);
extern void sub_803B35C(struct WonderMail *, u32 *);

View File

@ -150,7 +150,6 @@ extern void AcceptJob(struct unkSubStruct_203B2F8 *);
extern void sub_8014248(const char *text, u32, u32, struct MenuItem *r0, u32, u32, u32, u32, u32);
struct unkStruct_803B344 *sub_803B344(u8);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern void CreateRescueTitle(struct unkStruct_802C39C *);
extern u8 gUnknown_80DFDBC[];
extern void sub_802CF5C(void);

View File

@ -132,7 +132,6 @@ extern u32 sub_801B60C(u32, u8, u8);
extern void sub_8092578(u8 *buffer, u8 index, u8 r2);
void HandleMissionReward(void);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
const u8 *sub_80974A0(s16 index);
const struct UnkTextStruct2 gUnknown_80E03C4 = {

View File

@ -82,7 +82,6 @@ extern void sub_803092C(void);
extern void PlayMenuSoundEffect(u32);
extern void sub_8008C54(u32);
extern void sub_80073E0(u32);
extern void CreateRescueTitle(struct unkStruct_802C39C *);
u32 sub_80306A8(u32 wonderMailType, u32 r1, struct UnkTextStruct2_sub *r2, u32 r3)

View File

@ -51,7 +51,6 @@ static const u8 wonder_mail_fill[] = "pksdir0";
extern void sub_8030DD4(void);
extern void PlayMenuSoundEffect(u32);
extern void CreateRescueDescription(struct unkStruct_802C39C *);
extern void sub_80073E0(u32);
void sub_8030E2C(void);
void sub_8030E48(void);

View File

@ -103,7 +103,6 @@ const struct UnkTextStruct2 gUnknown_80E0264 =
static const u8 wonder_mail_802DF88_fill1[] = "pksdir0";
extern void sub_80073E0(u32);
extern void CreateRescueDescription(struct unkStruct_802C39C *);
extern void PlayMenuSoundEffect(u32);
extern s32 sub_80144A4(s32 *);