Skip to content

Commit 4d3d264

Browse files
authored
Decompile code_801067F0, 80106860, 801068B0 (zeldaret#89)
* Decompile code_801067F0, 80106860, 801068B0 * clang format * Remove unnecessary casts
1 parent 0a59863 commit 4d3d264

File tree

9 files changed

+61
-159
lines changed

9 files changed

+61
-159
lines changed

asm/code_801067F0.s

Lines changed: 0 additions & 40 deletions
This file was deleted.

asm/code_80106860.s

Lines changed: 0 additions & 34 deletions
This file was deleted.

asm/code_801068B0.s

Lines changed: 0 additions & 81 deletions
This file was deleted.

include/functions.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2408,7 +2408,7 @@ OSThread* __osGetCurrFaultedThread();
24082408
// ? __osSpSetPc(?);
24092409
f32 absf(f32);
24102410
void* func_80106860(void* ptr, s32 val, size_t size);
2411-
// ? func_801068B0(?);
2411+
void* func_801068B0(void* dst, void* src, size_t size);
24122412
// ? func_801069B0(?);
24132413
u8 func_80106BC8(GlobalContext* globalCtx);
24142414
// ? func_80106C88(?);

makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ build/src/code/fault.o: CFLAGS += -trapuv
106106
build/src/code/fault.o: OPTIMIZATION := -O2 -g3
107107
build/src/code/fault_drawer.o: CFLAGS += -trapuv
108108
build/src/code/fault_drawer.o: OPTIMIZATION := -O2 -g3
109+
build/src/code/code_801068B0.o: OPTIMIZATION := -g
110+
build/src/code/code_80106860.o: OPTIMIZATION := -g
111+
build/src/code/code_801067F0.o: OPTIMIZATION := -g
109112

110113

111114
#### Main Targets ###

spec

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -566,9 +566,9 @@ beginseg
566566
include "build/src/libultra_code/__osSpSetPc.o"
567567
include "build/asm/code_801067D0.o"
568568
include "build/asm/code_801067E0.o"
569-
include "build/asm/code_801067F0.o"
570-
include "build/asm/code_80106860.o"
571-
include "build/asm/code_801068B0.o"
569+
include "build/src/code/code_801067F0.o"
570+
include "build/src/code/code_80106860.o"
571+
include "build/src/code/code_801068B0.o"
572572
include "build/src/code/z_message_PAL.o"
573573
include "build/data/z_message_PAL.rodata.o"
574574
include "build/data/z_message_PAL.bss.o"

src/code/code_801067F0.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include <ultra64.h>
2+
#include <global.h>
3+
4+
// fmodf? unused
5+
f32 func_801067F0(f32 arg0, f32 arg1) {
6+
s32 sp4;
7+
8+
if (arg1 == 0.0f) {
9+
return 0.0f;
10+
}
11+
sp4 = arg0 / arg1;
12+
return arg0 - (sp4 * arg1);
13+
}

src/code/code_80106860.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include <ultra64.h>
2+
#include <global.h>
3+
4+
// memset used in __osMalloc, z_quake, z_view, and z_camera
5+
void* func_80106860(void* ptr, s32 val, size_t size) {
6+
u8* sp4 = ptr;
7+
register s32 a3;
8+
9+
for (a3 = size--; a3 != 0; a3 = size--) {
10+
*sp4++ = val;
11+
}
12+
return ptr;
13+
}

src/code/code_801068B0.c

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#include <ultra64.h>
2+
#include <global.h>
3+
4+
// memcpy used in __osMalloc.c
5+
void* func_801068B0(void* dst, void* src, size_t size) {
6+
u8* spC;
7+
u8* sp8;
8+
register s32 a3;
9+
10+
spC = dst;
11+
sp8 = src;
12+
13+
if (spC == sp8) {
14+
return dst;
15+
}
16+
if (spC < sp8) {
17+
for (a3 = size--; a3 != 0; a3 = size--) {
18+
*spC++ = *sp8++;
19+
}
20+
} else {
21+
spC += size - 1;
22+
sp8 += size - 1;
23+
for (a3 = size--; a3 != 0; a3 = size--) {
24+
*spC-- = *sp8--;
25+
}
26+
}
27+
return dst;
28+
}

0 commit comments

Comments
 (0)