Decompile dmaStart

This commit is contained in:
Ryan Dwyer
2021-02-13 10:49:24 +10:00
parent 161631e4d3
commit db073c46a9
19 changed files with 116 additions and 195 deletions
+5 -5
View File
@@ -52,7 +52,7 @@ void func0f166eb4(void *dst, u32 scratchlen, u32 *romaddrptr, struct fileinfo *i
if (scratchlen == 0) {
// DMA with no inflate
func0000d410(dst, (void *)*romaddrptr, romsize);
dmaExec(dst, (void *)*romaddrptr, romsize);
} else {
// DMA the compressed data to scratch space then inflate
u32 scratchaddr = ((u32)dst + scratchlen) - (romsize + 7 & 0xfffffff8);
@@ -60,7 +60,7 @@ void func0f166eb4(void *dst, u32 scratchlen, u32 *romaddrptr, struct fileinfo *i
if (scratchaddr - (u32)dst < 8) {
info->size = 0;
} else {
func0000d410((void *)scratchaddr, (void *)*romaddrptr, romsize);
dmaExec((void *)scratchaddr, (void *)*romaddrptr, romsize);
info->size = ALIGN16(rzipInflate((void *)scratchaddr, dst, buffer));
}
}
@@ -119,7 +119,7 @@ void func0f166ff0(u16 filenum, void *memaddr, s32 offset, u32 len)
u32 stack[2];
if (fileGetRomSizeByTableAddress((u32 *)&filetable[filenum])) {
func0000d410(memaddr, (void *)((u32)filetable[filenum] + offset), len);
dmaExec(memaddr, (void *)((u32)filetable[filenum] + offset), len);
}
}
@@ -150,7 +150,7 @@ glabel fileGetInflatedLength
/* f1670ac: 00000000 */ nop
.L0f1670b0:
/* f1670b0: 02012024 */ and $a0,$s0,$at
/* f1670b4: 0c003504 */ jal func0000d410
/* f1670b4: 0c003504 */ jal dmaExec
/* f1670b8: 00808025 */ or $s0,$a0,$zero
.L0f1670bc:
/* f1670bc: 0c002277 */ jal rzipIs1173
@@ -189,7 +189,7 @@ glabel fileGetInflatedLength
// stub0f175f58(func0f166ea8((u32 *) &filetable[filenum]), (u32)alignedbuffer, 16);
// } else {
// alignedbuffer = (u8 *)(((u32)alignedbuffer) & ~0xf);
// func0000d410((void *)alignedbuffer, romaddr, 0x40);
// dmaExec((void *)alignedbuffer, romaddr, 0x40);
// }
//
// if (rzipIs1173((void *)alignedbuffer)) {
+1 -1
View File
@@ -21,5 +21,5 @@ void loadTextureList(void)
g_Textures = malloc(len, MEMPOOL_PERMANENT);
func0000d410(g_Textures, &_textureslistSegmentRomStart, len);
dmaExec(g_Textures, &_textureslistSegmentRomStart, len);
}
+1 -1
View File
@@ -700,7 +700,7 @@ void getitleInit(void *addr, u32 arg1)
var80062498 = 0;
var8009cc90 = addr;
func0000d410(var8009cc90, &_getitleSegmentRomStart, ALIGN64(len));
dmaExec(var8009cc90, &_getitleSegmentRomStart, ALIGN64(len));
}
Gfx *getitleRender(Gfx *gdl)
+1 -1
View File
@@ -85,7 +85,7 @@ void fontLoad(u8 *romstart, u8 *romend, struct font **font1, struct font2a4 **fo
struct font *font = malloc(len, MEMPOOL_STAGE);
struct font2a4 *font2a4 = font->unk2a4;
func0000d410(font, romstart, len);
dmaExec(font, romstart, len);
// Convert pointers
for (i = 0; i < 94; i++) {
+2 -2
View File
@@ -221,7 +221,7 @@ glabel func0f16e3fc
/* f16e5c8: 0000c012 */ mflo $t8
/* f16e5cc: 03192821 */ addu $a1,$t8,$t9
/* f16e5d0: afa80024 */ sw $t0,0x24($sp)
/* f16e5d4: 0c003504 */ jal func0000d410
/* f16e5d4: 0c003504 */ jal dmaExec
/* f16e5d8: 010f2021 */ addu $a0,$t0,$t7
/* f16e5dc: 3c0e800b */ lui $t6,%hi(var800aabb4)
/* f16e5e0: 8fa80024 */ lw $t0,0x24($sp)
@@ -273,7 +273,7 @@ glabel func0f16e3fc
/* f16e694: 2718fb40 */ addiu $t8,$t8,-1216
/* f16e698: 000e79c0 */ sll $t7,$t6,0x7
/* f16e69c: 01f82821 */ addu $a1,$t7,$t8
/* f16e6a0: 0c003504 */ jal func0000d410
/* f16e6a0: 0c003504 */ jal dmaExec
/* f16e6a4: afa80024 */ sw $t0,0x24($sp)
/* f16e6a8: 3c19800b */ lui $t9,%hi(var800aabb4)
/* f16e6ac: 8fa80024 */ lw $t0,0x24($sp)
+1 -1
View File
@@ -106,7 +106,7 @@ void tagsAllocatePtrs(void)
// Read 4KB from a random ROM location within 128KB from the start of
// the ROM, and write it to a random memory location between 0x80010000
// and 0x80030ff8. This will corrupt instructions in the lib segment.
func0000d410((u8 *)((random() & 0x1fff8) + 0x80010000), (u8 *)(random() & 0x1fffe), 0x1000);
dmaExec((u8 *)((random() & 0x1fff8) + 0x80010000), (u8 *)(random() & 0x1fffe), 0x1000);
}
}
#endif
+3 -3
View File
@@ -32586,7 +32586,7 @@ glabel func0f082d74
/* f082da0: afa50020 */ sw $a1,0x20($sp)
/* f082da4: 00e02025 */ or $a0,$a3,$zero
/* f082da8: 24060040 */ addiu $a2,$zero,0x40
/* f082dac: 0c003504 */ jal func0000d410
/* f082dac: 0c003504 */ jal dmaExec
/* f082db0: afa70074 */ sw $a3,0x74($sp)
/* f082db4: 3c098007 */ lui $t1,%hi(var8006abbc)
/* f082db8: 8129abbc */ lb $t1,%lo(var8006abbc)($t1)
@@ -32613,7 +32613,7 @@ glabel func0f082d74
/* f082e04: 8faa0020 */ lw $t2,0x20($sp)
/* f082e08: afa30084 */ sw $v1,0x84($sp)
/* f082e0c: afa70074 */ sw $a3,0x74($sp)
/* f082e10: 0c003504 */ jal func0000d410
/* f082e10: 0c003504 */ jal dmaExec
/* f082e14: 01482821 */ addu $a1,$t2,$t0
/* f082e18: 3c098007 */ lui $t1,%hi(var8006abbc)
/* f082e1c: 8129abbc */ lb $t1,%lo(var8006abbc)($t1)
@@ -34951,7 +34951,7 @@ glabel func0f084cf0
/* f084de8: 39e4000f */ xori $a0,$t7,0xf
/* f084dec: 00808025 */ or $s0,$a0,$zero
/* f084df0: 00402825 */ or $a1,$v0,$zero
/* f084df4: 0c003504 */ jal func0000d410
/* f084df4: 0c003504 */ jal dmaExec
/* f084df8: 24060010 */ addiu $a2,$zero,0x10
/* f084dfc: 3c04c757 */ lui $a0,0xc757
/* f084e00: 0fc21338 */ jal add43214321
+1 -1
View File
@@ -4032,7 +4032,7 @@ glabel func0f15b534
/* f15b7e0: 3c010001 */ lui $at,0x1
/* f15b7e4: 3421fffe */ ori $at,$at,0xfffe
/* f15b7e8: 00412824 */ and $a1,$v0,$at
/* f15b7ec: 0c003504 */ jal func0000d410
/* f15b7ec: 0c003504 */ jal dmaExec
/* f15b7f0: 24060040 */ addiu $a2,$zero,0x40
.L0f15b7f4:
/* f15b7f4: 3c04800a */ lui $a0,%hi(var800a491c)
+3 -3
View File
@@ -5443,7 +5443,7 @@ glabel func0f173010
/* f173108: 00065902 */ srl $t3,$a2,0x4
/* f17310c: 000b3100 */ sll $a2,$t3,0x4
/* f173110: 032a2821 */ addu $a1,$t9,$t2
/* f173114: 0c003504 */ jal func0000d410
/* f173114: 0c003504 */ jal dmaExec
/* f173118: afaf0044 */ sw $t7,0x44($sp)
/* f17311c: 8fa30044 */ lw $v1,0x44($sp)
/* f173120: 8fac002c */ lw $t4,0x2c($sp)
@@ -5805,7 +5805,7 @@ glabel texturesLoadConfigs
/* f173600: ac620000 */ sw $v0,0x0($v1)
/* f173604: 24a5b270 */ addiu $a1,$a1,%lo(_textureconfigSegmentRomStart)
/* f173608: 00402025 */ or $a0,$v0,$zero
/* f17360c: 0c003504 */ jal func0000d410
/* f17360c: 0c003504 */ jal dmaExec
/* f173610: 02203025 */ or $a2,$s1,$zero
/* f173614: 3c18800b */ lui $t8,%hi(g_TextureConfigSegment)
/* f173618: 8f18b554 */ lw $t8,%lo(g_TextureConfigSegment)($t8)
@@ -6083,7 +6083,7 @@ glabel texturesLoadConfigs
// s32 i;
//
// g_TextureConfigSegment = malloc(len, MEMPOOL_STAGE);
// func0000d410(g_TextureConfigSegment, &_textureconfigSegmentRomStart, len);
// dmaExec(g_TextureConfigSegment, &_textureconfigSegmentRomStart, len);
//
// var800ab550 = (u32)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart);
// var800ab564 = (Gfx *)((u32)g_TextureConfigSegment - (u32)&_textureconfigSegmentStart + 0x000); // gdl000
+4 -4
View File
@@ -7164,10 +7164,10 @@ u32 var80094ad0 = 0;
u32 var80094ad4 = 0;
u32 var80094ad8 = 0;
u32 var80094adc = 0;
volatile u32 var80094ae0 = 0;
volatile u32 g_DmaNumSlotsBusy = 0;
u32 var80094ae4 = 0;
struct var80094ae8 var80094ae8[32] = {0};
u8 var80094de8[32] = {0};
OSIoMesg g_DmaIoMsgs[32] = {0};
u8 g_DmaSlotsBusy[32] = {0};
OSMesg var80094e08 = NULL;
u32 var80094e0c = 0;
u32 var80094e10 = 0;
@@ -7200,7 +7200,7 @@ u32 var80094e78 = 0;
u32 var80094e7c = 0;
u32 var80094e80 = 0;
u32 var80094e84 = 0;
OSMesgQueue var80094e88 = {0};
OSMesgQueue g_DmaMesgQueue = {0};
u32 var80094ea0 = 0;
u32 var80094ea4 = 0;
u32 var80094ea8 = 0;
+1 -1
View File
@@ -61,7 +61,7 @@ typedef struct
/*0x08*/ void *dramAddr;
/*0x0C*/ u32 devAddr;
/*0x10*/ u32 size;
//OSPiHandle *piHandle; //from the official definition
OSPiHandle *piHandle; //from the official definition
} OSIoMesg;
typedef struct {
+4 -4
View File
@@ -391,11 +391,11 @@ extern OSThread g_FaultThread;
extern u32 g_FaultSp;
extern OSMesgQueue g_FaultMesgQueue;
extern OSMesg g_FaultMesg;
extern volatile u32 var80094ae0;
extern struct var80094ae8 var80094ae8[32];
extern u8 var80094de8[32];
extern volatile u32 g_DmaNumSlotsBusy;
extern OSIoMesg g_DmaIoMsgs[32];
extern volatile u8 g_DmaSlotsBusy[32];
extern OSMesg var80094e08;
extern OSMesgQueue var80094e88;
extern OSMesgQueue g_DmaMesgQueue;
extern u32 var80094ea0;
extern u32 var80094ea4;
extern u32 var80094ea8;
+4 -4
View File
@@ -4,13 +4,13 @@
#include "types.h"
void dmaInit(void);
void func0000d0f8(void *memaddr, void *romaddr, u32 len, bool arg3);
void dmaStart(void *memaddr, u32 romaddr, u32 len, bool priority);
u32 xorDeadbeef(u32 value);
u32 xorDeadbabe(u32 value);
void dmaCheckPiracy(void *memaddr, u32 len);
void func0000d350(void);
void func0000d410(void *memaddr, void *romaddr, u32 len);
void func0000d44c(void *memaddr, void *romaddr, u32 len);
void dmaWait(void);
void dmaExec(void *memaddr, void *romaddr, u32 len);
void dmaExecHighPriority(void *memaddr, void *romaddr, u32 len);
void *func0000d488(void *memaddr, void *romaddr, u32 len);
#endif
-9
View File
@@ -6980,13 +6980,4 @@ struct animationdefinition {
u8 flags;
};
struct var80094ae8 {
u32 unk00;
u32 unk04;
u32 unk08;
u32 unk0c;
u32 unk10;
u32 unk14;
};
#endif
+3 -3
View File
@@ -87,7 +87,7 @@ glabel func000070d0
/* 71d8: 02c0a025 */ or $s4,$s6,$zero
/* 71dc: aea40000 */ sw $a0,0x0($s5)
/* 71e0: 02402825 */ or $a1,$s2,$zero
/* 71e4: 0c003504 */ jal func0000d410
/* 71e4: 0c003504 */ jal dmaExec
/* 71e8: 39c6000f */ xori $a2,$t6,0xf
/* 71ec: 240bfff0 */ addiu $t3,$zero,-16
/* 71f0: 12c0000c */ beqz $s6,.L00007224
@@ -197,7 +197,7 @@ glabel func000070d0
/* 7370: 39e6000f */ xori $a2,$t7,0xf
/* 7374: 02402825 */ or $a1,$s2,$zero
/* 7378: afb61474 */ sw $s6,0x1474($sp)
/* 737c: 0c003504 */ jal func0000d410
/* 737c: 0c003504 */ jal dmaExec
/* 7380: afb30054 */ sw $s3,0x54($sp)
/* 7384: 8fa31474 */ lw $v1,0x1474($sp)
/* 7388: 12c0000b */ beqz $s6,.L000073b8
@@ -230,7 +230,7 @@ glabel func000070d0
/* 73e8: 01e53023 */ subu $a2,$t7,$a1
/* 73ec: 24c6000f */ addiu $a2,$a2,0xf
/* 73f0: 34d8000f */ ori $t8,$a2,0xf
/* 73f4: 0c003504 */ jal func0000d410
/* 73f4: 0c003504 */ jal dmaExec
/* 73f8: 3b06000f */ xori $a2,$t8,0xf
/* 73fc: 8fa40048 */ lw $a0,0x48($sp)
/* 7400: 02402825 */ or $a1,$s2,$zero
+58 -128
View File
@@ -12,129 +12,59 @@
#include "types.h"
u8 g_LoadState = 0;
u32 var8005d9a4 = 0x00000000;
u32 var8005d9a8 = 0x00000000;
u32 var8005d9ac = 0x00000000;
void dmaInit(void)
{
s32 i;
for (i = 0; i < ARRAYCOUNT(var80094de8); i++) {
var80094de8[i] = 0;
for (i = 0; i < ARRAYCOUNT(g_DmaSlotsBusy); i++) {
g_DmaSlotsBusy[i] = 0;
}
var80094ae0 = 0;
g_DmaNumSlotsBusy = 0;
osCreateMesgQueue(&var80094e88, &var80094e08, 0x20);
osCreateMesgQueue(&g_DmaMesgQueue, &var80094e08, 0x20);
}
GLOBAL_ASM(
glabel func0000d0f8
/* d0f8: 27bdffa8 */ addiu $sp,$sp,-88
/* d0fc: afb70044 */ sw $s7,0x44($sp)
/* d100: 3c178009 */ lui $s7,%hi(var80094ae0)
/* d104: 26f74ae0 */ addiu $s7,$s7,%lo(var80094ae0)
/* d108: 8eee0000 */ lw $t6,0x0($s7)
/* d10c: afb40038 */ sw $s4,0x38($sp)
/* d110: afb30034 */ sw $s3,0x34($sp)
/* d114: afb00028 */ sw $s0,0x28($sp)
/* d118: 00c08025 */ or $s0,$a2,$zero
/* d11c: 00809825 */ or $s3,$a0,$zero
/* d120: 00a0a025 */ or $s4,$a1,$zero
/* d124: afbf004c */ sw $ra,0x4c($sp)
/* d128: afbe0048 */ sw $s8,0x48($sp)
/* d12c: afb60040 */ sw $s6,0x40($sp)
/* d130: afb5003c */ sw $s5,0x3c($sp)
/* d134: afb20030 */ sw $s2,0x30($sp)
/* d138: afb1002c */ sw $s1,0x2c($sp)
/* d13c: 11c00003 */ beqz $t6,.L0000d14c
/* d140: afa70064 */ sw $a3,0x64($sp)
/* d144: 0c0034d4 */ jal func0000d350
/* d148: 00000000 */ nop
.L0000d14c:
/* d14c: 3c010008 */ lui $at,0x8
/* d150: 0201082b */ sltu $at,$s0,$at
/* d154: 10200005 */ beqz $at,.L0000d16c
/* d158: 02602025 */ or $a0,$s3,$zero
/* d15c: 320f3fff */ andi $t7,$s0,0x3fff
/* d160: 0010f382 */ srl $s8,$s0,0xe
/* d164: 10000003 */ b .L0000d174
/* d168: afaf0050 */ sw $t7,0x50($sp)
.L0000d16c:
/* d16c: 0000f025 */ or $s8,$zero,$zero
/* d170: afb00050 */ sw $s0,0x50($sp)
.L0000d174:
/* d174: 0c013920 */ jal osInvalDCache
/* d178: 02002825 */ or $a1,$s0,$zero
/* d17c: 13c0001b */ beqz $s8,.L0000d1ec
/* d180: 00009025 */ or $s2,$zero,$zero
/* d184: 3c108009 */ lui $s0,%hi(var80094de8)
/* d188: 3c118009 */ lui $s1,%hi(var80094ae8)
/* d18c: 3c168009 */ lui $s6,%hi(var80094e88)
/* d190: 26d64e88 */ addiu $s6,$s6,%lo(var80094e88)
/* d194: 26314ae8 */ addiu $s1,$s1,%lo(var80094ae8)
/* d198: 26104de8 */ addiu $s0,$s0,%lo(var80094de8)
/* d19c: 24150001 */ addiu $s5,$zero,0x1
.L0000d1a0:
/* d1a0: a2150000 */ sb $s5,0x0($s0)
/* d1a4: 8ee20000 */ lw $v0,0x0($s7)
/* d1a8: 24194000 */ addiu $t9,$zero,0x4000
/* d1ac: afb90014 */ sw $t9,0x14($sp)
/* d1b0: 24580001 */ addiu $t8,$v0,0x1
/* d1b4: aef80000 */ sw $t8,0x0($s7)
/* d1b8: 02202025 */ or $a0,$s1,$zero
/* d1bc: 8fa50064 */ lw $a1,0x64($sp)
/* d1c0: 00003025 */ or $a2,$zero,$zero
/* d1c4: 02803825 */ or $a3,$s4,$zero
/* d1c8: afb30010 */ sw $s3,0x10($sp)
/* d1cc: 0c01394c */ jal osPiStartDma
/* d1d0: afb60018 */ sw $s6,0x18($sp)
/* d1d4: 26520001 */ addiu $s2,$s2,0x1
/* d1d8: 26100001 */ addiu $s0,$s0,0x1
/* d1dc: 26310018 */ addiu $s1,$s1,0x18
/* d1e0: 26944000 */ addiu $s4,$s4,0x4000
/* d1e4: 165effee */ bne $s2,$s8,.L0000d1a0
/* d1e8: 26734000 */ addiu $s3,$s3,0x4000
.L0000d1ec:
/* d1ec: 8fa30050 */ lw $v1,0x50($sp)
/* d1f0: 3c168009 */ lui $s6,%hi(var80094e88)
/* d1f4: 26d64e88 */ addiu $s6,$s6,%lo(var80094e88)
/* d1f8: 10600014 */ beqz $v1,.L0000d24c
/* d1fc: 24150001 */ addiu $s5,$zero,0x1
/* d200: 3c018009 */ lui $at,%hi(var80094de8)
/* d204: 00320821 */ addu $at,$at,$s2
/* d208: a0354de8 */ sb $s5,%lo(var80094de8)($at)
/* d20c: 8ee20000 */ lw $v0,0x0($s7)
/* d210: 00124880 */ sll $t1,$s2,0x2
/* d214: 01324823 */ subu $t1,$t1,$s2
/* d218: 3c0a8009 */ lui $t2,%hi(var80094ae8)
/* d21c: 254a4ae8 */ addiu $t2,$t2,%lo(var80094ae8)
/* d220: 000948c0 */ sll $t1,$t1,0x3
/* d224: 24480001 */ addiu $t0,$v0,0x1
/* d228: aee80000 */ sw $t0,0x0($s7)
/* d22c: 012a2021 */ addu $a0,$t1,$t2
/* d230: 8fa50064 */ lw $a1,0x64($sp)
/* d234: 00003025 */ or $a2,$zero,$zero
/* d238: 02803825 */ or $a3,$s4,$zero
/* d23c: afb30010 */ sw $s3,0x10($sp)
/* d240: afa30014 */ sw $v1,0x14($sp)
/* d244: 0c01394c */ jal osPiStartDma
/* d248: afb60018 */ sw $s6,0x18($sp)
.L0000d24c:
/* d24c: 8fbf004c */ lw $ra,0x4c($sp)
/* d250: 8fb00028 */ lw $s0,0x28($sp)
/* d254: 8fb1002c */ lw $s1,0x2c($sp)
/* d258: 8fb20030 */ lw $s2,0x30($sp)
/* d25c: 8fb30034 */ lw $s3,0x34($sp)
/* d260: 8fb40038 */ lw $s4,0x38($sp)
/* d264: 8fb5003c */ lw $s5,0x3c($sp)
/* d268: 8fb60040 */ lw $s6,0x40($sp)
/* d26c: 8fb70044 */ lw $s7,0x44($sp)
/* d270: 8fbe0048 */ lw $s8,0x48($sp)
/* d274: 03e00008 */ jr $ra
/* d278: 27bd0058 */ addiu $sp,$sp,0x58
);
void dmaStart(void *memaddr, u32 romaddr, u32 len, bool priority)
{
u32 numiterations;
u32 remainder;
s32 i;
if (g_DmaNumSlotsBusy) {
dmaWait();
}
if (len < 0x4000 * ARRAYCOUNT(g_DmaIoMsgs)) {
numiterations = len / 0x4000;
remainder = len % 0x4000;
} else {
// DMA size is 0x80000 or more. It won't fit in the queue, so do it
// all in one call to osPiStartDma using the remainder variable.
numiterations = 0;
remainder = len;
}
osInvalDCache(memaddr, len);
for (i = 0; i != numiterations; i++) {
g_DmaSlotsBusy[i] = true;
g_DmaNumSlotsBusy++;
osPiStartDma(&g_DmaIoMsgs[i], priority, 0, romaddr, memaddr, 0x4000, &g_DmaMesgQueue);
romaddr += 0x4000;
memaddr = (void *)((u32)memaddr + 0x4000);
}
if (remainder) {
g_DmaSlotsBusy[i] = true;
g_DmaNumSlotsBusy++;
osPiStartDma(&g_DmaIoMsgs[i], priority, 0, romaddr, memaddr, remainder, &g_DmaMesgQueue);
}
}
u32 xorDeadbeef(u32 value)
{
@@ -178,37 +108,37 @@ void dmaCheckPiracy(void *memaddr, u32 len)
}
}
void func0000d350(void)
void dmaWait(void)
{
u32 stack;
struct var80094ae8 *msg;
OSIoMesg *msg;
s32 i;
while (var80094ae0) {
osRecvMesg(&var80094e88, (OSMesg) &msg, OS_MESG_BLOCK);
while (g_DmaNumSlotsBusy) {
osRecvMesg(&g_DmaMesgQueue, (OSMesg) &msg, OS_MESG_BLOCK);
for (i = 0; i < ARRAYCOUNT(var80094ae8); i++) {
if (&var80094ae8[i] == msg) {
for (i = 0; i < ARRAYCOUNT(g_DmaIoMsgs); i++) {
if (&g_DmaIoMsgs[i] == msg) {
break;
}
}
var80094de8[i] = 0;
var80094ae0--;
g_DmaSlotsBusy[i] = false;
g_DmaNumSlotsBusy--;
}
}
void func0000d410(void *memaddr, void *romaddr, u32 len)
void dmaExec(void *memaddr, void *romaddr, u32 len)
{
func0000d0f8(memaddr, romaddr, len, false);
func0000d350();
dmaStart(memaddr, (u32) romaddr, len, false);
dmaWait();
dmaCheckPiracy(memaddr, len);
}
void func0000d44c(void *memaddr, void *romaddr, u32 len)
void dmaExecHighPriority(void *memaddr, void *romaddr, u32 len)
{
func0000d0f8(memaddr, romaddr, len, true);
func0000d350();
dmaStart(memaddr, (u32) romaddr, len, true);
dmaWait();
dmaCheckPiracy(memaddr, len);
}
@@ -243,7 +173,7 @@ glabel func0000d488
/* d4ec: 3b06000f */ xori $a2,$t8,0xf
/* d4f0: afa4001c */ sw $a0,0x1c($sp)
/* d4f4: afa30018 */ sw $v1,0x18($sp)
/* d4f8: 0c003504 */ jal func0000d410
/* d4f8: 0c003504 */ jal dmaExec
/* d4fc: 01c02825 */ or $a1,$t6,$zero
/* d500: 8fa30018 */ lw $v1,0x18($sp)
/* d504: 8fa4001c */ lw $a0,0x1c($sp)
+19 -19
View File
@@ -785,18 +785,18 @@ glabel func0000eb2c
/* eb68: ae200000 */ sw $zero,0x0($s1)
/* eb6c: 00809025 */ or $s2,$a0,$zero
/* eb70: 02002825 */ or $a1,$s0,$zero
/* eb74: 0c003504 */ jal func0000d410
/* eb74: 0c003504 */ jal dmaExec
/* eb78: 24060100 */ addiu $a2,$zero,0x100
/* eb7c: 8e580004 */ lw $t8,0x4($s2)
/* eb80: 02402025 */ or $a0,$s2,$zero
/* eb84: 24060100 */ addiu $a2,$zero,0x100
/* eb88: 0c003504 */ jal func0000d410
/* eb88: 0c003504 */ jal dmaExec
/* eb8c: 02182821 */ addu $a1,$s0,$t8
/* eb90: 8e59000c */ lw $t9,0xc($s2)
/* eb94: 02402025 */ or $a0,$s2,$zero
/* eb98: 24060100 */ addiu $a2,$zero,0x100
/* eb9c: 0219a021 */ addu $s4,$s0,$t9
/* eba0: 0c003504 */ jal func0000d410
/* eba0: 0c003504 */ jal dmaExec
/* eba4: 02802825 */ or $a1,$s4,$zero
/* eba8: 864a000e */ lh $t2,0xe($s2)
/* ebac: 3c098009 */ lui $t1,%hi(var80094ea0)
@@ -820,7 +820,7 @@ glabel func0000eb2c
/* ebf4: ae220000 */ sw $v0,0x0($s1)
/* ebf8: 00402025 */ or $a0,$v0,$zero
/* ebfc: 02802825 */ or $a1,$s4,$zero
/* ec00: 0c003504 */ jal func0000d410
/* ec00: 0c003504 */ jal dmaExec
/* ec04: 02603025 */ or $a2,$s3,$zero
/* ec08: 3c098009 */ lui $t1,%hi(var80094ea0)
/* ec0c: 8e2f0000 */ lw $t7,0x0($s1)
@@ -949,7 +949,7 @@ glabel func0000ed68
/* edb8: 02402025 */ or $a0,$s2,$zero
.L0000edbc:
/* edbc: 02802825 */ or $a1,$s4,$zero
/* edc0: 0c003513 */ jal func0000d44c
/* edc0: 0c003513 */ jal dmaExecHighPriority
/* edc4: 24060040 */ addiu $a2,$zero,0x40
/* edc8: 00008025 */ or $s0,$zero,$zero
/* edcc: 00001825 */ or $v1,$zero,$zero
@@ -964,7 +964,7 @@ glabel func0000ed68
/* edec: 020a8021 */ addu $s0,$s0,$t2
/* edf0: 02202025 */ or $a0,$s1,$zero
/* edf4: 02802825 */ or $a1,$s4,$zero
/* edf8: 0c003513 */ jal func0000d44c
/* edf8: 0c003513 */ jal dmaExecHighPriority
/* edfc: 24060040 */ addiu $a2,$zero,0x40
/* ee00: 00002025 */ or $a0,$zero,$zero
/* ee04: 00001025 */ or $v0,$zero,$zero
@@ -1028,7 +1028,7 @@ glabel func0000ee88
/* eed8: 02402025 */ or $a0,$s2,$zero
.L0000eedc:
/* eedc: 02802825 */ or $a1,$s4,$zero
/* eee0: 0c003513 */ jal func0000d44c
/* eee0: 0c003513 */ jal dmaExecHighPriority
/* eee4: 24060040 */ addiu $a2,$zero,0x40
/* eee8: 00008025 */ or $s0,$zero,$zero
/* eeec: 00001825 */ or $v1,$zero,$zero
@@ -1043,7 +1043,7 @@ glabel func0000ee88
/* ef0c: 020a8021 */ addu $s0,$s0,$t2
/* ef10: 02202025 */ or $a0,$s1,$zero
/* ef14: 02802825 */ or $a1,$s4,$zero
/* ef18: 0c003513 */ jal func0000d44c
/* ef18: 0c003513 */ jal dmaExecHighPriority
/* ef1c: 24060040 */ addiu $a2,$zero,0x40
/* ef20: 00002025 */ or $a0,$zero,$zero
/* ef24: 00001025 */ or $v0,$zero,$zero
@@ -1107,7 +1107,7 @@ glabel func0000efa8
/* eff8: 02402025 */ or $a0,$s2,$zero
.L0000effc:
/* effc: 02802825 */ or $a1,$s4,$zero
/* f000: 0c003513 */ jal func0000d44c
/* f000: 0c003513 */ jal dmaExecHighPriority
/* f004: 24060140 */ addiu $a2,$zero,0x140
/* f008: 00008025 */ or $s0,$zero,$zero
/* f00c: 00001825 */ or $v1,$zero,$zero
@@ -1122,7 +1122,7 @@ glabel func0000efa8
/* f02c: 020a8021 */ addu $s0,$s0,$t2
/* f030: 02202025 */ or $a0,$s1,$zero
/* f034: 02802825 */ or $a1,$s4,$zero
/* f038: 0c003513 */ jal func0000d44c
/* f038: 0c003513 */ jal dmaExecHighPriority
/* f03c: 24060140 */ addiu $a2,$zero,0x140
/* f040: 00002025 */ or $a0,$zero,$zero
/* f044: 00001025 */ or $v0,$zero,$zero
@@ -1195,7 +1195,7 @@ glabel func0000f0d4
/* f134: 02402025 */ or $a0,$s2,$zero
.L0000f138:
/* f138: 02802825 */ or $a1,$s4,$zero
/* f13c: 0c003513 */ jal func0000d44c
/* f13c: 0c003513 */ jal dmaExecHighPriority
/* f140: 24060040 */ addiu $a2,$zero,0x40
/* f144: 00008025 */ or $s0,$zero,$zero
/* f148: 00001825 */ or $v1,$zero,$zero
@@ -1210,7 +1210,7 @@ glabel func0000f0d4
/* f168: 020a8021 */ addu $s0,$s0,$t2
/* f16c: 02202025 */ or $a0,$s1,$zero
/* f170: 02802825 */ or $a1,$s4,$zero
/* f174: 0c003513 */ jal func0000d44c
/* f174: 0c003513 */ jal dmaExecHighPriority
/* f178: 24060040 */ addiu $a2,$zero,0x40
/* f17c: 00002025 */ or $a0,$zero,$zero
/* f180: 00001025 */ or $v0,$zero,$zero
@@ -1285,7 +1285,7 @@ glabel func0000f228
/* f278: 02402025 */ or $a0,$s2,$zero
.L0000f27c:
/* f27c: 02802825 */ or $a1,$s4,$zero
/* f280: 0c003513 */ jal func0000d44c
/* f280: 0c003513 */ jal dmaExecHighPriority
/* f284: 24060040 */ addiu $a2,$zero,0x40
/* f288: 00008025 */ or $s0,$zero,$zero
/* f28c: 00001825 */ or $v1,$zero,$zero
@@ -1300,7 +1300,7 @@ glabel func0000f228
/* f2ac: 020a8021 */ addu $s0,$s0,$t2
/* f2b0: 02202025 */ or $a0,$s1,$zero
/* f2b4: 02802825 */ or $a1,$s4,$zero
/* f2b8: 0c003513 */ jal func0000d44c
/* f2b8: 0c003513 */ jal dmaExecHighPriority
/* f2bc: 24060040 */ addiu $a2,$zero,0x40
/* f2c0: 00002025 */ or $a0,$zero,$zero
/* f2c4: 00001025 */ or $v0,$zero,$zero
@@ -1524,7 +1524,7 @@ glabel func0000f49c
/* f5c4: afab0024 */ sw $t3,0x24($sp)
/* f5c8: a7a900aa */ sh $t1,0xaa($sp)
/* f5cc: 24060040 */ addiu $a2,$zero,0x40
/* f5d0: 0c003513 */ jal func0000d44c
/* f5d0: 0c003513 */ jal dmaExecHighPriority
/* f5d4: 30f1ffff */ andi $s1,$a3,0xffff
/* f5d8: 8e040000 */ lw $a0,0x0($s0)
/* f5dc: 0c003b5a */ jal func0000ed68
@@ -1784,7 +1784,7 @@ glabel func0000f804
/* f96c: 00408825 */ or $s1,$v0,$zero
/* f970: 24a5bf30 */ addiu $a1,$a1,%lo(_seqctlSegmentRomStart)
/* f974: 00402025 */ or $a0,$v0,$zero
/* f978: 0c003504 */ jal func0000d410
/* f978: 0c003504 */ jal dmaExec
/* f97c: 02003025 */ or $a2,$s0,$zero
/* f980: 3c0500d0 */ lui $a1,%hi(_seqtblSegmentRomStart)
/* f984: 24a55f90 */ addiu $a1,$a1,%lo(_seqtblSegmentRomStart)
@@ -1808,7 +1808,7 @@ glabel func0000f804
/* f9cc: ae020000 */ sw $v0,0x0($s0)
/* f9d0: 02202825 */ or $a1,$s1,$zero
/* f9d4: 00402025 */ or $a0,$v0,$zero
/* f9d8: 0c003504 */ jal func0000d410
/* f9d8: 0c003504 */ jal dmaExec
/* f9dc: 24060010 */ addiu $a2,$zero,0x10
/* f9e0: 8e0d0000 */ lw $t5,0x0($s0)
/* f9e4: 3c068009 */ lui $a2,%hi(var800951f0)
@@ -1829,7 +1829,7 @@ glabel func0000f804
/* fa20: 00c17824 */ and $t7,$a2,$at
/* fa24: 01e03025 */ or $a2,$t7,$zero
/* fa28: 00402025 */ or $a0,$v0,$zero
/* fa2c: 0c003504 */ jal func0000d410
/* fa2c: 0c003504 */ jal dmaExec
/* fa30: 02202825 */ or $a1,$s1,$zero
/* fa34: 8e040000 */ lw $a0,0x0($s0)
/* fa38: 00001825 */ or $v1,$zero,$zero
@@ -2040,7 +2040,7 @@ glabel func0000fc48
/* fd04: 00e36021 */ addu $t4,$a3,$v1
/* fd08: 01862023 */ subu $a0,$t4,$a2
/* fd0c: afa40028 */ sw $a0,0x28($sp)
/* fd10: 0c003504 */ jal func0000d410
/* fd10: 0c003504 */ jal dmaExec
/* fd14: afa7143c */ sw $a3,0x143c($sp)
/* fd18: 8fa40028 */ lw $a0,0x28($sp)
/* fd1c: 8fa5143c */ lw $a1,0x143c($sp)
+1 -1
View File
@@ -49,7 +49,7 @@ glabel func000233c0
/* 233fc: 24a5d1a0 */ addiu $a1,$a1,%lo(_animationsTableRomStart)
/* 23400: 00402025 */ or $a0,$v0,$zero
/* 23404: 02003025 */ or $a2,$s0,$zero
/* 23408: 0c003504 */ jal func0000d410
/* 23408: 0c003504 */ jal dmaExec
/* 2340c: afa20020 */ sw $v0,0x20($sp)
/* 23410: 8fa30020 */ lw $v1,0x20($sp)
/* 23414: 3c04800a */ lui $a0,%hi(var8009a894)
+4 -4
View File
@@ -351,7 +351,7 @@ glabel mainInit
/* d764: 256bfe00 */ addiu $t3,$t3,%lo(_accessingpakSegmentRomEnd)
/* d768: 39c4003f */ xori $a0,$t6,0x3f
/* d76c: 00808025 */ or $s0,$a0,$zero
/* d770: 0c003504 */ jal func0000d410
/* d770: 0c003504 */ jal dmaExec
/* d774: 01653023 */ subu $a2,$t3,$a1
/* d778: 1000000e */ b .L0000d7b4
/* d77c: 3c01ffff */ lui $at,0xffff
@@ -366,7 +366,7 @@ glabel mainInit
/* d79c: 25eff550 */ addiu $t7,$t7,%lo(_copyrightSegmentRomEnd)
/* d7a0: 3b04003f */ xori $a0,$t8,0x3f
/* d7a4: 00808025 */ or $s0,$a0,$zero
/* d7a8: 0c003504 */ jal func0000d410
/* d7a8: 0c003504 */ jal dmaExec
/* d7ac: 01e53023 */ subu $a2,$t7,$a1
/* d7b0: 3c01ffff */ lui $at,0xffff
.L0000d7b4:
@@ -676,9 +676,9 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400";
// // the texture format can be changed then copied into the framebuffer in
// // the correct format.
// if (g_DoBootPakMenu) {
// func0000d410(fb, &_accessingpakSegmentRomStart, &_accessingpakSegmentRomEnd - &_accessingpakSegmentRomStart);
// dmaExec(fb, &_accessingpakSegmentRomStart, &_accessingpakSegmentRomEnd - &_accessingpakSegmentRomStart);
// } else {
// func0000d410(fb, &_copyrightSegmentRomStart, &_copyrightSegmentRomEnd - &_copyrightSegmentRomStart);
// dmaExec(fb, &_copyrightSegmentRomStart, &_copyrightSegmentRomEnd - &_copyrightSegmentRomStart);
// }
//
// // Prepare space for the texture immediately before the framebuffer