Files
oot/asm/non_matchings/code/db_camera/func_800B8DB0.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

104 lines
5.1 KiB
ArmAsm

glabel func_800B8DB0
/* B2FF50 800B8DB0 27BDFFB0 */ addiu $sp, $sp, -0x50
/* B2FF54 800B8DB4 AFB3002C */ sw $s3, 0x2c($sp)
/* B2FF58 800B8DB8 00809825 */ move $s3, $a0
/* B2FF5C 800B8DBC AFBF003C */ sw $ra, 0x3c($sp)
/* B2FF60 800B8DC0 AFB60038 */ sw $s6, 0x38($sp)
/* B2FF64 800B8DC4 AFB50034 */ sw $s5, 0x34($sp)
/* B2FF68 800B8DC8 AFB40030 */ sw $s4, 0x30($sp)
/* B2FF6C 800B8DCC AFB20028 */ sw $s2, 0x28($sp)
/* B2FF70 800B8DD0 AFB10024 */ sw $s1, 0x24($sp)
/* B2FF74 800B8DD4 AFB00020 */ sw $s0, 0x20($sp)
/* B2FF78 800B8DD8 92650000 */ lbu $a1, ($s3)
/* B2FF7C 800B8DDC 0C02EF05 */ jal Mempak_GetFileSize
/* B2FF80 800B8DE0 24040002 */ li $a0, 2
/* B2FF84 800B8DE4 24040002 */ li $a0, 2
/* B2FF88 800B8DE8 0C02ED7A */ jal Mempak_GetFreeBytes
/* B2FF8C 800B8DEC AFA20044 */ sw $v0, 0x44($sp)
/* B2FF90 800B8DF0 8FA30044 */ lw $v1, 0x44($sp)
/* B2FF94 800B8DF4 3C068016 */ lui $a2, %hi(D_801612EC) # $a2, 0x8016
/* B2FF98 800B8DF8 8CC612EC */ lw $a2, %lo(D_801612EC)($a2)
/* B2FF9C 800B8DFC 00437021 */ addu $t6, $v0, $v1
/* B2FFA0 800B8E00 24040002 */ li $a0, 2
/* B2FFA4 800B8E04 00CE082B */ sltu $at, $a2, $t6
/* B2FFA8 800B8E08 1020003F */ beqz $at, .L800B8F08
/* B2FFAC 800B8E0C 00001025 */ move $v0, $zero
/* B2FFB0 800B8E10 0C02EE43 */ jal Mempak_Alloc
/* B2FFB4 800B8E14 02602825 */ move $a1, $s3
/* B2FFB8 800B8E18 14400003 */ bnez $v0, .L800B8E28
/* B2FFBC 800B8E1C 24040002 */ li $a0, 2
/* B2FFC0 800B8E20 10000039 */ b .L800B8F08
/* B2FFC4 800B8E24 00001025 */ move $v0, $zero
.L800B8E28:
/* B2FFC8 800B8E28 92650000 */ lbu $a1, ($s3)
/* B2FFCC 800B8E2C 3C068016 */ lui $a2, %hi(sDbgEditorSlots) # $a2, 0x8016
/* B2FFD0 800B8E30 240F0100 */ li $t7, 256
/* B2FFD4 800B8E34 AFAF0010 */ sw $t7, 0x10($sp)
/* B2FFD8 800B8E38 24C61150 */ addiu $a2, %lo(sDbgEditorSlots) # addiu $a2, $a2, 0x1150
/* B2FFDC 800B8E3C 0C02EDD9 */ jal Mempak_Write
/* B2FFE0 800B8E40 00003825 */ move $a3, $zero
/* B2FFE4 800B8E44 14400006 */ bnez $v0, .L800B8E60
/* B2FFE8 800B8E48 24120100 */ li $s2, 256
/* B2FFEC 800B8E4C 24040002 */ li $a0, 2
/* B2FFF0 800B8E50 0C02EEDB */ jal Mempak_DeleteFile
/* B2FFF4 800B8E54 92650000 */ lbu $a1, ($s3)
/* B2FFF8 800B8E58 1000002B */ b .L800B8F08
/* B2FFFC 800B8E5C 00001025 */ move $v0, $zero
.L800B8E60:
/* B30000 800B8E60 3C118016 */ lui $s1, %hi(sDbgEditorSlots) # $s1, 0x8016
/* B30004 800B8E64 3C168016 */ lui $s6, %hi(D_80161240) # $s6, 0x8016
/* B30008 800B8E68 26D61240 */ addiu $s6, %lo(D_80161240) # addiu $s6, $s6, 0x1240
/* B3000C 800B8E6C 26311150 */ addiu $s1, %lo(sDbgEditorSlots) # addiu $s1, $s1, 0x1150
/* B30010 800B8E70 2415FFE0 */ li $s5, -32
/* B30014 800B8E74 2414003F */ li $s4, 63
.L800B8E78:
/* B30018 800B8E78 92380000 */ lbu $t8, ($s1)
/* B3001C 800B8E7C 24040002 */ li $a0, 2
/* B30020 800B8E80 02403825 */ move $a3, $s2
/* B30024 800B8E84 52980016 */ beql $s4, $t8, .L800B8EE0
/* B30028 800B8E88 26310010 */ addiu $s1, $s1, 0x10
/* B3002C 800B8E8C 8622000E */ lh $v0, 0xe($s1)
/* B30030 800B8E90 92650000 */ lbu $a1, ($s3)
/* B30034 800B8E94 8E260008 */ lw $a2, 8($s1)
/* B30038 800B8E98 00021100 */ sll $v0, $v0, 4
/* B3003C 800B8E9C 2459001F */ addiu $t9, $v0, 0x1f
/* B30040 800B8EA0 03358024 */ and $s0, $t9, $s5
/* B30044 800B8EA4 0C02EDD9 */ jal Mempak_Write
/* B30048 800B8EA8 AFB00010 */ sw $s0, 0x10($sp)
/* B3004C 800B8EAC 1040000E */ beqz $v0, .L800B8EE8
/* B30050 800B8EB0 00401825 */ move $v1, $v0
/* B30054 800B8EB4 02509021 */ addu $s2, $s2, $s0
/* B30058 800B8EB8 92650000 */ lbu $a1, ($s3)
/* B3005C 800B8EBC AFB00010 */ sw $s0, 0x10($sp)
/* B30060 800B8EC0 02403825 */ move $a3, $s2
/* B30064 800B8EC4 24040002 */ li $a0, 2
/* B30068 800B8EC8 0C02EDD9 */ jal Mempak_Write
/* B3006C 800B8ECC 8E260004 */ lw $a2, 4($s1)
/* B30070 800B8ED0 10400005 */ beqz $v0, .L800B8EE8
/* B30074 800B8ED4 00401825 */ move $v1, $v0
/* B30078 800B8ED8 02509021 */ addu $s2, $s2, $s0
/* B3007C 800B8EDC 26310010 */ addiu $s1, $s1, 0x10
.L800B8EE0:
/* B30080 800B8EE0 1636FFE5 */ bne $s1, $s6, .L800B8E78
/* B30084 800B8EE4 24030001 */ li $v1, 1
.L800B8EE8:
/* B30088 800B8EE8 10600003 */ beqz $v1, .L800B8EF8
/* B3008C 800B8EEC 24040002 */ li $a0, 2
/* B30090 800B8EF0 10000005 */ b .L800B8F08
/* B30094 800B8EF4 92620000 */ lbu $v0, ($s3)
.L800B8EF8:
/* B30098 800B8EF8 0C02EEDB */ jal Mempak_DeleteFile
/* B3009C 800B8EFC 92650000 */ lbu $a1, ($s3)
/* B300A0 800B8F00 10000001 */ b .L800B8F08
/* B300A4 800B8F04 00001025 */ move $v0, $zero
.L800B8F08:
/* B300A8 800B8F08 8FBF003C */ lw $ra, 0x3c($sp)
/* B300AC 800B8F0C 8FB00020 */ lw $s0, 0x20($sp)
/* B300B0 800B8F10 8FB10024 */ lw $s1, 0x24($sp)
/* B300B4 800B8F14 8FB20028 */ lw $s2, 0x28($sp)
/* B300B8 800B8F18 8FB3002C */ lw $s3, 0x2c($sp)
/* B300BC 800B8F1C 8FB40030 */ lw $s4, 0x30($sp)
/* B300C0 800B8F20 8FB50034 */ lw $s5, 0x34($sp)
/* B300C4 800B8F24 8FB60038 */ lw $s6, 0x38($sp)
/* B300C8 800B8F28 03E00008 */ jr $ra
/* B300CC 800B8F2C 27BD0050 */ addiu $sp, $sp, 0x50