mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
Start decompiling bonus_field_select.c
This commit is contained in:
parent
2453ee7a97
commit
9b8813a72e
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
50
src/bonus_field_select.c
Executable 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++;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user