mirror of
https://github.com/zeldaret/tp
synced 2026-08-27 16:37:12 -04:00
0cf65151b3
* split c_math * split c_angle * split c_API_controller_pad * split c_API_graphic * split c_bg_s_chk * c_bg_s_gnd_chk split * more c_bg split * split c_cc_d * delete asm * split c_cc_s * split c_lib * split c_m2d and c_m3d_g_aab * split c_m3d_g_cir * split c_m3d_g_cps * split rest of c_m3d_g * split c_m3d * split c_malloc * split c_request * split c_sxyz * split and partly decompile c_xyz * format * c_angle.h * begin c_angle decomp * c_angle * progress adding stub classes for SComponent * more c_m3d * remove some asm and format * more m3d headers * more c_angle decomp * c_lib headers * add public to classes * fix csXyz member names * c_sxyz partly OK * move Zero csXyz to c_sxyz header * c_API_graphic * delete some unused asm * move math extern data, decompile some functions * delete unused asm * fix duplicated c_angle.h * fix an inlined function name, add more inlined functions for c_angle.h (currently unused) * format Co-authored-by: Pheenoh <pheenoh@gmail.com>
190 lines
9.1 KiB
ArmAsm
190 lines
9.1 KiB
ArmAsm
/* 80073A08 00070948 94 21 FF 70 */ stwu r1, -0x90(r1)
|
|
/* 80073A0C 0007094C 7C 08 02 A6 */ mflr r0
|
|
/* 80073A10 00070950 90 01 00 94 */ stw r0, 0x94(r1)
|
|
/* 80073A14 00070954 DB E1 00 80 */ stfd f31, 0x80(r1)
|
|
/* 80073A18 00070958 F3 E1 00 88 */ psq_st f31, 136(r1), 0, 0
|
|
/* 80073A1C 0007095C DB C1 00 70 */ stfd f30, 0x70(r1)
|
|
/* 80073A20 00070960 F3 C1 00 78 */ psq_st f30, 120(r1), 0, 0
|
|
/* 80073A24 00070964 DB A1 00 60 */ stfd f29, 0x60(r1)
|
|
/* 80073A28 00070968 F3 A1 00 68 */ psq_st f29, 104(r1), 0, 0
|
|
/* 80073A2C 0007096C 39 61 00 60 */ addi r11, r1, 0x60
|
|
/* 80073A30 00070970 48 2E E7 A1 */ bl _savegpr_26
|
|
/* 80073A34 00070974 7C 7B 1B 78 */ mr r27, r3
|
|
/* 80073A38 00070978 7C 9C 23 78 */ mr r28, r4
|
|
/* 80073A3C 0007097C 7C BD 2B 78 */ mr r29, r5
|
|
/* 80073A40 00070980 FF E0 08 90 */ fmr f31, f1
|
|
/* 80073A44 00070984 FF A0 10 90 */ fmr f29, f2
|
|
/* 80073A48 00070988 FF C0 18 90 */ fmr f30, f3
|
|
/* 80073A4C 0007098C 7C DE 33 78 */ mr r30, r6
|
|
/* 80073A50 00070990 7C FF 3B 78 */ mr r31, r7
|
|
/* 80073A54 00070994 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
|
|
/* 80073A58 00070998 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
|
|
/* 80073A5C 0007099C 83 43 5D AC */ lwz r26, 0x5dac(r3)
|
|
/* 80073A60 000709A0 80 1B 00 04 */ lwz r0, 4(r27)
|
|
/* 80073A64 000709A4 7C 1F 00 00 */ cmpw r31, r0
|
|
/* 80073A68 000709A8 40 81 00 0C */ ble lbl_80073A74
|
|
/* 80073A6C 000709AC 38 60 00 00 */ li r3, 0
|
|
/* 80073A70 000709B0 48 00 02 04 */ b lbl_80073C74
|
|
lbl_80073A74:
|
|
/* 80073A74 000709B4 38 61 00 24 */ addi r3, r1, 0x24
|
|
/* 80073A78 000709B8 38 9C 05 50 */ addi r4, r28, 0x550
|
|
/* 80073A7C 000709BC 38 BA 05 50 */ addi r5, r26, 0x550
|
|
/* 80073A80 000709C0 48 1F 30 B5 */ bl __mi__4cXyzCFRC3Vec
|
|
/* 80073A84 000709C4 C0 41 00 24 */ lfs f2, 0x24(r1)
|
|
/* 80073A88 000709C8 D0 41 00 30 */ stfs f2, 0x30(r1)
|
|
/* 80073A8C 000709CC C0 01 00 28 */ lfs f0, 0x28(r1)
|
|
/* 80073A90 000709D0 D0 01 00 34 */ stfs f0, 0x34(r1)
|
|
/* 80073A94 000709D4 C0 21 00 2C */ lfs f1, 0x2c(r1)
|
|
/* 80073A98 000709D8 D0 21 00 38 */ stfs f1, 0x38(r1)
|
|
/* 80073A9C 000709DC FC 00 F0 40 */ fcmpo cr0, f0, f30
|
|
/* 80073AA0 000709E0 41 80 00 0C */ blt lbl_80073AAC
|
|
/* 80073AA4 000709E4 FC 00 E8 40 */ fcmpo cr0, f0, f29
|
|
/* 80073AA8 000709E8 40 81 00 0C */ ble lbl_80073AB4
|
|
lbl_80073AAC:
|
|
/* 80073AAC 000709EC 38 60 00 00 */ li r3, 0
|
|
/* 80073AB0 000709F0 48 00 01 C4 */ b lbl_80073C74
|
|
lbl_80073AB4:
|
|
/* 80073AB4 000709F4 D0 41 00 18 */ stfs f2, 0x18(r1)
|
|
/* 80073AB8 000709F8 C0 02 8C 50 */ lfs f0, lbl_80452650-_SDA2_BASE_(r2)
|
|
/* 80073ABC 000709FC D0 01 00 1C */ stfs f0, 0x1c(r1)
|
|
/* 80073AC0 00070A00 D0 21 00 20 */ stfs f1, 0x20(r1)
|
|
/* 80073AC4 00070A04 38 61 00 18 */ addi r3, r1, 0x18
|
|
/* 80073AC8 00070A08 48 2D 36 71 */ bl PSVECSquareMag
|
|
/* 80073ACC 00070A0C C0 02 8C 50 */ lfs f0, lbl_80452650-_SDA2_BASE_(r2)
|
|
/* 80073AD0 00070A10 FC 01 00 40 */ fcmpo cr0, f1, f0
|
|
/* 80073AD4 00070A14 40 81 00 58 */ ble lbl_80073B2C
|
|
/* 80073AD8 00070A18 FC 00 08 34 */ frsqrte f0, f1
|
|
/* 80073ADC 00070A1C C8 82 8C 78 */ lfd f4, lbl_80452678-_SDA2_BASE_(r2)
|
|
/* 80073AE0 00070A20 FC 44 00 32 */ fmul f2, f4, f0
|
|
/* 80073AE4 00070A24 C8 62 8C 80 */ lfd f3, lbl_80452680-_SDA2_BASE_(r2)
|
|
/* 80073AE8 00070A28 FC 00 00 32 */ fmul f0, f0, f0
|
|
/* 80073AEC 00070A2C FC 01 00 32 */ fmul f0, f1, f0
|
|
/* 80073AF0 00070A30 FC 03 00 28 */ fsub f0, f3, f0
|
|
/* 80073AF4 00070A34 FC 02 00 32 */ fmul f0, f2, f0
|
|
/* 80073AF8 00070A38 FC 44 00 32 */ fmul f2, f4, f0
|
|
/* 80073AFC 00070A3C FC 00 00 32 */ fmul f0, f0, f0
|
|
/* 80073B00 00070A40 FC 01 00 32 */ fmul f0, f1, f0
|
|
/* 80073B04 00070A44 FC 03 00 28 */ fsub f0, f3, f0
|
|
/* 80073B08 00070A48 FC 02 00 32 */ fmul f0, f2, f0
|
|
/* 80073B0C 00070A4C FC 44 00 32 */ fmul f2, f4, f0
|
|
/* 80073B10 00070A50 FC 00 00 32 */ fmul f0, f0, f0
|
|
/* 80073B14 00070A54 FC 01 00 32 */ fmul f0, f1, f0
|
|
/* 80073B18 00070A58 FC 03 00 28 */ fsub f0, f3, f0
|
|
/* 80073B1C 00070A5C FC 02 00 32 */ fmul f0, f2, f0
|
|
/* 80073B20 00070A60 FF C1 00 32 */ fmul f30, f1, f0
|
|
/* 80073B24 00070A64 FF C0 F0 18 */ frsp f30, f30
|
|
/* 80073B28 00070A68 48 00 00 90 */ b lbl_80073BB8
|
|
lbl_80073B2C:
|
|
/* 80073B2C 00070A6C C8 02 8C 88 */ lfd f0, lbl_80452688-_SDA2_BASE_(r2)
|
|
/* 80073B30 00070A70 FC 01 00 40 */ fcmpo cr0, f1, f0
|
|
/* 80073B34 00070A74 40 80 00 10 */ bge lbl_80073B44
|
|
/* 80073B38 00070A78 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
|
|
/* 80073B3C 00070A7C C3 C3 0A E0 */ lfs f30, lbl_80450AE0@l(r3)
|
|
/* 80073B40 00070A80 48 00 00 78 */ b lbl_80073BB8
|
|
lbl_80073B44:
|
|
/* 80073B44 00070A84 D0 21 00 0C */ stfs f1, 0xc(r1)
|
|
/* 80073B48 00070A88 80 81 00 0C */ lwz r4, 0xc(r1)
|
|
/* 80073B4C 00070A8C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
|
|
/* 80073B50 00070A90 3C 00 7F 80 */ lis r0, 0x7f80
|
|
/* 80073B54 00070A94 7C 03 00 00 */ cmpw r3, r0
|
|
/* 80073B58 00070A98 41 82 00 14 */ beq lbl_80073B6C
|
|
/* 80073B5C 00070A9C 40 80 00 40 */ bge lbl_80073B9C
|
|
/* 80073B60 00070AA0 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 80073B64 00070AA4 41 82 00 20 */ beq lbl_80073B84
|
|
/* 80073B68 00070AA8 48 00 00 34 */ b lbl_80073B9C
|
|
lbl_80073B6C:
|
|
/* 80073B6C 00070AAC 54 80 02 7F */ clrlwi. r0, r4, 9
|
|
/* 80073B70 00070AB0 41 82 00 0C */ beq lbl_80073B7C
|
|
/* 80073B74 00070AB4 38 00 00 01 */ li r0, 1
|
|
/* 80073B78 00070AB8 48 00 00 28 */ b lbl_80073BA0
|
|
lbl_80073B7C:
|
|
/* 80073B7C 00070ABC 38 00 00 02 */ li r0, 2
|
|
/* 80073B80 00070AC0 48 00 00 20 */ b lbl_80073BA0
|
|
lbl_80073B84:
|
|
/* 80073B84 00070AC4 54 80 02 7F */ clrlwi. r0, r4, 9
|
|
/* 80073B88 00070AC8 41 82 00 0C */ beq lbl_80073B94
|
|
/* 80073B8C 00070ACC 38 00 00 05 */ li r0, 5
|
|
/* 80073B90 00070AD0 48 00 00 10 */ b lbl_80073BA0
|
|
lbl_80073B94:
|
|
/* 80073B94 00070AD4 38 00 00 03 */ li r0, 3
|
|
/* 80073B98 00070AD8 48 00 00 08 */ b lbl_80073BA0
|
|
lbl_80073B9C:
|
|
/* 80073B9C 00070ADC 38 00 00 04 */ li r0, 4
|
|
lbl_80073BA0:
|
|
/* 80073BA0 00070AE0 2C 00 00 01 */ cmpwi r0, 1
|
|
/* 80073BA4 00070AE4 40 82 00 10 */ bne lbl_80073BB4
|
|
/* 80073BA8 00070AE8 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
|
|
/* 80073BAC 00070AEC C3 C3 0A E0 */ lfs f30, lbl_80450AE0@l(r3)
|
|
/* 80073BB0 00070AF0 48 00 00 08 */ b lbl_80073BB8
|
|
lbl_80073BB4:
|
|
/* 80073BB4 00070AF4 FF C0 08 90 */ fmr f30, f1
|
|
lbl_80073BB8:
|
|
/* 80073BB8 00070AF8 FC 1E F8 40 */ fcmpo cr0, f30, f31
|
|
/* 80073BBC 00070AFC 40 81 00 0C */ ble lbl_80073BC8
|
|
/* 80073BC0 00070B00 38 60 00 00 */ li r3, 0
|
|
/* 80073BC4 00070B04 48 00 00 B0 */ b lbl_80073C74
|
|
lbl_80073BC8:
|
|
/* 80073BC8 00070B08 7F C0 07 35 */ extsh. r0, r30
|
|
/* 80073BCC 00070B0C 41 82 00 60 */ beq lbl_80073C2C
|
|
/* 80073BD0 00070B10 38 61 00 10 */ addi r3, r1, 0x10
|
|
/* 80073BD4 00070B14 38 81 00 30 */ addi r4, r1, 0x30
|
|
/* 80073BD8 00070B18 48 1F DC A9 */ bl __ct__7cSGlobeFRC4cXyz
|
|
/* 80073BDC 00070B1C 38 61 00 08 */ addi r3, r1, 8
|
|
/* 80073BE0 00070B20 38 81 00 16 */ addi r4, r1, 0x16
|
|
/* 80073BE4 00070B24 A8 BA 04 E6 */ lha r5, 0x4e6(r26)
|
|
/* 80073BE8 00070B28 48 1F D6 41 */ bl __mi__7cSAngleCFs
|
|
/* 80073BEC 00070B2C A8 01 00 08 */ lha r0, 8(r1)
|
|
/* 80073BF0 00070B30 7C 00 07 35 */ extsh. r0, r0
|
|
/* 80073BF4 00070B34 7C 03 03 78 */ mr r3, r0
|
|
/* 80073BF8 00070B38 40 80 00 0C */ bge lbl_80073C04
|
|
/* 80073BFC 00070B3C 7C 00 00 D0 */ neg r0, r0
|
|
/* 80073C00 00070B40 7C 03 07 34 */ extsh r3, r0
|
|
lbl_80073C04:
|
|
/* 80073C04 00070B44 7C 60 07 34 */ extsh r0, r3
|
|
/* 80073C08 00070B48 2C 00 80 00 */ cmpwi r0, -32768
|
|
/* 80073C0C 00070B4C 40 82 00 08 */ bne lbl_80073C14
|
|
/* 80073C10 00070B50 38 60 7F FF */ li r3, 0x7fff
|
|
lbl_80073C14:
|
|
/* 80073C14 00070B54 7C 63 07 34 */ extsh r3, r3
|
|
/* 80073C18 00070B58 7F C0 07 34 */ extsh r0, r30
|
|
/* 80073C1C 00070B5C 7C 03 00 00 */ cmpw r3, r0
|
|
/* 80073C20 00070B60 40 81 00 0C */ ble lbl_80073C2C
|
|
/* 80073C24 00070B64 38 60 00 00 */ li r3, 0
|
|
/* 80073C28 00070B68 48 00 00 4C */ b lbl_80073C74
|
|
lbl_80073C2C:
|
|
/* 80073C2C 00070B6C 80 1B 00 04 */ lwz r0, 4(r27)
|
|
/* 80073C30 00070B70 7C 1F 00 00 */ cmpw r31, r0
|
|
/* 80073C34 00070B74 41 80 00 10 */ blt lbl_80073C44
|
|
/* 80073C38 00070B78 C0 1B 00 08 */ lfs f0, 8(r27)
|
|
/* 80073C3C 00070B7C FC 1E 00 40 */ fcmpo cr0, f30, f0
|
|
/* 80073C40 00070B80 40 80 00 30 */ bge lbl_80073C70
|
|
lbl_80073C44:
|
|
/* 80073C44 00070B84 93 FB 00 04 */ stw r31, 4(r27)
|
|
/* 80073C48 00070B88 9B BB 00 0C */ stb r29, 0xc(r27)
|
|
/* 80073C4C 00070B8C 28 1C 00 00 */ cmplwi r28, 0
|
|
/* 80073C50 00070B90 41 82 00 0C */ beq lbl_80073C5C
|
|
/* 80073C54 00070B94 80 1C 00 04 */ lwz r0, 4(r28)
|
|
/* 80073C58 00070B98 48 00 00 08 */ b lbl_80073C60
|
|
lbl_80073C5C:
|
|
/* 80073C5C 00070B9C 38 00 FF FF */ li r0, -1
|
|
lbl_80073C60:
|
|
/* 80073C60 00070BA0 90 1B 00 00 */ stw r0, 0(r27)
|
|
/* 80073C64 00070BA4 D3 DB 00 08 */ stfs f30, 8(r27)
|
|
/* 80073C68 00070BA8 38 60 00 01 */ li r3, 1
|
|
/* 80073C6C 00070BAC 48 00 00 08 */ b lbl_80073C74
|
|
lbl_80073C70:
|
|
/* 80073C70 00070BB0 38 60 00 00 */ li r3, 0
|
|
lbl_80073C74:
|
|
/* 80073C74 00070BB4 E3 E1 00 88 */ psq_l f31, 136(r1), 0, 0
|
|
/* 80073C78 00070BB8 CB E1 00 80 */ lfd f31, 0x80(r1)
|
|
/* 80073C7C 00070BBC E3 C1 00 78 */ psq_l f30, 120(r1), 0, 0
|
|
/* 80073C80 00070BC0 CB C1 00 70 */ lfd f30, 0x70(r1)
|
|
/* 80073C84 00070BC4 E3 A1 00 68 */ psq_l f29, 104(r1), 0, 0
|
|
/* 80073C88 00070BC8 CB A1 00 60 */ lfd f29, 0x60(r1)
|
|
/* 80073C8C 00070BCC 39 61 00 60 */ addi r11, r1, 0x60
|
|
/* 80073C90 00070BD0 48 2E E5 8D */ bl _restgpr_26
|
|
/* 80073C94 00070BD4 80 01 00 94 */ lwz r0, 0x94(r1)
|
|
/* 80073C98 00070BD8 7C 08 03 A6 */ mtlr r0
|
|
/* 80073C9C 00070BDC 38 21 00 90 */ addi r1, r1, 0x90
|
|
/* 80073CA0 00070BE0 4E 80 00 20 */ blr
|