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);
 | 
			
		||||
void Dmamgr_Start(void);
 | 
			
		||||
void Dmamgr_Stop(void);
 | 
			
		||||
// u8* Yaz0_LoadFirstChunk(void);
 | 
			
		||||
u8* Yaz0_LoadNextChunk(void* currDecompPos);
 | 
			
		||||
s32 Yaz0_Decompress(u8* src, u8* dest);
 | 
			
		||||
void Yaz0_LoadAndDecompressFile(u32 romStart, u32 vramStart, u32 size);
 | 
			
		||||
void* Yaz0_FirstDMA(void);
 | 
			
		||||
void* Yaz0_NextDMA(void* curSrcPos);
 | 
			
		||||
s32 Yaz0_DecompressImpl(u8* hdr, u8* dst);
 | 
			
		||||
void Yaz0_Decompress(u32 romStart, void* dst, u32 size);
 | 
			
		||||
void IrqMgr_AddClient(IrqMgr* irqmgr, OSMesgQueueListNode* param_2, OSMesgQueue* param_3);
 | 
			
		||||
void IrqMgr_RemoveClient(IrqMgr* irqmgr, OSMesgQueueListNode* remove);
 | 
			
		||||
void IrqMgr_SendMesgForClient(IrqMgr* irqmgr, OSMesg msg);
 | 
			
		||||
| 
						 | 
				
			
			@ -247,7 +247,7 @@ s32 sprintf(char* s, char* fmt, ...);
 | 
			
		|||
// void func_80087934(void);
 | 
			
		||||
void wait_cycles(OSTime uParm1);
 | 
			
		||||
// void func_800879CC(void);
 | 
			
		||||
// void func_80087A1C(void);
 | 
			
		||||
void func_80087A1C(UNK_TYPE);
 | 
			
		||||
void func_80087A6C(u32 param_1);
 | 
			
		||||
// void func_80087AC0(void);
 | 
			
		||||
// void __osSetCause(void);
 | 
			
		||||
| 
						 | 
				
			
			@ -418,7 +418,7 @@ void __osSetCompare(u32 value);
 | 
			
		|||
// u32 __osGetCompare(void);
 | 
			
		||||
u32 osDpGetStatus(void);
 | 
			
		||||
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 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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -295,8 +295,12 @@ extern OSMesg dmamgrMsqMessages[32];
 | 
			
		|||
extern OSThread dmamgrOSThread;
 | 
			
		||||
extern u8 dmamgrStack[1280];
 | 
			
		||||
// extern UNK_TYPE1 D_8009BA08;
 | 
			
		||||
extern u8 yaz0FileBuffer[1024];
 | 
			
		||||
extern Yaz0DecompState yaz0DecompStatus;
 | 
			
		||||
extern u8 sYaz0DataBuffer[0x400];
 | 
			
		||||
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_8009BE34;
 | 
			
		||||
