Files
oot/asm/non_matchings/code/db_camera/func_800B8F58.s
T
krimtonz 321388673b decompile z_camera (#398)
* cleanup

* name camera action functions

* decompile a few small functions, name a few Camera struct members

* decompile camera data, decompile a few camera functions

* Split ASM for code_800BB0A0

* removing code_800BB0A0.s

* PR Requests, Camera WIP

* remove #define NON_MATCHING from db_camera

* rename code_8007BF90.c to z_olib.c, rename functions in z_olib.c

* camera wip

* rename some struct memebers, some decomp wip

* pr updates

* camera wip

* name some fields in Camera Struct, being making sense of Camera_Update

* Camera WIP

* wip

* wip

* add z64camera.h header, begin creating CameraSetting macros

* wip

* wip

* wip

* wip

* migrate camera bss to c

* match a couple functions in db_camera

* match some small db_camera functions

* wip

* migrate db_camera rodata, match a few functions

* remote db_camera.rodata.s

* match some of db_camera

* identify types of some unknown data pieces

* some small wip

* Match Camera_Init, some function changes, some struct name changes.  Change unk_C0 and unk_CC to floats from Vec3fs

* add naming for a few more Camera struct members

* wip

* match func_80043F94

* Match Camera_Jump1

* document some of Camera_Jump1

* wip

* match Camera_Jump3

* Match Camera_Update, FeelsAmazing

* wip

* wip

* match Camera_SetParam

* minor cleanup

* wip

* wip

* match Camera_KeepOn0

* some documentation, modify some matching functions to match style of others.

* match Camera_Demo1

* match camera_demo9

* document Camera_Demo1 and Camera_Demo9

* wip

* Match camera_battle4

* match camera_unique2

* Match Camera_Unique3

* match camera_special6

* match Camera_Special5

* wip

* document camera_special6

* naming updates

* match camera_Unique1

* match Camera_Unique0

* wip

* Match Camera_CalcUpFromPitchYawRoll

* match func_80045508

* document Camera_Battle4

* document several camera functions, move camera data to separate file

* rename phi/theta to pitch/yaw

* wip

* uniq9 wip

* Camera_Unqiue9 OK

* document Camera_Unique9

* name unk_160 in camera struct

* wip

* wip

* minor updates

* fix conflicts

* wip

* wip

* Olib updates

* wip

* wip

* rename most Math3D functions, few matches, documentation

* wip

* document most of math3d

* wip

* wip

* wip

* pr updates

* Match Camera_Fixed4

* match func_80058E8C

* pr updates

* add missing comment block finalizer

* Merge math3dupdates

* match Camera_ChangeSetting

* Match Camera_ChangeMode

* match func_80058148

* Match Camera_Special9

* decompile the rest of camera data

* match Camera_Demo5

* name a few camera functions in z_play

* match func_80046CB4, some work on other fucntions

* wip

* impove some non matchings

* fix function rename

* match func_800588B4

* match Camera_Subj4

* wip

* Camera_Demo3 matching, Camera_Battle1 big progress

* Camera_Normal2 OK

* wip

* match Camera_Parallel1

* normalize some things across functions

* match Camera_Normal1

* Match Camera_Normal3

* some cleanup

* more cleanup

* more cleanup , match Camera_CalcDefaultPitch

* data formatting

* Match Camera_Jump2

* document Camera_Jump2

* Match Camera_KeepOn3

* document some of Camera_KeepOn3

* improve some non_matchings

* match func_80045C74 and func_800460A8

* code cleanup, documentation

* match Camera_KeepOn1

* Match Camera_Subj3

* Match Camera_Battle1

* remove non_matching from func_80044adc and func_80046e20

* name several members of Battle1

* more documentation on Battle1

* cleanup

* renaming Camera_Vec3fScaleXYZFactor to Camera_Vec3fTranslateByUnitVector

* reorganize update structs, remove final references to params, remove CameraParams union

* implement camera enums into player

* Renaming Camera_GetDir to Camera_GetInputDir, Camera_GetRealDir to Camera_GetCamDir, etc, implement camera enum's into player

* remove non-global camera variables from variables.h

* clean up some variable declarations

* finish pr comment updates

* fix some warnings

* data formatting

* finish commenting on data

* delete unused asm

* remove asm

Co-authored-by: fig <fig02srl@gmail.com>
2020-12-06 17:39:47 -05:00

70 lines
3.6 KiB
ArmAsm

glabel func_800B8F58
/* B300F8 800B8F58 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B300FC 800B8F5C 3C0E8016 */ lui $t6, %hi(sDbgEditorSlots) # $t6, 0x8016
/* B30100 800B8F60 91CE1150 */ lbu $t6, %lo(sDbgEditorSlots)($t6)
/* B30104 800B8F64 AFBF001C */ sw $ra, 0x1c($sp)
/* B30108 800B8F68 AFB00018 */ sw $s0, 0x18($sp)
/* B3010C 800B8F6C AFA50034 */ sw $a1, 0x34($sp)
/* B30110 800B8F70 AFA60038 */ sw $a2, 0x38($sp)
/* B30114 800B8F74 AFA7003C */ sw $a3, 0x3c($sp)
/* B30118 800B8F78 2408002D */ li $t0, 45
/* B3011C 800B8F7C A0880000 */ sb $t0, ($a0)
/* B30120 800B8F80 3C0F8016 */ lui $t7, %hi(D_80161160) # $t7, 0x8016
/* B30124 800B8F84 A08E0001 */ sb $t6, 1($a0)
/* B30128 800B8F88 91EF1160 */ lbu $t7, %lo(D_80161160)($t7)
/* B3012C 800B8F8C A0880002 */ sb $t0, 2($a0)
/* B30130 800B8F90 3C188016 */ lui $t8, %hi(D_80161170) # $t8, 0x8016
/* B30134 800B8F94 A08F0003 */ sb $t7, 3($a0)
/* B30138 800B8F98 93181170 */ lbu $t8, %lo(D_80161170)($t8)
/* B3013C 800B8F9C 00808025 */ move $s0, $a0
/* B30140 800B8FA0 A0880004 */ sb $t0, 4($a0)
/* B30144 800B8FA4 A0980005 */ sb $t8, 5($a0)
/* B30148 800B8FA8 3C048016 */ lui $a0, %hi(D_80161240) # $a0, 0x8016
/* B3014C 800B8FAC 3C038016 */ lui $v1, %hi(D_80161180) # $v1, 0x8016
/* B30150 800B8FB0 24631180 */ addiu $v1, %lo(D_80161180) # addiu $v1, $v1, 0x1180
/* B30154 800B8FB4 24841240 */ addiu $a0, %lo(D_80161240) # addiu $a0, $a0, 0x1240
/* B30158 800B8FB8 26020006 */ addiu $v0, $s0, 6
.L800B8FBC:
/* B3015C 800B8FBC 90790000 */ lbu $t9, ($v1)
/* B30160 800B8FC0 A0480000 */ sb $t0, ($v0)
/* B30164 800B8FC4 24630040 */ addiu $v1, $v1, 0x40
/* B30168 800B8FC8 A0590001 */ sb $t9, 1($v0)
/* B3016C 800B8FCC 9069FFD0 */ lbu $t1, -0x30($v1)
/* B30170 800B8FD0 A0480002 */ sb $t0, 2($v0)
/* B30174 800B8FD4 24420008 */ addiu $v0, $v0, 8
/* B30178 800B8FD8 A049FFFB */ sb $t1, -5($v0)
/* B3017C 800B8FDC 906AFFE0 */ lbu $t2, -0x20($v1)
/* B30180 800B8FE0 A048FFFC */ sb $t0, -4($v0)
/* B30184 800B8FE4 A04AFFFD */ sb $t2, -3($v0)
/* B30188 800B8FE8 906BFFF0 */ lbu $t3, -0x10($v1)
/* B3018C 800B8FEC A048FFFE */ sb $t0, -2($v0)
/* B30190 800B8FF0 1464FFF2 */ bne $v1, $a0, .L800B8FBC
/* B30194 800B8FF4 A04BFFFF */ sb $t3, -1($v0)
/* B30198 800B8FF8 A0400001 */ sb $zero, 1($v0)
/* B3019C 800B8FFC A2000014 */ sb $zero, 0x14($s0)
/* B301A0 800B9000 93A6003F */ lbu $a2, 0x3f($sp)
/* B301A4 800B9004 93A50037 */ lbu $a1, 0x37($sp)
/* B301A8 800B9008 AFA20028 */ sw $v0, 0x28($sp)
/* B301AC 800B900C 93A4003B */ lbu $a0, 0x3b($sp)
/* B301B0 800B9010 02003825 */ move $a3, $s0
/* B301B4 800B9014 AFA60020 */ sw $a2, 0x20($sp)
/* B301B8 800B9018 0C018DDB */ jal func_8006376C
/* B301BC 800B901C AFA50024 */ sw $a1, 0x24($sp)
/* B301C0 800B9020 8FA20028 */ lw $v0, 0x28($sp)
/* B301C4 800B9024 8FA50024 */ lw $a1, 0x24($sp)
/* B301C8 800B9028 8FA60020 */ lw $a2, 0x20($sp)
/* B301CC 800B902C 240D002D */ li $t5, 45
/* B301D0 800B9030 A04D0000 */ sb $t5, ($v0)
/* B301D4 800B9034 A20D0014 */ sb $t5, 0x14($s0)
/* B301D8 800B9038 87A4003A */ lh $a0, 0x3a($sp)
/* B301DC 800B903C 26070014 */ addiu $a3, $s0, 0x14
/* B301E0 800B9040 24840014 */ addiu $a0, $a0, 0x14
/* B301E4 800B9044 0C018DDB */ jal func_8006376C
/* B301E8 800B9048 308400FF */ andi $a0, $a0, 0xff
/* B301EC 800B904C 8FBF001C */ lw $ra, 0x1c($sp)
/* B301F0 800B9050 8FB00018 */ lw $s0, 0x18($sp)
/* B301F4 800B9054 27BD0030 */ addiu $sp, $sp, 0x30
/* B301F8 800B9058 03E00008 */ jr $ra
/* B301FC 800B905C 00000000 */ nop