mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-28 03:34:22 -05:00
More splitting and decomping
This commit is contained in:
1396
asm/code_809A560.s
1396
asm/code_809A560.s
File diff suppressed because it is too large
Load Diff
1132
asm/code_809C5C4.s
Normal file
1132
asm/code_809C5C4.s
Normal file
File diff suppressed because it is too large
Load Diff
@@ -331,6 +331,8 @@ SECTIONS {
|
||||
asm/code_8098BDC.o(.text);
|
||||
src/code_809A560.o(.text);
|
||||
asm/code_809A560.o(.text);
|
||||
src/code_809C5C4.o(.text);
|
||||
asm/code_809C5C4.o(.text);
|
||||
src/code_809D148.o(.text);
|
||||
asm/code_809D148.o(.text);
|
||||
src/ground_script.o(.text);
|
||||
|
||||
@@ -1,6 +1,26 @@
|
||||
#include "global.h"
|
||||
#include "text1.h"
|
||||
#include "memory.h"
|
||||
#include "file_system.h"
|
||||
|
||||
struct unkStruct_3001B64_sub
|
||||
{
|
||||
// size: 0x24
|
||||
u16 unk0;
|
||||
/* 0x2 */ s16 speciesID;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
u8 unk6;
|
||||
u8 unk7;
|
||||
u32 unk8;
|
||||
u32 unkC;
|
||||
u32 unk10;
|
||||
/* 0x14 */ u32 faceData;
|
||||
u32 fill18;
|
||||
u8 unk1C;
|
||||
u8 fill1D[0x20 - 0x1D];
|
||||
/* 0x20 */ OpenedFile *faceFile;
|
||||
};
|
||||
|
||||
struct unkStruct_3001B64
|
||||
{
|
||||
@@ -19,7 +39,8 @@ struct unkStruct_3001B64
|
||||
u32 unk42C;
|
||||
u32 unk430;
|
||||
u32 unk434;
|
||||
u8 fill438[0x5A4 - 0x438];
|
||||
u32 fill438;
|
||||
struct unkStruct_3001B64_sub unk43C[10];
|
||||
u16 unk5A4;
|
||||
};
|
||||
|
||||
@@ -27,23 +48,28 @@ extern struct unkStruct_3001B64 *gUnknown_3001B64;
|
||||
|
||||
extern u16 gUnknown_20399DC;
|
||||
extern u16 gUnknown_20399DE;
|
||||
extern u8 gInvalidityText[];
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
extern u8 gPlayerName[];
|
||||
|
||||
extern u8 sub_809B2B8(u32 *, u32, u32, u32);
|
||||
extern u32 sub_809B40C(u32 *);
|
||||
extern void sub_801416C(s32, s32);
|
||||
extern void sub_809A83C(s16);
|
||||
extern u32 sub_809A680(u32, u32);
|
||||
extern void sub_809A62C(void);
|
||||
extern void sub_80095CC(u32, u32);
|
||||
extern void sub_8009408(u32, u32);
|
||||
extern void sub_809B294(void);
|
||||
extern void sub_8014144(void);
|
||||
extern void sub_809A7EC(void);
|
||||
|
||||
u32 sub_809A680(u32 param_1, u32 param_2);
|
||||
void sub_809A62C(void);
|
||||
void sub_809A7EC(void);
|
||||
void sub_809A83C(s16 index);
|
||||
|
||||
|
||||
void sub_809A560(void)
|
||||
{
|
||||
sub_8014144();
|
||||
gUnknown_3001B64 = MemoryAlloc(0x5a8,6);
|
||||
gUnknown_3001B64 = MemoryAlloc(sizeof(struct unkStruct_3001B64), 6);
|
||||
gUnknown_3001B64->unk0 = 0;
|
||||
gUnknown_3001B64->unk4 = -1;
|
||||
gUnknown_3001B64->unk8 = -1;
|
||||
@@ -75,16 +101,16 @@ void sub_809A610(void)
|
||||
|
||||
void sub_809A62C(void)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 index;
|
||||
|
||||
gUnknown_3001B64->unk0 = 0;
|
||||
gUnknown_3001B64->unk4 = -1;
|
||||
gUnknown_3001B64->unk8 = -1;
|
||||
gUnknown_20399DC = 0;
|
||||
gUnknown_20399DE = 0;
|
||||
for(iVar2 = 0; iVar2 < 10; iVar2++)
|
||||
for(index = 0; index < 10; index++)
|
||||
{
|
||||
sub_809A83C(iVar2);
|
||||
sub_809A83C(index);
|
||||
}
|
||||
gUnknown_3001B64->unk414 = 0;
|
||||
sub_809A680(0, 1);
|
||||
@@ -187,3 +213,53 @@ u8 sub_809A7B4(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_809A7EC(void)
|
||||
{
|
||||
s32 counter;
|
||||
struct unkStruct_3001B64_sub *temp;
|
||||
|
||||
temp = &gUnknown_3001B64->unk43C[0];
|
||||
|
||||
for(counter = 0; counter < 10; counter++, temp++)
|
||||
{
|
||||
temp->unk0 |= -1;
|
||||
temp->speciesID = MONSTER_NONE;
|
||||
temp->unk4 = 0;
|
||||
temp->unk5 = 0;
|
||||
temp->unk6 |= -1;
|
||||
temp->unk7 = 0;
|
||||
temp->unk8 = 0;
|
||||
temp->unkC = 0;
|
||||
temp->unk10 = 0;
|
||||
temp->faceData = 0;
|
||||
temp->unk1C = 0;
|
||||
temp->faceFile = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// https://decomp.me/scratch/4MpWc (96.23% matching - Seth)
|
||||
// void sub_809A83C(s16 index)
|
||||
// {
|
||||
// struct unkStruct_3001B64_sub *temp;
|
||||
//
|
||||
// temp = &gUnknown_3001B64->unk43C[index];
|
||||
//
|
||||
// temp->unk0 = -1;
|
||||
// temp->speciesID = MONSTER_NONE;
|
||||
// temp->unk4 = 0;
|
||||
// temp->unk5 = 0;
|
||||
// temp->unk6 = -1;
|
||||
// temp->unk7 = 0;
|
||||
// temp->unk8 = 0;
|
||||
// temp->unkC = 0;
|
||||
// temp->unk10 = 0;
|
||||
// temp->faceData = NULL;
|
||||
// temp->unk1C = 0;
|
||||
// strcpy(gAvailablePokemonNames + (index * 0x50), gInvalidityText);
|
||||
// strcpy(gPlayerName + (index * 0x50), gInvalidityText);
|
||||
// if(temp->faceFile)
|
||||
// {
|
||||
// CloseFile(temp->faceFile);
|
||||
// temp->faceFile = NULL;
|
||||
// }
|
||||
// }
|
||||
|
||||
152
src/code_809C5C4.c
Normal file
152
src/code_809C5C4.c
Normal file
@@ -0,0 +1,152 @@
|
||||
#include "global.h"
|
||||
#include "memory.h"
|
||||
#include "game_options.h"
|
||||
#include "ground_main.h"
|
||||
|
||||
struct unkStruct_3001B68
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u16 unk8;
|
||||
u16 unkA;
|
||||
u8 unkC;
|
||||
u8 unkD;
|
||||
u8 unkE;
|
||||
u32 unk10;
|
||||
u16 unk14;
|
||||
u16 unk16;
|
||||
u8 unk18;
|
||||
u8 unk19;
|
||||
u32 unk1C;
|
||||
u8 unk20;
|
||||
};
|
||||
|
||||
extern struct unkStruct_3001B68 *gUnknown_3001B68;
|
||||
|
||||
void sub_809C63C();
|
||||
u8 sub_809C740(void);
|
||||
void nullsub_107();
|
||||
void nullsub_108();
|
||||
void nullsub_109();
|
||||
void nullsub_110();
|
||||
void nullsub_111();
|
||||
void nullsub_112();
|
||||
void nullsub_113();
|
||||
void nullsub_114();
|
||||
void nullsub_115();
|
||||
void nullsub_116();
|
||||
|
||||
void sub_809C5C4(void)
|
||||
{
|
||||
gUnknown_3001B68 = MemoryAlloc(sizeof(struct unkStruct_3001B68), 6);
|
||||
gUnknown_3001B68->unk0 = 0;
|
||||
gUnknown_3001B68->unk4 = 0;
|
||||
gUnknown_3001B68->unk8 = 0;
|
||||
gUnknown_3001B68->unkA = 0;
|
||||
gUnknown_3001B68->unkD = 0;
|
||||
gUnknown_3001B68->unkE = 0;
|
||||
gUnknown_3001B68->unk10 = 0;
|
||||
gUnknown_3001B68->unk14 = 0xffff;
|
||||
gUnknown_3001B68->unk16 = 0x23;
|
||||
gUnknown_3001B68->unk18 = 0;
|
||||
gUnknown_3001B68->unk19 = 0x3f;
|
||||
gUnknown_3001B68->unk1C = 0;
|
||||
gUnknown_3001B68->unk20 = 0;
|
||||
nullsub_107();
|
||||
sub_809C63C();
|
||||
}
|
||||
|
||||
void sub_809C618(void)
|
||||
{
|
||||
sub_809C63C();
|
||||
nullsub_107();
|
||||
nullsub_108();
|
||||
MemoryFree(gUnknown_3001B68);
|
||||
gUnknown_3001B68 = NULL;
|
||||
}
|
||||
|
||||
void sub_809C63C(void)
|
||||
{
|
||||
nullsub_108();
|
||||
gUnknown_3001B68->unk1C = 0;
|
||||
gUnknown_3001B68->unk20 = 0;
|
||||
}
|
||||
|
||||
void sub_809C658(void)
|
||||
{
|
||||
switch(gUnknown_3001B68->unkA) {
|
||||
case 3:
|
||||
nullsub_111();
|
||||
nullsub_112();
|
||||
nullsub_113();
|
||||
break;
|
||||
case 4:
|
||||
nullsub_114();
|
||||
nullsub_115();
|
||||
nullsub_116();
|
||||
break;
|
||||
case 2:
|
||||
nullsub_109();
|
||||
nullsub_110();
|
||||
break;
|
||||
case 5:
|
||||
nullsub_107();
|
||||
nullsub_108();
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
nullsub_107();
|
||||
nullsub_108();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_809C6CC(u16 param_1)
|
||||
{
|
||||
if(gUnknown_3001B68->unk8 != param_1)
|
||||
{
|
||||
gUnknown_3001B68->unk8 = param_1;
|
||||
gUnknown_3001B68->unkE = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_809C6EC(void)
|
||||
{
|
||||
if (sub_8098F88() == 0) {
|
||||
if (gGameOptionsRef->unkC == 0) {
|
||||
sub_809C6CC(4);
|
||||
}
|
||||
else {
|
||||
sub_809C6CC(3);
|
||||
}
|
||||
}
|
||||
else {
|
||||
sub_809C6CC(5);
|
||||
}
|
||||
}
|
||||
|
||||
u16 sub_809C724(void)
|
||||
{
|
||||
return gUnknown_3001B68->unk8;
|
||||
}
|
||||
|
||||
u8 sub_809C730(void)
|
||||
{
|
||||
return sub_809C740();
|
||||
}
|
||||
|
||||
u8 sub_809C740(void)
|
||||
{
|
||||
if(gUnknown_3001B68->unk0 == 0)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
void nullsub_104(void)
|
||||
{ }
|
||||
|
||||
void sub_809C760(void)
|
||||
{
|
||||
gUnknown_3001B68->unkE = 1;
|
||||
}
|
||||
Reference in New Issue
Block a user