From 8c99bdd00f2fd191d69e02f5091bc36d3eb2a45d Mon Sep 17 00:00:00 2001 From: Lucas Shaw Date: Sun, 22 Mar 2020 22:55:05 -0700 Subject: [PATCH] ovl_Bg_Zg OK --- .../overlays/actors/ovl_Bg_Zg/BgZg_Destroy.s | 16 -- .../overlays/actors/ovl_Bg_Zg/BgZg_Draw.s | 32 ---- .../overlays/actors/ovl_Bg_Zg/BgZg_Init.s | 69 -------- .../overlays/actors/ovl_Bg_Zg/BgZg_Update.s | 30 ---- .../overlays/actors/ovl_Bg_Zg/func_808C0C50.s | 22 --- .../overlays/actors/ovl_Bg_Zg/func_808C0C98.s | 16 -- .../overlays/actors/ovl_Bg_Zg/func_808C0CC8.s | 6 - .../overlays/actors/ovl_Bg_Zg/func_808C0CD4.s | 17 -- .../overlays/actors/ovl_Bg_Zg/func_808C0D08.s | 45 ------ .../overlays/actors/ovl_Bg_Zg/func_808C0EEC.s | 50 ------ data/overlays/actors/z_bg_zg.data.s | 23 --- data/overlays/actors/z_bg_zg.reloc.s | 11 -- data/overlays/actors/z_bg_zg.rodata.s | 37 ----- spec | 4 +- src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c | 153 ++++++++++++++++-- src/overlays/actors/ovl_Bg_Zg/z_bg_zg.h | 6 +- undefined_syms.txt | 3 + 17 files changed, 145 insertions(+), 395 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0C50.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0C98.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0CC8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0CD4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0D08.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0EEC.s delete mode 100644 data/overlays/actors/z_bg_zg.data.s delete mode 100644 data/overlays/actors/z_bg_zg.reloc.s delete mode 100644 data/overlays/actors/z_bg_zg.rodata.s diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Destroy.s deleted file mode 100644 index 12e174449e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Destroy.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel BgZg_Destroy -/* 00000 808C0C20 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00004 808C0C24 AFA40018 */ sw $a0, 0x0018($sp) -/* 00008 808C0C28 8FAE0018 */ lw $t6, 0x0018($sp) -/* 0000C 808C0C2C AFBF0014 */ sw $ra, 0x0014($sp) -/* 00010 808C0C30 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00014 808C0C34 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810 -/* 00018 808C0C38 0C00FB56 */ jal DynaPolyInfo_Free - ## DynaPolyInfo_delReserve -/* 0001C 808C0C3C 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C -/* 00020 808C0C40 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00024 808C0C44 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00028 808C0C48 03E00008 */ jr $ra -/* 0002C 808C0C4C 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Draw.s b/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Draw.s deleted file mode 100644 index 11c8a28ef3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Draw.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel BgZg_Draw -/* 00388 808C0FA8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0038C 808C0FAC AFBF0014 */ sw $ra, 0x0014($sp) -/* 00390 808C0FB0 8C820168 */ lw $v0, 0x0168($a0) ## 00000168 -/* 00394 808C0FB4 04400008 */ bltz $v0, .L808C0FD8 -/* 00398 808C0FB8 00000000 */ nop -/* 0039C 808C0FBC 1C400006 */ bgtz $v0, .L808C0FD8 -/* 003A0 808C0FC0 00027080 */ sll $t6, $v0, 2 -/* 003A4 808C0FC4 3C03808C */ lui $v1, %hi(D_808C101C) ## $v1 = 808C0000 -/* 003A8 808C0FC8 006E1821 */ addu $v1, $v1, $t6 -/* 003AC 808C0FCC 8C63101C */ lw $v1, %lo(D_808C101C)($v1) -/* 003B0 808C0FD0 14600006 */ bne $v1, $zero, .L808C0FEC -/* 003B4 808C0FD4 00000000 */ nop -.L808C0FD8: -/* 003B8 808C0FD8 3C04808C */ lui $a0, %hi(D_808C10AC) ## $a0 = 808C0000 -/* 003BC 808C0FDC 0C00084C */ jal osSyncPrintf - -/* 003C0 808C0FE0 248410AC */ addiu $a0, $a0, %lo(D_808C10AC) ## $a0 = 808C10AC -/* 003C4 808C0FE4 10000004 */ beq $zero, $zero, .L808C0FF8 -/* 003C8 808C0FE8 8FBF0014 */ lw $ra, 0x0014($sp) -.L808C0FEC: -/* 003CC 808C0FEC 0060F809 */ jalr $ra, $v1 -/* 003D0 808C0FF0 00000000 */ nop -/* 003D4 808C0FF4 8FBF0014 */ lw $ra, 0x0014($sp) -.L808C0FF8: -/* 003D8 808C0FF8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 003DC 808C0FFC 03E00008 */ jr $ra -/* 003E0 808C1000 00000000 */ nop -/* 003E4 808C1004 00000000 */ nop -/* 003E8 808C1008 00000000 */ nop -/* 003EC 808C100C 00000000 */ nop - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Init.s b/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Init.s deleted file mode 100644 index 1d0af8010d..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Init.s +++ /dev/null @@ -1,69 +0,0 @@ -glabel BgZg_Init -/* 001E4 808C0E04 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 001E8 808C0E08 AFA50034 */ sw $a1, 0x0034($sp) -/* 001EC 808C0E0C AFBF001C */ sw $ra, 0x001C($sp) -/* 001F0 808C0E10 AFB00018 */ sw $s0, 0x0018($sp) -/* 001F4 808C0E14 3C05808C */ lui $a1, %hi(D_808C1018) ## $a1 = 808C0000 -/* 001F8 808C0E18 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 001FC 808C0E1C 0C01E037 */ jal Actor_ProcessInitChain - -/* 00200 808C0E20 24A51018 */ addiu $a1, $a1, %lo(D_808C1018) ## $a1 = 808C1018 -/* 00204 808C0E24 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00208 808C0E28 0C010D20 */ jal DynaPolyInfo_SetActorMove - -/* 0020C 808C0E2C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00210 808C0E30 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000 -/* 00214 808C0E34 AFA00020 */ sw $zero, 0x0020($sp) -/* 00218 808C0E38 248411D4 */ addiu $a0, $a0, 0x11D4 ## $a0 = 060011D4 -/* 0021C 808C0E3C 0C010620 */ jal DynaPolyInfo_Alloc - -/* 00220 808C0E40 27A50020 */ addiu $a1, $sp, 0x0020 ## $a1 = FFFFFFF0 -/* 00224 808C0E44 8FA40034 */ lw $a0, 0x0034($sp) -/* 00228 808C0E48 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 0022C 808C0E4C 8FA70020 */ lw $a3, 0x0020($sp) -/* 00230 808C0E50 0C00FA9D */ jal DynaPolyInfo_RegisterActor - ## DynaPolyInfo_setActor -/* 00234 808C0E54 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810 -/* 00238 808C0E58 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C -/* 0023C 808C0E5C 0C230332 */ jal func_808C0CC8 -/* 00240 808C0E60 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00244 808C0E64 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008 -/* 00248 808C0E68 10410005 */ beq $v0, $at, .L808C0E80 -/* 0024C 808C0E6C 00000000 */ nop -/* 00250 808C0E70 0C230332 */ jal func_808C0CC8 -/* 00254 808C0E74 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00258 808C0E78 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009 -/* 0025C 808C0E7C 1441000D */ bne $v0, $at, .L808C0EB4 -.L808C0E80: -/* 00260 808C0E80 3C01808C */ lui $at, %hi(D_808C10E8) ## $at = 808C0000 -/* 00264 808C0E84 C42010E8 */ lwc1 $f0, %lo(D_808C10E8)($at) -/* 00268 808C0E88 C6040050 */ lwc1 $f4, 0x0050($s0) ## 00000050 -/* 0026C 808C0E8C C6080058 */ lwc1 $f8, 0x0058($s0) ## 00000058 -/* 00270 808C0E90 3C01808C */ lui $at, %hi(D_808C10EC) ## $at = 808C0000 -/* 00274 808C0E94 46002182 */ mul.s $f6, $f4, $f0 -/* 00278 808C0E98 C6100054 */ lwc1 $f16, 0x0054($s0) ## 00000054 -/* 0027C 808C0E9C 46004282 */ mul.s $f10, $f8, $f0 -/* 00280 808C0EA0 E6060050 */ swc1 $f6, 0x0050($s0) ## 00000050 -/* 00284 808C0EA4 E60A0058 */ swc1 $f10, 0x0058($s0) ## 00000058 -/* 00288 808C0EA8 C43210EC */ lwc1 $f18, %lo(D_808C10EC)($at) -/* 0028C 808C0EAC 46128102 */ mul.s $f4, $f16, $f18 -/* 00290 808C0EB0 E6040054 */ swc1 $f4, 0x0054($s0) ## 00000054 -.L808C0EB4: -/* 00294 808C0EB4 AE000164 */ sw $zero, 0x0164($s0) ## 00000164 -/* 00298 808C0EB8 AE000168 */ sw $zero, 0x0168($s0) ## 00000168 -/* 0029C 808C0EBC 8FA50034 */ lw $a1, 0x0034($sp) -/* 002A0 808C0EC0 0C230326 */ jal func_808C0C98 -/* 002A4 808C0EC4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 002A8 808C0EC8 50400004 */ beql $v0, $zero, .L808C0EDC -/* 002AC 808C0ECC 8FBF001C */ lw $ra, 0x001C($sp) -/* 002B0 808C0ED0 0C00B55C */ jal Actor_Kill - -/* 002B4 808C0ED4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 002B8 808C0ED8 8FBF001C */ lw $ra, 0x001C($sp) -.L808C0EDC: -/* 002BC 808C0EDC 8FB00018 */ lw $s0, 0x0018($sp) -/* 002C0 808C0EE0 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 002C4 808C0EE4 03E00008 */ jr $ra -/* 002C8 808C0EE8 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Update.s b/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Update.s deleted file mode 100644 index a60ee97dd9..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Update.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel BgZg_Update -/* 00188 808C0DA8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0018C 808C0DAC AFBF0014 */ sw $ra, 0x0014($sp) -/* 00190 808C0DB0 8C820164 */ lw $v0, 0x0164($a0) ## 00000164 -/* 00194 808C0DB4 04400008 */ bltz $v0, .L808C0DD8 -/* 00198 808C0DB8 28410002 */ slti $at, $v0, 0x0002 -/* 0019C 808C0DBC 10200006 */ beq $at, $zero, .L808C0DD8 -/* 001A0 808C0DC0 00027080 */ sll $t6, $v0, 2 -/* 001A4 808C0DC4 3C03808C */ lui $v1, %hi(D_808C1010) ## $v1 = 808C0000 -/* 001A8 808C0DC8 006E1821 */ addu $v1, $v1, $t6 -/* 001AC 808C0DCC 8C631010 */ lw $v1, %lo(D_808C1010)($v1) -/* 001B0 808C0DD0 14600006 */ bne $v1, $zero, .L808C0DEC -/* 001B4 808C0DD4 00000000 */ nop -.L808C0DD8: -/* 001B8 808C0DD8 3C04808C */ lui $a0, %hi(D_808C1040) ## $a0 = 808C0000 -/* 001BC 808C0DDC 0C00084C */ jal osSyncPrintf - -/* 001C0 808C0DE0 24841040 */ addiu $a0, $a0, %lo(D_808C1040) ## $a0 = 808C1040 -/* 001C4 808C0DE4 10000004 */ beq $zero, $zero, .L808C0DF8 -/* 001C8 808C0DE8 8FBF0014 */ lw $ra, 0x0014($sp) -.L808C0DEC: -/* 001CC 808C0DEC 0060F809 */ jalr $ra, $v1 -/* 001D0 808C0DF0 00000000 */ nop -/* 001D4 808C0DF4 8FBF0014 */ lw $ra, 0x0014($sp) -.L808C0DF8: -/* 001D8 808C0DF8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 001DC 808C0DFC 03E00008 */ jr $ra -/* 001E0 808C0E00 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0C50.s b/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0C50.s deleted file mode 100644 index 01a7dc5a76..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0C50.s +++ /dev/null @@ -1,22 +0,0 @@ -glabel func_808C0C50 -/* 00030 808C0C50 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00034 808C0C54 AFA40020 */ sw $a0, 0x0020($sp) -/* 00038 808C0C58 8FA50020 */ lw $a1, 0x0020($sp) -/* 0003C 808C0C5C 3C078013 */ lui $a3, 0x8013 ## $a3 = 80130000 -/* 00040 808C0C60 3C0E8013 */ lui $t6, 0x8013 ## $t6 = 80130000 -/* 00044 808C0C64 24E733E0 */ addiu $a3, $a3, 0x33E0 ## $a3 = 801333E0 -/* 00048 808C0C68 AFBF001C */ sw $ra, 0x001C($sp) -/* 0004C 808C0C6C 25CE33E8 */ addiu $t6, $t6, 0x33E8 ## $t6 = 801333E8 -/* 00050 808C0C70 AFAE0014 */ sw $t6, 0x0014($sp) -/* 00054 808C0C74 AFA70010 */ sw $a3, 0x0010($sp) -/* 00058 808C0C78 24042859 */ addiu $a0, $zero, 0x2859 ## $a0 = 00002859 -/* 0005C 808C0C7C 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004 -/* 00060 808C0C80 0C03DCE3 */ jal Audio_PlaySoundGeneral - -/* 00064 808C0C84 24A500E4 */ addiu $a1, $a1, 0x00E4 ## $a1 = 000000E4 -/* 00068 808C0C88 8FBF001C */ lw $ra, 0x001C($sp) -/* 0006C 808C0C8C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00070 808C0C90 03E00008 */ jr $ra -/* 00074 808C0C94 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0C98.s b/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0C98.s deleted file mode 100644 index fdf9c48315..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0C98.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel func_808C0C98 -/* 00078 808C0C98 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0007C 808C0C9C AFBF0014 */ sw $ra, 0x0014($sp) -/* 00080 808C0CA0 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000 -/* 00084 808C0CA4 8485001C */ lh $a1, 0x001C($a0) ## 0000001C -/* 00088 808C0CA8 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000 -/* 0008C 808C0CAC 00052A03 */ sra $a1, $a1, 8 -/* 00090 808C0CB0 0C00B2D0 */ jal Flags_GetSwitch - -/* 00094 808C0CB4 30A500FF */ andi $a1, $a1, 0x00FF ## $a1 = 00000000 -/* 00098 808C0CB8 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0009C 808C0CBC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 000A0 808C0CC0 03E00008 */ jr $ra -/* 000A4 808C0CC4 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0CC8.s b/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0CC8.s deleted file mode 100644 index 37811b7e0c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0CC8.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel func_808C0CC8 -/* 000A8 808C0CC8 8483001C */ lh $v1, 0x001C($a0) ## 0000001C -/* 000AC 808C0CCC 03E00008 */ jr $ra -/* 000B0 808C0CD0 306200FF */ andi $v0, $v1, 0x00FF ## $v0 = 00000000 - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0CD4.s b/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0CD4.s deleted file mode 100644 index 78c0d2e9ca..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0CD4.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel func_808C0CD4 -/* 000B4 808C0CD4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 000B8 808C0CD8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 000BC 808C0CDC 0C230326 */ jal func_808C0C98 -/* 000C0 808C0CE0 AFA40018 */ sw $a0, 0x0018($sp) -/* 000C4 808C0CE4 10400004 */ beq $v0, $zero, .L808C0CF8 -/* 000C8 808C0CE8 8FA40018 */ lw $a0, 0x0018($sp) -/* 000CC 808C0CEC 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001 -/* 000D0 808C0CF0 0C230314 */ jal func_808C0C50 -/* 000D4 808C0CF4 AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164 -.L808C0CF8: -/* 000D8 808C0CF8 8FBF0014 */ lw $ra, 0x0014($sp) -/* 000DC 808C0CFC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 000E0 808C0D00 03E00008 */ jr $ra -/* 000E4 808C0D04 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0D08.s b/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0D08.s deleted file mode 100644 index 948fcbad58..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0D08.s +++ /dev/null @@ -1,45 +0,0 @@ -glabel func_808C0D08 -/* 000E8 808C0D08 3C028016 */ lui $v0, 0x8016 ## $v0 = 80160000 -/* 000EC 808C0D0C 2442FA90 */ addiu $v0, $v0, 0xFA90 ## $v0 = 8015FA90 -/* 000F0 808C0D10 8C4E0000 */ lw $t6, 0x0000($v0) ## 8015FA90 -/* 000F4 808C0D14 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 000F8 808C0D18 AFBF0014 */ sw $ra, 0x0014($sp) -/* 000FC 808C0D1C AFA5001C */ sw $a1, 0x001C($sp) -/* 00100 808C0D20 85CF1474 */ lh $t7, 0x1474($t6) ## 00001474 -/* 00104 808C0D24 3C01808C */ lui $at, %hi(D_808C10E4) ## $at = 808C0000 -/* 00108 808C0D28 C42010E4 */ lwc1 $f0, %lo(D_808C10E4)($at) -/* 0010C 808C0D2C 448F2000 */ mtc1 $t7, $f4 ## $f4 = 0.00 -/* 00110 808C0D30 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000 -/* 00114 808C0D34 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00 -/* 00118 808C0D38 468021A0 */ cvt.s.w $f6, $f4 -/* 0011C 808C0D3C C4920028 */ lwc1 $f18, 0x0028($a0) ## 00000028 -/* 00120 808C0D40 3C014348 */ lui $at, 0x4348 ## $at = 43480000 -/* 00124 808C0D44 46083280 */ add.s $f10, $f6, $f8 -/* 00128 808C0D48 46005402 */ mul.s $f16, $f10, $f0 -/* 0012C 808C0D4C 46109100 */ add.s $f4, $f18, $f16 -/* 00130 808C0D50 44819000 */ mtc1 $at, $f18 ## $f18 = 200.00 -/* 00134 808C0D54 E4840028 */ swc1 $f4, 0x0028($a0) ## 00000028 -/* 00138 808C0D58 8C580000 */ lw $t8, 0x0000($v0) ## 8015FA90 -/* 0013C 808C0D5C C4860028 */ lwc1 $f6, 0x0028($a0) ## 00000028 -/* 00140 808C0D60 87191476 */ lh $t9, 0x1476($t8) ## 00001476 -/* 00144 808C0D64 44994000 */ mtc1 $t9, $f8 ## $f8 = 0.00 -/* 00148 808C0D68 00000000 */ nop -/* 0014C 808C0D6C 468042A0 */ cvt.s.w $f10, $f8 -/* 00150 808C0D70 C488000C */ lwc1 $f8, 0x000C($a0) ## 0000000C -/* 00154 808C0D74 46125400 */ add.s $f16, $f10, $f18 -/* 00158 808C0D78 46008102 */ mul.s $f4, $f16, $f0 -/* 0015C 808C0D7C 46082280 */ add.s $f10, $f4, $f8 -/* 00160 808C0D80 4606503E */ c.le.s $f10, $f6 -/* 00164 808C0D84 00000000 */ nop -/* 00168 808C0D88 45020004 */ bc1fl .L808C0D9C -/* 0016C 808C0D8C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00170 808C0D90 0C00B55C */ jal Actor_Kill - -/* 00174 808C0D94 00000000 */ nop -/* 00178 808C0D98 8FBF0014 */ lw $ra, 0x0014($sp) -.L808C0D9C: -/* 0017C 808C0D9C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00180 808C0DA0 03E00008 */ jr $ra -/* 00184 808C0DA4 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0EEC.s b/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0EEC.s deleted file mode 100644 index 198f798de0..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0EEC.s +++ /dev/null @@ -1,50 +0,0 @@ -glabel func_808C0EEC -/* 002CC 808C0EEC 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8 -/* 002D0 808C0EF0 AFBF001C */ sw $ra, 0x001C($sp) -/* 002D4 808C0EF4 AFB00018 */ sw $s0, 0x0018($sp) -/* 002D8 808C0EF8 AFA40048 */ sw $a0, 0x0048($sp) -/* 002DC 808C0EFC AFA5004C */ sw $a1, 0x004C($sp) -/* 002E0 808C0F00 8CB00000 */ lw $s0, 0x0000($a1) ## 00000000 -/* 002E4 808C0F04 3C06808C */ lui $a2, %hi(D_808C107C) ## $a2 = 808C0000 -/* 002E8 808C0F08 24C6107C */ addiu $a2, $a2, %lo(D_808C107C) ## $a2 = 808C107C -/* 002EC 808C0F0C 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8 -/* 002F0 808C0F10 24070137 */ addiu $a3, $zero, 0x0137 ## $a3 = 00000137 -/* 002F4 808C0F14 0C031AB1 */ jal func_800C6AC4 -/* 002F8 808C0F18 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 002FC 808C0F1C 0C024F46 */ jal func_80093D18 -/* 00300 808C0F20 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00304 808C0F24 8E0302C0 */ lw $v1, 0x02C0($s0) ## 000002C0 -/* 00308 808C0F28 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000 -/* 0030C 808C0F2C 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003 -/* 00310 808C0F30 246F0008 */ addiu $t7, $v1, 0x0008 ## $t7 = 00000008 -/* 00314 808C0F34 AE0F02C0 */ sw $t7, 0x02C0($s0) ## 000002C0 -/* 00318 808C0F38 3C05808C */ lui $a1, %hi(D_808C108C) ## $a1 = 808C0000 -/* 0031C 808C0F3C AC780000 */ sw $t8, 0x0000($v1) ## 00000000 -/* 00320 808C0F40 24A5108C */ addiu $a1, $a1, %lo(D_808C108C) ## $a1 = 808C108C -/* 00324 808C0F44 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00328 808C0F48 2406013B */ addiu $a2, $zero, 0x013B ## $a2 = 0000013B -/* 0032C 808C0F4C 0C0346A2 */ jal Matrix_NewMtx -/* 00330 808C0F50 AFA3002C */ sw $v1, 0x002C($sp) -/* 00334 808C0F54 8FA7002C */ lw $a3, 0x002C($sp) -/* 00338 808C0F58 3C090600 */ lui $t1, 0x0600 ## $t1 = 06000000 -/* 0033C 808C0F5C 25291080 */ addiu $t1, $t1, 0x1080 ## $t1 = 06001080 -/* 00340 808C0F60 ACE20004 */ sw $v0, 0x0004($a3) ## 00000004 -/* 00344 808C0F64 8E0302C0 */ lw $v1, 0x02C0($s0) ## 000002C0 -/* 00348 808C0F68 3C08DE00 */ lui $t0, 0xDE00 ## $t0 = DE000000 -/* 0034C 808C0F6C 3C06808C */ lui $a2, %hi(D_808C109C) ## $a2 = 808C0000 -/* 00350 808C0F70 24790008 */ addiu $t9, $v1, 0x0008 ## $t9 = 00000008 -/* 00354 808C0F74 AE1902C0 */ sw $t9, 0x02C0($s0) ## 000002C0 -/* 00358 808C0F78 24C6109C */ addiu $a2, $a2, %lo(D_808C109C) ## $a2 = 808C109C -/* 0035C 808C0F7C 24070140 */ addiu $a3, $zero, 0x0140 ## $a3 = 00000140 -/* 00360 808C0F80 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8 -/* 00364 808C0F84 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00368 808C0F88 AC690004 */ sw $t1, 0x0004($v1) ## 00000004 -/* 0036C 808C0F8C 0C031AD5 */ jal func_800C6B54 -/* 00370 808C0F90 AC680000 */ sw $t0, 0x0000($v1) ## 00000000 -/* 00374 808C0F94 8FBF001C */ lw $ra, 0x001C($sp) -/* 00378 808C0F98 8FB00018 */ lw $s0, 0x0018($sp) -/* 0037C 808C0F9C 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000 -/* 00380 808C0FA0 03E00008 */ jr $ra -/* 00384 808C0FA4 00000000 */ nop - - diff --git a/data/overlays/actors/z_bg_zg.data.s b/data/overlays/actors/z_bg_zg.data.s deleted file mode 100644 index bc07cdaf9d..0000000000 --- a/data/overlays/actors/z_bg_zg.data.s +++ /dev/null @@ -1,23 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purposee registers - -.section .data - -glabel D_808C1010 - .word func_808C0CD4 -.word func_808C0D08 -glabel D_808C1018 - .word 0x485003E8 -glabel D_808C101C - .word func_808C0EEC -glabel Bg_Zg_InitVars - .word 0x01770400, 0x00000010, 0x01560000, 0x0000016C -.word BgZg_Init -.word BgZg_Destroy -.word BgZg_Update -.word BgZg_Draw - diff --git a/data/overlays/actors/z_bg_zg.reloc.s b/data/overlays/actors/z_bg_zg.reloc.s deleted file mode 100644 index b612e3c404..0000000000 --- a/data/overlays/actors/z_bg_zg.reloc.s +++ /dev/null @@ -1,11 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purposee registers - -.section .rodata -glabel D_808C10F0 - -.incbin "baserom/ovl_Bg_Zg", 0x4D0, 0x000000A0 diff --git a/data/overlays/actors/z_bg_zg.rodata.s b/data/overlays/actors/z_bg_zg.rodata.s deleted file mode 100644 index ff40292d05..0000000000 --- a/data/overlays/actors/z_bg_zg.rodata.s +++ /dev/null @@ -1,37 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purposee registers - -.section .rodata - -glabel D_808C1040 - .asciz "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" - .balign 4 - -glabel D_808C107C - .asciz "../z_bg_zg.c" - .balign 4 - -glabel D_808C108C - .asciz "../z_bg_zg.c" - .balign 4 - -glabel D_808C109C - .asciz "../z_bg_zg.c" - .balign 4 - -glabel D_808C10AC - .asciz "描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" - .balign 4 - -glabel D_808C10E4 - .word 0x3F99999A -glabel D_808C10E8 - .word 0x3FA66666 -glabel D_808C10EC - .word 0x3F99999A - - diff --git a/spec b/spec index db21d2c688..9a15576626 100644 --- a/spec +++ b/spec @@ -1642,9 +1642,7 @@ endseg beginseg name "ovl_Bg_Zg" include "build/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.o" - include "build/data/overlays/actors/z_bg_zg.data.o" - include "build/data/overlays/actors/z_bg_zg.rodata.o" - include "build/data/overlays/actors/z_bg_zg.reloc.o" + include "build/src/overlays/actors/ovl_Bg_Zg/z_bg_zg_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c b/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c index 5bc3369bb2..3db69157c3 100644 --- a/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c +++ b/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c @@ -3,12 +3,26 @@ #define ROOM 0x00 #define FLAGS 0x00000010 -void BgZg_Init(BgZg* this, GlobalContext* globalCtx); -void BgZg_Destroy(BgZg* this, GlobalContext* globalCtx); -void BgZg_Update(BgZg* this, GlobalContext* globalCtx); -void BgZg_Draw(BgZg* this, GlobalContext* globalCtx); +static void BgZg_Init(BgZg* this, GlobalContext* globalCtx); +static void BgZg_Destroy(BgZg* this, GlobalContext* globalCtx); +static void BgZg_Update(BgZg* this, GlobalContext* globalCtx); +static void BgZg_Draw(BgZg* this, GlobalContext* globalCtx); +static void func_808C0C50(BgZg* this); +static s32 func_808C0C98(BgZg* this, GlobalContext* globalCtx); +static s32 func_808C0CC8(BgZg* this); +static void func_808C0CD4(BgZg* this, GlobalContext* globalCtx); +static void func_808C0D08(BgZg* this, GlobalContext* globalCtx); +static void func_808C0EEC(BgZg* this, GlobalContext* globalCtx); + +static const ActorFunc funcTbl[] = { (ActorFunc)func_808C0CD4, (ActorFunc)func_808C0D08 }; + +static InitChainEntry initChain[] = +{ + ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP) +}; + +static const ActorFunc funcTbl2[] = { (ActorFunc) func_808C0EEC }; -/* const ActorInit Bg_Zg_InitVars = { ACTOR_BG_ZG, @@ -22,23 +36,130 @@ const ActorInit Bg_Zg_InitVars = (ActorFunc)BgZg_Update, (ActorFunc)BgZg_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Destroy.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0C50.s") +extern u32 D_06001080; +extern u32 D_060011D4; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0C98.s") +static void BgZg_Destroy(BgZg* this, GlobalContext* globalCtx) +{ + DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0CC8.s") +static void func_808C0C50(BgZg* this) +{ + Audio_PlaySoundGeneral(NA_SE_EV_METALDOOR_OPEN, &this->dyna.actor.unk_E4, 4, + &D_801333E0, &D_801333E0, &D_801333E8); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0CD4.s") +static s32 func_808C0C98(BgZg* this, GlobalContext* globalCtx) +{ + Actor* thisx = &this->dyna.actor; + s32 flag; + flag = (thisx->params >> 8) & 0xFF; + return Flags_GetSwitch(globalCtx, flag); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0D08.s") +static s32 func_808C0CC8(BgZg* this) +{ + s32 flag = this->dyna.actor.params & 0xFF; + return flag; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Update.s") +static void func_808C0CD4(BgZg* this, GlobalContext* globalCtx) +{ + if (func_808C0C98(this, globalCtx) != 0) + { + this->funcIndex = 1; + func_808C0C50(this); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Init.s") +static void func_808C0D08(BgZg* this, GlobalContext* globalCtx) +{ + Actor* thisx = &this->dyna.actor; + + thisx->posRot.pos.y += (kREG(16) + 20.0f) * 1.2f; + if ((((kREG(17) + 200.0f) * 1.2f) + thisx->initPosRot.pos.y) <= thisx->posRot.pos.y) + { + Actor_Kill(thisx); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Zg/func_808C0EEC.s") +static void BgZg_Update(BgZg *this,GlobalContext *globalCtx) +{ + s32 funcIndex = this->funcIndex; + + if (((funcIndex < 0) || (1 < funcIndex)) || (funcTbl[funcIndex] == NULL)) + { + // Translates to: "Main Mode is wrong!!!!!!!!!!!!!!!!!!!!!!!!!" + osSyncPrintf(VT_FGCOL(RED) "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST); + } + else + { + funcTbl[funcIndex](&this->dyna.actor, globalCtx); + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Zg/BgZg_Draw.s") +} + +static void BgZg_Init(BgZg* this, GlobalContext* globalCtx) { + s32 sp20[2]; + Actor* thisx = &this->dyna.actor; + u32 local_c; + + Actor_ProcessInitChain(thisx, initChain); + DynaPolyInfo_SetActorMove(thisx, DPM_UNK); + local_c = 0; + DynaPolyInfo_Alloc(&D_060011D4, &local_c); + this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, thisx, local_c); + if ((func_808C0CC8(this) == 8) || (func_808C0CC8(this) == 9)) + { + thisx->scale.x = thisx->scale.x * 1.3f; + thisx->scale.z = thisx->scale.z * 1.3f; + thisx->scale.y = thisx->scale.y * 1.2f; + } + + else + { + + } + + this->funcIndex = 0; + this->unk_168 = 0; + if (func_808C0C98(this, globalCtx) != 0) + { + Actor_Kill(thisx); + } +} + +static void func_808C0EEC(BgZg* this, GlobalContext* globalCtx) +{ + + GraphicsContext* gfxCtx; + GraphicsContext* tempgfxCtx; // oddly needs this to match + Gfx* gfxArr[4]; + + tempgfxCtx = globalCtx->state.gfxCtx; + gfxCtx = tempgfxCtx; + func_800C6AC4(gfxArr, gfxCtx, "../z_bg_zg.c", 311); + + func_80093D18(gfxCtx); + gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(gfxCtx, "../z_bg_zg.c", 315), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + gSPDisplayList(gfxCtx->polyOpa.p++, &D_06001080); + func_800C6B54(gfxArr, gfxCtx, "../z_bg_zg.c", 320); +} + +static void BgZg_Draw(BgZg* this, GlobalContext* globalCtx) +{ + s32 funcIndex = this->unk_168; + + if (((funcIndex < 0) || (0 < funcIndex)) || funcTbl2[funcIndex] == 0) + { + // Translates to: "Drawing mode is wrong !!!!!!!!!!!!!!!!!!!!!!!!!" + osSyncPrintf(VT_FGCOL(RED) "描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST); + } + else + { + funcTbl2[funcIndex](this, globalCtx); + } +} \ No newline at end of file diff --git a/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.h b/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.h index 3a856be401..6d7d6f7dc5 100644 --- a/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.h +++ b/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.h @@ -3,11 +3,13 @@ #include #include +#include typedef struct { - /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x20]; + /* 0x0000 */ DynaPolyActor dyna; + /* 0x0164 */ s32 funcIndex; + /* 0x0168 */ s32 unk_168; } BgZg; // size = 0x016C extern const ActorInit Bg_Zg_InitVars; diff --git a/undefined_syms.txt b/undefined_syms.txt index b36919f649..8583d3a7f7 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -412,3 +412,6 @@ D_060009E0 = 0x060009E0; // z_bg_toki_swd D_06001BD0 = 0x06001BD0; +// z_bg_zg +D_060011D4 = 0x060011D4; +D_06001080 = 0x06001080;