mirror of https://github.com/zeldaret/mm.git
Add tons of function names. Datatypes TODO
This commit is contained in:
parent
70b60dfce5
commit
4c11f2f364
16893
functions.py
16893
functions.py
File diff suppressed because it is too large
Load Diff
33054
include/functions.h
33054
include/functions.h
File diff suppressed because it is too large
Load Diff
|
@ -3437,9 +3437,9 @@ extern f32 D_801D1508; // D_801D1508
|
||||||
//extern UNK_TYPE D_801D150C;
|
//extern UNK_TYPE D_801D150C;
|
||||||
//extern UNK_TYPE D_801D1510;
|
//extern UNK_TYPE D_801D1510;
|
||||||
//extern UNK_TYPE D_801D1514;
|
//extern UNK_TYPE D_801D1514;
|
||||||
extern u32 D_801D1520;
|
extern u32 D_801D1520; // D_801D1520
|
||||||
extern u32 D_801D1524;
|
extern u32 D_801D1524; // D_801D1524
|
||||||
extern u32 D_801D1528;
|
//extern UNK_TYPE D_801D1528;
|
||||||
//extern UNK_TYPE D_801D1530;
|
//extern UNK_TYPE D_801D1530;
|
||||||
//extern UNK_TYPE D_801D1534;
|
//extern UNK_TYPE D_801D1534;
|
||||||
//extern UNK_TYPE D_801D1538;
|
//extern UNK_TYPE D_801D1538;
|
||||||
|
@ -4440,10 +4440,10 @@ extern f32 D_801DDA84; // D_801DDA84
|
||||||
//extern UNK_TYPE D_801DFD40;
|
//extern UNK_TYPE D_801DFD40;
|
||||||
//extern UNK_TYPE D_801DFD50;
|
//extern UNK_TYPE D_801DFD50;
|
||||||
//extern UNK_TYPE D_801DFD5C;
|
//extern UNK_TYPE D_801DFD5C;
|
||||||
extern UNK_TYPE D_801DFD70;
|
//extern UNK_TYPE D_801DFD70;
|
||||||
extern UNK_TYPE D_801DFD78;
|
//extern UNK_TYPE D_801DFD78;
|
||||||
extern UNK_TYPE D_801DFD80;
|
//extern UNK_TYPE D_801DFD80;
|
||||||
extern UNK_TYPE D_801DFD88;
|
//extern UNK_TYPE D_801DFD88;
|
||||||
//extern UNK_TYPE D_801DFD90;
|
//extern UNK_TYPE D_801DFD90;
|
||||||
//extern UNK_TYPE D_801DFD9C;
|
//extern UNK_TYPE D_801DFD9C;
|
||||||
//extern UNK_TYPE D_801DFDA8;
|
//extern UNK_TYPE D_801DFDA8;
|
||||||
|
@ -5041,7 +5041,7 @@ extern u8 D_801EF677; // D_801EF677
|
||||||
//extern UNK_TYPE D_801F3F3A;
|
//extern UNK_TYPE D_801F3F3A;
|
||||||
//extern UNK_TYPE D_801F3F3B;
|
//extern UNK_TYPE D_801F3F3B;
|
||||||
//extern UNK_TYPE D_801F3F3C;
|
//extern UNK_TYPE D_801F3F3C;
|
||||||
extern z_StaticContext* staticContext;
|
extern z_StaticContext* staticContext; // D_801F3F60
|
||||||
//extern UNK_TYPE D_801F3F70;
|
//extern UNK_TYPE D_801F3F70;
|
||||||
//extern UNK_TYPE D_801F3F80;
|
//extern UNK_TYPE D_801F3F80;
|
||||||
//extern UNK_TYPE D_801F3F83;
|
//extern UNK_TYPE D_801F3F83;
|
||||||
|
@ -5204,8 +5204,8 @@ extern z_StaticContext* staticContext;
|
||||||
//extern UNK_TYPE D_801F80F8;
|
//extern UNK_TYPE D_801F80F8;
|
||||||
//extern UNK_TYPE D_801F8150;
|
//extern UNK_TYPE D_801F8150;
|
||||||
//extern UNK_TYPE D_801F8154;
|
//extern UNK_TYPE D_801F8154;
|
||||||
extern OSMesgQueue D_801F8160;
|
extern OSMesgQueue D_801F8160; // D_801F8160
|
||||||
extern OSMesg D_801F8178[];
|
extern OSMesg D_801F8178[]; // D_801F8178
|
||||||
extern UNK_TYPE D_801F8180[]; // D_801F8180
|
extern UNK_TYPE D_801F8180[]; // D_801F8180
|
||||||
//extern UNK_TYPE D_801F8188;
|
//extern UNK_TYPE D_801F8188;
|
||||||
//extern UNK_TYPE D_801F818C;
|
//extern UNK_TYPE D_801F818C;
|
||||||
|
@ -5217,21 +5217,21 @@ extern UNK_TYPE D_801F8180[]; // D_801F8180
|
||||||
//extern UNK_TYPE D_801F81A8;
|
//extern UNK_TYPE D_801F81A8;
|
||||||
//extern UNK_TYPE D_801F81B8;
|
//extern UNK_TYPE D_801F81B8;
|
||||||
//extern UNK_TYPE D_801F81BC;
|
//extern UNK_TYPE D_801F81BC;
|
||||||
extern UNK_TYPE D_801F81C0;
|
//extern UNK_TYPE D_801F81C0;
|
||||||
//extern UNK_TYPE D_801F82D8;
|
//extern UNK_TYPE D_801F82D8;
|
||||||
extern UNK_TYPE D_801F84F8;
|
//extern UNK_TYPE D_801F84F8;
|
||||||
extern OSMesgQueue D_801F8500;
|
//extern UNK_TYPE D_801F8500;
|
||||||
extern OSMesg D_801F8518[];
|
//extern UNK_TYPE D_801F8518;
|
||||||
extern OSThread D_801F8608;
|
//extern UNK_TYPE D_801F8608;
|
||||||
extern UNK_TYPE D_801F87B8;
|
//extern UNK_TYPE D_801F87B8;
|
||||||
extern UNK_TYPE D_801F9FB8;
|
//extern UNK_TYPE D_801F9FB8;
|
||||||
extern UNK_TYPE D_801FA5B8;
|
//extern UNK_TYPE D_801FA5B8;
|
||||||
extern UNK_TYPE D_801FADB8;
|
//extern UNK_TYPE D_801FADB8;
|
||||||
extern s80085320 D_801FB2B8;
|
//extern UNK_TYPE D_801FB2B8;
|
||||||
extern s80085320 D_801FB2D8;
|
//extern UNK_TYPE D_801FB2D8;
|
||||||
extern s80085320 D_801FB2F8;
|
//extern UNK_TYPE D_801FB2F8;
|
||||||
extern s80085320 D_801FB318;
|
//extern UNK_TYPE D_801FB318;
|
||||||
extern UNK_TYPE D_801FB338;
|
//extern UNK_TYPE D_801FB338;
|
||||||
//extern UNK_TYPE D_801FBAA0;
|
//extern UNK_TYPE D_801FBAA0;
|
||||||
//extern UNK_TYPE D_801FBAB0;
|
//extern UNK_TYPE D_801FBAB0;
|
||||||
//extern UNK_TYPE D_801FBAB4;
|
//extern UNK_TYPE D_801FBAB4;
|
||||||
|
@ -5615,8 +5615,8 @@ extern UNK_TYPE D_80208EA0; // D_80208EA0
|
||||||
//extern UNK_TYPE D_80209AA0;
|
//extern UNK_TYPE D_80209AA0;
|
||||||
//extern UNK_TYPE D_80209EA0;
|
//extern UNK_TYPE D_80209EA0;
|
||||||
//extern UNK_TYPE D_8024A4C0;
|
//extern UNK_TYPE D_8024A4C0;
|
||||||
extern UNK_TYPE D_803824C0;
|
extern UNK_TYPE D_803824C0; // D_803824C0
|
||||||
extern UNK_TYPE D_80780000;
|
extern UNK_TYPE D_80780000; // D_80780000
|
||||||
//extern UNK_TYPE D_80784600;
|
//extern UNK_TYPE D_80784600;
|
||||||
//extern UNK_TYPE D_807DA800;
|
//extern UNK_TYPE D_807DA800;
|
||||||
//extern UNK_TYPE D_80800860;
|
//extern UNK_TYPE D_80800860;
|
||||||
|
@ -15569,10 +15569,6 @@ extern UNK_PTR D_800980D0_;
|
||||||
extern UNK_TYPE D_80099AD0_;
|
extern UNK_TYPE D_80099AD0_;
|
||||||
extern UNK_TYPE D_8009A670_;
|
extern UNK_TYPE D_8009A670_;
|
||||||
extern UNK_TYPE D_8009B140_;
|
extern UNK_TYPE D_8009B140_;
|
||||||
extern UNK_TYPE D_801FA5B8_;
|
|
||||||
extern UNK_TYPE D_801FADB8_;
|
|
||||||
extern UNK_TYPE D_801FB2B8_;
|
|
||||||
extern UNK_TYPE D_801F9FB8_;
|
|
||||||
extern (*D_801BE960[12])(u8*, z_ActorCompInitEntry*);
|
extern (*D_801BE960[12])(u8*, z_ActorCompInitEntry*);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
void func_80081820(void) {}
|
void nop_80081820(void) {}
|
||||||
|
|
||||||
void func_80081828(void) {}
|
void nop_80081828(void) {}
|
||||||
|
|
||||||
void func_80081830(void) {
|
void func_80081830(void) {
|
||||||
func_8008481C(80, 200, &D_80098280, (UNK_PTR)(*(u32*)0xA4040010));
|
func_8008481C(80, 200, &D_80098280, (UNK_PTR)(*(u32*)0xA4040010));
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
UNK_RET func_80080060(void) {
|
UNK_RET start(void) {
|
||||||
func_80085320(&D_80099500, &D_80099AF0, &D_80099EF0, 0, -1, &D_80098190);
|
thread_info_init(&D_80099500, &D_80099AF0, &D_80099EF0, 0, -1, &D_80098190);
|
||||||
osMemSize = func_8008D350();
|
osMemSize = func_8008D350();
|
||||||
func_800818F4();
|
func_800818F4();
|
||||||
osInitialize();
|
osInitialize();
|
||||||
osUnmapTLBAll();
|
osUnmapTLBAll();
|
||||||
D_80096B40 = func_80092920();
|
D_80096B40 = func_80092920();
|
||||||
func_80085320(&D_80099AD0, &D_800996D0, &D_80099AD0_, 0, 256, &D_80098198);
|
thread_info_init(&D_80099AD0, &D_800996D0, &D_80099AD0_, 0, 256, &D_80098198);
|
||||||
osCreateThread(&D_80099520, 1, (void(*)(void*))func_80080514, 0, &D_80099AD0, 12);
|
osCreateThread(&D_80099520, 1, (void(*)(void*))Idle_ThreadEntry, 0, &D_80099AD0, 12);
|
||||||
osStartThread(&D_80099520);
|
osStartThread(&D_80099520);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,27 +7,27 @@ UNK_RET func_800805E0(UNK_TYPE a0) {
|
||||||
if (a0 != 0) {
|
if (a0 != 0) {
|
||||||
switch (osTvType) {
|
switch (osTvType) {
|
||||||
case 2:
|
case 2:
|
||||||
func_8008B650(&D_80098010);
|
osViSetMode(&D_80098010);
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
func_8008B650(&D_80097590);
|
osViSetMode(&D_80097590);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
default:
|
default:
|
||||||
func_8008B650(&D_80097FC0);
|
osViSetMode(&D_80097FC0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO v0 is used here instead of a0. Is this a 7.1 optimization?
|
// TODO v0 is used here instead of a0. Is this a 7.1 optimization?
|
||||||
if (D_80096B2C != 0) {
|
if (D_80096B2C != 0) {
|
||||||
func_80092100(D_80096B2C);
|
osViSetSpecialFeatures(D_80096B2C);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (D_80096B34 != 1) {
|
if (D_80096B34 != 1) {
|
||||||
osViSetYScale(1);
|
osViSetYScale(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
func_8008B650(&D_8009B240);
|
osViSetMode(&D_8009B240);
|
||||||
|
|
||||||
if (D_80096B28 != 0) {
|
if (D_80096B28 != 0) {
|
||||||
func_80087E00(D_80096B28);
|
func_80087E00(D_80096B28);
|
||||||
|
@ -35,7 +35,7 @@ UNK_RET func_800805E0(UNK_TYPE a0) {
|
||||||
|
|
||||||
// TODO v0 is used here instead of a0. Is this a 7.1 optimization?
|
// TODO v0 is used here instead of a0. Is this a 7.1 optimization?
|
||||||
if (D_80096B2C != 0) {
|
if (D_80096B2C != 0) {
|
||||||
func_80092100(D_80096B2C);
|
osViSetSpecialFeatures(D_80096B2C);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (D_80096B30 != 1) {
|
if (D_80096B30 != 1) {
|
||||||
|
@ -74,24 +74,24 @@ glabel func_800805E0
|
||||||
/* 000368 0x80080620 1441000A */ bne $v0, $at, .L_8008064C
|
/* 000368 0x80080620 1441000A */ bne $v0, $at, .L_8008064C
|
||||||
/* 000369 0x80080624 00000000 */ nop
|
/* 000369 0x80080624 00000000 */ nop
|
||||||
/* 000370 0x80080628 3C04800A */ lui $a0, %hi(D_80098010)
|
/* 000370 0x80080628 3C04800A */ lui $a0, %hi(D_80098010)
|
||||||
/* 000371 0x8008062C 0C022D94 */ jal func_8008B650
|
/* 000371 0x8008062C 0C022D94 */ jal osViSetMode
|
||||||
/* 000372 0x80080630 24848010 */ addiu $a0, %lo(D_80098010)
|
/* 000372 0x80080630 24848010 */ addiu $a0, %lo(D_80098010)
|
||||||
/* 000373 0x80080634 10000007 */ b .L_80080654
|
/* 000373 0x80080634 10000007 */ b .L_80080654
|
||||||
/* 000374 0x80080638 00000000 */ nop
|
/* 000374 0x80080638 00000000 */ nop
|
||||||
.L_8008063C:
|
.L_8008063C:
|
||||||
/* 000375 0x8008063C 0C022D94 */ jal func_8008B650
|
/* 000375 0x8008063C 0C022D94 */ jal osViSetMode
|
||||||
/* 000376 0x80080640 24847590 */ addiu $a0, $a0, 30096
|
/* 000376 0x80080640 24847590 */ addiu $a0, $a0, 30096
|
||||||
/* 000377 0x80080644 10000003 */ b .L_80080654
|
/* 000377 0x80080644 10000003 */ b .L_80080654
|
||||||
/* 000378 0x80080648 00000000 */ nop
|
/* 000378 0x80080648 00000000 */ nop
|
||||||
.L_8008064C:
|
.L_8008064C:
|
||||||
/* 000379 0x8008064C 0C022D94 */ jal func_8008B650
|
/* 000379 0x8008064C 0C022D94 */ jal osViSetMode
|
||||||
/* 000380 0x80080650 24847FC0 */ addiu $a0, $a0, 32704
|
/* 000380 0x80080650 24847FC0 */ addiu $a0, $a0, 32704
|
||||||
.L_80080654:
|
.L_80080654:
|
||||||
/* 000381 0x80080654 3C048009 */ lui $a0, %hi(D_80096B2C)
|
/* 000381 0x80080654 3C048009 */ lui $a0, %hi(D_80096B2C)
|
||||||
/* 000382 0x80080658 8C846B2C */ lw $a0, %lo(D_80096B2C)($a0)
|
/* 000382 0x80080658 8C846B2C */ lw $a0, %lo(D_80096B2C)($a0)
|
||||||
/* 000383 0x8008065C 50800004 */ beqzl $a0, .L_80080670
|
/* 000383 0x8008065C 50800004 */ beqzl $a0, .L_80080670
|
||||||
/* 000384 0x80080660 3C013F80 */ lui $at, 0x3F80
|
/* 000384 0x80080660 3C013F80 */ lui $at, 0x3F80
|
||||||
/* 000385 0x80080664 0C024840 */ jal func_80092100
|
/* 000385 0x80080664 0C024840 */ jal osViSetSpecialFeatures
|
||||||
/* 000386 0x80080668 00000000 */ nop
|
/* 000386 0x80080668 00000000 */ nop
|
||||||
/* 000387 0x8008066C 3C013F80 */ lui $at, 0x3F80
|
/* 000387 0x8008066C 3C013F80 */ lui $at, 0x3F80
|
||||||
.L_80080670:
|
.L_80080670:
|
||||||
|
@ -107,7 +107,7 @@ glabel func_800805E0
|
||||||
/* 000397 0x80080694 10000025 */ b .L_8008072C
|
/* 000397 0x80080694 10000025 */ b .L_8008072C
|
||||||
/* 000398 0x80080698 8FAF0018 */ lw $t7, 24($sp)
|
/* 000398 0x80080698 8FAF0018 */ lw $t7, 24($sp)
|
||||||
.L_8008069C:
|
.L_8008069C:
|
||||||
/* 000399 0x8008069C 0C022D94 */ jal func_8008B650
|
/* 000399 0x8008069C 0C022D94 */ jal osViSetMode
|
||||||
/* 000400 0x800806A0 2484B240 */ addiu $a0, $a0, -19904
|
/* 000400 0x800806A0 2484B240 */ addiu $a0, $a0, -19904
|
||||||
/* 000401 0x800806A4 3C048009 */ lui $a0, %hi(D_80096B28)
|
/* 000401 0x800806A4 3C048009 */ lui $a0, %hi(D_80096B28)
|
||||||
/* 000402 0x800806A8 90846B28 */ lbu $a0, %lo(D_80096B28)($a0)
|
/* 000402 0x800806A8 90846B28 */ lbu $a0, %lo(D_80096B28)($a0)
|
||||||
|
@ -120,7 +120,7 @@ glabel func_800805E0
|
||||||
/* 000408 0x800806C0 8C846B2C */ lw $a0, %lo(D_80096B2C)($a0)
|
/* 000408 0x800806C0 8C846B2C */ lw $a0, %lo(D_80096B2C)($a0)
|
||||||
/* 000409 0x800806C4 50800004 */ beqzl $a0, .L_800806D8
|
/* 000409 0x800806C4 50800004 */ beqzl $a0, .L_800806D8
|
||||||
/* 000410 0x800806C8 3C013F80 */ lui $at, 0x3F80
|
/* 000410 0x800806C8 3C013F80 */ lui $at, 0x3F80
|
||||||
/* 000411 0x800806CC 0C024840 */ jal func_80092100
|
/* 000411 0x800806CC 0C024840 */ jal osViSetSpecialFeatures
|
||||||
/* 000412 0x800806D0 00000000 */ nop
|
/* 000412 0x800806D0 00000000 */ nop
|
||||||
/* 000413 0x800806D4 3C013F80 */ lui $at, 0x3F80
|
/* 000413 0x800806D4 3C013F80 */ lui $at, 0x3F80
|
||||||
.L_800806D8:
|
.L_800806D8:
|
||||||
|
@ -160,8 +160,8 @@ glabel func_800805E0
|
||||||
|
|
||||||
UNK_RET func_80080748(void) {
|
UNK_RET func_80080748(void) {
|
||||||
if (D_80096B24 != 0) {
|
if (D_80096B24 != 0) {
|
||||||
func_8008AE70(1);
|
osViRepeatLine(1);
|
||||||
} else {
|
} else {
|
||||||
func_8008AE70(0);
|
osViRepeatLine(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
s32 func_80080790(void* a0, void* a1, s32 a2) {
|
s32 Dmamgr_DoDmaTransfer(void* a0, void* a1, s32 a2) {
|
||||||
u32 spPad;
|
u32 spPad;
|
||||||
OSIoMesg sp60;
|
OSIoMesg sp60;
|
||||||
OSMesgQueue sp48;
|
OSMesgQueue sp48;
|
||||||
|
@ -44,11 +44,11 @@ END:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_800808D4(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction) {
|
void Dmamgr_osEPiStartDmaWrapper(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction) {
|
||||||
osEPiStartDma(pihandle, mb, direction);
|
osEPiStartDma(pihandle, mb, direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
DmadataEntry* func_800808F4(u32 a0) {
|
DmadataEntry* Dmamgr_FindDmaEntry(u32 a0) {
|
||||||
DmadataEntry* curr;
|
DmadataEntry* curr;
|
||||||
|
|
||||||
for (curr = dmadata; curr->vromEnd != 0; curr++) {
|
for (curr = dmadata; curr->vromEnd != 0; curr++) {
|
||||||
|
@ -61,8 +61,8 @@ DmadataEntry* func_800808F4(u32 a0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 func_80080950(u32 a0) {
|
s32 Dmamgr_TranslateVromToRom(u32 a0) {
|
||||||
DmadataEntry* v0 = func_800808F4(a0);
|
DmadataEntry* v0 = Dmamgr_FindDmaEntry(a0);
|
||||||
|
|
||||||
if (v0 != NULL) {
|
if (v0 != NULL) {
|
||||||
if (v0->romEnd == 0) {
|
if (v0->romEnd == 0) {
|
||||||
|
@ -79,8 +79,8 @@ s32 func_80080950(u32 a0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 func_800809BC(u32 a0) {
|
s32 Dmamgr_FindDmaIndex(u32 a0) {
|
||||||
DmadataEntry* v0 = func_800808F4(a0);
|
DmadataEntry* v0 = Dmamgr_FindDmaEntry(a0);
|
||||||
|
|
||||||
if (v0 != NULL) {
|
if (v0 != NULL) {
|
||||||
return v0 - dmadata;
|
return v0 - dmadata;
|
||||||
|
@ -95,7 +95,7 @@ UNK_TYPE* func_800809F4(u32 a0) {
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
void func_80080A08(s80080A08* a0) {
|
void Dmamgr_HandleRequest(s80080A08* a0) {
|
||||||
UNK_TYPE sp34;
|
UNK_TYPE sp34;
|
||||||
UNK_TYPE sp30;
|
UNK_TYPE sp30;
|
||||||
UNK_TYPE sp2C;
|
UNK_TYPE sp2C;
|
||||||
|
@ -109,14 +109,14 @@ void func_80080A08(s80080A08* a0) {
|
||||||
sp30 = (UNK_TYPE)a0->unk4;
|
sp30 = (UNK_TYPE)a0->unk4;
|
||||||
sp2C = a0->unk8;
|
sp2C = a0->unk8;
|
||||||
|
|
||||||
sp1C = func_800809BC(sp34);
|
sp1C = Dmamgr_FindDmaIndex(sp34);
|
||||||
|
|
||||||
if ((sp1C >= 0) && (sp1C < D_8009B2BC)) {
|
if ((sp1C >= 0) && (sp1C < D_8009B2BC)) {
|
||||||
if (dmadata[sp1C].romEnd == 0) {
|
if (dmadata[sp1C].romEnd == 0) {
|
||||||
if (dmadata[sp1C].vromEnd < (sp2C + sp34)) {
|
if (dmadata[sp1C].vromEnd < (sp2C + sp34)) {
|
||||||
func_80083E4C(&D_800981C4, 499);
|
func_80083E4C(&D_800981C4, 499);
|
||||||
}
|
}
|
||||||
func_80080790((u8*)((dmadata[sp1C].romStart + sp34) - dmadata[sp1C].vromStart), (u8*)sp30, sp2C);
|
Dmamgr_DoDmaTransfer((u8*)((dmadata[sp1C].romStart + sp34) - dmadata[sp1C].vromStart), (u8*)sp30, sp2C);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ void func_80080A08(s80080A08* a0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
osSetThreadPri(NULL, 10);
|
osSetThreadPri(NULL, 10);
|
||||||
func_80081178(sp28, sp30, sp24);
|
Yaz0_LoadAndDecompressFile(sp28, sp30, sp24);
|
||||||
osSetThreadPri(NULL, 17);
|
osSetThreadPri(NULL, 17);
|
||||||
} else {
|
} else {
|
||||||
func_80083E4C(&D_800981F4, 558);
|
func_80083E4C(&D_800981F4, 558);
|
||||||
|
@ -143,7 +143,7 @@ void func_80080A08(s80080A08* a0) {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel func_80080A08
|
glabel Dmamgr_HandleRequest
|
||||||
/* 000618 0x80080A08 27BDFFC8 */ addiu $sp, $sp, -56
|
/* 000618 0x80080A08 27BDFFC8 */ addiu $sp, $sp, -56
|
||||||
/* 000619 0x80080A0C AFBF0014 */ sw $ra, 20($sp)
|
/* 000619 0x80080A0C AFBF0014 */ sw $ra, 20($sp)
|
||||||
/* 000620 0x80080A10 00802825 */ move $a1, $a0
|
/* 000620 0x80080A10 00802825 */ move $a1, $a0
|
||||||
|
@ -152,7 +152,7 @@ glabel func_80080A08
|
||||||
/* 000623 0x80080A1C AFAE0030 */ sw $t6, 48($sp)
|
/* 000623 0x80080A1C AFAE0030 */ sw $t6, 48($sp)
|
||||||
/* 000624 0x80080A20 8CAF0008 */ lw $t7, 8($a1)
|
/* 000624 0x80080A20 8CAF0008 */ lw $t7, 8($a1)
|
||||||
/* 000625 0x80080A24 AFA40034 */ sw $a0, 52($sp)
|
/* 000625 0x80080A24 AFA40034 */ sw $a0, 52($sp)
|
||||||
/* 000626 0x80080A28 0C02026F */ jal func_800809BC
|
/* 000626 0x80080A28 0C02026F */ jal Dmamgr_FindDmaIndex
|
||||||
/* 000627 0x80080A2C AFAF002C */ sw $t7, 44($sp)
|
/* 000627 0x80080A2C AFAF002C */ sw $t7, 44($sp)
|
||||||
/* 000628 0x80080A30 8FA70034 */ lw $a3, 52($sp)
|
/* 000628 0x80080A30 8FA70034 */ lw $a3, 52($sp)
|
||||||
/* 000629 0x80080A34 0440004B */ bltz $v0, .L_80080B64
|
/* 000629 0x80080A34 0440004B */ bltz $v0, .L_80080B64
|
||||||
|
@ -191,7 +191,7 @@ glabel func_80080A08
|
||||||
/* 000661 0x80080AB4 8FA50030 */ lw $a1, 48($sp)
|
/* 000661 0x80080AB4 8FA50030 */ lw $a1, 48($sp)
|
||||||
/* 000662 0x80080AB8 01E7C021 */ addu $t8, $t7, $a3
|
/* 000662 0x80080AB8 01E7C021 */ addu $t8, $t7, $a3
|
||||||
/* 000663 0x80080ABC 8FA6002C */ lw $a2, 44($sp)
|
/* 000663 0x80080ABC 8FA6002C */ lw $a2, 44($sp)
|
||||||
/* 000664 0x80080AC0 0C0201E4 */ jal func_80080790
|
/* 000664 0x80080AC0 0C0201E4 */ jal Dmamgr_DoDmaTransfer
|
||||||
/* 000665 0x80080AC4 03192023 */ subu $a0, $t8, $t9
|
/* 000665 0x80080AC4 03192023 */ subu $a0, $t8, $t9
|
||||||
/* 000666 0x80080AC8 1000002B */ b .L_80080B78
|
/* 000666 0x80080AC8 1000002B */ b .L_80080B78
|
||||||
/* 000667 0x80080ACC 8FBF0014 */ lw $ra, 20($sp)
|
/* 000667 0x80080ACC 8FBF0014 */ lw $ra, 20($sp)
|
||||||
|
@ -228,7 +228,7 @@ glabel func_80080A08
|
||||||
/* 000695 0x80080B3C 2405000A */ li $a1, 10
|
/* 000695 0x80080B3C 2405000A */ li $a1, 10
|
||||||
/* 000696 0x80080B40 8FA40028 */ lw $a0, 40($sp)
|
/* 000696 0x80080B40 8FA40028 */ lw $a0, 40($sp)
|
||||||
/* 000697 0x80080B44 8FA50030 */ lw $a1, 48($sp)
|
/* 000697 0x80080B44 8FA50030 */ lw $a1, 48($sp)
|
||||||
/* 000698 0x80080B48 0C02045E */ jal func_80081178
|
/* 000698 0x80080B48 0C02045E */ jal Yaz0_LoadAndDecompressFile
|
||||||
/* 000699 0x80080B4C 8FA60024 */ lw $a2, 36($sp)
|
/* 000699 0x80080B4C 8FA60024 */ lw $a2, 36($sp)
|
||||||
/* 000700 0x80080B50 00002025 */ move $a0, $zero
|
/* 000700 0x80080B50 00002025 */ move $a0, $zero
|
||||||
/* 000701 0x80080B54 0C023F00 */ jal osSetThreadPri
|
/* 000701 0x80080B54 0C023F00 */ jal osSetThreadPri
|
||||||
|
@ -251,7 +251,7 @@ glabel func_80080A08
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
void func_80080B84(void* a0) {
|
void Dmamgr_ThreadEntry(void* a0) {
|
||||||
s80080A08* sp34;
|
s80080A08* sp34;
|
||||||
UNK_TYPE pad;
|
UNK_TYPE pad;
|
||||||
s80080A08* s0;
|
s80080A08* s0;
|
||||||
|
@ -260,7 +260,7 @@ void func_80080B84(void* a0) {
|
||||||
osRecvMesg(&D_8009B2C0, (OSMesg)&sp34, 1);
|
osRecvMesg(&D_8009B2C0, (OSMesg)&sp34, 1);
|
||||||
if (sp34 == NULL) return;
|
if (sp34 == NULL) return;
|
||||||
s0 = sp34;
|
s0 = sp34;
|
||||||
func_80080A08(s0);
|
Dmamgr_HandleRequest(s0);
|
||||||
// TODO a0 isn't being used for this comparison
|
// TODO a0 isn't being used for this comparison
|
||||||
if (s0->unk18 == NULL) continue;
|
if (s0->unk18 == NULL) continue;
|
||||||
osSendMesg(&D_8009B2C0, (OSMesg)s0->unk1C, 0);
|
osSendMesg(&D_8009B2C0, (OSMesg)s0->unk1C, 0);
|
||||||
|
@ -270,7 +270,7 @@ void func_80080B84(void* a0) {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel func_80080B84
|
glabel Dmamgr_ThreadEntry
|
||||||
/* 000713 0x80080B84 27BDFFC8 */ addiu $sp, $sp, -56
|
/* 000713 0x80080B84 27BDFFC8 */ addiu $sp, $sp, -56
|
||||||
/* 000714 0x80080B88 AFBF0024 */ sw $ra, 36($sp)
|
/* 000714 0x80080B88 AFBF0024 */ sw $ra, 36($sp)
|
||||||
/* 000715 0x80080B8C AFB20020 */ sw $s2, 32($sp)
|
/* 000715 0x80080B8C AFB20020 */ sw $s2, 32($sp)
|
||||||
|
@ -288,7 +288,7 @@ glabel func_80080B84
|
||||||
/* 000726 0x80080BB8 8FA40034 */ lw $a0, 52($sp)
|
/* 000726 0x80080BB8 8FA40034 */ lw $a0, 52($sp)
|
||||||
/* 000727 0x80080BBC 5080000C */ beqzl $a0, .L_80080BF0
|
/* 000727 0x80080BBC 5080000C */ beqzl $a0, .L_80080BF0
|
||||||
/* 000728 0x80080BC0 8FBF0024 */ lw $ra, 36($sp)
|
/* 000728 0x80080BC0 8FBF0024 */ lw $ra, 36($sp)
|
||||||
/* 000729 0x80080BC4 0C020282 */ jal func_80080A08
|
/* 000729 0x80080BC4 0C020282 */ jal Dmamgr_HandleRequest
|
||||||
/* 000730 0x80080BC8 00808025 */ move $s0, $a0
|
/* 000730 0x80080BC8 00808025 */ move $s0, $a0
|
||||||
/* 000731 0x80080BCC 8E040018 */ lw $a0, 24($s0)
|
/* 000731 0x80080BCC 8E040018 */ lw $a0, 24($s0)
|
||||||
/* 000732 0x80080BD0 5080FFF6 */ beqzl $a0, .L_80080BAC
|
/* 000732 0x80080BD0 5080FFF6 */ beqzl $a0, .L_80080BAC
|
||||||
|
@ -311,7 +311,7 @@ glabel func_80080B84
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
s32 func_80080C04(s80080A08* a0, UNK_FUN_PTR(a1), UNK_PTR a2, UNK_TYPE a3, UNK_TYPE sp30, OSMesgQueue* sp34, UNK_TYPE sp38) {
|
s32 Dmamgr_SendRequest(s80080A08* a0, UNK_FUN_PTR(a1), UNK_PTR a2, UNK_TYPE a3, UNK_TYPE sp30, OSMesgQueue* sp34, UNK_TYPE sp38) {
|
||||||
// TODO this isn't correct, it uses a lui, addiu to get the address of D_80096B60, then loads it,
|
// TODO this isn't correct, it uses a lui, addiu to get the address of D_80096B60, then loads it,
|
||||||
// meaning that this is likely just "if (*D_80096B60 >= 2)". However, I can not get it to not
|
// meaning that this is likely just "if (*D_80096B60 >= 2)". However, I can not get it to not
|
||||||
// produce the usual lui, lw combo to load from an address :/
|
// produce the usual lui, lw combo to load from an address :/
|
||||||
|
@ -334,7 +334,7 @@ s32 func_80080C04(s80080A08* a0, UNK_FUN_PTR(a1), UNK_PTR a2, UNK_TYPE a3, UNK_T
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel func_80080C04
|
glabel Dmamgr_SendRequest
|
||||||
/* 000745 0x80080C04 27BDFFE0 */ addiu $sp, $sp, -32
|
/* 000745 0x80080C04 27BDFFE0 */ addiu $sp, $sp, -32
|
||||||
/* 000746 0x80080C08 AFB00018 */ sw $s0, 24($sp)
|
/* 000746 0x80080C08 AFB00018 */ sw $s0, 24($sp)
|
||||||
/* 000747 0x80080C0C 00808025 */ move $s0, $a0
|
/* 000747 0x80080C0C 00808025 */ move $s0, $a0
|
||||||
|
@ -376,7 +376,7 @@ glabel func_80080C04
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
s32 func_80080C90(UNK_TYPE a0, UNK_PTR a1, UNK_TYPE a2) {
|
s32 Dmamgr_SendRequestAndWait(UNK_TYPE a0, UNK_PTR a1, UNK_TYPE a2) {
|
||||||
s80080A08 sp48;
|
s80080A08 sp48;
|
||||||
OSMesgQueue sp30;
|
OSMesgQueue sp30;
|
||||||
OSMesg sp2C;
|
OSMesg sp2C;
|
||||||
|
@ -384,7 +384,7 @@ s32 func_80080C90(UNK_TYPE a0, UNK_PTR a1, UNK_TYPE a2) {
|
||||||
|
|
||||||
osCreateMesgQueue(&sp30, &sp2C, 1);
|
osCreateMesgQueue(&sp30, &sp2C, 1);
|
||||||
|
|
||||||
ret = func_80080C04(&sp48, (UNK_FUN_ARG)a0, a1, a2, 0, &sp30, 0);
|
ret = Dmamgr_SendRequest(&sp48, (UNK_FUN_ARG)a0, a1, a2, 0, &sp30, 0);
|
||||||
|
|
||||||
if (ret == -1) {
|
if (ret == -1) {
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -397,11 +397,11 @@ s32 func_80080C90(UNK_TYPE a0, UNK_PTR a1, UNK_TYPE a2) {
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
void func_80080D0C() {
|
void Dmamgr_Start() {
|
||||||
DmadataEntry* v0;
|
DmadataEntry* v0;
|
||||||
u32 v1;
|
u32 v1;
|
||||||
// TODO register load ordering is wrong
|
// TODO register load ordering is wrong
|
||||||
func_80080790(&dmadataRomStart, dmadata, (u8*)&dmadataRomEnd - (u8*)&dmadataRomStart);
|
Dmamgr_DoDmaTransfer(&dmadataRomStart, dmadata, (u8*)&dmadataRomEnd - (u8*)&dmadataRomStart);
|
||||||
|
|
||||||
for (v0 = dmadata, v1 = 0; v0->vromEnd != 0; v0++, v1++);
|
for (v0 = dmadata, v1 = 0; v0->vromEnd != 0; v0++, v1++);
|
||||||
|
|
||||||
|
@ -409,9 +409,9 @@ void func_80080D0C() {
|
||||||
|
|
||||||
osCreateMesgQueue(&D_8009B2C0, (OSMesg)&D_8009B2D8, 32);
|
osCreateMesgQueue(&D_8009B2C0, (OSMesg)&D_8009B2D8, 32);
|
||||||
|
|
||||||
func_80085320(&D_8009B2A0, &D_8009B508, &D_8009BA08, 0, 256, &D_80098204);
|
thread_info_init(&D_8009B2A0, &D_8009B508, &D_8009BA08, 0, 256, &D_80098204);
|
||||||
|
|
||||||
osCreateThread(&D_8009B358, 18, func_80080B84, NULL, &D_8009BA08, 17);
|
osCreateThread(&D_8009B358, 18, Dmamgr_ThreadEntry, NULL, &D_8009BA08, 17);
|
||||||
|
|
||||||
osStartThread(&D_8009B358);
|
osStartThread(&D_8009B358);
|
||||||
}
|
}
|
||||||
|
@ -419,7 +419,7 @@ void func_80080D0C() {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel func_80080D0C
|
glabel Dmamgr_Start
|
||||||
/* 000811 0x80080D0C 27BDFFE0 */ addiu $sp, $sp, -32
|
/* 000811 0x80080D0C 27BDFFE0 */ addiu $sp, $sp, -32
|
||||||
/* 000812 0x80080D10 AFBF001C */ sw $ra, 28($sp)
|
/* 000812 0x80080D10 AFBF001C */ sw $ra, 28($sp)
|
||||||
/* 000813 0x80080D14 3C040002 */ lui $a0, %hi(dmadataRomStart)
|
/* 000813 0x80080D14 3C040002 */ lui $a0, %hi(dmadataRomStart)
|
||||||
|
@ -428,7 +428,7 @@ glabel func_80080D0C
|
||||||
/* 000816 0x80080D20 2484A500 */ addiu $a0, %lo(dmadataRomStart)
|
/* 000816 0x80080D20 2484A500 */ addiu $a0, %lo(dmadataRomStart)
|
||||||
/* 000817 0x80080D24 3C05800A */ lui $a1, %hi(dmadata)
|
/* 000817 0x80080D24 3C05800A */ lui $a1, %hi(dmadata)
|
||||||
/* 000818 0x80080D28 24A5F8B0 */ addiu $a1, %lo(dmadata)
|
/* 000818 0x80080D28 24A5F8B0 */ addiu $a1, %lo(dmadata)
|
||||||
/* 000819 0x80080D2C 0C0201E4 */ jal func_80080790
|
/* 000819 0x80080D2C 0C0201E4 */ jal Dmamgr_DoDmaTransfer
|
||||||
/* 000820 0x80080D30 01C43023 */ subu $a2, $t6, $a0
|
/* 000820 0x80080D30 01C43023 */ subu $a2, $t6, $a0
|
||||||
/* 000821 0x80080D34 3C04800A */ lui $a0, %hi(dmadata)
|
/* 000821 0x80080D34 3C04800A */ lui $a0, %hi(dmadata)
|
||||||
/* 000822 0x80080D38 2484F8B0 */ addiu $a0, %lo(dmadata)
|
/* 000822 0x80080D38 2484F8B0 */ addiu $a0, %lo(dmadata)
|
||||||
|
@ -462,15 +462,15 @@ glabel func_80080D0C
|
||||||
/* 000848 0x80080DA0 24A5B508 */ addiu $a1, %lo(D_8009B508)
|
/* 000848 0x80080DA0 24A5B508 */ addiu $a1, %lo(D_8009B508)
|
||||||
/* 000849 0x80080DA4 2484B2A0 */ addiu $a0, $a0, -19808
|
/* 000849 0x80080DA4 2484B2A0 */ addiu $a0, $a0, -19808
|
||||||
/* 000850 0x80080DA8 AFA80014 */ sw $t0, 20($sp)
|
/* 000850 0x80080DA8 AFA80014 */ sw $t0, 20($sp)
|
||||||
/* 000851 0x80080DAC 0C0214C8 */ jal func_80085320
|
/* 000851 0x80080DAC 0C0214C8 */ jal thread_info_init
|
||||||
/* 000852 0x80080DB0 00003825 */ move $a3, $zero
|
/* 000852 0x80080DB0 00003825 */ move $a3, $zero
|
||||||
/* 000853 0x80080DB4 3C09800A */ lui $t1, %hi(D_8009BA08)
|
/* 000853 0x80080DB4 3C09800A */ lui $t1, %hi(D_8009BA08)
|
||||||
/* 000854 0x80080DB8 2529BA08 */ addiu $t1, %lo(D_8009BA08)
|
/* 000854 0x80080DB8 2529BA08 */ addiu $t1, %lo(D_8009BA08)
|
||||||
/* 000855 0x80080DBC 3C04800A */ lui $a0, %hi(D_8009B358)
|
/* 000855 0x80080DBC 3C04800A */ lui $a0, %hi(D_8009B358)
|
||||||
/* 000856 0x80080DC0 3C068008 */ lui $a2, %hi(func_80080B84)
|
/* 000856 0x80080DC0 3C068008 */ lui $a2, %hi(Dmamgr_ThreadEntry)
|
||||||
/* 000857 0x80080DC4 240A0011 */ li $t2, 17
|
/* 000857 0x80080DC4 240A0011 */ li $t2, 17
|
||||||
/* 000858 0x80080DC8 AFAA0014 */ sw $t2, 20($sp)
|
/* 000858 0x80080DC8 AFAA0014 */ sw $t2, 20($sp)
|
||||||
/* 000859 0x80080DCC 24C60B84 */ addiu $a2, %lo(func_80080B84)
|
/* 000859 0x80080DCC 24C60B84 */ addiu $a2, %lo(Dmamgr_ThreadEntry)
|
||||||
/* 000860 0x80080DD0 2484B358 */ addiu $a0, %lo(D_8009B358)
|
/* 000860 0x80080DD0 2484B358 */ addiu $a0, %lo(D_8009B358)
|
||||||
/* 000861 0x80080DD4 AFA90010 */ sw $t1, 16($sp)
|
/* 000861 0x80080DD4 AFA90010 */ sw $t1, 16($sp)
|
||||||
/* 000862 0x80080DD8 24050012 */ li $a1, 18
|
/* 000862 0x80080DD8 24050012 */ li $a1, 18
|
||||||
|
@ -487,6 +487,6 @@ glabel func_80080D0C
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void func_80080E00() {
|
void Dmamgr_Stop() {
|
||||||
osSendMesg(&D_8009B2C0, NULL, 1);
|
osSendMesg(&D_8009B2C0, NULL, 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,28 +5,28 @@
|
||||||
|
|
||||||
// This file is most likely En_A_Obj
|
// This file is most likely En_A_Obj
|
||||||
|
|
||||||
UNK_RET func_800A5AC0(void* a0, UNK_TYPE a1) {
|
UNK_RET EnAObj_Init(void* a0, UNK_TYPE a1) {
|
||||||
s800A5AC0* s0 = (s800A5AC0*)a0;
|
s800A5AC0* s0 = (s800A5AC0*)a0;
|
||||||
s0->unk116 = ((s0->unk1C >> 8) & 0xFF) | 0x300;
|
s0->unk116 = ((s0->unk1C >> 8) & 0xFF) | 0x300;
|
||||||
s0->unk1C = (s0->unk1C & 0xFF) - 9;
|
s0->unk1C = (s0->unk1C & 0xFF) - 9;
|
||||||
func_800FFADC((z_Actor*)s0, (z_ActorCompInitEntry*)&D_801ADEAC);
|
Lib_ApplyActorInitVars((z_Actor*)s0, (z_ActorCompInitEntry*)&D_801ADEAC);
|
||||||
func_800B3BA4(&s0->unkBC, 0, (UNK_PTR)&func_800B3FC0, 12);
|
func_800B3BA4(&s0->unkBC, 0, (UNK_PTR)&func_800B3FC0, 12);
|
||||||
func_800E1374(a1, &s0->unk148, (z_Actor*)s0, &D_801ADE80);
|
Collision_InitCylinder(a1, &s0->unk148, (z_Actor*)s0, &D_801ADE80);
|
||||||
func_800E7DF8((z_Actor*)s0, &s0->unk148);
|
Collision_CylinderMoveToActor((z_Actor*)s0, &s0->unk148);
|
||||||
s0->unkB6 = 255;
|
s0->unkB6 = 255;
|
||||||
s0->unk144 = func_800A5B98;
|
s0->unk144 = EnAObj_Update1;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800A5B6C(s800A5AC0* a0, z_GlobalContext* a1) {
|
UNK_RET EnAObj_Fini(s800A5AC0* a0, z_GlobalContext* a1) {
|
||||||
UNK_TYPE* a2 = &a0->unk148;
|
UNK_TYPE* a2 = &a0->unk148;
|
||||||
func_800E11EC(a1, a2);
|
Collision_FiniCylinder(a1, a2);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800A5B98(s800A5AC0* a0, UNK_TYPE a1) {
|
UNK_RET EnAObj_Update1(s800A5AC0* a0, UNK_TYPE a1) {
|
||||||
s16 v0;
|
s16 v0;
|
||||||
s32 v1;
|
s32 v1;
|
||||||
if (func_800B84D0(a0, a1) != 0) {
|
if (func_800B84D0(a0, a1) != 0) {
|
||||||
a0->unk144 = (void(*)(s800A5AC0*, UNK_TYPE))func_800A5C28; //! Is this cast correct?
|
a0->unk144 = (void(*)(s800A5AC0*, UNK_TYPE))EnAObj_Update2; //! Is this cast correct?
|
||||||
} else {
|
} else {
|
||||||
v0 = a0->unk92 - a0->unkBE;
|
v0 = a0->unk92 - a0->unkBE;
|
||||||
v1 = (v0 < 0)? -v0 : v0;
|
v1 = (v0 < 0)? -v0 : v0;
|
||||||
|
@ -36,18 +36,18 @@ UNK_RET func_800A5B98(s800A5AC0* a0, UNK_TYPE a1) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800A5C28(s800A5AC0* a0) {
|
UNK_RET EnAObj_Update2(s800A5AC0* a0) {
|
||||||
if (func_800B867C(a0) != 0) {
|
if (func_800B867C(a0) != 0) {
|
||||||
a0->unk144 = func_800A5B98;
|
a0->unk144 = EnAObj_Update1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800A5C60(s800A5AC0* a0, UNK_TYPE a1) {
|
UNK_RET EnAObj_Main(s800A5AC0* a0, UNK_TYPE a1) {
|
||||||
(a0->unk144)(a0, a1);
|
(a0->unk144)(a0, a1);
|
||||||
func_800B675C(a0, 0x42340000);
|
func_800B675C(a0, 0x42340000);
|
||||||
func_800E2928(a1, a1 + 0x18884, &a0->unk148);
|
Collision_AddOT(a1, a1 + 0x18884, &a0->unk148);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800A5CB8(s800A5AC0* a0, UNK_TYPE a1) {
|
UNK_RET EnAObj_Draw(s800A5AC0* a0, UNK_TYPE a1) {
|
||||||
func_800BDFC0(a1, D_801ADEB0[a0->unk1C], a1, a0);
|
func_800BDFC0(a1, D_801ADEB0[a0->unk1C], a1, a0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
void effect_ss_init(z_GlobalContext* ctxt, s32 numEntries) {
|
void EffectSS_Init(z_GlobalContext* ctxt, s32 numEntries) {
|
||||||
u32 i;
|
u32 i;
|
||||||
z_LoadedParticleEntry* iter;
|
z_LoadedParticleEntry* iter;
|
||||||
z_ParticleOverlayTableEntry* iter2;
|
z_ParticleOverlayTableEntry* iter2;
|
||||||
|
|
||||||
EffectSS2Info.data_table = (z_LoadedParticleEntry*)func_80172AC8(&ctxt->unk74, numEntries * sizeof(z_LoadedParticleEntry));
|
EffectSS2Info.data_table = (z_LoadedParticleEntry*)GameStateHeap_AllocFromEnd(&ctxt->unk74, numEntries * sizeof(z_LoadedParticleEntry));
|
||||||
EffectSS2Info.searchIndex = 0;
|
EffectSS2Info.searchIndex = 0;
|
||||||
EffectSS2Info.size = numEntries;
|
EffectSS2Info.size = numEntries;
|
||||||
|
|
||||||
for (iter = EffectSS2Info.data_table; iter < EffectSS2Info.data_table + EffectSS2Info.size; iter++) {
|
for (iter = EffectSS2Info.data_table; iter < EffectSS2Info.data_table + EffectSS2Info.size; iter++) {
|
||||||
effect_ss_reset_entry(iter);
|
EffectSS_ResetLoadedParticleEntry(iter);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0, iter2 = particleOverlayTable; i != 0x27; i++) {
|
for (i = 0, iter2 = particleOverlayTable; i != 0x27; i++) {
|
||||||
|
@ -19,7 +19,7 @@ void effect_ss_init(z_GlobalContext* ctxt, s32 numEntries) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void effect_ss_clear(z_GlobalContext* ctxt) {
|
void EffectSS_Clear(z_GlobalContext* ctxt) {
|
||||||
u32 i;
|
u32 i;
|
||||||
z_LoadedParticleEntry* iter;
|
z_LoadedParticleEntry* iter;
|
||||||
z_ParticleOverlayTableEntry* iter2;
|
z_ParticleOverlayTableEntry* iter2;
|
||||||
|
@ -31,24 +31,24 @@ void effect_ss_clear(z_GlobalContext* ctxt) {
|
||||||
|
|
||||||
// This code is completely useless, as data_table was juest to NULL and size to 0
|
// This code is completely useless, as data_table was juest to NULL and size to 0
|
||||||
for (iter = EffectSS2Info.data_table; iter < EffectSS2Info.data_table + EffectSS2Info.size; iter++) {
|
for (iter = EffectSS2Info.data_table; iter < EffectSS2Info.data_table + EffectSS2Info.size; iter++) {
|
||||||
effect_ss_delete(iter);
|
EffectSS_Delete(iter);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Free memory from loaded particle overlays
|
// Free memory from loaded particle overlays
|
||||||
for (i = 0, iter2 = particleOverlayTable; i != 0x27; i++) {
|
for (i = 0, iter2 = particleOverlayTable; i != 0x27; i++) {
|
||||||
addr = (void*)iter2->loadedRamAddr;
|
addr = (void*)iter2->loadedRamAddr;
|
||||||
if (addr != NULL) {
|
if (addr != NULL) {
|
||||||
func_80102CE0(addr);
|
zelda_free(addr);
|
||||||
}
|
}
|
||||||
(iter2++)->loadedRamAddr = 0;
|
(iter2++)->loadedRamAddr = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
z_LoadedParticleEntry* effect_ss_get_table() {
|
z_LoadedParticleEntry* EffectSS_GetTable() {
|
||||||
return EffectSS2Info.data_table;
|
return EffectSS2Info.data_table;
|
||||||
}
|
}
|
||||||
|
|
||||||
void effect_ss_delete(z_LoadedParticleEntry* a0) {
|
void EffectSS_Delete(z_LoadedParticleEntry* a0) {
|
||||||
if (a0->flags & 0x2) {
|
if (a0->flags & 0x2) {
|
||||||
func_801A72CC((UNK_PTR)&a0->position);
|
func_801A72CC((UNK_PTR)&a0->position);
|
||||||
}
|
}
|
||||||
|
@ -57,10 +57,10 @@ void effect_ss_delete(z_LoadedParticleEntry* a0) {
|
||||||
func_801A72CC((UNK_PTR)&a0->unk2C);
|
func_801A72CC((UNK_PTR)&a0->unk2C);
|
||||||
}
|
}
|
||||||
|
|
||||||
effect_ss_reset_entry(a0);
|
EffectSS_ResetLoadedParticleEntry(a0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void effect_ss_reset_entry(z_LoadedParticleEntry* particle) {
|
void EffectSS_ResetLoadedParticleEntry(z_LoadedParticleEntry* particle) {
|
||||||
u32 i;
|
u32 i;
|
||||||
|
|
||||||
particle->type = 0x27;
|
particle->type = 0x27;
|
||||||
|
@ -92,7 +92,7 @@ void effect_ss_reset_entry(z_LoadedParticleEntry* particle) {
|
||||||
// XXX Some regalloc differences and instruction ordering
|
// XXX Some regalloc differences and instruction ordering
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
s32 effect_ss_find_free_space(u32 priority, u32* tableEntry) {
|
s32 EffectSS_FindFreeSpace(u32 priority, u32* tableEntry) {
|
||||||
s32 ret = 0;
|
s32 ret = 0;
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ s32 effect_ss_find_free_space(u32 priority, u32* tableEntry) {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel effect_ss_find_free_space
|
glabel EffectSS_FindFreeSpace
|
||||||
/* 010769 0x800B0304 27BDFFF8 */ addiu $sp, $sp, -8
|
/* 010769 0x800B0304 27BDFFF8 */ addiu $sp, $sp, -8
|
||||||
/* 010770 0x800B0308 AFB00004 */ sw $s0, 0X4($sp)
|
/* 010770 0x800B0308 AFB00004 */ sw $s0, 0X4($sp)
|
||||||
/* 010771 0x800B030C 3C06801B */ lui $a2, %hi(EffectSS2Info)
|
/* 010771 0x800B030C 3C06801B */ lui $a2, %hi(EffectSS2Info)
|
||||||
|
@ -244,10 +244,10 @@ glabel effect_ss_find_free_space
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void func_800B043C(z_GlobalContext* ctxt, z_LoadedParticleEntry* a1) {
|
void EffectSS_Copy(z_GlobalContext* ctxt, z_LoadedParticleEntry* a1) {
|
||||||
u32 index;
|
u32 index;
|
||||||
if (func_8016A01C(ctxt) != 1) {
|
if (func_8016A01C(ctxt) != 1) {
|
||||||
if (effect_ss_find_free_space(a1->priority, &index) == 0) {
|
if (EffectSS_FindFreeSpace(a1->priority, &index) == 0) {
|
||||||
EffectSS2Info.searchIndex = index + 1;
|
EffectSS2Info.searchIndex = index + 1;
|
||||||
EffectSS2Info.data_table[index] = *a1;
|
EffectSS2Info.data_table[index] = *a1;
|
||||||
}
|
}
|
||||||
|
@ -256,14 +256,14 @@ void func_800B043C(z_GlobalContext* ctxt, z_LoadedParticleEntry* a1) {
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
void effect_ss_load_particle(z_GlobalContext* ctxt, u32 type, u32 priority, void* initData) {
|
void EffectSS_LoadParticle(z_GlobalContext* ctxt, u32 type, u32 priority, void* initData) {
|
||||||
u32 index;
|
u32 index;
|
||||||
u32 initRet;
|
u32 initRet;
|
||||||
u32 overlaySize;
|
u32 overlaySize;
|
||||||
z_ParticleOverlayInfo* overlayInfo;
|
z_ParticleOverlayInfo* overlayInfo;
|
||||||
z_ParticleOverlayTableEntry* entry = &particleOverlayTable[type];
|
z_ParticleOverlayTableEntry* entry = &particleOverlayTable[type];
|
||||||
|
|
||||||
if (effect_ss_find_free_space(priority, &index) != 0) {
|
if (EffectSS_FindFreeSpace(priority, &index) != 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -274,13 +274,13 @@ void effect_ss_load_particle(z_GlobalContext* ctxt, u32 type, u32 priority, void
|
||||||
// XXX this subtraction is done earlier
|
// XXX this subtraction is done earlier
|
||||||
overlaySize = entry->vramEnd - entry->vramStart;
|
overlaySize = entry->vramEnd - entry->vramStart;
|
||||||
if (entry->loadedRamAddr == 0) {
|
if (entry->loadedRamAddr == 0) {
|
||||||
entry->loadedRamAddr = (u32)func_80102C88(overlaySize);
|
entry->loadedRamAddr = (u32)zelda_mallocR(overlaySize);
|
||||||
|
|
||||||
if (entry->loadedRamAddr == 0) {
|
if (entry->loadedRamAddr == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
func_8008501C(entry->vromStart, entry->vromEnd, entry->vramStart, entry->vramEnd, entry->loadedRamAddr);
|
load_and_relocate_overlay(entry->vromStart, entry->vromEnd, entry->vramStart, entry->vramEnd, entry->loadedRamAddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX this should use a0, but it doesn't
|
// XXX this should use a0, but it doesn't
|
||||||
|
@ -292,7 +292,7 @@ void effect_ss_load_particle(z_GlobalContext* ctxt, u32 type, u32 priority, void
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overlayInfo->init != 0) {
|
if (overlayInfo->init != 0) {
|
||||||
effect_ss_delete(&EffectSS2Info.data_table[index]);
|
EffectSS_Delete(&EffectSS2Info.data_table[index]);
|
||||||
|
|
||||||
EffectSS2Info.data_table[index].type = type;
|
EffectSS2Info.data_table[index].type = type;
|
||||||
EffectSS2Info.data_table[index].priority = priority;
|
EffectSS2Info.data_table[index].priority = priority;
|
||||||
|
@ -300,7 +300,7 @@ void effect_ss_load_particle(z_GlobalContext* ctxt, u32 type, u32 priority, void
|
||||||
initRet = (*overlayInfo->init)(ctxt, index, &EffectSS2Info.data_table[index], initData);
|
initRet = (*overlayInfo->init)(ctxt, index, &EffectSS2Info.data_table[index], initData);
|
||||||
|
|
||||||
if (initRet == 0) {
|
if (initRet == 0) {
|
||||||
effect_ss_reset_entry(&EffectSS2Info.data_table[index]);
|
EffectSS_ResetLoadedParticleEntry(&EffectSS2Info.data_table[index]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -308,7 +308,7 @@ void effect_ss_load_particle(z_GlobalContext* ctxt, u32 type, u32 priority, void
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel effect_ss_load_particle
|
glabel EffectSS_LoadParticle
|
||||||
/* 010885 0x800B04D4 27BDFFC0 */ addiu $sp, $sp, -64
|
/* 010885 0x800B04D4 27BDFFC0 */ addiu $sp, $sp, -64
|
||||||
/* 010886 0x800B04D8 AFBF001C */ sw $ra, 0X1C($sp)
|
/* 010886 0x800B04D8 AFBF001C */ sw $ra, 0X1C($sp)
|
||||||
/* 010887 0x800B04DC AFA40040 */ sw $a0, 0X40($sp)
|
/* 010887 0x800B04DC AFA40040 */ sw $a0, 0X40($sp)
|
||||||
|
@ -316,7 +316,7 @@ glabel effect_ss_load_particle
|
||||||
/* 010889 0x800B04E4 AFA60048 */ sw $a2, 0X48($sp)
|
/* 010889 0x800B04E4 AFA60048 */ sw $a2, 0X48($sp)
|
||||||
/* 010890 0x800B04E8 AFA7004C */ sw $a3, 0X4C($sp)
|
/* 010890 0x800B04E8 AFA7004C */ sw $a3, 0X4C($sp)
|
||||||
/* 010891 0x800B04EC 8FA40048 */ lw $a0, 0X48($sp)
|
/* 010891 0x800B04EC 8FA40048 */ lw $a0, 0X48($sp)
|
||||||
/* 010892 0x800B04F0 0C02C0C1 */ jal effect_ss_find_free_space
|
/* 010892 0x800B04F0 0C02C0C1 */ jal EffectSS_FindFreeSpace
|
||||||
/* 010893 0x800B04F4 27A5003C */ addiu $a1, $sp, 60
|
/* 010893 0x800B04F4 27A5003C */ addiu $a1, $sp, 60
|
||||||
/* 010894 0x800B04F8 1440005C */ bnez $v0, .L_800B066C
|
/* 010894 0x800B04F8 1440005C */ bnez $v0, .L_800B066C
|
||||||
/* 010895 0x800B04FC 8FAE003C */ lw $t6, 0X3C($sp)
|
/* 010895 0x800B04FC 8FAE003C */ lw $t6, 0X3C($sp)
|
||||||
|
@ -340,7 +340,7 @@ glabel effect_ss_load_particle
|
||||||
/* 010912 0x800B0540 8C6B0010 */ lw $t3, 0X10($v1)
|
/* 010912 0x800B0540 8C6B0010 */ lw $t3, 0X10($v1)
|
||||||
/* 010913 0x800B0544 5560000F */ bnezl $t3, .L_800B0584
|
/* 010913 0x800B0544 5560000F */ bnezl $t3, .L_800B0584
|
||||||
/* 010914 0x800B0548 8C620014 */ lw $v0, 0X14($v1)
|
/* 010914 0x800B0548 8C620014 */ lw $v0, 0X14($v1)
|
||||||
/* 010915 0x800B054C 0C040B22 */ jal func_80102C88
|
/* 010915 0x800B054C 0C040B22 */ jal zelda_mallocR
|
||||||
/* 010916 0x800B0550 AFA30028 */ sw $v1, 0X28($sp)
|
/* 010916 0x800B0550 AFA30028 */ sw $v1, 0X28($sp)
|
||||||
/* 010917 0x800B0554 8FA30028 */ lw $v1, 0X28($sp)
|
/* 010917 0x800B0554 8FA30028 */ lw $v1, 0X28($sp)
|
||||||
/* 010918 0x800B0558 10400044 */ beqz $v0, .L_800B066C
|
/* 010918 0x800B0558 10400044 */ beqz $v0, .L_800B066C
|
||||||
|
@ -350,7 +350,7 @@ glabel effect_ss_load_particle
|
||||||
/* 010922 0x800B0568 8C660008 */ lw $a2, 0X8($v1)
|
/* 010922 0x800B0568 8C660008 */ lw $a2, 0X8($v1)
|
||||||
/* 010923 0x800B056C 8C67000C */ lw $a3, 0XC($v1)
|
/* 010923 0x800B056C 8C67000C */ lw $a3, 0XC($v1)
|
||||||
/* 010924 0x800B0570 AFA30028 */ sw $v1, 0X28($sp)
|
/* 010924 0x800B0570 AFA30028 */ sw $v1, 0X28($sp)
|
||||||
/* 010925 0x800B0574 0C021407 */ jal func_8008501C
|
/* 010925 0x800B0574 0C021407 */ jal load_and_relocate_overlay
|
||||||
/* 010926 0x800B0578 AFA20010 */ sw $v0, 0X10($sp)
|
/* 010926 0x800B0578 AFA20010 */ sw $v0, 0X10($sp)
|
||||||
/* 010927 0x800B057C 8FA30028 */ lw $v1, 0X28($sp)
|
/* 010927 0x800B057C 8FA30028 */ lw $v1, 0X28($sp)
|
||||||
/* 010928 0x800B0580 8C620014 */ lw $v0, 0X14($v1)
|
/* 010928 0x800B0580 8C620014 */ lw $v0, 0X14($v1)
|
||||||
|
@ -375,7 +375,7 @@ glabel effect_ss_load_particle
|
||||||
/* 010944 0x800B05C0 01394823 */ subu $t1, $t1, $t9
|
/* 010944 0x800B05C0 01394823 */ subu $t1, $t1, $t9
|
||||||
/* 010945 0x800B05C4 00094940 */ sll $t1, $t1, 5
|
/* 010945 0x800B05C4 00094940 */ sll $t1, $t1, 5
|
||||||
/* 010946 0x800B05C8 AFA20030 */ sw $v0, 0X30($sp)
|
/* 010946 0x800B05C8 AFA20030 */ sw $v0, 0X30($sp)
|
||||||
/* 010947 0x800B05CC 0C02C084 */ jal effect_ss_delete
|
/* 010947 0x800B05CC 0C02C084 */ jal EffectSS_Delete
|
||||||
/* 010948 0x800B05D0 012A2021 */ addu $a0, $t1, $t2
|
/* 010948 0x800B05D0 012A2021 */ addu $a0, $t1, $t2
|
||||||
/* 010949 0x800B05D4 8FAD003C */ lw $t5, 0X3C($sp)
|
/* 010949 0x800B05D4 8FAD003C */ lw $t5, 0X3C($sp)
|
||||||
/* 010950 0x800B05D8 24030060 */ li $v1, 96
|
/* 010950 0x800B05D8 24030060 */ li $v1, 96
|
||||||
|
@ -413,7 +413,7 @@ glabel effect_ss_load_particle
|
||||||
/* 010982 0x800B0658 01E30019 */ multu $t7, $v1
|
/* 010982 0x800B0658 01E30019 */ multu $t7, $v1
|
||||||
/* 010983 0x800B065C 00004812 */ mflo $t1
|
/* 010983 0x800B065C 00004812 */ mflo $t1
|
||||||
/* 010984 0x800B0660 012A2021 */ addu $a0, $t1, $t2
|
/* 010984 0x800B0660 012A2021 */ addu $a0, $t1, $t2
|
||||||
/* 010985 0x800B0664 0C02C09C */ jal effect_ss_reset_entry
|
/* 010985 0x800B0664 0C02C09C */ jal EffectSS_ResetLoadedParticleEntry
|
||||||
/* 010986 0x800B0668 00000000 */ nop
|
/* 010986 0x800B0668 00000000 */ nop
|
||||||
.L_800B066C:
|
.L_800B066C:
|
||||||
/* 010987 0x800B066C 8FBF001C */ lw $ra, 0X1C($sp)
|
/* 010987 0x800B066C 8FBF001C */ lw $ra, 0X1C($sp)
|
||||||
|
@ -427,7 +427,7 @@ glabel effect_ss_load_particle
|
||||||
// XXX regalloc is wrong
|
// XXX regalloc is wrong
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
void effect_ss_update_particle(z_GlobalContext* ctxt, u32 index) {
|
void EffectSS_UpdateParticle(z_GlobalContext* ctxt, u32 index) {
|
||||||
z_LoadedParticleEntry* particle = &EffectSS2Info.data_table[index];
|
z_LoadedParticleEntry* particle = &EffectSS2Info.data_table[index];
|
||||||
|
|
||||||
if (particle->update != NULL) {
|
if (particle->update != NULL) {
|
||||||
|
@ -446,7 +446,7 @@ void effect_ss_update_particle(z_GlobalContext* ctxt, u32 index) {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel effect_ss_update_particle
|
glabel EffectSS_UpdateParticle
|
||||||
/* 010991 0x800B067C 27BDFFE8 */ addiu $sp, $sp, -24
|
/* 010991 0x800B067C 27BDFFE8 */ addiu $sp, $sp, -24
|
||||||
/* 010992 0x800B0680 AFBF0014 */ sw $ra, 0X14($sp)
|
/* 010992 0x800B0680 AFBF0014 */ sw $ra, 0X14($sp)
|
||||||
/* 010993 0x800B0684 3C0F801B */ lui $t7, %hi(EffectSS2Info)
|
/* 010993 0x800B0684 3C0F801B */ lui $t7, %hi(EffectSS2Info)
|
||||||
|
@ -492,7 +492,7 @@ glabel effect_ss_update_particle
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void effect_ss_update_all_particles(z_GlobalContext* ctxt) {
|
void EffectSS_UpdateAllParticles(z_GlobalContext* ctxt) {
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
for (i = 0; i < EffectSS2Info.size; i++) {
|
for (i = 0; i < EffectSS2Info.size; i++) {
|
||||||
|
@ -500,12 +500,12 @@ void effect_ss_update_all_particles(z_GlobalContext* ctxt) {
|
||||||
EffectSS2Info.data_table[i].life--;
|
EffectSS2Info.data_table[i].life--;
|
||||||
|
|
||||||
if (EffectSS2Info.data_table[i].life < 0) {
|
if (EffectSS2Info.data_table[i].life < 0) {
|
||||||
effect_ss_delete(&EffectSS2Info.data_table[i]);
|
EffectSS_Delete(&EffectSS2Info.data_table[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EffectSS2Info.data_table[i].life > -1) {
|
if (EffectSS2Info.data_table[i].life > -1) {
|
||||||
effect_ss_update_particle(ctxt, i);
|
EffectSS_UpdateParticle(ctxt, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -513,7 +513,7 @@ void effect_ss_update_all_particles(z_GlobalContext* ctxt) {
|
||||||
// XXX regalloc is wrong
|
// XXX regalloc is wrong
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
void effect_ss_draw_particle(z_GlobalContext* ctxt, s32 index) {
|
void EffectSS_DrawParticle(z_GlobalContext* ctxt, s32 index) {
|
||||||
z_LoadedParticleEntry* entry = &EffectSS2Info.data_table[index];
|
z_LoadedParticleEntry* entry = &EffectSS2Info.data_table[index];
|
||||||
if (entry->draw != 0) {
|
if (entry->draw != 0) {
|
||||||
(*entry->draw)(ctxt);
|
(*entry->draw)(ctxt);
|
||||||
|
@ -523,7 +523,7 @@ void effect_ss_draw_particle(z_GlobalContext* ctxt, s32 index) {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel effect_ss_draw_particle
|
glabel EffectSS_DrawParticle
|
||||||
/* 011078 0x800B07D8 27BDFFE8 */ addiu $sp, $sp, -24
|
/* 011078 0x800B07D8 27BDFFE8 */ addiu $sp, $sp, -24
|
||||||
/* 011079 0x800B07DC AFBF0014 */ sw $ra, 0X14($sp)
|
/* 011079 0x800B07DC AFBF0014 */ sw $ra, 0X14($sp)
|
||||||
/* 011080 0x800B07E0 3C0F801B */ lui $t7, %hi(EffectSS2Info)
|
/* 011080 0x800B07E0 3C0F801B */ lui $t7, %hi(EffectSS2Info)
|
||||||
|
@ -546,13 +546,13 @@ glabel effect_ss_draw_particle
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void effect_ss_draw_all_particles(z_GlobalContext* ctxt) {
|
void EffectSS_DrawAllParticles(z_GlobalContext* ctxt) {
|
||||||
UNK_TYPE s0;
|
UNK_TYPE s0;
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
s0 = func_80102580(&ctxt->unk818, ctxt->unk0);
|
s0 = Lights_CreateMapper(&ctxt->unk818, ctxt->unk0);
|
||||||
func_801022F0(s0, ctxt->unk818, 0, ctxt);
|
Lights_MapLights(s0, ctxt->unk818, 0, ctxt);
|
||||||
func_80101BC8(s0, ctxt->unk0);
|
Lights_UploadLights(s0, ctxt->unk0);
|
||||||
|
|
||||||
for (i = 0; i < EffectSS2Info.size; i++) {
|
for (i = 0; i < EffectSS2Info.size; i++) {
|
||||||
if (EffectSS2Info.data_table[i].life > -1) {
|
if (EffectSS2Info.data_table[i].life > -1) {
|
||||||
|
@ -563,9 +563,9 @@ void effect_ss_draw_all_particles(z_GlobalContext* ctxt) {
|
||||||
EffectSS2Info.data_table[i].position.z > 32000 ||
|
EffectSS2Info.data_table[i].position.z > 32000 ||
|
||||||
EffectSS2Info.data_table[i].position.z < -32000
|
EffectSS2Info.data_table[i].position.z < -32000
|
||||||
) {
|
) {
|
||||||
effect_ss_delete(&EffectSS2Info.data_table[i]);
|
EffectSS_Delete(&EffectSS2Info.data_table[i]);
|
||||||
} else {
|
} else {
|
||||||
effect_ss_draw_particle(ctxt, i);
|
EffectSS_DrawParticle(ctxt, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
168
src/code/z_lib.c
168
src/code/z_lib.c
|
@ -5,7 +5,7 @@
|
||||||
extern float fabsf(float);
|
extern float fabsf(float);
|
||||||
#pragma intrinsic (fabsf)
|
#pragma intrinsic (fabsf)
|
||||||
|
|
||||||
void* func_800FEC90(void* dst, void* src, size_t n) {
|
void* Lib_bcopy(void* dst, void* src, size_t n) {
|
||||||
_bcopy(src, dst, n);
|
_bcopy(src, dst, n);
|
||||||
|
|
||||||
return dst;
|
return dst;
|
||||||
|
@ -13,7 +13,7 @@ void* func_800FEC90(void* dst, void* src, size_t n) {
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
void* func_800FECC0(u8* a0, u32 a1, u32 a2) {
|
void* Lib_memset(u8* a0, u32 a1, u32 a2) {
|
||||||
u8* v0;
|
u8* v0;
|
||||||
|
|
||||||
// XXX: realloc is messed up
|
// XXX: realloc is messed up
|
||||||
|
@ -33,7 +33,7 @@ void* func_800FECC0(u8* a0, u32 a1, u32 a2) {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel func_800FECC0
|
glabel Lib_memset
|
||||||
/* 091264 0x800FECC0 27BDFFE8 */ addiu $sp, $sp, -24
|
/* 091264 0x800FECC0 27BDFFE8 */ addiu $sp, $sp, -24
|
||||||
/* 091265 0x800FECC4 AFBF0014 */ sw $ra, 0X14($sp)
|
/* 091265 0x800FECC4 AFBF0014 */ sw $ra, 0X14($sp)
|
||||||
/* 091266 0x800FECC8 AFA40018 */ sw $a0, 0X18($sp)
|
/* 091266 0x800FECC8 AFA40018 */ sw $a0, 0X18($sp)
|
||||||
|
@ -76,15 +76,15 @@ glabel func_800FECC0
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
f32 func_800FED44(s16 a0) {
|
f32 Lib_cos(s16 a0) {
|
||||||
return coss(a0) * D_801DDA80;
|
return coss(a0) * D_801DDA80;
|
||||||
}
|
}
|
||||||
|
|
||||||
f32 func_800FED84(s16 a0) {
|
f32 Lib_sin(s16 a0) {
|
||||||
return sins(a0) * D_801DDA84;
|
return sins(a0) * D_801DDA84;
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 func_800FEDC4(s32 a0, s32 a1, s32 a2) {
|
s32 Lib_StepTowardsGet_i(s32 a0, s32 a1, s32 a2) {
|
||||||
s32 v1;
|
s32 v1;
|
||||||
|
|
||||||
if (a1 >= a0) {
|
if (a1 >= a0) {
|
||||||
|
@ -101,17 +101,17 @@ s32 func_800FEDC4(s32 a0, s32 a1, s32 a2) {
|
||||||
return a1;
|
return a1;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FEE08(u32* a0, u32 a1, u32 a2) {
|
UNK_RET Lib_StepTowards_i(u32* a0, u32 a1, u32 a2) {
|
||||||
*a0 = func_800FEDC4(*a0, a1, a2);
|
*a0 = Lib_StepTowardsGet_i(*a0, a1, a2);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_TYPE func_800FEE34(u32* a0, u32 a1, u32 a2) {
|
UNK_TYPE Lib_StepTowardsCheck_i(u32* a0, u32 a1, u32 a2) {
|
||||||
func_800FEE08(a0, a1, a2);
|
Lib_StepTowards_i(a0, a1, a2);
|
||||||
|
|
||||||
return a1 == *a0;
|
return a1 == *a0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_TYPE func_800FEE70(s16* a0, s16 a1, s16 a2) {
|
UNK_TYPE Lib_StepTowardsCheckFramerateScaled_s(s16* a0, s16 a1, s16 a2) {
|
||||||
f32 f0;
|
f32 f0;
|
||||||
|
|
||||||
if (a2 != 0) {
|
if (a2 != 0) {
|
||||||
|
@ -135,7 +135,7 @@ UNK_TYPE func_800FEE70(s16* a0, s16 a1, s16 a2) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_TYPE func_800FEF2C(s16* a0, s16 a1, s16 a2) {
|
UNK_TYPE Lib_StepTowardsCheck_s(s16* a0, s16 a1, s16 a2) {
|
||||||
if (a2 != 0) {
|
if (a2 != 0) {
|
||||||
if (a1 < *a0) {
|
if (a1 < *a0) {
|
||||||
a2 = -a2;
|
a2 = -a2;
|
||||||
|
@ -155,7 +155,7 @@ UNK_TYPE func_800FEF2C(s16* a0, s16 a1, s16 a2) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_TYPE func_800FEFB4(s8* a0, s8 a1, s8 a2) {
|
UNK_TYPE Lib_StepTowardsCheck_c(s8* a0, s8 a1, s8 a2) {
|
||||||
if (a2 != 0) {
|
if (a2 != 0) {
|
||||||
if (a1 < *a0) {
|
if (a1 < *a0) {
|
||||||
a2 = -a2;
|
a2 = -a2;
|
||||||
|
@ -177,7 +177,7 @@ UNK_TYPE func_800FEFB4(s8* a0, s8 a1, s8 a2) {
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
UNK_TYPE func_800FF03C(f32* a0, f32 a1, f32 a2) {
|
UNK_TYPE Lib_StepTowardsCheck_f(f32* a0, f32 a1, f32 a2) {
|
||||||
if (a2 != 0) {
|
if (a2 != 0) {
|
||||||
// XXX: regalloc is messed up
|
// XXX: regalloc is messed up
|
||||||
if (a1 < *a0) {
|
if (a1 < *a0) {
|
||||||
|
@ -201,7 +201,7 @@ UNK_TYPE func_800FF03C(f32* a0, f32 a1, f32 a2) {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel func_800FF03C
|
glabel Lib_StepTowardsCheck_f
|
||||||
/* 091487 0x800FF03C 44857000 */ mtc1 $a1, $f14
|
/* 091487 0x800FF03C 44857000 */ mtc1 $a1, $f14
|
||||||
/* 091488 0x800FF040 44866000 */ mtc1 $a2, $f12
|
/* 091488 0x800FF040 44866000 */ mtc1 $a2, $f12
|
||||||
/* 091489 0x800FF044 44802000 */ mtc1 $zero, $f4
|
/* 091489 0x800FF044 44802000 */ mtc1 $zero, $f4
|
||||||
|
@ -568,7 +568,7 @@ glabel func_800FF3A0
|
||||||
/* 091735 0x800FF41C 44992000 */ mtc1 $t9, $f4
|
/* 091735 0x800FF41C 44992000 */ mtc1 $t9, $f4
|
||||||
/* 091736 0x800FF420 468090A0 */ cvt.s.w $f2, $f18
|
/* 091736 0x800FF420 468090A0 */ cvt.s.w $f2, $f18
|
||||||
/* 091737 0x800FF424 46802320 */ cvt.s.w $f12, $f4
|
/* 091737 0x800FF424 46802320 */ cvt.s.w $f12, $f4
|
||||||
/* 091738 0x800FF428 0C060040 */ jal func_80180100
|
/* 091738 0x800FF428 0C060040 */ jal atans_flip
|
||||||
/* 091739 0x800FF42C 46001387 */ neg.s $f14, $f2
|
/* 091739 0x800FF42C 46001387 */ neg.s $f14, $f2
|
||||||
/* 091740 0x800FF430 8FA5001C */ lw $a1, 0X1C($sp)
|
/* 091740 0x800FF430 8FA5001C */ lw $a1, 0X1C($sp)
|
||||||
/* 091741 0x800FF434 10000002 */ b .L_800FF440
|
/* 091741 0x800FF434 10000002 */ b .L_800FF440
|
||||||
|
@ -583,15 +583,15 @@ glabel func_800FF3A0
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
s16 func_800FF450(s16 a0, s16 a1) {
|
s16 Lib_rand_s(s16 a0, s16 a1) {
|
||||||
return (s16)(func_80086FDC() * a1) + a0;
|
return (s16)(randZeroOne() * a1) + a0;
|
||||||
}
|
}
|
||||||
|
|
||||||
s16 func_800FF4A4(s16 a0, s16 a1, s16 a2) {
|
s16 Lib_randStride_s(s16 a0, s16 a1, s16 a2) {
|
||||||
return (s16)(func_80086FDC() * a2) * a1 + a0;
|
return (s16)(randZeroOne() * a2) * a1 + a0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF50C(z_Vector3D* dst, z_Vector3D* src) {
|
UNK_RET Lib_CopyVec3f(z_Vector3D* dst, z_Vector3D* src) {
|
||||||
f32 x = src->x;
|
f32 x = src->x;
|
||||||
f32 y = src->y;
|
f32 y = src->y;
|
||||||
f32 z = src->z;
|
f32 z = src->z;
|
||||||
|
@ -601,7 +601,7 @@ UNK_RET func_800FF50C(z_Vector3D* dst, z_Vector3D* src) {
|
||||||
dst->z = z;
|
dst->z = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF52C(z_Vector3Ds16* dst, z_Vector3Ds16* src) {
|
UNK_RET Lib_CopyVec3s(z_Vector3Ds16* dst, z_Vector3Ds16* src) {
|
||||||
s16 x = src->x;
|
s16 x = src->x;
|
||||||
s16 y = src->y;
|
s16 y = src->y;
|
||||||
s16 z = src->z;
|
s16 z = src->z;
|
||||||
|
@ -611,7 +611,7 @@ UNK_RET func_800FF52C(z_Vector3Ds16* dst, z_Vector3Ds16* src) {
|
||||||
dst->z = z;
|
dst->z = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF54C(z_Vector3D* dst, z_Vector3Ds16* src) {
|
UNK_RET Lib_ToVec3f(z_Vector3D* dst, z_Vector3Ds16* src) {
|
||||||
f32 x = src->x;
|
f32 x = src->x;
|
||||||
f32 y = src->y;
|
f32 y = src->y;
|
||||||
f32 z = src->z;
|
f32 z = src->z;
|
||||||
|
@ -621,7 +621,7 @@ UNK_RET func_800FF54C(z_Vector3D* dst, z_Vector3Ds16* src) {
|
||||||
dst->z = z;
|
dst->z = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF584(z_Vector3Ds16* dst, z_Vector3D* src) {
|
UNK_RET Lib_ToVec3s(z_Vector3Ds16* dst, z_Vector3D* src) {
|
||||||
f32 x = src->x;
|
f32 x = src->x;
|
||||||
f32 y = src->y;
|
f32 y = src->y;
|
||||||
f32 z = src->z;
|
f32 z = src->z;
|
||||||
|
@ -631,56 +631,56 @@ UNK_RET func_800FF584(z_Vector3Ds16* dst, z_Vector3D* src) {
|
||||||
dst->z = z;
|
dst->z = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF5BC(z_Vector3D* a0, z_Vector3D* a1, z_Vector3D* a2) {
|
UNK_RET Lib_AddVec3f(z_Vector3D* a0, z_Vector3D* a1, z_Vector3D* a2) {
|
||||||
a2->x = a0->x + a1->x;
|
a2->x = a0->x + a1->x;
|
||||||
a2->y = a0->y + a1->y;
|
a2->y = a0->y + a1->y;
|
||||||
a2->z = a0->z + a1->z;
|
a2->z = a0->z + a1->z;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF5F4(z_Vector3D* a0, z_Vector3D* a1, z_Vector3D* a2) {
|
UNK_RET Lib_SubVec3f(z_Vector3D* a0, z_Vector3D* a1, z_Vector3D* a2) {
|
||||||
a2->x = a0->x - a1->x;
|
a2->x = a0->x - a1->x;
|
||||||
a2->y = a0->y - a1->y;
|
a2->y = a0->y - a1->y;
|
||||||
a2->z = a0->z - a1->z;
|
a2->z = a0->z - a1->z;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF62C(z_Vector3D* a0, z_Vector3Ds16* a1, z_Vector3Ds16* a2) {
|
UNK_RET Lib_SubVec3sToVec3f(z_Vector3D* a0, z_Vector3Ds16* a1, z_Vector3Ds16* a2) {
|
||||||
a0->x = a1->x - a2->x;
|
a0->x = a1->x - a2->x;
|
||||||
a0->y = a1->y - a2->y;
|
a0->y = a1->y - a2->y;
|
||||||
a0->z = a1->z - a2->z;
|
a0->z = a1->z - a2->z;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF688(z_Vector3D* a0, f32 a1) {
|
UNK_RET Lib_ScaleInPlaceVec3f(z_Vector3D* a0, f32 a1) {
|
||||||
a0->x *= a1;
|
a0->x *= a1;
|
||||||
a0->y *= a1;
|
a0->y *= a1;
|
||||||
a0->z *= a1;
|
a0->z *= a1;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF6C4(z_Vector3D* a0, f32 a1, z_Vector3D* a2) {
|
UNK_RET Lib_ScaleVec3f(z_Vector3D* a0, f32 a1, z_Vector3D* a2) {
|
||||||
a2->x = a0->x * a1;
|
a2->x = a0->x * a1;
|
||||||
a2->y = a0->y * a1;
|
a2->y = a0->y * a1;
|
||||||
a2->z = a0->z * a1;
|
a2->z = a0->z * a1;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF6F8(z_Vector3D* a0, z_Vector3D* a1, f32 a2, z_Vector3D* a3) {
|
UNK_RET Lib_LerpVec3f(z_Vector3D* a0, z_Vector3D* a1, f32 a2, z_Vector3D* a3) {
|
||||||
a3->x = (a1->x - a0->x) * a2 + a0->x;
|
a3->x = (a1->x - a0->x) * a2 + a0->x;
|
||||||
a3->y = (a1->y - a0->y) * a2 + a0->y;
|
a3->y = (a1->y - a0->y) * a2 + a0->y;
|
||||||
a3->z = (a1->z - a0->z) * a2 + a0->z;
|
a3->z = (a1->z - a0->z) * a2 + a0->z;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF750(z_Vector3D* a0, z_Vector3D* a1, f32 a2, z_Vector3D* a3) {
|
UNK_RET Lib_AddScaledVec3f(z_Vector3D* a0, z_Vector3D* a1, f32 a2, z_Vector3D* a3) {
|
||||||
a3->x = a1->x * a2 + a0->x;
|
a3->x = a1->x * a2 + a0->x;
|
||||||
a3->y = a1->y * a2 + a0->y;
|
a3->y = a1->y * a2 + a0->y;
|
||||||
a3->z = a1->z * a2 + a0->z;
|
a3->z = a1->z * a2 + a0->z;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FF79C(z_Vector3D* a0, f32 a1, z_Vector3D* a2) {
|
UNK_RET Lib_ModifyRandScaled(z_Vector3D* a0, f32 a1, z_Vector3D* a2) {
|
||||||
a2->x = func_801795C0(a1) + a0->x;
|
a2->x = randPlusMinusPoint5Scaled(a1) + a0->x;
|
||||||
a2->y = func_801795C0(a1) + a0->y;
|
a2->y = randPlusMinusPoint5Scaled(a1) + a0->y;
|
||||||
a2->z = func_801795C0(a1) + a0->z;
|
a2->z = randPlusMinusPoint5Scaled(a1) + a0->z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_800FF810(z_Vector3D* a0, z_Vector3D* a1, f32 a2, z_Vector3D* a3) {
|
void Lib_ScaledNormalizedDifferenceVec3f(z_Vector3D* a0, z_Vector3D* a1, f32 a2, z_Vector3D* a3) {
|
||||||
f32 f0 = func_800FF8D4(a0, a1, a3);
|
f32 f0 = Lib_DistanceAndDifferenceVec3f(a0, a1, a3);
|
||||||
f32 f2;
|
f32 f2;
|
||||||
|
|
||||||
if (f0 == 0) {
|
if (f0 == 0) {
|
||||||
|
@ -694,24 +694,24 @@ void func_800FF810(z_Vector3D* a0, z_Vector3D* a1, f32 a2, z_Vector3D* a3) {
|
||||||
a3->z *= f2;
|
a3->z *= f2;
|
||||||
}
|
}
|
||||||
|
|
||||||
f32 func_800FF884(z_Vector3D* a0, z_Vector3D* a1) {
|
f32 Lib_DistanceVec3f(z_Vector3D* a0, z_Vector3D* a1) {
|
||||||
z_Vector3D sp1C;
|
z_Vector3D sp1C;
|
||||||
func_800FF5F4(a1, a0, &sp1C);
|
Lib_SubVec3f(a1, a0, &sp1C);
|
||||||
return sqrtf((sp1C.x * sp1C.x) + (sp1C.y * sp1C.y) + (sp1C.z * sp1C.z));
|
return sqrtf((sp1C.x * sp1C.x) + (sp1C.y * sp1C.y) + (sp1C.z * sp1C.z));
|
||||||
}
|
}
|
||||||
|
|
||||||
f32 func_800FF8D4(z_Vector3D* a0, z_Vector3D* a1, z_Vector3D* a2) {
|
f32 Lib_DistanceAndDifferenceVec3f(z_Vector3D* a0, z_Vector3D* a1, z_Vector3D* a2) {
|
||||||
func_800FF5F4(a1, a0, a2);
|
Lib_SubVec3f(a1, a0, a2);
|
||||||
return sqrtf((a2->x * a2->x) + (a2->y * a2->y) + (a2->z * a2->z));
|
return sqrtf((a2->x * a2->x) + (a2->y * a2->y) + (a2->z * a2->z));
|
||||||
}
|
}
|
||||||
|
|
||||||
f32 func_800FF92C(z_Vector3D* a0, z_Vector3D* a1) {
|
f32 Lib_DistanceXZVec3f(z_Vector3D* a0, z_Vector3D* a1) {
|
||||||
f32 dx = a1->x - a0->x;
|
f32 dx = a1->x - a0->x;
|
||||||
f32 dz = a1->z - a0->z;
|
f32 dz = a1->z - a0->z;
|
||||||
return sqrtf((dx * dx) + (dz * dz));
|
return sqrtf((dx * dx) + (dz * dz));
|
||||||
}
|
}
|
||||||
|
|
||||||
f32 func_800FF960(z_Vector3D* a0, z_Vector3D* a1, f32* a2, f32* a3) {
|
f32 Lib_DistanceAndDifferenceXZVec3f(z_Vector3D* a0, z_Vector3D* a1, f32* a2, f32* a3) {
|
||||||
*a2 = a1->x - a0->x;
|
*a2 = a1->x - a0->x;
|
||||||
*a3 = a1->z - a0->z;
|
*a3 = a1->z - a0->z;
|
||||||
return sqrtf((*a2 * *a2) + (*a3 * *a3));
|
return sqrtf((*a2 * *a2) + (*a3 * *a3));
|
||||||
|
@ -719,10 +719,10 @@ f32 func_800FF960(z_Vector3D* a0, z_Vector3D* a1, f32* a2, f32* a3) {
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
UNK_RET func_800FF9A4(z_Vector3D* a0, z_Vector3D* a1, f32 a2) {
|
UNK_RET Lib_PushAwayXZVec3f(z_Vector3D* a0, z_Vector3D* a1, f32 a2) {
|
||||||
f32 sp24;
|
f32 sp24;
|
||||||
f32 sp20;
|
f32 sp20;
|
||||||
f32 f0 = func_800FF960(a1, a0, &sp24, &sp20);
|
f32 f0 = Lib_DistanceAndDifferenceXZVec3f(a1, a0, &sp24, &sp20);
|
||||||
f32 f2 = f0 - a2;
|
f32 f2 = f0 - a2;
|
||||||
|
|
||||||
if ((f0 >= a2) && (f2 != 0)) {
|
if ((f0 >= a2) && (f2 != 0)) {
|
||||||
|
@ -738,7 +738,7 @@ UNK_RET func_800FF9A4(z_Vector3D* a0, z_Vector3D* a1, f32 a2) {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel func_800FF9A4
|
glabel Lib_PushAwayXZVec3f
|
||||||
/* 092089 0x800FF9A4 27BDFFD8 */ addiu $sp, $sp, -40
|
/* 092089 0x800FF9A4 27BDFFD8 */ addiu $sp, $sp, -40
|
||||||
/* 092090 0x800FF9A8 AFA5002C */ sw $a1, 0X2C($sp)
|
/* 092090 0x800FF9A8 AFA5002C */ sw $a1, 0X2C($sp)
|
||||||
/* 092091 0x800FF9AC 00802825 */ move $a1, $a0
|
/* 092091 0x800FF9AC 00802825 */ move $a1, $a0
|
||||||
|
@ -748,7 +748,7 @@ glabel func_800FF9A4
|
||||||
/* 092095 0x800FF9BC 8FA4002C */ lw $a0, 0X2C($sp)
|
/* 092095 0x800FF9BC 8FA4002C */ lw $a0, 0X2C($sp)
|
||||||
/* 092096 0x800FF9C0 27A60024 */ addiu $a2, $sp, 36
|
/* 092096 0x800FF9C0 27A60024 */ addiu $a2, $sp, 36
|
||||||
/* 092097 0x800FF9C4 27A70020 */ addiu $a3, $sp, 32
|
/* 092097 0x800FF9C4 27A70020 */ addiu $a3, $sp, 32
|
||||||
/* 092098 0x800FF9C8 0C03FE58 */ jal func_800FF960
|
/* 092098 0x800FF9C8 0C03FE58 */ jal Lib_DistanceAndDifferenceXZVec3f
|
||||||
/* 092099 0x800FF9CC AFA50028 */ sw $a1, 0X28($sp)
|
/* 092099 0x800FF9CC AFA50028 */ sw $a1, 0X28($sp)
|
||||||
/* 092100 0x800FF9D0 C7A20030 */ lwc1 $f2, 0X30($sp)
|
/* 092100 0x800FF9D0 C7A20030 */ lwc1 $f2, 0X30($sp)
|
||||||
/* 092101 0x800FF9D4 44807000 */ mtc1 $zero, $f14
|
/* 092101 0x800FF9D4 44807000 */ mtc1 $zero, $f14
|
||||||
|
@ -787,59 +787,59 @@ glabel func_800FF9A4
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
f32 func_800FFA4C(z_Vector3D* a0, z_Vector3D* a1) {
|
f32 Lib_DistanceYVec3f(z_Vector3D* a0, z_Vector3D* a1) {
|
||||||
return a1->y - a0->y;
|
return a1->y - a0->y;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_TYPE func_800FFA60(z_Vector3D* a0, z_Vector3D* a1) {
|
UNK_TYPE Lib_YawVec3f(z_Vector3D* a0, z_Vector3D* a1) {
|
||||||
f32 f14 = a1->x - a0->x;
|
f32 f14 = a1->x - a0->x;
|
||||||
f32 f12 = a1->z - a0->z;
|
f32 f12 = a1->z - a0->z;
|
||||||
return func_80180100(f12, f14);
|
return atans_flip(f12, f14);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_TYPE func_800FFA94(z_Vector3D* a0, z_Vector3D* a1) {
|
UNK_TYPE Lib_PitchVec3f(z_Vector3D* a0, z_Vector3D* a1) {
|
||||||
return func_80180100(func_800FF92C(a0, a1), a0->y - a1->y);
|
return atans_flip(Lib_DistanceXZVec3f(a0, a1), a0->y - a1->y);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_800FFADC(z_Actor* a0, z_ActorCompInitEntry* a1) {
|
void Lib_ApplyActorInitVars(z_Actor* a0, z_ActorCompInitEntry* a1) {
|
||||||
do {
|
do {
|
||||||
D_801BE960[a1->type]((u8*)a0, a1);
|
D_801BE960[a1->type]((u8*)a0, a1);
|
||||||
} while ((a1++)->cont);
|
} while ((a1++)->cont);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFB54(u8* a0, z_ActorCompInitEntry* a1) {
|
UNK_RET Lib_ApplyActorInitVarByte1(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
*(u8*)(a0 + a1->offset) = (u8)(a1->value);
|
*(u8*)(a0 + a1->offset) = (u8)(a1->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFB70(u8* a0, z_ActorCompInitEntry* a1) {
|
UNK_RET Lib_ApplyActorInitVarByte2(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
*(u8*)(a0 + a1->offset) = (u8)(a1->value);
|
*(u8*)(a0 + a1->offset) = (u8)(a1->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFB8C(u8* a0, z_ActorCompInitEntry* a1) {
|
UNK_RET Lib_ApplyActorInitVarShort1(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
*(u16*)(a0 + a1->offset) = (u16)(a1->value);
|
*(u16*)(a0 + a1->offset) = (u16)(a1->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFBA8(u8* a0, z_ActorCompInitEntry* a1) {
|
UNK_RET Lib_ApplyActorInitVarShort2(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
*(u16*)(a0 + a1->offset) = (u16)(a1->value);
|
*(u16*)(a0 + a1->offset) = (u16)(a1->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFBC4(u8* a0, z_ActorCompInitEntry* a1) {
|
UNK_RET Lib_ApplyActorInitVarWord1(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
*(u32*)(a0 + a1->offset) = (u32)(a1->value);
|
*(u32*)(a0 + a1->offset) = (u32)(a1->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFBE0(u8* a0, z_ActorCompInitEntry* a1) {
|
UNK_RET Lib_ApplyActorInitVarWord2(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
*(u32*)(a0 + a1->offset) = (u32)(a1->value);
|
*(u32*)(a0 + a1->offset) = (u32)(a1->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFBFC(u8* a0, z_ActorCompInitEntry* a1) {
|
UNK_RET Lib_ApplyActorInitVarFloat(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
*(f32*)(a0 + a1->offset) = (f32)(a1->value);
|
*(f32*)(a0 + a1->offset) = (f32)(a1->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFC20(u8* a0, z_ActorCompInitEntry* a1) {
|
UNK_RET Lib_ApplyActorInitVarFloat1000th(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
*(f32*)(a0 + a1->offset) = (f32)(a1->value) / 1000;
|
*(f32*)(a0 + a1->offset) = (f32)(a1->value) / 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFC50(u8* a0, z_ActorCompInitEntry* a1) {
|
UNK_RET Lib_ApplyActorInitVarVector3f(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
z_Vector3D* v0 = (z_Vector3D*)(a0 + a1->offset);
|
z_Vector3D* v0 = (z_Vector3D*)(a0 + a1->offset);
|
||||||
f32 f0 = (f32)(a1->value);
|
f32 f0 = (f32)(a1->value);
|
||||||
|
|
||||||
|
@ -848,7 +848,7 @@ UNK_RET func_800FFC50(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
v0->x = f0;
|
v0->x = f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFC7C(u8* a0, z_ActorCompInitEntry* a1) {
|
UNK_RET Lib_ApplyActorInitVarVector3f1000th(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
z_Vector3D* v0 = (z_Vector3D*)(a0 + a1->offset);
|
z_Vector3D* v0 = (z_Vector3D*)(a0 + a1->offset);
|
||||||
f32 f0 = (f32)(a1->value) / 1000;
|
f32 f0 = (f32)(a1->value) / 1000;
|
||||||
|
|
||||||
|
@ -857,7 +857,7 @@ UNK_RET func_800FFC7C(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
v0->x = f0;
|
v0->x = f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFCB4(u8* a0, z_ActorCompInitEntry* a1) {
|
UNK_RET Lib_ApplyActorInitVarVector3s(u8* a0, z_ActorCompInitEntry* a1) {
|
||||||
z_Vector3Ds16* v0 = (z_Vector3Ds16*)(a0 + a1->offset);
|
z_Vector3Ds16* v0 = (z_Vector3Ds16*)(a0 + a1->offset);
|
||||||
s16 v1 = (s16)(a1->value);
|
s16 v1 = (s16)(a1->value);
|
||||||
|
|
||||||
|
@ -906,7 +906,7 @@ f32 func_800FFCD8(f32* a0, f32 a1, f32 a2, f32 a3, f32 a4) {
|
||||||
return fabsf(a1 - *a0);
|
return fabsf(a1 - *a0);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_800FFDF8(f32* a0, f32 a1, f32 a2, f32 a3) {
|
UNK_RET Lib_ScaleMax_f(f32* a0, f32 a1, f32 a2, f32 a3) {
|
||||||
f32 f2;
|
f32 f2;
|
||||||
|
|
||||||
if (*a0 != a1) {
|
if (*a0 != a1) {
|
||||||
|
@ -922,7 +922,7 @@ UNK_RET func_800FFDF8(f32* a0, f32 a1, f32 a2, f32 a3) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_800FFE68(f32* a0, f32 a1, f32 a2) {
|
void Lib_Scale_f(f32* a0, f32 a1, f32 a2) {
|
||||||
f32 f0 = *a0 * a1;
|
f32 f0 = *a0 * a1;
|
||||||
|
|
||||||
if (a2 < f0) {
|
if (a2 < f0) {
|
||||||
|
@ -936,14 +936,14 @@ void func_800FFE68(f32* a0, f32 a1, f32 a2) {
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
s16 func_800FFEBC(s16* a0, s16 a1, s16 a2, s16 a3, s16 a4) {
|
s16 Lib_ScaleMaxMin_s(s16* a0, s16 a1, s16 a2, s16 a3, s16 a4) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel func_800FFEBC
|
glabel Lib_ScaleMaxMin_s
|
||||||
/* 092415 0x800FFEBC AFA50004 */ sw $a1, 0X4($sp)
|
/* 092415 0x800FFEBC AFA50004 */ sw $a1, 0X4($sp)
|
||||||
/* 092416 0x800FFEC0 AFA60008 */ sw $a2, 0X8($sp)
|
/* 092416 0x800FFEC0 AFA60008 */ sw $a2, 0X8($sp)
|
||||||
/* 092417 0x800FFEC4 00063400 */ sll $a2, $a2, 16
|
/* 092417 0x800FFEC4 00063400 */ sll $a2, $a2, 16
|
||||||
|
@ -1028,7 +1028,7 @@ glabel func_800FFEBC
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void func_800FFFD8(s16* a0, s16 a1, s16 a2, s16 a3) {
|
void Lib_ScaleMax_s(s16* a0, s16 a1, s16 a2, s16 a3) {
|
||||||
s16 v0 = a1 - *a0;
|
s16 v0 = a1 - *a0;
|
||||||
v0 /= a2;
|
v0 /= a2;
|
||||||
|
|
||||||
|
@ -1045,7 +1045,7 @@ void func_800FFFD8(s16* a0, s16 a1, s16 a2, s16 a3) {
|
||||||
*a0 += v0;
|
*a0 += v0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_RET func_8010007C(u8* a0, u8* a1) {
|
UNK_RET Lib_CopyColor(u8* a0, u8* a1) {
|
||||||
a0[0] = a1[0];
|
a0[0] = a1[0];
|
||||||
a0[1] = a1[1];
|
a0[1] = a1[1];
|
||||||
a0[2] = a1[2];
|
a0[2] = a1[2];
|
||||||
|
@ -1064,12 +1064,12 @@ UNK_RET func_801000F4(UNK_TYPE a0, u16 a1) {
|
||||||
func_8019F1C0(a0, a1);
|
func_8019F1C0(a0, a1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8010011C(z_Vector3D* a0, s16 a1, z_Vector3D* a2, z_Vector3D* a3) {
|
void Lib_TranslateAndRotateYVec3f(z_Vector3D* a0, s16 a1, z_Vector3D* a2, z_Vector3D* a3) {
|
||||||
f32 sp1C;
|
f32 sp1C;
|
||||||
f32 f0;
|
f32 f0;
|
||||||
|
|
||||||
sp1C = func_800FED44(a1);
|
sp1C = Lib_cos(a1);
|
||||||
f0 = func_800FED84(a1);
|
f0 = Lib_sin(a1);
|
||||||
a3->x = a0->x + (a2->x * sp1C + a2->z * f0);
|
a3->x = a0->x + (a2->x * sp1C + a2->z * f0);
|
||||||
a3->y = a0->y + a2->y;
|
a3->y = a0->y + a2->y;
|
||||||
a3->z = a0->z + (a2->z * sp1C - a2->x * f0);
|
a3->z = a0->z + (a2->z * sp1C - a2->x * f0);
|
||||||
|
@ -1077,7 +1077,7 @@ void func_8010011C(z_Vector3D* a0, s16 a1, z_Vector3D* a2, z_Vector3D* a3) {
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
|
||||||
void func_801001B8(u8* a0, u8* a1, f32 a2, u8* a3) {
|
void Lib_LerpRGB(u8* a0, u8* a1, f32 a2, u8* a3) {
|
||||||
// XXX regalloc is slightly off
|
// XXX regalloc is slightly off
|
||||||
a3[0] = (f32)a0[0] + ((f32)a1[0] - (f32)a0[0]) * a2;
|
a3[0] = (f32)a0[0] + ((f32)a1[0] - (f32)a0[0]) * a2;
|
||||||
a3[1] = (f32)a0[1] + ((f32)a1[1] - (f32)a0[1]) * a2;
|
a3[1] = (f32)a0[1] + ((f32)a1[1] - (f32)a0[1]) * a2;
|
||||||
|
@ -1087,7 +1087,7 @@ void func_801001B8(u8* a0, u8* a1, f32 a2, u8* a3) {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
GLOBAL_ASM(
|
GLOBAL_ASM(
|
||||||
glabel func_801001B8
|
glabel Lib_LerpRGB
|
||||||
/* 092606 0x801001B8 44866000 */ mtc1 $a2, $f12
|
/* 092606 0x801001B8 44866000 */ mtc1 $a2, $f12
|
||||||
/* 092607 0x801001BC 00000000 */ nop
|
/* 092607 0x801001BC 00000000 */ nop
|
||||||
/* 092608 0x801001C0 908E0000 */ lbu $t6, 0X0($a0)
|
/* 092608 0x801001C0 908E0000 */ lbu $t6, 0X0($a0)
|
||||||
|
@ -1271,13 +1271,13 @@ glabel func_801001B8
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
f32 func_80100448(z_Vector3D* a0, z_Vector3D* a1, f32 a2) {
|
f32 Lib_PushAwayVec3f(z_Vector3D* a0, z_Vector3D* a1, f32 a2) {
|
||||||
z_Vector3D sp24;
|
z_Vector3D sp24;
|
||||||
f32 f2;
|
f32 f2;
|
||||||
f32 f0;
|
f32 f0;
|
||||||
|
|
||||||
func_800FF5F4(a1, a0, &sp24);
|
Lib_SubVec3f(a1, a0, &sp24);
|
||||||
f0 = func_8017A6D4(&sp24);
|
f0 = Math3D_Length(&sp24);
|
||||||
if (a2 < f0) {
|
if (a2 < f0) {
|
||||||
f2 = a2 / f0;
|
f2 = a2 / f0;
|
||||||
f0 = f0 - a2;
|
f0 = f0 - a2;
|
||||||
|
@ -1285,20 +1285,20 @@ f32 func_80100448(z_Vector3D* a0, z_Vector3D* a1, f32 a2) {
|
||||||
a0->y = a0->y + f2 * sp24.y;
|
a0->y = a0->y + f2 * sp24.y;
|
||||||
a0->z = a0->z + f2 * sp24.z;
|
a0->z = a0->z + f2 * sp24.z;
|
||||||
} else {
|
} else {
|
||||||
func_800FF50C(a0, a1);
|
Lib_CopyVec3f(a0, a1);
|
||||||
f0 = 0;
|
f0 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return f0;
|
return f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_801004FC(void) {}
|
void Lib_Nop801004FC(void) {}
|
||||||
|
|
||||||
UNK_TYPE func_80100504(u32 a0) {
|
UNK_TYPE Lib_PtrSegToPhys(u32 a0) {
|
||||||
return(D_801F8180[(a0 << 4) >> 28] + (a0 & 0xFFFFFF)) + 0x80000000;
|
return(D_801F8180[(a0 << 4) >> 28] + (a0 & 0xFFFFFF)) + 0x80000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_TYPE func_8010053C(u32 a0) {
|
UNK_TYPE Lib_PtrSegToPhysNull(u32 a0) {
|
||||||
if ((a0 >> 28) == 0) {
|
if ((a0 >> 28) == 0) {
|
||||||
return a0;
|
return a0;
|
||||||
}
|
}
|
||||||
|
@ -1306,7 +1306,7 @@ UNK_TYPE func_8010053C(u32 a0) {
|
||||||
return(D_801F8180[(a0 << 4) >> 28] + (a0 & 0xFFFFFF)) + 0x80000000;
|
return(D_801F8180[(a0 << 4) >> 28] + (a0 & 0xFFFFFF)) + 0x80000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_TYPE func_80100584(UNK_TYPE a0) {
|
UNK_TYPE Lib_PtrSegToK0(UNK_TYPE a0) {
|
||||||
if (a0 == 0) {
|
if (a0 == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1314,7 +1314,7 @@ UNK_TYPE func_80100584(UNK_TYPE a0) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UNK_TYPE func_801005A0(UNK_TYPE a0) {
|
UNK_TYPE Lib_PtrSegToK0Null(UNK_TYPE a0) {
|
||||||
if (a0 == 0) {
|
if (a0 == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
#include <ultra64.h>
|
||||||
|
#include <global.h>
|
||||||
|
|
||||||
|
|
||||||
|
void func_80174BF0(void* a0) {
|
||||||
|
u32 s0;
|
||||||
|
s16* sp38;
|
||||||
|
s16 v0;
|
||||||
|
|
||||||
|
D_801D1520 = 320;
|
||||||
|
D_801D1524 = 240;
|
||||||
|
|
||||||
|
func_8010C0C0();
|
||||||
|
func_80083BC4();
|
||||||
|
func_801792A4();
|
||||||
|
func_80179260();
|
||||||
|
|
||||||
|
D_801D1528 = 0x80780000 - (u32)&D_803824C0;
|
||||||
|
func_800865F8((u32)&D_803824C0, D_801D1528);
|
||||||
|
|
||||||
|
func_800E93E0();
|
||||||
|
|
||||||
|
staticContext->unkD4 = 0;
|
||||||
|
|
||||||
|
osCreateMesgQueue(&D_801F8160, D_801F8178, 1);
|
||||||
|
|
||||||
|
osSetEventMesg(5, &D_801F8160, NULL);
|
||||||
|
|
||||||
|
osCreateMesgQueue(&D_801F8500, D_801F8518, 60);
|
||||||
|
|
||||||
|
func_80085320(&D_801FB2D8, &D_801F9FB8, &D_801FA5B8_, 0, 256, &D_801DFD70);
|
||||||
|
|
||||||
|
func_801772A0(&D_801F81C0, &D_801FA5B8, 16, D_8009B290, 1, &D_80099EF0);
|
||||||
|
|
||||||
|
func_8008189C();
|
||||||
|
|
||||||
|
func_80081250(&D_80099EF0, &D_801F84F8, &D_801F8500);
|
||||||
|
|
||||||
|
func_80085320(&D_801FB2F8, &D_801FA5B8, &D_801FADB8_, 0, 256, &D_801DFD78);
|
||||||
|
|
||||||
|
func_80173074(&D_801FB338, &D_801FADB8, 11, 10, &D_801F81C0, &D_80099EF0);
|
||||||
|
|
||||||
|
func_80085320(&D_801FB318, &D_801FADB8, &D_801FB2B8_, 0, 256, &D_801DFD80);
|
||||||
|
|
||||||
|
func_80176194(&D_801F8160, &D_80099EF0, 7, 15, &D_801FADB8);
|
||||||
|
|
||||||
|
func_80173048(&D_801FB338);
|
||||||
|
|
||||||
|
func_80085320(&D_801FB2B8, &D_801F87B8, &D_801F9FB8_, 0, 256, &D_801DFD88);
|
||||||
|
|
||||||
|
osCreateThread(&D_801F8608, 4, (void (*)(void*))func_801748A0, a0, &D_801F9FB8_, 9);
|
||||||
|
osStartThread(&D_801F8608);
|
||||||
|
|
||||||
|
s0 = 0;
|
||||||
|
while (s0 == 0) {
|
||||||
|
sp38 = NULL;
|
||||||
|
osRecvMesg(&D_801F8500, (OSMesg*)&sp38, 1);
|
||||||
|
|
||||||
|
if (sp38 == NULL) break;
|
||||||
|
|
||||||
|
v0 = *sp38;
|
||||||
|
|
||||||
|
if (v0 == 3) {
|
||||||
|
s0 = 1;
|
||||||
|
} else if (v0 == 4) {
|
||||||
|
func_8010C164();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func_800812DC(&D_80099EF0, &D_801F84F8);
|
||||||
|
|
||||||
|
osDestroyThread(&D_801F8608);
|
||||||
|
}
|
|
@ -5031,7 +5031,7 @@ D_801F3F38 = 0x801F3F38;
|
||||||
D_801F3F3A = 0x801F3F3A;
|
D_801F3F3A = 0x801F3F3A;
|
||||||
D_801F3F3B = 0x801F3F3B;
|
D_801F3F3B = 0x801F3F3B;
|
||||||
D_801F3F3C = 0x801F3F3C;
|
D_801F3F3C = 0x801F3F3C;
|
||||||
D_801F3F60 = 0x801F3F60;
|
staticContext = 0x801F3F60;
|
||||||
D_801F3F70 = 0x801F3F70;
|
D_801F3F70 = 0x801F3F70;
|
||||||
D_801F3F80 = 0x801F3F80;
|
D_801F3F80 = 0x801F3F80;
|
||||||
D_801F3F83 = 0x801F3F83;
|
D_801F3F83 = 0x801F3F83;
|
||||||
|
@ -5605,6 +5605,7 @@ D_80208EA0 = 0x80208EA0;
|
||||||
D_80209AA0 = 0x80209AA0;
|
D_80209AA0 = 0x80209AA0;
|
||||||
D_80209EA0 = 0x80209EA0;
|
D_80209EA0 = 0x80209EA0;
|
||||||
D_8024A4C0 = 0x8024A4C0;
|
D_8024A4C0 = 0x8024A4C0;
|
||||||
|
D_803824C0 = 0x803824C0;
|
||||||
D_80780000 = 0x80780000;
|
D_80780000 = 0x80780000;
|
||||||
D_80784600 = 0x80784600;
|
D_80784600 = 0x80784600;
|
||||||
D_807DA800 = 0x807DA800;
|
D_807DA800 = 0x807DA800;
|
||||||
|
|
Loading…
Reference in New Issue