extern FaultClient romInfoFaultClient;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -431,14 +431,6 @@ typedef struct {
 | 
			
		|||
    /* 0xC */ s32 rightX;
 | 
			
		||||
} 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 {
 | 
			
		||||
    /* 0x0 */ unsigned int inst1;
 | 
			
		||||
    /* 0x4 */ unsigned int inst2;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,7 @@ SECTIONS
 | 
			
		|||
        build/src/boot_O2_g3/idle.o(.text)
 | 
			
		||||
        build/src/boot_O2_g3/viconfig.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/CIC6105.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/idle.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/CIC6105.o(.rodata)
 | 
			
		||||
        build/asm/boot/boot_rodata_fault.o(.rodata)
 | 
			
		||||
| 
						 | 
				
			
			@ -284,7 +284,7 @@ SECTIONS
 | 
			
		|||
    . += 0x1C60; /* boot_main */
 | 
			
		||||
    . += 0x140; /* idle */
 | 
			
		||||
    . += 0x770; /* z_std_dma */
 | 
			
		||||
    . += 0x420; /* 0x80080E30 */
 | 
			
		||||
    . += 0x420; /* yaz0 */
 | 
			
		||||
    . += 0x20; /* CIC6105 */
 | 
			
		||||
    . += 0xE80; /* fault */
 | 
			
		||||
    . += 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);
 | 
			
		||||
        Yaz0_LoadAndDecompressFile(sp28, sp30, sp24);
 | 
			
		||||
        Yaz0_Decompress(sp28, sp30, sp24);
 | 
			
		||||
        osSetThreadPri(NULL, 17);
 | 
			
		||||
    } else {
 | 
			
		||||
        Fault_AddHungupAndCrash(dmamgrString800981F4, 558);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -132,7 +132,7 @@ void FaultDrawer_SetInputCallback(void(*callback)()) {
 | 
			
		|||
 | 
			
		||||
void FaultDrawer_Init() {
 | 
			
		||||
    sFaultDrawContext = &sFaultDrawerStruct;
 | 
			
		||||
    _bcopy(&sFaultDrawerDefault, sFaultDrawContext, sizeof(FaultDrawer));
 | 
			
		||||
    bcopy(&sFaultDrawerDefault, sFaultDrawContext, sizeof(FaultDrawer));
 | 
			
		||||
    sFaultDrawContext->fb = (u16*)((osMemSize | 0x80000000) - 0x25800);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
#include <global.h>
 | 
			
		||||
 | 
			
		||||
void* Lib_bcopy(void* dest, void* src, size_t n) {
 | 
			
		||||
    _bcopy(src, dest, n);
 | 
			
		||||
    bcopy(src, dest, n);
 | 
			
		||||
 | 
			
		||||
    return dest;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -454,7 +454,7 @@ void SceneProc_DrawSceneConfig6(GlobalContext* ctxt) {
 | 
			
		|||
    for (i = 0; i < 9; i++, dlHead += 2) {
 | 
			
		||||
        u32 lodFrac = 0;
 | 
			
		||||
 | 
			
		||||
        _bcopy(D_801C3C88, dlHead, sizeof(Gfx[2]));
 | 
			
		||||
        bcopy(D_801C3C88, dlHead, sizeof(Gfx[2]));
 | 
			
		||||
 | 
			
		||||
        switch(i) {
 | 
			
		||||
        case 0:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1731,5 +1731,5 @@ void SkelAnime_Free(SkelAnime* skelAnime, GlobalContext* globalCtx) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
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* tp = &tmp_task;
 | 
			
		||||
    _bcopy((void*)intp, (void*)tp, sizeof(OSTask));
 | 
			
		||||
    bcopy((void*)intp, (void*)tp, sizeof(OSTask));
 | 
			
		||||
    if (tp->t.ucode) {
 | 
			
		||||
        tp->t.ucode = (u64*)osVirtualToPhysical(tp->t.ucode);
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,10 +23,10 @@
 | 
			
		|||
    0x80080C90:("DmaMgr_SendRequest0",),
 | 
			
		||||
    0x80080D0C:("Dmamgr_Start",),
 | 
			
		||||
    0x80080E00:("Dmamgr_Stop",),
 | 
			
		||||
    0x80080E30:("Yaz0_LoadFirstChunk",),
 | 
			
		||||
    0x80080ED0:("Yaz0_LoadNextChunk",),
 | 
			
		||||
    0x80080FF0:("Yaz0_Decompress",),
 | 
			
		||||
    0x80081178:("Yaz0_LoadAndDecompressFile",),
 | 
			
		||||
    0x80080E30:("Yaz0_FirstDMA",),
 | 
			
		||||
    0x80080ED0:("Yaz0_NextDMA",),
 | 
			
		||||
    0x80080FF0:("Yaz0_DecompressImpl",),
 | 
			
		||||
    0x80081178:("Yaz0_Decompress",),
 | 
			
		||||
    0x80081250:("IrqMgr_AddClient",),
 | 
			
		||||
    0x800812DC:("IrqMgr_RemoveClient",),
 | 
			
		||||
    0x80081368:("IrqMgr_SendMesgForClient",),
 | 
			
		||||
| 
						 | 
				
			
			@ -408,7 +408,7 @@
 | 
			
		|||
    0x80091290:("__osGetCompare",),
 | 
			
		||||
    0x800912A0:("osDpGetStatus",),
 | 
			
		||||
    0x800912B0:("osDpSetStatus",),
 | 
			
		||||
    0x800912C0:("_bcopy",),
 | 
			
		||||
    0x800912C0:("bcopy",),
 | 
			
		||||
    0x800915D0:("__osResetGlobalIntMask",),
 | 
			
		||||
    0x80091630:("func_80091630",),
 | 
			
		||||
    0x80091808:("func_80091808",),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
    0x80080150:"idle",
 | 
			
		||||
    0x800805E0:"viconfig",
 | 
			
		||||
    0x80080790:"z_std_dma",
 | 
			
		||||
    0x80080E30:"",
 | 
			
		||||
    0x80080E30:"yaz0",
 | 
			
		||||
    0x80081250:"irqmgr",
 | 
			
		||||
    0x80081820:"CIC6105",
 | 
			
		||||
    0x80081920:"",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -291,8 +291,12 @@
 | 
			
		|||
    0x8009B358:("dmamgrOSThread","OSThread","",0x1b0),
 | 
			
		||||
    0x8009B508:("dmamgrStack","u8","[1280]",0x500),
 | 
			
		||||
    0x8009BA08:("D_8009BA08","UNK_TYPE1","",0x1),
 | 
			
		||||
    0x8009BA10:("yaz0FileBuffer","u8","[1024]",0x400),
 | 
			
		||||
    0x8009BE10:("yaz0DecompStatus","Yaz0DecompState","",0x14),
 | 
			
		||||
    0x8009BA10:("sYaz0DataBuffer","u8","[1024]",0x400),
 | 
			
		||||
    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),
 | 
			
		||||
    0x8009BE34:("D_8009BE34","UNK_TYPE4","",0x4),
 | 
			
		||||
    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')
 | 
			
		||||
 | 
			
		||||
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(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:
 | 
			
		||||
    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;
 | 
			
		||||
dmamgrStack = boot_bss_start + 0x00002008;
 | 
			
		||||
D_8009BA08 = boot_bss_start + 0x00002508;
 | 
			
		||||
yaz0FileBuffer = boot_bss_start + 0x00002510;
 | 
			
		||||
yaz0DecompStatus = boot_bss_start + 0x00002910;
 | 
			
		||||
sYaz0DataBuffer = boot_bss_start + 0x00002510;
 | 
			
		||||
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_8009BE34 = boot_bss_start + 0x00002934;
 | 
			
		||||
romInfoFaultClient = boot_bss_start + 0x00002938;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue