core1/done/audio/n_seqplayer.c done
This commit is contained in:
@@ -33,7 +33,32 @@ void mlMtxApply(Mtx *mPtr){
|
||||
func_80245A7C(D_80282FD0, mPtr);
|
||||
}
|
||||
|
||||
#ifndef NONMATCHING
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_802514BC.s")
|
||||
#else
|
||||
void func_802514BC(Mtx *arg0) {
|
||||
s32 i, j, k;
|
||||
f32 tmp;
|
||||
f32 sp38[4][4];
|
||||
f32 (*sp34)[4];
|
||||
f32 (*var_s0)[4];
|
||||
|
||||
|
||||
sp34 = reinterpret_cast(f32 *, *D_80282FD0);
|
||||
var_s0 = reinterpret_cast(f32 *, arg0);
|
||||
|
||||
for(i = 0; i < 4; i++){
|
||||
for(j = 0; j < 4; j++){
|
||||
tmp = 0.0f;
|
||||
for(k = 0; k < 4; k++){
|
||||
tmp += var_s0[i][k] * sp34[k][j];
|
||||
}
|
||||
sp38[i][j] = tmp;
|
||||
}
|
||||
}
|
||||
func_80253010(sp34, &sp38, sizeof(Mtx));
|
||||
}
|
||||
#endif
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_802515D4.s")
|
||||
|
||||
@@ -57,31 +82,13 @@ void func_80251738(void){
|
||||
v0[0] = 1.0f;
|
||||
}
|
||||
|
||||
#ifndef NONMATCHING
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_80251788.s")
|
||||
#else
|
||||
f32 *func_80251788(f32 arg0, f32 arg1, f32 arg2){
|
||||
f32 (* v0)[4][4] = (f32 *) ++D_80282FD0;
|
||||
|
||||
(*v0)[0][3] = 0.0f;
|
||||
(*v0)[0][2] = 0.0f;
|
||||
(*v0)[0][1] = 0.0f;
|
||||
(*v0)[1][3] = 0.0f;
|
||||
(*v0)[1][2] = 0.0f;
|
||||
(*v0)[1][0] = 0.0f;
|
||||
(*v0)[2][3] = 0.0f;
|
||||
(*v0)[2][1] = 0.0f;
|
||||
(*v0)[2][0] = 0.0f;
|
||||
(*v0)[0][0] = 1.0f;
|
||||
(*v0)[1][1] = 1.0f;
|
||||
(*v0)[2][2] = 1.0f;
|
||||
(*v0)[3][3] = 1.0f;
|
||||
(*v0)[3][2] = arg2;
|
||||
(*v0)[3][1] = arg1;
|
||||
(*v0)[3][0] = arg0;
|
||||
return &(*v0)[3][3];
|
||||
f32 * var_v0 = ++D_80282FD0;
|
||||
*(var_v0++) = 1.0f; *(var_v0++) = 0.0f; *(var_v0++) = 0.0f; *(var_v0++) = 0.0f;
|
||||
*(var_v0++) = 0.0f; *(var_v0++) = 1.0f; *(var_v0++) = 0.0f; *(var_v0++) = 0.0f;
|
||||
*(var_v0++) = 0.0f; *(var_v0++) = 0.0f; *(var_v0++) = 1.0f; *(var_v0++) = 0.0f;
|
||||
*(var_v0++) = arg0; *(var_v0++) = arg1; *(var_v0++) = arg2; *(var_v0++) = 1.0f;
|
||||
}
|
||||
#endif
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_802517F8.s")
|
||||
|
||||
@@ -92,7 +99,7 @@ f32 *func_80251788(f32 arg0, f32 arg1, f32 arg2){
|
||||
//mlMtx
|
||||
void mlMtxIdent(void){
|
||||
s32 i;
|
||||
f32 *v0 = D_80282FD0 = D_80282810;
|
||||
f32 *v0 = D_80282FD0 = &D_80282810;
|
||||
for(i = 0; i<3; i++){
|
||||
v0[0] = 1.0f;
|
||||
v0[1] = 0.0f;
|
||||
@@ -104,7 +111,13 @@ void mlMtxIdent(void){
|
||||
v0[0] = 1.0f;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_80251B5C.s")
|
||||
void func_80251B5C(f32 arg0, f32 arg1, f32 arg2){
|
||||
f32 * var_v0 = D_80282FD0 = &D_80282810;
|
||||
*(var_v0++) = 1.0f; *(var_v0++) = 0.0f; *(var_v0++) = 0.0f; *(var_v0++) = 0.0f;
|
||||
*(var_v0++) = 0.0f; *(var_v0++) = 1.0f; *(var_v0++) = 0.0f; *(var_v0++) = 0.0f;
|
||||
*(var_v0++) = 0.0f; *(var_v0++) = 0.0f; *(var_v0++) = 1.0f; *(var_v0++) = 0.0f;
|
||||
*(var_v0++) = arg0; *(var_v0++) = arg1; *(var_v0++) = arg2; *(var_v0++) = 1.0f;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_80251BCC.s")
|
||||
|
||||
@@ -347,62 +360,3 @@ void func_80252FC8(f32 arg0[3]){
|
||||
mlMtxRotRoll(-arg0[2]);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_80253010.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_80253034.s")
|
||||
|
||||
typedef struct{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
}struct49s;
|
||||
|
||||
extern struct49s D_803FFE10[];
|
||||
|
||||
extern u8 D_8000E800;
|
||||
extern u8 D_8002D500;
|
||||
extern u32 D_8027BF2C;
|
||||
extern u32 D_8027BF30;
|
||||
|
||||
void func_80253050(
|
||||
s32 overlay_id, u32 ram_start, u32 ram_end, u32 rom_start, u32 rom_end,
|
||||
u32 code_start, u32 code_end, u32 data_start, u32 data_end, u32 bss_start, u32 bss_end
|
||||
){
|
||||
u32 sp34;
|
||||
u32 sp30;
|
||||
u32 sp2C;
|
||||
u32 *tmp;
|
||||
|
||||
osWriteBackDCacheAll();
|
||||
osInvalDCache(ram_start, ram_end - ram_start);
|
||||
osInvalICache(ram_start, ram_end - ram_start);
|
||||
|
||||
if(bss_start){
|
||||
osInvalDCache(bss_start, bss_end - bss_start);
|
||||
}
|
||||
|
||||
rom_start = D_803FFE10[overlay_id].unk0;
|
||||
rom_end = D_803FFE10[overlay_id].unk4;
|
||||
|
||||
if(overlay_id){
|
||||
func_80254008();
|
||||
sp34 = &D_8000E800;
|
||||
}
|
||||
else{
|
||||
sp34 = &D_8002D500;
|
||||
}
|
||||
func_802405F0(sp34, rom_start, rom_end - rom_start);
|
||||
rarezip_uncompress(&sp34, &ram_start);
|
||||
sp2C = D_8027BF2C;
|
||||
sp30 = D_8027BF30;
|
||||
rarezip_uncompress(&sp34, &ram_start);
|
||||
|
||||
if(bss_start){
|
||||
bzero(bss_start, bss_end - bss_start);
|
||||
osWriteBackDCacheAll();
|
||||
tmp = (u32*) bss_start;
|
||||
tmp[0] = sp2C;
|
||||
tmp[1] = sp30;
|
||||
tmp[2] = D_8027BF2C;
|
||||
tmp[3] = D_8027BF30;
|
||||
}
|
||||
}
|
||||
|
60
src/core1/code_15630.c
Normal file
60
src/core1/code_15630.c
Normal file
@@ -0,0 +1,60 @@
|
||||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
|
||||
typedef struct{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
}struct49s;
|
||||
|
||||
extern struct49s D_803FFE10[];
|
||||
|
||||
extern u8 D_8000E800;
|
||||
extern u8 D_8002D500;
|
||||
extern u32 D_8027BF2C;
|
||||
extern u32 D_8027BF30;
|
||||
|
||||
void func_80253050(
|
||||
s32 overlay_id, u32 ram_start, u32 ram_end, u32 rom_start, u32 rom_end,
|
||||
u32 code_start, u32 code_end, u32 data_start, u32 data_end, u32 bss_start, u32 bss_end
|
||||
){
|
||||
u32 sp34;
|
||||
u32 sp30;
|
||||
u32 sp2C;
|
||||
u32 *tmp;
|
||||
|
||||
osWriteBackDCacheAll();
|
||||
osInvalDCache(ram_start, ram_end - ram_start);
|
||||
osInvalICache(ram_start, ram_end - ram_start);
|
||||
|
||||
if(bss_start){
|
||||
osInvalDCache(bss_start, bss_end - bss_start);
|
||||
}
|
||||
|
||||
rom_start = D_803FFE10[overlay_id].unk0;
|
||||
rom_end = D_803FFE10[overlay_id].unk4;
|
||||
|
||||
if(overlay_id){
|
||||
func_80254008();
|
||||
sp34 = &D_8000E800;
|
||||
}
|
||||
else{
|
||||
sp34 = &D_8002D500;
|
||||
}
|
||||
func_802405F0(sp34, rom_start, rom_end - rom_start);
|
||||
rarezip_uncompress(&sp34, &ram_start);
|
||||
sp2C = D_8027BF2C;
|
||||
sp30 = D_8027BF30;
|
||||
rarezip_uncompress(&sp34, &ram_start);
|
||||
|
||||
if(bss_start){
|
||||
bzero(bss_start, bss_end - bss_start);
|
||||
osWriteBackDCacheAll();
|
||||
tmp = (u32*) bss_start;
|
||||
tmp[0] = sp2C;
|
||||
tmp[1] = sp30;
|
||||
tmp[2] = D_8027BF2C;
|
||||
tmp[3] = D_8027BF30;
|
||||
}
|
||||
}
|
@@ -1,91 +0,0 @@
|
||||
#include <ultra64.h>
|
||||
#include "n_libaudio.h"
|
||||
#include "n_synth.h"
|
||||
// #include "functions.h"
|
||||
// #include "variables.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_80260860.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_802609E0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_80260BD4.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/n_alEnvmixerPull.s")
|
||||
|
||||
#ifdef NONMATCHING
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__postNextSeqEvent.s")
|
||||
#else
|
||||
void __postNextSeqEvent(ALSeqPlayer *seqp)
|
||||
{
|
||||
ALEvent evt;
|
||||
s32 deltaTicks;
|
||||
ALSeq *seq = seqp->target;
|
||||
|
||||
/* sct 1/5/96 - Do nothing if we're not playing or don't have a target sequence. */
|
||||
if ((seqp->state != AL_PLAYING) || (seq == NULL))
|
||||
return;
|
||||
|
||||
/* Get the next event time in ticks. */
|
||||
/* If false is returned, then there is no next delta (ie. end of sequence reached). */
|
||||
if (!__alSeqNextDelta(seq, &deltaTicks))
|
||||
return;
|
||||
|
||||
/* Handle loops. */
|
||||
if (seqp->loopCount)
|
||||
{
|
||||
/* Assume that the loop end falls on a MIDI event. Delta time
|
||||
will be correct even if we loop */
|
||||
if (alSeqGetTicks(seq) + deltaTicks >= seqp->loopEnd->curTicks)
|
||||
{
|
||||
alSeqSetLoc(seq, seqp->loopStart);
|
||||
|
||||
if (seqp->loopCount != -1)
|
||||
seqp->loopCount--;
|
||||
}
|
||||
}
|
||||
|
||||
evt.type = AL_SEQ_REF_EVT;
|
||||
//alEvtqPostEvent(&seqp->evtq, &evt, deltaTicks * seqp->uspt);
|
||||
alEvtqPostEvent(&seqp->evtq, &evt, deltaTicks * seqp->uspt);
|
||||
}
|
||||
#endif
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__setInstChanState.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_80261348.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__initFromBank.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_80261490.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__vsDelta.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__vsVol.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__seqpReleaseVoice.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__voiceNeedsNoteKill.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__unmapVoice.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_802617A0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__vsPan.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__lookupVoice.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__mapVoice.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__lookupSoundQuick.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_80261A94.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_802623F4.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_802623FC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__seqpStopOsc.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__initChanState.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_80262BFC.s")
|
1221
src/core1/done/audio/n_seqplayer.c
Normal file
1221
src/core1/done/audio/n_seqplayer.c
Normal file
File diff suppressed because it is too large
Load Diff
12
src/core1/n_env.c
Normal file
12
src/core1/n_env.c
Normal file
@@ -0,0 +1,12 @@
|
||||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/n_env/func_80260860.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/n_env/func_802609E0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/n_env/func_80260BD4.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/n_env/n_alEnvmixerPull.s")
|
@@ -2,6 +2,21 @@
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
Mtx *func_8024DD9C(void);
|
||||
void func_80251BCC(Mtx *);
|
||||
void func_80252330(f32, f32, f32);
|
||||
void mlMtxApply(Mtx *);
|
||||
void func_803382D8(s32 arg0);
|
||||
void func_803382E4(s32 arg0);
|
||||
void func_803382F0(s32 arg0);
|
||||
void func_803382FC(s32 arg0);
|
||||
void func_80338308(s32 arg0, s32 arg1);
|
||||
|
||||
/* .data */
|
||||
extern Gfx D_80370260[];
|
||||
extern Gfx D_80370290[];
|
||||
extern Gfx D_803702C0[];
|
||||
extern Gfx D_80370308[];
|
||||
extern u8 D_80370338[4];
|
||||
extern u8 D_8037033C;
|
||||
|
||||
@@ -21,15 +36,136 @@ s32 D_8038363C;
|
||||
s32 D_80383640;
|
||||
s32 D_80383644;
|
||||
|
||||
void func_803380F8(Gfx **gfx, Mtx **mtx, f32 arg2[3]);
|
||||
void func_803381B4(Gfx **gfx, Mtx **mtx, f32 arg2[3]);
|
||||
|
||||
/* .code */
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_AEDA0/func_80335D30.s")
|
||||
void func_80335D30(Gfx **gfx){
|
||||
gDPPipeSync((*gfx)++);
|
||||
if (D_80370338[0] == 0) {
|
||||
gDPSetColorDither((*gfx)++, G_CD_DISABLE);
|
||||
}//L80335D7C
|
||||
switch(D_80383634 + 1){
|
||||
case 0:
|
||||
return;
|
||||
|
||||
case 15:
|
||||
gSPDisplayList((*gfx)++, D_803702C0);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, 0xFF);
|
||||
return;
|
||||
|
||||
case 12:
|
||||
gSPDisplayList((*gfx)++, D_80370290);
|
||||
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, 0xFF);
|
||||
return;
|
||||
|
||||
case 10:
|
||||
gSPDisplayList((*gfx)++, D_80370260);
|
||||
gDPSetCombineLERP((*gfx)++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038363C);
|
||||
gDPSetEnvColor((*gfx)++, D_80383620, D_80383624, D_80383628, 0xFF);
|
||||
return;
|
||||
|
||||
case 16:
|
||||
gSPDisplayList((*gfx)++, D_80370290);
|
||||
gDPSetCombineLERP((*gfx)++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038363C);
|
||||
gDPSetEnvColor((*gfx)++, D_80383620, D_80383624, D_80383628, 0xFF);
|
||||
return;
|
||||
|
||||
case 8:
|
||||
if (D_8038361C != 0) {
|
||||
gSPDisplayList((*gfx)++, D_80370308);
|
||||
gDPSetCombineLERP((*gfx)++, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, COMBINED, ENVIRONMENT, COMBINED, 0, 0, 0, COMBINED);
|
||||
gDPSetEnvColor((*gfx)++, D_8038361C, D_8038361C, D_8038361C, 0xFF);
|
||||
} else {
|
||||
gSPDisplayList((*gfx)++, D_80370260);
|
||||
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
}
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038363C);
|
||||
return;
|
||||
|
||||
case 7:
|
||||
if (D_8038361C != 0) {
|
||||
gSPDisplayList((*gfx)++, D_80370308);
|
||||
gDPSetCombineLERP((*gfx)++, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0, PRIMITIVE, COMBINED, PRIMITIVE_ALPHA, COMBINED, 0, 0, 0, COMBINED);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038361C);
|
||||
} else {
|
||||
gSPDisplayList((*gfx)++, D_80370260);
|
||||
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, 0xFF);
|
||||
}
|
||||
return;
|
||||
|
||||
case 6:
|
||||
gSPDisplayList((*gfx)++, D_80370260);
|
||||
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038363C);
|
||||
return;
|
||||
|
||||
case 13:
|
||||
gSPDisplayList((*gfx)++, D_80370290);
|
||||
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038363C);
|
||||
return;
|
||||
|
||||
case 5:
|
||||
gSPDisplayList((*gfx)++, D_80370260);
|
||||
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, 0xFF);
|
||||
return;
|
||||
|
||||
case 9:
|
||||
gSPDisplayList((*gfx)++, D_80370260);
|
||||
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383630, D_80383630, D_80383630, D_8038363C);
|
||||
return;
|
||||
|
||||
case 14:
|
||||
gSPDisplayList((*gfx)++, D_80370290);
|
||||
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383630, D_80383630, D_80383630, D_8038363C);
|
||||
return;
|
||||
|
||||
case 1:
|
||||
gSPDisplayList((*gfx)++, D_80370260);
|
||||
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383630, D_80383630, D_80383630, 0xFF);
|
||||
return;
|
||||
|
||||
case 2:
|
||||
gSPDisplayList((*gfx)++, D_80370260);
|
||||
gDPSetCombineLERP((*gfx)++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, 0, 0, 0, D_8038363C);
|
||||
return;
|
||||
|
||||
case 11:
|
||||
gSPDisplayList((*gfx)++, D_80370290);
|
||||
gDPSetCombineLERP((*gfx)++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, 0, 0, 0, D_8038363C);
|
||||
return;
|
||||
|
||||
case 4:
|
||||
gSPDisplayList((*gfx)++, D_80370260);
|
||||
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, D_80383620, D_80383624, D_80383628, D_8038362C);
|
||||
return;
|
||||
|
||||
default://L80336814
|
||||
gSPDisplayList((*gfx)++, D_80370260);
|
||||
gDPSetCombineLERP((*gfx)++, 0, 0, 0, TEXEL0, 0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0, 0, 0, 0, PRIMITIVE);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, 0, 0, 0, 0xFF);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void func_8033687C( Gfx **gfx )
|
||||
{
|
||||
/* Turn off texturing */
|
||||
gDPPipeSync((*gfx)++);
|
||||
if (D_80370338[0] == 0) {
|
||||
gDPSetColorDither((*gfx)++, 0);
|
||||
gDPSetColorDither((*gfx)++, G_CD_MAGICSQ);
|
||||
D_80370338[0] = 1;
|
||||
}
|
||||
|
||||
@@ -363,19 +499,45 @@ void func_80337B68(Gfx **gfx, Vtx **vtx, Struct84s *texture_list, s32 texture_in
|
||||
}
|
||||
#endif
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_AEDA0/func_80338048.s")
|
||||
void func_80338048(Gfx **gfx, Mtx **mtx, Vtx **vtx, f32 arg3[3], Struct84s *arg4, s32 arg5) {
|
||||
func_803380F8(gfx, mtx, arg3);
|
||||
func_80337B68(gfx, vtx, arg4, arg5);
|
||||
gSPPopMatrix((*gfx)++, G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_AEDA0/func_803380A0.s")
|
||||
void func_803380A0(Gfx **gfx, Mtx **mtx, Vtx **vtx, f32 arg3[3], Struct84s *arg4, s32 arg5) {
|
||||
func_803381B4(gfx, mtx, arg3);
|
||||
func_80337B68(gfx, vtx, arg4, arg5);
|
||||
gSPPopMatrix((*gfx)++, G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_AEDA0/func_803380F8.s")
|
||||
void func_803380F8(Gfx **gfx, Mtx **mtx, f32 arg2[3]) {
|
||||
f32 sp2C[3];
|
||||
f32 sp20[3];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_AEDA0/func_803381B4.s")
|
||||
func_8024C5CC(sp2C);
|
||||
sp20[0] = arg2[0] - sp2C[0];
|
||||
sp20[1] = arg2[1] - sp2C[1];
|
||||
sp20[2] = arg2[2] - sp2C[2];
|
||||
func_80251BCC(func_8024DD90());
|
||||
func_80252330(sp20[0], sp20[1], sp20[2]);
|
||||
mlMtxApply(*mtx);
|
||||
gSPMatrix((*gfx)++, (*mtx)++, G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
void func_803382D8(s32 arg0);
|
||||
void func_803382E4(s32 arg0);
|
||||
void func_803382F0(s32 arg0);
|
||||
void func_803382FC(s32 arg0);
|
||||
void func_80338308(s32 arg0, s32 arg1);
|
||||
void func_803381B4(Gfx **gfx, Mtx **mtx, f32 arg2[3]) {
|
||||
f32 sp2C[3];
|
||||
f32 sp20[3];
|
||||
|
||||
func_8024C5CC(sp2C);
|
||||
sp20[0] = arg2[0] - sp2C[0];
|
||||
sp20[1] = arg2[1] - sp2C[1];
|
||||
sp20[2] = arg2[2] - sp2C[2];
|
||||
func_80251BCC(func_8024DD9C());
|
||||
func_80252330(sp20[0], sp20[1], sp20[2]);
|
||||
mlMtxApply(*mtx);
|
||||
gSPMatrix((*gfx)++, (*mtx)++, G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
void func_80338270(){
|
||||
func_803382D8(0xFF);
|
||||
@@ -425,9 +587,13 @@ void func_80338338(s32 r, s32 g, s32 b){
|
||||
D_80383618 = b;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_AEDA0/func_80338354.s")
|
||||
void func_80338354(s32 arg0){
|
||||
D_8038361C = arg0 / 8 ;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_AEDA0/func_80338370.s")
|
||||
void func_80338370(void){
|
||||
D_80370338[0] = 0;
|
||||
}
|
||||
|
||||
void func_8033837C(s32 arg0){
|
||||
D_8037033C = arg0;
|
||||
|
Reference in New Issue
Block a user