mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-27 13:53:52 +01:00
use rodata for save_failed_screen
This commit is contained in:
parent
058fed1fd8
commit
e38fd8347d
@ -1,28 +0,0 @@
|
|||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.section .rodata
|
|
||||||
|
|
||||||
gClockOamData:: @ 85EFD80
|
|
||||||
.incbin "baserom.gba", 0x5efd80, 0x8
|
|
||||||
|
|
||||||
gUnknown_085EFD88:: @ 85EFD88
|
|
||||||
.incbin "baserom.gba", 0x5efd88, 0xc
|
|
||||||
|
|
||||||
gUnknown_085EFD94:: @ 85EFD94
|
|
||||||
.incbin "baserom.gba", 0x5efd94, 0x8
|
|
||||||
|
|
||||||
gUnknown_085EFD9C:: @ 85EFD9C
|
|
||||||
.incbin "baserom.gba", 0x5efd9c, 0x8
|
|
||||||
|
|
||||||
gUnknown_085EFDA4:: @ 85EFDA4
|
|
||||||
.incbin "baserom.gba", 0x5efda4, 0x8
|
|
||||||
|
|
||||||
gClockFrames:: @ 85EFDAC
|
|
||||||
.incbin "baserom.gba", 0x5efdac, 0x18
|
|
||||||
|
|
||||||
gSaveFailedClockPal:: @ 85EFDC4
|
|
||||||
.incbin "baserom.gba", 0x5efdc4, 0x20
|
|
||||||
|
|
||||||
gSaveFailedClockGfx:: @ 85EFDE4
|
|
||||||
.incbin "baserom.gba", 0x5efde4, 0x90
|
|
19
graphics/misc/clock_small.pal
Executable file
19
graphics/misc/clock_small.pal
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
98 139 90
|
||||||
|
0 0 0
|
||||||
|
57 57 57
|
||||||
|
123 123 123
|
||||||
|
189 189 189
|
||||||
|
255 255 255
|
||||||
|
255 65 41
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
BIN
graphics/misc/clock_small.png
Executable file
BIN
graphics/misc/clock_small.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 221 B |
@ -43,7 +43,7 @@ struct Window
|
|||||||
|
|
||||||
bool16 InitWindows(const struct WindowTemplate *templates);
|
bool16 InitWindows(const struct WindowTemplate *templates);
|
||||||
u16 AddWindow(const struct WindowTemplate *template);
|
u16 AddWindow(const struct WindowTemplate *template);
|
||||||
int AddWindowWithoutTileMap(struct WindowTemplate *template);
|
int AddWindowWithoutTileMap(const struct WindowTemplate *template);
|
||||||
void RemoveWindow(u8 windowId);
|
void RemoveWindow(u8 windowId);
|
||||||
void FreeAllWindowBuffers(void);
|
void FreeAllWindowBuffers(void);
|
||||||
void CopyWindowToVram(u8 windowId, u8 mode);
|
void CopyWindowToVram(u8 windowId, u8 mode);
|
||||||
|
@ -434,7 +434,7 @@ SECTIONS {
|
|||||||
data/strings.o(.rodata);
|
data/strings.o(.rodata);
|
||||||
data/berry_tag_screen.o(.rodata);
|
data/berry_tag_screen.o(.rodata);
|
||||||
data/mystery_event_menu.o(.rodata);
|
data/mystery_event_menu.o(.rodata);
|
||||||
data/save_failed_screen.o(.rodata);
|
src/save_failed_screen.o(.rodata);
|
||||||
data/braille_puzzles.o(.rodata);
|
data/braille_puzzles.o(.rodata);
|
||||||
data/pokeblock_feed.o(.rodata);
|
data/pokeblock_feed.o(.rodata);
|
||||||
data/clear_save_data_screen.o(.rodata);
|
data/clear_save_data_screen.o(.rodata);
|
||||||
|
@ -22,22 +22,11 @@ extern u32 gDamagedSaveSectors;
|
|||||||
extern const u8 gBirchHelpGfx[];
|
extern const u8 gBirchHelpGfx[];
|
||||||
extern const u8 gBirchBagTilemap[];
|
extern const u8 gBirchBagTilemap[];
|
||||||
extern const u8 gBirchGrassTilemap[];
|
extern const u8 gBirchGrassTilemap[];
|
||||||
extern const u8 gSaveFailedClockGfx[];
|
|
||||||
|
|
||||||
extern const struct OamData gClockOamData; // sClockOamData
|
|
||||||
extern const u8 gClockFrames[8][3]; // sClockFrames
|
|
||||||
|
|
||||||
extern const struct BgTemplate gUnknown_085EFD88[];
|
|
||||||
extern const struct WindowTemplate gUnknown_085EFD94[];
|
|
||||||
extern struct WindowTemplate gUnknown_085EFD9C;
|
|
||||||
extern struct WindowTemplate gUnknown_085EFDA4;
|
|
||||||
extern struct SaveSection gSaveDataBuffer;
|
|
||||||
extern const u32 gUnknown_0850E87C[];
|
|
||||||
|
|
||||||
extern const u16 gBirchBagGrassPal[];
|
extern const u16 gBirchBagGrassPal[];
|
||||||
extern const u16 gSaveFailedClockPal[];
|
|
||||||
extern const u16 gUnknown_0850FEFC[];
|
extern const u16 gUnknown_0850FEFC[];
|
||||||
extern const u16 gUnknown_0860F074[];
|
extern const u16 gUnknown_0860F074[];
|
||||||
|
extern const u32 gUnknown_0850E87C[];
|
||||||
|
extern struct SaveSection gSaveDataBuffer;
|
||||||
|
|
||||||
extern u8 gText_SaveFailedCheckingBackup[];
|
extern u8 gText_SaveFailedCheckingBackup[];
|
||||||
extern u8 gText_BackupMemoryDamaged[];
|
extern u8 gText_BackupMemoryDamaged[];
|
||||||
@ -68,6 +57,108 @@ EWRAM_DATA u8 gSaveFailedUnused1[12] = {0};
|
|||||||
EWRAM_DATA u8 gSaveFailedWindowIds[2] = {0};
|
EWRAM_DATA u8 gSaveFailedWindowIds[2] = {0};
|
||||||
EWRAM_DATA u8 gSaveFailedUnused2[4] = {0};
|
EWRAM_DATA u8 gSaveFailedUnused2[4] = {0};
|
||||||
|
|
||||||
|
static const struct OamData sClockOamData =
|
||||||
|
{
|
||||||
|
160, // Y
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct BgTemplate gUnknown_085EFD88[3] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
.bg = 0,
|
||||||
|
.charBaseIndex = 2,
|
||||||
|
.mapBaseIndex = 31,
|
||||||
|
.screenSize = 0,
|
||||||
|
.paletteMode = 0,
|
||||||
|
.priority = 0,
|
||||||
|
.baseTile = 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 2,
|
||||||
|
.charBaseIndex = 0,
|
||||||
|
.mapBaseIndex = 14,
|
||||||
|
.screenSize = 0,
|
||||||
|
.paletteMode = 0,
|
||||||
|
.priority = 2,
|
||||||
|
.baseTile = 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 3,
|
||||||
|
.charBaseIndex = 0,
|
||||||
|
.mapBaseIndex = 15,
|
||||||
|
.screenSize = 0,
|
||||||
|
.paletteMode = 0,
|
||||||
|
.priority = 3,
|
||||||
|
.baseTile = 0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct WindowTemplate gUnknown_085EFD94[] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
.priority = 255,
|
||||||
|
.tilemapLeft = 0,
|
||||||
|
.tilemapTop = 0,
|
||||||
|
.width = 0,
|
||||||
|
.height = 0,
|
||||||
|
.paletteNum = 0,
|
||||||
|
.baseBlock = 0,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct WindowTemplate gUnknown_085EFD9C[] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
.priority = 0,
|
||||||
|
.tilemapLeft = 1,
|
||||||
|
.tilemapTop = 13,
|
||||||
|
.width = 28,
|
||||||
|
.height = 6,
|
||||||
|
.paletteNum = 15,
|
||||||
|
.baseBlock = 1,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct WindowTemplate gUnknown_085EFDA4[] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
.priority = 0,
|
||||||
|
.tilemapLeft = 14,
|
||||||
|
.tilemapTop = 9,
|
||||||
|
.width = 2,
|
||||||
|
.height = 2,
|
||||||
|
.paletteNum = 15,
|
||||||
|
.baseBlock = 169,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const u8 sClockFrames[8][3] =
|
||||||
|
{
|
||||||
|
{ 1, 0, 0 },
|
||||||
|
{ 5, 0, 0 },
|
||||||
|
{ 9, 0, 0 },
|
||||||
|
{ 5, 0, 1 },
|
||||||
|
{ 1, 0, 1 },
|
||||||
|
{ 5, 1, 1 },
|
||||||
|
{ 9, 1, 0 },
|
||||||
|
{ 5, 1, 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
static const u8 gSaveFailedClockPal[] = INCBIN_U8("graphics/misc/clock_small.gbapal");
|
||||||
|
static const u8 gSaveFailedClockGfx[] = INCBIN_U8("graphics/misc/clock_small.4bpp.lz");
|
||||||
|
|
||||||
static void CB2_SaveFailedScreen(void);
|
static void CB2_SaveFailedScreen(void);
|
||||||
static void CB2_WipeSave(void);
|
static void CB2_WipeSave(void);
|
||||||
static void CB2_GameplayCannotBeContinued(void);
|
static void CB2_GameplayCannotBeContinued(void);
|
||||||
@ -140,9 +231,9 @@ static void CB2_SaveFailedScreen(void)
|
|||||||
LoadBgTiles(0, gUnknown_0850E87C, 0x120, 0x214);
|
LoadBgTiles(0, gUnknown_0850E87C, 0x120, 0x214);
|
||||||
InitWindows(gUnknown_085EFD94);
|
InitWindows(gUnknown_085EFD94);
|
||||||
// AddWindowWithoutTileMap returns a u16/integer, but the info is clobbered into a u8 here resulting in lost info. Bug?
|
// AddWindowWithoutTileMap returns a u16/integer, but the info is clobbered into a u8 here resulting in lost info. Bug?
|
||||||
gSaveFailedWindowIds[TEXT_WIN_ID] = AddWindowWithoutTileMap(&gUnknown_085EFD9C);
|
gSaveFailedWindowIds[TEXT_WIN_ID] = AddWindowWithoutTileMap(gUnknown_085EFD9C);
|
||||||
SetWindowAttribute(gSaveFailedWindowIds[TEXT_WIN_ID], 7, (u32)&gDecompressionBuffer[0x2800]);
|
SetWindowAttribute(gSaveFailedWindowIds[TEXT_WIN_ID], 7, (u32)&gDecompressionBuffer[0x2800]);
|
||||||
gSaveFailedWindowIds[CLOCK_WIN_ID] = AddWindowWithoutTileMap(&gUnknown_085EFDA4);
|
gSaveFailedWindowIds[CLOCK_WIN_ID] = AddWindowWithoutTileMap(gUnknown_085EFDA4);
|
||||||
SetWindowAttribute(gSaveFailedWindowIds[CLOCK_WIN_ID], 7, (u32)&gDecompressionBuffer[0x3D00]);
|
SetWindowAttribute(gSaveFailedWindowIds[CLOCK_WIN_ID], 7, (u32)&gDecompressionBuffer[0x3D00]);
|
||||||
DeactivateAllTextPrinters();
|
DeactivateAllTextPrinters();
|
||||||
ResetSpriteData();
|
ResetSpriteData();
|
||||||
@ -270,14 +361,14 @@ static void VBlankCB_UpdateClockGraphics(void)
|
|||||||
{
|
{
|
||||||
unsigned int n = (gMain.vblankCounter2 >> 3) & 7;
|
unsigned int n = (gMain.vblankCounter2 >> 3) & 7;
|
||||||
|
|
||||||
gMain.oamBuffer[0] = gClockOamData;
|
gMain.oamBuffer[0] = sClockOamData;
|
||||||
gMain.oamBuffer[0].x = 112;
|
gMain.oamBuffer[0].x = 112;
|
||||||
gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8;;
|
gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8;;
|
||||||
|
|
||||||
if (gSaveFailedClockInfo[CLOCK_RUNNING] != FALSE)
|
if (gSaveFailedClockInfo[CLOCK_RUNNING] != FALSE)
|
||||||
{
|
{
|
||||||
gMain.oamBuffer[0].tileNum = gClockFrames[n][0];
|
gMain.oamBuffer[0].tileNum = sClockFrames[n][0];
|
||||||
gMain.oamBuffer[0].matrixNum = (gClockFrames[n][2] << 4) | (gClockFrames[n][1] << 3);
|
gMain.oamBuffer[0].matrixNum = (sClockFrames[n][2] << 4) | (sClockFrames[n][1] << 3);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -190,7 +190,7 @@ u16 AddWindow(const struct WindowTemplate *template)
|
|||||||
return win;
|
return win;
|
||||||
}
|
}
|
||||||
|
|
||||||
int AddWindowWithoutTileMap(struct WindowTemplate *template)
|
int AddWindowWithoutTileMap(const struct WindowTemplate *template)
|
||||||
{
|
{
|
||||||
u16 win;
|
u16 win;
|
||||||
u8 bgLayer;
|
u8 bgLayer;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user