CCW .data sections defineid
This commit is contained in:
38
src/MM/crc.c
Normal file
38
src/MM/crc.c
Normal file
@@ -0,0 +1,38 @@
|
||||
//!!!DONE
|
||||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
/* .data */
|
||||
//TODO Implement CRC calculation in Makefile(?)
|
||||
u32 D_803899C0 = 0x000C740C; //MM.code CRC1
|
||||
u32 D_803899C4 = 0xCD249CB3; //MM.code CRC2
|
||||
u32 D_803899C8 = 0x0000D44F; //MM.data CRC1 (with this value = 0)
|
||||
|
||||
void func_802D1724(void);
|
||||
|
||||
void func_80387EC0(void) {
|
||||
u32 *temp_v0;
|
||||
u32 temp_a0;
|
||||
|
||||
temp_v0 = (u32* )func_802D1724;
|
||||
if (getGameMode() != 7) {
|
||||
temp_a0 = (temp_v0[2] & 0x03FFFFFF)*4; //get offset
|
||||
temp_a0 += (u32)&temp_v0[3] & 0xF0000000; //get region
|
||||
((u32 *)temp_a0)[0] = 0x03E00008; //jr $ra
|
||||
((u32 *)temp_a0)[1] = 0x24020002; //addiu $v0, $zero, 0x2
|
||||
|
||||
osWritebackDCache((void *)temp_a0, 8);
|
||||
osInvalICache((void *)temp_a0, 8);
|
||||
}
|
||||
}
|
||||
|
||||
void func_80387F44(void) {
|
||||
s32 sp1C;
|
||||
|
||||
osPiReadIo(0x578, (u32 *)&sp1C);
|
||||
sp1C = sp1C & (sp1C ^ 0xFFFF0000);
|
||||
if (sp1C != 0x8965){
|
||||
func_80387EC0();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user