Start decompiling bonus_field_select.c

This commit is contained in:
Marcus Huderle 2020-07-05 20:55:30 -05:00
parent 2453ee7a97
commit 9b8813a72e
4 changed files with 51 additions and 155 deletions

View File

@ -4,160 +4,6 @@
.text
thumb_func_start BonusFieldSelectMain
BonusFieldSelectMain: @ 0x080025A4
push {lr}
ldr r1, _080025BC @ =gUnknown_0805C750
ldr r0, _080025C0 @ =gMain
ldrb r0, [r0, #3]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {r0}
bx r0
.align 2, 0
_080025BC: .4byte gUnknown_0805C750
_080025C0: .4byte gMain
thumb_func_start sub_25C4
sub_25C4: @ 0x080025C4
push {r4, lr}
bl ResetSomeGraphicsRelatedStuff
movs r2, #0x80
lsls r2, r2, #0x13
movs r1, #0x84
lsls r1, r1, #5
adds r0, r1, #0
strh r0, [r2]
ldr r1, _080026A8 @ =0x04000008
movs r0, #5
strh r0, [r1]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #1
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _080026AC @ =0x0400000A
adds r3, #6
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
adds r3, #0xfa
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _080026B0 @ =0x0400000C
adds r3, #0xb
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #3
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r4, _080026B4 @ =gMain
ldrh r0, [r2]
strh r0, [r4, #0x16]
ldr r0, _080026B8 @ =0x040000D4
ldr r1, _080026BC @ =gUnknown_0807C2E0
str r1, [r0]
movs r1, #0xa0
lsls r1, r1, #0x13
str r1, [r0, #4]
ldr r1, _080026C0 @ =0x80000100
str r1, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _080026C4 @ =gFieldSelectWindow_Gfx
str r1, [r0]
ldr r1, _080026C8 @ =0x06004000
str r1, [r0, #4]
ldr r1, _080026CC @ =0x80002000
str r1, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _080026D0 @ =gUnknown_0807C4E0
str r1, [r0]
ldr r1, _080026D4 @ =0x06008000
str r1, [r0, #4]
ldr r1, _080026D8 @ =0x80000C00
str r1, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _080026DC @ =gUnknown_0807AAE0
str r1, [r0]
movs r1, #0xc0
lsls r1, r1, #0x13
str r1, [r0, #4]
ldr r2, _080026E0 @ =0x80000400
str r2, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _080026E4 @ =gUnknown_0807B2E0
str r1, [r0]
ldr r1, _080026E8 @ =0x06000800
str r1, [r0, #4]
str r2, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _080026EC @ =gUnknown_0807BAE0
str r1, [r0]
ldr r1, _080026F0 @ =0x06001000
str r1, [r0, #4]
str r2, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _080026F4 @ =gFieldSelectSpritePals
str r1, [r0]
ldr r1, _080026F8 @ =0x05000200
str r1, [r0, #4]
ldr r1, _080026FC @ =0x80000030
str r1, [r0, #8]
ldr r1, [r0, #8]
ldr r1, _08002700 @ =gFieldSelectSpriteGfx
str r1, [r0]
ldr r1, _08002704 @ =0x06010000
str r1, [r0, #4]
ldr r1, _08002708 @ =0x80002010
str r1, [r0, #8]
ldr r0, [r0, #8]
bl sub_CBC
bl sub_2710
ldr r0, _0800270C @ =sub_29C8 + 1
bl sub_FD5C
movs r0, #3
bl m4aSongNumStart
ldrb r0, [r4, #3]
adds r0, #1
strb r0, [r4, #3]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080026A8: .4byte 0x04000008
_080026AC: .4byte 0x0400000A
_080026B0: .4byte 0x0400000C
_080026B4: .4byte gMain
_080026B8: .4byte 0x040000D4
_080026BC: .4byte gUnknown_0807C2E0
_080026C0: .4byte 0x80000100
_080026C4: .4byte gFieldSelectWindow_Gfx
_080026C8: .4byte 0x06004000
_080026CC: .4byte 0x80002000
_080026D0: .4byte gUnknown_0807C4E0
_080026D4: .4byte 0x06008000
_080026D8: .4byte 0x80000C00
_080026DC: .4byte gUnknown_0807AAE0
_080026E0: .4byte 0x80000400
_080026E4: .4byte gUnknown_0807B2E0
_080026E8: .4byte 0x06000800
_080026EC: .4byte gUnknown_0807BAE0
_080026F0: .4byte 0x06001000
_080026F4: .4byte gFieldSelectSpritePals
_080026F8: .4byte 0x05000200
_080026FC: .4byte 0x80000030
_08002700: .4byte gFieldSelectSpriteGfx
_08002704: .4byte 0x06010000
_08002708: .4byte 0x80002010
_0800270C: .4byte sub_29C8 + 1
thumb_func_start sub_2710
sub_2710: @ 0x08002710
ldr r0, _08002740 @ =gUnknown_0201A4F8

View File

@ -29,7 +29,6 @@ u32 Random(void);
s16 sub_C24(u16 arg0);
s16 sub_C24(u16 arg0);
s16 sub_C74(u16 arg0);
void sub_CBC(void);
void sub_D10(void);
void MainLoopIter(void);
void DefaultMainCallback(void);

View File

@ -34,6 +34,7 @@ SECTIONS
src/main.o(.text);
src/gbplayer.o(.text);
asm/rom_9BC.o(.text);
src/bonus_field_select.o(.text);
asm/bonus_field_select.o(.text);
asm/ereader.o(.text);
asm/pokedex.o(.text);

50
src/bonus_field_select.c Executable file
View File

@ -0,0 +1,50 @@
#include "global.h"
#include "m4a.h"
#include "main.h"
#include "functions.h"
extern void (*const gUnknown_0805C750[])(void);
extern const u16 gUnknown_0807C2E0[];
extern const u8 gUnknown_0807C4E0[];
extern const u8 gUnknown_0807AAE0[];
extern const u8 gUnknown_0807B2E0[];
extern const u8 gUnknown_0807BAE0[];
void sub_2710(void);
void sub_29C8(void);
void BonusFieldSelectMain(void)
{
gUnknown_0805C750[gMain.subState]();
}
void sub_25C4(void)
{
ResetSomeGraphicsRelatedStuff();
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_FORCED_BLANK | DISPCNT_OBJ_ON;
REG_BG0CNT = BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(0) | BGCNT_PRIORITY(1) | BGCNT_TXT256x256;
REG_DISPCNT |= DISPCNT_BG0_ON;
REG_BG1CNT = BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(1) | BGCNT_PRIORITY(2) | BGCNT_TXT256x256;
REG_DISPCNT |= DISPCNT_BG1_ON;
REG_BG2CNT = BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(2) | BGCNT_PRIORITY(3) | BGCNT_TXT256x256;
REG_DISPCNT |= DISPCNT_BG2_ON;
gMain.unk16 = REG_DISPCNT;
DmaCopy16(3, gUnknown_0807C2E0, (void *)PLTT, 0x200);
DmaCopy16(3, gFieldSelectWindow_Gfx, (void *)(VRAM + 0x4000), 0x4000);
DmaCopy16(3, gUnknown_0807C4E0, (void *)(VRAM + 0x8000), 0x1800);
DmaCopy16(3, gUnknown_0807AAE0, (void *)VRAM, 0x800);
DmaCopy16(3, gUnknown_0807B2E0, (void *)(VRAM + 0x800), 0x800);
DmaCopy16(3, gUnknown_0807BAE0, (void *)(VRAM + 0x1000), 0x800);
DmaCopy16(3, gFieldSelectSpritePals, (void *)(PLTT + 0x200), 0x60);
DmaCopy16(3, gFieldSelectSpriteGfx, (void *)(VRAM + 0x10000), 0x4020);
sub_CBC();
sub_2710();
sub_FD5C(sub_29C8);
m4aSongNumStart(0x3);
gMain.subState++;
}