diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/DemoGj_Draw.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/DemoGj_Draw.s deleted file mode 100644 index a3d1d0cdef..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/DemoGj_Draw.s +++ /dev/null @@ -1,36 +0,0 @@ -.rdata -glabel D_8097C164 - .asciz "\x1b[31m描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n\x1b[m" - .balign 4 - -.text -glabel DemoGj_Draw -/* 0344C 8097BD7C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 03450 8097BD80 AFBF0014 */ sw $ra, 0x0014($sp) -/* 03454 8097BD84 8C820168 */ lw $v0, 0x0168($a0) ## 00000168 -/* 03458 8097BD88 04400008 */ bltz $v0, .L8097BDAC -/* 0345C 8097BD8C 28410013 */ slti $at, $v0, 0x0013 -/* 03460 8097BD90 10200006 */ beq $at, $zero, .L8097BDAC -/* 03464 8097BD94 00027080 */ sll $t6, $v0, 2 -/* 03468 8097BD98 3C038098 */ lui $v1, %hi(D_8097BF24) ## $v1 = 80980000 -/* 0346C 8097BD9C 006E1821 */ addu $v1, $v1, $t6 -/* 03470 8097BDA0 8C63BF24 */ lw $v1, %lo(D_8097BF24)($v1) -/* 03474 8097BDA4 14600006 */ bne $v1, $zero, .L8097BDC0 -/* 03478 8097BDA8 00000000 */ nop -.L8097BDAC: -/* 0347C 8097BDAC 3C048098 */ lui $a0, %hi(D_8097C164) ## $a0 = 80980000 -/* 03480 8097BDB0 0C00084C */ jal osSyncPrintf - -/* 03484 8097BDB4 2484C164 */ addiu $a0, $a0, %lo(D_8097C164) ## $a0 = 8097C164 -/* 03488 8097BDB8 10000004 */ beq $zero, $zero, .L8097BDCC -/* 0348C 8097BDBC 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097BDC0: -/* 03490 8097BDC0 0060F809 */ jalr $ra, $v1 -/* 03494 8097BDC4 00000000 */ nop -/* 03498 8097BDC8 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097BDCC: -/* 0349C 8097BDCC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 034A0 8097BDD0 03E00008 */ jr $ra -/* 034A4 8097BDD4 00000000 */ nop -/* 034A8 8097BDD8 00000000 */ nop -/* 034AC 8097BDDC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/DemoGj_Update.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/DemoGj_Update.s deleted file mode 100644 index 118eeca8cf..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/DemoGj_Update.s +++ /dev/null @@ -1,34 +0,0 @@ -.rdata -glabel D_8097C0E4 - .asciz "\x1b[31mメインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n\x1b[m" - .balign 4 - -.text -glabel DemoGj_Update -/* 032CC 8097BBFC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 032D0 8097BC00 AFBF0014 */ sw $ra, 0x0014($sp) -/* 032D4 8097BC04 8C820164 */ lw $v0, 0x0164($a0) ## 00000164 -/* 032D8 8097BC08 04400008 */ bltz $v0, .L8097BC2C -/* 032DC 8097BC0C 28410015 */ slti $at, $v0, 0x0015 -/* 032E0 8097BC10 10200006 */ beq $at, $zero, .L8097BC2C -/* 032E4 8097BC14 00027080 */ sll $t6, $v0, 2 -/* 032E8 8097BC18 3C038098 */ lui $v1, %hi(D_8097BED0) ## $v1 = 80980000 -/* 032EC 8097BC1C 006E1821 */ addu $v1, $v1, $t6 -/* 032F0 8097BC20 8C63BED0 */ lw $v1, %lo(D_8097BED0)($v1) -/* 032F4 8097BC24 14600006 */ bne $v1, $zero, .L8097BC40 -/* 032F8 8097BC28 00000000 */ nop -.L8097BC2C: -/* 032FC 8097BC2C 3C048098 */ lui $a0, %hi(D_8097C0E4) ## $a0 = 80980000 -/* 03300 8097BC30 0C00084C */ jal osSyncPrintf - -/* 03304 8097BC34 2484C0E4 */ addiu $a0, $a0, %lo(D_8097C0E4) ## $a0 = 8097C0E4 -/* 03308 8097BC38 10000004 */ beq $zero, $zero, .L8097BC4C -/* 0330C 8097BC3C 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097BC40: -/* 03310 8097BC40 0060F809 */ jalr $ra, $v1 -/* 03314 8097BC44 00000000 */ nop -/* 03318 8097BC48 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097BC4C: -/* 0331C 8097BC4C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 03320 8097BC50 03E00008 */ jr $ra -/* 03324 8097BC54 00000000 */ nop diff --git a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c index 2654314b5e..bfb91695f6 100644 --- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c +++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c @@ -51,6 +51,7 @@ void func_8097B370(DemoGj* this, GlobalContext* globalCtx); void func_8097B894(DemoGj* this, GlobalContext* globalCtx); void func_8097BBA8(DemoGj* this, GlobalContext* globalCtx); +extern DemoGjActionFunc D_8097BED0[]; /* static DemoGjActionFunc D_8097BED0[] = { func_8097ADF0, @@ -98,6 +99,7 @@ void func_8097B3A0(DemoGj* this, GlobalContext* globalCtx); void func_8097B8C4(DemoGj* this, GlobalContext* globalCtx); void func_8097BBD8(DemoGj* this, GlobalContext* globalCtx); +extern DemoGjActionFunc D_8097BF24[]; /* static DemoGjActionFunc D_8097BF24[] = { func_8097BD70, @@ -923,7 +925,18 @@ void func_8097BBD8(DemoGj *this, GlobalContext *globalCtx) { func_80979030(this, globalCtx, &D_06003710); } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/DemoGj_Update.s") +void DemoGj_Update(Actor* thisx, GlobalContext* globalCtx) { + DemoGj *this = THIS; + DemoGjActionFunc temp_v1; + + if (this->unk_164 < 0 || this->unk_164 >= 0x15 || (temp_v1 = D_8097BED0[this->unk_164]) == NULL) { + // The main mode is strange!!!!!!!!!!!!!!!!!!!!!!!!! + osSyncPrintf("\x1b[31mメインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n\x1b[m"); + return; + } + + temp_v1(this, globalCtx); +} #ifdef NON_MATCHING /*void DemoGj_Init(Actor* thisx, GlobalContext *globalCtx) { @@ -981,4 +994,15 @@ default: void func_8097BD70(DemoGj *this, GlobalContext *globalCtx) { } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/DemoGj_Draw.s") +void DemoGj_Draw(Actor *thisx, GlobalContext *globalCtx) { + DemoGj *this = THIS; + DemoGjActionFunc temp_v1; + + if (this->unk_168 < 0 || this->unk_168 >= 0x13 || (temp_v1 = D_8097BF24[this->unk_168]) == NULL) { + // The drawing mode is abnormal!!!!!!!!!!!!!!!!!!!!!!!!! + osSyncPrintf("\x1b[31m描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n\x1b[m"); + return; + } + + temp_v1(thisx, globalCtx); +}