Identified more code
This commit is contained in:
parent
5c248739e1
commit
1d45805511
|
|
@ -10,4 +10,38 @@ typedef u8 bool;
|
||||||
#define false 0
|
#define false 0
|
||||||
#define true 1
|
#define true 1
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ s32 field_0x0;
|
||||||
|
/* 0x04 */ s32 field_0x4;
|
||||||
|
/* 0x08 */ s32 field_0x8;
|
||||||
|
/* 0x0c */ s32 field_0xc;
|
||||||
|
/* 0x10 */ s32 field_0x10;
|
||||||
|
/* 0x14 */ s32 field_0x14;
|
||||||
|
/* 0x18 */ s32 field_0x18;
|
||||||
|
/* 0x1C */ s32 field_0x1c;
|
||||||
|
/* 0x20 */ s32 field_0x20;
|
||||||
|
/* 0x24 */ unsigned long handle;
|
||||||
|
/* 0x28 */ s32 field_0x28;
|
||||||
|
/* 0x2C */ s32 field_0x2c;
|
||||||
|
/* 0x30 */ s32 field_0x30;
|
||||||
|
/* 0x34 */ s32 field_0x34;
|
||||||
|
/* 0x38 */ s32 field_0x38;
|
||||||
|
/* 0x3C */ s32 field_0x3c;
|
||||||
|
/* 0x40 */ s32 field_0x40;
|
||||||
|
/* 0x44 */ s32 field_0x44;
|
||||||
|
/* 0x48 */ void* dst_addr;
|
||||||
|
/* 0x4C */ s32 field_0x4c;
|
||||||
|
} SomethingMusic; // size:0x50
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x0 */ void* next;
|
||||||
|
/* 0x4 */ OSMesgQueue* mq;
|
||||||
|
/* 0x8 */ s16 flags;
|
||||||
|
/* 0xa */ s16 field_0xa;
|
||||||
|
/* 0xc */ s32 field_0xc;
|
||||||
|
} Stack__dma_load_loop; // size:0x10
|
||||||
|
|
||||||
|
extern void Stack__dma_load_loop_new(Stack__dma_load_loop* arg0, OSMesgQueue* arg1, s16 arg2);
|
||||||
|
extern void Stack__dma_load_loop_delete(Stack__dma_load_loop* arg0);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
78
splat.yaml
78
splat.yaml
|
|
@ -51,7 +51,7 @@ segments:
|
||||||
- [0x5FC0, asm]
|
- [0x5FC0, asm]
|
||||||
- [0x68E0, asm]
|
- [0x68E0, asm]
|
||||||
- [0x8700, asm]
|
- [0x8700, asm]
|
||||||
- [0xA370, asm]
|
- [0xA370, c]
|
||||||
- [0xFC80, c, "boot"]
|
- [0xFC80, c, "boot"]
|
||||||
- [0xFDC0, asm]
|
- [0xFDC0, asm]
|
||||||
- [0xFF10, asm]
|
- [0xFF10, asm]
|
||||||
|
|
@ -264,7 +264,8 @@ segments:
|
||||||
- [0x2B060, asm]
|
- [0x2B060, asm]
|
||||||
- [0x2B070, asm, "libultra/io/pfschecker"]
|
- [0x2B070, asm, "libultra/io/pfschecker"]
|
||||||
- [0x2B790, asm]
|
- [0x2B790, asm]
|
||||||
- [0x2BA70, asm]
|
- [0x2BA70, asm, "libc/xlitob"]
|
||||||
|
- [0x2BCC0, asm]
|
||||||
- [0x2C750, asm]
|
- [0x2C750, asm]
|
||||||
- [0x2C770, asm]
|
- [0x2C770, asm]
|
||||||
- [0x2C790, asm]
|
- [0x2C790, asm]
|
||||||
|
|
@ -300,36 +301,44 @@ segments:
|
||||||
- [0x3AB90, asm]
|
- [0x3AB90, asm]
|
||||||
- [0x3ABC0, asm]
|
- [0x3ABC0, asm]
|
||||||
|
|
||||||
- [0x3BEC0, asm]
|
- [0x3BEC0, rodata, "libultra/os/initialize"]
|
||||||
|
- [0x3BEE0, rodata, "libultra/gu/rotate"]
|
||||||
|
- [0x3BEF0, rodata]
|
||||||
# - [0x3E198, rodata, "isallocatedpointer"]
|
- [0x3BF20, rodata]
|
||||||
# - [0x3E278, rodata]
|
- [0x3BF70, rodata, "libultra/io/vi"]
|
||||||
# - [0x3E330, rodata]
|
- [0x3BFE0, rodata, "libultra/io/vimodepallan1"]
|
||||||
# - [0x3E460, rodata, "logs_file_read_error"]
|
- [0x3C030, rodata, "libc/xlitob"]
|
||||||
# - [0x3E7C0, rodata]
|
- [0x3C060, rodata]
|
||||||
# - [0x3E7D0, rodata]
|
- [0x3C170, rodata]
|
||||||
# - [0x3E7F0, rodata]
|
- [0x3C180, rodata]
|
||||||
# - [0x3E810, rodata]
|
- [0x3C1A0, rodata]
|
||||||
# - [0x3E8F0, rodata]
|
- [0x3D190, rodata]
|
||||||
# - [0x3E930, rodata]
|
- [0x3D5A0, rodata]
|
||||||
# - [0x3E9A0, rodata]
|
- [0x3D990, rodata]
|
||||||
# - [0x3E9B0, rodata]
|
- [0x3E460, rodata]
|
||||||
# - [0x3E9F0, rodata]
|
- [0x3E7C0, rodata]
|
||||||
# - [0x3EAC0, rodata]
|
- [0x3E7D0, rodata]
|
||||||
# - [0x3EB00, rodata, "libultra/gu/cosf"]
|
- [0x3E7F0, rodata]
|
||||||
# - [0x3ECF0, rodata, "libultra/gu/lookat"]
|
- [0x3E810, rodata]
|
||||||
# - [0x3ED40, rodata, "libultra/gu/lookathil"]
|
- [0x3E8F0, rodata]
|
||||||
# - [0x3EDF0, rodata]
|
- [0x3E930, rodata]
|
||||||
# - [0x3EE20, rodata]
|
- [0x3E9A0, rodata]
|
||||||
# - [0x3EE70, rodata]
|
- [0x3E9B0, rodata]
|
||||||
# - [0x3EE80, rodata]
|
- [0x3E9F0, rodata]
|
||||||
# - [0x3EEA0, rodata]
|
- [0x3EAC0, rodata]
|
||||||
# - [0x3F000, rodata, "libultra/io/vi"]
|
- [0x3EB00, rodata]
|
||||||
# - [0x3F070, rodata, heapcheck]
|
- [0x3ECF0, rodata]
|
||||||
# - [0x3F0C0, rodata, heapcheck]
|
- [0x3ED40, rodata]
|
||||||
# - [0x3F140, rodata, heapcheck]
|
- [0x3EDF0, rodata]
|
||||||
# - [0x3F170, rodata, heapcheck]
|
- [0x3EE20, rodata]
|
||||||
|
- [0x3EE70, rodata]
|
||||||
|
- [0x3EE80, rodata]
|
||||||
|
- [0x3EEA0, rodata]
|
||||||
|
- [0x3F000, rodata]
|
||||||
|
- [0x3F070, rodata]
|
||||||
|
- [0x3F0C0, rodata]
|
||||||
|
- [0x3F140, rodata]
|
||||||
|
- [0x3F170, rodata]
|
||||||
|
|
||||||
- { start: 0x3F1B0, type: bss, vram: 0x800E9C20 }
|
- { start: 0x3F1B0, type: bss, vram: 0x800E9C20 }
|
||||||
|
|
||||||
|
|
@ -496,7 +505,10 @@ segments:
|
||||||
- [0x429CD0, bin, "n64_wave_table_01"]
|
- [0x429CD0, bin, "n64_wave_table_01"]
|
||||||
- [0x4E3140, bin, "n64_wave_data"]
|
- [0x4E3140, bin, "n64_wave_data"]
|
||||||
|
|
||||||
- [0x4F0FB0, bin]
|
- [0x4F0FB0, bin] # Song
|
||||||
|
- [0x4F4070, bin]
|
||||||
|
|
||||||
|
- [0x594280, bin]
|
||||||
|
|
||||||
- [0x636784, bin, "last_battle_test.n64"]
|
- [0x636784, bin, "last_battle_test.n64"]
|
||||||
- [0x64A04C, bin, "makai_battle_bg1.n64"]
|
- [0x64A04C, bin, "makai_battle_bg1.n64"]
|
||||||
|
|
|
||||||
25
src/19050.c
25
src/19050.c
|
|
@ -28,11 +28,31 @@ Unk0* func_80088EFC(void) {
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "19050", __thread_80088F08);
|
INCLUDE_ASM(const s32, "19050", __thread_80088F08);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "19050", func_80089054);
|
extern Stack__dma_load_loop *D_800E9178[0];
|
||||||
|
extern u8 __MAIN_NOT_NULL_INF_LOOP;
|
||||||
|
|
||||||
|
/* 19454 80089054 */
|
||||||
|
void Stack__dma_load_loop_new(Stack__dma_load_loop* arg0, OSMesgQueue* mq, s16 flags)
|
||||||
|
{
|
||||||
|
s32 mask = osSetIntMask(OS_IM_NONE);
|
||||||
|
|
||||||
|
arg0->mq = mq;
|
||||||
|
arg0->next = D_800E9178[0];
|
||||||
|
arg0->flags = flags;
|
||||||
|
|
||||||
|
D_800E9178[0] = arg0;
|
||||||
|
|
||||||
|
if ((flags & 2) && (__MAIN_NOT_NULL_INF_LOOP != 0)) {
|
||||||
|
osSendMesg(mq, (u8*)(&D_800E9178) - 0x666, OS_MESG_NOBLOCK);
|
||||||
|
}
|
||||||
|
|
||||||
|
osSetIntMask(mask);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "19050", func_800890E4);
|
INCLUDE_ASM(const s32, "19050", func_800890E4);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "19050", func_80089124);
|
INCLUDE_ASM(const s32, "19050", Stack__dma_load_loop_delete);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "19050", func_800891A0);
|
INCLUDE_ASM(const s32, "19050", func_800891A0);
|
||||||
|
|
||||||
|
|
@ -41,7 +61,6 @@ INCLUDE_ASM(const s32, "19050", __thread_80089200);
|
||||||
INCLUDE_ASM(const s32, "19050", __thread_80089358);
|
INCLUDE_ASM(const s32, "19050", __thread_80089358);
|
||||||
|
|
||||||
extern OSMesgQueue MQ_800B9C40;
|
extern OSMesgQueue MQ_800B9C40;
|
||||||
extern u8 __MAIN_NOT_NULL_INF_LOOP;
|
|
||||||
|
|
||||||
void __thread_800893C0(void) {
|
void __thread_800893C0(void) {
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
||||||
13
src/19E30.c
13
src/19E30.c
|
|
@ -1,18 +1,15 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
extern void func_80089054(s32*, OSMesgQueue*, s32);
|
void __dma_load_loop(s32 count) {
|
||||||
extern void func_80089124(s32*);
|
Stack__dma_load_loop sp10;
|
||||||
|
|
||||||
void __dma_load_loop(s32 arg0) {
|
|
||||||
s32 sp10[4];
|
|
||||||
OSMesgQueue mq;
|
OSMesgQueue mq;
|
||||||
OSMesg buf;
|
OSMesg buf;
|
||||||
|
|
||||||
osCreateMesgQueue(&mq, &buf, 1);
|
osCreateMesgQueue(&mq, &buf, 1);
|
||||||
func_80089054(&sp10, &mq, 1);
|
Stack__dma_load_loop_new(&sp10, &mq, 1);
|
||||||
|
|
||||||
for(; arg0 != 0; arg0--)
|
for(; count != 0; count--)
|
||||||
osRecvMesg(&mq, NULL, OS_MESG_BLOCK);
|
osRecvMesg(&mq, NULL, OS_MESG_BLOCK);
|
||||||
|
|
||||||
func_80089124(&sp10);
|
Stack__dma_load_loop_delete(&sp10);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
13
src/1B3E0.c
13
src/1B3E0.c
|
|
@ -11,21 +11,12 @@ extern OSMesg OSMESG_800BE1A0[8];
|
||||||
|
|
||||||
/* 1B3E0 8008AFE0 */
|
/* 1B3E0 8008AFE0 */
|
||||||
void __thread_8008AFE0(void* arg0) {
|
void __thread_8008AFE0(void* arg0) {
|
||||||
typedef struct {
|
Stack__dma_load_loop sp10;
|
||||||
/* 0x0 */ void* field_0x0;
|
|
||||||
/* 0x4 */ OSMesgQueue* field_0x4;
|
|
||||||
/* 0x8 */ s32 field_0x8;
|
|
||||||
/* 0xc */ s32 field_0xc;
|
|
||||||
} Stack;
|
|
||||||
|
|
||||||
extern void func_80089054(OSMesg, OSMesgQueue*, s32);
|
|
||||||
|
|
||||||
Stack sp10;
|
|
||||||
u16* sp20;
|
u16* sp20;
|
||||||
s16 temp_v0;
|
s16 temp_v0;
|
||||||
|
|
||||||
osCreateMesgQueue(&MQ_800C4C28, OSMESG_800BE1A0, 8);
|
osCreateMesgQueue(&MQ_800C4C28, OSMESG_800BE1A0, 8);
|
||||||
func_80089054(&sp10, &MQ_800C4C28, 3);
|
Stack__dma_load_loop_new(&sp10, &MQ_800C4C28, 3);
|
||||||
|
|
||||||
while(1) {
|
while(1) {
|
||||||
osRecvMesg(&MQ_800C4C28, &sp20, OS_MESG_BLOCK);
|
osRecvMesg(&MQ_800C4C28, &sp20, OS_MESG_BLOCK);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,161 @@
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
|
void Unpack(s32, s32);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_80079F70);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007A070);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", Unpack);
|
||||||
|
|
||||||
|
/* ABE0 8007A7E0 */
|
||||||
|
u32 __read_u32_le(u8* arg0) {
|
||||||
|
return (arg0[0] << 24) | (arg0[1] << 16) | (arg0[2] << 8) | arg0[3];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007A80C);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007AB30);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007AB7C);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007ABAC);
|
||||||
|
|
||||||
|
extern void __some_logging(char*, u8);
|
||||||
|
extern char D_800AE038;
|
||||||
|
extern OSMesgQueue MQ_800AF320;
|
||||||
|
|
||||||
|
/* B030 8007AC30 */
|
||||||
|
void UnpackProc(void) {
|
||||||
|
struct {
|
||||||
|
/* 0x00 */ s32 field_0x0;
|
||||||
|
/* 0x04 */ OSMesgQueue* field_0x4;
|
||||||
|
/* 0x08 */ u8 field_0x8;
|
||||||
|
/* 0x09 */ u8 field_0x9[3];
|
||||||
|
/* 0x0C */ s32 field_0xc;
|
||||||
|
/* 0x10 */ s32 field_0x10;
|
||||||
|
} *sp10;
|
||||||
|
|
||||||
|
sp10 = NULL;
|
||||||
|
while(1) {
|
||||||
|
osRecvMesg(&MQ_800AF320, &sp10, 1);
|
||||||
|
if (sp10->field_0x8 == 1) {
|
||||||
|
Unpack(sp10->field_0x10, sp10->field_0xc);
|
||||||
|
osSendMesg(sp10->field_0x4, sp10, 1);
|
||||||
|
} else {
|
||||||
|
__some_logging(&D_800AE038, sp10->field_0x8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007ACB0);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007AE9C);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007AF3C);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007AFE4);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007B710);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007B744);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007B7A8);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007B83C);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", can_log_crc_error);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007BA98);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007BB48);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007BB90);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007BBC0);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007BBF4);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007BC24);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007BF10);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007C204);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007C25C);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007C378);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007C438);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007C538);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", __logs_read_error);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007C74C);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007CAB8);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007CE48);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007D200);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007D594);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007D5B8);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007D7BC);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007D8A8);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007DBF4);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007DDF0);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007DFF0);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007E2F8);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007E698);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007E6DC);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007E800);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007E8F0);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007EE2C);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F1A0);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F1F8);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F218);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F234);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F314);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F334);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F408);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F450);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F47C);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F4B0);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F4E4);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", __file_read);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", __file_write);
|
||||||
|
|
||||||
|
void func_8007F640(void) { }
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F648);
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "A370", func_8007F844);
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "PR/os.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
void __set_black();
|
void __set_black();
|
||||||
|
|
@ -14,9 +15,9 @@ void __set_black() {
|
||||||
/* 19FE4 80089BE4 */
|
/* 19FE4 80089BE4 */
|
||||||
void __calls_osViBlack(bool black)
|
void __calls_osViBlack(bool black)
|
||||||
{
|
{
|
||||||
if (osTvType == 0)
|
if (osTvType == OS_TV_PAL)
|
||||||
{
|
{
|
||||||
if (black == 1)
|
if (black == true)
|
||||||
osViSetYScale(1.0f);
|
osViSetYScale(1.0f);
|
||||||
else
|
else
|
||||||
osViSetYScale(0.833f);
|
osViSetYScale(0.833f);
|
||||||
|
|
|
||||||
23
src/main.c
23
src/main.c
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "PR/os.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80070C60);
|
INCLUDE_ASM(const s32, "main", func_80070C60);
|
||||||
|
|
@ -132,7 +133,27 @@ INCLUDE_ASM(const s32, "main", func_80073ED8);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80073F58);
|
INCLUDE_ASM(const s32, "main", func_80073F58);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80073FD4);
|
// INCLUDE_ASM(const s32, "main", func_80073FD4);
|
||||||
|
|
||||||
|
extern SomethingMusic* __MAYBE_SONG_ARRAY_800A8218[7];
|
||||||
|
/* 43D4 80073FD4 */
|
||||||
|
void __initialize_song_mem(void) {
|
||||||
|
s32 mask;
|
||||||
|
s32 count;
|
||||||
|
|
||||||
|
mask = osSetIntMask(OS_IM_NONE);
|
||||||
|
for(count = 0; count < 7; count++) {
|
||||||
|
__MAYBE_SONG_ARRAY_800A8218[count]->field_0x2c = 0;
|
||||||
|
__MAYBE_SONG_ARRAY_800A8218[count]->field_0x30 = 0;
|
||||||
|
__MAYBE_SONG_ARRAY_800A8218[count]->field_0x34 = 0;
|
||||||
|
__MAYBE_SONG_ARRAY_800A8218[count]->field_0x38 = 0;
|
||||||
|
__MAYBE_SONG_ARRAY_800A8218[count]->field_0x3c = 0;
|
||||||
|
__MAYBE_SONG_ARRAY_800A8218[count]->field_0x40 = 0;
|
||||||
|
__MAYBE_SONG_ARRAY_800A8218[count]->field_0x4c = 0;
|
||||||
|
}
|
||||||
|
osSetIntMask(mask);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80074050);
|
INCLUDE_ASM(const s32, "main", func_80074050);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#include <PR/os.h>
|
void __load_song(void*);
|
||||||
|
|
||||||
void __calls_romCopy_800EA488(void*);
|
|
||||||
|
|
||||||
// INCLUDE_ASM(const s32, "overlays/overlay0/3F1B0", func_800E9C20);
|
|
||||||
|
|
||||||
|
|
||||||
extern void romCopy(const void* src, const void* dst, const s32 len);
|
extern void romCopy(const void* src, const void* dst, const s32 len);
|
||||||
extern void Mus__unknown_80081DB4(const void* arg0, const void* arg1);
|
extern void Mus__unknown_80081DB4(const void* arg0, const void* arg1);
|
||||||
|
|
@ -29,6 +24,7 @@ extern const u8 D_8010A760;
|
||||||
extern const u8 D_80164770;
|
extern const u8 D_80164770;
|
||||||
extern const u8 D_80104710;
|
extern const u8 D_80104710;
|
||||||
|
|
||||||
|
/* 3F1B0 800E9C20 */
|
||||||
void func_800E9C20(void)
|
void func_800E9C20(void)
|
||||||
{
|
{
|
||||||
romCopy(&n64_ptr_tables_v2_00_ROM_START, &D_80164770, &n64_ptr_tables_v2_00_ROM_END - &n64_ptr_tables_v2_00_ROM_START);
|
romCopy(&n64_ptr_tables_v2_00_ROM_START, &D_80164770, &n64_ptr_tables_v2_00_ROM_END - &n64_ptr_tables_v2_00_ROM_START);
|
||||||
|
|
@ -51,30 +47,7 @@ INCLUDE_ASM(const s32, "overlays/overlay0/3F1B0", func_800EA0E4);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "overlays/overlay0/3F1B0", func_800EA1C8);
|
INCLUDE_ASM(const s32, "overlays/overlay0/3F1B0", func_800EA1C8);
|
||||||
|
|
||||||
typedef struct {
|
void func_800EA3BC(SomethingMusic* arg0) {
|
||||||
/* 0x00 */ s32 field_0x0;
|
|
||||||
/* 0x04 */ s32 field_0x4;
|
|
||||||
/* 0x08 */ s32 field_0x8;
|
|
||||||
/* 0x0c */ s32 field_0xc;
|
|
||||||
/* 0x10 */ s32 field_0x10;
|
|
||||||
/* 0x14 */ s32 field_0x14;
|
|
||||||
/* 0x18 */ s32 field_0x18;
|
|
||||||
/* 0x1C */ s32 field_0x1c;
|
|
||||||
/* 0x20 */ s32 field_0x20;
|
|
||||||
/* 0x24 */ unsigned long handle;
|
|
||||||
/* 0x28 */ s32 field_0x28;
|
|
||||||
/* 0x2C */ s32 field_0x2c;
|
|
||||||
/* 0x30 */ s32 field_0x30;
|
|
||||||
/* 0x34 */ s32 field_0x34;
|
|
||||||
/* 0x38 */ s32 field_0x38;
|
|
||||||
/* 0x3C */ s32 field_0x3c;
|
|
||||||
/* 0x40 */ s32 field_0x40;
|
|
||||||
/* 0x44 */ s32 field_0x44;
|
|
||||||
/* 0x48 */ void* addr;
|
|
||||||
/* 0x4C */ s32 field_0x4c;
|
|
||||||
} Arg;
|
|
||||||
|
|
||||||
void func_800EA3BC(Arg* arg0) {
|
|
||||||
s32 temp_a1;
|
s32 temp_a1;
|
||||||
s32 temp_v0;
|
s32 temp_v0;
|
||||||
s32 temp_v1;
|
s32 temp_v1;
|
||||||
|
|
@ -98,12 +71,12 @@ extern s32 func_80081B08(s32);
|
||||||
|
|
||||||
extern s32 D_800EB0E8;
|
extern s32 D_800EB0E8;
|
||||||
|
|
||||||
void func_800EA3E4(Arg* arg0) {
|
void func_800EA3E4(SomethingMusic* arg0) {
|
||||||
s32 var_v0;
|
s32 var_v0;
|
||||||
|
|
||||||
if (func_80081B08(arg0->handle) == 0) {
|
if (func_80081B08(arg0->handle) == 0) {
|
||||||
D_800EB0E8 = 0;
|
D_800EB0E8 = 0;
|
||||||
__calls_romCopy_800EA488(arg0);
|
__load_song(arg0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (arg0->field_0x38 == 0) {
|
if (arg0->field_0x38 == 0) {
|
||||||
|
|
@ -122,14 +95,14 @@ void func_800EA3E4(Arg* arg0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "overlays/overlay0/3F1B0", __calls_romCopy_800EA488);
|
INCLUDE_ASM(const s32, "overlays/overlay0/3F1B0", __load_song);
|
||||||
|
|
||||||
// INCLUDE_ASM(const s32, "overlays/overlay0/3F1B0", func_800EA568);
|
// INCLUDE_ASM(const s32, "overlays/overlay0/3F1B0", func_800EA568);
|
||||||
|
|
||||||
extern s32 func_80081770(s32);
|
extern s32 func_80081770(s32);
|
||||||
extern void func_80081DF0(const void*);
|
extern void func_80081DF0(const void*);
|
||||||
|
|
||||||
void func_800EA568(Arg* arg0) {
|
void func_800EA568(SomethingMusic* arg0) {
|
||||||
|
|
||||||
if (arg0->field_0x18 != 0) {
|
if (arg0->field_0x18 != 0) {
|
||||||
if (func_80081B08(arg0->handle) != 0) {
|
if (func_80081B08(arg0->handle) != 0) {
|
||||||
|
|
@ -152,7 +125,7 @@ INCLUDE_ASM(const s32, "overlays/overlay0/3F1B0", func_800EA604);
|
||||||
|
|
||||||
// INCLUDE_ASM(const s32, "overlays/overlay0/3F1B0", func_800EA6B0);
|
// INCLUDE_ASM(const s32, "overlays/overlay0/3F1B0", func_800EA6B0);
|
||||||
|
|
||||||
void func_800EA6B0(Arg* arg0, s32 arg1, s32 arg2) {
|
void func_800EA6B0(SomethingMusic* arg0, s32 arg1, s32 arg2) {
|
||||||
arg0->field_0x4 = arg1 + 1;
|
arg0->field_0x4 = arg1 + 1;
|
||||||
arg0->field_0xc = arg2;
|
arg0->field_0xc = arg2;
|
||||||
arg0->field_0x4c = 1;
|
arg0->field_0x4c = 1;
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
u8 D_80187020;
|
u8 D_80187020;
|
||||||
u8 D_80187021;
|
u8 __compared_osTvType;
|
||||||
|
|
||||||
/* 42C30 8016CD30 */
|
/* 42C30 8016CD30 */
|
||||||
u8 func_8016CD30(void) {
|
u8 __get_compared_osTvType(void) {
|
||||||
return D_80187020;
|
return D_80187020;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 42C3C 8016CD3C */
|
/* 42C3C 8016CD3C */
|
||||||
u8 func_8016CD3C(void) {
|
u8 __reset_compared_osTvType(void) {
|
||||||
u8 temp_v0;
|
u8 temp_v0;
|
||||||
|
|
||||||
temp_v0 = D_80187021;
|
temp_v0 = __compared_osTvType;
|
||||||
D_80187021 = 0;
|
__compared_osTvType = 0;
|
||||||
return temp_v0;
|
return temp_v0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -23,9 +23,9 @@ void func_8016CD50(u8 arg0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 42C5C 8016CD5C */
|
/* 42C5C 8016CD5C */
|
||||||
void func_8016CD5C(u8 arg0) {
|
void __inc_compared_osTvType(u8 arg0) {
|
||||||
if (D_80187020 != arg0) {
|
if (D_80187020 != arg0) {
|
||||||
D_80187021 = arg0 + 1;
|
__compared_osTvType = arg0 + 1;
|
||||||
}
|
}
|
||||||
D_80187020 = arg0;
|
D_80187020 = arg0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
maybe_boot_01 = 0x800851C0;
|
maybe_boot_01 = 0x800851C0;
|
||||||
|
|
||||||
__add_0x594284 = 0x8009DD28;
|
__add_0x594284 = 0x8009DD28;
|
||||||
|
|
@ -19,17 +20,25 @@ osAiSetFrequency = 0x8008C430;
|
||||||
osAiGetLength = 0x8008C410;
|
osAiGetLength = 0x8008C410;
|
||||||
osAiGetStatus = 0x8008C420;
|
osAiGetStatus = 0x8008C420;
|
||||||
|
|
||||||
|
|
||||||
__osException = 0x80098D70;
|
__osException = 0x80098D70;
|
||||||
__osExceptionPreamble = 0x80098D60;
|
__osExceptionPreamble = 0x80098D60;
|
||||||
|
|
||||||
|
dtor_rotate = 0x800ABAE0; // type:f32
|
||||||
|
ldigs = 0x800ABC30; // type:asciz
|
||||||
|
udigs = 0x800ABC44; // type:asciz
|
||||||
|
_Litob = 0x8009B670;
|
||||||
|
|
||||||
__osSiRawWriteIo = 0x
|
__osSiRawWriteIo = 0x
|
||||||
__osFinalrom = 0x800E82C0;
|
__osFinalrom = 0x800E82C0; // type:u32
|
||||||
osViClock = 0x800ABAC8;
|
osViClock = 0x800ABAC8; // type:s32
|
||||||
|
__OSGlobalIntMask = 0x800ABAD0; // type:u32
|
||||||
|
__osShutdown = 0x800ABACC; // type:u32
|
||||||
__osSiRawReadIo = 0x8009A830;
|
__osSiRawReadIo = 0x8009A830;
|
||||||
__osSiRawWriteIo = 0x8009A880;
|
__osSiRawWriteIo = 0x8009A880;
|
||||||
osResetType = 0x8000030C;
|
osResetType = 0x8000030C;
|
||||||
osAppNMIBuffer = 0x8000031C;
|
osAppNMIBuffer = 0x8000031C;
|
||||||
osClockRate = 0x800ABAC0;
|
osClockRate = 0x800ABAC0; // type:u64
|
||||||
osPiRawStartDma = 0x800997F0;
|
osPiRawStartDma = 0x800997F0;
|
||||||
osEPiRawStartDma = 0x8008BA50;
|
osEPiRawStartDma = 0x8008BA50;
|
||||||
|
|
||||||
|
|
@ -168,10 +177,18 @@ osViGetCurrentFramebuffer = 0x800951E0;
|
||||||
osViModeTable = 0x800AA7E0;
|
osViModeTable = 0x800AA7E0;
|
||||||
osViSetMode = 0x800955C0;
|
osViSetMode = 0x800955C0;
|
||||||
osViSetEvent = 0x80095560;
|
osViSetEvent = 0x80095560;
|
||||||
|
vi = 0x800ABB70; // size:0x60
|
||||||
|
__osViCurr = 0x800ABBD0;
|
||||||
__osViNext = 0x800ABBD4;
|
__osViNext = 0x800ABBD4;
|
||||||
osViBlack = 0x80095B30;
|
osViBlack = 0x80095B30;
|
||||||
osViSetSpecialFeatures = 0x80095610;
|
osViSetSpecialFeatures = 0x80095610;
|
||||||
|
|
||||||
|
osViModeNtscHpf1 = 0x800AB9B0;
|
||||||
|
osViModeMpalHpf1 = 0x800ABA50;
|
||||||
|
osViModePalLan1 = 0x800ABBE0;
|
||||||
|
osViModeMpalLan1 = 0x800ABA00;
|
||||||
|
osViModeNtscLan1 = 0x800AB960;
|
||||||
|
|
||||||
__init_controllers = 0x80089C60;
|
__init_controllers = 0x80089C60;
|
||||||
|
|
||||||
MusFxBankInitialize = 0x80081F7C; // rom:0x1237C
|
MusFxBankInitialize = 0x80081F7C; // rom:0x1237C
|
||||||
|
|
@ -188,7 +205,7 @@ __calls_romCopy_8009DBB8 = 0x8009DBB8;
|
||||||
__calls_romCopy_8009DD38 = 0x8009DD38;
|
__calls_romCopy_8009DD38 = 0x8009DD38;
|
||||||
__calls_romCopy_8009DE40 = 0x8009DE40;
|
__calls_romCopy_8009DE40 = 0x8009DE40;
|
||||||
__calls_romCopy_8009DF48 = 0x8009DF48;
|
__calls_romCopy_8009DF48 = 0x8009DF48;
|
||||||
__calls_romCopy_800EA488 = 0x800EA488;
|
//__calls_romCopy_800EA488 = 0x800EA488;
|
||||||
|
|
||||||
__start_thread_800BE1C0 = 0x8008B0B0;
|
__start_thread_800BE1C0 = 0x8008B0B0;
|
||||||
__start_thread_800B9C88 = 0x80089660;
|
__start_thread_800B9C88 = 0x80089660;
|
||||||
|
|
@ -206,6 +223,7 @@ __MUS_MEM_800B1870 = 0x800B1870;
|
||||||
__MUS_MEM_800B1868 = 0x800B1868;
|
__MUS_MEM_800B1868 = 0x800B1868;
|
||||||
|
|
||||||
MQ_CONTROLLER = 0x800E9B88;
|
MQ_CONTROLLER = 0x800E9B88;
|
||||||
|
MQ_SWAP_BUFFER = 0x800E9BA8;
|
||||||
MQ_800E7988 = 0x800E7988;
|
MQ_800E7988 = 0x800E7988;
|
||||||
MQ_800C4A00 = 0x800C4A00;
|
MQ_800C4A00 = 0x800C4A00;
|
||||||
MQ_800E9BF0 = 0x800E9BF0;
|
MQ_800E9BF0 = 0x800E9BF0;
|
||||||
|
|
@ -241,7 +259,33 @@ THREAD_800B7A90 = 0x800B7A90;
|
||||||
THREAD_800BE1C0 = 0x800BE1C0;
|
THREAD_800BE1C0 = 0x800BE1C0;
|
||||||
THREAD_800B9C88 = 0x800B9C88;
|
THREAD_800B9C88 = 0x800B9C88;
|
||||||
|
|
||||||
__thread_8007AC30 = 0x8007AC30;
|
// Name taken from error message.
|
||||||
|
UnpackProc = 0x8007AC30;
|
||||||
|
// Inferred from UnpackProc.
|
||||||
|
Unpack = 0x8007A110;
|
||||||
|
|
||||||
|
__read_u32_le = 0x8007A7E0;
|
||||||
|
|
||||||
|
__load_song = 0x800EA488;
|
||||||
|
__SONG_VOLUME = 0x800EB2E0;
|
||||||
|
__SONG_SOURCE_START = 0x800EB4F0;
|
||||||
|
__SONG_SOURCE_END = 0x800EB4F4;
|
||||||
|
|
||||||
|
__MAYBE_SONG_800EB0B0 = 0x800EB0B0; // size:0x50
|
||||||
|
__MAYBE_SONG_800EB100 = 0x800EB100; // size:0x50
|
||||||
|
__MAYBE_SONG_800EB150 = 0x800EB150; // size:0x50
|
||||||
|
__MAYBE_SONG_800EB1A0 = 0x800EB1A0; // size:0x50
|
||||||
|
__MAYBE_SONG_800EB1F0 = 0x800EB1F0; // size:0x50
|
||||||
|
__MAYBE_SONG_800EB240 = 0x800EB240; // size:0x50
|
||||||
|
__MAYBE_SONG_800EB290 = 0x800EB290; // size:0x50
|
||||||
|
// 7 pointers
|
||||||
|
__MAYBE_SONG_ARRAY_800A8218 = 0x800A8218; // size:0x1C
|
||||||
|
__initialize_song_mem = 0x80073FD4;
|
||||||
|
|
||||||
|
Stack__dma_load_loop_new = 0x80089054;
|
||||||
|
Stack__dma_load_loop_delete = 0x80089124;
|
||||||
|
|
||||||
|
|
||||||
__thread_8008AFE0 = 0x8008AFE0;
|
__thread_8008AFE0 = 0x8008AFE0;
|
||||||
__thread_80088F08 = 0x80088F08;
|
__thread_80088F08 = 0x80088F08;
|
||||||
__thread_80089200 = 0x80089200;
|
__thread_80089200 = 0x80089200;
|
||||||
|
|
@ -251,6 +295,10 @@ __thread_80089540 = 0x80089540;
|
||||||
|
|
||||||
SWAP_BUFFER_FUNC = 0x800A9E84;
|
SWAP_BUFFER_FUNC = 0x800A9E84;
|
||||||
set_swap_buffer_func = 0x800899D0;
|
set_swap_buffer_func = 0x800899D0;
|
||||||
|
__reset_compared_osTvType = 0x8016CD3C;
|
||||||
|
__get_compared_osTvType = 0x8016CD30;
|
||||||
|
__inc_compared_osTvType = 0x8016CD5C;
|
||||||
|
__compared_osTvType = 0x80187021;
|
||||||
|
|
||||||
romCopy = 0x80089F80;
|
romCopy = 0x80089F80;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,4 +36,5 @@ D_800A8210 = 0x800A8210;
|
||||||
D_80187020 = 0x80187020;
|
D_80187020 = 0x80187020;
|
||||||
D_80187030 = 0x80187030;
|
D_80187030 = 0x80187030;
|
||||||
D_8018F1A0 = 0x8018F1A0;
|
D_8018F1A0 = 0x8018F1A0;
|
||||||
D_8018FC18 = 0x8018FC18;
|
D_8018FC18 = 0x8018FC18;
|
||||||
|
D_800EB0E8 = 0x800EB0E8;
|
||||||
Loading…
Reference in New Issue