1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

Decompiled ovl_Bg_Jya_Block (#286)

* Decompiled ovl_Bg_Jya_Block

* PR comments
This commit is contained in:
Ethan Roseman 2020-07-22 23:44:18 -04:00 committed by GitHub
parent 8a309a4e19
commit 5f3f065aa7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 59 additions and 213 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

3
spec
View File

@ -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

View File

@ -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);
}

View File

@ -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;