1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 12:54:51 +00:00

Decompiled ovl_Bg_Spot17_Funen (#67)

* First steps

* Decompiled ovl_Bg_Spot17_Funen

* static functions no more
This commit is contained in:
Ethan Roseman 2020-04-13 19:30:01 -04:00 committed by GitHub
parent 298abfb128
commit 16646aa34d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 51 additions and 212 deletions

View File

@ -1,6 +0,0 @@
glabel BgSpot17Funen_Destroy
/* 00040 808B7440 AFA40000 */ sw $a0, 0x0000($sp)
/* 00044 808B7444 03E00008 */ jr $ra
/* 00048 808B7448 AFA50004 */ sw $a1, 0x0004($sp)

View File

@ -1,21 +0,0 @@
glabel BgSpot17Funen_Init
/* 00000 808B7400 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00004 808B7404 AFA5001C */ sw $a1, 0x001C($sp)
/* 00008 808B7408 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0000C 808B740C 3C05808B */ lui $a1, %hi(D_808B7620) ## $a1 = 808B0000
/* 00010 808B7410 AFA40018 */ sw $a0, 0x0018($sp)
/* 00014 808B7414 0C01E037 */ jal Actor_ProcessInitChain
/* 00018 808B7418 24A57620 */ addiu $a1, $a1, %lo(D_808B7620) ## $a1 = 808B7620
/* 0001C 808B741C 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00020 808B7420 3C04808B */ lui $a0, %hi(D_808B7630) ## $a0 = 808B0000
/* 00024 808B7424 24847630 */ addiu $a0, $a0, %lo(D_808B7630) ## $a0 = 808B7630
/* 00028 808B7428 0C00084C */ jal osSyncPrintf
/* 0002C 808B742C 85C5001C */ lh $a1, 0x001C($t6) ## 0000001C
/* 00030 808B7430 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00034 808B7434 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00038 808B7438 03E00008 */ jr $ra
/* 0003C 808B743C 00000000 */ nop

View File

@ -1,11 +0,0 @@
glabel BgSpot17Funen_Update
/* 0004C 808B744C 3C0E808B */ lui $t6, %hi(func_808B7478) ## $t6 = 808B0000
/* 00050 808B7450 3C0F808B */ lui $t7, %hi(func_808B746C) ## $t7 = 808B0000
/* 00054 808B7454 AFA50004 */ sw $a1, 0x0004($sp)
/* 00058 808B7458 25CE7478 */ addiu $t6, $t6, %lo(func_808B7478) ## $t6 = 808B7478
/* 0005C 808B745C 25EF746C */ addiu $t7, $t7, %lo(func_808B746C) ## $t7 = 808B746C
/* 00060 808B7460 AC8E0134 */ sw $t6, 0x0134($a0) ## 00000134
/* 00064 808B7464 03E00008 */ jr $ra
/* 00068 808B7468 AC8F0130 */ sw $t7, 0x0130($a0) ## 00000130

View File

@ -1,6 +0,0 @@
glabel func_808B746C
/* 0006C 808B746C AFA40000 */ sw $a0, 0x0000($sp)
/* 00070 808B7470 03E00008 */ jr $ra
/* 00074 808B7474 AFA50004 */ sw $a1, 0x0004($sp)

View File

@ -1,100 +0,0 @@
glabel func_808B7478
/* 00078 808B7478 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90
/* 0007C 808B747C AFB10038 */ sw $s1, 0x0038($sp)
/* 00080 808B7480 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00084 808B7484 AFBF003C */ sw $ra, 0x003C($sp)
/* 00088 808B7488 AFB00034 */ sw $s0, 0x0034($sp)
/* 0008C 808B748C AFA40070 */ sw $a0, 0x0070($sp)
/* 00090 808B7490 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00094 808B7494 3C06808B */ lui $a2, %hi(D_808B7654) ## $a2 = 808B0000
/* 00098 808B7498 24C67654 */ addiu $a2, $a2, %lo(D_808B7654) ## $a2 = 808B7654
/* 0009C 808B749C 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFE8
/* 000A0 808B74A0 24070099 */ addiu $a3, $zero, 0x0099 ## $a3 = 00000099
/* 000A4 808B74A4 0C031AB1 */ jal Graph_OpenDisps
/* 000A8 808B74A8 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 000AC 808B74AC 0C024F61 */ jal func_80093D84
/* 000B0 808B74B0 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 000B4 808B74B4 862E07A0 */ lh $t6, 0x07A0($s1) ## 000007A0
/* 000B8 808B74B8 000E7880 */ sll $t7, $t6, 2
/* 000BC 808B74BC 022FC021 */ addu $t8, $s1, $t7
/* 000C0 808B74C0 0C016A7D */ jal func_8005A9F4
/* 000C4 808B74C4 8F040790 */ lw $a0, 0x0790($t8) ## 00000790
/* 000C8 808B74C8 8FB90070 */ lw $t9, 0x0070($sp)
/* 000CC 808B74CC 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 000D0 808B74D0 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 000D4 808B74D4 872800B6 */ lh $t0, 0x00B6($t9) ## 000000B6
/* 000D8 808B74D8 00484823 */ subu $t1, $v0, $t0
/* 000DC 808B74DC 01215021 */ addu $t2, $t1, $at
/* 000E0 808B74E0 000A5C00 */ sll $t3, $t2, 16
/* 000E4 808B74E4 000B6403 */ sra $t4, $t3, 16
/* 000E8 808B74E8 448C2000 */ mtc1 $t4, $f4 ## $f4 = 0.00
/* 000EC 808B74EC 3C01808B */ lui $at, %hi(D_808B769C) ## $at = 808B0000
/* 000F0 808B74F0 C428769C */ lwc1 $f8, %lo(D_808B769C)($at)
/* 000F4 808B74F4 468021A0 */ cvt.s.w $f6, $f4
/* 000F8 808B74F8 46083302 */ mul.s $f12, $f6, $f8
/* 000FC 808B74FC 0C034348 */ jal Matrix_RotateY
/* 00100 808B7500 00000000 */ nop
/* 00104 808B7504 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00108 808B7508 3C0EDA38 */ lui $t6, 0xDA38 ## $t6 = DA380000
/* 0010C 808B750C 35CE0003 */ ori $t6, $t6, 0x0003 ## $t6 = DA380003
/* 00110 808B7510 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 00114 808B7514 AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
/* 00118 808B7518 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 0011C 808B751C 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00120 808B7520 3C05808B */ lui $a1, %hi(D_808B766C) ## $a1 = 808B0000
/* 00124 808B7524 24A5766C */ addiu $a1, $a1, %lo(D_808B766C) ## $a1 = 808B766C
/* 00128 808B7528 240600A1 */ addiu $a2, $zero, 0x00A1 ## $a2 = 000000A1
/* 0012C 808B752C 0C0346A2 */ jal Matrix_NewMtx
/* 00130 808B7530 AFA20054 */ sw $v0, 0x0054($sp)
/* 00134 808B7534 8FA30054 */ lw $v1, 0x0054($sp)
/* 00138 808B7538 3C18DB06 */ lui $t8, 0xDB06 ## $t8 = DB060000
/* 0013C 808B753C 37180020 */ ori $t8, $t8, 0x0020 ## $t8 = DB060020
/* 00140 808B7540 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00144 808B7544 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00148 808B7548 3C070001 */ lui $a3, 0x0001 ## $a3 = 00010000
/* 0014C 808B754C 00F13821 */ addu $a3, $a3, $s1
/* 00150 808B7550 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00154 808B7554 AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
/* 00158 808B7558 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 0015C 808B755C 8CE71DE4 */ lw $a3, 0x1DE4($a3) ## 00011DE4
/* 00160 808B7560 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00164 808B7564 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
/* 00168 808B7568 00073823 */ subu $a3, $zero, $a3
/* 0016C 808B756C 30E7007F */ andi $a3, $a3, 0x007F ## $a3 = 00000000
/* 00170 808B7570 24080020 */ addiu $t0, $zero, 0x0020 ## $t0 = 00000020
/* 00174 808B7574 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001
/* 00178 808B7578 240A0020 */ addiu $t2, $zero, 0x0020 ## $t2 = 00000020
/* 0017C 808B757C 240B0020 */ addiu $t3, $zero, 0x0020 ## $t3 = 00000020
/* 00180 808B7580 AFAB0028 */ sw $t3, 0x0028($sp)
/* 00184 808B7584 AFAA0024 */ sw $t2, 0x0024($sp)
/* 00188 808B7588 AFA90018 */ sw $t1, 0x0018($sp)
/* 0018C 808B758C AFA80014 */ sw $t0, 0x0014($sp)
/* 00190 808B7590 AFA70020 */ sw $a3, 0x0020($sp)
/* 00194 808B7594 AFB90010 */ sw $t9, 0x0010($sp)
/* 00198 808B7598 AFA0001C */ sw $zero, 0x001C($sp)
/* 0019C 808B759C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 001A0 808B75A0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 001A4 808B75A4 0C0253D0 */ jal Gfx_TwoTexScroll
/* 001A8 808B75A8 AFA20050 */ sw $v0, 0x0050($sp)
/* 001AC 808B75AC 8FA30050 */ lw $v1, 0x0050($sp)
/* 001B0 808B75B0 3C0E0600 */ lui $t6, 0x0600 ## $t6 = 06000000
/* 001B4 808B75B4 25CE0B40 */ addiu $t6, $t6, 0x0B40 ## $t6 = 06000B40
/* 001B8 808B75B8 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 001BC 808B75BC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 001C0 808B75C0 3C0DDE00 */ lui $t5, 0xDE00 ## $t5 = DE000000
/* 001C4 808B75C4 3C06808B */ lui $a2, %hi(D_808B7684) ## $a2 = 808B0000
/* 001C8 808B75C8 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 001CC 808B75CC AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
/* 001D0 808B75D0 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 001D4 808B75D4 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 001D8 808B75D8 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 001DC 808B75DC 24C67684 */ addiu $a2, $a2, %lo(D_808B7684) ## $a2 = 808B7684
/* 001E0 808B75E0 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFE8
/* 001E4 808B75E4 0C031AD5 */ jal Graph_CloseDisps
/* 001E8 808B75E8 240700B0 */ addiu $a3, $zero, 0x00B0 ## $a3 = 000000B0
/* 001EC 808B75EC 8FBF003C */ lw $ra, 0x003C($sp)
/* 001F0 808B75F0 8FB00034 */ lw $s0, 0x0034($sp)
/* 001F4 808B75F4 8FB10038 */ lw $s1, 0x0038($sp)
/* 001F8 808B75F8 03E00008 */ jr $ra
/* 001FC 808B75FC 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000

View File

@ -1,18 +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 Bg_Spot17_Funen_InitVars
.word 0x00BF0000, 0x00000030, 0x00B10000, 0x0000014C
.word BgSpot17Funen_Init
.word BgSpot17Funen_Destroy
.word BgSpot17Funen_Update
.word 0x00000000
glabel D_808B7620
.word 0x48500064, 0x00000000, 0x00000000, 0x00000000

View File

@ -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_808B76A0
.incbin "baserom/ovl_Bg_Spot17_Funen", 0x2A0, 0x00000070

View File

@ -1,29 +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_808B7630
.asciz "spot17 obj. (arg_data 0x%04x)\n"
.balign 4
glabel D_808B7654
.asciz "../z_bg_spot17_funen.c"
.balign 4
glabel D_808B766C
.asciz "../z_bg_spot17_funen.c"
.balign 4
glabel D_808B7684
.asciz "../z_bg_spot17_funen.c"
.balign 4
glabel D_808B769C
.word 0x38C90FDB

4
spec
View File

@ -1506,9 +1506,7 @@ endseg
beginseg
name "ovl_Bg_Spot17_Funen"
include "build/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.o"
include "build/data/overlays/actors/z_bg_spot17_funen.data.o"
include "build/data/overlays/actors/z_bg_spot17_funen.rodata.o"
include "build/data/overlays/actors/z_bg_spot17_funen.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen_reloc.o"
endseg
beginseg

View File

@ -1,3 +1,9 @@
/*
* File: z_bg_spot17_funen.c
* Overlay: ovl_Bg_Spot17_Funen
* Description:
*/
#include "z_bg_spot17_funen.h"
#define ROOM 0x00
@ -7,7 +13,9 @@ void BgSpot17Funen_Init(BgSpot17Funen* this, GlobalContext* globalCtx);
void BgSpot17Funen_Destroy(BgSpot17Funen* this, GlobalContext* globalCtx);
void BgSpot17Funen_Update(BgSpot17Funen* this, GlobalContext* globalCtx);
/*
void func_808B7478(BgSpot17Funen* this, GlobalContext* globalCtx);
void func_808B746C(BgSpot17Funen* this, GlobalContext* globalCtx);
const ActorInit Bg_Spot17_Funen_InitVars = {
ACTOR_BG_SPOT17_FUNEN,
ACTORTYPE_SWITCH,
@ -20,13 +28,48 @@ const ActorInit Bg_Spot17_Funen_InitVars = {
(ActorFunc)BgSpot17Funen_Update,
NULL,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot17_Funen/BgSpot17Funen_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot17_Funen/BgSpot17Funen_Destroy.s")
static InitChainEntry initChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot17_Funen/BgSpot17Funen_Update.s")
extern Gfx D_06000B40[];
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot17_Funen/func_808B746C.s")
void BgSpot17Funen_Init(BgSpot17Funen* this, GlobalContext* globalCtx) {
Actor_ProcessInitChain(&this->actor, initChain);
osSyncPrintf("spot17 obj. 噴煙 (arg_data 0x%04x)\n", this->actor.params);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot17_Funen/func_808B7478.s")
void BgSpot17Funen_Destroy(BgSpot17Funen* this, GlobalContext* globalCtx) {
}
void BgSpot17Funen_Update(BgSpot17Funen* this, GlobalContext* globalCtx) {
this->actor.draw = (ActorFunc)func_808B7478;
this->actor.update = (ActorFunc)func_808B746C;
}
void func_808B746C(BgSpot17Funen* this, GlobalContext* globalCtx) {
}
void func_808B7478(BgSpot17Funen* this, GlobalContext* globalCtx) {
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* dispRefs[5];
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_spot17_funen.c", 153);
func_80093D84(globalCtx->state.gfxCtx);
Matrix_RotateY((s16)(func_8005A9F4(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0]) -
this->actor.shape.rot.y + 0x8000) *
9.58738019108e-05f,
MTXMODE_APPLY);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_spot17_funen.c", 161),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(gfxCtx->polyXlu.p++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, (0 - globalCtx->gameplayFrames) & 0x7F, 0x20, 0x20, 1, 0,
(0 - globalCtx->gameplayFrames) & 0x7F, 0x20, 0x20));
do {
gSPDisplayList(gfxCtx->polyXlu.p++, D_06000B40);
} while (0); // necessary to match
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_spot17_funen.c", 176);
}