XYZ struct proposal (#213)

* Ignore IDO warnings with styles we don't follow

* Fix multiple warnings in game_ui.c

* Define an Object_XYZ struct

* Replaced values in Object for Object_XYZ

* Documenting some values

* Update XYZ to ObjectTransform

* Match render_borders_for_multiplayer and convert #if 1 and #if 0 to #ifdef NON_EQUIVALENT

* Try using more libultra code for the gDPSetFillColor values

* Fix some broken NON_EQUIVALENT code

* Fix a couple of minor warnings in unknown_078050

* More warnings

* Match thread1_main, and clean up all warnings in main.c

* Matched main.c

* Document and cleanup some code in thread0_epc.c

* Fix all warnings in unknown_0255E0.c

* Document unknown_078050.c stuff

* Fix warnings in asset_loading.c

* Fix font warnings

* Fix minor memory.c warnings

* Fix warnings in camera.c

* Fix many more warnings in game.c

* racer.c warning fixes

* Match func_80008140

* func_800092A8 is close, but not quite matching

* Reconfigured unk80120AC0 to be ObjectSegment and have Object match it. Maybe it should be merged in?

* Make changes to get NON_EQUIVALENT building.

* Nearly match func_800092A8

* Get func_800092A8 REALLY close, and update the submodule to point to the newer location

* Matched func_800092A8 thanks to Synray

* Not sure why the commit value changed, but this is the latest

* Fix makefile for updated recomp project builds

* Match update_controller_sticks

* Do some documenting

* Implement suggestions from PR, and add ObjectSegment into Object struct

* Match two more funcs

* An if(0){} seems more appropriate after second thought

* Add size to ObjectSegment

* Update include/structs.h

Co-authored-by: AntonioCastelli <aatcastelli@gmail.com>

Co-authored-by: Ryan Myers <foldor@gmail.com>
Co-authored-by: AntonioCastelli <aatcastelli@gmail.com>
This commit is contained in:
Ryan Myers
2022-03-10 09:01:18 -05:00
committed by GitHub
co-authored by Ryan Myers AntonioCastelli
parent e2f17a78f9
commit d2eb45ff48
75 changed files with 1323 additions and 1898 deletions
+1 -1
View File
@@ -1,3 +1,3 @@
[submodule "tools/ido-static-recomp"]
path = tools/ido-static-recomp
url = https://github.com/Emill/ido-static-recomp
url = https://github.com/decompals/ido-static-recomp
+18 -12
View File
@@ -18,6 +18,9 @@ endif
ifeq ($(NON_MATCHING),1)
DEFINES += NON_MATCHING=1
endif
ifeq ($(NON_EQUIVALENT),1)
DEFINES += NON_EQUIVALENT=1
endif
# Whether to hide commands or not
VERBOSE ?= 0
@@ -87,7 +90,7 @@ $(foreach p,$(RECOMP_TOOLS_PATHS),$(if $(wildcard $(p)),,$(info $(p) does not ex
# If any of the tools do not exist, then recomp needs to run to build them.
ifeq ($(runRecomp),yes)
DUMMY != cd $(RECOMP_PROJECT) && python3 build.py ido/5.3 -O2 && cd ../../ >&2 || echo FAIL
DUMMY != cd $(RECOMP_PROJECT) && python3 build.py ido/5.3 -O2 && cp build5.3/out/usr/bin/cc build5.3/out/cc && cp build5.3/out/usr/lib/* build5.3/out/ && cd ../../ >&2 || echo FAIL
endif
######## Extract Assets & Microcode ########
@@ -144,16 +147,19 @@ else
endif
MIPSISET := -mips1
OPT_FLAGS := -O2
OPT_FLAGS := -O2 -Xfullwarn #include -Xfullwarn here since it's not supported with -O3
INCLUDE_DIRS := include $(BUILD_DIR) $(BUILD_DIR)/include src include/libc .
C_DEFINES := $(foreach d,$(DEFINES),-D$(d))
DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
#IDO Warnings to Ignore. These are coding style warnings we don't follow
IDO_IGNORE_WARNINGS = -woff 838,649,624
ASFLAGS = -mtune=vr4300 -march=vr4300 -mabi=32 $(foreach d,$(DEFINES),--defsym $(d))
INCLUDE_CFLAGS := -I include -I $(BUILD_DIR) -I src -I . -I include/libc
CFLAGS = -c -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -Xfullwarn -signed -DNDEBUG $(OPT_FLAGS) $(MIPSISET) $(INCLUDE_CFLAGS) $(DEF_INC_CFLAGS)
CFLAGS = -c -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -signed -DNDEBUG $(OPT_FLAGS) $(MIPSISET) $(INCLUDE_CFLAGS) $(DEF_INC_CFLAGS) $(IDO_IGNORE_WARNINGS)
LDFLAGS = undefined_syms.txt -T $(LD_SCRIPT) -Map $(BUILD_DIR)/dkr.map
####################### Other Tools #########################
@@ -308,14 +314,14 @@ ALL_ASSETS_BUILT += $(patsubst $(UCODE_IN_DIR)/%.bin,$(UCODE_OUT_DIR)/%.bin,$(UC
####################### LIBULTRA #########################
$(BUILD_DIR)/lib/%.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/%.o: OPT_FLAGS := -O2 -Xfullwarn
$(BUILD_DIR)/lib/src/al/%.o: OPT_FLAGS := -O3
$(BUILD_DIR)/lib/src/os/%.o: OPT_FLAGS := -O1
$(BUILD_DIR)/lib/src/os/osViMgr.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/src/os/osCreatePiManager.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/src/os/osMotor.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/src/os/%.o: OPT_FLAGS := -O1 -Xfullwarn
$(BUILD_DIR)/lib/src/os/osViMgr.o: OPT_FLAGS := -O2 -Xfullwarn
$(BUILD_DIR)/lib/src/os/osCreatePiManager.o: OPT_FLAGS := -O2 -Xfullwarn
$(BUILD_DIR)/lib/src/os/osMotor.o: OPT_FLAGS := -O2 -Xfullwarn
$(BUILD_DIR)/lib/src/libc/xprintf.o : OPT_FLAGS := -O3
$(BUILD_DIR)/lib/src/al/unknown_0C9C90.o: OPT_FLAGS := -O2 -Wo,-loopunroll,0
$(BUILD_DIR)/lib/src/al/unknown_0C9C90.o: OPT_FLAGS := -O2 -Xfullwarn -Wo,-loopunroll,0
#$(BUILD_DIR)/lib/src/libc/llcvt.o: OPT_FLAGS :=
#$(BUILD_DIR)/lib/src/libc/llcvt.o: MIPSISET := -mips3 32
@@ -324,7 +330,7 @@ $(BUILD_DIR)/lib/src/mips1/%.o: MIPSISET := -mips1
$(BUILD_DIR)/lib/src/os/osMotor.o: MIPSISET := -mips1
# asm-processor currently does not support -O3, so this is my workaround.
$(BUILD_DIR)/lib/src/al/global_asm/%.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/src/al/global_asm/%.o: OPT_FLAGS := -O2 -Xfullwarn
######################## Targets #############################
@@ -487,12 +493,12 @@ $(BUILD_DIR)/%.o: %.s | $(ALL_ASSETS_BUILT)
$(BUILD_DIR)/%.o: %.c | $(ALL_ASSETS_BUILT)
$(call print,Compiling:,$<,$@)
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
$(V)$(CC) -c $(CFLAGS) -o $@ $<
$(V)$(CC) $(CFLAGS) -o $@ $<
$(BUILD_DIR)/%.o: $(BUILD_DIR)/%.c | $(ALL_ASSETS_BUILT)
$(call print,Compiling:,$<,$@)
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
$(V)$(CC) -c $(CFLAGS) -o $@ $<
$(V)$(CC) $(CFLAGS) -o $@ $<
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) | $(ALL_ASSETS_BUILT)
$(call print,Preprocessing linker script:,$<,$@)
+1 -1
View File
@@ -477,7 +477,7 @@ glabel func_800A277C
/* 0A3A14 800A2E14 AFA800BC */ sw $t0, 0xbc($sp)
/* 0A3A18 800A2E18 27A500B4 */ addiu $a1, $sp, 0xb4
/* 0A3A1C 800A2E1C 27A600B0 */ addiu $a2, $sp, 0xb0
/* 0A3A20 800A2E20 0C0165E4 */ jal func_80059790
/* 0A3A20 800A2E20 0C0165E4 */ jal get_timestamp_from_frames
/* 0A3A24 800A2E24 27A700AC */ addiu $a3, $sp, 0xac
/* 0A3A28 800A2E28 8FAC003C */ lw $t4, 0x3c($sp)
/* 0A3A2C 800A2E2C 3C01800E */ lui $at, %hi(D_800E2834) # $at, 0x800e
+2 -2
View File
@@ -437,7 +437,7 @@ glabel L800A63D8
.L800A6890:
/* 0A7490 800A6890 27A50040 */ addiu $a1, $sp, 0x40
/* 0A7494 800A6894 27A70038 */ addiu $a3, $sp, 0x38
/* 0A7498 800A6898 0C0165E4 */ jal func_80059790
/* 0A7498 800A6898 0C0165E4 */ jal get_timestamp_from_frames
/* 0A749C 800A689C AFA80048 */ sw $t0, 0x48($sp)
/* 0A74A0 800A68A0 3C098012 */ lui $t1, %hi(D_80126CDC) # $t1, 0x8012
/* 0A74A4 800A68A4 25296CDC */ addiu $t1, %lo(D_80126CDC) # addiu $t1, $t1, 0x6cdc
@@ -454,7 +454,7 @@ glabel L800A63D8
/* 0A74D0 800A68D0 27A70038 */ addiu $a3, $sp, 0x38
/* 0A74D4 800A68D4 A30F02FC */ sb $t7, 0x2fc($t8)
/* 0A74D8 800A68D8 8FA40048 */ lw $a0, 0x48($sp)
/* 0A74DC 800A68DC 0C0165E4 */ jal func_80059790
/* 0A74DC 800A68DC 0C0165E4 */ jal get_timestamp_from_frames
/* 0A74E0 800A68E0 00000000 */ nop
/* 0A74E4 800A68E4 3C098012 */ lui $t1, %hi(D_80126CDC) # $t1, 0x8012
/* 0A74E8 800A68E8 25296CDC */ addiu $t1, %lo(D_80126CDC) # addiu $t1, $t1, 0x6cdc
+1 -1
View File
@@ -130,7 +130,7 @@ glabel func_800A7B68
/* 0A8948 800A7D48 27A50054 */ addiu $a1, $sp, 0x54
/* 0A894C 800A7D4C 27A60050 */ addiu $a2, $sp, 0x50
/* 0A8950 800A7D50 27A7004C */ addiu $a3, $sp, 0x4c
/* 0A8954 800A7D54 0C0165E4 */ jal func_80059790
/* 0A8954 800A7D54 0C0165E4 */ jal get_timestamp_from_frames
/* 0A8958 800A7D58 AFA90044 */ sw $t1, 0x44($sp)
/* 0A895C 800A7D5C 8FB80048 */ lw $t8, 0x48($sp)
/* 0A8960 800A7D60 8FA90044 */ lw $t1, 0x44($sp)
-40
View File
@@ -1,40 +0,0 @@
glabel func_80065D98
/* 066998 80065D98 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 06699C 80065D9C AFBF001C */ sw $ra, 0x1c($sp)
/* 0669A0 80065DA0 0C02DBD4 */ jal func_800B6F50
/* 0669A4 80065DA4 AFA40020 */ sw $a0, 0x20($sp)
/* 0669A8 80065DA8 3C0E8012 */ lui $t6, %hi(gThread3StackPointer) # $t6, 0x8012
/* 0669AC 80065DAC 25CEF758 */ addiu $t6, %lo(gThread3StackPointer) # addiu $t6, $t6, -0x8a8
/* 0669B0 80065DB0 3C048012 */ lui $a0, %hi(gThread3) # $a0, 0x8012
/* 0669B4 80065DB4 3C068007 */ lui $a2, %hi(thread3_main) # $a2, 0x8007
/* 0669B8 80065DB8 240F000A */ li $t7, 10
/* 0669BC 80065DBC AFAF0014 */ sw $t7, 0x14($sp)
/* 0669C0 80065DC0 24C6C330 */ addiu $a2, %lo(thread3_main) # addiu $a2, $a2, -0x3cd0
/* 0669C4 80065DC4 2484F910 */ addiu $a0, %lo(gThread3) # addiu $a0, $a0, -0x6f0
/* 0669C8 80065DC8 AFAE0010 */ sw $t6, 0x10($sp)
/* 0669CC 80065DCC 24050003 */ li $a1, 3
/* 0669D0 80065DD0 0C032214 */ jal osCreateThread
/* 0669D4 80065DD4 00003825 */ move $a3, $zero
/* 0669D8 80065DD8 3C028012 */ lui $v0, %hi(D_8011D758) # $v0, 0x8012
/* 0669DC 80065DDC 2442D758 */ addiu $v0, %lo(D_8011D758) # addiu $v0, $v0, -0x28a8
/* 0669E0 80065DE0 24180000 */ li $t8, 0
/* 0669E4 80065DE4 24190000 */ li $t9, 0
/* 0669E8 80065DE8 24080000 */ li $t0, 0
/* 0669EC 80065DEC 24090000 */ li $t1, 0
/* 0669F0 80065DF0 3C048012 */ lui $a0, %hi(gThread3) # $a0, 0x8012
/* 0669F4 80065DF4 AC592004 */ sw $t9, 0x2004($v0)
/* 0669F8 80065DF8 AC582000 */ sw $t8, 0x2000($v0)
/* 0669FC 80065DFC AC490004 */ sw $t1, 4($v0)
/* 066A00 80065E00 AC480000 */ sw $t0, ($v0)
/* 066A04 80065E04 0C032268 */ jal osStartThread
/* 066A08 80065E08 2484F910 */ addiu $a0, %lo(gThread3) # addiu $a0, $a0, -0x6f0
/* 066A0C 80065E0C 00002025 */ move $a0, $zero
/* 066A10 80065E10 0C033210 */ jal osSetThreadPri
/* 066A14 80065E14 00002825 */ move $a1, $zero
.L80065E18:
/* 066A18 80065E18 1000FFFF */ b .L80065E18
/* 066A1C 80065E1C 00000000 */ nop
/* 066A20 80065E20 8FBF001C */ lw $ra, 0x1c($sp)
/* 066A24 80065E24 27BD0020 */ addiu $sp, $sp, 0x20
/* 066A28 80065E28 03E00008 */ jr $ra
/* 066A2C 80065E2C 00000000 */ nop
-31
View File
@@ -1,31 +0,0 @@
glabel func_80065E30
/* 066A30 80065E30 3C028012 */ lui $v0, %hi(D_8011D758) # $v0, 0x8012
/* 066A34 80065E34 2442D758 */ addiu $v0, %lo(D_8011D758) # addiu $v0, $v0, -0x28a8
/* 066A38 80065E38 8C4F2004 */ lw $t7, 0x2004($v0)
/* 066A3C 80065E3C 8C4E2000 */ lw $t6, 0x2000($v0)
/* 066A40 80065E40 8C490004 */ lw $t1, 4($v0)
/* 066A44 80065E44 25F90001 */ addiu $t9, $t7, 1
/* 066A48 80065E48 2F210001 */ sltiu $at, $t9, 1
/* 066A4C 80065E4C 8C480000 */ lw $t0, ($v0)
/* 066A50 80065E50 01C1C021 */ addu $t8, $t6, $at
/* 066A54 80065E54 252B0001 */ addiu $t3, $t1, 1
/* 066A58 80065E58 2D610001 */ sltiu $at, $t3, 1
/* 066A5C 80065E5C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 066A60 80065E60 01015021 */ addu $t2, $t0, $at
/* 066A64 80065E64 AFBF0014 */ sw $ra, 0x14($sp)
/* 066A68 80065E68 AC582000 */ sw $t8, 0x2000($v0)
/* 066A6C 80065E6C AC592004 */ sw $t9, 0x2004($v0)
/* 066A70 80065E70 AC4A0000 */ sw $t2, ($v0)
/* 066A74 80065E74 170A0002 */ bne $t8, $t2, .L80065E80
/* 066A78 80065E78 AC4B0004 */ sw $t3, 4($v0)
/* 066A7C 80065E7C 132B0003 */ beq $t9, $t3, .L80065E8C
.L80065E80:
/* 066A80 80065E80 3C04800E */ lui $a0, %hi(D_800E6ED0) # $a0, 0x800e
/* 066A84 80065E84 0C032755 */ jal rmonPrintf
/* 066A88 80065E88 24846ED0 */ addiu $a0, %lo(D_800E6ED0) # addiu $a0, $a0, 0x6ed0
.L80065E8C:
/* 066A8C 80065E8C 8FBF0014 */ lw $ra, 0x14($sp)
/* 066A90 80065E90 27BD0018 */ addiu $sp, $sp, 0x18
/* 066A94 80065E94 03E00008 */ jr $ra
/* 066A98 80065E98 00000000 */ nop
/* 066A9C 80065E9C 00000000 */ nop
+1 -1
View File
@@ -186,7 +186,7 @@ glabel L80082454
/* 083098 80082498 01093023 */ subu $a2, $t0, $t1
/* 08309C 8008249C 24C60078 */ addiu $a2, $a2, 0x78
/* 0830A0 800824A0 2645FF60 */ addiu $a1, $s2, -0xa0
/* 0830A4 800824A4 0C020600 */ jal func_80081800
/* 0830A4 800824A4 0C020600 */ jal show_timestamp
/* 0830A8 800824A8 AFAC0018 */ sw $t4, 0x18($sp)
/* 0830AC 800824AC 8FA40070 */ lw $a0, 0x70($sp)
/* 0830B0 800824B0 100000DE */ b .L8008282C
+2 -2
View File
@@ -220,7 +220,7 @@ glabel func_80092E94
/* 093DF4 800931F4 AFA00018 */ sw $zero, 0x18($sp)
/* 093DF8 800931F8 2405001A */ li $a1, 26
/* 093DFC 800931FC 24060035 */ li $a2, 53
/* 093E00 80093200 0C020600 */ jal func_80081800
/* 093E00 80093200 0C020600 */ jal show_timestamp
/* 093E04 80093204 24070080 */ li $a3, 128
/* 093E08 80093208 8FAE0050 */ lw $t6, 0x50($sp)
/* 093E0C 8009320C 3C188012 */ lui $t8, %hi(gPlayerSelectVehicle) # $t8, 0x8012
@@ -243,7 +243,7 @@ glabel func_80092E94
/* 093E50 80093250 AFA00018 */ sw $zero, 0x18($sp)
/* 093E54 80093254 2405001A */ li $a1, 26
/* 093E58 80093258 24060021 */ li $a2, 33
/* 093E5C 8009325C 0C020600 */ jal func_80081800
/* 093E5C 8009325C 0C020600 */ jal show_timestamp
/* 093E60 80093260 240700FF */ li $a3, 255
.L80093264:
/* 093E64 80093264 3C068012 */ lui $a2, %hi(D_801263BC) # $a2, 0x8012
+2 -2
View File
@@ -384,7 +384,7 @@ glabel func_80099E8C
/* 09B034 8009A434 AFA00014 */ sw $zero, 0x14($sp)
/* 09B038 8009A438 AFA00010 */ sw $zero, 0x10($sp)
/* 09B03C 8009A43C 00003825 */ move $a3, $zero
/* 09B040 8009A440 0C020600 */ jal func_80081800
/* 09B040 8009A440 0C020600 */ jal show_timestamp
/* 09B044 8009A444 24A5FF89 */ addiu $a1, $a1, -0x77
/* 09B048 8009A448 240F00FF */ li $t7, 255
/* 09B04C 8009A44C 3C01800E */ lui $at, %hi(sMenuGuiOpacity) # $at, 0x800e
@@ -404,7 +404,7 @@ glabel func_80099E8C
/* 09B084 8009A484 AFAC0010 */ sw $t4, 0x10($sp)
/* 09B088 8009A488 AFA00018 */ sw $zero, 0x18($sp)
/* 09B08C 8009A48C 240700FF */ li $a3, 255
/* 09B090 8009A490 0C020600 */ jal func_80081800
/* 09B090 8009A490 0C020600 */ jal show_timestamp
/* 09B094 8009A494 24A5FF87 */ addiu $a1, $a1, -0x79
/* 09B098 8009A498 8FB80074 */ lw $t8, 0x74($sp)
/* 09B09C 8009A49C 8FAE00E4 */ lw $t6, 0xe4($sp)
@@ -415,7 +415,7 @@ glabel render_track_select_setup_ui
/* 09213C 8009153C AFA00018 */ sw $zero, 0x18($sp)
/* 092140 80091540 24050016 */ li $a1, 22
/* 092144 80091544 24060035 */ li $a2, 53
/* 092148 80091548 0C020600 */ jal func_80081800
/* 092148 80091548 0C020600 */ jal show_timestamp
/* 09214C 8009154C 24070080 */ li $a3, 128
/* 092150 80091550 3C0D8012 */ lui $t5, %hi(gPlayerSelectVehicle) # $t5, 0x8012
/* 092154 80091554 81AD69C0 */ lb $t5, %lo(gPlayerSelectVehicle)($t5)
@@ -435,7 +435,7 @@ glabel render_track_select_setup_ui
/* 09218C 8009158C AFA00018 */ sw $zero, 0x18($sp)
/* 092190 80091590 24050016 */ li $a1, 22
/* 092194 80091594 24060021 */ li $a2, 33
/* 092198 80091598 0C020600 */ jal func_80081800
/* 092198 80091598 0C020600 */ jal show_timestamp
/* 09219C 8009159C 240700FF */ li $a3, 255
/* 0921A0 800915A0 3C0D8012 */ lui $t5, %hi(D_801263E0) # $t5, 0x8012
/* 0921A4 800915A4 8DAD63E0 */ lw $t5, %lo(D_801263E0)($t5)
@@ -1,159 +0,0 @@
glabel update_controller_sticks
/* 09CB20 8009BF20 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 09CB24 8009BF24 AFB70034 */ sw $s7, 0x34($sp)
/* 09CB28 8009BF28 AFB60030 */ sw $s6, 0x30($sp)
/* 09CB2C 8009BF2C AFB30024 */ sw $s3, 0x24($sp)
/* 09CB30 8009BF30 AFB20020 */ sw $s2, 0x20($sp)
/* 09CB34 8009BF34 AFB1001C */ sw $s1, 0x1c($sp)
/* 09CB38 8009BF38 AFB00018 */ sw $s0, 0x18($sp)
/* 09CB3C 8009BF3C AFBE0038 */ sw $fp, 0x38($sp)
/* 09CB40 8009BF40 AFB5002C */ sw $s5, 0x2c($sp)
/* 09CB44 8009BF44 3C108012 */ lui $s0, %hi(gControllersXAxisDelay) # $s0, 0x8012
/* 09CB48 8009BF48 3C118012 */ lui $s1, %hi(gControllersYAxisDelay) # $s1, 0x8012
/* 09CB4C 8009BF4C 3C128012 */ lui $s2, %hi(gControllersXAxis) # $s2, 0x8012
/* 09CB50 8009BF50 3C138012 */ lui $s3, %hi(gControllersYAxis) # $s3, 0x8012
/* 09CB54 8009BF54 3C168012 */ lui $s6, %hi(gControllersXAxisDirection) # $s6, 0x8012
/* 09CB58 8009BF58 3C178012 */ lui $s7, %hi(gControllersYAxisDirection) # $s7, 0x8012
/* 09CB5C 8009BF5C AFBF003C */ sw $ra, 0x3c($sp)
/* 09CB60 8009BF60 AFB40028 */ sw $s4, 0x28($sp)
/* 09CB64 8009BF64 26F76464 */ addiu $s7, %lo(gControllersYAxisDirection) # addiu $s7, $s7, 0x6464
/* 09CB68 8009BF68 26D6645C */ addiu $s6, %lo(gControllersXAxisDirection) # addiu $s6, $s6, 0x645c
/* 09CB6C 8009BF6C 2673646C */ addiu $s3, %lo(gControllersYAxis) # addiu $s3, $s3, 0x646c
/* 09CB70 8009BF70 26526468 */ addiu $s2, %lo(gControllersXAxis) # addiu $s2, $s2, 0x6468
/* 09CB74 8009BF74 26316458 */ addiu $s1, %lo(gControllersYAxisDelay) # addiu $s1, $s1, 0x6458
/* 09CB78 8009BF78 26106454 */ addiu $s0, %lo(gControllersXAxisDelay) # addiu $s0, $s0, 0x6454
/* 09CB7C 8009BF7C 0000A825 */ move $s5, $zero
/* 09CB80 8009BF80 241EFFFF */ li $fp, -1
.L8009BF84:
/* 09CB84 8009BF84 0C01A967 */ jal clamp_joystick_x_axis
/* 09CB88 8009BF88 02A02025 */ move $a0, $s5
/* 09CB8C 8009BF8C 0040A025 */ move $s4, $v0
/* 09CB90 8009BF90 0C01A978 */ jal clamp_joystick_y_axis
/* 09CB94 8009BF94 02A02025 */ move $a0, $s5
/* 09CB98 8009BF98 2A81FFDD */ slti $at, $s4, -0x23
/* 09CB9C 8009BF9C A2C00000 */ sb $zero, ($s6)
/* 09CBA0 8009BFA0 10200008 */ beqz $at, .L8009BFC4
/* 09CBA4 8009BFA4 A2E00000 */ sb $zero, ($s7)
/* 09CBA8 8009BFA8 824E0000 */ lb $t6, ($s2)
/* 09CBAC 8009BFAC 00000000 */ nop
/* 09CBB0 8009BFB0 29C1FFDD */ slti $at, $t6, -0x23
/* 09CBB4 8009BFB4 14200004 */ bnez $at, .L8009BFC8
/* 09CBB8 8009BFB8 2A810024 */ slti $at, $s4, 0x24
/* 09CBBC 8009BFBC A2DE0000 */ sb $fp, ($s6)
/* 09CBC0 8009BFC0 A2000000 */ sb $zero, ($s0)
.L8009BFC4:
/* 09CBC4 8009BFC4 2A810024 */ slti $at, $s4, 0x24
.L8009BFC8:
/* 09CBC8 8009BFC8 14200008 */ bnez $at, .L8009BFEC
/* 09CBCC 8009BFCC 26B50001 */ addiu $s5, $s5, 1
/* 09CBD0 8009BFD0 824F0000 */ lb $t7, ($s2)
/* 09CBD4 8009BFD4 24180001 */ li $t8, 1
/* 09CBD8 8009BFD8 29E10024 */ slti $at, $t7, 0x24
/* 09CBDC 8009BFDC 10200004 */ beqz $at, .L8009BFF0
/* 09CBE0 8009BFE0 2841FFDD */ slti $at, $v0, -0x23
/* 09CBE4 8009BFE4 A2D80000 */ sb $t8, ($s6)
/* 09CBE8 8009BFE8 A2000000 */ sb $zero, ($s0)
.L8009BFEC:
/* 09CBEC 8009BFEC 2841FFDD */ slti $at, $v0, -0x23
.L8009BFF0:
/* 09CBF0 8009BFF0 10200008 */ beqz $at, .L8009C014
/* 09CBF4 8009BFF4 26D60001 */ addiu $s6, $s6, 1
/* 09CBF8 8009BFF8 82790000 */ lb $t9, ($s3)
/* 09CBFC 8009BFFC 00000000 */ nop
/* 09CC00 8009C000 2B21FFDD */ slti $at, $t9, -0x23
/* 09CC04 8009C004 14200004 */ bnez $at, .L8009C018
/* 09CC08 8009C008 28410024 */ slti $at, $v0, 0x24
/* 09CC0C 8009C00C A2FE0000 */ sb $fp, ($s7)
/* 09CC10 8009C010 A2200000 */ sb $zero, ($s1)
.L8009C014:
/* 09CC14 8009C014 28410024 */ slti $at, $v0, 0x24
.L8009C018:
/* 09CC18 8009C018 14200008 */ bnez $at, .L8009C03C
/* 09CC1C 8009C01C 00000000 */ nop
/* 09CC20 8009C020 82680000 */ lb $t0, ($s3)
/* 09CC24 8009C024 24090001 */ li $t1, 1
/* 09CC28 8009C028 29010024 */ slti $at, $t0, 0x24
/* 09CC2C 8009C02C 10200003 */ beqz $at, .L8009C03C
/* 09CC30 8009C030 00000000 */ nop
/* 09CC34 8009C034 A2E90000 */ sb $t1, ($s7)
/* 09CC38 8009C038 A2200000 */ sb $zero, ($s1)
.L8009C03C:
/* 09CC3C 8009C03C A2620000 */ sb $v0, ($s3)
/* 09CC40 8009C040 82630000 */ lb $v1, ($s3)
/* 09CC44 8009C044 26F70001 */ addiu $s7, $s7, 1
/* 09CC48 8009C048 2861FFDD */ slti $at, $v1, -0x23
/* 09CC4C 8009C04C 10200007 */ beqz $at, .L8009C06C
/* 09CC50 8009C050 28610024 */ slti $at, $v1, 0x24
/* 09CC54 8009C054 822A0000 */ lb $t2, ($s1)
/* 09CC58 8009C058 00000000 */ nop
/* 09CC5C 8009C05C 254B0001 */ addiu $t3, $t2, 1
/* 09CC60 8009C060 1000000A */ b .L8009C08C
/* 09CC64 8009C064 A22B0000 */ sb $t3, ($s1)
/* 09CC68 8009C068 28610024 */ slti $at, $v1, 0x24
.L8009C06C:
/* 09CC6C 8009C06C 14200006 */ bnez $at, .L8009C088
/* 09CC70 8009C070 00000000 */ nop
/* 09CC74 8009C074 822C0000 */ lb $t4, ($s1)
/* 09CC78 8009C078 00000000 */ nop
/* 09CC7C 8009C07C 258D0001 */ addiu $t5, $t4, 1
/* 09CC80 8009C080 10000002 */ b .L8009C08C
/* 09CC84 8009C084 A22D0000 */ sb $t5, ($s1)
.L8009C088:
/* 09CC88 8009C088 A2200000 */ sb $zero, ($s1)
.L8009C08C:
/* 09CC8C 8009C08C 822E0000 */ lb $t6, ($s1)
/* 09CC90 8009C090 00000000 */ nop
/* 09CC94 8009C094 29C10010 */ slti $at, $t6, 0x10
/* 09CC98 8009C098 14200003 */ bnez $at, .L8009C0A8
/* 09CC9C 8009C09C 00000000 */ nop
/* 09CCA0 8009C0A0 A2600000 */ sb $zero, ($s3)
/* 09CCA4 8009C0A4 A2200000 */ sb $zero, ($s1)
.L8009C0A8:
/* 09CCA8 8009C0A8 A2540000 */ sb $s4, ($s2)
/* 09CCAC 8009C0AC 82420000 */ lb $v0, ($s2)
/* 09CCB0 8009C0B0 26730001 */ addiu $s3, $s3, 1
/* 09CCB4 8009C0B4 2841FFDD */ slti $at, $v0, -0x23
/* 09CCB8 8009C0B8 10200006 */ beqz $at, .L8009C0D4
/* 09CCBC 8009C0BC 26310001 */ addiu $s1, $s1, 1
/* 09CCC0 8009C0C0 820F0000 */ lb $t7, ($s0)
/* 09CCC4 8009C0C4 00000000 */ nop
/* 09CCC8 8009C0C8 25F80001 */ addiu $t8, $t7, 1
/* 09CCCC 8009C0CC 1000000A */ b .L8009C0F8
/* 09CCD0 8009C0D0 A2180000 */ sb $t8, ($s0)
.L8009C0D4:
/* 09CCD4 8009C0D4 28410024 */ slti $at, $v0, 0x24
/* 09CCD8 8009C0D8 14200006 */ bnez $at, .L8009C0F4
/* 09CCDC 8009C0DC 00000000 */ nop
/* 09CCE0 8009C0E0 82190000 */ lb $t9, ($s0)
/* 09CCE4 8009C0E4 00000000 */ nop
/* 09CCE8 8009C0E8 27280001 */ addiu $t0, $t9, 1
/* 09CCEC 8009C0EC 10000002 */ b .L8009C0F8
/* 09CCF0 8009C0F0 A2080000 */ sb $t0, ($s0)
.L8009C0F4:
/* 09CCF4 8009C0F4 A2000000 */ sb $zero, ($s0)
.L8009C0F8:
/* 09CCF8 8009C0F8 82090000 */ lb $t1, ($s0)
/* 09CCFC 8009C0FC 00000000 */ nop
/* 09CD00 8009C100 29210010 */ slti $at, $t1, 0x10
/* 09CD04 8009C104 14200004 */ bnez $at, .L8009C118
/* 09CD08 8009C108 24010004 */ li $at, 4
/* 09CD0C 8009C10C A2400000 */ sb $zero, ($s2)
/* 09CD10 8009C110 A2000000 */ sb $zero, ($s0)
/* 09CD14 8009C114 24010004 */ li $at, 4
.L8009C118:
/* 09CD18 8009C118 26520001 */ addiu $s2, $s2, 1
/* 09CD1C 8009C11C 16A1FF99 */ bne $s5, $at, .L8009BF84
/* 09CD20 8009C120 26100001 */ addiu $s0, $s0, 1
/* 09CD24 8009C124 8FBF003C */ lw $ra, 0x3c($sp)
/* 09CD28 8009C128 8FB00018 */ lw $s0, 0x18($sp)
/* 09CD2C 8009C12C 8FB1001C */ lw $s1, 0x1c($sp)
/* 09CD30 8009C130 8FB20020 */ lw $s2, 0x20($sp)
/* 09CD34 8009C134 8FB30024 */ lw $s3, 0x24($sp)
/* 09CD38 8009C138 8FB40028 */ lw $s4, 0x28($sp)
/* 09CD3C 8009C13C 8FB5002C */ lw $s5, 0x2c($sp)
/* 09CD40 8009C140 8FB60030 */ lw $s6, 0x30($sp)
/* 09CD44 8009C144 8FB70034 */ lw $s7, 0x34($sp)
/* 09CD48 8009C148 8FBE0038 */ lw $fp, 0x38($sp)
/* 09CD4C 8009C14C 03E00008 */ jr $ra
/* 09CD50 8009C150 27BD0040 */ addiu $sp, $sp, 0x40
-72
View File
@@ -1,72 +0,0 @@
glabel func_80012E28
/* 013A28 80012E28 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 013A2C 80012E2C AFBF0014 */ sw $ra, 0x14($sp)
/* 013A30 80012E30 848E0048 */ lh $t6, 0x48($a0)
/* 013A34 80012E34 24010001 */ li $at, 1
/* 013A38 80012E38 15C10039 */ bne $t6, $at, .L80012F20
/* 013A3C 80012E3C 00802825 */ move $a1, $a0
/* 013A40 80012E40 8C820064 */ lw $v0, 0x64($a0)
/* 013A44 80012E44 848F0000 */ lh $t7, ($a0)
/* 013A48 80012E48 84580160 */ lh $t8, 0x160($v0)
/* 013A4C 80012E4C 84880002 */ lh $t0, 2($a0)
/* 013A50 80012E50 01F8C821 */ addu $t9, $t7, $t8
/* 013A54 80012E54 A4990000 */ sh $t9, ($a0)
/* 013A58 80012E58 84490162 */ lh $t1, 0x162($v0)
/* 013A5C 80012E5C 848B0004 */ lh $t3, 4($a0)
/* 013A60 80012E60 01095021 */ addu $t2, $t0, $t1
/* 013A64 80012E64 A48A0002 */ sh $t2, 2($a0)
/* 013A68 80012E68 844C0164 */ lh $t4, 0x164($v0)
/* 013A6C 80012E6C 44800000 */ mtc1 $zero, $f0
/* 013A70 80012E70 016C6821 */ addu $t5, $t3, $t4
/* 013A74 80012E74 A48D0004 */ sh $t5, 4($a0)
/* 013A78 80012E78 804E01D7 */ lb $t6, 0x1d7($v0)
/* 013A7C 80012E7C 00000000 */ nop
/* 013A80 80012E80 29C10005 */ slti $at, $t6, 5
/* 013A84 80012E84 10200021 */ beqz $at, .L80012F0C
/* 013A88 80012E88 00000000 */ nop
/* 013A8C 80012E8C 84440164 */ lh $a0, 0x164($v0)
/* 013A90 80012E90 AFA50028 */ sw $a1, 0x28($sp)
/* 013A94 80012E94 0C01C1FE */ jal func_800707F8
/* 013A98 80012E98 AFA20020 */ sw $v0, 0x20($sp)
/* 013A9C 80012E9C 8FA20020 */ lw $v0, 0x20($sp)
/* 013AA0 80012EA0 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 013AA4 80012EA4 84580166 */ lh $t8, 0x166($v0)
/* 013AA8 80012EA8 844F0162 */ lh $t7, 0x162($v0)
/* 013AAC 80012EAC 00000000 */ nop
/* 013AB0 80012EB0 01F82023 */ subu $a0, $t7, $t8
/* 013AB4 80012EB4 0004CC00 */ sll $t9, $a0, 0x10
/* 013AB8 80012EB8 0C01C1FE */ jal func_800707F8
/* 013ABC 80012EBC 00192403 */ sra $a0, $t9, 0x10
/* 013AC0 80012EC0 C7A4001C */ lwc1 $f4, 0x1c($sp)
/* 013AC4 80012EC4 44806000 */ mtc1 $zero, $f12
/* 013AC8 80012EC8 46040082 */ mul.s $f2, $f0, $f4
/* 013ACC 80012ECC 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 013AD0 80012ED0 8FA20020 */ lw $v0, 0x20($sp)
/* 013AD4 80012ED4 8FA50028 */ lw $a1, 0x28($sp)
/* 013AD8 80012ED8 460C103C */ c.lt.s $f2, $f12
/* 013ADC 80012EDC 44813000 */ mtc1 $at, $f6
/* 013AE0 80012EE0 45000003 */ bc1f .L80012EF0
/* 013AE4 80012EE4 3C0141C0 */ li $at, 0x41C00000 # 24.000000
/* 013AE8 80012EE8 10000003 */ b .L80012EF8
/* 013AEC 80012EEC 46006006 */ mov.s $f0, $f12
.L80012EF0:
/* 013AF0 80012EF0 46021002 */ mul.s $f0, $f2, $f2
/* 013AF4 80012EF4 00000000 */ nop
.L80012EF8:
/* 013AF8 80012EF8 46003201 */ sub.s $f8, $f6, $f0
/* 013AFC 80012EFC 44815000 */ mtc1 $at, $f10
/* 013B00 80012F00 C45200D0 */ lwc1 $f18, 0xd0($v0)
/* 013B04 80012F04 460A4402 */ mul.s $f16, $f8, $f10
/* 013B08 80012F08 46128000 */ add.s $f0, $f16, $f18
.L80012F0C:
/* 013B0C 80012F0C C4A40010 */ lwc1 $f4, 0x10($a1)
/* 013B10 80012F10 3C018012 */ lui $at, %hi(D_8011ADD0) # $at, 0x8012
/* 013B14 80012F14 46002180 */ add.s $f6, $f4, $f0
/* 013B18 80012F18 E4A60010 */ swc1 $f6, 0x10($a1)
/* 013B1C 80012F1C E420ADD0 */ swc1 $f0, %lo(D_8011ADD0)($at)
.L80012F20:
/* 013B20 80012F20 8FBF0014 */ lw $ra, 0x14($sp)
/* 013B24 80012F24 27BD0028 */ addiu $sp, $sp, 0x28
/* 013B28 80012F28 03E00008 */ jr $ra
/* 013B2C 80012F2C 00000000 */ nop
@@ -1,45 +0,0 @@
glabel func_800B263C
/* 0B323C 800B263C 8C820070 */ lw $v0, 0x70($a0)
/* 0B3240 800B2640 00000000 */ nop
/* 0B3244 800B2644 10400024 */ beqz $v0, .L800B26D8
/* 0B3248 800B2648 00000000 */ nop
/* 0B324C 800B264C 90430006 */ lbu $v1, 6($v0)
/* 0B3250 800B2650 00000000 */ nop
/* 0B3254 800B2654 10600020 */ beqz $v1, .L800B26D8
/* 0B3258 800B2658 00000000 */ nop
/* 0B325C 800B265C 908F0074 */ lbu $t7, 0x74($a0)
/* 0B3260 800B2660 8C4E000C */ lw $t6, 0xc($v0)
/* 0B3264 800B2664 000FC080 */ sll $t8, $t7, 2
/* 0B3268 800B2668 01D8C821 */ addu $t9, $t6, $t8
/* 0B326C 800B266C 8F280000 */ lw $t0, ($t9)
/* 0B3270 800B2670 2469FFFF */ addiu $t1, $v1, -1
/* 0B3274 800B2674 14880018 */ bne $a0, $t0, .L800B26D8
/* 0B3278 800B2678 00000000 */ nop
/* 0B327C 800B267C A0490006 */ sb $t1, 6($v0)
/* 0B3280 800B2680 90850074 */ lbu $a1, 0x74($a0)
/* 0B3284 800B2684 312A00FF */ andi $t2, $t1, 0xff
/* 0B3288 800B2688 00AA082A */ slt $at, $a1, $t2
/* 0B328C 800B268C 10200012 */ beqz $at, .L800B26D8
/* 0B3290 800B2690 00051880 */ sll $v1, $a1, 2
.L800B2694:
/* 0B3294 800B2694 8C4B000C */ lw $t3, 0xc($v0)
/* 0B3298 800B2698 00000000 */ nop
/* 0B329C 800B269C 01633021 */ addu $a2, $t3, $v1
/* 0B32A0 800B26A0 8CCC0004 */ lw $t4, 4($a2)
/* 0B32A4 800B26A4 00000000 */ nop
/* 0B32A8 800B26A8 ACCC0000 */ sw $t4, ($a2)
/* 0B32AC 800B26AC 8C4D000C */ lw $t5, 0xc($v0)
/* 0B32B0 800B26B0 00000000 */ nop
/* 0B32B4 800B26B4 01A37821 */ addu $t7, $t5, $v1
/* 0B32B8 800B26B8 8DE40000 */ lw $a0, ($t7)
/* 0B32BC 800B26BC 24630004 */ addiu $v1, $v1, 4
/* 0B32C0 800B26C0 A0850074 */ sb $a1, 0x74($a0)
/* 0B32C4 800B26C4 904E0006 */ lbu $t6, 6($v0)
/* 0B32C8 800B26C8 24A50001 */ addiu $a1, $a1, 1
/* 0B32CC 800B26CC 00AE082A */ slt $at, $a1, $t6
/* 0B32D0 800B26D0 1420FFF0 */ bnez $at, .L800B2694
/* 0B32D4 800B26D4 00000000 */ nop
.L800B26D8:
/* 0B32D8 800B26D8 03E00008 */ jr $ra
/* 0B32DC 800B26DC 00000000 */ nop
@@ -49,7 +49,7 @@ glabel func_800B7460
/* 0B811C 800B751C 8FA909F4 */ lw $t1, 0x9f4($sp)
/* 0B8120 800B7520 00002825 */ move $a1, $zero
/* 0B8124 800B7524 19200054 */ blez $t1, .L800B7678
/* 0B8128 800B7528 3C07800F */ lui $a3, %hi(D_800E8EF0) # $a3, 0x800f
/* 0B8128 800B7528 3C07800F */ lui $a3, %hi(sCoreFileExt1) # $a3, 0x800f
/* 0B812C 800B752C 31260003 */ andi $a2, $t1, 3
/* 0B8130 800B7530 10C00018 */ beqz $a2, .L800B7594
/* 0B8134 800B7534 00C01825 */ move $v1, $a2
@@ -142,16 +142,16 @@ glabel func_800B7460
/* 0B8270 800B7670 14AEFFCB */ bne $a1, $t6, .L800B75A0
/* 0B8274 800B7674 24840008 */ addiu $a0, $a0, 8
.L800B7678:
/* 0B8278 800B7678 3C06800F */ lui $a2, %hi(D_800E8EE8) # $a2, 0x800f
/* 0B8278 800B7678 3C06800F */ lui $a2, %hi(sCoreFileName1) # $a2, 0x800f
/* 0B827C 800B767C 27AF0040 */ addiu $t7, $sp, 0x40
/* 0B8280 800B7680 240D0800 */ li $t5, 2048
/* 0B8284 800B7684 AFAD0014 */ sw $t5, 0x14($sp)
/* 0B8288 800B7688 AFAF0010 */ sw $t7, 0x10($sp)
/* 0B828C 800B768C 24C68EE8 */ addiu $a2, %lo(D_800E8EE8) # addiu $a2, $a2, -0x7118
/* 0B828C 800B768C 24C68EE8 */ addiu $a2, %lo(sCoreFileName1) # addiu $a2, $a2, -0x7118
/* 0B8290 800B7690 00002025 */ move $a0, $zero
/* 0B8294 800B7694 2405FFFF */ li $a1, -1
/* 0B8298 800B7698 0C01D9B5 */ jal write_controller_pak_file
/* 0B829C 800B769C 24E78EF0 */ addiu $a3, %lo(D_800E8EF0) # addiu $a3, $a3, -0x7110
/* 0B829C 800B769C 24E78EF0 */ addiu $a3, %lo(sCoreFileExt1) # addiu $a3, $a3, -0x7110
.L800B76A0:
/* 0B82A0 800B76A0 1000FFFF */ b .L800B76A0
/* 0B82A4 800B76A4 00000000 */ nop
@@ -1,4 +1,4 @@
glabel func_800B6F50
glabel thread0_create
/* 0B7B50 800B6F50 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0B7B54 800B6F54 3C0E8013 */ lui $t6, %hi(D_801295E0) # $t6, 0x8013
/* 0B7B58 800B6F58 AFBF001C */ sw $ra, 0x1c($sp)
@@ -1,12 +0,0 @@
glabel func_80008140
/* 008D40 80008140 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 008D44 80008144 AFBF0014 */ sw $ra, 0x14($sp)
/* 008D48 80008148 0C000638 */ jal func_800018E0
/* 008D4C 8000814C 00000000 */ nop
/* 008D50 80008150 8FBF0014 */ lw $ra, 0x14($sp)
/* 008D54 80008154 240E0001 */ li $t6, 1
/* 008D58 80008158 3C018012 */ lui $at, %hi(D_8011AC18) # $at, 0x8012
/* 008D5C 8000815C A02EAC18 */ sb $t6, %lo(D_8011AC18)($at)
/* 008D60 80008160 03E00008 */ jr $ra
/* 008D64 80008164 27BD0018 */ addiu $sp, $sp, 0x18
@@ -1,179 +0,0 @@
glabel func_800092A8
/* 009EA8 800092A8 27BDFF98 */ addiu $sp, $sp, -0x68
/* 009EAC 800092AC AFBF002C */ sw $ra, 0x2c($sp)
/* 009EB0 800092B0 E7B90020 */ swc1 $f25, 0x20($sp)
/* 009EB4 800092B4 E7B80024 */ swc1 $f24, 0x24($sp)
/* 009EB8 800092B8 E7B70018 */ swc1 $f23, 0x18($sp)
/* 009EBC 800092BC E7B6001C */ swc1 $f22, 0x1c($sp)
/* 009EC0 800092C0 E7B50010 */ swc1 $f21, 0x10($sp)
/* 009EC4 800092C4 E7B40014 */ swc1 $f20, 0x14($sp)
/* 009EC8 800092C8 E7AC0068 */ swc1 $f12, 0x68($sp)
/* 009ECC 800092CC E7AE006C */ swc1 $f14, 0x6c($sp)
/* 009ED0 800092D0 AFA60070 */ sw $a2, 0x70($sp)
/* 009ED4 800092D4 C4E4000C */ lwc1 $f4, 0xc($a3)
/* 009ED8 800092D8 C4F40000 */ lwc1 $f20, ($a3)
/* 009EDC 800092DC C4F60004 */ lwc1 $f22, 4($a3)
/* 009EE0 800092E0 C4F80008 */ lwc1 $f24, 8($a3)
/* 009EE4 800092E4 E7A4004C */ swc1 $f4, 0x4c($sp)
/* 009EE8 800092E8 C4E60010 */ lwc1 $f6, 0x10($a3)
/* 009EEC 800092EC C7AA004C */ lwc1 $f10, 0x4c($sp)
/* 009EF0 800092F0 E7A60048 */ swc1 $f6, 0x48($sp)
/* 009EF4 800092F4 C4E80014 */ lwc1 $f8, 0x14($a3)
/* 009EF8 800092F8 C7A60048 */ lwc1 $f6, 0x48($sp)
/* 009EFC 800092FC 46145081 */ sub.s $f2, $f10, $f20
/* 009F00 80009300 E7A80044 */ swc1 $f8, 0x44($sp)
/* 009F04 80009304 C7AA0044 */ lwc1 $f10, 0x44($sp)
/* 009F08 80009308 46163201 */ sub.s $f8, $f6, $f22
/* 009F0C 8000930C 44800800 */ mtc1 $zero, $f1
/* 009F10 80009310 44800000 */ mtc1 $zero, $f0
/* 009F14 80009314 46185181 */ sub.s $f6, $f10, $f24
/* 009F18 80009318 E7A20038 */ swc1 $f2, 0x38($sp)
/* 009F1C 8000931C 460012A1 */ cvt.d.s $f10, $f2
/* 009F20 80009320 462A0032 */ c.eq.d $f0, $f10
/* 009F24 80009324 E7A80034 */ swc1 $f8, 0x34($sp)
/* 009F28 80009328 46004406 */ mov.s $f16, $f8
/* 009F2C 8000932C E7A60030 */ swc1 $f6, 0x30($sp)
/* 009F30 80009330 4500000E */ bc1f .L8000936C
/* 009F34 80009334 46003486 */ mov.s $f18, $f6
/* 009F38 80009338 46004121 */ cvt.d.s $f4, $f8
/* 009F3C 8000933C 46240032 */ c.eq.d $f0, $f4
/* 009F40 80009340 00000000 */ nop
/* 009F44 80009344 45000009 */ bc1f .L8000936C
/* 009F48 80009348 00000000 */ nop
/* 009F4C 8000934C 460032A1 */ cvt.d.s $f10, $f6
/* 009F50 80009350 462A0032 */ c.eq.d $f0, $f10
/* 009F54 80009354 00000000 */ nop
/* 009F58 80009358 45000004 */ bc1f .L8000936C
/* 009F5C 8000935C 00000000 */ nop
/* 009F60 80009360 44800000 */ mtc1 $zero, $f0
/* 009F64 80009364 10000015 */ b .L800093BC
/* 009F68 80009368 44802000 */ mtc1 $zero, $f4
.L8000936C:
/* 009F6C 8000936C C7A80068 */ lwc1 $f8, 0x68($sp)
/* 009F70 80009370 C7AA006C */ lwc1 $f10, 0x6c($sp)
/* 009F74 80009374 46144101 */ sub.s $f4, $f8, $f20
/* 009F78 80009378 46022182 */ mul.s $f6, $f4, $f2
/* 009F7C 8000937C 46165201 */ sub.s $f8, $f10, $f22
/* 009F80 80009380 46104102 */ mul.s $f4, $f8, $f16
/* 009F84 80009384 C7A80070 */ lwc1 $f8, 0x70($sp)
/* 009F88 80009388 46043280 */ add.s $f10, $f6, $f4
/* 009F8C 8000938C 46184181 */ sub.s $f6, $f8, $f24
/* 009F90 80009390 46123102 */ mul.s $f4, $f6, $f18
/* 009F94 80009394 00000000 */ nop
/* 009F98 80009398 46021182 */ mul.s $f6, $f2, $f2
/* 009F9C 8000939C 46045200 */ add.s $f8, $f10, $f4
/* 009FA0 800093A0 46108282 */ mul.s $f10, $f16, $f16
/* 009FA4 800093A4 460A3100 */ add.s $f4, $f6, $f10
/* 009FA8 800093A8 46129182 */ mul.s $f6, $f18, $f18
/* 009FAC 800093AC 46062280 */ add.s $f10, $f4, $f6
/* 009FB0 800093B0 00000000 */ nop
/* 009FB4 800093B4 460A4003 */ div.s $f0, $f8, $f10
/* 009FB8 800093B8 44802000 */ mtc1 $zero, $f4
.L800093BC:
/* 009FBC 800093BC 8FA20078 */ lw $v0, 0x78($sp)
/* 009FC0 800093C0 4604003C */ c.lt.s $f0, $f4
/* 009FC4 800093C4 8FA3007C */ lw $v1, 0x7c($sp)
/* 009FC8 800093C8 45000014 */ bc1f .L8000941C
/* 009FCC 800093CC 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 009FD0 800093D0 E4540000 */ swc1 $f20, ($v0)
/* 009FD4 800093D4 E4760000 */ swc1 $f22, ($v1)
/* 009FD8 800093D8 8FAE0080 */ lw $t6, 0x80($sp)
/* 009FDC 800093DC 00000000 */ nop
/* 009FE0 800093E0 E5D80000 */ swc1 $f24, ($t6)
/* 009FE4 800093E4 C7A60068 */ lwc1 $f6, 0x68($sp)
/* 009FE8 800093E8 C7A8006C */ lwc1 $f8, 0x6c($sp)
/* 009FEC 800093EC 4606A001 */ sub.s $f0, $f20, $f6
/* 009FF0 800093F0 C7AA0070 */ lwc1 $f10, 0x70($sp)
/* 009FF4 800093F4 46000102 */ mul.s $f4, $f0, $f0
/* 009FF8 800093F8 4608B081 */ sub.s $f2, $f22, $f8
/* 009FFC 800093FC 46021182 */ mul.s $f6, $f2, $f2
/* 00A000 80009400 460AC381 */ sub.s $f14, $f24, $f10
/* 00A004 80009404 460E7282 */ mul.s $f10, $f14, $f14
/* 00A008 80009408 46062200 */ add.s $f8, $f4, $f6
/* 00A00C 8000940C 0C0326B4 */ jal sqrtf
/* 00A010 80009410 460A4300 */ add.s $f12, $f8, $f10
/* 00A014 80009414 10000041 */ b .L8000951C
/* 00A018 80009418 4459F800 */ cfc1 $t9, $31
.L8000941C:
/* 00A01C 8000941C 44812000 */ mtc1 $at, $f4
/* 00A020 80009420 8FA20078 */ lw $v0, 0x78($sp)
/* 00A024 80009424 4600203C */ c.lt.s $f4, $f0
/* 00A028 80009428 C7A80038 */ lwc1 $f8, 0x38($sp)
/* 00A02C 8000942C 4500001C */ bc1f .L800094A0
/* 00A030 80009430 00000000 */ nop
/* 00A034 80009434 C7A6004C */ lwc1 $f6, 0x4c($sp)
/* 00A038 80009438 8FA3007C */ lw $v1, 0x7c($sp)
/* 00A03C 8000943C E4460000 */ swc1 $f6, ($v0)
/* 00A040 80009440 C7A80048 */ lwc1 $f8, 0x48($sp)
/* 00A044 80009444 00000000 */ nop
/* 00A048 80009448 E4680000 */ swc1 $f8, ($v1)
/* 00A04C 8000944C 8FAF0080 */ lw $t7, 0x80($sp)
/* 00A050 80009450 C7AA0044 */ lwc1 $f10, 0x44($sp)
/* 00A054 80009454 00000000 */ nop
/* 00A058 80009458 E5EA0000 */ swc1 $f10, ($t7)
/* 00A05C 8000945C C7A60068 */ lwc1 $f6, 0x68($sp)
/* 00A060 80009460 C7A4004C */ lwc1 $f4, 0x4c($sp)
/* 00A064 80009464 C7A80048 */ lwc1 $f8, 0x48($sp)
/* 00A068 80009468 46062001 */ sub.s $f0, $f4, $f6
/* 00A06C 8000946C C7A4006C */ lwc1 $f4, 0x6c($sp)
/* 00A070 80009470 C7A60070 */ lwc1 $f6, 0x70($sp)
/* 00A074 80009474 46044081 */ sub.s $f2, $f8, $f4
/* 00A078 80009478 46000202 */ mul.s $f8, $f0, $f0
/* 00A07C 8000947C 46065381 */ sub.s $f14, $f10, $f6
/* 00A080 80009480 46021102 */ mul.s $f4, $f2, $f2
/* 00A084 80009484 00000000 */ nop
/* 00A088 80009488 460E7182 */ mul.s $f6, $f14, $f14
/* 00A08C 8000948C 46044280 */ add.s $f10, $f8, $f4
/* 00A090 80009490 0C0326B4 */ jal sqrtf
/* 00A094 80009494 46065300 */ add.s $f12, $f10, $f6
/* 00A098 80009498 10000020 */ b .L8000951C
/* 00A09C 8000949C 4459F800 */ cfc1 $t9, $31
.L800094A0:
/* 00A0A0 800094A0 46080102 */ mul.s $f4, $f0, $f8
/* 00A0A4 800094A4 8FA20078 */ lw $v0, 0x78($sp)
/* 00A0A8 800094A8 8FA3007C */ lw $v1, 0x7c($sp)
/* 00A0AC 800094AC 46142280 */ add.s $f10, $f4, $f20
/* 00A0B0 800094B0 E44A0000 */ swc1 $f10, ($v0)
/* 00A0B4 800094B4 C7A60034 */ lwc1 $f6, 0x34($sp)
/* 00A0B8 800094B8 00000000 */ nop
/* 00A0BC 800094BC 46060202 */ mul.s $f8, $f0, $f6
/* 00A0C0 800094C0 46164100 */ add.s $f4, $f8, $f22
/* 00A0C4 800094C4 E4640000 */ swc1 $f4, ($v1)
/* 00A0C8 800094C8 C7AA0030 */ lwc1 $f10, 0x30($sp)
/* 00A0CC 800094CC 8FB80080 */ lw $t8, 0x80($sp)
/* 00A0D0 800094D0 460A0182 */ mul.s $f6, $f0, $f10
/* 00A0D4 800094D4 46183400 */ add.s $f16, $f6, $f24
/* 00A0D8 800094D8 E7100000 */ swc1 $f16, ($t8)
/* 00A0DC 800094DC C7AA0068 */ lwc1 $f10, 0x68($sp)
/* 00A0E0 800094E0 C7A80070 */ lwc1 $f8, 0x70($sp)
/* 00A0E4 800094E4 C4440000 */ lwc1 $f4, ($v0)
/* 00A0E8 800094E8 46088481 */ sub.s $f18, $f16, $f8
/* 00A0EC 800094EC C7A8006C */ lwc1 $f8, 0x6c($sp)
/* 00A0F0 800094F0 460A2081 */ sub.s $f2, $f4, $f10
/* 00A0F4 800094F4 C4660000 */ lwc1 $f6, ($v1)
/* 00A0F8 800094F8 46021102 */ mul.s $f4, $f2, $f2
/* 00A0FC 800094FC 46083381 */ sub.s $f14, $f6, $f8
/* 00A100 80009500 460E7282 */ mul.s $f10, $f14, $f14
/* 00A104 80009504 00000000 */ nop
/* 00A108 80009508 46129202 */ mul.s $f8, $f18, $f18
/* 00A10C 8000950C 460A2180 */ add.s $f6, $f4, $f10
/* 00A110 80009510 0C0326B4 */ jal sqrtf
/* 00A114 80009514 46064300 */ add.s $f12, $f8, $f6
/* 00A118 80009518 4459F800 */ cfc1 $t9, $31
.L8000951C:
/* 00A11C 8000951C 8FBF002C */ lw $ra, 0x2c($sp)
/* 00A120 80009520 37210003 */ ori $at, $t9, 3
/* 00A124 80009524 38210002 */ xori $at, $at, 2
/* 00A128 80009528 44C1F800 */ ctc1 $at, $31
/* 00A12C 8000952C C7B50010 */ lwc1 $f21, 0x10($sp)
/* 00A130 80009530 46000124 */ cvt.w.s $f4, $f0
/* 00A134 80009534 C7B40014 */ lwc1 $f20, 0x14($sp)
/* 00A138 80009538 44022000 */ mfc1 $v0, $f4
/* 00A13C 8000953C C7B70018 */ lwc1 $f23, 0x18($sp)
/* 00A140 80009540 C7B6001C */ lwc1 $f22, 0x1c($sp)
/* 00A144 80009544 C7B90020 */ lwc1 $f25, 0x20($sp)
/* 00A148 80009548 C7B80024 */ lwc1 $f24, 0x24($sp)
/* 00A14C 8000954C 44D9F800 */ ctc1 $t9, $31
/* 00A150 80009550 03E00008 */ jr $ra
/* 00A154 80009554 27BD0068 */ addiu $sp, $sp, 0x68
@@ -1,142 +0,0 @@
glabel render_borders_for_multiplayer
/* 077C50 80077050 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 077C54 80077054 AFBF001C */ sw $ra, 0x1c($sp)
/* 077C58 80077058 AFB00018 */ sw $s0, 0x18($sp)
/* 077C5C 8007705C 0C01E948 */ jal get_video_width_and_height_as_s32
/* 077C60 80077060 00808025 */ move $s0, $a0
/* 077C64 80077064 3045FFFF */ andi $a1, $v0, 0xffff
/* 077C68 80077068 00057202 */ srl $t6, $a1, 8
/* 077C6C 8007706C AFAE0028 */ sw $t6, 0x28($sp)
/* 077C70 80077070 8E030000 */ lw $v1, ($s0)
/* 077C74 80077074 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00
/* 077C78 80077078 246F0008 */ addiu $t7, $v1, 8
/* 077C7C 8007707C AE0F0000 */ sw $t7, ($s0)
/* 077C80 80077080 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402
/* 077C84 80077084 3C190030 */ lui $t9, 0x30
/* 077C88 80077088 AC790004 */ sw $t9, 4($v1)
/* 077C8C 8007708C AC780000 */ sw $t8, ($v1)
/* 077C90 80077090 8E030000 */ lw $v1, ($s0)
/* 077C94 80077094 3C0D0001 */ lui $t5, (0x00010001 >> 16) # lui $t5, 1
/* 077C98 80077098 246B0008 */ addiu $t3, $v1, 8
/* 077C9C 8007709C AE0B0000 */ sw $t3, ($s0)
/* 077CA0 800770A0 35AD0001 */ ori $t5, (0x00010001 & 0xFFFF) # ori $t5, $t5, 1
/* 077CA4 800770A4 3C0CF700 */ lui $t4, 0xf700
/* 077CA8 800770A8 00022402 */ srl $a0, $v0, 0x10
/* 077CAC 800770AC AC6C0000 */ sw $t4, ($v1)
/* 077CB0 800770B0 AC6D0004 */ sw $t5, 4($v1)
/* 077CB4 800770B4 000451C2 */ srl $t2, $a0, 7
/* 077CB8 800770B8 AFAA0024 */ sw $t2, 0x24($sp)
/* 077CBC 800770BC AFA50038 */ sw $a1, 0x38($sp)
/* 077CC0 800770C0 0C019884 */ jal get_viewport_count
/* 077CC4 800770C4 AFA40034 */ sw $a0, 0x34($sp)
/* 077CC8 800770C8 8FA80034 */ lw $t0, 0x34($sp)
/* 077CCC 800770CC 8FA90038 */ lw $t1, 0x38($sp)
/* 077CD0 800770D0 8FAA0024 */ lw $t2, 0x24($sp)
/* 077CD4 800770D4 24010001 */ li $at, 1
/* 077CD8 800770D8 10410008 */ beq $v0, $at, .L800770FC
/* 077CDC 800770DC 00087842 */ srl $t7, $t0, 1
/* 077CE0 800770E0 24010002 */ li $at, 2
/* 077CE4 800770E4 10410016 */ beq $v0, $at, .L80077140
/* 077CE8 800770E8 24010003 */ li $at, 3
/* 077CEC 800770EC 10410038 */ beq $v0, $at, .L800771D0
/* 077CF0 800770F0 00000000 */ nop
/* 077CF4 800770F4 10000059 */ b .L8007725C
/* 077CF8 800770F8 8FBF001C */ lw $ra, 0x1c($sp)
.L800770FC:
/* 077CFC 800770FC 8E030000 */ lw $v1, ($s0)
/* 077D00 80077100 01EA1023 */ subu $v0, $t7, $t2
/* 077D04 80077104 313803FF */ andi $t8, $t1, 0x3ff
/* 077D08 80077108 0018CB80 */ sll $t9, $t8, 0xe
/* 077D0C 8007710C 004A6021 */ addu $t4, $v0, $t2
/* 077D10 80077110 3C01F600 */ lui $at, 0xf600
/* 077D14 80077114 246E0008 */ addiu $t6, $v1, 8
/* 077D18 80077118 AE0E0000 */ sw $t6, ($s0)
/* 077D1C 8007711C 03215825 */ or $t3, $t9, $at
/* 077D20 80077120 318D03FF */ andi $t5, $t4, 0x3ff
/* 077D24 80077124 000D7080 */ sll $t6, $t5, 2
/* 077D28 80077128 305803FF */ andi $t8, $v0, 0x3ff
/* 077D2C 8007712C 0018C880 */ sll $t9, $t8, 2
/* 077D30 80077130 016E7825 */ or $t7, $t3, $t6
/* 077D34 80077134 AC6F0000 */ sw $t7, ($v1)
/* 077D38 80077138 10000047 */ b .L80077258
/* 077D3C 8007713C AC790004 */ sw $t9, 4($v1)
.L80077140:
/* 077D40 80077140 AFA80034 */ sw $t0, 0x34($sp)
/* 077D44 80077144 AFA90038 */ sw $t1, 0x38($sp)
/* 077D48 80077148 0C01AF6C */ jal get_current_level_header
/* 077D4C 8007714C AFAA0024 */ sw $t2, 0x24($sp)
/* 077D50 80077150 0C02A116 */ jal func_800A8458
/* 077D54 80077154 AFA20020 */ sw $v0, 0x20($sp)
/* 077D58 80077158 8FA90038 */ lw $t1, 0x38($sp)
/* 077D5C 8007715C 8FA80034 */ lw $t0, 0x34($sp)
/* 077D60 80077160 8FAA0024 */ lw $t2, 0x24($sp)
/* 077D64 80077164 14400008 */ bnez $v0, .L80077188
/* 077D68 80077168 312F03FF */ andi $t7, $t1, 0x3ff
/* 077D6C 8007716C 8FAC0020 */ lw $t4, 0x20($sp)
/* 077D70 80077170 00000000 */ nop
/* 077D74 80077174 818D004C */ lb $t5, 0x4c($t4)
/* 077D78 80077178 00000000 */ nop
/* 077D7C 8007717C 31AB0040 */ andi $t3, $t5, 0x40
/* 077D80 80077180 11600013 */ beqz $t3, .L800771D0
/* 077D84 80077184 00000000 */ nop
.L80077188:
/* 077D88 80077188 8E030000 */ lw $v1, ($s0)
/* 077D8C 8007718C 000FC380 */ sll $t8, $t7, 0xe
/* 077D90 80077190 3C01F600 */ lui $at, 0xf600
/* 077D94 80077194 310C03FF */ andi $t4, $t0, 0x3ff
/* 077D98 80077198 000C6880 */ sll $t5, $t4, 2
/* 077D9C 8007719C 0301C825 */ or $t9, $t8, $at
/* 077DA0 800771A0 246E0008 */ addiu $t6, $v1, 8
/* 077DA4 800771A4 AE0E0000 */ sw $t6, ($s0)
/* 077DA8 800771A8 032D5825 */ or $t3, $t9, $t5
/* 077DAC 800771AC 00097042 */ srl $t6, $t1, 1
/* 077DB0 800771B0 00086042 */ srl $t4, $t0, 1
/* 077DB4 800771B4 319903FF */ andi $t9, $t4, 0x3ff
/* 077DB8 800771B8 31CF03FF */ andi $t7, $t6, 0x3ff
/* 077DBC 800771BC 000FC380 */ sll $t8, $t7, 0xe
/* 077DC0 800771C0 00196880 */ sll $t5, $t9, 2
/* 077DC4 800771C4 AC6B0000 */ sw $t3, ($v1)
/* 077DC8 800771C8 030D5825 */ or $t3, $t8, $t5
/* 077DCC 800771CC AC6B0004 */ sw $t3, 4($v1)
.L800771D0:
/* 077DD0 800771D0 8E030000 */ lw $v1, ($s0)
/* 077DD4 800771D4 00087842 */ srl $t7, $t0, 1
/* 077DD8 800771D8 01EA1023 */ subu $v0, $t7, $t2
/* 077DDC 800771DC 312C03FF */ andi $t4, $t1, 0x3ff
/* 077DE0 800771E0 8FA70028 */ lw $a3, 0x28($sp)
/* 077DE4 800771E4 000CCB80 */ sll $t9, $t4, 0xe
/* 077DE8 800771E8 004A6821 */ addu $t5, $v0, $t2
/* 077DEC 800771EC 3C01F600 */ lui $at, 0xf600
/* 077DF0 800771F0 246E0008 */ addiu $t6, $v1, 8
/* 077DF4 800771F4 AE0E0000 */ sw $t6, ($s0)
/* 077DF8 800771F8 0321C025 */ or $t8, $t9, $at
/* 077DFC 800771FC 31AB03FF */ andi $t3, $t5, 0x3ff
/* 077E00 80077200 000B7080 */ sll $t6, $t3, 2
/* 077E04 80077204 304C03FF */ andi $t4, $v0, 0x3ff
/* 077E08 80077208 000CC880 */ sll $t9, $t4, 2
/* 077E0C 8007720C 030E7825 */ or $t7, $t8, $t6
/* 077E10 80077210 00095842 */ srl $t3, $t1, 1
/* 077E14 80077214 AC6F0000 */ sw $t7, ($v1)
/* 077E18 80077218 AC790004 */ sw $t9, 4($v1)
/* 077E1C 8007721C 8E030000 */ lw $v1, ($s0)
/* 077E20 80077220 01672823 */ subu $a1, $t3, $a3
/* 077E24 80077224 00A7C021 */ addu $t8, $a1, $a3
/* 077E28 80077228 330E03FF */ andi $t6, $t8, 0x3ff
/* 077E2C 8007722C 246D0008 */ addiu $t5, $v1, 8
/* 077E30 80077230 AE0D0000 */ sw $t5, ($s0)
/* 077E34 80077234 000E7B80 */ sll $t7, $t6, 0xe
/* 077E38 80077238 311903FF */ andi $t9, $t0, 0x3ff
/* 077E3C 8007723C 00196880 */ sll $t5, $t9, 2
/* 077E40 80077240 01E16025 */ or $t4, $t7, $at
/* 077E44 80077244 30B803FF */ andi $t8, $a1, 0x3ff
/* 077E48 80077248 00187380 */ sll $t6, $t8, 0xe
/* 077E4C 8007724C 018D5825 */ or $t3, $t4, $t5
/* 077E50 80077250 AC6B0000 */ sw $t3, ($v1)
/* 077E54 80077254 AC6E0004 */ sw $t6, 4($v1)
.L80077258:
/* 077E58 80077258 8FBF001C */ lw $ra, 0x1c($sp)
.L8007725C:
/* 077E5C 8007725C 8FB00018 */ lw $s0, 0x18($sp)
/* 077E60 80077260 03E00008 */ jr $ra
/* 077E64 80077264 27BD0040 */ addiu $sp, $sp, 0x40
+41 -38
View File
@@ -448,7 +448,7 @@ typedef struct LevelModel {
/* 0x18 */ s16 numberOfTextures;
/* 0x1A */ s16 numberOfSegments;
u8 pad1C[4];
/* 0x20 */ s32 unk20;
/* 0x20 */ s32 unk20; //spriteIndex?
u8 pad24[0x14];
/* 0x38 */ u32 minimapColor;
} LevelModel;
@@ -463,10 +463,13 @@ typedef struct Object_3C {
u8 unkD;
} Object_3C;
#define OBJECT_MODEL_TYPE_3D_MODEL 0
#define OBJECT_MODEL_TYPE_SPRITE_BILLBOARD 1
#define OBJECT_MODEL_TYPE_VEHICLE_PART 2
#define OBJECT_MODEL_TYPE_UNKNOWN4 4
typedef enum {
OBJECT_MODEL_TYPE_3D_MODEL,
OBJECT_MODEL_TYPE_SPRITE_BILLBOARD,
OBJECT_MODEL_TYPE_VEHICLE_PART,
OBJECT_MODEL_TYPE_UNKNOWN3,
OBJECT_MODEL_TYPE_UNKNOWN4,
} ObjectModelType;
typedef struct ObjectHeader {
u8 pad0[0x4];
@@ -634,7 +637,8 @@ typedef struct Object_64 {
u8 pad1BC[0x1A];
s8 unk1D6;
s8 unk1D7;
u8 pad1D8[0x1A];
s8 unk1D8;
u8 pad1D9[0x19];
u8 unk1F2;
u8 unk1F3;
} Object_64;
@@ -651,8 +655,8 @@ typedef struct Object_6C {
u8 pad6[0x1A];
} Object_6C;
/* Size: 0x0630 bytes */
typedef struct Object {
/* Size: 0x018 bytes */
typedef struct ObjectTransform {
/* 0x0000 */ s16 y_rotation;
/* 0x0002 */ s16 x_rotation;
/* 0x0004 */ s16 z_rotation;
@@ -661,32 +665,55 @@ typedef struct Object {
/* 0x000C */ f32 x_position;
/* 0x0010 */ f32 y_position;
/* 0x0014 */ f32 z_position;
} ObjectTransform;
/* Size: 0x44 bytes */
typedef struct ObjectSegment {
/* 0x0000 */ ObjectTransform trans;
/* 0x0018 */ s16 unk18;
/* 0x001A */ s16 unk1A;
/* 0x001C */ f32 x_velocity;
/* 0x0020 */ f32 y_velocity;
/* 0x0024 */ f32 z_velocity;
/* 0x0028 */ u32 unk28;
/* 0x0028 */ f32 unk28;
/* 0x002C */ s16 unk2C;
union {
struct {
/* 0x002C */ s16 upper;
/* 0x002E */ s16 lower;
} half;
/* 0x002C */ f32 word;
} unk2C;
/* 0x002E */ s16 unk2E;
/* 0x0030 */ f32 unk30;
union {
/* 0x0034 */ f32 unk34;
/* 0x0034 */ s16 unk34_s;
/* 0x0034 */ s16 levelSegmentIndex;
} unk34_a;
/* 0x0038 */ u8 unk38;
/* 0x0039 */ u8 unk39;
union {
struct {
/* 0x0038 */ u8 upper;
/* 0x0039 */ u8 lower;
} half;
/* 0x0038 */ s16 word;
} unk38;
/* 0x003A */ s8 unk3A;
/* 0x003B */ s8 unk3B;
union {
/* 0x003C */ Object_3C* unk3C;
/* 0x003C */ f32 unk3C_f;
} unk3C_a;
/* 0x0040 */ ObjectHeader *header;
} ObjectSegment;
/* Size: 0x0630 bytes */
typedef struct Object {
/* 0x0000 */ ObjectSegment segment;
/* 0x0044 */ void *unk44;
/* 0x0048 */ s16 behaviorId;
/* 0x004A */ s16 unk4A;
@@ -923,30 +950,6 @@ typedef struct Object {
u32 unk378[174]; // Not an array. Unknown values.
} Object;
/* Size: 0x44 bytes, might just be Object? */
typedef struct unk80120AC0 {
s16 unk0;
s16 unk2;
s16 unk4;
u8 pad6[6];
f32 x_position;
f32 y_position;
f32 z_position;
f32 pad18;
f32 unk1C;
f32 pad20;
f32 unk24;
f32 unk28;
f32 unk2C;
f32 unk30;
s16 levelSegmentIndex;
s16 pad36;
s16 unk38;
s8 pad3A;
s8 unk3B;
u8 pad3C[8];
} unk80120AC0;
typedef struct unk80027FC4 {
u8 unk0;
u8 unk1;

Some files were not shown because too many files have changed in this diff Show More