mirror of
https://github.com/pret/pokestadium.git
synced 2026-08-09 11:17:21 -05:00
Merge pull request #214 from dplewis/gb_emu-1
Some checks failed
C/C++ CI / build (push) Has been cancelled
Some checks failed
C/C++ CI / build (push) Has been cancelled
Fragment 1 various functions
This commit is contained in:
commit
fdc8596d0d
|
|
@ -468,19 +468,20 @@ typedef struct UnkInputStruct8000D738 {
|
|||
/* 0x04 */ u16 (*unk_04)[6][0x640];
|
||||
} UnkInputStruct8000D738; // size = 0x8
|
||||
|
||||
typedef struct UnkStruct800AA660 {
|
||||
typedef struct unk_D_800AA660 {
|
||||
/* 0x0000 */ OSThread thread;
|
||||
/* 0x01B0 */ char unk01B0[0x10];
|
||||
/* 0x01C0 */ OSMesgQueue queue1;
|
||||
/* 0x01D8 */ struct UnkStruct800AA660* unk_01D8;
|
||||
/* 0x01D8 */ struct unk_D_800AA660* unk_01D8;
|
||||
/* 0x01DC */ s32 unk_01DC;
|
||||
/* 0x01E0 */ char unk01E0[0x2000];
|
||||
/* 0x21E0 */ OSMesg mesg;
|
||||
/* 0x21E4 */ OSMesgQueue queue2;
|
||||
/* 0x21FC */ s32 unk_21FC;
|
||||
/* 0x2200 */ s32 unk_2200;
|
||||
/* 0x21FC */ u8* font1;
|
||||
/* 0x2200 */ u8* font2;
|
||||
/* 0x2204 */ UnkInputStruct8000D738 unk_2204;
|
||||
} UnkStruct800AA660; // size >= 0x220C
|
||||
/* 0x220C */ char unk220C[4];
|
||||
} unk_D_800AA660; // size = 0x2210
|
||||
|
||||
typedef struct unk_D_864027C0 {
|
||||
/* 0x00 */ f32 unk_00;
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#define SCREEN_WIDTH 320
|
||||
#define SCREEN_HEIGHT 240
|
||||
|
||||
#define ALIGN2(val) (((u32)(val) + 0x1) & ~0x1)
|
||||
#define ALIGN4(val) (((val) + 0x3) & ~0x3)
|
||||
#define ALIGN8(val) (((val) + 0x7) & ~0x7)
|
||||
#define ALIGN16(val) (((val) + 0xFu) & ~0xFu)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,16 @@ extern u8 fragment1_TEXT_START[];
|
|||
extern u8 fragment1_ROM_START[];
|
||||
extern u8 fragment1_ROM_END[];
|
||||
extern u8 fragment1_relocs_ROM_END[];
|
||||
extern u8 fragment1_yay0_0_ROM_START[];
|
||||
extern u8 fragment1_yay0_0_ROM_END[];
|
||||
extern u8 fragment1_yay0_1_ROM_START[];
|
||||
extern u8 fragment1_yay0_1_ROM_END[];
|
||||
extern u8 fragment1_yay0_2_ROM_START[];
|
||||
extern u8 fragment1_yay0_2_ROM_END[];
|
||||
extern u8 fragment1_yay0_3_ROM_START[];
|
||||
extern u8 fragment1_yay0_3_ROM_END[];
|
||||
extern u8 fragment1_yay0_4_ROM_START[];
|
||||
extern u8 fragment1_yay0_4_ROM_END[];
|
||||
|
||||
// fragment 2
|
||||
extern u8 fragment2_TEXT_START[];
|
||||
|
|
|
|||
|
|
@ -924,6 +924,14 @@ extern u32 D_304F120[];
|
|||
extern s32 D_800FC820;
|
||||
extern u8* D_800FF9C0;
|
||||
|
||||
extern OSViMode D_800795C0;
|
||||
extern u8 D_ADC80[];
|
||||
extern u8 D_F4130[];
|
||||
extern u8 D_F4920[];
|
||||
extern u8 D_F5450[];
|
||||
extern u8 D_FDE40[];
|
||||
extern u8 D_102BA0[];
|
||||
|
||||
typedef struct unk_70D3A0 {
|
||||
/* 0x00 */ f32 unk_00;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
|
|
|
|||
|
|
@ -1600,7 +1600,7 @@ func_81206FA0 = 0x81206FA0; // type:func
|
|||
func_81207020 = 0x81207020; // type:func
|
||||
func_81207078 = 0x81207078; // type:func
|
||||
func_812070A0 = 0x812070A0; // type:func
|
||||
func_812072B0 = 0x812072B0; // type:func
|
||||
osGbSetNextBuffer = 0x812072B0; // type:func
|
||||
func_81207330 = 0x81207330; // type:func
|
||||
func_81207338 = 0x81207338; // type:func
|
||||
func_81207348 = 0x81207348; // type:func
|
||||
|
|
|
|||
16
src/5580.c
16
src/5580.c
|
|
@ -160,7 +160,7 @@ void func_80004DB4(void) {
|
|||
}
|
||||
|
||||
void func_80004DBC(u32 arg0) {
|
||||
UnkStruct800AA660* var_s0 = D_800A62E0.unk_A10;
|
||||
unk_D_800AA660* var_s0 = D_800A62E0.unk_A10;
|
||||
|
||||
while (var_s0 != NULL) {
|
||||
if (D_800A62E0.unk_A38 == 0) {
|
||||
|
|
@ -200,7 +200,7 @@ s32 func_80004ED0(void) {
|
|||
}
|
||||
|
||||
void func_80004F08(void) {
|
||||
UnkStruct800AA660* var_s0 = D_800A62E0.unk_A10;
|
||||
unk_D_800AA660* var_s0 = D_800A62E0.unk_A10;
|
||||
|
||||
while (var_s0 != NULL) {
|
||||
if (var_s0->unk_01DC == 0) {
|
||||
|
|
@ -335,9 +335,9 @@ void func_800052B4(void) {
|
|||
osStartThread(&D_800A62E0.thread);
|
||||
}
|
||||
|
||||
void func_80005328(UnkStruct800AA660* arg0) {
|
||||
UnkStruct800AA660* var_v1;
|
||||
UnkStruct800AA660* var_a1;
|
||||
void func_80005328(unk_D_800AA660* arg0) {
|
||||
unk_D_800AA660* var_v1;
|
||||
unk_D_800AA660* var_a1;
|
||||
|
||||
if (D_800A62E0.unk_A10 == NULL) {
|
||||
D_800A62E0.unk_A10 = arg0;
|
||||
|
|
@ -354,9 +354,9 @@ void func_80005328(UnkStruct800AA660* arg0) {
|
|||
arg0->unk_01D8 = NULL;
|
||||
}
|
||||
|
||||
void func_80005370(UnkStruct800AA660* arg0) {
|
||||
UnkStruct800AA660** var_v0 = &D_800A62E0.unk_A10;
|
||||
UnkStruct800AA660* var_v1 = D_800A62E0.unk_A10;
|
||||
void func_80005370(unk_D_800AA660* arg0) {
|
||||
unk_D_800AA660** var_v0 = &D_800A62E0.unk_A10;
|
||||
unk_D_800AA660* var_v1 = D_800A62E0.unk_A10;
|
||||
|
||||
while (var_v1 != NULL) {
|
||||
if (var_v1 == arg0) {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ typedef struct unk_D_800A62E0 {
|
|||
/* 0x9B0 */ u8 stack[64];
|
||||
/* 0x9F0 */ OSMesgQueue queue;
|
||||
/* 0xA08 */ u64 time;
|
||||
/* 0xA10 */ UnkStruct800AA660* unk_A10;
|
||||
/* 0xA10 */ unk_D_800AA660* unk_A10;
|
||||
/* 0xA14 */ UnkStruct80001380* unk_A14;
|
||||
/* 0xA18 */ UnkStruct80001380* unk_A18;
|
||||
/* 0xA1C */ UnkStruct80001380* unk_A1C;
|
||||
|
|
@ -86,10 +86,10 @@ void func_80004CC0(UnkStruct80083CA0_2*, s32, s32);
|
|||
s32 func_80004CF4(UnkStruct80083CA0_2*);
|
||||
s32 func_80004D20(UnkStruct80083CA0_2*);
|
||||
void func_800052B4(void);
|
||||
void func_80005328(UnkStruct800AA660*);
|
||||
void func_80005328(unk_D_800AA660*);
|
||||
void func_80004980(UnkStruct80001380* arg0);
|
||||
void func_800049AC(UnkStruct80001380* arg0);
|
||||
void func_80005370(UnkStruct800AA660* arg0);
|
||||
void func_80005370(unk_D_800AA660* arg0);
|
||||
void func_800053B4(UnkStruct80001380* arg0, s32 arg1);
|
||||
|
||||
|
||||
|
|
|
|||
16
src/6BC0.h
16
src/6BC0.h
|
|
@ -5,12 +5,20 @@
|
|||
|
||||
// image size in bits
|
||||
typedef enum IMAGE_SIZE_BITS {
|
||||
IMAGE_SIZE_BITS_4b,
|
||||
IMAGE_SIZE_BITS_8b,
|
||||
IMAGE_SIZE_BITS_16b,
|
||||
IMAGE_SIZE_BITS_32b,
|
||||
IMAGE_SIZE_BITS_4b = 0,
|
||||
IMAGE_SIZE_BITS_8b = 1,
|
||||
IMAGE_SIZE_BITS_16b = 2,
|
||||
IMAGE_SIZE_BITS_32b = 3,
|
||||
} IMAGE_SIZE_BITS;
|
||||
|
||||
typedef enum IMAGE_FMT {
|
||||
IMAGE_FMT_RGBA = 0,
|
||||
IMAGE_FMT_YUV = 1,
|
||||
IMAGE_FMT_CI = 2,
|
||||
IMAGE_FMT_IA = 3,
|
||||
IMAGE_FMT_I = 4,
|
||||
} IMAGE_FMT;
|
||||
|
||||
typedef struct unk_D_80068BB0 {
|
||||
/* 0x00 */ u16 fmt;
|
||||
/* 0x02 */ u16 size;
|
||||
|
|
|
|||
20
src/E1C0.c
20
src/E1C0.c
|
|
@ -7,21 +7,15 @@
|
|||
#include "3FB0.h"
|
||||
#include "5580.h"
|
||||
#include "util.h"
|
||||
#include "src/gb_tower.h"
|
||||
#include "src/fragments/1/fragment1.h"
|
||||
|
||||
struct UnkStruct800AA664 {
|
||||
/* 0x0000 */ OSThread thread;
|
||||
char padding1B0[0x2030];
|
||||
};
|
||||
|
||||
extern UnkStruct800AA660* D_800AA660;
|
||||
extern struct UnkStruct800AA664* D_800AA664;
|
||||
extern unk_D_800AA660* D_800AA660;
|
||||
extern unk_D_800AA664* D_800AA664;
|
||||
extern char D_800AA668;
|
||||
|
||||
extern u8 D_81200000[];
|
||||
|
||||
void func_8000D5C0(void* unused) {
|
||||
void func_8000D5C0(UNUSED void* arg0) {
|
||||
void (*func)(void*) = Util_ConvertAddrToVirtAddr(&func_81206F38);
|
||||
|
||||
__osSetFpcCsr(0x01000C01);
|
||||
|
|
@ -37,7 +31,7 @@ void func_8000D5C0(void* unused) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_8000D678(void* unused) {
|
||||
void func_8000D678(UNUSED void* arg0) {
|
||||
void (*func1)(void* func) = Util_ConvertAddrToVirtAddr(&func_81206D9C);
|
||||
void (*func2)(void* func) = Util_ConvertAddrToVirtAddr(&func_81206E64);
|
||||
|
||||
|
|
@ -45,7 +39,7 @@ void func_8000D678(void* unused) {
|
|||
func_80004CC0(D_800AA660, 0, 1);
|
||||
func_80005328(D_800AA660);
|
||||
func1(D_800AA660);
|
||||
osStartThread(D_800AA664);
|
||||
osStartThread(&D_800AA664->thread);
|
||||
|
||||
while (1) {
|
||||
func_80004CF4(D_800AA660);
|
||||
|
|
@ -66,8 +60,8 @@ void func_8000D738(UnkInputStruct8000D738* arg0) {
|
|||
FRAGMENT_LOAD(fragment1);
|
||||
temp_v0 = ASSET_LOAD2(fonts, 1, 1);
|
||||
|
||||
D_800AA660->unk_21FC = func_8000484C(temp_v0, 0);
|
||||
D_800AA660->unk_2200 = func_8000484C(temp_v0, 1);
|
||||
D_800AA660->font1 = func_8000484C(temp_v0, 0);
|
||||
D_800AA660->font2 = func_8000484C(temp_v0, 1);
|
||||
D_800AA660->unk_2204 = *arg0;
|
||||
osCreateMesgQueue(&D_800AA660->queue2, &D_800AA660->mesg, 1);
|
||||
osCreateThread(&D_800AA664->thread, 10, func_8000D5C0, NULL, (u32)D_800AA664 + 0x21E0, 0x11);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,11 @@
|
|||
|
||||
#include "global.h"
|
||||
|
||||
typedef struct unk_D_800AA664 {
|
||||
/* 0x0000 */ OSThread thread;
|
||||
/* 0x01B0 */ char unk01B0[0x2030];
|
||||
} unk_D_800AA664; // size = 0x21E0
|
||||
|
||||
void func_8000D738(UnkInputStruct8000D738* arg0);
|
||||
OSMesg* func_8000D8A8(void);
|
||||
void func_8000D8DC(UnkInputStruct8000D738* arg0);
|
||||
|
|
|
|||
|
|
@ -2,9 +2,12 @@
|
|||
#define _FRAGMENT1_H_
|
||||
|
||||
#include "global.h"
|
||||
#include "src/E1C0.h"
|
||||
|
||||
void func_81206D9C(void);
|
||||
void func_81206E64(void);
|
||||
void func_81206F38(void);
|
||||
void func_81206D9C(unk_D_800AA660*);
|
||||
void func_81206E64(unk_D_800AA660*);
|
||||
void func_81206F38(unk_D_800AA664*);
|
||||
void func_81209078();
|
||||
s32 osGbSetNextBuffer(void*, s32);
|
||||
|
||||
#endif /* _FRAGMENT1_H_ */
|
||||
|
|
|
|||
|
|
@ -1,24 +1,257 @@
|
|||
#include "global.h"
|
||||
#include "fragment1.h"
|
||||
#include "src/29BA0.h"
|
||||
#include "src/3FB0.h"
|
||||
#include "src/5580.h"
|
||||
#include "src/6BC0.h"
|
||||
#include "src/controller.h"
|
||||
#include "src/memory.h"
|
||||
#include "include/variables.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81200020.s")
|
||||
typedef struct unk_D_8122C4FA {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x01 */ u8 unk_01;
|
||||
} unk_D_8122C4FA; // size >= 0x2
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81200078.s")
|
||||
typedef struct unk_D_8122B2F8 {
|
||||
/* 0x000000 */ char unk000000[0x1FEAE8];
|
||||
} unk_D_8122B2F8; // size = 0x1FEAE8
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812000DC.s")
|
||||
// Gamepak State
|
||||
typedef struct unk_D_8122B2C0 {
|
||||
/* 0x00000 */ char unk00000[0x5388];
|
||||
/* 0x05388 */ s32 unk_05388;
|
||||
/* 0x0538C */ char unk0538C[0x1C];
|
||||
/* 0x053A8 */ void* unk_053A8;
|
||||
/* 0x053AC */ void* unk_053AC;
|
||||
/* 0x053B0 */ void* unk_053B0;
|
||||
/* 0x053B4 */ void* unk_053B4;
|
||||
/* 0x053B8 */ char unk053B8[0x4];
|
||||
/* 0x053BC */ void* unk_053BC;
|
||||
/* 0x053C0 */ char unk053C0[0x46C];
|
||||
/* 0x0582C */ u8 unk_0582C[128];
|
||||
/* 0x058AC */ char unk058AC[0x3AC];
|
||||
/* 0x05C58 */ void* unk_05C58;
|
||||
/* 0x05C5C */ char unk_5C5C[0x50];
|
||||
/* 0x05CAC */ OSGbpakId gbpakId;
|
||||
/* 0x05CFC */ OSPfs* pfs;
|
||||
/* 0x05D00 */ char unk05D00[0x70];
|
||||
/* 0x05D70 */ s32 unk_5D70;
|
||||
/* 0x05D74 */ char unk05D74[0xC];
|
||||
/* 0x05D80 */ u32 unk_5D80;
|
||||
/* 0x05D84 */ s32 unk_5D84;
|
||||
/* 0x05D88 */ s32 unk_5D88;
|
||||
/* 0x05D8C */ s32 unk_5D8C;
|
||||
/* 0x05D90 */ u32 unk_5D90;
|
||||
/* 0x05D94 */ char unk05D94[0x8];
|
||||
/* 0x05D9C */ u32 unk_5D9C;
|
||||
/* 0x05DA0 */ u16 unk_5DA0;
|
||||
/* 0x05DA2 */ u16 unk_5DA2;
|
||||
/* 0x05DA4 */ char unk05DA3[0x20];
|
||||
/* 0x05DC4 */ u8 unk_5DC4;
|
||||
/* 0x05DC5 */ u8 unk_5DC5;
|
||||
/* 0x05DC6 */ char unk05DC6[0x2];
|
||||
/* 0x05DC8 */ volatile u8 unk_05DC8;
|
||||
/* 0x05DC9 */ char unk05DC9[0x1];
|
||||
/* 0x05DCA */ u8 unk_5DCA;
|
||||
/* 0x05DCB */ u8 status;
|
||||
/* 0x05DCC */ u8 unk_5DCC;
|
||||
/* 0x05DCD */ char unk05DCD[1];
|
||||
/* 0x05DCE */ u8 unk_5DCE;
|
||||
/* 0x05DCF */ u8 unk_5DCF;
|
||||
/* 0x05DD0 */ u8 unk05DD0[0x15288];
|
||||
} unk_D_8122B2C0; // size = 0x1B058
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_8120019C.s")
|
||||
typedef struct unk_D_8122B1E8 {
|
||||
/* 0x00 */ OSMesg mesg[1];
|
||||
/* 0x04 */ OSMesgQueue queue;
|
||||
/* 0x1C */ char unk1C[0x4];
|
||||
/* 0x20 */ s32 unk_20;
|
||||
/* 0x24 */ s32 unk_24;
|
||||
/* 0x28 */ char unk28[0x40];
|
||||
} unk_D_8122B1E8; // size = 0x68
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812001E4.s")
|
||||
extern unk_D_80068BB0* D_8122B1E0[2];
|
||||
extern unk_D_8122B1E8 D_8122B1E8[2];
|
||||
extern s32 D_8122B2B8;
|
||||
extern unk_D_8122B2C0* D_8122B2C0;
|
||||
extern unk_D_8122B2F8* D_8122B2C8[3];
|
||||
extern unk_D_80068BB0* D_8122B2D8[2];
|
||||
extern void* D_8122B2EC;
|
||||
extern s32 D_8122B2F0;
|
||||
extern u8* D_8122B2F4;
|
||||
extern unk_D_8122B2F8* D_8122B2F8;
|
||||
extern s32 D_8122B2FC;
|
||||
extern OSThread D_8122B300;
|
||||
extern OSMesg D_8122C4B0[4];
|
||||
extern OSMesgQueue D_8122C4C0;
|
||||
extern OSMesgQueue* D_8122C4D8;
|
||||
extern s32 D_8122C4DC;
|
||||
extern u8 D_8122C4E0;
|
||||
extern u8 D_8122C4E2;
|
||||
extern u8 D_8122C4E3;
|
||||
extern u8 D_8122C4E4;
|
||||
extern u8 D_8122C4E5;
|
||||
extern u8 D_8122C4E8;
|
||||
extern u16 D_8122C4F2;
|
||||
extern u16 D_8122C4F4;
|
||||
extern unk_D_8122C4FA D_8122C4FA;
|
||||
extern u8 D_8122C4FC;
|
||||
extern u8 D_8122C500[0x1F];
|
||||
// extern s8 D_8122C51F;
|
||||
extern u8 D_8122C520[0x20];
|
||||
extern u8* D_8122C740;
|
||||
extern u8* D_8122C744;
|
||||
extern void* D_8122C748;
|
||||
extern s32 D_8122C74C;
|
||||
extern u8* D_8122C754;
|
||||
extern u8* D_8122C758[2];
|
||||
extern u32 D_8122C760;
|
||||
extern u32 D_8122C76C;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812002BC.s")
|
||||
s32 func_81200020(unk_D_8122B2C0* arg0) {
|
||||
s32 result;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81200358.s")
|
||||
result = osGbpakCheckConnector(&arg0->pfs, &arg0->status);
|
||||
if ((result == 0) && ((arg0->status & 9) != 9)) {
|
||||
return 0x63;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
s32 func_81200078(unk_D_8122B2C0* arg0, u16 arg1, s32 arg2) {
|
||||
s32 i;
|
||||
for (i = 0x1F; i >= 0; i--) {
|
||||
D_8122C500[i] = arg2;
|
||||
}
|
||||
return osGbpakReadWrite(&arg0->pfs, 1, arg1, &D_8122C500, 0x20);
|
||||
}
|
||||
|
||||
s32 func_812000DC(unk_D_8122B2C0* arg0) {
|
||||
s32 ret;
|
||||
|
||||
if (!(ret = func_81200078(arg0, 0, 0xA)) && !(ret = func_81200078(arg0, 0x6000, 1))
|
||||
&& !(ret = func_81200078(arg0, 0x4000, 0)) && !(ret = func_81200078(arg0, 0x6000, 0))
|
||||
&& !(ret = func_81200078(arg0, 0x4000, 0)) && !(ret = func_81200078(arg0, 0x2100, 1))) {
|
||||
arg0->unk_5DA2 = 1;
|
||||
arg0->unk_5DCE = 0;
|
||||
arg0->unk_5DCF = 0;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 func_8120019C(unk_D_8122B2C0* arg0) {
|
||||
s32 ret;
|
||||
|
||||
ret = osGbpakGetStatus(&arg0->pfs, &arg0->status);
|
||||
if (ret == 0) {
|
||||
ret = (arg0->status & 0xC0) ^ 0x80;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 func_812001E4(unk_D_8122B2C0* arg0, s32 arg1) {
|
||||
s32 temp_a2;
|
||||
s32 var_v1;
|
||||
|
||||
var_v1 = 0;
|
||||
arg0->unk_5DCE = 0xFF;
|
||||
if (arg0->unk_5DCF != 0) {
|
||||
arg0->unk_5DA2 = 0xFFFFU;
|
||||
var_v1 = func_81200078(arg0, 0x6000, 0);
|
||||
if (var_v1 == 0) {
|
||||
arg0->unk_5DCF = 0U;
|
||||
}
|
||||
}
|
||||
if (var_v1 == 0) {
|
||||
if (arg1 != arg0->unk_5DA2) {
|
||||
temp_a2 = arg1 / 32;
|
||||
if (temp_a2 != ((s32) arg0->unk_5DA2 / 32)) {
|
||||
arg0->unk_5DA2 = 0xFFFEU;
|
||||
var_v1 = func_81200078(arg0, 0x4000, temp_a2);
|
||||
}
|
||||
if (var_v1 == 0) {
|
||||
arg0->unk_5DA2 = 0xFFFDU;
|
||||
var_v1 = func_81200078(arg0, 0x2100, arg1);
|
||||
if (var_v1 == 0) {
|
||||
arg0->unk_5DA2 = (u16) arg1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
s32 func_812002BC(unk_D_8122B2C0* arg0, s32 arg1) {
|
||||
s32 var_v1;
|
||||
|
||||
var_v1 = 0;
|
||||
arg0->unk_5DA2 = 0xFFFF;
|
||||
if (arg0->unk_5DCF != 1) {
|
||||
arg0->unk_5DCE = 0xFFU;
|
||||
var_v1 = func_81200078(arg0, 0x6000, 1);
|
||||
if (var_v1 == 0) {
|
||||
arg0->unk_5DCF = 1U;
|
||||
}
|
||||
}
|
||||
if ((var_v1 == 0) && (arg1 != arg0->unk_5DCE)) {
|
||||
var_v1 = func_81200078(arg0, 0x4000, arg1);
|
||||
if (var_v1 == 0) {
|
||||
arg0->unk_5DCE = arg1;
|
||||
}
|
||||
}
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
s32 func_81200358(unk_D_8122B2C0* arg0) {
|
||||
s32 ret;
|
||||
|
||||
ret = func_812002BC(arg0, arg0->unk_5DA0 / 8192);
|
||||
if (ret == 0) {
|
||||
ret = osGbpakReadWrite(&arg0->pfs, 0, ((arg0->unk_5DA0 & 0x1FFF) | 0xA000), D_8122C520, sizeof(D_8122C520));
|
||||
if (ret == 0) {
|
||||
ret = bcmp(D_8122C520, &arg0->unk_5D80, sizeof(D_8122C520));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void func_812003EC(unk_D_8122B2C0*, s32);
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812003EC.s")
|
||||
|
||||
s32 func_812004B8(unk_D_8122B2C0*);
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812004B8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812005D8.s")
|
||||
s32 func_812005D8(unk_D_8122B2C0* arg0) {
|
||||
s32 ret;
|
||||
|
||||
ret = 0;
|
||||
if (!(arg0->status & 1)) {
|
||||
ret = func_81200020(arg0);
|
||||
if (ret == 0) {
|
||||
ret = func_812000DC(arg0);
|
||||
if (ret == 0) {
|
||||
ret = osGbpakReadId(&arg0->pfs, &arg0->gbpakId, &arg0->status);
|
||||
if (ret == 0) {
|
||||
ret = bcmp(arg0->unk_5C5C, &arg0->gbpakId, sizeof(arg0->unk_5C5C));
|
||||
if ((ret == 0) && (arg0->unk_5DC4 != 0)) {
|
||||
arg0->unk_5DC4 = 0U;
|
||||
ret = func_81200358(arg0);
|
||||
if (ret == 0) {
|
||||
ret = func_812004B8(arg0);
|
||||
}
|
||||
arg0->unk_5DC4 = 1U;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ret != 0) {
|
||||
arg0->status = (u8) (arg0->status & 0xFFFE);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812006AC.s")
|
||||
|
||||
|
|
@ -30,14 +263,23 @@
|
|||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812011D0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81201560.s")
|
||||
s32 func_81201560(s32 arg0, s32 arg1) {
|
||||
return (arg1 & 1) ? arg1 : arg0;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_8120157C.s")
|
||||
s32 func_8120157C(s32 arg0, s32 arg1) {
|
||||
return (arg1 & 1) ? arg0 : arg1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81201598.s")
|
||||
s32 func_81201598(s32 arg0, s32 arg1) {
|
||||
return (((s32) ((arg0 & 0xF800) + (arg1 & 0xF800)) >> 1) & 0xF800) | (((s32) ((arg0 & 0x7C0) + (arg1 & 0x7C0)) >> 1) & 0x7C0) | (((s32) ((arg0 & 0x3E) + (arg1 & 0x3E)) >> 1) & 0x3E);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812015E0.s")
|
||||
s32 func_812015E0(UNUSED s32 arg0, s32 arg1) {
|
||||
return arg1;
|
||||
}
|
||||
|
||||
void func_812015EC(u16*, u16*, s32, s32, s32);
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812015EC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812016DC.s")
|
||||
|
|
@ -68,20 +310,78 @@
|
|||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_8120334C.s")
|
||||
|
||||
void func_81200AA8(void *);
|
||||
void func_81202210(s32, s32);
|
||||
void func_8120241C(void);
|
||||
void func_812029B0(u8*, u16 (*)[6][0x640], s32, s32);
|
||||
void func_8120311C(unk_D_8122B2C0*);
|
||||
void func_81203304(void);
|
||||
void func_812070A0(void);
|
||||
void func_8120735C(s32);
|
||||
void func_81208C08(s32, s32, s32);
|
||||
void func_81208D7C(void);
|
||||
void func_81208E28(unk_D_8122B2F8*);
|
||||
void func_81208F94(void);
|
||||
void func_8120935C(s32);
|
||||
|
||||
void func_812033F4(s32, s32, OSId, s32, OSMesgQueue*, u16 (*arg5)[6][0x640]);
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812033F4.s")
|
||||
|
||||
void func_81203C58(unk_D_8122B2C0* arg0);
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81203C58.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81203E30.s")
|
||||
void func_81203E30(void) {
|
||||
if ((D_8122C4FA.unk_01 == D_8122C4FA.unk_00) || (D_8122C4FA.unk_00 >= 5) || (D_8122C4FA.unk_01 >= 5)) {
|
||||
D_8122C4FA.unk_00 = 0;
|
||||
D_8122C4FA.unk_01 = 1;
|
||||
}
|
||||
|
||||
D_8122C4F2 = (D_8122C4FA.unk_00 == 1) ? 0x20 : (D_8122C4FA.unk_00 == 2) ? 0x10 : (D_8122C4FA.unk_00 == 3) ? 2 : (D_8122C4FA.unk_00 == 4) ? 4 : 0x1000;
|
||||
D_8122C4F4 = (D_8122C4FA.unk_01 == 0) ? 0x1000 : (D_8122C4FA.unk_01 == 2) ? 0x10 : (D_8122C4FA.unk_01 == 3) ? 2 : (D_8122C4FA.unk_01 == 4) ? 4 : 0x20;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81203F3C.s")
|
||||
|
||||
void func_81204A84(s32 arg0);
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81204A84.s")
|
||||
|
||||
s32 func_8120572C(s32);
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_8120572C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81206D9C.s")
|
||||
void func_81206D9C(unk_D_800AA660* arg0) {
|
||||
D_8122C4FC = 0;
|
||||
D_8122C4E2 = arg0->unk_2204.unk_02;
|
||||
if ((D_8122C4E2 < 0) || (D_8122C4E2 >= 3)) {
|
||||
D_8122C4E2 = 0;
|
||||
}
|
||||
D_8122C4FA.unk_00 = ((arg0->unk_2204.unk_00 & 0xFF00) >> 8);
|
||||
D_8122C4FA.unk_01 = (arg0->unk_2204.unk_00 + 1) & 0xFF;
|
||||
func_81203E30();
|
||||
D_8122C740 = arg0->font1 + 0x90;
|
||||
D_8122C744 = arg0->font2 + 0x90;
|
||||
func_812033F4(0, func_80029080(), 5, 0x50, &gSIEventMesgQueue, arg0->unk_2204.unk_04);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81206E64.s")
|
||||
void func_81206E64(unk_D_800AA660* arg0) {
|
||||
if (func_8120572C(0) != 0) {
|
||||
arg0->unk_2204.unk_00 = ((D_8122C4FA.unk_01 - 1) & 0xFF) | (D_8122C4FA.unk_00 << 8);
|
||||
IO_WRITE(SP_STATUS_REG, 0x8000);
|
||||
osSendMesg(&arg0->queue2, D_8122B2FC, 0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81206F38.s")
|
||||
if (D_8122C4FC == 0) {
|
||||
if ((D_8122C4DC == 0) || (D_8122C4DC == 6)) {
|
||||
func_81209078();
|
||||
}
|
||||
} else if (D_8122C4FC == 1) {
|
||||
D_8122C4FC = 2;
|
||||
} else if (D_8122C4FC == 3) {
|
||||
D_8122C4FC = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void func_81206F38(UNUSED unk_D_800AA664* arg0) {
|
||||
if ((D_800A62E0.unk_A38 == 0) && (D_8122C4FC == 2) && ((D_8122C4DC == 0) || (D_8122C4DC == 6))) {
|
||||
func_81209078();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,53 @@
|
|||
#include "global.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86920/func_81206FA0.s")
|
||||
typedef struct unk_func_81206FA0 {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ s32 unk_04;
|
||||
/* 0x08 */ s32 unk_08;
|
||||
/* 0x0C */ s32 unk_0C;
|
||||
} unk_func_81206FA0; // size = 0x10
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86920/func_81207020.s")
|
||||
u32 func_81206FA0(unk_func_81206FA0* arg0, s32 arg1) {
|
||||
s32 temp_v0;
|
||||
u32 temp_a2;
|
||||
u32 var_a1;
|
||||
temp_v0 = ALIGN16(arg1);
|
||||
temp_a2 = arg0->unk_04;
|
||||
if ((arg0->unk_00 + arg0->unk_08) >= (temp_a2 + temp_v0)) {
|
||||
arg0->unk_04 += temp_v0;
|
||||
var_a1 = temp_a2;
|
||||
while (var_a1 < arg0->unk_04) {
|
||||
*((u8*)var_a1++) = 0;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
arg0->unk_0C++;
|
||||
return temp_a2;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86920/func_81207078.s")
|
||||
s32 func_81207020(unk_func_81206FA0* arg0, s32 arg1) {
|
||||
s32 temp_a2;
|
||||
u32 temp_v0;
|
||||
|
||||
temp_v0 = ALIGN16(arg1);
|
||||
temp_a2 = arg0->unk_04;
|
||||
if ((arg0->unk_00 + arg0->unk_08) >= (arg0->unk_04 + temp_v0)) {
|
||||
arg0->unk_04 = temp_v0 + temp_a2;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
arg0->unk_0C++;
|
||||
return temp_a2;
|
||||
}
|
||||
|
||||
|
||||
void func_81207078(unk_func_81206FA0* arg0, s32 arg1, s32 arg2) {
|
||||
|
||||
arg0->unk_00 = ALIGN16(arg1);
|
||||
arg0->unk_04 = ALIGN16(arg1);
|
||||
arg0->unk_08 = (s32) (arg2 - (arg1 & 0xF));
|
||||
arg0->unk_0C = 0;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86920/func_812070A0.s")
|
||||
|
|
|
|||
|
|
@ -1,3 +1,55 @@
|
|||
#include "global.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86C30/func_812072B0.s")
|
||||
#ifdef NON_MATCHING
|
||||
s32 osGbSetNextBuffer(void* bufPtr, u32 size) {
|
||||
static u8 hdwrBugFlag = FALSE;
|
||||
char* bptr;
|
||||
s32 status;
|
||||
|
||||
#if BUILD_VERSION >= VERSION_J
|
||||
if (__osAiDeviceBusy()) {
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef _DEBUG
|
||||
if ((u32)bufPtr & (8 - 1)) {
|
||||
__osError(ERR_OSAISETNEXTBUFFER_ADDR, 1, bufPtr);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((u32)size & (8 - 1)) {
|
||||
__osError(ERR_OSAISETNEXTBUFFER_SIZE, 1, size);
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
bptr = bufPtr;
|
||||
|
||||
if (hdwrBugFlag) {
|
||||
bptr = (u8*)bufPtr - 0x2000;
|
||||
}
|
||||
|
||||
if ((((u32)bufPtr + size) & 0x1fff) == 0) {
|
||||
hdwrBugFlag = TRUE;
|
||||
} else {
|
||||
hdwrBugFlag = FALSE;
|
||||
}
|
||||
|
||||
#if BUILD_VERSION < VERSION_J
|
||||
status = IO_READ(AI_STATUS_REG);
|
||||
//! @bug The __osAiDeviceBusy call should be above the hardware bug workaround to ensure that it was only
|
||||
//! performed when a transfer was guaranteed to start. If this condition passes and this function returns without
|
||||
//! submitting a buffer for DMA, the code above will lose track of when to apply the workaround.
|
||||
if (status & AI_STATUS_FIFO_FULL) {
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
IO_WRITE(AI_DRAM_ADDR_REG, OS_PHYSICAL_TO_K0(bptr));
|
||||
IO_WRITE(AI_LEN_REG, size);
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86C30/osGbSetNextBuffer.s")
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,20 +1,80 @@
|
|||
#include "global.h"
|
||||
|
||||
typedef struct unk_func_81208D7C {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x02 */ char unk00[0x06];
|
||||
/* 0x08 */ s32 unk_08;
|
||||
/* 0x10 */ char unk0C[0x30];
|
||||
/* 0x3C */ s8 unk_3C;
|
||||
/* 0x3D */ char unk3D[0x13];
|
||||
} unk_func_81208D7C; // size = 0x50
|
||||
|
||||
typedef struct unk_D_8122EEA8 {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x01 */ u8 unk_01;
|
||||
/* 0x02 */ u8 unk_02;
|
||||
/* 0x03 */ u8 unk_03;
|
||||
} unk_D_8122EEA8; // size = 0x4
|
||||
|
||||
extern u8 D_811FEB60[];
|
||||
extern u16 D_8120EA86;
|
||||
extern f32 D_8120EAC0;
|
||||
extern s32 D_8120EAC8;
|
||||
extern s32 D_8120EACC;
|
||||
extern s32 D_8120EAC4;
|
||||
extern s32 D_8120EA60;
|
||||
extern s32 D_8120EB78;
|
||||
extern s32 D_8120EB7C;
|
||||
extern f32 D_8122B0A0;
|
||||
extern f32 D_8122B0A4;
|
||||
extern s32 D_8122C794;
|
||||
|
||||
extern unk_func_81208D7C D_8122C798;
|
||||
extern unk_func_81208D7C D_8122C7E8;
|
||||
extern unk_func_81208D7C D_8122C838;
|
||||
extern unk_func_81208D7C D_8122C888;
|
||||
extern unk_D_8122EEA8 D_8122EEA8;
|
||||
|
||||
extern OSMesgQueue D_8122EEB0;
|
||||
extern OSMesg D_8122EEC8;
|
||||
|
||||
void func_81207330(void) {
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81207338.s")
|
||||
void func_81207338(void) {
|
||||
D_8120EA60 = 1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81207348.s")
|
||||
void func_81207348(void) {
|
||||
D_8120EA60 = 0;
|
||||
}
|
||||
|
||||
void func_81207354(void) {
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_8120735C.s")
|
||||
void func_8120735C(s32 arg0) {
|
||||
if (arg0 == 0) {
|
||||
D_8120EAC4 = 0x4578;
|
||||
D_8120EAC0 = D_8122B0A0;
|
||||
return;
|
||||
}
|
||||
D_8120EAC4 = 0x8AF0;
|
||||
D_8120EAC0 = D_8122B0A4;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_812073A4.s")
|
||||
void func_812073A4(s32 arg0, s32 arg1) {
|
||||
D_8120EAC8 = arg0;
|
||||
D_8120EACC = arg1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_812073B8.s")
|
||||
u32 func_812073B8(u16 arg0) {
|
||||
u32 temp;
|
||||
if (arg0 == 0) {
|
||||
return 0;
|
||||
}
|
||||
temp = ((65536.0f / (0x800 - arg0)) / D_8120EAC0) * 65536;
|
||||
return temp;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81207494.s")
|
||||
|
||||
|
|
@ -33,31 +93,91 @@ void func_81207690(void) {
|
|||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81207DF8.s")
|
||||
|
||||
void func_8120806C(u16, u8);
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_8120806C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81208828.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81208C08.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81208D7C.s")
|
||||
void func_81208D7C(void) {
|
||||
s32 pad[6];
|
||||
s32 i;
|
||||
OSMesgQueue sp24;
|
||||
OSMesg sp20;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81208E28.s")
|
||||
osCreateMesgQueue(&sp24, &sp20, 1);
|
||||
osCreateMesgQueue(&D_8122EEB0, &D_8122EEC8, 0x960);
|
||||
for (i = 0x50; i > 0xF; i--) {
|
||||
func_8120806C(i, 0);
|
||||
}
|
||||
D_8122C798.unk_3C = 0;
|
||||
D_8122C7E8.unk_3C = 0;
|
||||
D_8122C838.unk_3C = 0;
|
||||
D_8122C888.unk_3C = 0;
|
||||
D_8122C798.unk_08 = 0;
|
||||
D_8122C7E8.unk_08 = 0;
|
||||
D_8122C838.unk_08 = 0;
|
||||
D_8122C888.unk_08 = 0;
|
||||
}
|
||||
|
||||
void func_81208E28(s32 arg0) {
|
||||
D_8122C794 = arg0;
|
||||
func_81208D7C();
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81208E4C.s")
|
||||
|
||||
void func_81208F94(void) {
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81208F9C.s")
|
||||
u8 func_81208F9C(u16 arg0) {
|
||||
u8 var_a0;
|
||||
u8 var_a1;
|
||||
u8 var_a2;
|
||||
u8 var_v1;
|
||||
u8 temp;
|
||||
if ((arg0 & 0xFFFF) == 0xFF26) {
|
||||
if (D_8122EEA8.unk_00 != 0) {
|
||||
var_v1 = (D_8122EEA8.unk_00 - 1) & 0xFF;
|
||||
} else {
|
||||
var_v1 = D_8122C798.unk_00;
|
||||
}
|
||||
if (D_8122EEA8.unk_01 != 0) {
|
||||
var_a0 = (D_8122EEA8.unk_01 - 1) & 0xFF;
|
||||
} else {
|
||||
var_a0 = D_8122C7E8.unk_00;
|
||||
}
|
||||
if (D_8122EEA8.unk_02 != 0) {
|
||||
var_a1 = (D_8122EEA8.unk_02 - 1) & 0xFF;
|
||||
} else {
|
||||
var_a1 = D_8122C838.unk_00;
|
||||
}
|
||||
if (D_8122EEA8.unk_03 != 0) {
|
||||
var_a2 = (D_8122EEA8.unk_03 - 1) & 0xFF;
|
||||
} else {
|
||||
var_a2 = D_8122C888.unk_00;
|
||||
}
|
||||
temp = ((((u32)D_8120EA86 >> 0xF) << 7) | (var_a2 * 8) | (var_a1 * 4) | (var_a0 * 2) | var_v1);
|
||||
return temp;
|
||||
}
|
||||
return D_811FEB60[arg0 & 0xFFFF];
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81209078.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_8120935C.s")
|
||||
void func_8120935C(s32 arg0) {
|
||||
D_8120EB78 = arg0;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81209368.s")
|
||||
void func_81209368(s32 arg0) {
|
||||
D_8120EB7C = arg0;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81209374.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81209688.s")
|
||||
void func_81209688(UNUSED s32 arg0) {
|
||||
}
|
||||
|
||||
// Decrypting this function causes issues
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86CB0/func_81209690.s")
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
- [0xCE80, c] #
|
||||
- [0xD470, c] #
|
||||
- [0xDDC0, c]
|
||||
- [0xE1C0, c]
|
||||
- [0xE1C0, c] # load gb emulator (fragment 1)
|
||||
- [0xE570, c, gb_mbc] # gameboy memory bank controller
|
||||
- [0xE890, c] #
|
||||
- [0xF420, c] #
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user