Decomped NitroMain

Decomped by @SethBarberee
This commit is contained in:
AnonymousRandomPerson 2024-10-29 00:04:12 -04:00
parent 7f86d700fc
commit c72517ecd3
7 changed files with 117 additions and 124 deletions

View File

@ -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

View File

@ -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}

View File

@ -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
View File

@ -0,0 +1,6 @@
#ifndef PMDSKY_MAIN_02000C6C_H
#define PMDSKY_MAIN_02000C6C_H
void NitroMain(void);
#endif //PMDSKY_MAIN_02000C6C_H

View File

@ -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_

View File

@ -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
View 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 );
}