pokedex_screen through sub_810250C
This commit is contained in:
@@ -5,290 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_81024C0
|
||||
sub_81024C0: @ 81024C0
|
||||
push {lr}
|
||||
bl LoadOam
|
||||
bl ProcessSpriteCopyRequests
|
||||
bl TransferPlttBuffer
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_81024C0
|
||||
|
||||
thumb_func_start sub_81024D4
|
||||
sub_81024D4: @ 81024D4
|
||||
push {lr}
|
||||
ldr r0, _08102500 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _081024EC
|
||||
bl IsDma3ManagerBusyWithBgCopy
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08102504
|
||||
_081024EC:
|
||||
bl RunTasks
|
||||
bl RunTextPrinters
|
||||
bl AnimateSprites
|
||||
bl BuildOamBuffer
|
||||
b _08102508
|
||||
.align 2, 0
|
||||
_08102500: .4byte gPaletteFade
|
||||
_08102504:
|
||||
bl UpdatePaletteFade
|
||||
_08102508:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_81024D4
|
||||
|
||||
thumb_func_start sub_810250C
|
||||
sub_810250C: @ 810250C
|
||||
push {r4-r6,lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
sub sp, 0xC
|
||||
bl IsNationalPokedexEnabled
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
bl m4aSoundVSyncOff
|
||||
movs r0, 0
|
||||
bl SetVBlankCallback
|
||||
bl ResetPaletteFade
|
||||
bl ResetSpriteData
|
||||
bl ResetTasks
|
||||
bl ScanlineEffect_Stop
|
||||
movs r0, 0x1
|
||||
bl ResetBgsAndClearDma3BusyFlags
|
||||
ldr r1, _08102598 @ =gUnknown_8451EBC
|
||||
movs r0, 0
|
||||
movs r2, 0x4
|
||||
bl InitBgsFromTemplates
|
||||
movs r4, 0x80
|
||||
lsls r4, 4
|
||||
adds r0, r4, 0
|
||||
bl Alloc
|
||||
adds r1, r0, 0
|
||||
movs r0, 0x3
|
||||
bl SetBgTilemapBuffer
|
||||
adds r0, r4, 0
|
||||
bl Alloc
|
||||
adds r1, r0, 0
|
||||
movs r0, 0x2
|
||||
bl SetBgTilemapBuffer
|
||||
adds r0, r4, 0
|
||||
bl Alloc
|
||||
adds r1, r0, 0
|
||||
movs r0, 0x1
|
||||
bl SetBgTilemapBuffer
|
||||
adds r0, r4, 0
|
||||
bl Alloc
|
||||
adds r1, r0, 0
|
||||
movs r0, 0
|
||||
bl SetBgTilemapBuffer
|
||||
cmp r6, 0
|
||||
beq _081025A0
|
||||
ldr r1, _0810259C @ =gUnknown_84403AC
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x3
|
||||
adds r2, r4, 0
|
||||
movs r3, 0
|
||||
bl DecompressAndLoadBgGfxUsingHeap
|
||||
b _081025AE
|
||||
.align 2, 0
|
||||
_08102598: .4byte gUnknown_8451EBC
|
||||
_0810259C: .4byte gUnknown_84403AC
|
||||
_081025A0:
|
||||
ldr r1, _081026A4 @ =gUnknown_8440274
|
||||
str r6, [sp]
|
||||
movs r0, 0x3
|
||||
adds r2, r4, 0
|
||||
movs r3, 0
|
||||
bl DecompressAndLoadBgGfxUsingHeap
|
||||
_081025AE:
|
||||
ldr r0, _081026A8 @ =gUnknown_8451ECC
|
||||
bl InitWindows
|
||||
bl DeactivateAllTextPrinters
|
||||
bl m4aSoundVSyncOn
|
||||
ldr r0, _081026AC @ =sub_81024C0
|
||||
bl SetVBlankCallback
|
||||
movs r0, 0x1
|
||||
bl EnableInterrupts
|
||||
ldr r0, _081026B0 @ =sub_810287C
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r5, _081026B4 @ =gUnknown_203ACF0
|
||||
movs r0, 0x70
|
||||
bl Alloc
|
||||
str r0, [r5]
|
||||
ldr r1, _081026B8 @ =gUnknown_8451EE4
|
||||
movs r2, 0x70
|
||||
bl memcpy
|
||||
ldr r0, [r5]
|
||||
strb r4, [r0]
|
||||
movs r0, 0xC1
|
||||
lsls r0, 4
|
||||
bl Alloc
|
||||
ldr r1, [r5]
|
||||
str r0, [r1, 0x44]
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8104BBC
|
||||
ldr r1, [r5]
|
||||
adds r1, 0x6A
|
||||
strh r0, [r1]
|
||||
movs r0, 0x1
|
||||
movs r1, 0x1
|
||||
bl sub_8104BBC
|
||||
ldr r1, [r5]
|
||||
adds r1, 0x6C
|
||||
strh r0, [r1]
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_8104BBC
|
||||
ldr r1, [r5]
|
||||
adds r1, 0x66
|
||||
strh r0, [r1]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
bl sub_8104BBC
|
||||
ldr r1, [r5]
|
||||
adds r1, 0x68
|
||||
strh r0, [r1]
|
||||
movs r0, 0x80
|
||||
bl sub_8072474
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl ChangeBgX
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl ChangeBgY
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl ChangeBgX
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl ChangeBgY
|
||||
movs r0, 0x2
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl ChangeBgX
|
||||
movs r0, 0x2
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl ChangeBgY
|
||||
movs r0, 0x3
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl ChangeBgX
|
||||
movs r0, 0x3
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl ChangeBgY
|
||||
ldr r2, _081026BC @ =gPaletteFade
|
||||
ldrb r0, [r2, 0x8]
|
||||
movs r1, 0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2, 0x8]
|
||||
cmp r6, 0
|
||||
beq _081026C4
|
||||
ldr r0, _081026C0 @ =gUnknown_84406E0
|
||||
movs r2, 0x80
|
||||
lsls r2, 2
|
||||
movs r1, 0
|
||||
bl LoadPalette
|
||||
b _081026D0
|
||||
.align 2, 0
|
||||
_081026A4: .4byte gUnknown_8440274
|
||||
_081026A8: .4byte gUnknown_8451ECC
|
||||
_081026AC: .4byte sub_81024C0
|
||||
_081026B0: .4byte sub_810287C
|
||||
_081026B4: .4byte gUnknown_203ACF0
|
||||
_081026B8: .4byte gUnknown_8451EE4
|
||||
_081026BC: .4byte gPaletteFade
|
||||
_081026C0: .4byte gUnknown_84406E0
|
||||
_081026C4:
|
||||
ldr r0, _08102758 @ =gUnknown_84404C8
|
||||
movs r2, 0x80
|
||||
lsls r2, 2
|
||||
movs r1, 0
|
||||
bl LoadPalette
|
||||
_081026D0:
|
||||
movs r4, 0x20
|
||||
str r4, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
movs r0, 0
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0x3
|
||||
movs r1, 0x1
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect
|
||||
str r4, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
movs r5, 0x11
|
||||
str r5, [sp, 0x8]
|
||||
movs r0, 0x2
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect
|
||||
str r4, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
str r5, [sp, 0x8]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect
|
||||
str r4, [sp]
|
||||
movs r0, 0x2
|
||||
mov r8, r0
|
||||
str r0, [sp, 0x4]
|
||||
movs r6, 0xF
|
||||
str r6, [sp, 0x8]
|
||||
movs r0, 0
|
||||
movs r1, 0x3
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect
|
||||
str r4, [sp]
|
||||
movs r0, 0x10
|
||||
str r0, [sp, 0x4]
|
||||
str r5, [sp, 0x8]
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x2
|
||||
bl FillBgTilemapBufferRect
|
||||
str r4, [sp]
|
||||
mov r0, r8
|
||||
str r0, [sp, 0x4]
|
||||
str r6, [sp, 0x8]
|
||||
movs r0, 0
|
||||
movs r1, 0x3
|
||||
movs r2, 0
|
||||
movs r3, 0x12
|
||||
bl FillBgTilemapBufferRect
|
||||
add sp, 0xC
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08102758: .4byte gUnknown_84404C8
|
||||
thumb_func_end sub_810250C
|
||||
|
||||
thumb_func_start CB2_OpenPokedexFromStartMenu
|
||||
CB2_OpenPokedexFromStartMenu: @ 810275C
|
||||
push {lr}
|
||||
|
||||
@@ -46,5 +46,6 @@ void SE12PanpotControl(s8 pan);
|
||||
bool8 IsSEPlaying(void);
|
||||
bool8 IsBGMPlaying(void);
|
||||
bool8 IsSpecialSEPlaying(void);
|
||||
void sub_8072474(u16 volume);
|
||||
|
||||
#endif // GUARD_SOUND_H
|
||||
|
||||
@@ -227,6 +227,7 @@ SECTIONS {
|
||||
src/map_preview_screen.o(.text);
|
||||
asm/link_rfu_2.o(.text);
|
||||
asm/link_rfu.o(.text);
|
||||
src/pokedex_screen.o(.text);
|
||||
asm/pokedex_screen.o(.text);
|
||||
src/list_menu.o(.text);
|
||||
asm/item_menu.o(.text);
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
#include "global.h"
|
||||
#include "bg.h"
|
||||
#include "malloc.h"
|
||||
#include "palette.h"
|
||||
#include "graphics.h"
|
||||
#include "dma3.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "m4a.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "window.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "sound.h"
|
||||
#include "event_data.h"
|
||||
|
||||
struct PokedexScreenData
|
||||
{
|
||||
u8 field_00;
|
||||
u8 filler_01[0x43];
|
||||
void * field_44;
|
||||
u8 filler_48[0x1E];
|
||||
u16 field_66;
|
||||
u16 field_68;
|
||||
u16 field_6A;
|
||||
u16 field_6C;
|
||||
};
|
||||
|
||||
EWRAM_DATA struct PokedexScreenData * gUnknown_203ACF0 = NULL;
|
||||
|
||||
void sub_810287C(u8 taskId);
|
||||
u16 sub_8104BBC(u8 a0, u8 a1);
|
||||
|
||||
extern const u32 gUnknown_8440274[];
|
||||
extern const u32 gUnknown_84403AC[];
|
||||
extern const u16 gUnknown_84404C8[];
|
||||
extern const u16 gUnknown_84406E0[];
|
||||
extern const struct BgTemplate gUnknown_8451EBC[4];
|
||||
extern const struct WindowTemplate gUnknown_8451ECC[];
|
||||
extern const struct PokedexScreenData gUnknown_8451EE4;
|
||||
|
||||
void sub_81024C0(void)
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
void sub_81024D4(void)
|
||||
{
|
||||
if (!gPaletteFade.active || IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
RunTasks();
|
||||
RunTextPrinters();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_810250C(void)
|
||||
{
|
||||
bool8 natDex;
|
||||
u8 taskId;
|
||||
|
||||
natDex = IsNationalPokedexEnabled();
|
||||
m4aSoundVSyncOff();
|
||||
SetVBlankCallback(NULL);
|
||||
ResetPaletteFade();
|
||||
ResetSpriteData();
|
||||
ResetTasks();
|
||||
ScanlineEffect_Stop();
|
||||
ResetBgsAndClearDma3BusyFlags(TRUE);
|
||||
InitBgsFromTemplates(0, gUnknown_8451EBC, NELEMS(gUnknown_8451EBC));
|
||||
SetBgTilemapBuffer(3, Alloc(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(2, Alloc(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(1, Alloc(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE));
|
||||
if (natDex)
|
||||
DecompressAndLoadBgGfxUsingHeap(3, gUnknown_84403AC, BG_SCREEN_SIZE, 0, 0);
|
||||
else
|
||||
DecompressAndLoadBgGfxUsingHeap(3, gUnknown_8440274, BG_SCREEN_SIZE, 0, 0);
|
||||
InitWindows(gUnknown_8451ECC);
|
||||
DeactivateAllTextPrinters();
|
||||
m4aSoundVSyncOn();
|
||||
SetVBlankCallback(sub_81024C0);
|
||||
EnableInterrupts(INTR_FLAG_VBLANK);
|
||||
taskId = CreateTask(sub_810287C, 0);
|
||||
gUnknown_203ACF0 = Alloc(sizeof(*gUnknown_203ACF0));
|
||||
*gUnknown_203ACF0 = gUnknown_8451EE4;
|
||||
gUnknown_203ACF0->field_00 = taskId;
|
||||
gUnknown_203ACF0->field_44 = Alloc(0xC10);
|
||||
gUnknown_203ACF0->field_6A = sub_8104BBC(0, 1);
|
||||
gUnknown_203ACF0->field_6C = sub_8104BBC(1, 1);
|
||||
gUnknown_203ACF0->field_66 = sub_8104BBC(0, 0);
|
||||
gUnknown_203ACF0->field_68 = sub_8104BBC(1, 0);
|
||||
sub_8072474(0x80);
|
||||
ChangeBgX(0, 0, 0);
|
||||
ChangeBgY(0, 0, 0);
|
||||
ChangeBgX(1, 0, 0);
|
||||
ChangeBgY(1, 0, 0);
|
||||
ChangeBgX(2, 0, 0);
|
||||
ChangeBgY(2, 0, 0);
|
||||
ChangeBgX(3, 0, 0);
|
||||
ChangeBgY(3, 0, 0);
|
||||
gPaletteFade.bufferTransferDisabled = TRUE;
|
||||
if (natDex)
|
||||
LoadPalette(gUnknown_84406E0, 0, 0x200);
|
||||
else
|
||||
LoadPalette(gUnknown_84404C8, 0, 0x200);
|
||||
FillBgTilemapBufferRect(3, 0x001, 0, 0, 32, 32, 0);
|
||||
FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11);
|
||||
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11);
|
||||
FillBgTilemapBufferRect(0, 0x0003, 0, 0, 32, 2, 0xF);
|
||||
FillBgTilemapBufferRect(0, 0x0000, 0, 2, 32, 16, 0x11);
|
||||
FillBgTilemapBufferRect(0, 0x003, 0, 18, 32, 2, 0xF);
|
||||
}
|
||||
Reference in New Issue
Block a user