mirror of
https://github.com/zeldaret/tmc
synced 2026-08-03 08:53:18 -04:00
decompile _DmaCopy
This commit is contained in:
+5
-5
@@ -55,7 +55,7 @@ static void sub_08050624(u32);
|
||||
static void sub_0805066C(void);
|
||||
static void sub_080507FC(void);
|
||||
|
||||
extern void sub_0801D66C(const void* src, void* dest, u32 size);
|
||||
extern void _DmaCopy(const void* src, void* dest, u32 size);
|
||||
extern void sub_08056FEC(u32, struct_020227E8*);
|
||||
extern void sub_0805F46C(u32, struct_080FC844*);
|
||||
extern void sub_0801C4A0(u32, u32);
|
||||
@@ -83,7 +83,7 @@ void sub_08050318(u32 arg0, u32 arg1) {
|
||||
struct_080FC844 var0;
|
||||
|
||||
sub_08050384();
|
||||
sub_0801D66C(&gUnk_080FC844, &var0, sizeof(gUnk_080FC844));
|
||||
_DmaCopy(&gUnk_080FC844, &var0, sizeof(gUnk_080FC844));
|
||||
sub_08056FEC(arg1, &gUnk_020227E8);
|
||||
var0.unk10 |= gUnk_080FC85C[arg0][0] << 0xC;
|
||||
sub_0805F46C(gUnk_080FC85C[arg0][1], &var0);
|
||||
@@ -136,7 +136,7 @@ void sub_0805041C(u32 saveFileId) {
|
||||
if (saveFileId < 3) {
|
||||
((struct_02000000 *)0x2000000)->saveFileId = saveFileId;
|
||||
saveFile = &gSaveFiles[saveFileId];
|
||||
sub_0801D66C(saveFile, &gUnk_02002A40, sizeof(*saveFile));
|
||||
_DmaCopy(saveFile, &gUnk_02002A40, sizeof(*saveFile));
|
||||
}
|
||||
sub_080503E4(saveFileId);
|
||||
}
|
||||
@@ -281,7 +281,7 @@ void sub_0805070C(void) {
|
||||
for (j = 0; j < 6; j++) {
|
||||
sub_0805F7DC(playerName[j], var0);
|
||||
}
|
||||
sub_0801D66C(var0->unk8, (void*)(OBJ_VRAM0 + 0x4000 + i * 0x200), 0x200);
|
||||
_DmaCopy(var0->unk8, (void*)(OBJ_VRAM0 + 0x4000 + i * 0x200), 0x200);
|
||||
}
|
||||
sub_0805F300(var0);
|
||||
}
|
||||
@@ -307,7 +307,7 @@ void sub_08050790(void) {
|
||||
sub_0805F7DC(var1, var0);
|
||||
var1++;
|
||||
}
|
||||
sub_0801D66C(gUnk_02000D00, (void*)(BG_VRAM + i * 0x400), 0x400);
|
||||
_DmaCopy(gUnk_02000D00, (void*)(BG_VRAM + i * 0x400), 0x400);
|
||||
}
|
||||
sub_0805F300(var0);
|
||||
}
|
||||
|
||||
+1
-1
@@ -160,7 +160,7 @@ void sub_08054524(void) {
|
||||
bVar1 = 0;
|
||||
}
|
||||
|
||||
sub_0801D66C(&gUnk_080015BC + gUnk_080FE1C6[bVar1] * 0x8, &gUnk_02034398, 0x20);
|
||||
_DmaCopy(&gUnk_080015BC + gUnk_080FE1C6[bVar1] * 0x8, &gUnk_02034398, 0x20);
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
|
||||
@@ -12,13 +12,12 @@ void _DmaFill32(u32 value, u8* dest, u32 size) {
|
||||
DmaFill32(3, value, dest, size);
|
||||
}
|
||||
|
||||
void _DmaZero(u8 *src, u32 size)
|
||||
{
|
||||
void _DmaZero(u8* src, u32 size) {
|
||||
u32 zero = 0;
|
||||
|
||||
switch (((u32)src | size) & 3) {
|
||||
case 0:
|
||||
_DmaFill32(0,src, size);
|
||||
_DmaFill32(0, src, size);
|
||||
break;
|
||||
case 2:
|
||||
_DmaFill16(0, src, size);
|
||||
@@ -28,6 +27,23 @@ void _DmaZero(u8 *src, u32 size)
|
||||
*src = zero;
|
||||
src++;
|
||||
size--;
|
||||
} while (size != 0);
|
||||
} while (size != 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void _DmaCopy(const u8* src, u8* dst, u32 size) {
|
||||
switch (((u32)src | (u32)dst | size) & 3) {
|
||||
case 0:
|
||||
DmaCopy32(3, src, dst, size);
|
||||
break;
|
||||
case 2:
|
||||
DmaCopy16(3, src, dst, size);
|
||||
break;
|
||||
default:
|
||||
do {
|
||||
*dst = *src;
|
||||
src++;
|
||||
dst++;
|
||||
} while (--size);
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -193,16 +193,16 @@ void sub_0805E92C(u32 param_1) {
|
||||
}
|
||||
|
||||
extern Entity gUnk_020369F0;
|
||||
extern void sub_0801D66C(const void* src, void* dest, size_t size); // dma copy
|
||||
extern void _DmaCopy(const void* src, void* dest, size_t size); // dma copy
|
||||
extern void sub_0805E98C(void);
|
||||
|
||||
void sub_0805E958(void) {
|
||||
sub_0801D66C(&gEntityLists, &gUnk_020369F0, 0x48);
|
||||
_DmaCopy(&gEntityLists, &gUnk_020369F0, 0x48);
|
||||
sub_0805E98C();
|
||||
}
|
||||
|
||||
void sub_0805E974(void) {
|
||||
sub_0801D66C(&gUnk_020369F0, &gEntityLists, 0x48);
|
||||
_DmaCopy(&gUnk_020369F0, &gEntityLists, 0x48);
|
||||
}
|
||||
|
||||
void sub_0805E98C(void) {
|
||||
|
||||
+3
-3
@@ -8,7 +8,7 @@ extern void sub_0804FF84(u32);
|
||||
extern u16 gPaletteBuffer[];
|
||||
extern void VBlankInterruptWait(void);
|
||||
extern void DisableInterruptsAndDMA(void);
|
||||
extern void sub_0801D66C(void*, u8*, int);
|
||||
extern void _DmaCopy(void*, u8*, int);
|
||||
extern void sub_08016B34(void);
|
||||
|
||||
static void sub_08055F70(void);
|
||||
@@ -99,12 +99,12 @@ static void sub_08055F70(void) {
|
||||
_DmaZero(gUnk_02000030, size);
|
||||
size = (u32)gUnk_080B2CD8 - (u32)sub_080B197C;
|
||||
if (size != 0) {
|
||||
sub_0801D66C(sub_080B197C, gUnk_030056F0, size);
|
||||
_DmaCopy(sub_080B197C, gUnk_030056F0, size);
|
||||
}
|
||||
|
||||
size = (u32)gUnk_080B2CD8_2 - (u32)gUnk_080B2CD8_3;
|
||||
if (size != 0) {
|
||||
sub_0801D66C(gUnk_080B2CD8_3, gUnk_02038560, size);
|
||||
_DmaCopy(gUnk_080B2CD8_3, gUnk_02038560, size);
|
||||
}
|
||||
|
||||
sub_0801DA90(0);
|
||||
|
||||
Reference in New Issue
Block a user