mirror of https://github.com/zeldaret/tmc.git
Decompile some more of mainLoop.c
This commit is contained in:
parent
946de7529d
commit
6b09adf8d4
|
|
@ -593,7 +593,7 @@ sub_0805060C: @ 0x0805060C
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _0805061C
|
bne _0805061C
|
||||||
movs r0, #2
|
movs r0, #2
|
||||||
bl sub_08056010
|
bl InitScreen
|
||||||
_0805061C:
|
_0805061C:
|
||||||
pop {pc}
|
pop {pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
@ -3486,7 +3486,7 @@ sub_08051D2C: @ 0x08051D2C
|
||||||
movs r1, #8
|
movs r1, #8
|
||||||
bl DoFade
|
bl DoFade
|
||||||
movs r0, #3
|
movs r0, #3
|
||||||
bl sub_08056010
|
bl InitScreen
|
||||||
pop {pc}
|
pop {pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
||||||
|
|
@ -4270,12 +4270,12 @@ _080523AC:
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _080523C8
|
bne _080523C8
|
||||||
movs r0, #2
|
movs r0, #2
|
||||||
bl sub_08056010
|
bl InitScreen
|
||||||
b _080523CC
|
b _080523CC
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080523C4: .4byte gUnk_03000FD0
|
_080523C4: .4byte gUnk_03000FD0
|
||||||
_080523C8:
|
_080523C8:
|
||||||
bl sub_080560A8
|
bl DoSoftReset
|
||||||
_080523CC:
|
_080523CC:
|
||||||
pop {r4, pc}
|
pop {r4, pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
|
||||||
|
|
@ -2755,7 +2755,7 @@ sub_08053C60: @ 0x08053C60
|
||||||
ldr r0, _08053C80 @ =0x80100000
|
ldr r0, _08053C80 @ =0x80100000
|
||||||
bl PlaySFX
|
bl PlaySFX
|
||||||
movs r0, #3
|
movs r0, #3
|
||||||
bl sub_08056010
|
bl InitScreen
|
||||||
pop {pc}
|
pop {pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08053C80: .4byte 0x80100000
|
_08053C80: .4byte 0x80100000
|
||||||
|
|
|
||||||
|
|
@ -4,107 +4,6 @@
|
||||||
.syntax unified
|
.syntax unified
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_08055FF4
|
|
||||||
sub_08055FF4: @ 0x08055FF4
|
|
||||||
push {lr}
|
|
||||||
movs r2, #0
|
|
||||||
ldr r0, _0805600C @ =gUnk_03000FF0
|
|
||||||
ldrh r1, [r0]
|
|
||||||
movs r0, #0xf
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, #0xf
|
|
||||||
bne _08056006
|
|
||||||
movs r2, #1
|
|
||||||
_08056006:
|
|
||||||
adds r0, r2, #0
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
_0805600C: .4byte gUnk_03000FF0
|
|
||||||
|
|
||||||
thumb_func_start sub_08056010
|
|
||||||
sub_08056010: @ 0x08056010
|
|
||||||
ldr r1, _0805601C @ =gUnk_03001000
|
|
||||||
movs r2, #0
|
|
||||||
strb r0, [r1, #2]
|
|
||||||
strb r2, [r1, #3]
|
|
||||||
strb r2, [r1, #4]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_0805601C: .4byte gUnk_03001000
|
|
||||||
|
|
||||||
thumb_func_start sub_08056020
|
|
||||||
sub_08056020: @ 0x08056020
|
|
||||||
push {r4, lr}
|
|
||||||
ldr r2, _08056088 @ =0x04000208
|
|
||||||
movs r1, #0
|
|
||||||
strh r1, [r2]
|
|
||||||
ldr r0, _0805608C @ =0x04000200
|
|
||||||
strh r1, [r0]
|
|
||||||
ldr r0, _08056090 @ =0x04000004
|
|
||||||
strh r1, [r0]
|
|
||||||
ldr r0, _08056094 @ =0x04000202
|
|
||||||
strh r1, [r0]
|
|
||||||
strh r1, [r2]
|
|
||||||
ldr r1, _08056098 @ =0x040000B0
|
|
||||||
ldrh r2, [r1, #0xa]
|
|
||||||
ldr r4, _0805609C @ =0x0000C5FF
|
|
||||||
adds r0, r4, #0
|
|
||||||
ands r0, r2
|
|
||||||
strh r0, [r1, #0xa]
|
|
||||||
ldrh r2, [r1, #0xa]
|
|
||||||
ldr r3, _080560A0 @ =0x00007FFF
|
|
||||||
adds r0, r3, #0
|
|
||||||
ands r0, r2
|
|
||||||
strh r0, [r1, #0xa]
|
|
||||||
ldrh r0, [r1, #0xa]
|
|
||||||
adds r1, #0xc
|
|
||||||
ldrh r2, [r1, #0xa]
|
|
||||||
adds r0, r4, #0
|
|
||||||
ands r0, r2
|
|
||||||
strh r0, [r1, #0xa]
|
|
||||||
ldrh r2, [r1, #0xa]
|
|
||||||
adds r0, r3, #0
|
|
||||||
ands r0, r2
|
|
||||||
strh r0, [r1, #0xa]
|
|
||||||
ldrh r0, [r1, #0xa]
|
|
||||||
adds r1, #0xc
|
|
||||||
ldrh r2, [r1, #0xa]
|
|
||||||
adds r0, r4, #0
|
|
||||||
ands r0, r2
|
|
||||||
strh r0, [r1, #0xa]
|
|
||||||
ldrh r2, [r1, #0xa]
|
|
||||||
adds r0, r3, #0
|
|
||||||
ands r0, r2
|
|
||||||
strh r0, [r1, #0xa]
|
|
||||||
ldrh r0, [r1, #0xa]
|
|
||||||
ldr r0, _080560A4 @ =0x040000D4
|
|
||||||
ldrh r1, [r0, #0xa]
|
|
||||||
ands r4, r1
|
|
||||||
strh r4, [r0, #0xa]
|
|
||||||
ldrh r1, [r0, #0xa]
|
|
||||||
ands r3, r1
|
|
||||||
strh r3, [r0, #0xa]
|
|
||||||
ldrh r0, [r0, #0xa]
|
|
||||||
pop {r4, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_08056088: .4byte 0x04000208
|
|
||||||
_0805608C: .4byte 0x04000200
|
|
||||||
_08056090: .4byte 0x04000004
|
|
||||||
_08056094: .4byte 0x04000202
|
|
||||||
_08056098: .4byte 0x040000B0
|
|
||||||
_0805609C: .4byte 0x0000C5FF
|
|
||||||
_080560A0: .4byte 0x00007FFF
|
|
||||||
_080560A4: .4byte 0x040000D4
|
|
||||||
|
|
||||||
thumb_func_start sub_080560A8
|
|
||||||
sub_080560A8: @ 0x080560A8
|
|
||||||
push {lr}
|
|
||||||
bl sub_08056020
|
|
||||||
movs r0, #0xde
|
|
||||||
bl SoftReset
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
thumb_func_start sub_080560B8
|
thumb_func_start sub_080560B8
|
||||||
sub_080560B8: @ 0x080560B8
|
sub_080560B8: @ 0x080560B8
|
||||||
|
|
|
||||||
|
|
@ -2771,7 +2771,7 @@ _0805FBC0: .4byte gScreen
|
||||||
sub_0805FBC4: @ 0x0805FBC4
|
sub_0805FBC4: @ 0x0805FBC4
|
||||||
push {lr}
|
push {lr}
|
||||||
movs r0, #0
|
movs r0, #0
|
||||||
bl sub_08056010
|
bl InitScreen
|
||||||
pop {pc}
|
pop {pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6253,7 +6253,7 @@ _0807FB90: .4byte gLinkEntity
|
||||||
sub_0807FB94: @ 0x0807FB94
|
sub_0807FB94: @ 0x0807FB94
|
||||||
push {lr}
|
push {lr}
|
||||||
movs r0, #4
|
movs r0, #4
|
||||||
bl sub_08056010
|
bl InitScreen
|
||||||
pop {pc}
|
pop {pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -661,7 +661,7 @@ sub_080A3980: @ 0x080A3980
|
||||||
ldrb r0, [r0]
|
ldrb r0, [r0]
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _080A398E
|
bne _080A398E
|
||||||
bl sub_080560A8
|
bl DoSoftReset
|
||||||
_080A398E:
|
_080A398E:
|
||||||
pop {pc}
|
pop {pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start sub_08055F70
|
|
||||||
sub_08055F70: @ 0x08055F70
|
|
||||||
push {lr}
|
|
||||||
bl sub_08056020
|
|
||||||
movs r0, #0xfe
|
|
||||||
bl RegisterRamReset
|
|
||||||
movs r1, #0xa0
|
|
||||||
lsls r1, r1, #0x13
|
|
||||||
ldr r2, _08055FC8 @ =0x00007FFF
|
|
||||||
adds r0, r2, #0
|
|
||||||
strh r0, [r1]
|
|
||||||
ldr r1, _08055FCC @ =0x04000204
|
|
||||||
ldr r2, _08055FD0 @ =0x00004014
|
|
||||||
adds r0, r2, #0
|
|
||||||
strh r0, [r1]
|
|
||||||
ldr r2, _08055FD4 @ =0x0003FFD0
|
|
||||||
ldr r0, _08055FD8 @ =gUnk_02000030
|
|
||||||
adds r1, r2, #0
|
|
||||||
bl _DmaZero
|
|
||||||
ldr r0, _08055FDC @ =gUnk_080B2CD8
|
|
||||||
ldr r3, _08055FE0 @ =sub_080B197C
|
|
||||||
subs r2, r0, r3
|
|
||||||
cmp r2, #0
|
|
||||||
beq _08055FAA
|
|
||||||
ldr r1, _08055FE4 @ =gUnk_030056F0
|
|
||||||
adds r0, r3, #0
|
|
||||||
bl sub_0801D66C
|
|
||||||
_08055FAA:
|
|
||||||
ldr r0, _08055FE8 @ =gUnk_080B2CD8
|
|
||||||
ldr r3, _08055FEC @ =gUnk_080B2CD8
|
|
||||||
subs r2, r0, r3
|
|
||||||
cmp r2, #0
|
|
||||||
beq _08055FBC
|
|
||||||
ldr r1, _08055FF0 @ =gUnk_02038560
|
|
||||||
adds r0, r3, #0
|
|
||||||
bl sub_0801D66C
|
|
||||||
_08055FBC:
|
|
||||||
movs r0, #0
|
|
||||||
bl sub_0801DA90
|
|
||||||
bl sub_08016B34
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
_08055FC8: .4byte 0x00007FFF
|
|
||||||
_08055FCC: .4byte 0x04000204
|
|
||||||
_08055FD0: .4byte 0x00004014
|
|
||||||
_08055FD4: .4byte 0x0003FFD0
|
|
||||||
_08055FD8: .4byte gUnk_02000030
|
|
||||||
_08055FDC: .4byte gUnk_080B2CD8
|
|
||||||
_08055FE0: .4byte sub_080B197C
|
|
||||||
_08055FE4: .4byte gUnk_030056F0
|
|
||||||
_08055FE8: .4byte gUnk_080B2CD8
|
|
||||||
_08055FEC: .4byte gUnk_080B2CD8
|
|
||||||
_08055FF0: .4byte gUnk_02038560
|
|
||||||
|
|
@ -8,4 +8,6 @@ gUnk_080B2A70:: @ 080B2A70
|
||||||
.incbin "baserom.gba", 0x0B2A70, 0x0000268
|
.incbin "baserom.gba", 0x0B2A70, 0x0000268
|
||||||
|
|
||||||
gUnk_080B2CD8:: @ 080B2CD8
|
gUnk_080B2CD8:: @ 080B2CD8
|
||||||
|
gUnk_080B2CD8_2:: @ 080B2CD8
|
||||||
|
gUnk_080B2CD8_3:: @ 080B2CD8
|
||||||
.incbin "baserom.gba", 0x0B2CD8, 0x0000010
|
.incbin "baserom.gba", 0x0B2CD8, 0x0000010
|
||||||
|
|
@ -14,10 +14,18 @@ typedef struct { // 0x03001000
|
||||||
u32 spritePriority;
|
u32 spritePriority;
|
||||||
} MainStruct;
|
} MainStruct;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SCREEN_INTRO,
|
||||||
|
SCREEN_CHOOSE_FILE,
|
||||||
|
SCREEN_GAMEPLAY,
|
||||||
|
SCREEN_GAME_OVER,
|
||||||
|
SCREEN_CREDITS,
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 interruptFlag;
|
u8 interruptFlag;
|
||||||
u8 field_0x1;
|
u8 field_0x1;
|
||||||
u8 loadType;
|
u8 screen;
|
||||||
u8 funcIndex;
|
u8 funcIndex;
|
||||||
u8 transition;
|
u8 transition;
|
||||||
u8 field_0x5;
|
u8 field_0x5;
|
||||||
|
|
@ -45,8 +53,6 @@ extern Main gUnk_03001000;
|
||||||
extern UI gUnk_02032EC0;
|
extern UI gUnk_02032EC0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern void sub_08055F70(void);
|
|
||||||
extern void sub_080A3204(void);
|
extern void sub_080A3204(void);
|
||||||
extern void sub_0807CE90(void);
|
extern void sub_0807CE90(void);
|
||||||
extern void sub_080560B8(void);
|
extern void sub_080560B8(void);
|
||||||
|
|
@ -55,11 +61,10 @@ extern void sub_0804FFE4(void);
|
||||||
extern void sub_08056418(void);
|
extern void sub_08056418(void);
|
||||||
extern void sub_080ADD30(void);
|
extern void sub_080ADD30(void);
|
||||||
|
|
||||||
extern void sub_08056010(u32);
|
extern void InitScreen(u32);
|
||||||
extern void sub_08016E78(void);
|
extern void sub_08016E78(void);
|
||||||
extern void ReadKeyInput(void);
|
extern void ReadKeyInput(void);
|
||||||
extern u32 sub_08055FF4(void);
|
extern void DoSoftReset(void);
|
||||||
extern void sub_080560A8(void);
|
|
||||||
extern void sub_08056260(void);
|
extern void sub_08056260(void);
|
||||||
extern void VBlankIntrWait();
|
extern void VBlankIntrWait();
|
||||||
extern s32 _call_via_r0(s32);
|
extern s32 _call_via_r0(s32);
|
||||||
|
|
|
||||||
|
|
@ -462,7 +462,6 @@ SECTIONS {
|
||||||
src/sub_08055E08.o(.text);
|
src/sub_08055E08.o(.text);
|
||||||
asm/sub_08055E24.o(.text);
|
asm/sub_08055E24.o(.text);
|
||||||
src/mainLoop.o(.text);
|
src/mainLoop.o(.text);
|
||||||
asm/sub_08055F70.o(.text);
|
|
||||||
asm/code_08055FF4.o(.text);
|
asm/code_08055FF4.o(.text);
|
||||||
src/textbox.o(.text);
|
src/textbox.o(.text);
|
||||||
asm/code_08056418.o(.text);
|
asm/code_08056418.o(.text);
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,10 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "area.h"
|
#include "area.h"
|
||||||
|
#include "main.h"
|
||||||
#include "functions.h"
|
#include "functions.h"
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
u8 interruptFlag;
|
|
||||||
u8 field_0x1;
|
|
||||||
u8 loadType;
|
|
||||||
u8 funcIndex;
|
|
||||||
u8 transition;
|
|
||||||
u16 field_0x5;
|
|
||||||
u8 muteAudio;
|
|
||||||
u8 field_0x8;
|
|
||||||
u8 countdown;
|
|
||||||
u8 field_0xa;
|
|
||||||
u8 field_0xb;
|
|
||||||
u8 ticks;
|
|
||||||
u8 field_0xe;
|
|
||||||
u8 field_0xf;
|
|
||||||
} Main;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 filler [18];
|
u8 filler [18];
|
||||||
u32 unk;
|
u32 unk;
|
||||||
|
|
@ -32,7 +16,6 @@ extern void (*const gUnk_080D4120[])();
|
||||||
extern void (*const gUnk_080D412C[])();
|
extern void (*const gUnk_080D412C[])();
|
||||||
|
|
||||||
|
|
||||||
extern Main gUnk_03001000;
|
|
||||||
extern struct_02018EB0 gUnk_02018EB0;
|
extern struct_02018EB0 gUnk_02018EB0;
|
||||||
extern u8 gUnk_03000FD0;
|
extern u8 gUnk_03000FD0;
|
||||||
|
|
||||||
|
|
|
||||||
21
src/input.c
21
src/input.c
|
|
@ -2,26 +2,23 @@
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "readKeyInput.h"
|
#include "readKeyInput.h"
|
||||||
|
|
||||||
void StoreKeyInput(Input *pkeyInput, u32 ioKeyInput);
|
static void StoreKeyInput(Input*, u32);
|
||||||
|
|
||||||
void ReadKeyInput(void)
|
void ReadKeyInput(void)
|
||||||
{
|
{
|
||||||
u32 reg = ~*(u16*)0x04000130 & 0x3FF;
|
u32 keyInput = ~REG_KEYINPUT & KEYS_MASK;
|
||||||
Input* input = &gUnk_03000FF0;
|
StoreKeyInput(&gUnk_03000FF0, keyInput);
|
||||||
StoreKeyInput(input, reg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void StoreKeyInput(Input *input, u32 ioKeyInput)
|
static void StoreKeyInput(Input *input, u32 keyInput)
|
||||||
{
|
{
|
||||||
u32 difference;
|
u32 heldKeys = input->heldKeys;
|
||||||
u32 temp = input->heldKeys;
|
u32 difference = keyInput & ~heldKeys;
|
||||||
|
|
||||||
difference = ioKeyInput & ~temp;
|
|
||||||
input->newKeys = difference;
|
input->newKeys = difference;
|
||||||
if (ioKeyInput == temp) {
|
if (keyInput == heldKeys) {
|
||||||
if (--input->unk7 == 0) {
|
if (--input->unk7 == 0) {
|
||||||
input->unk7 = 4;
|
input->unk7 = 4;
|
||||||
input->unk4 = ioKeyInput;
|
input->unk4 = keyInput;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
input->unk4 = 0;
|
input->unk4 = 0;
|
||||||
|
|
@ -31,5 +28,5 @@ void StoreKeyInput(Input *input, u32 ioKeyInput)
|
||||||
input->unk7 = 0x14;
|
input->unk7 = 0x14;
|
||||||
input->unk4 = difference;
|
input->unk4 = difference;
|
||||||
}
|
}
|
||||||
input->heldKeys = ioKeyInput;
|
input->heldKeys = keyInput;
|
||||||
}
|
}
|
||||||
|
|
@ -2,13 +2,18 @@
|
||||||
#include "functions.h"
|
#include "functions.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "random.h"
|
#include "random.h"
|
||||||
|
#include "readKeyInput.h"
|
||||||
|
|
||||||
extern void sub_0804FF84(u32);
|
extern void sub_0804FF84(u32);
|
||||||
extern void _DmaZero(void*, u32);
|
|
||||||
|
|
||||||
extern u32 gUnk_020176A0;
|
extern u32 gUnk_020176A0;
|
||||||
extern const void (*gUnk_08100CBC[])();
|
extern const void (*gUnk_08100CBC[])();
|
||||||
extern void VBlankInterruptWait(void);
|
extern void VBlankInterruptWait(void);
|
||||||
|
extern void DisableInterruptsAndDMA(void);
|
||||||
|
extern void sub_0801D66C(void*, u8*, int);
|
||||||
|
extern void sub_08016B34(void);
|
||||||
|
|
||||||
|
static void sub_08055F70(void);
|
||||||
|
static bool32 SoftResetKeysPressed(void);
|
||||||
|
|
||||||
void MainLoop(void) {
|
void MainLoop(void) {
|
||||||
int var0;
|
int var0;
|
||||||
|
|
@ -27,11 +32,11 @@ void MainLoop(void) {
|
||||||
sub_080ADD30();
|
sub_080ADD30();
|
||||||
gRand = 0x1234567;
|
gRand = 0x1234567;
|
||||||
_DmaZero(&gUnk_03001000, 16);
|
_DmaZero(&gUnk_03001000, 16);
|
||||||
sub_08056010(0);
|
InitScreen(SCREEN_INTRO);
|
||||||
while (1) {
|
while (1) {
|
||||||
ReadKeyInput();
|
ReadKeyInput();
|
||||||
if (sub_08055FF4()) {
|
if (SoftResetKeysPressed()) {
|
||||||
sub_080560A8();
|
DoSoftReset();
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (gUnk_03001000.field_0x1) {
|
switch (gUnk_03001000.field_0x1) {
|
||||||
|
|
@ -55,7 +60,7 @@ void MainLoop(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
gUnk_03001000.ticks++;
|
gUnk_03001000.ticks++;
|
||||||
gUnk_08100CBC[gUnk_03001000.loadType]();
|
gUnk_08100CBC[gUnk_03001000.screen]();
|
||||||
sub_08056458();
|
sub_08056458();
|
||||||
sub_08050154();
|
sub_08050154();
|
||||||
sub_080A3480();
|
sub_080A3480();
|
||||||
|
|
@ -65,3 +70,65 @@ void MainLoop(void) {
|
||||||
sub_08016E78();
|
sub_08016E78();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Interrupt handlers that are loaded into RAM.
|
||||||
|
extern u8 sub_080B197C[];
|
||||||
|
extern u8 gUnk_030056F0[];
|
||||||
|
extern u8 gUnk_02038560[];
|
||||||
|
extern u8 gUnk_080B2CD8[];
|
||||||
|
extern u8 gUnk_080B2CD8_2[];
|
||||||
|
extern u8 gUnk_080B2CD8_3[];
|
||||||
|
extern u8 gUnk_02000030[];
|
||||||
|
|
||||||
|
static void sub_08055F70(void) {
|
||||||
|
u32 size;
|
||||||
|
|
||||||
|
DisableInterruptsAndDMA();
|
||||||
|
RegisterRamReset(RESET_ALL & ~RESET_EWRAM);
|
||||||
|
*(vu16 *)BG_PLTT = 0x7FFF;
|
||||||
|
REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3;
|
||||||
|
size = 0x3FFD0;
|
||||||
|
_DmaZero(gUnk_02000030, size);
|
||||||
|
size = (u32)gUnk_080B2CD8 - (u32)sub_080B197C;
|
||||||
|
if (size != 0) {
|
||||||
|
sub_0801D66C(sub_080B197C, gUnk_030056F0, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
size = (u32)gUnk_080B2CD8_2 - (u32)gUnk_080B2CD8_3;
|
||||||
|
if (size != 0) {
|
||||||
|
sub_0801D66C(gUnk_080B2CD8_3, gUnk_02038560, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub_0801DA90(0);
|
||||||
|
sub_08016B34();
|
||||||
|
}
|
||||||
|
|
||||||
|
#define SOFT_RESET_KEYS (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)
|
||||||
|
|
||||||
|
static bool32 SoftResetKeysPressed(void) {
|
||||||
|
return (gUnk_03000FF0.heldKeys & SOFT_RESET_KEYS) == SOFT_RESET_KEYS;
|
||||||
|
}
|
||||||
|
|
||||||
|
void InitScreen(u32 screen) {
|
||||||
|
gUnk_03001000.screen = screen;
|
||||||
|
gUnk_03001000.funcIndex = 0;
|
||||||
|
gUnk_03001000.transition = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DisableInterruptsAndDMA(void) {
|
||||||
|
REG_IME = 0;
|
||||||
|
REG_IE = 0;
|
||||||
|
REG_DISPSTAT = 0;
|
||||||
|
REG_IF = 0;
|
||||||
|
REG_IME = 0;
|
||||||
|
|
||||||
|
DmaStop(0);
|
||||||
|
DmaStop(1);
|
||||||
|
DmaStop(2);
|
||||||
|
DmaStop(3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DoSoftReset(void) {
|
||||||
|
DisableInterruptsAndDMA();
|
||||||
|
SoftReset(RESET_ALL & ~(RESET_EWRAM | RESET_SIO_REGS));
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,10 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "main.h"
|
||||||
|
|
||||||
extern void sub_08056010(u32);
|
|
||||||
extern u8 gUnk_03000FD0;
|
extern u8 gUnk_03000FD0;
|
||||||
|
|
||||||
void sub_080AD834(void)
|
void sub_080AD834(void) {
|
||||||
|
if (gUnk_03000FD0 == 0) {
|
||||||
{
|
InitScreen(SCREEN_CHOOSE_FILE);
|
||||||
if (gUnk_03000FD0 == '\0') {
|
|
||||||
sub_08056010(1);
|
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue