Decompile func0f166eb4
This commit is contained in:
parent
7f31fcb21e
commit
52a50c018e
|
|
@ -324,7 +324,7 @@ glabel boot00001180
|
|||
/* 140c: afbc0070 */ sw $gp,0x70($sp)
|
||||
/* 1410: afbd0074 */ sw $sp,0x74($sp)
|
||||
/* 1414: afbe0078 */ sw $s8,0x78($sp)
|
||||
/* 1418: 0c001d3c */ jal func000074f0
|
||||
/* 1418: 0c001d3c */ jal rzipInflate
|
||||
/* 141c: 00000000 */ nop
|
||||
/* 1420: 8fbf0000 */ lw $ra,0x0($sp)
|
||||
/* 1424: 8fa10004 */ lw $at,0x4($sp)
|
||||
|
|
|
|||
|
|
@ -44,61 +44,27 @@ u32 func0f166ea8(u32 *filetableaddr)
|
|||
return 0;
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f166eb4
|
||||
/* f166eb4: 27bdebd0 */ addiu $sp,$sp,-5168
|
||||
/* f166eb8: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f166ebc: afa41430 */ sw $a0,0x1430($sp)
|
||||
/* f166ec0: afa51434 */ sw $a1,0x1434($sp)
|
||||
/* f166ec4: afa61438 */ sw $a2,0x1438($sp)
|
||||
/* f166ec8: afa7143c */ sw $a3,0x143c($sp)
|
||||
/* f166ecc: 0fc59b95 */ jal fileGetRomSizeByTableAddress
|
||||
/* f166ed0: 00c02025 */ or $a0,$a2,$zero
|
||||
/* f166ed4: 8fa41434 */ lw $a0,0x1434($sp)
|
||||
/* f166ed8: 8fa71430 */ lw $a3,0x1430($sp)
|
||||
/* f166edc: 8fa91438 */ lw $t1,0x1438($sp)
|
||||
/* f166ee0: 14800006 */ bnez $a0,.L0f166efc
|
||||
/* f166ee4: 00403025 */ or $a2,$v0,$zero
|
||||
/* f166ee8: 00e02025 */ or $a0,$a3,$zero
|
||||
/* f166eec: 0c003504 */ jal func0000d410
|
||||
/* f166ef0: 8d250000 */ lw $a1,0x0($t1)
|
||||
/* f166ef4: 1000001c */ b .L0f166f68
|
||||
/* f166ef8: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
.L0f166efc:
|
||||
/* f166efc: 2408fff8 */ addiu $t0,$zero,-8
|
||||
/* f166f00: 244e0007 */ addiu $t6,$v0,0x7
|
||||
/* f166f04: 01c87824 */ and $t7,$t6,$t0
|
||||
/* f166f08: 00e41821 */ addu $v1,$a3,$a0
|
||||
/* f166f0c: 006fc023 */ subu $t8,$v1,$t7
|
||||
/* f166f10: 0307c823 */ subu $t9,$t8,$a3
|
||||
/* f166f14: 2f210008 */ sltiu $at,$t9,0x8
|
||||
/* f166f18: 10200004 */ beqz $at,.L0f166f2c
|
||||
/* f166f1c: 24cb0007 */ addiu $t3,$a2,0x7
|
||||
/* f166f20: 8faa143c */ lw $t2,0x143c($sp)
|
||||
/* f166f24: 1000000f */ b .L0f166f64
|
||||
/* f166f28: ad400000 */ sw $zero,0x0($t2)
|
||||
.L0f166f2c:
|
||||
/* f166f2c: 01686024 */ and $t4,$t3,$t0
|
||||
/* f166f30: 006c2023 */ subu $a0,$v1,$t4
|
||||
/* f166f34: 8d250000 */ lw $a1,0x0($t1)
|
||||
/* f166f38: 0c003504 */ jal func0000d410
|
||||
/* f166f3c: afa4001c */ sw $a0,0x1c($sp)
|
||||
/* f166f40: 8fa4001c */ lw $a0,0x1c($sp)
|
||||
/* f166f44: 8fa51430 */ lw $a1,0x1430($sp)
|
||||
/* f166f48: 0c001d3c */ jal func000074f0
|
||||
/* f166f4c: 27a6002c */ addiu $a2,$sp,0x2c
|
||||
/* f166f50: 8fb8143c */ lw $t8,0x143c($sp)
|
||||
/* f166f54: 244d000f */ addiu $t5,$v0,0xf
|
||||
/* f166f58: 35ae000f */ ori $t6,$t5,0xf
|
||||
/* f166f5c: 39cf000f */ xori $t7,$t6,0xf
|
||||
/* f166f60: af0f0000 */ sw $t7,0x0($t8)
|
||||
.L0f166f64:
|
||||
/* f166f64: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
.L0f166f68:
|
||||
/* f166f68: 27bd1430 */ addiu $sp,$sp,0x1430
|
||||
/* f166f6c: 03e00008 */ jr $ra
|
||||
/* f166f70: 00000000 */ nop
|
||||
);
|
||||
void func0f166eb4(void *dst, u32 scratchlen, u32 *romaddrptr, struct fileinfo *info)
|
||||
{
|
||||
u32 romsize = fileGetRomSizeByTableAddress(romaddrptr);
|
||||
u8 buffer[5 * 1024];
|
||||
u32 tmp;
|
||||
|
||||
if (scratchlen == 0) {
|
||||
// DMA with no inflate
|
||||
func0000d410(dst, (void *)*romaddrptr, romsize);
|
||||
} else {
|
||||
// DMA the compressed data to scratch space then inflate
|
||||
u32 scratchaddr = ((u32)dst + scratchlen) - (romsize + 7 & 0xfffffff8);
|
||||
|
||||
if (scratchaddr - (u32)dst < 8) {
|
||||
info->size = 0;
|
||||
} else {
|
||||
func0000d410((void *)scratchaddr, (void *)*romaddrptr, romsize);
|
||||
info->size = ALIGN16(rzipInflate((void *)scratchaddr, dst, buffer));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f166f74
|
||||
|
|
|
|||
|
|
@ -7356,7 +7356,7 @@ glabel func0f15d9a8
|
|||
/* f15d9c4: 8fa51424 */ lw $a1,0x1424($sp)
|
||||
/* f15d9c8: 10400005 */ beqz $v0,.L0f15d9e0
|
||||
/* f15d9cc: 8fa61428 */ lw $a2,0x1428($sp)
|
||||
/* f15d9d0: 0c001d3c */ jal func000074f0
|
||||
/* f15d9d0: 0c001d3c */ jal rzipInflate
|
||||
/* f15d9d4: 27a6001c */ addiu $a2,$sp,0x1c
|
||||
/* f15d9d8: 10000004 */ b .L0f15d9ec
|
||||
/* f15d9dc: 00401825 */ or $v1,$v0,$zero
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ glabel func0f16e818
|
|||
/* f16ea7c: 3c04800b */ lui $a0,%hi(var800ab540)
|
||||
/* f16ea80: 8c84b540 */ lw $a0,%lo(var800ab540)($a0)
|
||||
/* f16ea84: 02802825 */ or $a1,$s4,$zero
|
||||
/* f16ea88: 0c001d3c */ jal func000074f0
|
||||
/* f16ea88: 0c001d3c */ jal rzipInflate
|
||||
/* f16ea8c: 27a6006c */ addiu $a2,$sp,0x6c
|
||||
/* f16ea90: 02802025 */ or $a0,$s4,$zero
|
||||
/* f16ea94: 02e02825 */ or $a1,$s7,$zero
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ void *fileGetRomAddress(s32 filenum);
|
|||
u32 fileGetRomSizeByTableAddress(u32 *filetableaddr);
|
||||
s32 fileGetRomSizeByFileNum(s32 filenum);
|
||||
u32 func0f166ea8(u32 *filetableaddr);
|
||||
void func0f166eb4(void *ptr, u32 len, void *table, struct fileinfo *info);
|
||||
void func0f166eb4(void *dst, u32 scratchlen, u32 *romaddrptr, struct fileinfo *info);
|
||||
void func0f166f74(void);
|
||||
void func0f166ff0(u16 filenum, void *memaddr, s32 offset, u32 len);
|
||||
u32 fileGetInflatedLength(u32 filenum);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#include <ultra64.h>
|
||||
#include "types.h"
|
||||
|
||||
u32 func000074f0(void *src, void *dst, void *arg2);
|
||||
u32 rzipInflate(void *src, void *dst, void *tmpbuffer);
|
||||
u32 func00007908(void);
|
||||
u32 func0000796c(void);
|
||||
u32 func00007a10(void);
|
||||
|
|
|
|||
|
|
@ -234,7 +234,7 @@ glabel func000070d0
|
|||
/* 73f8: 3b06000f */ xori $a2,$t8,0xf
|
||||
/* 73fc: 8fa40048 */ lw $a0,0x48($sp)
|
||||
/* 7400: 02402825 */ or $a1,$s2,$zero
|
||||
/* 7404: 0c001d3c */ jal func000074f0
|
||||
/* 7404: 0c001d3c */ jal rzipInflate
|
||||
/* 7408: 27a60068 */ addiu $a2,$sp,0x68
|
||||
/* 740c: 26100001 */ addiu $s0,$s0,0x1
|
||||
/* 7410: 0216082b */ sltu $at,$s0,$s6
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ const char var7005261c[] =
|
|||
"RareZipAsmDecompress: input not in any known rare zip format\n";
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func000074f0
|
||||
glabel rzipInflate
|
||||
/* 74f0: 27bdf578 */ addiu $sp,$sp,-2696
|
||||
/* 74f4: afb00a48 */ sw $s0,0xa48($sp)
|
||||
/* 74f8: afb10a4c */ sw $s1,0xa4c($sp)
|
||||
|
|
|
|||
|
|
@ -2044,7 +2044,7 @@ glabel func0000fc48
|
|||
/* fd14: afa7143c */ sw $a3,0x143c($sp)
|
||||
/* fd18: 8fa40028 */ lw $a0,0x28($sp)
|
||||
/* fd1c: 8fa5143c */ lw $a1,0x143c($sp)
|
||||
/* fd20: 0c001d3c */ jal func000074f0
|
||||
/* fd20: 0c001d3c */ jal rzipInflate
|
||||
/* fd24: 27a60034 */ addiu $a2,$sp,0x34
|
||||
/* fd28: 02002025 */ or $a0,$s0,$zero
|
||||
/* fd2c: 0c00e34c */ jal func00038d30
|
||||
|
|
|
|||
|
|
@ -374,7 +374,7 @@ glabel mainInit
|
|||
/* d7b8: 02012821 */ addu $a1,$s0,$at
|
||||
/* d7bc: afa50048 */ sw $a1,0x48($sp)
|
||||
/* d7c0: 02002025 */ or $a0,$s0,$zero
|
||||
/* d7c4: 0c001d3c */ jal func000074f0
|
||||
/* d7c4: 0c001d3c */ jal rzipInflate
|
||||
/* d7c8: 27a60050 */ addiu $a2,$sp,0x50
|
||||
/* d7cc: 3c050004 */ lui $a1,0x4
|
||||
/* d7d0: 8faa0048 */ lw $t2,0x48($sp)
|
||||
|
|
@ -686,7 +686,7 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400";
|
|||
// texture = fb - 507 * 48;
|
||||
//
|
||||
// // Convert the texture format? Probably reading from fb and writing to texture
|
||||
// func000074f0(fb, texture, &sp50);
|
||||
// rzipInflate(fb, texture, &sp50);
|
||||
//
|
||||
// // Clear the framebuffer
|
||||
// // This seems a bit wasteful. The buffer is 640x480, so the y increment
|
||||
|
|
|
|||
Loading…
Reference in New Issue