pokedex_screen through sub_810250C
This commit is contained in:
@@ -5,290 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.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
|
thumb_func_start CB2_OpenPokedexFromStartMenu
|
||||||
CB2_OpenPokedexFromStartMenu: @ 810275C
|
CB2_OpenPokedexFromStartMenu: @ 810275C
|
||||||
push {lr}
|
push {lr}
|
||||||
|
|||||||
@@ -46,5 +46,6 @@ void SE12PanpotControl(s8 pan);
|
|||||||
bool8 IsSEPlaying(void);
|
bool8 IsSEPlaying(void);
|
||||||
bool8 IsBGMPlaying(void);
|
bool8 IsBGMPlaying(void);
|
||||||
bool8 IsSpecialSEPlaying(void);
|
bool8 IsSpecialSEPlaying(void);
|
||||||
|
void sub_8072474(u16 volume);
|
||||||
|
|
||||||
#endif // GUARD_SOUND_H
|
#endif // GUARD_SOUND_H
|
||||||
|
|||||||
@@ -227,6 +227,7 @@ SECTIONS {
|
|||||||
src/map_preview_screen.o(.text);
|
src/map_preview_screen.o(.text);
|
||||||
asm/link_rfu_2.o(.text);
|
asm/link_rfu_2.o(.text);
|
||||||
asm/link_rfu.o(.text);
|
asm/link_rfu.o(.text);
|
||||||
|
src/pokedex_screen.o(.text);
|
||||||
asm/pokedex_screen.o(.text);
|
asm/pokedex_screen.o(.text);
|
||||||
src/list_menu.o(.text);
|
src/list_menu.o(.text);
|
||||||
asm/item_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