Decomped sub_02009F9C

Decomped by @JesusArcasCarrera
This commit is contained in:
AnonymousRandomPerson
2026-04-26 23:23:09 -04:00
parent 576de098c3
commit cf38ea6eb9
7 changed files with 2314 additions and 2327 deletions

View File

@@ -1,20 +1,11 @@
#pragma once
.public ArrayFill32Fast
.public CART_REMOVED_IMG_DATA
.public DC_FlushRange
.public Debug_Print0
.public DecompressAtFromMemoryPointer
.public G2x_SetBlendAlpha_
.public G3X_ClearFifo
.public G3X_Init
.public G3X_SetClearColor
.public GXS_BeginLoadBGExtPltt
.public GXS_BeginLoadOBJExtPltt
.public GXS_EndLoadBGExtPltt
.public GXS_EndLoadOBJExtPltt
.public GXS_SetGraphicsMode
.public GX_BeginLoadBGExtPltt
.public GX_BeginLoadOBJExtPltt
.public GX_DisableBankForBG
.public GX_DisableBankForBGExtPltt
.public GX_DisableBankForLCDC
@@ -27,8 +18,6 @@
.public GX_DisableBankForTexPltt
.public GX_DispOff
.public GX_DispOn
.public GX_EndLoadBGExtPltt
.public GX_EndLoadOBJExtPltt
.public GX_Init
.public GX_SetBankForBG
.public GX_SetBankForBGExtPltt
@@ -43,31 +32,15 @@
.public GX_SetGraphicsMode
.public GXi_DmaId
.public GXx_SetMasterBrightness_
.public GetLanguage
.public MI_StopDma
.public MemAlloc
.public MemFree
.public MemZero16
.public MemZero32
.public Memcpy32
.public MemcpySimple
.public Rgb8ToRgb5
.public UnloadFile
.public _0200A314
.public _0200A344
.public _02092A04
.public _02092A18
.public _02092A38
.public _02092A58
.public _02092A78
.public _02092A98
.public _02092AB8
.public _02092AD8
.public _02094AE8
.public _02094AF0
.public _020AF694
.public _020AFF38_EU
.public _020AFF3C_EU
.public _022A37A0
.public _022A37A4
.public _022A37AC
@@ -92,7 +65,6 @@
.public _022A37EF
.public _022A37F0
.public _022A37F1
.public _022A37F2
.public _022A37F3
.public _022A37F4
.public _022A37F5
@@ -113,13 +85,9 @@
.public _022A3804
.public _022A3805
.public _022A3806
.public _s32_div_f
.public sub_02004FF8
.public sub_02005D30
.public sub_02005E10
.public sub_0200844C
.public sub_0200846C
.public sub_02008980
.public sub_02008A84
.public sub_02019304
.public sub_02009F9C
.public sub_02082420

View File

@@ -0,0 +1,49 @@
#pragma once
.public ArrayFill32Fast
.public CART_REMOVED_IMG_DATA
.public DC_FlushRange
.public DecompressAtFromMemoryPointer
.public GXS_BeginLoadBGExtPltt
.public GXS_BeginLoadOBJExtPltt
.public GXS_EndLoadBGExtPltt
.public GXS_EndLoadOBJExtPltt
.public GXS_SetGraphicsMode
.public GX_BeginLoadBGExtPltt
.public GX_BeginLoadOBJExtPltt
.public GX_DisableBankForBG
.public GX_DisableBankForBGExtPltt
.public GX_DisableBankForOBJ
.public GX_DisableBankForOBJExtPltt
.public GX_DisableBankForSubBG
.public GX_DisableBankForSubBGExtPltt
.public GX_DisableBankForSubOBJ
.public GX_DisableBankForTex
.public GX_DisableBankForTexPltt
.public GX_DispOff
.public GX_DispOn
.public GX_EndLoadBGExtPltt
.public GX_EndLoadOBJExtPltt
.public GX_SetBankForLCDC
.public GX_SetGraphicsMode
.public GXx_SetMasterBrightness_
.public GetLanguage
.public LoadFileFromRom
.public MI_StopDma
.public MemAlloc
.public MemFree
.public Memcpy32
.public MemcpySimple
.public Rgb8ToRgb5
.public UnloadFile
.public _0200A314
.public _0200A344
.public _02092AD8
.public _02094AE8
.public _02094AF0
.public _020AFF38_EU
.public _020AFF3C_EU
.public _s32_div_f
.public sub_02004FF8
.public sub_02005D30
.public sub_02005E10
.public sub_02019304

