mirror of
https://github.com/pret/pmd-sky.git
synced 2026-08-24 03:25:17 -05:00
Decomped sub_02009F9C
Decomped by @JesusArcasCarrera
This commit is contained in:
@@ -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
|
||||
|
||||
49
asm/include/main_0200A124.inc
Normal file
49
asm/include/main_0200A124.inc
Normal 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
|
||||
2294
asm/main_02008BF4.s
2294
asm/main_02008BF4.s
File diff suppressed because it is too large
Load Diff
2193
asm/main_0200A124.s
Normal file
2193
asm/main_0200A124.s
Normal file
File diff suppressed because it is too large
Load Diff
6
include/main_02009F9C.h
Normal file
6
include/main_02009F9C.h
Normal 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
|
||||
2
main.lsf
2
main.lsf
@@ -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
63
src/main_02009F9C.c
Normal 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]);
|
||||
}
|
||||
Reference in New Issue
Block a user