Updata current progress

This commit is contained in:
rozlette
2018-12-06 13:47:07 -06:00
parent d7be544072
commit a309571228
17 changed files with 1692 additions and 188 deletions
+5 -4
View File
@@ -7,8 +7,9 @@ LD := $(MIPS_BINUTILS)ld
#QEMU_IRIX := ~/irixemu/mips-linux-user/qemu-mips
QEMU_IRIX := ~/qemu-irix
IRIX_71_ROOT := ./ido/71/
IRIX_62_ROOT := ./ido/62/
IRIX_53_ROOT := ./ido/
IRIX_53_ROOT := ./ido/53_patched/
CFLAGS := -G 0 -non_shared -Xfullwarn -Xcpluscomm
ASFLAGS := -march=vr4300 -32
@@ -24,11 +25,11 @@ build/src/libultra/%: CC := $(QEMU_IRIX) -L $(IRIX_53_ROOT) $(IRIX_53_ROOT)/usr/
build/src/libultra/%: CFLAGS := $(CFLAGS) -Wab,-r4300_mul
build/src/boot_O1/%: OPTIMIZATION := -O1
build/src/boot_O2_g3/%: OPTIMIZATION := -O2 -g3
test.txt: OPTIMIZATION := -O2
test.txt: CC := $(QEMU_IRIX) -L $(IRIX_53_ROOT) $(IRIX_53_ROOT)/usr/bin/cc
#test.txt: OPTIMIZATION := -O2
#test.txt: CC := $(QEMU_IRIX) -L $(IRIX_53_ROOT) $(IRIX_53_ROOT)/usr/bin/cc
test.txt: CFLAGS := $(CFLAGS) -Wab,-r4300_mul
CC := $(QEMU_IRIX) -L $(IRIX_62_ROOT) $(IRIX_62_ROOT)/usr/bin/cc
CC := $(QEMU_IRIX) -L $(IRIX_71_ROOT) $(IRIX_71_ROOT)/usr/bin/cc
test.txt: CC := python3 preprocess.py $(CC) -- $(AS) $(ASFLAGS) --
build/src/boot_O2_g3/%: CC := python3 preprocess.py $(CC) -- $(AS) $(ASFLAGS) --
+1 -1
View File
@@ -2,7 +2,7 @@
MIPS_BINUTILS="mips-linux-gnu-"
OBJDUMP="${MIPS_BINUTILS}objdump -D -z -mmips -EB -j .text -j .data"
OBJDUMP="${MIPS_BINUTILS}objdump -D -z -mmips -EB -j .text -j .data -j .rodata"
FORMATTER="sed '/^0/!s/.*://'"
+2 -2
View File
@@ -33,7 +33,7 @@ SECTIONS
build/asm/boot_0x80088110.o(.text)
build/asm/boot_0x800882A0.o(.text)
build/src/libultra/gu/sinf.o(.text)
build/asm/sins.o(.text)
build/src/libultra/gu/sins.o(.text)
build/src/libultra/io/sptask.o(.text)
build/asm/ll.o(.text)
build/asm/exceptasm.o(.text)
@@ -194,7 +194,7 @@ SECTIONS
code 0x800A5AC0:
{
build/src/code/code_0x800A5AC0.o(.text)
build/asm/code_0x800A5D00.o(.text)
build/asm/z_en_item00.o(.text)
build/asm/code_0x800A81F0.o(.text)
build/asm/code_0x800ACBF0.o(.text)
build/asm/code_0x800B32D0.o(.text)
+9 -9
View File
@@ -3,8 +3,8 @@ import os;
from libyaz0 import decompress
ROM_FILE_NAME = 'baserom.z64'
FILE_TABLE_OFFSET = 0x1A500 # 0x1C110 for JP1.0, 0x1C050 for JP1.1
ROM_FILE_NAME = 'Legend of Zelda, The - Majoras Mask (E) (Prototype).z64'
FILE_TABLE_OFFSET = 0x1A500 # 0x1C110 for JP1.0, 0x1C050 for JP1.1, 0x24F60 for debug
FILE_NAMES = {
0:'makerom',
@@ -1585,7 +1585,7 @@ except IOError:
dmadata_size = read_uint32_be(FILE_TABLE_OFFSET + 16 * 2 + 4) - read_uint32_be(FILE_TABLE_OFFSET + 16 * 2 + 0)
file_count = dmadata_size // 0x10
# extract files
for i in range(0, file_count):
entryOffset = FILE_TABLE_OFFSET + 16 * i
@@ -1606,19 +1606,19 @@ for i in range(0, file_count):
else: # compressed
compressed = True
size = physEnd - physStart
if physStart == 0xFFFFFFFF: # file is in table but not on cart?
continue
if virtStart == 0 and virtEnd == 0: # there are several entries at the end like this...
continue
print('extracting ' + filename + ' (0x%08X, 0x%08X, 0x%08X)' % (virtStart, virtEnd, size))
write_output_file('baserom/' + filename, physStart, size)
if compressed:
#print('decompressing ' + filename)
fileobj = open('baserom/' + filename, 'rb')
decompressed_data = decompress(fileobj.read())
fileobj.close()
@@ -1626,4 +1626,4 @@ for i in range(0, file_count):
writefile = open('decomp/' + filename, 'wb')
writefile.write(decompressed_data)
writefile.close()
+53 -2
View File
@@ -47,6 +47,7 @@ known_funcs = {
0x80085468:("func_80085468","UNK_TYPE","s80085320*"),
0x800854E0:("func_800854E0","UNK_TYPE","UNK_ARGS"),
0x80085538:("func_80085538","UNK_RET","s80085320*"),
0x80086FDC:("func_80086FDC","f32","void"),
0x80087830:("func_80087830","UNK_TYPE","UNK_TYPE, UNK_TYPE, UNK_TYPE"),
0x80087854:("func_80087854","UNK_TYPE","u8*, UNK_TYPE, UNK_PTR"),
0x800878A4:("func_800878A4","UNK_TYPE","u8*, UNK_TYPE, UNK_TYPE, UNK_TYPE"),
@@ -214,13 +215,35 @@ known_funcs = {
0x800A5C28:("func_800A5C28","UNK_RET","s800A5AC0*"),
0x800A5C60:("func_800A5C60","UNK_RET","s800A5AC0*, UNK_TYPE"),
0x800A5CB8:("func_800A5CB8","UNK_RET","s800A5AC0*, UNK_TYPE"),
0x800B3BA4:("func_800B3BA4","UNK_RET","UNK_PTR, f32, UNK_PTR, UNK_TYPE"),
0x800A63A8:("func_800A63A8","UNK_RET","z_Actor* a0, z_GlobalContext* a1"),
0x800A640C:("func_800A640C","UNK_RET","z_Actor* a0, z_GlobalContext* a1"),
0x800A6650:("func_800A6650","UNK_RET","z_Actor* a0, z_GlobalContext* a1"),
0x800A6A40:("func_800A6A40","UNK_RET","z_Actor* a0, z_GlobalContext* a1"),
0x800A72AC:("func_800A72AC","UNK_RET","z_Actor* a0, z_GlobalContext* a1"),
0x800A73A0:("func_800A73A0","UNK_RET","z_Actor* a0, z_GlobalContext* a1"),
0x800A74D8:("func_800A74D8","UNK_RET","z_Actor* a0, z_GlobalContext* a1"),
0x800A75B8:("func_800A75B8","UNK_RET","z_Actor* a0, z_GlobalContext* a1"),
0x800A7650:("func_800A7650","s16","s16"),
0x800B16B8:("func_800B16B8","UNK_RET","z_GlobalContext*, z_Vector3D*, UNK_PTR, UNK_PTR, UNK_PTR, UNK_PTR"),
0x800B3BA4:("func_800B3BA4","UNK_RET","UNK_PTR, f32, UNK_PTR, f32"),
0x800B3FC0:("func_800B3FC0","UNK_TYPE","UNK_TYPE"),
0x800B5BB0:("func_800B5BB0","UNK_TYPE","z_GlobalContext*, UNK_TYPE"),
0x800B5D6C:("func_800B5D6C","UNK_TYPE","z_GlobalContext*, s16"),
0x800B5DB0:("func_800B5DB0","UNK_RET","z_GlobalContext*, s16"),
0x800B670C:("func_800B670C","UNK_RET","z_Actor*"),
0x800B675C:("func_800B675C","UNK_RET","s800A5AC0*, UNK_TYPE"),
0x800B67E0:("func_800B67E0","UNK_RET","z_Actor*, f32"),
0x800B67FC:("func_800B67FC","UNK_RET","z_GlobalContext*, z_Actor*"),
0x800B6A88:("func_800B6A88","UNK_RET","z_Actor*"),
0x800B78B8:("func_800B78B8","UNK_RET","z_GlobalContext*, z_Actor*, f32, f32, f32, UNK_TYPE"),
0x800B8050:("func_800B8050","UNK_RET","z_Actor*, z_GlobalContext*, UNK_TYPE"),
0x800B8118:("func_800B8118","UNK_RET","z_Actor*, z_GlobalContext*, UNK_TYPE"),
0x800B84D0:("func_800B84D0","UNK_TYPE","s800A5AC0*, UNK_TYPE"),
0x800B863C:("func_800B863C","UNK_RET","s800A5AC0*, UNK_TYPE"),
0x800B867C:("func_800B867C","UNK_TYPE","s800A5AC0*"),
0x800B89F8:("func_800B89F8","UNK_TYPE","z_Actor*, z_GlobalContext*"),
0x800B8A1C:("func_800B8A1C","UNK_RET","z_Actor*, z_GlobalContext*, UNK_TYPE, f32, f32"),
0x800BAC60:("func_800BAC60","z_Actor*","UNK_PTR, z_GlobalContext*, UNK_TYPE, f32, f32, f32, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE"), # Does this return a z_ActorEnItem00*?
0x800BDFC0:("func_800BDFC0","UNK_RET","UNK_TYPE, UNK_TYPE, UNK_TYPE, s800A5AC0*"),
0x800BE03C:("func_800BE03C","void","z_GlobalContext*, UNK_TYPE"),
0x800C6024:("func_800C6024","UNK_TYPE","UNK_TYPE"),
@@ -239,17 +262,45 @@ known_funcs = {
0x800E130C:("func_800E130C","void","z_GlobalContext*, UNK_PTR, z_Actor*, UNK_PTR"),
0x800E1374:("func_800E1374","UNK_RET","UNK_TYPE, UNK_PTR, z_Actor*, UNK_PTR"),
0x800E2558:("func_800E2558","void","z_GlobalContext*, UNK_PTR, UNK_PTR"),
0x800E2740:("func_800E2740","UNK_RET","z_GlobalContext*, UNK_PTR, UNK_PTR"),
0x800E2928:("func_800E2928","UNK_RET","UNK_TYPE, UNK_TYPE, UNK_PTR"),
0x800E7DF8:("func_800E7DF8","void","z_Actor*, UNK_PTR"),
0x800E8EA0:("func_800E8EA0","void","z_GlobalContext* a0, z_Actor* a1, u16 a2"),
0x800E8ED0:("func_800E8ED0","UNK_TYPE","UNK_TYPE a0"),
0x800E8EE0:("func_800E8EE0","void","UNK_TYPE a0"),
0x800E8EEC:("func_800E8EEC","UNK_TYPE","UNK_TYPE a0"),
0x800E8EFC:("func_800E8EFC","void","UNK_TYPE a0"),
0x800E8F08:("func_800E8F08","UNK_TYPE","s16* a0, s16* a1"),
0x800E8FA4:("func_800E8FA4","UNK_RET","UNK_TYPE a0, UNK_TYPE a1, UNK_TYPE a2, UNK_TYPE a3"),
0x800E9138:("func_800E9138","UNK_RET","UNK_ARGS"),
0x800E9250:("func_800E9250","UNK_RET","UNK_ARGS"),
0x800EE320:("func_800EE320","UNK_RET","z_GlobalContext*, UNK_TYPE"),
0x800F0568:("func_800F0568","UNK_RET","z_GlobalContext*, z_Vector3D*, UNK_TYPE, UNK_TYPE"),
0x800FED44:("func_800FED44","f32","s16"),
0x800FED84:("func_800FED84","f32","s16"),
0x800FFADC:("func_800FFADC","void","z_Actor*, z_ActorCompInitEntry*"), # Compact Instance Initializer
0x80131758:("func_80131758","void","z_GlobalContext*, UNK_TYPE"),
0x800FFCD8:("func_800FFCD8","UNK_RET","f32*, f32, f32, f32, f32"),
0x800FFEBC:("func_800FFEBC","UNK_TYPE","s16*, s16, UNK_TYPE, UNK_TYPE, UNK_TYPE"),
0x80100504:("func_80100504","UNK_TYPE","UNK_TYPE"),
0x80112E80:("func_80112E80","UNK_RET","z_GlobalContext*, UNK_TYPE"),
0x80115908:("func_80115908","UNK_RET","z_GlobalContext*, UNK_TYPE"),
0x8012C28C:("func_8012C28C","UNK_RET","z_GraphicsContext*"),
0x8012C2DC:("func_8012C2DC","UNK_RET","z_GraphicsContext*"),
0x8012C724:("func_8012C724","u32*","u32*"),
0x8012F608:("func_8012F608","u8","UNK_PTR, UNK_TYPE"),
0x8012F668:("func_8012F668","UNK_TYPE","UNK_PTR, UNK_TYPE"),
0x80131758:("func_80131758","void","z_GlobalContext*, UNK_TYPE"),
0x80138C88:("func_80138C88","UNK_RET","UNK_PTR, UNK_PTR, UNK_PTR"),
0x80139188:("func_80139188","UNK_TYPE","UNK_PTR, UNK_PTR"),
0x80139894:("func_80139894","UNK_RET","UNK_PTR, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, f32, f32, f32"),
0x801660B8:("func_801660B8","u32*","z_GlobalContext*, u32*, UNK_TYPE"),
0x80174BF0:("func_80174BF0","UNK_RET","UNK_TYPE"),
0x801795C0:("func_801795C0","f32","f32"),
0x8018039C:("func_8018039C","UNK_RET","f32, f32, f32, UNK_TYPE"),
0x80181A40:("func_80181A40","UNK_TYPE","z_GraphicsContext*"),
0x80183070:("func_80183070","void","void"),
0x8018349C:("func_8018349C","UNK_RET","UNK_TYPE, UNK_TYPE"),
0x8019F0C8:("func_8019F0C8","UNK_RET","UNK_TYPE"),
# ovl_En_Test
#0x80862B70:("func_80862B70","void","void* a0"),
+52 -47
View File
@@ -184,7 +184,7 @@ UNK_RET func_80085538(s80085320*); // func_80085538
// UNK_RET func_80086F28(UNK_ARGS);
// UNK_RET func_80086FA0(UNK_ARGS);
// UNK_RET func_80086FD0(UNK_ARGS);
// UNK_RET func_80086FDC(UNK_ARGS);
f32 func_80086FDC(void); // func_80086FDC
// UNK_RET func_80087030(UNK_ARGS);
// UNK_RET func_80087160(UNK_ARGS);
// UNK_RET func_8008718C(UNK_ARGS);
@@ -498,11 +498,11 @@ UNK_RET func_800A5CB8(s800A5AC0*, UNK_TYPE); // func_800A5CB8
// UNK_RET func_800A630C(UNK_ARGS);
// UNK_RET func_800A6314(UNK_ARGS);
// UNK_RET func_800A637C(UNK_ARGS);
// UNK_RET func_800A63A8(UNK_ARGS);
// UNK_RET func_800A640C(UNK_ARGS);
// UNK_RET func_800A6650(UNK_ARGS);
UNK_RET func_800A63A8(z_Actor* a0, z_GlobalContext* a1); // func_800A63A8
UNK_RET func_800A640C(z_Actor* a0, z_GlobalContext* a1); // func_800A640C
UNK_RET func_800A6650(z_Actor* a0, z_GlobalContext* a1); // func_800A6650
// UNK_RET func_800A6780(UNK_ARGS);
// UNK_RET func_800A6A40(UNK_ARGS);
UNK_RET func_800A6A40(z_Actor* a0, z_GlobalContext* a1); // func_800A6A40
// UNK_RET func_800A6B98(UNK_ARGS);
// UNK_RET func_800A6E30(UNK_ARGS);
// UNK_RET func_800A6E4C(UNK_ARGS);
@@ -540,11 +540,11 @@ UNK_RET func_800A5CB8(s800A5AC0*, UNK_TYPE); // func_800A5CB8
// UNK_RET func_800A727C(UNK_ARGS);
// UNK_RET func_800A7290(UNK_ARGS);
// UNK_RET func_800A729C(UNK_ARGS);
// UNK_RET func_800A72AC(UNK_ARGS);
// UNK_RET func_800A73A0(UNK_ARGS);
// UNK_RET func_800A74D8(UNK_ARGS);
// UNK_RET func_800A75B8(UNK_ARGS);
// UNK_RET func_800A7650(UNK_ARGS);
UNK_RET func_800A72AC(z_Actor* a0, z_GlobalContext* a1); // func_800A72AC
UNK_RET func_800A73A0(z_Actor* a0, z_GlobalContext* a1); // func_800A73A0
UNK_RET func_800A74D8(z_Actor* a0, z_GlobalContext* a1); // func_800A74D8
UNK_RET func_800A75B8(z_Actor* a0, z_GlobalContext* a1); // func_800A75B8
s16 func_800A7650(s16); // func_800A7650
// UNK_RET func_800A7730(UNK_ARGS);
// UNK_RET func_800A7AD4(UNK_ARGS);
// UNK_RET func_800A7D28(UNK_ARGS);
@@ -637,7 +637,7 @@ UNK_RET func_800A5CB8(s800A5AC0*, UNK_TYPE); // func_800A5CB8
// UNK_RET func_800B14D4(UNK_ARGS);
// UNK_RET func_800B1598(UNK_ARGS);
// UNK_RET func_800B165C(UNK_ARGS);
// UNK_RET func_800B16B8(UNK_ARGS);
UNK_RET func_800B16B8(z_GlobalContext*, z_Vector3D*, UNK_PTR, UNK_PTR, UNK_PTR, UNK_PTR); // func_800B16B8
// UNK_RET func_800B16F4(UNK_ARGS);
// UNK_RET func_800B1970(UNK_ARGS);
// UNK_RET func_800B19E0(UNK_ARGS);
@@ -684,7 +684,7 @@ UNK_RET func_800A5CB8(s800A5AC0*, UNK_TYPE); // func_800A5CB8
// UNK_RET func_800B3880(UNK_ARGS);
// UNK_RET func_800B39A4(UNK_ARGS);
// UNK_RET func_800B3AD0(UNK_ARGS);
UNK_RET func_800B3BA4(UNK_PTR, f32, UNK_PTR, UNK_TYPE); // func_800B3BA4
UNK_RET func_800B3BA4(UNK_PTR, f32, UNK_PTR, f32); // func_800B3BA4
// UNK_RET func_800B3BC8(UNK_ARGS);
UNK_TYPE func_800B3FC0(UNK_TYPE); // func_800B3FC0
// UNK_RET func_800B4024(UNK_ARGS);
@@ -713,8 +713,8 @@ UNK_TYPE func_800B5BB0(z_GlobalContext*, UNK_TYPE); // func_800B5BB0
// UNK_RET func_800B5CDC(UNK_ARGS);
// UNK_RET func_800B5D18(UNK_ARGS);
// UNK_RET func_800B5D30(UNK_ARGS);
// UNK_RET func_800B5D6C(UNK_ARGS);
// UNK_RET func_800B5DB0(UNK_ARGS);
UNK_TYPE func_800B5D6C(z_GlobalContext*, s16); // func_800B5D6C
UNK_RET func_800B5DB0(z_GlobalContext*, s16); // func_800B5DB0
// UNK_RET func_800B5DF0(UNK_ARGS);
// UNK_RET func_800B5E0C(UNK_ARGS);
// UNK_RET func_800B5E68(UNK_ARGS);
@@ -725,18 +725,18 @@ UNK_TYPE func_800B5BB0(z_GlobalContext*, UNK_TYPE); // func_800B5BB0
// UNK_RET func_800B6584(UNK_ARGS);
// UNK_RET func_800B6608(UNK_ARGS);
// UNK_RET func_800B6680(UNK_ARGS);
// UNK_RET func_800B670C(UNK_ARGS);
UNK_RET func_800B670C(z_Actor*); // func_800B670C
// UNK_RET func_800B672C(UNK_ARGS);
UNK_RET func_800B675C(s800A5AC0*, UNK_TYPE); // func_800B675C
// UNK_RET func_800B67C0(UNK_ARGS);
// UNK_RET func_800B67E0(UNK_ARGS);
// UNK_RET func_800B67FC(UNK_ARGS);
UNK_RET func_800B67E0(z_Actor*, f32); // func_800B67E0
UNK_RET func_800B67FC(z_GlobalContext*, z_Actor*); // func_800B67FC
// UNK_RET func_800B6834(UNK_ARGS);
// UNK_RET func_800B6948(UNK_ARGS);
// UNK_RET func_800B6988(UNK_ARGS);
// UNK_RET func_800B69AC(UNK_ARGS);
// UNK_RET func_800B6A10(UNK_ARGS);
// UNK_RET func_800B6A88(UNK_ARGS);
UNK_RET func_800B6A88(z_Actor*); // func_800B6A88
// UNK_RET func_800B6AB4(UNK_ARGS);
// UNK_RET func_800B6B24(UNK_ARGS);
// UNK_RET func_800B6B50(UNK_ARGS);
@@ -776,12 +776,12 @@ UNK_RET func_800B675C(s800A5AC0*, UNK_TYPE); // func_800B675C
// UNK_RET func_800B75A0(UNK_ARGS);
// UNK_RET func_800B761C(UNK_ARGS);
// UNK_RET func_800B7678(UNK_ARGS);
// UNK_RET func_800B78B8(UNK_ARGS);
UNK_RET func_800B78B8(z_GlobalContext*, z_Actor*, f32, f32, f32, UNK_TYPE); // func_800B78B8
// UNK_RET func_800B7E04(UNK_ARGS);
// UNK_RET func_800B7FE0(UNK_ARGS);
// UNK_RET func_800B8018(UNK_ARGS);
// UNK_RET func_800B8050(UNK_ARGS);
// UNK_RET func_800B8118(UNK_ARGS);
UNK_RET func_800B8050(z_Actor*, z_GlobalContext*, UNK_TYPE); // func_800B8050
UNK_RET func_800B8118(z_Actor*, z_GlobalContext*, UNK_TYPE); // func_800B8118
// UNK_RET func_800B81E0(UNK_ARGS);
// UNK_RET func_800B8214(UNK_ARGS);
// UNK_RET func_800B8248(UNK_ARGS);
@@ -801,8 +801,8 @@ UNK_TYPE func_800B867C(s800A5AC0*); // func_800B867C
// UNK_RET func_800B886C(UNK_ARGS);
// UNK_RET func_800B8898(UNK_ARGS);
// UNK_RET func_800B8934(UNK_ARGS);
// UNK_RET func_800B89F8(UNK_ARGS);
// UNK_RET func_800B8A1C(UNK_ARGS);
UNK_TYPE func_800B89F8(z_Actor*, z_GlobalContext*); // func_800B89F8
UNK_RET func_800B8A1C(z_Actor*, z_GlobalContext*, UNK_TYPE, f32, f32); // func_800B8A1C
// UNK_RET func_800B8B84(UNK_ARGS);
// UNK_RET func_800B8BB0(UNK_ARGS);
// UNK_RET func_800B8BFC(UNK_ARGS);
@@ -849,7 +849,7 @@ UNK_TYPE func_800B867C(s800A5AC0*); // func_800B867C
// UNK_RET func_800BAAB4(UNK_ARGS);
// UNK_RET func_800BAB24(UNK_ARGS);
// UNK_RET func_800BABFC(UNK_ARGS);
// UNK_RET func_800BAC60(UNK_ARGS);
z_Actor* func_800BAC60(UNK_PTR, z_GlobalContext*, UNK_TYPE, f32, f32, f32, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE); // func_800BAC60
// UNK_RET func_800BACD4(UNK_ARGS);
// UNK_RET func_800BAE14(UNK_ARGS);
// UNK_RET func_800BB0C0(UNK_ARGS);
@@ -1430,7 +1430,7 @@ UNK_RET func_800E1374(UNK_TYPE, UNK_PTR, z_Actor*, UNK_PTR); // func_800E1374
// UNK_RET func_800E2470(UNK_ARGS);
// UNK_RET func_800E2480(UNK_ARGS);
void func_800E2558(z_GlobalContext*, UNK_PTR, UNK_PTR); // func_800E2558
// UNK_RET func_800E2740(UNK_ARGS);
UNK_RET func_800E2740(z_GlobalContext*, UNK_PTR, UNK_PTR); // func_800E2740
UNK_RET func_800E2928(UNK_TYPE, UNK_TYPE, UNK_PTR); // func_800E2928
// UNK_RET func_800E2B98(UNK_ARGS);
// UNK_RET func_800E2BBC(UNK_ARGS);
@@ -1525,10 +1525,15 @@ void func_800E7DF8(z_Actor*, UNK_PTR); // func_800E7DF8
// UNK_RET func_800E8690(UNK_ARGS);
// UNK_RET func_800E86C0(UNK_ARGS);
// UNK_RET func_800E86E0(UNK_ARGS);
// UNK_RET func_800E8EA0(UNK_ARGS);
// UNK_RET func_800E8F08(UNK_ARGS);
// UNK_RET func_800E8FA4(UNK_ARGS);
// UNK_RET func_800E9250(UNK_ARGS);
void func_800E8EA0(z_GlobalContext* a0, z_Actor* a1, u16 a2); // func_800E8EA0
UNK_TYPE func_800E8ED0(UNK_TYPE a0); // func_800E8ED0
void func_800E8EE0(UNK_TYPE a0); // func_800E8EE0
UNK_TYPE func_800E8EEC(UNK_TYPE a0); // func_800E8EEC
void func_800E8EFC(UNK_TYPE a0); // func_800E8EFC
UNK_TYPE func_800E8F08(s16* a0, s16* a1); // func_800E8F08
UNK_RET func_800E8FA4(UNK_TYPE a0, UNK_TYPE a1, UNK_TYPE a2, UNK_TYPE a3); // func_800E8FA4
UNK_RET func_800E9138(UNK_ARGS); // func_800E9138
UNK_RET func_800E9250(UNK_ARGS); // func_800E9250
// UNK_RET func_800E9360(UNK_ARGS);
// UNK_RET func_800E93E0(UNK_ARGS);
// UNK_RET func_800E9470(UNK_ARGS);
@@ -1667,7 +1672,7 @@ void func_800E7DF8(z_Actor*, UNK_PTR); // func_800E7DF8
// UNK_RET func_800EE200(UNK_ARGS);
// UNK_RET func_800EE29C(UNK_ARGS);
// UNK_RET func_800EE2F4(UNK_ARGS);
// UNK_RET func_800EE320(UNK_ARGS);
UNK_RET func_800EE320(z_GlobalContext*, UNK_TYPE); // func_800EE320
// UNK_RET func_800EE364(UNK_ARGS);
// UNK_RET func_800EE400(UNK_ARGS);
// UNK_RET func_800EE5FC(UNK_ARGS);
@@ -1699,7 +1704,7 @@ void func_800E7DF8(z_Actor*, UNK_PTR); // func_800E7DF8
// UNK_RET func_800F03C0(UNK_ARGS);
// UNK_RET func_800F03C5(UNK_ARGS);
// UNK_RET func_800F048C(UNK_ARGS);
// UNK_RET func_800F0568(UNK_ARGS);
UNK_RET func_800F0568(z_GlobalContext*, z_Vector3D*, UNK_TYPE, UNK_TYPE); // func_800F0568
// UNK_RET func_800F0590(UNK_ARGS);
// UNK_RET func_800F05C0(UNK_ARGS);
// UNK_RET func_800F07C0(UNK_ARGS);
@@ -1896,8 +1901,8 @@ void func_800E7DF8(z_Actor*, UNK_PTR); // func_800E7DF8
// UNK_RET func_800FEAC0(UNK_ARGS);
// UNK_RET func_800FEAF4(UNK_ARGS);
// UNK_RET func_800FEC90(UNK_ARGS);
// UNK_RET func_800FED44(UNK_ARGS);
// UNK_RET func_800FED84(UNK_ARGS);
f32 func_800FED44(s16); // func_800FED44
f32 func_800FED84(s16); // func_800FED84
// UNK_RET func_800FEDC4(UNK_ARGS);
// UNK_RET func_800FEE08(UNK_ARGS);
// UNK_RET func_800FEE70(UNK_ARGS);
@@ -1935,10 +1940,10 @@ void func_800FFADC(z_Actor*, z_ActorCompInitEntry*); // func_800FFADC
// UNK_RET func_800FFC50(UNK_ARGS);
// UNK_RET func_800FFC7C(UNK_ARGS);
// UNK_RET func_800FFCB4(UNK_ARGS);
// UNK_RET func_800FFCD8(UNK_ARGS);
UNK_RET func_800FFCD8(f32*, f32, f32, f32, f32); // func_800FFCD8
// UNK_RET func_800FFDF8(UNK_ARGS);
// UNK_RET func_800FFE68(UNK_ARGS);
// UNK_RET func_800FFEBC(UNK_ARGS);
UNK_TYPE func_800FFEBC(s16*, s16, UNK_TYPE, UNK_TYPE, UNK_TYPE); // func_800FFEBC
// UNK_RET func_800FFFD8(UNK_ARGS);
// UNK_RET func_80100009(UNK_ARGS);
// UNK_RET func_80100030(UNK_ARGS);
@@ -2196,7 +2201,7 @@ UNK_TYPE func_80100504(UNK_TYPE); // func_80100504
// UNK_RET func_801129E4(UNK_ARGS);
// UNK_RET func_80112AFC(UNK_ARGS);
// UNK_RET func_80112B40(UNK_ARGS);
// UNK_RET func_80112E80(UNK_ARGS);
UNK_RET func_80112E80(z_GlobalContext*, UNK_TYPE); // func_80112E80
// UNK_RET func_801143CC(UNK_ARGS);
// UNK_RET func_80114978(UNK_ARGS);
// UNK_RET func_801149A0(UNK_ARGS);
@@ -2209,7 +2214,7 @@ UNK_TYPE func_80100504(UNK_TYPE); // func_80100504
// UNK_RET func_80115428(UNK_ARGS);
// UNK_RET func_8011552C(UNK_ARGS);
// UNK_RET func_80115844(UNK_ARGS);
// UNK_RET func_80115908(UNK_ARGS);
UNK_RET func_80115908(z_GlobalContext*, UNK_TYPE); // func_80115908
// UNK_RET func_801159EC(UNK_ARGS);
// UNK_RET func_80115A14(UNK_ARGS);
// UNK_RET func_80115D14(UNK_ARGS);
@@ -2423,9 +2428,9 @@ UNK_TYPE func_80100504(UNK_TYPE); // func_80100504
// UNK_RET func_8012C214(UNK_ARGS);
// UNK_RET func_8012C240(UNK_ARGS);
// UNK_RET func_8012C268(UNK_ARGS);
// UNK_RET func_8012C28C(UNK_ARGS);
UNK_RET func_8012C28C(z_GraphicsContext*); // func_8012C28C
// UNK_RET func_8012C2B4(UNK_ARGS);
// UNK_RET func_8012C2DC(UNK_ARGS);
UNK_RET func_8012C2DC(z_GraphicsContext*); // func_8012C2DC
// UNK_RET func_8012C304(UNK_ARGS);
// UNK_RET func_8012C3A4(UNK_ARGS);
// UNK_RET func_8012C3CC(UNK_ARGS);
@@ -2440,7 +2445,7 @@ UNK_TYPE func_80100504(UNK_TYPE); // func_80100504
// UNK_RET func_8012C680(UNK_ARGS);
// UNK_RET func_8012C6AC(UNK_ARGS);
// UNK_RET func_8012C6FC(UNK_ARGS);
// UNK_RET func_8012C724(UNK_ARGS);
u32* func_8012C724(u32*); // func_8012C724
// UNK_RET func_8012C7FC(UNK_ARGS);
// UNK_RET func_8012C868(UNK_ARGS);
// UNK_RET func_8012C8AC(UNK_ARGS);
@@ -2483,8 +2488,8 @@ UNK_TYPE func_80100504(UNK_TYPE); // func_80100504
// UNK_RET func_8012F2E0(UNK_ARGS);
// UNK_RET func_8012F3D0(UNK_ARGS);
// UNK_RET func_8012F4FC(UNK_ARGS);
// UNK_RET func_8012F608(UNK_ARGS);
// UNK_RET func_8012F668(UNK_ARGS);
u8 func_8012F608(UNK_PTR, UNK_TYPE); // func_8012F608
UNK_TYPE func_8012F668(UNK_PTR, UNK_TYPE); // func_8012F668
// UNK_RET func_8012F73C(UNK_ARGS);
// UNK_RET func_8012F79C(UNK_ARGS);
// UNK_RET func_8012F90C(UNK_ARGS);
@@ -3177,7 +3182,7 @@ UNK_RET func_80139894(UNK_PTR, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE,
// UNK_RET func_80165FE8(UNK_ARGS);
// UNK_RET func_80165FF0(UNK_ARGS);
// UNK_RET func_80166060(UNK_ARGS);
// UNK_RET func_801660B8(UNK_ARGS);
u32* func_801660B8(z_GlobalContext*, u32*, UNK_TYPE); // func_801660B8
// UNK_RET func_8016613C(UNK_ARGS);
// UNK_RET func_801663C4(UNK_ARGS);
// UNK_RET func_80166644(UNK_ARGS);
@@ -3439,7 +3444,7 @@ UNK_RET func_80174BF0(UNK_TYPE); // func_80174BF0
// UNK_RET func_801794EC(UNK_ARGS);
// UNK_RET func_80179540(UNK_ARGS);
// UNK_RET func_80179594(UNK_ARGS);
// UNK_RET func_801795C0(UNK_ARGS);
f32 func_801795C0(f32); // func_801795C0
// UNK_RET func_801795F0(UNK_ARGS);
// UNK_RET func_80179678(UNK_ARGS);
// UNK_RET func_80179798(UNK_ARGS);
@@ -3535,7 +3540,7 @@ UNK_RET func_80174BF0(UNK_TYPE); // func_80174BF0
// UNK_RET func_80180234(UNK_ARGS);
// UNK_RET func_80180244(UNK_ARGS);
// UNK_RET func_8018029C(UNK_ARGS);
// UNK_RET func_8018039C(UNK_ARGS);
UNK_RET func_8018039C(f32, f32, f32, UNK_TYPE); // func_8018039C
// UNK_RET func_80180478(UNK_ARGS);
// UNK_RET func_801807B8(UNK_ARGS);
// UNK_RET func_80180900(UNK_ARGS);
@@ -3548,7 +3553,7 @@ UNK_RET func_80174BF0(UNK_TYPE); // func_80174BF0
// UNK_RET func_80181650(UNK_ARGS);
// UNK_RET func_801817FC(UNK_ARGS);
// UNK_RET func_80181A18(UNK_ARGS);
// UNK_RET func_80181A40(UNK_ARGS);
UNK_TYPE func_80181A40(z_GraphicsContext*); // func_80181A40
// UNK_RET func_80181A98(UNK_ARGS);
// UNK_RET func_80181B50(UNK_ARGS);
// UNK_RET func_80181B78(UNK_ARGS);
@@ -4198,7 +4203,7 @@ UNK_RET func_8018349C(UNK_TYPE, UNK_TYPE); // func_8018349C
// UNK_RET func_8019EE88(UNK_ARGS);
// UNK_RET func_8019F024(UNK_ARGS);
// UNK_RET func_8019F05C(UNK_ARGS);
// UNK_RET func_8019F0C8(UNK_ARGS);
UNK_RET func_8019F0C8(UNK_TYPE); // func_8019F0C8
// UNK_RET func_8019F128(UNK_ARGS);
// UNK_RET func_8019F170(UNK_ARGS);
// UNK_RET func_8019F1C0(UNK_ARGS);
+162 -79
View File
@@ -24,57 +24,57 @@ typedef struct {
// TODO this should extend from z_Actor
typedef struct s800A5AC0_s {
/* 0x000 */ u8 pad0[0x1C];
/* 0x01C */ s16 unk1C;
/* 0x01E */ u8 pad1[0x74];
/* 0x092 */ s16 unk92;
/* 0x094 */ u8 pad2[0x22];
/* 0x0B6 */ u8 unkB6;
/* 0x0B7 */ u8 pad4[5];
/* 0x0BC */ u16 unkBC; // or char
/* 0x0BE */ s16 unkBE;
/* 0x0C0 */ u8 pad5[0x56];
/* 0x116 */ u16 unk116;
/* 0x118 */ u8 pad6[0x2C];
/* 0x144 */ void(*unk144)(struct s800A5AC0_s*, UNK_TYPE);
/* 0x148 */ UNK_TYPE unk148;
/* 0x000 */ u8 pad0[0x1C];
/* 0x01C */ s16 unk1C;
/* 0x01E */ u8 pad1[0x74];
/* 0x092 */ s16 unk92;
/* 0x094 */ u8 pad2[0x22];
/* 0x0B6 */ u8 unkB6;
/* 0x0B7 */ u8 pad4[5];
/* 0x0BC */ u16 unkBC; // or char
/* 0x0BE */ s16 unkBE;
/* 0x0C0 */ u8 pad5[0x56];
/* 0x116 */ u16 unk116;
/* 0x118 */ u8 pad6[0x2C];
/* 0x144 */ void(*unk144)(struct s800A5AC0_s*, UNK_TYPE);
/* 0x148 */ UNK_TYPE unk148;
} s800A5AC0;
typedef struct {
/* 0x00 */ u8 pad0[8];
/* 0x08 */ UNK_TYPE unk8;
/* 0x0C */ UNK_TYPE unkC;
/* 0x10 */ u32 unk10;
/* 0x14 */ u8 pad1[0xA];
/* 0x1E */ s8 unk1E;
/* 0x1F */ u8 pad2[1];
/* 0x00 */ u8 pad0[8];
/* 0x08 */ UNK_TYPE unk8;
/* 0x0C */ UNK_TYPE unkC;
/* 0x10 */ u32 unk10;
/* 0x14 */ u8 pad1[0xA];
/* 0x1E */ s8 unk1E;
/* 0x1F */ u8 pad2[1];
} s800BF9A0;
typedef struct {
/* 0x00 */ UNK_TYPE unk0;
/* 0x04 */ UNK_TYPE unk4;
/* 0x08 */ UNK_TYPE unk8;
/* 0x12 */ u8 pad0[0x5C];
/* 0x68 */ UNK_TYPE unk68;
/* 0x6C */ UNK_TYPE unk6C;
/* 0x70 */ UNK_TYPE unk70;
/* 0x72 */ u16 unk72;
/* 0x74 */ u16 unk74;
/* 0x76 */ u16 unk76;
/* 0x78 */ u8 pad1[2];
/* 0x7C */ f32 unk7C;
/* 0x80 */ f32 unk80;
/* 0x84 */ f32 unk84;
/* 0x88 */ UNK_TYPE unk88;
/* 0x8C */ UNK_TYPE unk8C;
/* 0x90 */ UNK_TYPE unk90;
/* 0x94 */ u16 unk94;
/* 0x96 */ u16 unk96;
/* 0x98 */ u16 unk98;
/* 0x9A */ u8 pad2[2];
/* 0x9C */ f32 unk9C;
/* 0xA0 */ f32 unkA0;
/* 0xA4 */ f32 unkA4;
/* 0x00 */ UNK_TYPE unk0;
/* 0x04 */ UNK_TYPE unk4;
/* 0x08 */ UNK_TYPE unk8;
/* 0x12 */ u8 pad0[0x5C];
/* 0x68 */ UNK_TYPE unk68;
/* 0x6C */ UNK_TYPE unk6C;
/* 0x70 */ UNK_TYPE unk70;
/* 0x72 */ u16 unk72;
/* 0x74 */ u16 unk74;
/* 0x76 */ u16 unk76;
/* 0x78 */ u8 pad1[2];
/* 0x7C */ f32 unk7C;
/* 0x80 */ f32 unk80;
/* 0x84 */ f32 unk84;
/* 0x88 */ UNK_TYPE unk88;
/* 0x8C */ UNK_TYPE unk8C;
/* 0x90 */ UNK_TYPE unk90;
/* 0x94 */ u16 unk94;
/* 0x96 */ u16 unk96;
/* 0x98 */ u16 unk98;
/* 0x9A */ u8 pad2[2];
/* 0x9C */ f32 unk9C;
/* 0xA0 */ f32 unkA0;
/* 0xA4 */ f32 unkA4;
} s800CAAD0;
typedef struct {
@@ -106,9 +106,9 @@ typedef struct {
} s800F4F54;
typedef struct {
/* 0x0 */ f32 x;
/* 0x4 */ f32 y;
/* 0x8 */ f32 z;
/* 0x0 */ f32 x;
/* 0x4 */ f32 y;
/* 0x8 */ f32 z;
} z_Vector3D;
struct z_Actor;
@@ -116,48 +116,74 @@ struct z_Actor;
typedef void(*z_ActorFunc)(struct z_Actor*, void*);
typedef struct {
/* 0x000 */ u8 pad0[4];
/* 0x004 */ UNK_TYPE unk4;
/* 0x008 */ u8 pad1[0x14];
/* 0x01C */ s16 unk1C;
/* 0x01E */ u8 pad2[0x3A];
/* 0x058 */ z_Vector3D unk58; // scale?
/* 0x064 */ u8 pad3[0x2E];
/* 0x092 */ s16 unk92;
/* 0x094 */ u8 pad4[0x22];
/* 0x0B6 */ u8 unkB6;
/* 0x0B7 */ u8 pad5[5];
/* 0x0BC */ u16 unkBC; // or char
/* 0x0BE */ s16 unkBE;
/* 0x0C0 */ u8 pad6[0x3C];
/* 0x0FC */ f32 unkFC; // start of z_Vector3D?
/* 0x100 */ f32 unk100;
/* 0x104 */ f32 unk104;
/* 0x108 */ u8 pad7[0xE];
/* 0x116 */ u16 unk116;
/* 0x118 */ u8 pad8[0x24];
/* 0x13C */ z_ActorFunc drawFunc;
/* 0x140 */ u8 pad9[4];
// TODO figure out what size this is
/* 0x000 */ u8 pad0[4];
/* 0x004 */ UNK_TYPE unk4;
/* 0x008 */ u8 pad1[0x14];
/* 0x01C */ s16 unk1C;
/* 0x01E */ u8 pad2[0x3A];
/* 0x058 */ z_Vector3D unk58; // scale?
/* 0x064 */ u8 pad3[0x2E];
/* 0x092 */ s16 unk92;
/* 0x094 */ u8 pad4[0x22];
/* 0x0B6 */ u8 unkB6;
/* 0x0B7 */ u8 pad5[5];
/* 0x0BC */ u16 unkBC; // or char
/* 0x0BE */ s16 unkBE;
/* 0x0C0 */ u8 pad6[0x3C];
/* 0x0FC */ f32 unkFC; // start of z_Vector3D?
/* 0x100 */ f32 unk100;
/* 0x104 */ f32 unk104;
/* 0x108 */ u8 pad7[0xE];
/* 0x116 */ u16 unk116;
/* 0x118 */ u8 pad8[0x24];
/* 0x13C */ z_ActorFunc drawFunc;
/* 0x140 */ u8 pad9[4];
// TODO figure out what size this is
} z_Actor;
typedef struct s80BD5530_s {
/* 0x00000 */ u8 pad[0x18884];
/* 0x18884 */ UNK_TYPE unk18884;
typedef struct {
/* 0x000 */ u8 pad0[0x2B0];
/* 0x2B0 */ u32* unk2B0; // OVERLAY_DISP append address
/* 0x2B4 */ u8 pad1[0xC];
/* 0x2C0 */ u32* unk2C0; // POLY_OPA_DISP append address
} z_GraphicsContext;
// Some structure pointed to by Global Context + 0x1CCC;
typedef struct {
/* 0x000 */ u8 pad0[0x24];
/* 0x024 */ z_Vector3D unk24;
/* 0x030 */ u8 pad1[0xA44];
/* 0xA74 */ UNK_TYPE unkA74;
} sGlobalContext1CCC;
typedef struct {
/* 0x00000 */ z_GraphicsContext* unk0;
/* 0x00004 */ u8 pad0[0x1C9C];
/* 0x01CA0 */ UNK_TYPE unk1CA0;
/* 0x01CA4 */ u8 pad1[0x28];
/* 0x01CCC */ sGlobalContext1CCC* unk1CCC;
/* 0x01CD0 */ u8 pad2[0x15330];
/* 0x17000 */ u16 unk17000;
/* 0x17002 */ u8 pad3[0xD86];
/* 0x17D88 */ UNK_TYPE unk17D88;
/* 0x17D8C */ u8 pad4[0xAB4];
/* 0x18840 */ UNK_TYPE unk18840;
/* 0x18844 */ u8 pad5[0x40];
/* 0x18884 */ UNK_TYPE unk18884;
} z_GlobalContext;
typedef struct {
u32 cont : 1;
u32 type : 4;
u32 offset : 11;
u32 value : 16;
u32 cont : 1;
u32 type : 4;
u32 offset : 11;
u32 value : 16;
} z_ActorCompInitEntry;
typedef struct {
/* 0x00 */ s16 id;
/* 0x02 */ u8 type; // Classifies actor and determines when actor will execute
/* 0x03 */ u8 room; // Room instance was spawned in. If value set to FF in
// rom, instance does not despawn when swapping rooms
// rom, instance does not despawn when swapping rooms
/* 0x04 */ s32 flags; // unknown
/* 0x08 */ s16 objectId; // Possibly it's primary object dependency
/* 0x0A */ // Padding
@@ -168,6 +194,63 @@ typedef struct {
/* 0x1C */ z_ActorFunc draw; // Draw function
} z_ActorInit;
// TODO probably an actor?
typedef struct {
/* 0x000 */ u8 pad0[3];
/* 0x003 */ s8 unk3;
/* 0x004 */ UNK_TYPE unk4;
/* 0x008 */ u8 pad1[0x10];
/* 0x018 */ s16 unk18;
/* 0x01A */ u8 pad2[2];
/* 0x01C */ volatile s16 unk1C; //! ...is this volatile??? It makes func_800A5D70 match :/
/* 0x01E */ u8 unk1E;
/* 0x01F */ u8 pad3[0x05];
/* 0x024 */ z_Vector3D unk24;
/* 0x030 */ s16 unk30;
/* 0x032 */ s16 unk32;
/* 0x034 */ u8 pad4[8];
/* 0x03C */ z_Vector3D unk3C;
/* 0x048 */ u8 pad5[0x10];
/* 0x058 */ f32 unk58;
/* 0x05C */ f32 unk5C;
/* 0x060 */ f32 unk60;
/* 0x064 */ u8 pad6[4];
/* 0x068 */ f32 unk68;
/* 0x06C */ u8 pad7[4];
/* 0x070 */ f32 unk70;
/* 0x074 */ f32 unk74;
/* 0x078 */ u8 pad8[0x10];
/* 0x088 */ f32 unk88;
/* 0x08C */ u8 pad9[4];
/* 0x090 */ u16 unk90;
/* 0x092 */ u16 unk92;
/* 0x094 */ u8 pad10[4];
/* 0x098 */ f32 unk98;
/* 0x09C */ f32 unk9C;
/* 0x0A0 */ u8 pad11[0x1C];
/* 0x0BC */ s16 unkBC;
/* 0x0BE */ s16 unkBE;
/* 0x0C0 */ s16 unkC0;
/* 0x0C2 */ u8 pad12[2];
/* 0x0C4 */ f32 unkC4;
/* 0x0C8 */ u8 pad13[8];
/* 0x0D0 */ u8 unkD0;
/* 0x0D1 */ u8 pad14[0x4D];
/* 0x11E */ u8 unk11E;
/* 0x11F */ u8 pad15[0x25];
/* 0x144 */ UNK_FUN_PTR(unk144);
/* 0x148 */ s16 unk148;
/* 0x14A */ s16 unk14A;
/* 0x14C */ s16 unk14C;
/* 0x14E */ s16 unk14E;
/* 0x150 */ s16 unk150;
/* 0x152 */ s16 unk152;
/* 0x154 */ f32 unk154;
/* 0x158 */ UNK_TYPE unk158;
/* 0x15C */ u8 pad16[0x48];
/* 0x1A4 */ u8 unk1A4;
} s800A5D00;
// TODO everything past here should be placed in an appropiate libultra header
+44 -42
View File
@@ -835,7 +835,7 @@ extern UNK_TYPE D_00C7A4E0; // D_00C7A4E0
//extern UNK_TYPE D_060010E0;
//extern UNK_TYPE D_060010F0;
//extern UNK_TYPE D_060010F4;
extern UNK_TYPE D_06001100;
extern UNK_TYPE D_06001100; // D_06001100
//extern UNK_TYPE D_06001118;
//extern UNK_TYPE D_06001140;
//extern UNK_TYPE D_06001158;
@@ -854,7 +854,7 @@ extern UNK_TYPE D_06001100;
//extern UNK_TYPE D_06001210;
//extern UNK_TYPE D_06001214;
//extern UNK_TYPE D_06001220;
extern UNK_TYPE D_06001228;
extern UNK_TYPE D_06001228; // D_06001228
//extern UNK_TYPE D_06001254;
//extern UNK_TYPE D_06001290;
//extern UNK_TYPE D_06001298;
@@ -1900,7 +1900,7 @@ extern s80085320* g_s80085320_ListTail; // D_80096C44
//extern UNK_TYPE D_80097530;
//extern UNK_TYPE D_80097540;
extern UNK_TYPE D_80097590; // D_80097590
//extern UNK_TYPE D_800975E0;
extern short sintable[]; // D_800975E0
//extern UNK_TYPE D_80097DDE;
//extern UNK_TYPE D_80097DE0;
//extern UNK_TYPE D_80097DE4;
@@ -2196,16 +2196,18 @@ extern DmadataEntry dmadata[]; // D_8009F8B0
extern UNK_TYPE D_801ADE80; // D_801ADE80
extern UNK_TYPE D_801ADEAC; // D_801ADEAC
extern int D_801ADEB0[]; // D_801ADEB0
//extern UNK_TYPE D_801ADEE0;
//extern UNK_TYPE D_801ADF0C;
//extern UNK_TYPE D_801ADF10;
//extern UNK_TYPE D_801ADF14;
//extern UNK_TYPE D_801ADF18;
//extern UNK_TYPE D_801ADF24;
//extern UNK_TYPE D_801ADF30;
//extern UNK_TYPE D_801ADF44;
//extern UNK_TYPE D_801AE194;
//extern UNK_TYPE D_801AE214;
extern UNK_TYPE D_801ADEE0; // D_801ADEE0
extern UNK_TYPE D_801ADF0C; // D_801ADF0C
extern UNK_TYPE D_801ADF10; // D_801ADF10
extern UNK_TYPE D_801ADF14; // D_801ADF14
extern UNK_TYPE D_801ADF18; // D_801ADF18
extern UNK_TYPE D_801ADF24; // D_801ADF24
extern UNK_TYPE D_801ADF30[]; // D_801ADF30
extern UNK_TYPE D_801ADF44[]; // D_801ADF44
extern u8 D_801ADF74[]; // D_801ADF74
extern u8 D_801AE084[]; // D_801AE084
extern s32 D_801AE194[]; // D_801AE194
extern u8 D_801AE214[]; // D_801AE214
//extern UNK_TYPE D_801AE240;
//extern UNK_TYPE D_801AE250;
//extern UNK_TYPE D_801AE260;
@@ -2843,10 +2845,10 @@ extern u8 D_801BDB30[]; // D_801BDB30
//extern UNK_TYPE D_801C1E44;
//extern UNK_TYPE D_801C1E48;
//extern UNK_TYPE D_801C1E4A;
//extern UNK_TYPE D_801C2078;
//extern UNK_TYPE D_801C2079;
extern u8 D_801C2078[]; // D_801C2078
extern u8 D_801C2079; // D_801C2079
//extern UNK_TYPE D_801C207A;
//extern UNK_TYPE D_801C207E;
extern u8 D_801C207E; // D_801C207E
//extern UNK_TYPE D_801C207F;
//extern UNK_TYPE D_801C2080;
//extern UNK_TYPE D_801C2081;
@@ -3342,34 +3344,34 @@ extern u8 D_801BDB30[]; // D_801BDB30
//extern UNK_TYPE D_801DB958;
//extern UNK_TYPE D_801DBDF0;
//extern UNK_TYPE D_801DBDF4;
//extern UNK_TYPE D_801DBE68;
//extern UNK_TYPE D_801DBE6C;
//extern UNK_TYPE D_801DBE70;
//extern UNK_TYPE D_801DBE74;
//extern UNK_TYPE D_801DBE78;
//extern UNK_TYPE D_801DBE7C;
//extern UNK_TYPE D_801DBE80;
//extern UNK_TYPE D_801DBE84;
//extern UNK_TYPE D_801DBE88;
//extern UNK_TYPE D_801DBE8C;
//extern UNK_TYPE D_801DBE90;
//extern UNK_TYPE D_801DBE94;
//extern UNK_TYPE D_801DBE98;
//extern UNK_TYPE D_801DBE9C;
//extern UNK_TYPE D_801DBEA0;
extern f32 D_801DBE68; // D_801DBE68
extern f32 D_801DBE6C; // D_801DBE6C
extern f32 D_801DBE70; // D_801DBE70
extern f32 D_801DBE74; // D_801DBE74
extern f32 D_801DBE78; // D_801DBE78
extern f32 D_801DBE7C; // D_801DBE7C
extern f32 D_801DBE80; // D_801DBE80
extern f32 D_801DBE84; // D_801DBE84
extern f32 D_801DBE88; // D_801DBE88
extern f32 D_801DBE8C; // D_801DBE8C
extern f32 D_801DBE90; // D_801DBE90
extern f32 D_801DBE94; // D_801DBE94
extern f32 D_801DBE98; // D_801DBE98
extern f32 D_801DBE9C; // D_801DBE9C
extern f32 D_801DBEA0; // D_801DBEA0
//extern UNK_TYPE D_801DBEA4;
//extern UNK_TYPE D_801DBF10;
//extern UNK_TYPE D_801DBF14;
//extern UNK_TYPE D_801DBF18;
//extern UNK_TYPE D_801DBF1C;
//extern UNK_TYPE D_801DBF20;
extern f32 D_801DBF10; // D_801DBF10
extern f32 D_801DBF14; // D_801DBF14
extern f32 D_801DBF18; // D_801DBF18
extern f32 D_801DBF1C; // D_801DBF1C
extern f32 D_801DBF20; // D_801DBF20
//extern UNK_TYPE D_801DBF24;
//extern UNK_TYPE D_801DBF98;
//extern UNK_TYPE D_801DBFF4;
//extern UNK_TYPE D_801DC068;
//extern UNK_TYPE D_801DC06C;
//extern UNK_TYPE D_801DC070;
//extern UNK_TYPE D_801DC074;
extern f32 D_801DC068; // D_801DC068
extern f32 D_801DC06C; // D_801DC06C
extern f32 D_801DC070; // D_801DC070
extern f32 D_801DC074; // D_801DC074
//extern UNK_TYPE D_801DC080;
//extern UNK_TYPE D_801DC084;
//extern UNK_TYPE D_801DC088;
@@ -4494,8 +4496,8 @@ extern UNK_TYPE D_801ED940; // D_801ED940
//extern UNK_TYPE D_801EF600;
//extern UNK_TYPE D_801EF638;
//extern UNK_TYPE D_801EF66D;
//extern UNK_TYPE D_801EF670;
//extern UNK_TYPE D_801EF677;
extern u8 D_801EF670; // D_801EF670
extern u8 D_801EF677; // D_801EF677
//extern UNK_TYPE D_801EF678;
//extern UNK_TYPE D_801EF67C;
//extern UNK_TYPE D_801EF67E;
+1
View File
@@ -95,4 +95,5 @@ known_objects = {
0x80095950:"visetxscale",
0x80095a60:"llcvt",
0x80096510:"spsetpc",
0x800A5D00:"z_en_item00"
}
+3 -1
View File
@@ -3,12 +3,14 @@
// TODO this file looks like an actor, it should be cleaned up as such
// This file is most likely En_A_Obj
UNK_RET func_800A5AC0(void* a0, UNK_TYPE a1) {
s800A5AC0* s0 = (s800A5AC0*)a0;
s0->unk116 = ((s0->unk1C >> 8) & 0xFF) | 0x300;
s0->unk1C = (s0->unk1C & 0xFF) - 9;
func_800FFADC((z_Actor*)s0, (z_ActorCompInitEntry*)&D_801ADEAC);
func_800B3BA4(&s0->unkBC, 0, (void*)&func_800B3FC0, 0x41400000);
func_800B3BA4(&s0->unkBC, 0, (UNK_PTR)&func_800B3FC0, 12);
func_800E1374(a1, &s0->unk148, (z_Actor*)s0, &D_801ADE80);
func_800E7DF8((z_Actor*)s0, &s0->unk148);
s0->unkB6 = 255;
+44
View File
@@ -0,0 +1,44 @@
#include <ultra64.h>
#include <global.h>
void func_800E8EA0(z_GlobalContext* a0, z_Actor* a1, u16 a2) {
func_80151938(a0, a2);
a1->unk116 = a2;
}
UNK_TYPE func_800E8ED0(UNK_TYPE a0) {
return 0;
}
void func_800E8EE0(UNK_TYPE a0) {
return;
}
UNK_TYPE func_800E8EEC(UNK_TYPE a0) {
return 0;
}
void func_800E8EFC(UNK_TYPE a0) {
return;
}
UNK_TYPE func_800E8F08(s16* a0, s16* a1) {
func_800FFEBC(a0 + 1, 0, 6, 6200, 100);
func_800FFEBC(a1 , 0, 6, 6200, 100);
func_800FFEBC(a0 + 1, 0, 6, 6200, 100);
func_800FFEBC(a1 , 0, 6, 6200, 100);
return 1;
}
UNK_RET func_800E8FA4(UNK_TYPE a0, UNK_TYPE a1, UNK_TYPE a2, UNK_TYPE a3) {
}
UNK_RET func_800E9138(UNK_ARGS) {
}
UNK_RET func_800E9250(UNK_ARGS) {
}
File diff suppressed because it is too large Load Diff
+21
View File
@@ -0,0 +1,21 @@
#include <guint.h>
// TODO we can't include this because then sintable is placed in .data, which we strip out
//#include "sintable.h"
extern short sintable[1024];
short sins(unsigned short x) {
short val;
x >>= 4;
if ((x & 0x400) != 0) {
val = sintable[0x3FF - (x & 0x3FF)];
} else {
val = sintable[x & 0x3FF];
}
if ((x & 0x800) != 0) {
return -val;
}
return val;
}
+6
View File
@@ -0,0 +1,6 @@
#ifndef _SINTABLE_H_
#define _SINTABLE_H_
static short sintable[1024];
#endif
+6
View File
@@ -0,0 +1,6 @@
#ifndef _SINTABLE_H_
#define _SINTABLE_H_
static short sintable[1024];
#endif
+3 -1
View File
@@ -1890,7 +1890,7 @@ D_80097524 = 0x80097524;
D_80097530 = 0x80097530;
D_80097540 = 0x80097540;
D_80097590 = 0x80097590;
D_800975E0 = 0x800975E0;
sintable = 0x800975E0;
D_80097DDE = 0x80097DDE;
D_80097DE0 = 0x80097DE0;
D_80097DE4 = 0x80097DE4;
@@ -2194,6 +2194,8 @@ D_801ADF18 = 0x801ADF18;
D_801ADF24 = 0x801ADF24;
D_801ADF30 = 0x801ADF30;
D_801ADF44 = 0x801ADF44;
D_801ADF74 = 0x801ADF74;
D_801AE084 = 0x801AE084;
D_801AE194 = 0x801AE194;
D_801AE214 = 0x801AE214;
D_801AE240 = 0x801AE240;
+43
View File
@@ -82,6 +82,8 @@ known_vars = {
0x80099500:("","s80085320",False),
0x80099520:("","OSThread",False),
0x800996D0:("","UNK_TYPE",False),
0x800975E0:("sintable","short",True),
# 0x80097DDE:("sintable","short",True), # NOTE this is just the end of sintable
0x80099AD0:("","s80085320",False),
0x80099AF0:("","UNK_TYPE",False),
0x80099EF0:("","UNK_TYPE",False),
@@ -134,10 +136,49 @@ known_vars = {
0x801ADE80:("","UNK_TYPE",False),
0x801ADEAC:("","UNK_TYPE",False),
0x801ADEB0:("D_801ADEB0","int",True), # TODO better array representation
0x801ADEE0:("D_801ADEE0","UNK_TYPE",False),
0x801ADF0C:("D_801ADF0C","UNK_TYPE",False),
0x801ADF10:("D_801ADF10","UNK_TYPE",False),
0x801ADF14:("D_801ADF14","UNK_TYPE",False),
0x801ADF18:("D_801ADF18","UNK_TYPE",False), # z_vector3D
0x801ADF24:("D_801ADF24","UNK_TYPE",False), # z_vector3D
0x801ADF30:("D_801ADF30","UNK_TYPE",True), # length 5
0x801ADF44:("D_801ADF44","UNK_TYPE",True),
0x801ADF74:("D_801ADF74","u8",True),
0x801AE084:("D_801AE084","u8",True),
0x801AE194:("D_801AE194","s32",True), # length 32
0x801AE214:("D_801AE214","u8",True), # length 32
0x801AEFD0:("","s800BF9A0",False),
0x801B4610:("","UNK_TYPE",False),
0x801B9F20:("","s800E03A0",False), # actually an array of size 23?
0x801BDB30:("","u8",True),
0x801C2078:("D_801C2078","u8",True),
0x801C2079:("D_801C2079","u8",False),
0x801C207E:("D_801C207E","u8",False),
0x801DBE68:("D_801DBE68","f32",False),
0x801DBE6C:("D_801DBE6C","f32",False),
0x801DBE70:("D_801DBE70","f32",False),
0x801DBE74:("D_801DBE74","f32",False),
0x801DBE78:("D_801DBE78","f32",False),
0x801DBE7C:("D_801DBE7C","f32",False),
0x801DBE80:("D_801DBE80","f32",False),
0x801DBE84:("D_801DBE84","f32",False),
0x801DBE88:("D_801DBE88","f32",False),
0x801DBE8C:("D_801DBE8C","f32",False),
0x801DBE90:("D_801DBE90","f32",False),
0x801DBE94:("D_801DBE94","f32",False),
0x801DBE98:("D_801DBE98","f32",False),
0x801DBE9C:("D_801DBE9C","f32",False),
0x801DBEA0:("D_801DBEA0","f32",False),
0x801DBF10:("D_801DBF10","f32",False),
0x801DBF14:("D_801DBF14","f32",False),
0x801DBF18:("D_801DBF18","f32",False),
0x801DBF1C:("D_801DBF1C","f32",False),
0x801DBF20:("D_801DBF20","f32",False),
0x801DC068:("D_801DC068","f32",False),
0x801DC06C:("D_801DC06C","f32",False),
0x801DC070:("D_801DC070","f32",False),
0x801DC074:("D_801DC074","f32",False),
0x801DCBB0:("","UNK_TYPE",False),
0x801DCBC4:("","UNK_TYPE",False),
0x801DCBE4:("","UNK_TYPE",False),
@@ -145,6 +186,8 @@ known_vars = {
0x801E3FA0:("","UNK_TYPE",False),
0x801ED930:("","UNK_TYPE",False),
0x801ED940:("","UNK_TYPE",False),
0x801EF670:("D_801EF670","u8",False), # save info/link struct?
0x801EF677:("D_801EF677","u8",False), # part of save info/link struct?
0x80208EA0:("","UNK_TYPE",False),
# En_Test