mirror of https://github.com/zeldaret/mm.git
yaz0.c OK (#71)
This commit is contained in:
parent
a53626049f
commit
8342329538
|
@ -33,10 +33,10 @@ s32 DmaMgr_SendRequestImpl(DmaRequest* request, void* vramStart, u32 vromStart,
|
||||||
s32 DmaMgr_SendRequest0(void* vramStart, u32 vromStart, u32 size);
|
s32 DmaMgr_SendRequest0(void* vramStart, u32 vromStart, u32 size);
|
||||||
void Dmamgr_Start(void);
|
void Dmamgr_Start(void);
|
||||||
void Dmamgr_Stop(void);
|
void Dmamgr_Stop(void);
|
||||||
// u8* Yaz0_LoadFirstChunk(void);
|
void* Yaz0_FirstDMA(void);
|
||||||
u8* Yaz0_LoadNextChunk(void* currDecompPos);
|
void* Yaz0_NextDMA(void* curSrcPos);
|
||||||
s32 Yaz0_Decompress(u8* src, u8* dest);
|
s32 Yaz0_DecompressImpl(u8* hdr, u8* dst);
|
||||||
void Yaz0_LoadAndDecompressFile(u32 romStart, u32 vramStart, u32 size);
|
void Yaz0_Decompress(u32 romStart, void* dst, u32 size);
|
||||||
void IrqMgr_AddClient(IrqMgr* irqmgr, OSMesgQueueListNode* param_2, OSMesgQueue* param_3);
|
void IrqMgr_AddClient(IrqMgr* irqmgr, OSMesgQueueListNode* param_2, OSMesgQueue* param_3);
|
||||||
void IrqMgr_RemoveClient(IrqMgr* irqmgr, OSMesgQueueListNode* remove);
|
void IrqMgr_RemoveClient(IrqMgr* irqmgr, OSMesgQueueListNode* remove);
|
||||||
void IrqMgr_SendMesgForClient(IrqMgr* irqmgr, OSMesg msg);
|
void IrqMgr_SendMesgForClient(IrqMgr* irqmgr, OSMesg msg);
|
||||||
|
@ -247,7 +247,7 @@ s32 sprintf(char* s, char* fmt, ...);
|
||||||
// void func_80087934(void);
|
// void func_80087934(void);
|
||||||
void wait_cycles(OSTime uParm1);
|
void wait_cycles(OSTime uParm1);
|
||||||
// void func_800879CC(void);
|
// void func_800879CC(void);
|
||||||
// void func_80087A1C(void);
|
void func_80087A1C(UNK_TYPE);
|
||||||
void func_80087A6C(u32 param_1);
|
void func_80087A6C(u32 param_1);
|
||||||
// void func_80087AC0(void);
|
// void func_80087AC0(void);
|
||||||
// void __osSetCause(void);
|
// void __osSetCause(void);
|
||||||
|
@ -418,7 +418,7 @@ void __osSetCompare(u32 value);
|
||||||
// u32 __osGetCompare(void);
|
// u32 __osGetCompare(void);
|
||||||
u32 osDpGetStatus(void);
|
u32 osDpGetStatus(void);
|
||||||
void osDpSetStatus(u32 data);
|
void osDpSetStatus(u32 data);
|
||||||
void _bcopy(void* __src, void* __dest, size_t __n);
|
void bcopy(void* __src, void* __dest, size_t __n);
|
||||||
// void __osResetGlobalIntMask(void);
|
// void __osResetGlobalIntMask(void);
|
||||||
// void func_80091630(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
// void func_80091630(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||||
// void func_80091808(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
// void func_80091808(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||||
|
|
|
@ -295,8 +295,12 @@ extern OSMesg dmamgrMsqMessages[32];
|
||||||
extern OSThread dmamgrOSThread;
|
extern OSThread dmamgrOSThread;
|
||||||
extern u8 dmamgrStack[1280];
|
extern u8 dmamgrStack[1280];
|
||||||
// extern UNK_TYPE1 D_8009BA08;
|
// extern UNK_TYPE1 D_8009BA08;
|
||||||
extern u8 yaz0FileBuffer[1024];
|
extern u8 sYaz0DataBuffer[0x400];
|
||||||
extern Yaz0DecompState yaz0DecompStatus;
|
extern u8* sYaz0CurDataEnd;
|
||||||
|
extern u32 sYaz0CurRomStart;
|
||||||
|
extern u32 sYaz0CurSize;
|
||||||
|
extern u8* sYaz0MaxPtr;
|
||||||
|
extern u8* D_8009BE20;
|
||||||
extern UNK_TYPE4 D_8009BE30;
|
extern UNK_TYPE4 D_8009BE30;
|
||||||
extern UNK_TYPE4 D_8009BE34;
|
extern UNK_TYPE4 D_8009BE34;
|
||||||
extern FaultClient romInfoFaultClient;
|
extern FaultClient romInfoFaultClient;
|
||||||
|
|
|
@ -431,14 +431,6 @@ typedef struct {
|
||||||
/* 0xC */ s32 rightX;
|
/* 0xC */ s32 rightX;
|
||||||
} Viewport; // size = 0x10
|
} Viewport; // size = 0x10
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
/* 0x00 */ void* bufferEnd;
|
|
||||||
/* 0x04 */ u32 romReadHead;
|
|
||||||
/* 0x08 */ u32 amountLeftToRead;
|
|
||||||
/* 0x0C */ u32 loadNextChunkBoundary;
|
|
||||||
/* 0x10 */ u32 destBufferEnd;
|
|
||||||
} Yaz0DecompState; // size = 0x14
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x0 */ unsigned int inst1;
|
/* 0x0 */ unsigned int inst1;
|
||||||
/* 0x4 */ unsigned int inst2;
|
/* 0x4 */ unsigned int inst2;
|
||||||
|
|
|
@ -15,7 +15,7 @@ SECTIONS
|
||||||
build/src/boot_O2_g3/idle.o(.text)
|
build/src/boot_O2_g3/idle.o(.text)
|
||||||
build/src/boot_O2_g3/viconfig.o(.text)
|
build/src/boot_O2_g3/viconfig.o(.text)
|
||||||
build/src/boot_O2_g3/z_std_dma.o(.text)
|
build/src/boot_O2_g3/z_std_dma.o(.text)
|
||||||
build/asm/boot/boot_0x80080E30.o(.text)
|
build/src/boot_O2_g3/yaz0.o(.text)
|
||||||
build/src/boot_O2_g3/irqmgr.o(.text)
|
build/src/boot_O2_g3/irqmgr.o(.text)
|
||||||
build/src/boot_O2_g3/CIC6105.o(.text)
|
build/src/boot_O2_g3/CIC6105.o(.text)
|
||||||
build/src/boot_O2_g3/boot_0x80081920.o(.text)
|
build/src/boot_O2_g3/boot_0x80081920.o(.text)
|
||||||
|
@ -252,7 +252,7 @@ SECTIONS
|
||||||
build/src/boot_O2_g3/boot_main.o(.rodata)
|
build/src/boot_O2_g3/boot_main.o(.rodata)
|
||||||
build/src/boot_O2_g3/idle.o(.rodata)
|
build/src/boot_O2_g3/idle.o(.rodata)
|
||||||
build/asm/boot/boot_rodata_z_std_dma.o(.rodata)
|
build/asm/boot/boot_rodata_z_std_dma.o(.rodata)
|
||||||
build/asm/boot/boot_rodata_0x80080E30.o(.rodata)
|
build/src/boot_O2_g3/yaz0.o(.rodata)
|
||||||
build/src/boot_O2_g3/irqmgr.o(.rodata)
|
build/src/boot_O2_g3/irqmgr.o(.rodata)
|
||||||
build/src/boot_O2_g3/CIC6105.o(.rodata)
|
build/src/boot_O2_g3/CIC6105.o(.rodata)
|
||||||
build/asm/boot/boot_rodata_fault.o(.rodata)
|
build/asm/boot/boot_rodata_fault.o(.rodata)
|
||||||
|
@ -284,7 +284,7 @@ SECTIONS
|
||||||
. += 0x1C60; /* boot_main */
|
. += 0x1C60; /* boot_main */
|
||||||
. += 0x140; /* idle */
|
. += 0x140; /* idle */
|
||||||
. += 0x770; /* z_std_dma */
|
. += 0x770; /* z_std_dma */
|
||||||
. += 0x420; /* 0x80080E30 */
|
. += 0x420; /* yaz0 */
|
||||||
. += 0x20; /* CIC6105 */
|
. += 0x20; /* CIC6105 */
|
||||||
. += 0xE80; /* fault */
|
. += 0xE80; /* fault */
|
||||||
. += 0x40; /* fault_drawer */
|
. += 0x40; /* fault_drawer */
|
||||||
|
|
|
@ -0,0 +1,150 @@
|
||||||
|
#include <ultra64.h>
|
||||||
|
#include <global.h>
|
||||||
|
|
||||||
|
u8 sYaz0DataBuffer[0x400];
|
||||||
|
u8* sYaz0CurDataEnd;
|
||||||
|
u32 sYaz0CurRomStart;
|
||||||
|
u32 sYaz0CurSize;
|
||||||
|
u8* sYaz0MaxPtr;
|
||||||
|
u8* D_8009BE20;
|
||||||
|
|
||||||
|
void* Yaz0_FirstDMA() {
|
||||||
|
u32 pad0;
|
||||||
|
u32 dmaSize;
|
||||||
|
u32 curSize;
|
||||||
|
|
||||||
|
sYaz0MaxPtr = sYaz0CurDataEnd - 0x19;
|
||||||
|
|
||||||
|
curSize = (u32)sYaz0CurDataEnd - (u32)sYaz0DataBuffer;
|
||||||
|
dmaSize = (curSize > sYaz0CurSize) ? sYaz0CurSize : curSize;
|
||||||
|
|
||||||
|
DmaMgr_DMARomToRam(sYaz0CurRomStart, sYaz0DataBuffer, dmaSize);
|
||||||
|
sYaz0CurRomStart += dmaSize;
|
||||||
|
sYaz0CurSize -= dmaSize;
|
||||||
|
return sYaz0DataBuffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
void* Yaz0_NextDMA(void* curSrcPos) {
|
||||||
|
u8* dst;
|
||||||
|
u32 restSize;
|
||||||
|
u32 dmaSize;
|
||||||
|
OSPri oldPri;
|
||||||
|
|
||||||
|
restSize = (u32)sYaz0CurDataEnd - (u32)curSrcPos;
|
||||||
|
|
||||||
|
dst = (restSize & 7) ? (sYaz0DataBuffer - (restSize & 7)) + 8 : sYaz0DataBuffer;
|
||||||
|
|
||||||
|
bcopy(curSrcPos, dst, restSize);
|
||||||
|
dmaSize = ((u32)sYaz0CurDataEnd - (u32)dst) - restSize;
|
||||||
|
if (sYaz0CurSize < dmaSize) {
|
||||||
|
dmaSize = sYaz0CurSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dmaSize != 0) {
|
||||||
|
DmaMgr_DMARomToRam(sYaz0CurRomStart, dst + restSize, dmaSize);
|
||||||
|
sYaz0CurRomStart += dmaSize;
|
||||||
|
sYaz0CurSize -= dmaSize;
|
||||||
|
if (!sYaz0CurSize) {
|
||||||
|
sYaz0MaxPtr = dst + restSize + dmaSize;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
oldPri = osGetThreadPri(NULL);
|
||||||
|
osSetThreadPri(NULL, 0x7F);
|
||||||
|
Fault_Log("圧縮展開異常\n");
|
||||||
|
osSetThreadPri(NULL, oldPri);
|
||||||
|
}
|
||||||
|
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ u32 magic; // Yaz0
|
||||||
|
/* 0x04 */ u32 decSize;
|
||||||
|
/* 0x08 */ u32 compInfoOffset; // only used in mio0
|
||||||
|
/* 0x0C */ u32 uncompDataOffset; // only used in mio0
|
||||||
|
} Yaz0Header; // size = 0x10
|
||||||
|
|
||||||
|
#define YAZ0_MAGIC 0x59617A30 // "Yaz0"
|
||||||
|
|
||||||
|
s32 Yaz0_DecompressImpl(u8* src, u8* dst) {
|
||||||
|
u32 bitIdx = 0;
|
||||||
|
u8* dstEnd;
|
||||||
|
u32 chunkHeader = 0;
|
||||||
|
u32 nibble;
|
||||||
|
u8* backPtr;
|
||||||
|
s32 chunkSize;
|
||||||
|
u32 off;
|
||||||
|
u32 magic;
|
||||||
|
|
||||||
|
magic = ((Yaz0Header*)src)->magic;
|
||||||
|
|
||||||
|
if (magic != YAZ0_MAGIC) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
dstEnd = dst + ((Yaz0Header*)src)->decSize;
|
||||||
|
src = src + sizeof(Yaz0Header);
|
||||||
|
|
||||||
|
do {
|
||||||
|
if (bitIdx == 0) {
|
||||||
|
if ((sYaz0MaxPtr < src) && (sYaz0CurSize != 0)) {
|
||||||
|
src = Yaz0_NextDMA(src);
|
||||||
|
}
|
||||||
|
|
||||||
|
chunkHeader = *src++;
|
||||||
|
bitIdx = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chunkHeader & (1 << 7)) { // uncompressed
|
||||||
|
*dst = *src;
|
||||||
|
dst++;
|
||||||
|
src++;
|
||||||
|
} else { // compressed
|
||||||
|
off = ((*src & 0xF) << 8 | *(src + 1));
|
||||||
|
nibble = *src >> 4;
|
||||||
|
backPtr = dst - off;
|
||||||
|
src += 2;
|
||||||
|
|
||||||
|
chunkSize = (nibble == 0) // N = chunkSize; B = back offset
|
||||||
|
? *src++ + 0x12 // 3 bytes 0B BB NN
|
||||||
|
: nibble + 2; // 2 bytes NB BB
|
||||||
|
|
||||||
|
do {
|
||||||
|
*dst++ = *(backPtr++ - 1);
|
||||||
|
chunkSize--;
|
||||||
|
} while (chunkSize != 0);
|
||||||
|
}
|
||||||
|
chunkHeader <<= 1;
|
||||||
|
bitIdx--;
|
||||||
|
} while (dst != dstEnd);
|
||||||
|
|
||||||
|
D_8009BE20 = dstEnd;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Yaz0_Decompress(u32 romStart, void* dst, u32 size) {
|
||||||
|
s32 status;
|
||||||
|
u32 pad;
|
||||||
|
u8 sp80[0x50];
|
||||||
|
u8 sp30[0x50];
|
||||||
|
|
||||||
|
if (sYaz0CurDataEnd != NULL) {
|
||||||
|
while (sYaz0CurDataEnd != NULL) {
|
||||||
|
func_80087A1C(10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sYaz0CurDataEnd = sYaz0DataBuffer + sizeof(sYaz0DataBuffer);
|
||||||
|
sYaz0CurRomStart = romStart;
|
||||||
|
sYaz0CurSize = size;
|
||||||
|
status = Yaz0_DecompressImpl(Yaz0_FirstDMA(), dst);
|
||||||
|
|
||||||
|
if (status != 0) {
|
||||||
|
sprintf(sp80, "slidma slidstart_szs ret=%d", status);
|
||||||
|
sprintf(sp30, "src:%08lx dst:%08lx siz:%08lx", romStart, dst, size);
|
||||||
|
Fault_AddHungupAndCrashImpl(sp80, sp30);
|
||||||
|
}
|
||||||
|
|
||||||
|
sYaz0CurDataEnd = NULL;
|
||||||
|
}
|
|
@ -134,7 +134,7 @@ void DmaMgr_ProcessMsg(DmaRequest* a0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
osSetThreadPri(NULL, 10);
|
osSetThreadPri(NULL, 10);
|
||||||
Yaz0_LoadAndDecompressFile(sp28, sp30, sp24);
|
Yaz0_Decompress(sp28, sp30, sp24);
|
||||||
osSetThreadPri(NULL, 17);
|
osSetThreadPri(NULL, 17);
|
||||||
} else {
|
} else {
|
||||||
Fault_AddHungupAndCrash(dmamgrString800981F4, 558);
|
Fault_AddHungupAndCrash(dmamgrString800981F4, 558);
|
||||||
|
|
|
@ -132,7 +132,7 @@ void FaultDrawer_SetInputCallback(void(*callback)()) {
|
||||||
|
|
||||||
void FaultDrawer_Init() {
|
void FaultDrawer_Init() {
|
||||||
sFaultDrawContext = &sFaultDrawerStruct;
|
sFaultDrawContext = &sFaultDrawerStruct;
|
||||||
_bcopy(&sFaultDrawerDefault, sFaultDrawContext, sizeof(FaultDrawer));
|
bcopy(&sFaultDrawerDefault, sFaultDrawContext, sizeof(FaultDrawer));
|
||||||
sFaultDrawContext->fb = (u16*)((osMemSize | 0x80000000) - 0x25800);
|
sFaultDrawContext->fb = (u16*)((osMemSize | 0x80000000) - 0x25800);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
void* Lib_bcopy(void* dest, void* src, size_t n) {
|
void* Lib_bcopy(void* dest, void* src, size_t n) {
|
||||||
_bcopy(src, dest, n);
|
bcopy(src, dest, n);
|
||||||
|
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
|
@ -454,7 +454,7 @@ void SceneProc_DrawSceneConfig6(GlobalContext* ctxt) {
|
||||||
for (i = 0; i < 9; i++, dlHead += 2) {
|
for (i = 0; i < 9; i++, dlHead += 2) {
|
||||||
u32 lodFrac = 0;
|
u32 lodFrac = 0;
|
||||||
|
|
||||||
_bcopy(D_801C3C88, dlHead, sizeof(Gfx[2]));
|
bcopy(D_801C3C88, dlHead, sizeof(Gfx[2]));
|
||||||
|
|
||||||
switch(i) {
|
switch(i) {
|
||||||
case 0:
|
case 0:
|
||||||
|
|
|
@ -1731,5 +1731,5 @@ void SkelAnime_Free(SkelAnime* skelAnime, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkelAnime_CopyVec3s(SkelAnime* skelAnime, Vec3s* dst, Vec3s* src) {
|
void SkelAnime_CopyVec3s(SkelAnime* skelAnime, Vec3s* dst, Vec3s* src) {
|
||||||
_bcopy(src, dst, sizeof(Vec3s) * skelAnime->limbCount);
|
bcopy(src, dst, sizeof(Vec3s) * skelAnime->limbCount);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
OSTask* _VirtualToPhysicalTask(OSTask* intp)
|
OSTask* _VirtualToPhysicalTask(OSTask* intp)
|
||||||
{
|
{
|
||||||
OSTask* tp = &tmp_task;
|
OSTask* tp = &tmp_task;
|
||||||
_bcopy((void*)intp, (void*)tp, sizeof(OSTask));
|
bcopy((void*)intp, (void*)tp, sizeof(OSTask));
|
||||||
if (tp->t.ucode) {
|
if (tp->t.ucode) {
|
||||||
tp->t.ucode = (u64*)osVirtualToPhysical(tp->t.ucode);
|
tp->t.ucode = (u64*)osVirtualToPhysical(tp->t.ucode);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,10 +23,10 @@
|
||||||
0x80080C90:("DmaMgr_SendRequest0",),
|
0x80080C90:("DmaMgr_SendRequest0",),
|
||||||
0x80080D0C:("Dmamgr_Start",),
|
0x80080D0C:("Dmamgr_Start",),
|
||||||
0x80080E00:("Dmamgr_Stop",),
|
0x80080E00:("Dmamgr_Stop",),
|
||||||
0x80080E30:("Yaz0_LoadFirstChunk",),
|
0x80080E30:("Yaz0_FirstDMA",),
|
||||||
0x80080ED0:("Yaz0_LoadNextChunk",),
|
0x80080ED0:("Yaz0_NextDMA",),
|
||||||
0x80080FF0:("Yaz0_Decompress",),
|
0x80080FF0:("Yaz0_DecompressImpl",),
|
||||||
0x80081178:("Yaz0_LoadAndDecompressFile",),
|
0x80081178:("Yaz0_Decompress",),
|
||||||
0x80081250:("IrqMgr_AddClient",),
|
0x80081250:("IrqMgr_AddClient",),
|
||||||
0x800812DC:("IrqMgr_RemoveClient",),
|
0x800812DC:("IrqMgr_RemoveClient",),
|
||||||
0x80081368:("IrqMgr_SendMesgForClient",),
|
0x80081368:("IrqMgr_SendMesgForClient",),
|
||||||
|
@ -408,7 +408,7 @@
|
||||||
0x80091290:("__osGetCompare",),
|
0x80091290:("__osGetCompare",),
|
||||||
0x800912A0:("osDpGetStatus",),
|
0x800912A0:("osDpGetStatus",),
|
||||||
0x800912B0:("osDpSetStatus",),
|
0x800912B0:("osDpSetStatus",),
|
||||||
0x800912C0:("_bcopy",),
|
0x800912C0:("bcopy",),
|
||||||
0x800915D0:("__osResetGlobalIntMask",),
|
0x800915D0:("__osResetGlobalIntMask",),
|
||||||
0x80091630:("func_80091630",),
|
0x80091630:("func_80091630",),
|
||||||
0x80091808:("func_80091808",),
|
0x80091808:("func_80091808",),
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
0x80080150:"idle",
|
0x80080150:"idle",
|
||||||
0x800805E0:"viconfig",
|
0x800805E0:"viconfig",
|
||||||
0x80080790:"z_std_dma",
|
0x80080790:"z_std_dma",
|
||||||
0x80080E30:"",
|
0x80080E30:"yaz0",
|
||||||
0x80081250:"irqmgr",
|
0x80081250:"irqmgr",
|
||||||
0x80081820:"CIC6105",
|
0x80081820:"CIC6105",
|
||||||
0x80081920:"",
|
0x80081920:"",
|
||||||
|
|
|
@ -291,8 +291,12 @@
|
||||||
0x8009B358:("dmamgrOSThread","OSThread","",0x1b0),
|
0x8009B358:("dmamgrOSThread","OSThread","",0x1b0),
|
||||||
0x8009B508:("dmamgrStack","u8","[1280]",0x500),
|
0x8009B508:("dmamgrStack","u8","[1280]",0x500),
|
||||||
0x8009BA08:("D_8009BA08","UNK_TYPE1","",0x1),
|
0x8009BA08:("D_8009BA08","UNK_TYPE1","",0x1),
|
||||||
0x8009BA10:("yaz0FileBuffer","u8","[1024]",0x400),
|
0x8009BA10:("sYaz0DataBuffer","u8","[1024]",0x400),
|
||||||
0x8009BE10:("yaz0DecompStatus","Yaz0DecompState","",0x14),
|
0x8009BE10:("sYaz0CurDataEnd","u8*","",0x4),
|
||||||
|
0x8009BE14:("sYaz0CurRomStart","u32","",0x4),
|
||||||
|
0x8009BE18:("sYaz0CurSize","u32","",0x4),
|
||||||
|
0x8009BE1C:("sYaz0MaxPtr","u8*","",0x4),
|
||||||
|
0x8009BE20:("D_8009BE20","u8*","",0x4),
|
||||||
0x8009BE30:("D_8009BE30","UNK_TYPE4","",0x4),
|
0x8009BE30:("D_8009BE30","UNK_TYPE4","",0x4),
|
||||||
0x8009BE34:("D_8009BE34","UNK_TYPE4","",0x4),
|
0x8009BE34:("D_8009BE34","UNK_TYPE4","",0x4),
|
||||||
0x8009BE38:("romInfoFaultClient","FaultClient","",0x10),
|
0x8009BE38:("romInfoFaultClient","FaultClient","",0x10),
|
||||||
|
|
|
@ -32,8 +32,9 @@ opt_flags = [x for x in compile_args if x in ['-g', '-O2', '-framepointer', '-g3
|
||||||
preprocessed_file = tempfile.NamedTemporaryFile(prefix='preprocessed', suffix='.c')
|
preprocessed_file = tempfile.NamedTemporaryFile(prefix='preprocessed', suffix='.c')
|
||||||
|
|
||||||
if opt_flags != []:
|
if opt_flags != []:
|
||||||
subprocess.check_call(asm_processor + opt_flags + [in_file], stdout=preprocessed_file)
|
asmproc_flags = opt_flags + [in_file, '--input-enc', 'utf-8', '--output-enc', 'euc-jp']
|
||||||
|
subprocess.check_call(asm_processor + asmproc_flags, stdout=preprocessed_file)
|
||||||
subprocess.check_call(compiler + compile_args + ['-I', in_dir, '-o', out_file, preprocessed_file.name])
|
subprocess.check_call(compiler + compile_args + ['-I', in_dir, '-o', out_file, preprocessed_file.name])
|
||||||
subprocess.check_call(asm_processor + opt_flags + [in_file, '--post-process', out_file, '--assembler', assembler_sh, '--asm-prelude', prelude])
|
subprocess.check_call(asm_processor + asmproc_flags + ['--post-process', out_file, '--assembler', assembler_sh, '--asm-prelude', prelude])
|
||||||
else:
|
else:
|
||||||
subprocess.check_call(compiler + compile_args + ['-I', in_dir, '-o', out_file, in_file])
|
subprocess.check_call(compiler + compile_args + ['-I', in_dir, '-o', out_file, in_file])
|
|
@ -30,8 +30,12 @@ dmamgrMsqMessages = boot_bss_start + 0x00001DD8;
|
||||||
dmamgrOSThread = boot_bss_start + 0x00001E58;
|
dmamgrOSThread = boot_bss_start + 0x00001E58;
|
||||||
dmamgrStack = boot_bss_start + 0x00002008;
|
dmamgrStack = boot_bss_start + 0x00002008;
|
||||||
D_8009BA08 = boot_bss_start + 0x00002508;
|
D_8009BA08 = boot_bss_start + 0x00002508;
|
||||||
yaz0FileBuffer = boot_bss_start + 0x00002510;
|
sYaz0DataBuffer = boot_bss_start + 0x00002510;
|
||||||
yaz0DecompStatus = boot_bss_start + 0x00002910;
|
sYaz0CurDataEnd = boot_bss_start + 0x00002910;
|
||||||
|
sYaz0CurRomStart = boot_bss_start + 0x00002914;
|
||||||
|
sYaz0CurSize = boot_bss_start + 0x00002918;
|
||||||
|
sYaz0MaxPtr = boot_bss_start + 0x0000291C;
|
||||||
|
D_8009BE20 = boot_bss_start + 0x00002920;
|
||||||
D_8009BE30 = boot_bss_start + 0x00002930;
|
D_8009BE30 = boot_bss_start + 0x00002930;
|
||||||
D_8009BE34 = boot_bss_start + 0x00002934;
|
D_8009BE34 = boot_bss_start + 0x00002934;
|
||||||
romInfoFaultClient = boot_bss_start + 0x00002938;
|
romInfoFaultClient = boot_bss_start + 0x00002938;
|
||||||
|
|
Loading…
Reference in New Issue