mirror of
https://github.com/pret/pmd-sky.git
synced 2026-04-26 00:26:19 -05:00
Decomped NitroMain
Decomped by @SethBarberee
This commit is contained in:
parent
7f86d700fc
commit
c72517ecd3
|
|
@ -1,8 +1,6 @@
|
|||
#pragma once
|
||||
.public CardPullOut
|
||||
.public ClearIrqFlag
|
||||
.public Debug_FatalError
|
||||
.public Debug_Init
|
||||
.public Debug_Print0
|
||||
.public GX_DispOff
|
||||
.public GX_VBlankIntr
|
||||
|
|
@ -26,8 +24,6 @@
|
|||
.public _02090BC8
|
||||
.public _02090BFC
|
||||
.public _02090C48
|
||||
.public _02092448
|
||||
.public _02092460
|
||||
.public _02092464
|
||||
.public _020924D8
|
||||
.public _020924E8
|
||||
|
|
@ -67,7 +63,6 @@
|
|||
.public _fadd
|
||||
.public _fflt
|
||||
.public _fmul
|
||||
.public sub_02003ECC
|
||||
.public sub_020059A8
|
||||
.public sub_02005EAC
|
||||
.public sub_02006098
|
||||
|
|
@ -75,8 +70,6 @@
|
|||
.public sub_02006DEC
|
||||
.public sub_020081C8
|
||||
.public sub_020082E0
|
||||
.public sub_020082F4
|
||||
.public sub_02008DAC
|
||||
.public sub_02017D20
|
||||
.public sub_02017DB4
|
||||
.public sub_02017FF0
|
||||
|
|
@ -85,8 +78,6 @@
|
|||
.public sub_02018278
|
||||
.public sub_02018428
|
||||
.public sub_0201849C
|
||||
.public sub_0204A5D0
|
||||
.public sub_02076070
|
||||
.public sub_02078A98
|
||||
.public sub_02078C68
|
||||
.public sub_02079844
|
||||
|
|
@ -102,26 +93,13 @@
|
|||
.public sub_0207A048
|
||||
.public sub_0207A0CC
|
||||
.public sub_0207A164
|
||||
.public sub_0207A220
|
||||
.public sub_0207A30C
|
||||
.public sub_0207A36C
|
||||
.public sub_0207A524
|
||||
.public sub_0207A538
|
||||
.public sub_0207A6EC
|
||||
.public sub_0207A95C
|
||||
.public sub_0207A98C
|
||||
.public sub_0207AA34
|
||||
.public sub_0207AD54
|
||||
.public sub_0207B370
|
||||
.public sub_0207B4A4
|
||||
.public sub_0207B4B8
|
||||
.public sub_0207B584
|
||||
.public sub_0207B930
|
||||
.public sub_0207B9EC
|
||||
.public sub_0207F3BC
|
||||
.public sub_020820E8
|
||||
.public sub_02082420
|
||||
.public sub_020833F8
|
||||
.public sub_02083434
|
||||
.public sub_02083450
|
||||
.public sub_0208346C
|
||||
|
|
@ -1,108 +1,8 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "main_02000C6C.inc"
|
||||
.include "main_02000DE0.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start NitroMain
|
||||
NitroMain: ; 0x02000C6C
|
||||
stmdb sp!, {r4, lr}
|
||||
sub sp, sp, #8
|
||||
bl sub_0207A36C
|
||||
mov r0, #0x12
|
||||
bl sub_020833F8
|
||||
ldr r0, _02000DD0 ; =sub_020024D4
|
||||
bl sub_020845D8
|
||||
bl sub_0207AD54
|
||||
bl sub_02076070
|
||||
mvn r0, #0
|
||||
bl sub_0207F3BC
|
||||
bl sub_0207A220
|
||||
bl sub_0207A30C
|
||||
mov r0, #0
|
||||
bl sub_0207A524
|
||||
mov r4, r0
|
||||
mov r0, #0
|
||||
bl sub_0207A538
|
||||
mov r2, r4
|
||||
mov r1, r0
|
||||
ldr r0, _02000DD4 ; =_02092448
|
||||
bl Debug_Print0
|
||||
mov r0, #0
|
||||
bl sub_0207A524
|
||||
mov r4, r0
|
||||
mov r0, #0
|
||||
bl sub_0207A538
|
||||
cmp r0, r4
|
||||
bhs _02000D44
|
||||
mov r0, #0
|
||||
bl sub_0207A524
|
||||
mov r4, r0
|
||||
mov r0, #0
|
||||
bl sub_0207A538
|
||||
mov r1, r0
|
||||
mov r2, r4
|
||||
mov r0, #0
|
||||
mov r3, #1
|
||||
bl sub_0207A98C
|
||||
mov r1, r0
|
||||
mov r0, #0
|
||||
bl sub_0207A6EC
|
||||
mov r0, #0
|
||||
bl sub_0207A524
|
||||
mov r4, r0
|
||||
mov r0, #0
|
||||
bl sub_0207A538
|
||||
mov r2, r4
|
||||
mov r1, r0
|
||||
mov r0, #0
|
||||
bl sub_0207AA34
|
||||
mov r1, r0
|
||||
mov r0, #0
|
||||
bl sub_0207A95C
|
||||
_02000D44:
|
||||
ldr r2, _02000DD8 ; =0x04000208
|
||||
mov r0, #1
|
||||
ldrh r1, [r2]
|
||||
strh r0, [r2]
|
||||
bl ClearIrqFlag
|
||||
bl sub_02008DAC
|
||||
add r0, sp, #0
|
||||
bl sub_0207B9EC
|
||||
ldrb r1, [sp, #2]
|
||||
ldrb r0, [sp, #3]
|
||||
ldrb r3, [sp]
|
||||
ldrb r2, [sp, #1]
|
||||
smulbb r0, r1, r0
|
||||
mla r0, r3, r2, r0
|
||||
ldrb r2, [sp, #4]
|
||||
ldrb r1, [sp, #5]
|
||||
mla r0, r2, r1, r0
|
||||
bl sub_02002228
|
||||
bl sub_020024E4
|
||||
bl sub_020028AC
|
||||
bl sub_0200294C
|
||||
bl sub_02002A98
|
||||
bl sub_02002C2C
|
||||
bl sub_02002F0C
|
||||
bl InitMemAllocTableVeneer
|
||||
bl Debug_Init
|
||||
bl sub_02002FB8
|
||||
ldr r0, _02000DDC ; =_02092460
|
||||
bl sub_020082F4
|
||||
bl sub_0204A5D0
|
||||
bl sub_02003ECC
|
||||
bl TaskProcBoot
|
||||
bl sub_02079C14
|
||||
_02000DC8:
|
||||
bl WaitForInterrupt
|
||||
b _02000DC8
|
||||
.align 2, 0
|
||||
_02000DD0: .word sub_020024D4
|
||||
_02000DD4: .word _02092448
|
||||
_02000DD8: .word 0x04000208
|
||||
_02000DDC: .word _02092460
|
||||
arm_func_end NitroMain
|
||||
|
||||
arm_func_start InitMemAllocTable
|
||||
InitMemAllocTable: ; 0x02000DE0
|
||||
stmdb sp!, {r3, lr}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
.text
|
||||
|
||||
; https://decomp.me/scratch/nfhAP
|
||||
arm_func_start GetOptionStringFromID
|
||||
GetOptionStringFromID: ; 0x0238BDF0
|
||||
stmdb sp!, {r3, r4, lr}
|
||||
|
|
|
|||
6
include/main_02000C6C.h
Normal file
6
include/main_02000C6C.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef PMDSKY_MAIN_02000C6C_H
|
||||
#define PMDSKY_MAIN_02000C6C_H
|
||||
|
||||
void NitroMain(void);
|
||||
|
||||
#endif //PMDSKY_MAIN_02000C6C_H
|
||||
|
|
@ -53,4 +53,10 @@ typedef int BOOL;
|
|||
|
||||
#define SDK_FORCE_EXPORT __declspec(force_export)
|
||||
#endif //SDK_ASM
|
||||
|
||||
#define HW_REG_BASE 0x04000000
|
||||
#define REG_IME_OFFSET 0x208
|
||||
#define REG_IME_ADDR (HW_REG_BASE + REG_IME_OFFSET)
|
||||
#define reg_OS_IME (*(REGType16v *)REG_IME_ADDR)
|
||||
|
||||
#endif //NITRO_TYPES_H_
|
||||
|
|
|
|||
3
main.lsf
3
main.lsf
|
|
@ -9,7 +9,8 @@ Static main
|
|||
{
|
||||
Address 0x02000000
|
||||
StackSize 0 2048
|
||||
Object asm/main_02000C6C.o
|
||||
Object src/main_02000C6C.o
|
||||
Object asm/main_02000DE0.o
|
||||
Object src/main_02003D2C.o
|
||||
Object asm/main_02003DB8.o
|
||||
Object src/main_02008254.o
|
||||
|
|
|
|||
101
src/main_02000C6C.c
Normal file
101
src/main_02000C6C.c
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
#include "main_02000C6C.h"
|
||||
#include "nitro/types.h"
|
||||
|
||||
extern u32 _02092448;
|
||||
extern u32 _02092460;
|
||||
|
||||
extern void sub_02002228(u32);
|
||||
extern void sub_020024D4();
|
||||
extern void sub_020024E4();
|
||||
extern void sub_020028AC();
|
||||
extern void sub_0200294C();
|
||||
extern void sub_02002A98();
|
||||
extern void sub_02002C2C();
|
||||
extern void sub_02002FB8();
|
||||
extern void sub_02002F0C();
|
||||
extern void sub_02003ECC();
|
||||
extern void sub_020082F4(u32*);
|
||||
extern void sub_0204A5D0();
|
||||
extern void sub_02076070();
|
||||
extern void sub_02079C14();
|
||||
extern void sub_0207A220();
|
||||
extern void sub_0207A30C();
|
||||
extern void sub_0207A36C();
|
||||
extern u32 sub_0207A524(u32);
|
||||
extern u32 sub_0207A538(u32);
|
||||
extern u32 sub_0207A6EC(u32, u32);
|
||||
extern void sub_0207A95C(u32, u32);
|
||||
extern u32 sub_0207A98C(u32, u32, u32, u32);
|
||||
extern u32 sub_0207AA34(u32, u32, u32);
|
||||
extern void sub_0207AD54();
|
||||
extern void sub_0207B9EC(u8(*)[6]);
|
||||
extern void sub_0207F3BC(u32);
|
||||
extern void sub_02008DAC();
|
||||
extern void sub_020833F8(u32);
|
||||
extern void sub_020845D8(void (*));
|
||||
extern void ClearIrqFlag(u32, u32);
|
||||
extern void Debug_Init();
|
||||
extern void Debug_Print0(u32*, u32, u32);
|
||||
extern void InitMemAllocTableVeneer();
|
||||
extern void TaskProcBoot();
|
||||
extern void WaitForInterrupt();
|
||||
|
||||
void NitroMain(void)
|
||||
{
|
||||
u32 uVar2;
|
||||
u32 uVar3;
|
||||
u32 uVar4;
|
||||
u32 uVar5;
|
||||
u32 uVar6;
|
||||
u32 uVar7;
|
||||
u32 old_ime;
|
||||
|
||||
|
||||
u8 stack[6];
|
||||
|
||||
sub_0207A36C();
|
||||
sub_020833F8(0x12);
|
||||
sub_020845D8(sub_020024D4);
|
||||
sub_0207AD54();
|
||||
sub_02076070();
|
||||
sub_0207F3BC(0xffffffff);
|
||||
sub_0207A220();
|
||||
sub_0207A30C();
|
||||
uVar2 = sub_0207A524(0);
|
||||
uVar3 = sub_0207A538(0);
|
||||
Debug_Print0(&_02092448,uVar3,uVar2);
|
||||
uVar4 = sub_0207A524(0);
|
||||
if (sub_0207A538(0) < uVar4) {
|
||||
uVar5 = sub_0207A524(0);
|
||||
uVar7 = sub_0207A98C(0,sub_0207A538(0),uVar5,1);
|
||||
sub_0207A6EC(0,uVar7);
|
||||
uVar6 = sub_0207A524(0);
|
||||
uVar7 = sub_0207AA34(0,sub_0207A538(0),uVar6);
|
||||
sub_0207A95C(0,uVar7);
|
||||
}
|
||||
old_ime = reg_OS_IME;
|
||||
reg_OS_IME = 1;
|
||||
ClearIrqFlag(1,old_ime);
|
||||
sub_02008DAC();
|
||||
sub_0207B9EC(&stack);
|
||||
sub_02002228(stack[0] * stack[1] +
|
||||
stack[2] * stack[3] +
|
||||
stack[4] * stack[5]);
|
||||
sub_020024E4();
|
||||
sub_020028AC();
|
||||
sub_0200294C();
|
||||
sub_02002A98();
|
||||
sub_02002C2C();
|
||||
sub_02002F0C();
|
||||
InitMemAllocTableVeneer();
|
||||
Debug_Init();
|
||||
sub_02002FB8();
|
||||
sub_020082F4(&_02092460);
|
||||
sub_0204A5D0();
|
||||
sub_02003ECC();
|
||||
TaskProcBoot();
|
||||
sub_02079C14();
|
||||
do {
|
||||
WaitForInterrupt();
|
||||
} while( 1 );
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user