File diff suppressed because it is too large Load Diff

2193
asm/main_0200A124.s Normal file

File diff suppressed because it is too large Load Diff

6
include/main_02009F9C.h Normal file
View File

@@ -0,0 +1,6 @@
#ifndef PMDSKY_MAIN_02009F9C_H
#define PMDSKY_MAIN_02009F9C_H
void sub_02009F9C(s32 arg0);
#endif //PMDSKY_MAIN_02009F9C_H

View File

@@ -32,6 +32,8 @@ Static main
Object asm/main_020082C4.o
Object src/main_02008BD4.o
Object asm/main_02008BF4.o
Object src/main_02009F9C.o
Object asm/main_0200A124.o
Object src/main_0200BC54.o
Object asm/main_0200BC60.o
Object src/main_0200BD2C.o

63
src/main_02009F9C.c Normal file
View File

@@ -0,0 +1,63 @@
#include "main_02009F9C.h"
extern s32 _02092A04[];
extern u8 _022A37EC[];
extern u8 _022A37ED[];
extern u8 _022A37EE[];
extern u8 _022A37EF[];
extern u8 _022A37F0[];
extern u8 _022A37F1[];
extern u8 _022A37F2[];
extern void sub_02009B98(s32, u8);
extern void sub_02009BC0(s32, u8);
extern void sub_02009BE8(s32, u8);
extern void sub_02009C10(s32, u8);
extern void sub_02009CA8(s32, u8);
extern void sub_02009CD0(s32, u8);
extern void sub_02009CF8(s32, u8);
extern void sub_02009D20(s32, u8);
void sub_02009F9C(s32 arg0)
{
s32 offset;
s32 var_r2;
s32 var_r3;
s32 var_r5;
s32 var_r6;
u8 var_ip;
offset = arg0 * 0x1B;
var_r2 = 0;
if (_022A37EC[offset] != 0) {
var_r2 |= 1;
}
var_ip = var_r6 = var_r5 = var_r3 = 0;
if (_022A37ED[offset] != 0) {
var_r2 |= 2;
}
if (_022A37EE[offset] != 0) {
var_r2 |= 4;
}
do {
if (_022A37EC[offset + var_ip + 7] != 0) var_r3 |= _02092A04[var_ip];
if (_022A37EC[offset + var_ip + 12] != 0) var_r3 |= _02092A04[var_ip];
if (_022A37EC[offset + var_ip + 22] != 0) var_r6 |= _02092A04[var_ip];
if (_022A37EC[offset + var_ip + 17] != 0) var_r5 |= _02092A04[var_ip];
var_ip++;
} while (var_ip < 5U);
if (arg0 == 0) {
*(s32*)0x04000000 = (*(s32*)0x04000000 & ~0xE000) | (var_r2 << 0xD);
sub_02009B98(var_r3, _022A37EF[offset]);
sub_02009BC0(0, _022A37F0[offset]);
sub_02009BE8(var_r5, _022A37F1[offset]);
sub_02009C10(var_r6, _022A37F2[offset]);
return;
}
*(s32*)0x04001000 = (*(s32*)0x04001000 & ~0xE000) | (var_r2 << 0xD);
sub_02009CA8(var_r3, _022A37EF[offset]);
sub_02009CD0(0, _022A37F0[offset]);
sub_02009CF8(var_r5, _022A37F1[offset]);
sub_02009D20(var_r6, _022A37F2[offset]);
}