Compare commits
13 Commits
b406ea3ad3
...
2e0df3b558
| Author | SHA1 | Date |
|---|---|---|
|
|
2e0df3b558 | |
|
|
d4ba1d723e | |
|
|
1bb8976741 | |
|
|
6a14ae87ed | |
|
|
d36a01419a | |
|
|
a6217e604c | |
|
|
39db969fd9 | |
|
|
2d464a78a4 | |
|
|
6f3f544f26 | |
|
|
8a0544efc3 | |
|
|
ef9826c23e | |
|
|
3a78de26ae | |
|
|
120e13f0c0 |
|
|
@ -231,6 +231,8 @@ extern void func_8008949C(void** buffers);
|
||||||
extern void func_8008350C();
|
extern void func_8008350C();
|
||||||
extern void func_8008B1D0(u8*);
|
extern void func_8008B1D0(u8*);
|
||||||
|
|
||||||
|
extern void __set_vi_mode(s32);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ u32 vram_start;
|
/* 0x00 */ u32 vram_start;
|
||||||
/* 0x04 */ u32 vram_end;
|
/* 0x04 */ u32 vram_end;
|
||||||
|
|
@ -287,7 +289,7 @@ extern void func_800E9C20(void);
|
||||||
|
|
||||||
extern s8 D_800AEE72;
|
extern s8 D_800AEE72;
|
||||||
extern s16 D_800C4A18;
|
extern s16 D_800C4A18;
|
||||||
extern s16 D_800C4AD8;
|
extern u16 D_800C4AD8;
|
||||||
extern s16 D_800C4BCA;
|
extern s16 D_800C4BCA;
|
||||||
extern s16 D_800C4C08;
|
extern s16 D_800C4C08;
|
||||||
extern s16 D_800E7A1C;
|
extern s16 D_800E7A1C;
|
||||||
|
|
@ -319,7 +321,7 @@ typedef struct {
|
||||||
|
|
||||||
extern Unk_800A81C0 D_800A81C0[2];
|
extern Unk_800A81C0 D_800A81C0[2];
|
||||||
|
|
||||||
extern void func_800712C4(Arg_800712C4*);
|
extern Arg_800712C4* func_800712C4(Arg_800712C4*);
|
||||||
|
|
||||||
extern u8 D_80197168[0x10];
|
extern u8 D_80197168[0x10];
|
||||||
extern s32 D_80196F58;
|
extern s32 D_80196F58;
|
||||||
|
|
@ -608,9 +610,29 @@ extern SomethingMusic __MAYBE_SONG_800EB290;
|
||||||
extern char *obStrategyName[];
|
extern char *obStrategyName[];
|
||||||
extern char *obGetStrategyName(u8 index);
|
extern char *obGetStrategyName(u8 index);
|
||||||
|
|
||||||
extern s8 D_800A8213;
|
|
||||||
|
|
||||||
extern s16 D_800AEE90;
|
extern s16 D_800AEE90;
|
||||||
extern s16 D_800AEF10;
|
extern s16 D_800AEF10;
|
||||||
|
|
||||||
|
extern s8 D_800A8210;
|
||||||
|
extern s8 D_800A8211;
|
||||||
|
extern s8 D_800A8212;
|
||||||
|
extern u8 D_800A8213;
|
||||||
|
|
||||||
|
extern OSContPad __GLOBAL_CONTROLLER_DATA_COPY[4];
|
||||||
|
|
||||||
|
extern u8 __get_compared_osTvType();
|
||||||
|
extern u8 __reset_compared_osTvType();
|
||||||
|
extern void func_8016CD50(u8 arg0);
|
||||||
|
extern void __inc_compared_osTvType(u8 arg0);
|
||||||
|
|
||||||
|
extern s32 func_80173B60(s32);
|
||||||
|
extern s32 D_800AF0B0;
|
||||||
|
|
||||||
|
extern void Unpack(s32, s32);
|
||||||
|
extern OSMesgQueue MQ_800AF320;
|
||||||
|
|
||||||
|
extern u32 obCurrentTime;
|
||||||
|
extern void obSetCurrentTime(u32 time);
|
||||||
|
extern u32 obGetCurrentTime();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
obCurrentTime = 0x800C47D0;
|
||||||
|
obSetCurrentTime = 0x8009C7C0; // rom:0x2CBC0
|
||||||
|
obGetCurrentTime = 0x8009C7CC; // rom:0x2CBCC
|
||||||
|
obGetCurrentTimeF = 0x8007FD10; // rom:0x10110
|
||||||
|
|
||||||
fchar = 0x800AEA80; // rom:0x3EE80
|
fchar = 0x800AEA80; // rom:0x3EE80
|
||||||
_Printf = 0x80099BE0; // rom:0x29FE0
|
_Printf = 0x80099BE0; // rom:0x29FE0
|
||||||
_Putfld = 0x8009A160; // rom:0x2A560
|
_Putfld = 0x8009A160; // rom:0x2A560
|
||||||
|
|
|
||||||
|
|
@ -295,7 +295,7 @@ segments:
|
||||||
- [0x2C9E0, asm]
|
- [0x2C9E0, asm]
|
||||||
- [0x2CA20, asm]
|
- [0x2CA20, asm]
|
||||||
- [0x2CB50, asm]
|
- [0x2CB50, asm]
|
||||||
- [0x2CBC0, asm]
|
- [0x2CBC0, c, "_ob_saucy_channel"]
|
||||||
- [0x2CC00, asm]
|
- [0x2CC00, asm]
|
||||||
- [0x2CD70, asm]
|
- [0x2CD70, asm]
|
||||||
- [0x2CDA0, asm]
|
- [0x2CDA0, asm]
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,18 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "_ob_ambitious_fold", func_8007FD10);
|
/* 10110 8007FD10 */
|
||||||
|
f32 obGetCurrentTimeF(void) {
|
||||||
|
f64 var_f4;
|
||||||
|
s32 temp_s0_2;
|
||||||
|
|
||||||
|
temp_s0_2 =
|
||||||
|
((obGetCurrentTime() << 0x12) & 0x0C000000) |
|
||||||
|
(obGetCurrentTime() << 0xF) |
|
||||||
|
obGetCurrentTime();
|
||||||
|
var_f4 = (f64) temp_s0_2;
|
||||||
|
if (temp_s0_2 < 0) {
|
||||||
|
var_f4 += 4294967296.0;
|
||||||
|
}
|
||||||
|
return (f32) var_f4 * 2.3283064e-10f;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "os_message.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
s32 field_0x0;
|
s32 field_0x0;
|
||||||
|
|
@ -55,7 +56,6 @@ extern void* D_800AF090[4];
|
||||||
extern void* D_800C47F0[4];
|
extern void* D_800C47F0[4];
|
||||||
|
|
||||||
extern void func_8007819C();
|
extern void func_8007819C();
|
||||||
extern void func_8009C7C0(s32 time); // this function doesnt take an s64
|
|
||||||
extern s32 func_80173B60(s32);
|
extern s32 func_80173B60(s32);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", __calls_loads_overlay_array);
|
INCLUDE_ASM(const s32, "_ob_rabid_jar", __calls_loads_overlay_array);
|
||||||
|
|
@ -102,14 +102,12 @@ INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076324);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", __get_overlay_index);
|
INCLUDE_ASM(const s32, "_ob_rabid_jar", __get_overlay_index);
|
||||||
|
|
||||||
// INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800764E0);
|
|
||||||
|
|
||||||
/* 68E0 800764E0 */
|
/* 68E0 800764E0 */
|
||||||
void func_800764E0(void) {
|
void func_800764E0(void) {
|
||||||
u16 i;
|
u16 i;
|
||||||
|
|
||||||
osGetTime();
|
osGetTime();
|
||||||
bzero(D_800E82C8, 0x3F0);
|
bzero(D_800E82C8, sizeof(D_800E82C8));
|
||||||
bzero(D_800C4C10, sizeof(D_800C4C10));
|
bzero(D_800C4C10, sizeof(D_800C4C10));
|
||||||
|
|
||||||
D_800C4C20 = 1;
|
D_800C4C20 = 1;
|
||||||
|
|
@ -126,7 +124,7 @@ void func_800764E0(void) {
|
||||||
D_800AF090[i] = &D_800AF0A0;
|
D_800AF090[i] = &D_800AF0A0;
|
||||||
}
|
}
|
||||||
|
|
||||||
func_8009C7C0(osGetTime());
|
obSetCurrentTime(osGetTime());
|
||||||
|
|
||||||
D_800AF0B0 = func_80173B60(D_800AF0B0);
|
D_800AF0B0 = func_80173B60(D_800AF0B0);
|
||||||
func_8007819C();
|
func_8007819C();
|
||||||
|
|
@ -140,9 +138,6 @@ INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076DC8);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076E00);
|
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076E00);
|
||||||
|
|
||||||
s32 func_80173B60(s32); /* extern */
|
|
||||||
extern s32 D_800AF0B0;
|
|
||||||
|
|
||||||
/* 722C 80076E2C */
|
/* 722C 80076E2C */
|
||||||
void func_80076E2C(void) {
|
void func_80076E2C(void) {
|
||||||
D_800AF0B0 = func_80173B60(D_800AF0B0);
|
D_800AF0B0 = func_80173B60(D_800AF0B0);
|
||||||
|
|
@ -186,7 +181,6 @@ loop_1:
|
||||||
return var_a1;
|
return var_a1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800773D4);
|
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800773D4);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007740C);
|
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007740C);
|
||||||
|
|
@ -385,7 +379,6 @@ INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007896C);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078C6C);
|
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078C6C);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079028);
|
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079028);
|
||||||
|
|
@ -437,7 +430,6 @@ INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079E9C);
|
||||||
// return var_s0;
|
// return var_s0;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079EF4);
|
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079EF4);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079F70);
|
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079F70);
|
||||||
|
|
@ -459,28 +451,25 @@ INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007AB7C);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007ABAC);
|
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007ABAC);
|
||||||
|
|
||||||
void Unpack(s32, s32);
|
|
||||||
extern OSMesgQueue MQ_800AF320;
|
|
||||||
|
|
||||||
/* B030 8007AC30 */
|
/* B030 8007AC30 */
|
||||||
void UnpackProc(void) {
|
void UnpackProc(void) {
|
||||||
struct {
|
struct {
|
||||||
/* 0x00 */ s32 field_0x0;
|
/* 0x00 */ s32 field_0x0;
|
||||||
/* 0x04 */ OSMesgQueue* field_0x4;
|
/* 0x04 */ OSMesgQueue* queue;
|
||||||
/* 0x08 */ u8 field_0x8;
|
/* 0x08 */ u8 format;
|
||||||
/* 0x09 */ u8 field_0x9[3];
|
/* 0x09 */ u8 field_0x9[3];
|
||||||
/* 0x0C */ s32 field_0xc;
|
/* 0x0C */ s32 field_0xc;
|
||||||
/* 0x10 */ s32 field_0x10;
|
/* 0x10 */ s32 field_0x10;
|
||||||
} *sp10;
|
} *pack;
|
||||||
|
|
||||||
sp10 = NULL;
|
pack = NULL;
|
||||||
while(1) {
|
while(1) {
|
||||||
osRecvMesg(&MQ_800AF320, &sp10, 1);
|
osRecvMesg(&MQ_800AF320, (OSMesg)&pack, 1);
|
||||||
if (sp10->field_0x8 == 1) {
|
if (pack->format == 1) {
|
||||||
Unpack(sp10->field_0x10, sp10->field_0xc);
|
Unpack(pack->field_0x10, pack->field_0xc);
|
||||||
osSendMesg(sp10->field_0x4, sp10, 1);
|
osSendMesg(pack->queue, pack, OS_MESG_BLOCK);
|
||||||
} else {
|
} else {
|
||||||
osSyncPrintf("UnpackProc: no supported format %d\n", sp10->field_0x8);
|
osSyncPrintf("UnpackProc: no supported format %d\n", pack->format);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
|
/* 2CBC0 8009C7C0 */
|
||||||
|
void obSetCurrentTime(u32 time) {
|
||||||
|
obCurrentTime = time;
|
||||||
|
}
|
||||||
|
|
||||||
|
INCLUDE_ASM(const s32, "_ob_saucy_channel", obGetCurrentTime);
|
||||||
441
src/main.c
441
src/main.c
|
|
@ -2,6 +2,101 @@
|
||||||
#include "libmus.h"
|
#include "libmus.h"
|
||||||
|
|
||||||
extern u16 D_800AEDE2;
|
extern u16 D_800AEDE2;
|
||||||
|
typedef struct {
|
||||||
|
u8 field_0x0;
|
||||||
|
u8 field_0x1;
|
||||||
|
u8 field_0x2;
|
||||||
|
} Unknown0;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
s16 field_0x0[9];
|
||||||
|
} Unknown1;
|
||||||
|
|
||||||
|
void __calls_copy_controller_data(); /* extern */
|
||||||
|
void __calls_loads_overlay_array(); /* extern */
|
||||||
|
void __calls_osViSwapBuffer_8007307C(void**); /* extern */
|
||||||
|
void __dma_load_loop(s32); /* extern */
|
||||||
|
void __initialize_song_mem(); /* extern */
|
||||||
|
void __set_fp_8008A660(void(*)(u16)); /* extern */
|
||||||
|
void __set_obPtrPtrDisplayList(Gfx**); /* extern */
|
||||||
|
void func_80070C60(s32*, s32); /* extern */
|
||||||
|
void func_80072710(); /* extern */
|
||||||
|
void func_800727D8(); /* extern */
|
||||||
|
u8 func_800728BC(); /* extern */
|
||||||
|
u8 func_80072900(); /* extern */
|
||||||
|
s32 func_80073F58(); /* extern */
|
||||||
|
void func_800746C8(); /* extern */
|
||||||
|
void func_800749C0(s32); /* extern */
|
||||||
|
void func_800764E0(); /* extern */
|
||||||
|
void func_80079380(); /* extern */
|
||||||
|
void func_8008A040(); /* extern */
|
||||||
|
void func_8008A1B0(); /* extern */
|
||||||
|
s8 func_8008A260(); /* extern */
|
||||||
|
void func_8009DAEC(); /* extern */
|
||||||
|
void func_800E9CEC(); /* extern */
|
||||||
|
void func_800EA714(); /* extern */
|
||||||
|
void func_800EA8E0(); /* extern */
|
||||||
|
void func_8016C900(); /* extern */
|
||||||
|
void func_80179060(); /* extern */
|
||||||
|
void func_8017BDC0(); /* extern */
|
||||||
|
void func_80184D70(); /* extern */
|
||||||
|
void obControllerInit(); /* extern */
|
||||||
|
|
||||||
|
extern s32 D_800A81F4;
|
||||||
|
extern s32 D_800A8204;
|
||||||
|
extern Unknown1 D_800ABD80;
|
||||||
|
extern Unknown1 D_800E9C08;
|
||||||
|
extern u8 D_800AEF98;
|
||||||
|
extern s8 D_800AEF99;
|
||||||
|
extern s8 D_800AEF9A;
|
||||||
|
extern s8 D_800AEFA0;
|
||||||
|
extern s32 D_800AEFA4;
|
||||||
|
extern s8 D_800C4808;
|
||||||
|
extern s32 D_800C4BCC;
|
||||||
|
extern s8 D_800C4CE4;
|
||||||
|
extern s8 D_800E7A0C;
|
||||||
|
extern s8 D_800E810C;
|
||||||
|
extern s8 D_800E82C4;
|
||||||
|
extern s32 D_800EB8F0;
|
||||||
|
extern s32 D_8018FDC0;
|
||||||
|
extern s32 D_80190F10;
|
||||||
|
extern s32 D_80243DB0;
|
||||||
|
|
||||||
|
extern Arg_800712C4* D_800AEF9C;
|
||||||
|
|
||||||
|
extern s32 D_800A81F4;
|
||||||
|
extern s32 D_800A81F8;
|
||||||
|
extern s32 D_800C4BCC;
|
||||||
|
|
||||||
|
extern s8 D_800AEF9A;
|
||||||
|
extern void* D_800C4BB8;
|
||||||
|
|
||||||
|
extern struct {
|
||||||
|
// s32 field_0x0;
|
||||||
|
// s32 field_0x4;
|
||||||
|
// s32 field_0x8;
|
||||||
|
OSContPad* field_0xc[4];
|
||||||
|
} D_800C47F0;
|
||||||
|
|
||||||
|
extern u16 __MAIN_START_BUT_CHECK;
|
||||||
|
extern s16 __MAIN_START_BUT_STATE;
|
||||||
|
|
||||||
|
extern void func_8007284C(u16);
|
||||||
|
extern void func_8016AF80();
|
||||||
|
extern void func_80197B70();
|
||||||
|
extern void func_8007328C();
|
||||||
|
extern u8 __reset_compared_osTvType();
|
||||||
|
|
||||||
|
extern struct {
|
||||||
|
s8 field_0x0;
|
||||||
|
s8 field_0x1;
|
||||||
|
s8 field_0x2;
|
||||||
|
} D_800A81F0;
|
||||||
|
|
||||||
|
extern void* D_800E8210;
|
||||||
|
|
||||||
|
DECLARE_SEGMENT(segment_song);
|
||||||
|
DECLARE_SEGMENT(segment_obdata);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80070C60);
|
INCLUDE_ASM(const s32, "main", func_80070C60);
|
||||||
|
|
||||||
|
|
@ -52,256 +147,8 @@ INCLUDE_ASM(const s32, "main", func_80071C04);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80071E74);
|
INCLUDE_ASM(const s32, "main", func_80071E74);
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
u8 field_0x0;
|
|
||||||
u8 field_0x1;
|
|
||||||
u8 field_0x2;
|
|
||||||
} Unknown0;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
s16 field_0x0[9];
|
|
||||||
} Unknown1;
|
|
||||||
|
|
||||||
void __calls_copy_controller_data(); /* extern */
|
|
||||||
void __calls_loads_overlay_array(); /* extern */
|
|
||||||
void __calls_osViSwapBuffer_8007307C(void**); /* extern */
|
|
||||||
void __dma_load_loop(s32); /* extern */
|
|
||||||
void __initialize_song_mem(); /* extern */
|
|
||||||
void __set_fp_8008A660(void(*)(u16)); /* extern */
|
|
||||||
void __set_obPtrPtrDisplayList(Gfx**); /* extern */
|
|
||||||
void __set_vi_mode(s32); /* extern */
|
|
||||||
void func_80070C60(s32*, s32); /* extern */
|
|
||||||
void func_80072710(); /* extern */
|
|
||||||
void func_800727D8(); /* extern */
|
|
||||||
u8 func_800728BC(); /* extern */
|
|
||||||
u8 func_80072900(); /* extern */
|
|
||||||
s32 func_80073F58(); /* extern */
|
|
||||||
void func_800746C8(); /* extern */
|
|
||||||
void func_800749C0(s32); /* extern */
|
|
||||||
void func_800764E0(); /* extern */
|
|
||||||
void func_80079380(); /* extern */
|
|
||||||
void func_8008A040(); /* extern */
|
|
||||||
void func_8008A1B0(); /* extern */
|
|
||||||
s8 func_8008A260(); /* extern */
|
|
||||||
void func_8009DAEC(); /* extern */
|
|
||||||
void func_800E9CEC(); /* extern */
|
|
||||||
void func_800EA714(); /* extern */
|
|
||||||
void func_800EA8E0(); /* extern */
|
|
||||||
void func_8016C900(); /* extern */
|
|
||||||
void func_8016CD50(s32); /* extern */
|
|
||||||
void func_80179060(); /* extern */
|
|
||||||
void func_8017BDC0(); /* extern */
|
|
||||||
void func_80184D70(); /* extern */
|
|
||||||
void obControllerInit(); /* extern */
|
|
||||||
|
|
||||||
extern s32 D_800A81F4;
|
|
||||||
extern s32 D_800A8204;
|
|
||||||
extern Unknown0 D_800A8210;
|
|
||||||
extern Unknown1 D_800ABD80;
|
|
||||||
extern Unknown1 D_800E9C08;
|
|
||||||
extern s8 D_800A8213;
|
|
||||||
extern u8 D_800AEF98;
|
|
||||||
extern s8 D_800AEF99;
|
|
||||||
extern s8 D_800AEF9A;
|
|
||||||
extern s32 D_800AEF9C;
|
|
||||||
extern s8 D_800AEFA0;
|
|
||||||
extern s32 D_800AEFA4;
|
|
||||||
extern s8 D_800C4808;
|
|
||||||
extern s32 D_800C4BCC;
|
|
||||||
extern s8 D_800C4CE4;
|
|
||||||
extern s8 D_800E7A0C;
|
|
||||||
extern s8 D_800E810C;
|
|
||||||
extern s8 D_800E82C4;
|
|
||||||
extern s32 D_800EB8F0;
|
|
||||||
extern s32 D_8018FDC0;
|
|
||||||
extern s32 D_80190F10;
|
|
||||||
extern s32 D_80243DB0;
|
|
||||||
|
|
||||||
extern OSContPad __GLOBAL_CONTROLLER_DATA_COPY[4];
|
|
||||||
extern struct {
|
|
||||||
// s32 field_0x0;
|
|
||||||
// s32 field_0x4;
|
|
||||||
// s32 field_0x8;
|
|
||||||
OSContPad* field_0xc[4];
|
|
||||||
} D_800C47F0;
|
|
||||||
|
|
||||||
extern u16 __MAIN_START_BUT_CHECK;
|
|
||||||
extern s16 __MAIN_START_BUT_STATE;
|
|
||||||
|
|
||||||
extern void func_8007284C(u16);
|
|
||||||
extern void func_8016AF80();
|
|
||||||
extern void func_80197B70();
|
|
||||||
|
|
||||||
extern struct {
|
|
||||||
s8 field_0x0;
|
|
||||||
s8 field_0x1;
|
|
||||||
s8 field_0x2;
|
|
||||||
} D_800A81F0;
|
|
||||||
|
|
||||||
DECLARE_SEGMENT(segment_song);
|
|
||||||
DECLARE_SEGMENT(segment_obdata);
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", obMain);
|
INCLUDE_ASM(const s32, "main", obMain);
|
||||||
|
|
||||||
// void obMain(void* arg0) {
|
|
||||||
// s32 i;
|
|
||||||
|
|
||||||
// osAiSetFrequency(32000);
|
|
||||||
|
|
||||||
// func_8008A1B0();
|
|
||||||
// bzero(func_800E9C20, (u8*)0x80400000 - (u8*)&func_800E9C20);
|
|
||||||
|
|
||||||
// obControllerInit();
|
|
||||||
// D_800E82C4 = func_8008A260();
|
|
||||||
|
|
||||||
// for(i = 0; i < 4; i++)
|
|
||||||
// D_800C47F0.field_0xc[i] = &__GLOBAL_CONTROLLER_DATA_COPY[i];
|
|
||||||
|
|
||||||
// // i = 3;
|
|
||||||
// // var_v1 = &D_800C47FC;
|
|
||||||
// // var_v0 = &__GLOBAL_CONTROLLER_DATA_COPY[3];
|
|
||||||
// // do {
|
|
||||||
// // *var_v1 = var_v0;
|
|
||||||
// // var_v1 -= 4;
|
|
||||||
// // i -= 1;
|
|
||||||
// // var_v0 -= 6;
|
|
||||||
// // } while (i >= 0);
|
|
||||||
|
|
||||||
// D_800AEF9A = 0;
|
|
||||||
// __set_fp_8008A660(func_8007284C);
|
|
||||||
// func_8008A040();
|
|
||||||
|
|
||||||
// osInvalICache(SEGMENT_TEXT_START(segment_song), SEGMENT_TEXT_SIZE(segment_song));
|
|
||||||
// osInvalDCache(
|
|
||||||
// SEGMENT_DATA_START(segment_song),
|
|
||||||
// SEGMENT_RODATA_END(segment_song) - SEGMENT_DATA_START(segment_song)
|
|
||||||
// );
|
|
||||||
// __calls_romCopy_8009DA50(
|
|
||||||
// SEGMENT_ROM_START(segment_song),
|
|
||||||
// SEGMENT_VRAM_START(segment_song),
|
|
||||||
// SEGMENT_ROM_SIZE(segment_song)
|
|
||||||
// );
|
|
||||||
// if (SEGMENT_BSS_START(segment_song) != SEGMENT_BSS_END(segment_song)) {
|
|
||||||
// bzero(SEGMENT_BSS_START(segment_song), SEGMENT_BSS_SIZE(segment_song));
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func_800E9CEC();
|
|
||||||
// func_800E9C20();
|
|
||||||
|
|
||||||
// MusSetMasterVolume(MUSFLAG_EFFECTS, 0x67FF);
|
|
||||||
// MusSetMasterVolume(MUSFLAG_SONGS, 0x7FFF);
|
|
||||||
|
|
||||||
// D_800AEF98 = 0;
|
|
||||||
// while(true) {
|
|
||||||
// func_800EA714();
|
|
||||||
// __initialize_song_mem();
|
|
||||||
|
|
||||||
// osInvalICache(SEGMENT_TEXT_START(segment_obdata), SEGMENT_TEXT_SIZE(segment_obdata));
|
|
||||||
// osInvalDCache(
|
|
||||||
// SEGMENT_DATA_START(segment_obdata),
|
|
||||||
// SEGMENT_RODATA_END(segment_obdata) - SEGMENT_DATA_START(segment_obdata)
|
|
||||||
// );
|
|
||||||
// __calls_romCopy_8009DA50(
|
|
||||||
// SEGMENT_ROM_START(segment_obdata),
|
|
||||||
// SEGMENT_VRAM_START(segment_obdata),
|
|
||||||
// SEGMENT_ROM_SIZE(segment_obdata)
|
|
||||||
// );
|
|
||||||
// if (SEGMENT_BSS_START(segment_obdata) != SEGMENT_BSS_END(segment_obdata)) {
|
|
||||||
// bzero(SEGMENT_BSS_START(segment_obdata), SEGMENT_BSS_SIZE(segment_obdata));
|
|
||||||
// }
|
|
||||||
// bzero(SEGMENT_BSS_START(segment_obdata), SEGMENT_BSS_SIZE(segment_obdata));
|
|
||||||
|
|
||||||
// func_80089AB0(&D_800A8204, 3);
|
|
||||||
// set_swap_buffer_func(__calls_osViSwapBuffer_8007307C);
|
|
||||||
|
|
||||||
// bzero(D_800A81C0, 0x30);
|
|
||||||
// D_800A81F0.field_0x0 = 0;
|
|
||||||
// // D_800A81F0.field_0x1 = 0;
|
|
||||||
// // D_800A81F0.field_0x2 = 0;
|
|
||||||
|
|
||||||
// D_800A8210.field_0x0 = 0;
|
|
||||||
// D_800A8210.field_0x1 = 0;
|
|
||||||
// D_800A8210.field_0x2 = 0;
|
|
||||||
// D_800A8213 = 0;
|
|
||||||
// D_800E7A0C = 1;
|
|
||||||
|
|
||||||
// D_800C4808 = 0;
|
|
||||||
// D_800E810C = 0;
|
|
||||||
// D_800C4CE4 = 1;
|
|
||||||
// D_800AEFA0 = 0;
|
|
||||||
// D_800A81F4 = 0;
|
|
||||||
// D_800AEFA4 = D_800C4BCC;
|
|
||||||
// if (D_800AEF98 != 3) {
|
|
||||||
// D_800E9C08 = D_800ABD80;
|
|
||||||
// }
|
|
||||||
// D_800AEF98 = 0;
|
|
||||||
// D_800AEF99 = 0;
|
|
||||||
|
|
||||||
// func_800727D8();
|
|
||||||
|
|
||||||
// func_80070C60(&D_80243DB0, (u8*)0x80400000 - (u8*)&D_80243DB0);
|
|
||||||
|
|
||||||
// func_8009DAEC();
|
|
||||||
// func_80079380();
|
|
||||||
// func_80072710();
|
|
||||||
|
|
||||||
// __calls_copy_controller_data();
|
|
||||||
// if (__MAIN_START_BUT_CHECK & 0x1000) {
|
|
||||||
// __MAIN_START_BUT_STATE = 0x18;
|
|
||||||
// } else {
|
|
||||||
// __MAIN_START_BUT_STATE = 9;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func_80179060();
|
|
||||||
// func_800EA8E0();
|
|
||||||
// func_80173610();
|
|
||||||
// func_80073164(0, 8, 2, 0x40, 0x40, 0x100, 0x1000);
|
|
||||||
// D_800AEF9C = 0;
|
|
||||||
// D_800C4B20 = 0;
|
|
||||||
// D_800A8213 = 0;
|
|
||||||
// D_800A8210.field_0x0 = 0;
|
|
||||||
// D_800A8210.field_0x1 = 0;
|
|
||||||
// D_800A8210.field_0x2 = 0;
|
|
||||||
// __set_obPtrPtrDisplayList(&obPtrDisplayList);
|
|
||||||
// D_8018FDC0 = 0;
|
|
||||||
// func_8017BDC0();
|
|
||||||
// func_80184D70();
|
|
||||||
// func_8016C900();
|
|
||||||
|
|
||||||
// bzero(D_80197168, 0x10);
|
|
||||||
// func_800746C8();
|
|
||||||
// func_800749C0(0xE);
|
|
||||||
// func_800764E0();
|
|
||||||
|
|
||||||
// if (__MAIN_NOT_NULL_INF_LOOP != 0)
|
|
||||||
// while(true);
|
|
||||||
|
|
||||||
// func_80072900();
|
|
||||||
// __set_black();
|
|
||||||
// __set_vi_mode(2);
|
|
||||||
// func_8016CD50(0);
|
|
||||||
// __set_black();
|
|
||||||
// func_800728BC();
|
|
||||||
// __calls_loads_overlay_array();
|
|
||||||
// func_80072900();
|
|
||||||
// __set_black();
|
|
||||||
// __dma_load_loop(5);
|
|
||||||
// __set_vi_mode(2);
|
|
||||||
// func_8016CD50(0);
|
|
||||||
// __set_black();
|
|
||||||
|
|
||||||
// do {
|
|
||||||
// __dma_load_loop(1);
|
|
||||||
// } while (func_80073F58() != 0);
|
|
||||||
|
|
||||||
// __initialize_song_mem();
|
|
||||||
// MusStop(MUSFLAG_SONGS | MUSFLAG_EFFECTS, 8);
|
|
||||||
// while (MusAsk(MUSFLAG_SONGS | MUSFLAG_EFFECTS))
|
|
||||||
// __dma_load_loop(1);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80072398);
|
INCLUDE_ASM(const s32, "main", func_80072398);
|
||||||
|
|
||||||
/* 2B10 80072710 */
|
/* 2B10 80072710 */
|
||||||
|
|
@ -311,7 +158,31 @@ void func_80072710(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", __set_vi_mode);
|
/* 2B38 80072738 */
|
||||||
|
void __set_vi_mode(s32 arg0) {
|
||||||
|
switch (osTvType) {
|
||||||
|
case 1:
|
||||||
|
switch (arg0) {
|
||||||
|
case 2:
|
||||||
|
osViSetMode(&osViModeNtscLan1);
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
osViSetMode(&osViModeNtscHpf1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
switch (arg0) {
|
||||||
|
case 2:
|
||||||
|
osViSetMode(&osViModeMpalLan1);
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
osViSetMode(&osViModeMpalHpf1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* 2BD8 800727D8 */
|
/* 2BD8 800727D8 */
|
||||||
void func_800727D8(void) {
|
void func_800727D8(void) {
|
||||||
|
|
@ -345,9 +216,6 @@ loop_2:
|
||||||
bzero(__GLOBAL_CONTROLLER_DATA_COPY, sizeof(__GLOBAL_CONTROLLER_DATA_COPY));
|
bzero(__GLOBAL_CONTROLLER_DATA_COPY, sizeof(__GLOBAL_CONTROLLER_DATA_COPY));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern s8 D_800AEF9A;
|
|
||||||
|
|
||||||
void func_8007284C(u16 __unused) {
|
void func_8007284C(u16 __unused) {
|
||||||
const u16 pattern_a = CONT_A | CONT_B | CONT_L | CONT_START;
|
const u16 pattern_a = CONT_A | CONT_B | CONT_L | CONT_START;
|
||||||
const u16 pattern_b = CONT_A | CONT_B | CONT_G | CONT_START;
|
const u16 pattern_b = CONT_A | CONT_B | CONT_G | CONT_START;
|
||||||
|
|
@ -396,12 +264,8 @@ s32 func_80072944(void) {
|
||||||
return temp_s0 & 4;
|
return temp_s0 & 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", __calls_copy_controller_data);
|
INCLUDE_ASM(const s32, "main", __calls_copy_controller_data);
|
||||||
|
|
||||||
extern u8 __reset_compared_osTvType(); /* extern */
|
|
||||||
extern void* D_800C4BB8;
|
|
||||||
|
|
||||||
/* 347C 8007307C */
|
/* 347C 8007307C */
|
||||||
void __calls_osViSwapBuffer_8007307C(void** buffers)
|
void __calls_osViSwapBuffer_8007307C(void** buffers)
|
||||||
{
|
{
|
||||||
|
|
@ -447,7 +311,6 @@ void __calls_osViSwapBuffer_8007307C(void** buffers)
|
||||||
osViSwapBuffer(buffers[3]);
|
osViSwapBuffer(buffers[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* 3564 80073164 */
|
/* 3564 80073164 */
|
||||||
void func_80073164(u8 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, s16 arg6) {
|
void func_80073164(u8 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, s16 arg6) {
|
||||||
if (arg0 == 0) {
|
if (arg0 == 0) {
|
||||||
|
|
@ -514,7 +377,16 @@ u8 func_8007338C(void) {
|
||||||
return D_800A8213;
|
return D_800A8213;
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80073398);
|
void func_80073398(void) {
|
||||||
|
func_80089A10();
|
||||||
|
func_8007328C();
|
||||||
|
D_800A8213 = 0;
|
||||||
|
D_800A8212 = 0;
|
||||||
|
D_800A8211 = 0;
|
||||||
|
D_800A8210 = 0;
|
||||||
|
D_800AEF9C = func_800712C4(D_800AEF9C);
|
||||||
|
D_800C4B20 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_800733F8);
|
INCLUDE_ASM(const s32, "main", func_800733F8);
|
||||||
|
|
||||||
|
|
@ -527,7 +399,51 @@ void func_800737A0(void) {
|
||||||
gSPDisplayList(obPtrDisplayList++, DISPLAY_LIST_801869C8);
|
gSPDisplayList(obPtrDisplayList++, DISPLAY_LIST_801869C8);
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_8007382C);
|
/* 3C2C 8007382C */
|
||||||
|
void func_8007382C(void) {
|
||||||
|
u32 temp_a1;
|
||||||
|
|
||||||
|
if (__get_compared_osTvType() != 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (D_800A8213 != 0) {
|
||||||
|
temp_a1 = D_800C4B20 - 0x80000000;
|
||||||
|
|
||||||
|
gDPSetDepthImage(obPtrDisplayList++, temp_a1);
|
||||||
|
|
||||||
|
gDPPipeSync(obPtrDisplayList++);
|
||||||
|
|
||||||
|
gDPPipeSync(obPtrDisplayList++);
|
||||||
|
gDPSetCycleType(obPtrDisplayList++, G_CYC_FILL);
|
||||||
|
|
||||||
|
gDPPipeSync(obPtrDisplayList++);
|
||||||
|
gDPSetRenderMode(obPtrDisplayList++, G_RM_NOOP, G_RM_NOOP2);
|
||||||
|
gDPSetColorImage(obPtrDisplayList++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, temp_a1);
|
||||||
|
gDPSetFillColor(obPtrDisplayList++, 0xFFFCFFFC);
|
||||||
|
|
||||||
|
gDPPipeSync(obPtrDisplayList++);
|
||||||
|
gDPFillRectangle(obPtrDisplayList++, 0, 0, 319, 239);
|
||||||
|
|
||||||
|
gDPPipeSync(obPtrDisplayList++);
|
||||||
|
gDPPipeSync(obPtrDisplayList++);
|
||||||
|
}
|
||||||
|
|
||||||
|
gDPPipeSync(obPtrDisplayList++);
|
||||||
|
|
||||||
|
gDPPipeSync(obPtrDisplayList++);
|
||||||
|
gDPSetCycleType(obPtrDisplayList++, G_CYC_FILL);
|
||||||
|
|
||||||
|
gDPPipeSync(obPtrDisplayList++);
|
||||||
|
gDPSetRenderMode(obPtrDisplayList++, G_RM_NOOP, G_RM_NOOP2);
|
||||||
|
gDPSetColorImage(obPtrDisplayList++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, osVirtualToPhysical(D_800E8210));
|
||||||
|
gDPSetFillColor(obPtrDisplayList++, 0x00010001);
|
||||||
|
|
||||||
|
gDPPipeSync(obPtrDisplayList++);
|
||||||
|
gDPFillRectangle(obPtrDisplayList++, 0, 0, 319, 239);
|
||||||
|
|
||||||
|
gDPPipeSync(obPtrDisplayList++);
|
||||||
|
gSPDisplayList(obPtrDisplayList++, DISPLAY_LIST_801869C8);
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80073AE4);
|
INCLUDE_ASM(const s32, "main", func_80073AE4);
|
||||||
|
|
||||||
|
|
@ -540,15 +456,10 @@ void func_80073BD0(void) {
|
||||||
gDPSetAlphaDither(obPtrDisplayList++, G_AD_DISABLE);
|
gDPSetAlphaDither(obPtrDisplayList++, G_AD_DISABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80073C48);
|
INCLUDE_ASM(const s32, "main", func_80073C48);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80073CB0);
|
INCLUDE_ASM(const s32, "main", func_80073CB0);
|
||||||
|
|
||||||
extern s32 D_800A81F4;
|
|
||||||
extern s32 D_800A81F8;
|
|
||||||
extern s32 D_800C4BCC;
|
|
||||||
|
|
||||||
/* 42D8 80073ED8 */
|
/* 42D8 80073ED8 */
|
||||||
void func_80073ED8(void) {
|
void func_80073ED8(void) {
|
||||||
if (D_800A81F4 == 0) {
|
if (D_800A81F4 == 0) {
|
||||||
|
|
@ -565,7 +476,6 @@ void func_80073ED8(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80073F58);
|
INCLUDE_ASM(const s32, "main", func_80073F58);
|
||||||
|
|
||||||
/* 43D4 80073FD4 */
|
/* 43D4 80073FD4 */
|
||||||
|
|
@ -586,7 +496,6 @@ void __initialize_song_mem(void) {
|
||||||
osSetIntMask(mask);
|
osSetIntMask(mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80074050);
|
INCLUDE_ASM(const s32, "main", func_80074050);
|
||||||
|
|
||||||
INCLUDE_ASM(const s32, "main", func_80074080);
|
INCLUDE_ASM(const s32, "main", func_80074080);
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,12 @@ extern u8 D_80187020;
|
||||||
extern u8 __compared_osTvType;
|
extern u8 __compared_osTvType;
|
||||||
|
|
||||||
/* 42C30 8016CD30 */
|
/* 42C30 8016CD30 */
|
||||||
u8 __get_compared_osTvType(void) {
|
u8 __get_compared_osTvType() {
|
||||||
return D_80187020;
|
return D_80187020;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 42C3C 8016CD3C */
|
/* 42C3C 8016CD3C */
|
||||||
u8 __reset_compared_osTvType(void) {
|
u8 __reset_compared_osTvType() {
|
||||||
u8 temp_v0;
|
u8 temp_v0;
|
||||||
|
|
||||||
temp_v0 = __compared_osTvType;
|
temp_v0 = __compared_osTvType;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue