diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Destroy.s deleted file mode 100644 index f074826015..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Destroy.s +++ /dev/null @@ -1,14 +0,0 @@ -glabel BgJyaBlock_Destroy -/* 000B4 80894254 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 000B8 80894258 AFA40018 */ sw $a0, 0x0018($sp) -/* 000BC 8089425C 8FAE0018 */ lw $t6, 0x0018($sp) -/* 000C0 80894260 AFBF0014 */ sw $ra, 0x0014($sp) -/* 000C4 80894264 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 000C8 80894268 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810 -/* 000CC 8089426C 0C00FB56 */ jal DynaPolyInfo_Free - ## DynaPolyInfo_delReserve -/* 000D0 80894270 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C -/* 000D4 80894274 8FBF0014 */ lw $ra, 0x0014($sp) -/* 000D8 80894278 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 000DC 8089427C 03E00008 */ jr $ra -/* 000E0 80894280 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Draw.s b/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Draw.s deleted file mode 100644 index 2d692d2df1..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Draw.s +++ /dev/null @@ -1,94 +0,0 @@ -.rdata -glabel D_80894410 - .asciz "../z_bg_jya_block.c" - .balign 4 - -glabel D_80894424 - .asciz "../z_bg_jya_block.c" - .balign 4 - -glabel D_80894438 - .asciz "../z_bg_jya_block.c" - .balign 4 - -.text -glabel BgJyaBlock_Draw -/* 00104 808942A4 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8 -/* 00108 808942A8 AFBF001C */ sw $ra, 0x001C($sp) -/* 0010C 808942AC AFB00018 */ sw $s0, 0x0018($sp) -/* 00110 808942B0 AFA40048 */ sw $a0, 0x0048($sp) -/* 00114 808942B4 AFA5004C */ sw $a1, 0x004C($sp) -/* 00118 808942B8 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000 -/* 0011C 808942BC 3C068089 */ lui $a2, %hi(D_80894410) ## $a2 = 80890000 -/* 00120 808942C0 24C64410 */ addiu $a2, $a2, %lo(D_80894410) ## $a2 = 80894410 -/* 00124 808942C4 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC -/* 00128 808942C8 24070091 */ addiu $a3, $zero, 0x0091 ## $a3 = 00000091 -/* 0012C 808942CC 0C031AB1 */ jal Graph_OpenDisps -/* 00130 808942D0 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 00134 808942D4 8FAF004C */ lw $t7, 0x004C($sp) -/* 00138 808942D8 0C024F46 */ jal func_80093D18 -/* 0013C 808942DC 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000 -/* 00140 808942E0 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00144 808942E4 3C040500 */ lui $a0, 0x0500 ## $a0 = 05000000 -/* 00148 808942E8 24844350 */ addiu $a0, $a0, 0x4350 ## $a0 = 05004350 -/* 0014C 808942EC 00044100 */ sll $t0, $a0, 4 -/* 00150 808942F0 00084F02 */ srl $t1, $t0, 28 -/* 00154 808942F4 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000 -/* 00158 808942F8 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008 -/* 0015C 808942FC AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0 -/* 00160 80894300 37390020 */ ori $t9, $t9, 0x0020 ## $t9 = DB060020 -/* 00164 80894304 00095080 */ sll $t2, $t1, 2 -/* 00168 80894308 3C0B8016 */ lui $t3, %hi(gSegments) -/* 0016C 8089430C 016A5821 */ addu $t3, $t3, $t2 -/* 00170 80894310 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000 -/* 00174 80894314 AC590000 */ sw $t9, 0x0000($v0) ## 00000000 -/* 00178 80894318 8D6B6FA8 */ lw $t3, %lo(gSegments)($t3) -/* 0017C 8089431C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF -/* 00180 80894320 00816024 */ and $t4, $a0, $at -/* 00184 80894324 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 00188 80894328 016C6821 */ addu $t5, $t3, $t4 -/* 0018C 8089432C 01A17021 */ addu $t6, $t5, $at -/* 00190 80894330 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004 -/* 00194 80894334 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00198 80894338 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000 -/* 0019C 8089433C 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003 -/* 001A0 80894340 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008 -/* 001A4 80894344 AE0F02C0 */ sw $t7, 0x02C0($s0) ## 000002C0 -/* 001A8 80894348 AC580000 */ sw $t8, 0x0000($v0) ## 00000000 -/* 001AC 8089434C 8FB9004C */ lw $t9, 0x004C($sp) -/* 001B0 80894350 3C058089 */ lui $a1, %hi(D_80894424) ## $a1 = 80890000 -/* 001B4 80894354 24A54424 */ addiu $a1, $a1, %lo(D_80894424) ## $a1 = 80894424 -/* 001B8 80894358 8F240000 */ lw $a0, 0x0000($t9) ## DB060020 -/* 001BC 8089435C 24060099 */ addiu $a2, $zero, 0x0099 ## $a2 = 00000099 -/* 001C0 80894360 0C0346A2 */ jal Matrix_NewMtx -/* 001C4 80894364 AFA2002C */ sw $v0, 0x002C($sp) -/* 001C8 80894368 8FA3002C */ lw $v1, 0x002C($sp) -/* 001CC 8089436C 3C0AE8D2 */ lui $t2, 0xE8D2 ## $t2 = E8D20000 -/* 001D0 80894370 354AB0FF */ ori $t2, $t2, 0xB0FF ## $t2 = E8D2B0FF -/* 001D4 80894374 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 001D8 80894378 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 001DC 8089437C 3C09FB00 */ lui $t1, 0xFB00 ## $t1 = FB000000 -/* 001E0 80894380 3C0D0500 */ lui $t5, 0x0500 ## $t5 = 05000000 -/* 001E4 80894384 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008 -/* 001E8 80894388 AE0802C0 */ sw $t0, 0x02C0($s0) ## 000002C0 -/* 001EC 8089438C AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004 -/* 001F0 80894390 AC490000 */ sw $t1, 0x0000($v0) ## 00000000 -/* 001F4 80894394 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 001F8 80894398 25AD4CD0 */ addiu $t5, $t5, 0x4CD0 ## $t5 = 05004CD0 -/* 001FC 8089439C 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000 -/* 00200 808943A0 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008 -/* 00204 808943A4 AE0B02C0 */ sw $t3, 0x02C0($s0) ## 000002C0 -/* 00208 808943A8 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004 -/* 0020C 808943AC AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000 -/* 00210 808943B0 8FAE004C */ lw $t6, 0x004C($sp) -/* 00214 808943B4 3C068089 */ lui $a2, %hi(D_80894438) ## $a2 = 80890000 -/* 00218 808943B8 24C64438 */ addiu $a2, $a2, %lo(D_80894438) ## $a2 = 80894438 -/* 0021C 808943BC 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC -/* 00220 808943C0 2407009E */ addiu $a3, $zero, 0x009E ## $a3 = 0000009E -/* 00224 808943C4 0C031AD5 */ jal Graph_CloseDisps -/* 00228 808943C8 8DC50000 */ lw $a1, 0x0000($t6) ## 00000000 -/* 0022C 808943CC 8FBF001C */ lw $ra, 0x001C($sp) -/* 00230 808943D0 8FB00018 */ lw $s0, 0x0018($sp) -/* 00234 808943D4 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000 -/* 00238 808943D8 03E00008 */ jr $ra -/* 0023C 808943DC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Init.s b/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Init.s deleted file mode 100644 index bb563fa5ee..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Init.s +++ /dev/null @@ -1,55 +0,0 @@ -glabel BgJyaBlock_Init -/* 00000 808941A0 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 00004 808941A4 AFBF001C */ sw $ra, 0x001C($sp) -/* 00008 808941A8 AFB00018 */ sw $s0, 0x0018($sp) -/* 0000C 808941AC AFA50034 */ sw $a1, 0x0034($sp) -/* 00010 808941B0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00014 808941B4 AFA00024 */ sw $zero, 0x0024($sp) -/* 00018 808941B8 0C010D20 */ jal DynaPolyInfo_SetActorMove - -/* 0001C 808941BC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00020 808941C0 3C040500 */ lui $a0, 0x0500 ## $a0 = 05000000 -/* 00024 808941C4 24844E98 */ addiu $a0, $a0, 0x4E98 ## $a0 = 05004E98 -/* 00028 808941C8 0C010620 */ jal DynaPolyInfo_Alloc - -/* 0002C 808941CC 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4 -/* 00030 808941D0 8FA40034 */ lw $a0, 0x0034($sp) -/* 00034 808941D4 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 00038 808941D8 8FA70024 */ lw $a3, 0x0024($sp) -/* 0003C 808941DC 0C00FA9D */ jal DynaPolyInfo_RegisterActor - ## DynaPolyInfo_setActor -/* 00040 808941E0 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810 -/* 00044 808941E4 3C058089 */ lui $a1, %hi(D_80894400) ## $a1 = 80890000 -/* 00048 808941E8 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C -/* 0004C 808941EC 24A54400 */ addiu $a1, $a1, %lo(D_80894400) ## $a1 = 80894400 -/* 00050 808941F0 0C01E037 */ jal Actor_ProcessInitChain - -/* 00054 808941F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00058 808941F8 3C0E8016 */ lui $t6, %hi(gSaveContext+4) -/* 0005C 808941FC 8DCEE664 */ lw $t6, %lo(gSaveContext+4)($t6) -/* 00060 80894200 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 00064 80894204 24020011 */ addiu $v0, $zero, 0x0011 ## $v0 = 00000011 -/* 00068 80894208 11C00003 */ beq $t6, $zero, .L80894218 -/* 0006C 8089420C 00000000 */ nop -/* 00070 80894210 10000001 */ beq $zero, $zero, .L80894218 -/* 00074 80894214 24020005 */ addiu $v0, $zero, 0x0005 ## $v0 = 00000005 -.L80894218: -/* 00078 80894218 14410007 */ bne $v0, $at, .L80894238 -/* 0007C 8089421C 00000000 */ nop -/* 00080 80894220 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00084 80894224 8FA40034 */ lw $a0, 0x0034($sp) -/* 00088 80894228 0C00B2D0 */ jal Flags_GetSwitch - -/* 0008C 8089422C 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000 -/* 00090 80894230 54400004 */ bnel $v0, $zero, .L80894244 -/* 00094 80894234 8FBF001C */ lw $ra, 0x001C($sp) -.L80894238: -/* 00098 80894238 0C00B55C */ jal Actor_Kill - -/* 0009C 8089423C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 000A0 80894240 8FBF001C */ lw $ra, 0x001C($sp) -.L80894244: -/* 000A4 80894244 8FB00018 */ lw $s0, 0x0018($sp) -/* 000A8 80894248 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 000AC 8089424C 03E00008 */ jr $ra -/* 000B0 80894250 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Update.s b/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Update.s deleted file mode 100644 index 3d72db0563..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Update.s +++ /dev/null @@ -1,9 +0,0 @@ -glabel BgJyaBlock_Update -/* 000E4 80894284 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44 -/* 000E8 80894288 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF -/* 000EC 8089428C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 000F0 80894290 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680 -/* 000F4 80894294 01C17824 */ and $t7, $t6, $at -/* 000F8 80894298 AC4F0680 */ sw $t7, 0x0680($v0) ## 00000680 -/* 000FC 8089429C 03E00008 */ jr $ra -/* 00100 808942A0 E4840150 */ swc1 $f4, 0x0150($a0) ## 00000150 diff --git a/data/overlays/actors/z_bg_jya_block.data.s b/data/overlays/actors/z_bg_jya_block.data.s deleted file mode 100644 index 58bf32963b..0000000000 --- a/data/overlays/actors/z_bg_jya_block.data.s +++ /dev/null @@ -1,20 +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 purpose registers - -.section .data - -.balign 16 - -glabel Bg_Jya_Block_InitVars - .word 0x01D50600, 0x00000000, 0x00030000, 0x00000164 -.word BgJyaBlock_Init -.word BgJyaBlock_Destroy -.word BgJyaBlock_Update -.word BgJyaBlock_Draw -glabel D_80894400 - .word 0xC850014D, 0xB0F40708, 0xB0F801F4, 0x30FC05DC - diff --git a/data/overlays/actors/z_bg_jya_block.reloc.s b/data/overlays/actors/z_bg_jya_block.reloc.s deleted file mode 100644 index af6ff86789..0000000000 --- a/data/overlays/actors/z_bg_jya_block.reloc.s +++ /dev/null @@ -1,13 +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 purpose registers - -.section .rodata - -.balign 16 - -glabel D_80894450 - .incbin "baserom/ovl_Bg_Jya_Block", 0x2B0, 0x00000050 diff --git a/spec b/spec index 884cdc2045..dd8017025b 100644 --- a/spec +++ b/spec @@ -983,8 +983,7 @@ endseg beginseg name "ovl_Bg_Jya_Block" include "build/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.o" - include "build/data/overlays/actors/z_bg_jya_block.data.o" - include "build/data/overlays/actors/z_bg_jya_block.reloc.o" + include "build/src/overlays/actors/ovl_Bg_Jya_Block/ovl_Bg_Jya_Block_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c b/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c index 6abf8fe6d4..1231ab962e 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c +++ b/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c @@ -15,7 +15,6 @@ void BgJyaBlock_Destroy(Actor* thisx, GlobalContext* globalCtx); void BgJyaBlock_Update(Actor* thisx, GlobalContext* globalCtx); void BgJyaBlock_Draw(Actor* thisx, GlobalContext* globalCtx); -/* const ActorInit Bg_Jya_Block_InitVars = { ACTOR_BG_JYA_BLOCK, ACTORTYPE_PROP, @@ -27,11 +26,59 @@ const ActorInit Bg_Jya_Block_InitVars = { (ActorFunc)BgJyaBlock_Update, (ActorFunc)BgJyaBlock_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Init.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Destroy.s") +static InitChainEntry sInitChain[] = { + ICHAIN_VEC3F_DIV1000(scale, 333, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 1800, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Update.s") +extern UNK_TYPE D_05004350; +extern Gfx D_05004CD0[]; +extern UNK_TYPE D_05004E98; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Block/BgJyaBlock_Draw.s") +void BgJyaBlock_Init(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + BgJyaBlock* this = THIS; + s32 localC = 0; + + DynaPolyInfo_SetActorMove(&this->dyna, 0); + DynaPolyInfo_Alloc(&D_05004E98, &localC); + this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, localC); + Actor_ProcessInitChain(&this->dyna.actor, sInitChain); + + if ((LINK_AGE_IN_YEARS != YEARS_CHILD) || !Flags_GetSwitch(globalCtx, thisx->params & 0x3F)) { + Actor_Kill(&this->dyna.actor); + } +} + +void BgJyaBlock_Destroy(Actor* thisx, GlobalContext* globalCtx) { + BgJyaBlock* this = THIS; + + DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); +} + +void BgJyaBlock_Update(Actor* thisx, GlobalContext* globalCtx) { + BgJyaBlock* this = THIS; + Player* player = PLAYER; + + player->stateFlags2 &= ~0x10; + this->dyna.unk_150 = 0.0f; +} + +void BgJyaBlock_Draw(Actor* thisx, GlobalContext* globalCtx) { + GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; + Gfx* dispRefs[4]; + + Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_jya_block.c", 145); + func_80093D18(globalCtx->state.gfxCtx); + + gSPSegment(gfxCtx->polyOpa.p++, 0x08, SEGMENTED_TO_VIRTUAL(&D_05004350)); + gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_jya_block.c", 153), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gDPSetEnvColor(gfxCtx->polyOpa.p++, 232, 210, 176, 255); + gSPDisplayList(gfxCtx->polyOpa.p++, D_05004CD0); + + Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_jya_block.c", 158); +} diff --git a/undefined_syms.txt b/undefined_syms.txt index 7bb976d543..8158341114 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -210,6 +210,11 @@ D_060001F0 = 0x060001F0; D_0600C0A0 = 0x0600C0A0; D_0600C4C8 = 0x0600C4C8; +// z_bg_jya_block +D_05004350 = 0x05004350; +D_05004CD0 = 0x05004CD0; +D_05004E98 = 0x05004E98; + // z_bg_jya_kanaami D_0600F000 = 0x0600F000; D_0600F208 = 0x0600F208;