Add some pause screen data, link pause_screen_map.c

This commit is contained in:
y.demaisonregne 2023-05-24 23:24:04 +02:00
parent ea2c257e0f
commit 3ae6413ef7
29 changed files with 1202 additions and 170 deletions

View File

@ -5,7 +5,6 @@ This is a work in progress decompilation of Metroid - Zero Mission.
2505/2721 functions decompiled (92.06%, 216 left)
Progress can be seen here : https://docs.google.com/spreadsheets/d/1X8XarD5evY8ZI7r_GQqh1pYmdVMbBcINYfRBUlogmKY/edit#gid=0
**Current doesn't compile (temporary)**
**This decomp is not shiftable, don't use it as a base to work on anything**
This produces the following ROMs:

View File

@ -4882,7 +4882,7 @@ lbl_0806a7dc:
bl DMATransfer
movs r0, #2
movs r1, #2
bl sub_0806b00c
bl PauseScreenUpdateBottomVisorOverlay
mov r1, r8
ldr r0, [r1]
ldrh r1, [r0]
@ -5817,7 +5817,7 @@ lbl_0806afbe:
lbl_0806afe2:
movs r0, #1
movs r1, #1
bl sub_0806b00c
bl PauseScreenUpdateBottomVisorOverlay
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
@ -5832,8 +5832,8 @@ lbl_0806b000: .4byte 0x00000251
lbl_0806b004: .4byte sEwramPointer
lbl_0806b008: .4byte 0x000090d0
thumb_func_start sub_0806b00c
sub_0806b00c: @ 0x0806b00c
thumb_func_start PauseScreenUpdateBottomVisorOverlay
PauseScreenUpdateBottomVisorOverlay: @ 0x0806b00c
push {r4, r5, lr}
sub sp, #4
lsls r0, r0, #0x18
@ -7010,7 +7010,7 @@ lbl_0806b8f4:
beq lbl_0806b9d6
movs r0, #2
movs r1, #2
bl sub_0806b00c
bl PauseScreenUpdateBottomVisorOverlay
movs r4, #0x80
lsls r4, r4, #1
b lbl_0806b9da
@ -7348,7 +7348,7 @@ lbl_0806bbc0: .4byte 0x0000ff7f
lbl_0806bbc4:
movs r0, #1
movs r1, #1
bl sub_0806b00c
bl PauseScreenUpdateBottomVisorOverlay
movs r4, #1
rsbs r4, r4, #0
lbl_0806bbd0:
@ -7451,7 +7451,7 @@ lbl_0806bc98:
lbl_0806bc9e:
movs r0, #2
movs r1, #2
bl sub_0806b00c
bl PauseScreenUpdateBottomVisorOverlay
movs r0, #0x10
bl sub_0806b718
ldr r0, lbl_0806bcbc @ =sNonGameplayRamPointer
@ -7938,7 +7938,7 @@ lbl_0806c0a8: .4byte sNonGameplayRamPointer
lbl_0806c0ac:
movs r0, #1
movs r1, #1
bl sub_0806b00c
bl PauseScreenUpdateBottomVisorOverlay
ldr r2, lbl_0806c0c4 @ =sNonGameplayRamPointer
ldr r0, [r2]
movs r1, #0
@ -8705,8 +8705,8 @@ lbl_0806c6a8: .4byte 0x000003ff
lbl_0806c6ac: .4byte gLanguage
lbl_0806c6b0: .4byte 0x08760298
thumb_func_start sub_0806c6b4
sub_0806c6b4: @ 0x0806c6b4
thumb_func_start MinimapCopyTileGFX
MinimapCopyTileGFX: @ 0x0806c6b4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
@ -8814,8 +8814,8 @@ lbl_0806c780: .4byte 0x0840e0c4
lbl_0806c784: .4byte 0x0840d74c
lbl_0806c788: .4byte 0x0840d6fc
thumb_func_start sub_0806c78c
sub_0806c78c: @ 0x0806c78c
thumb_func_start MinimapCopyTileXFlippedGFX
MinimapCopyTileXFlippedGFX: @ 0x0806c78c
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
@ -8934,8 +8934,8 @@ lbl_0806c86c: .4byte 0x0840e0c4
lbl_0806c870: .4byte 0x0840d74c
lbl_0806c874: .4byte 0x0840d6fc
thumb_func_start sub_0806c878
sub_0806c878: @ 0x0806c878
thumb_func_start MinimapCopyTileYFlippedGFX
MinimapCopyTileYFlippedGFX: @ 0x0806c878
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
@ -9045,8 +9045,8 @@ lbl_0806c948: .4byte 0x0840e0c4
lbl_0806c94c: .4byte 0x0840d74c
lbl_0806c950: .4byte 0x0840d6fc
thumb_func_start sub_0806c954
sub_0806c954: @ 0x0806c954
thumb_func_start MinimapCopyTileXYFlippedGFX
MinimapCopyTileXYFlippedGFX: @ 0x0806c954
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb

View File

@ -965,6 +965,66 @@ menus/EraseSram/QuestionEnglish.gfx.lz;1006;0x413c64;4
menus/EraseSram/Box.tt;137;0x414c1c;4
menus/EraseSram/Background.tt;368;0x414e40;4
# Pause screen
menus/PauseScreen/3fcef0.pal;176;0x3fcef0;2
menus/PauseScreen/TankIcons.pal;256;0x3fd050;2
menus/PauseScreen/3fd252.pal;79;0x3fd252;2
menus/PauseScreen/MinimapAnimated.pal;16;0x3fd2f0;2
menus/PauseScreen/SamusWireframe.pal;64;0x3fd310;2
menus/PauseScreen/MotifBehindWireframeSamus.gfx.lz;278;0x3feb60;4
menus/PauseScreen/PauseScreenHud.gfx.lz;1404;0x3fefb8;4
menus/PauseScreen/MinimapLetters.gfx.lz;60;0x4005a8;4
menus/PauseScreen/MenuNamesJapanese.gfx.lz;92;0x400698;4
menus/PauseScreen/EquipmentNamesJapanese.gfx.lz;384;0x400808;4
menus/PauseScreen/TankIcons.gfx.lz;1786;0x400e08;4
menus/PauseScreen/MapScreenAreaNamesEnglish.gfx.lz;216;0x4029f0;4
menus/PauseScreen/MapScreenUnknownItemsNamesJapanese.gfx.lz;65;0x402d50;4
menus/PauseScreen/MapScreenChozoStatueAreaNamesEnglish.gfx.lz;152;0x402e54;4
menus/PauseScreen/ChozoHintBackground.gfx.lz;3618;0x4030b4;4
menus/PauseScreen/BrinstarMinimap.tt;133;0x40693c;4
menus/PauseScreen/KraidMinimap.tt;121;0x406b50;4
menus/PauseScreen/NorfairMinimap.tt;153;0x406d34;4
menus/PauseScreen/RidleyMinimap.tt;120;0x406f98;4
menus/PauseScreen/TourianMinimap.tt;91;0x407178;4
menus/PauseScreen/CrateriaMinimap.tt;114;0x4072e4;4
menus/PauseScreen/ChozodiaMinimap.tt;194;0x4074ac;4
menus/PauseScreen/Extra2Minimap.tt;78;0x4077b4;4
menus/PauseScreen/DebugMenuTileParts.tt;175;0x4078ec;4
menus/PauseScreen/MapScreenVisorOverlay.tt;122;0x407ba8;4
menus/PauseScreen/MapScreenOverlay.tt;125;0x407d90;4
menus/PauseScreen/WorldMapOverlay.tt;206;0x407f84;4
menus/PauseScreen/StatusScreen.tt;264;0x4082bc;4
menus/PauseScreen/EasySleep.tt;196;0x4086dc;4
menus/PauseScreen/StatusScreenBackground.tt;169;0x4089ec;4
menus/PauseScreen/MapScreenTextBg0.tt;92;0x408c90;4
menus/PauseScreen/ChozoHintBackground.tt;577;0x408e00;4
menus/PauseScreen/EquipmentNamesHiragana.gfx.lz;411;0x409704;4
menus/PauseScreen/EquipmentNamesEnglish.gfx.lz;1900;0x409d70;4
menus/PauseScreen/MapScreenAreaNamesHiragana.gfx.lz;198;0x40bb20;4
menus/PauseScreen/MenuNamesHiragana.gfx.lz;113;0x40be38;4
menus/PauseScreen/MenuNamesEnglish.gfx.lz;468;0x40bffc;4
menus/PauseScreen/MapScreenUnknownItemsNamesHiragana.gfx.lz;76;0x40c74c;4
menus/PauseScreen/MapScreenUnknownItemsNamesEnglish.gfx.lz;337;0x40c87c;4
menus/PauseScreen/MapScreenChozoStatueAreaNamesHiragana.gfx.lz;154;0x40cdc0;4
menus/PauseScreen/40d6fc.gfx;80;0x40d6fc;1
menus/PauseScreen/40d74c.gfx;80;0x40d74c;1
menus/PauseScreen/40dc90.pal;16;0x40dc90;2
menus/PauseScreen/40dcb0.pal;16;0x40dcb0;2
menus/PauseScreen/40dcd0.pal;16;0x40dcd0;2
menus/PauseScreen/sMinimapTiles.gfx;5120;0x40e0c4;1
menus/PauseScreen/40f4c4.gfx;1792;0x40f4c4;4
menus/PauseScreen/MapScreenAreaNamesGfx;167;0x4110c4;4
menus/PauseScreen/MinimapTiles.pal;80;0x411360;2
## Rooms
# Default background data
@ -2380,13 +2440,17 @@ Blob_2320ec_2376a8.bin;21948;0x2320ec;1
Blob_238b68_23a5bc.bin;6740;0x238b68;1
Blob_2d5ba0_2d7ae7.bin;7988;0x2d5ba0;1
Blob_34099c_345868.bin;20172;0x34099c;1
Blob_3fcef0_411400.bin;83216;0x3fcef0;1
Blob_3fd390_3feb60.bin;6096;0x3fd390;1
Blob_40d22a_40d66c.bin;1090;0x40d22a;1
Blob_40dd0b_40e0c4.bin;953;0x40dd0b;1
Blob_415460_446d68.bin;203016;0x415460;1
Blob_44f11c_45f45c.bin;66368;0x44f11c;1
Blob_479400_4bfee4.bin;289508;0x479400;1
Blob_549b44_74f8b4.bin;2121072;0x549b44;1
Blob_754bd0_75e6a8.bin;39640;0x754bd0;1
Blob_75fae4_75fd78.bin;660;0x75fae4;1
Blob_7600f8_760420.bin;808;0x7600f8;1
Blob_7602d4_760420.bin;332;0x7602d4;1
Blob_760458_760aa0.bin;1608;0x760458;1
Blob_760aef_7f7734.bin;617541;0x760aef;1

View File

@ -3,7 +3,35 @@
#include "types.h"
// FORCE_RODATA
#include "constants/game_state.h"
#include "structs/menus/pause_screen.h"
#include "structs/minimap.h"
extern const struct PauseScreenSubroutineData sMapScreenSubroutineInfo_Empty;
extern const u32* const sMapScreenAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES];
extern const u32* const sMapScreenChozoStatueAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES];
extern const u32* const sMapScreenUnknownItemsNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES];
extern const u32* const sMapScreenEquipmentNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES];
extern const u32* const sMapScreenMenuNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES];
extern u16 sPauseScreenCompletionInfoOamData[6][5];
extern const u8* const sStatusScreenBeamFlagsOrderPointer;
extern const u8* const sStatusScreenBombFlagsOrderPointer;
extern const u8* const sStatusScreenSuitFlagsOrderPointer;
extern const u8* const sStatusScreenMiscFlagsOrderPointer;
extern const u32* const sMinimapDataPointers[11];
extern const u32 sExploredMinimapBitFlags[32];
extern const MinimapFunc_T sMinimapTilesCopyGFXFunctionPointers[4];
extern u32* sPauseScreen_7602a8;
extern u8 sMapDownloadLineTrailOamOffsets[4];
extern const u32 sPauseScreen_7602b0[9];
#endif /* INTERNAL_PAUSE_SCREEN_DATA_H */

View File

@ -3,35 +3,44 @@
#include "types.h"
#include "structs/cutscene.h"
#include "structs/text.h"
#include "structs/menus/pause_screen.h"
#include "connection.h"
#include "constants/game_state.h"
extern const u16 sPauseScreen_3fcef0[11 * 16];
extern const u16 sTankIconsPal[16 * 16];
extern const u16 sPauseScreen_3fd252[5 * 16 - 1];
extern const u16 sMinimapAnimatedPalette[1 * 16];
extern const u16 sSamusWireframePal[4 * 16];
// ...
// ... Oam
extern const u32 sMotifBehindWireframeSamusGfx[278];
extern const u32 sPauseScreenHudGfx[1404];
extern const u32 sMinimapLettersGfx[60];
// ...
extern const u16 sPauseScreen_3fcef0[11 * 16];
extern const u8 sMinimapAnimatedPaletteOffsets[MAX_AMOUNT_OF_AREAS + 1];
// ...
extern const u32 sMenuNamesJapaneseGfx[92];
extern const u32 sEquipmentNamesJapaneseGfx[384];
extern const u32 sTankIconsGfx[1786];
extern const u32 sMapScreenAreaNamesEnglishGfx[216];
extern const u32 sMapScreenUnknownItemsNamesJapaneseGfx[65];
extern const u32 sMapScreenChozoStatueAreaNamesEnglishGfx[152];
extern const u32 sChozoHintBackgroundGfx[3618];
extern const u32 sBrinstarMinimap[133];
extern const u32 sKraidMinimap[121];
extern const u32 sNorfairMinimap[153];
extern const u32 sRidleyMinimap[120];
extern const u32 sTourianMinimap[91];
extern const u32 sCrateriaMinimap[114];
extern const u32 sChozodiaMinimap[194];
extern const u32 sExtraMinimap[78];
extern const u32 sDebugMenuTileParts[175];
extern const u32 sMapScreenVisorOverlayTilemap[122];
@ -43,12 +52,30 @@ extern const u32 sStatusScreenBackgroundTilemap[169];
extern const u32 sMapScreenTextBg0TileTable[92];
extern const u32 sChozoHintBackgroundTileTable[577];
// ...
extern const u32 sEquipmentNamesHiraganaGfx[411];
extern const u32 sEquipmentNamesEnglishGfx[1900];
extern const u32 sMapScreenAreaNamesHiraganaGfx[198];
extern const u32 sMenuNamesHiraganaGfx[113];
extern const u32 sMenuNamesEnglishGfx[468];
extern const u32 sMapScreenUnknownItemsNamesHiraganaGfx[76];
extern const u32 sMapScreenUnknownItemsNamesEnglishGfx[337];
extern const u32 sMapScreenChozoStatueAreaNamesHiraganaGfx[154];
extern const struct MenuOamData sMenuOamData_Empty;
extern const struct MenuOamData sMenuOamDataChozoHint_Empty;
extern const struct MenuOamData sMenuOamDataEraseSram_Empty;
extern const struct CutsceneOamData sCutsceneOam_Empty;
extern const u8 sUnused_40d078[16];
extern const u16 sPauseScreen_40d088[4];
extern const struct PauseScreenAreaIconData sPauseScreenAreaIconsData[MAX_AMOUNT_OF_AREAS];
extern const u16 sPauseScreen_40d0d0[4][4];
extern const u16 sMapScreenArrowsData[4][4];
extern const u8 sStatusScreenBeamFlagsOrder[5];
extern const u8 sStatusScreenBombFlagsOrder[1];
@ -58,19 +85,15 @@ extern const u8 sStatusScreenMiscFlagsOrder[6];
extern const u8 sPauseScreen_40d0fe[4];
extern const u16 sPauseScreen_40d102[5];
// ...
extern const struct PauseScreenWireframeData sSamusWireframeData[7];
// ...
extern const u16 sPauseScreen_40d17c[2];
extern const u8 sPauseScreen_40d180[MAX_AMOUNT_OF_AREAS];
extern const struct WorldMapData sWorldMapData[MAX_AMOUNT_OF_AREAS];
extern const struct WorldMapData sWorldMapData[MAX_AMOUNT_OF_AREAS - 1];
extern const u16 sPauseScreen_40d1c0[16][2];
extern const u8 sBossIcons[7][5];
extern const u8 sBossIcons[MAX_AMOUNT_OF_AREAS - 1][5];
extern const u16 sMapChunksToUpdate[3];
extern const struct OamArray sPauseScreenMiscOam[56];
@ -81,33 +104,33 @@ extern const struct OamArray sPauseScreenBossIconsOam[5];
extern const struct OamArray sPauseScreenTargetsOam[16];
extern const struct OamArray sPauseScreenWorldMapOam[18];
extern const u8 sMaintainedInputDelays[7];
extern const u8 sMaintainedInputDelays[8];
extern const u8 sMapScreenAreaIds[MAX_AMOUNT_OF_AREAS];
extern const u8 sMapScreenAreasViewOrder[MAX_AMOUNT_OF_AREAS];
extern const struct MinimapAreaName sMinimapAreaNames[10];
// ...
extern const u8 sPauseScreen_40d6fc[80];
extern const u8 sPauseScreen_40d74c[80];
extern u8* const sPauseScreen_40d79c[5];
// ...
extern const u8 sCharacterWidths[1184];
extern u16 sPauseScreen_40dc90[1 * 16];
extern u16 sPauseScreen_40dcb0[1 * 16];
extern u16 sPauseScreen_40dcd0[1 * 16];
extern u8 sPauseScreen_40dcf0[4];
extern u8 sPauseScreen_40dcf4[16];
extern const struct Message sMessage_Empty;
extern const struct Message sMessageStoryText_Empty;
extern const struct Message sMessageFileScreen_Empty;
extern const struct Message sMessageDescription_Empty;
// ...
// Internal
extern const u16 sPauseScreen_40dc90[1 * 16];
extern const u16 sPauseScreen_40dcb0[1 * 16];
extern const u16 sPauseScreen_40dcd0[1 * 16];
extern const u8 sPauseScreen_40dcf0[4];
extern const u8 sPauseScreen_40dcf4[16];
extern const u32* const sMapScreenAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES];
extern const u32* const sMapScreenChozoStatueAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES];
extern const u32* const sMapScreenUnknownItemsNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES];
extern const u32* const sMapScreenEquipmentNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES];
extern const u32* const sMapScreenMenuNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES];
extern const u8 sMinimapAnimatedPaletteOffsets[MAX_AMOUNT_OF_AREAS - 1];
extern const struct PauseScreenSubroutineData sMapScreenSubroutineInfo_Empty;
// ...?
#endif /* PAUSE_SCREEN_DATA_H */

View File

@ -6,19 +6,9 @@
#include "structs/menus/pause_screen.h"
#include "connection.h"
extern const u8 sPauseScreen_40d6fc[80];
extern const u8 sPauseScreen_40d74c[80];
extern const u8 sMinimapTilesGfx[5120];
extern const u32 sPauseScreen_40f4c4[1792];
extern const u32 sMapScreenAreaNamesGfx[167];
extern const u16 sMinimapTilesPal[5 * 16];
// Temp
// FORCE_RODATA
extern u32* sPauseScreen_7602a8;
// FORCE_RODATA
extern u8 sMapDownloadLineTrailOamOffsets[4];
extern const u32 sPauseScreen_7602b0[9];
#endif /* PAUSE_SCREEN_MAP_DATA_H */

View File

@ -15,7 +15,4 @@ extern const u8 sStatusScreenRowsData[6][3];
// ...
extern const u8* const sStatusScreenBeamFlagsOrderPointer;
extern const u16* const sMinimapDataPointers[11];
#endif /* STATUS_SCREEN_MENU_DATA_H */

View File

@ -6,10 +6,6 @@
#include "structs/menus/title_screen.h"
#include "structs/menu.h"
// Temp
extern const struct MenuOamData sMenuOamData_Empty;
extern const u16 sTitleScreenPAL[15 * 16];
extern const u16 sTitleScreenPromptPAL[5 * 16];

View File

@ -4,16 +4,6 @@
#include "types.h"
#include "structs/text.h"
extern const u8 sCharacterWidths[1184];
extern const struct Message sMessage_Empty;
extern const struct Message sMessageStoryText_Empty;
extern const struct Message sMessageFileScreen_Empty;
extern const struct Message sMessageDescription_Empty;
// Temp
extern const u16** const sStoryTextPointers[7];
extern const u16** const sLocationTextpointers[7];

View File

@ -1,13 +0,0 @@
#ifndef UNSORTED_H
#define UNSORTED_H
#include "types.h"
#include "structs/minimap.h"
// 760218
extern const u32 sExploredMinimapBitFlags[32];
// 760298
extern const MinimapFunc_T sMinimapTilesCopyGFXFunctionPointers[4];
#endif /* UNSORTED_H */

View File

@ -28,7 +28,7 @@ typedef volatile signed int vi32;
#define INT_MIN (-2147483648)
#define INT_MAX (2147483647)
#define UINT_MAX (4294967295)
#define UINT_MAX ((u32)4294967295)
#define BLOCK_SIZE 0x40
#define HALF_BLOCK_SIZE (BLOCK_SIZE / 2)

View File

@ -675,7 +675,9 @@ SECTIONS {
src/data/cutscenes/statue_opening_data.o(.rodata);
src/data/cutscenes/enter_tourian_data.o(.rodata);
src/data/cutscenes/samus_in_blue_ship_data.o(.rodata);
/* 3fcef0-411400 */
src/data/menus/pause_screen_data.o(.rodata);
/* 40dd0b_40e0c4 */
src/data/menus/pause_screen_map_data.o(.rodata);
src/data/save_file_data.o(.rodata);
src/data/menus/erase_sram_data.o(.rodata);
/* 415460-446d68 */
@ -704,7 +706,8 @@ SECTIONS {
src/data/cutscenes/internal_statue_opening_data.o(.rodata);
src/data/cutscenes/internal_enter_tourian_data.o(.rodata);
src/data/cutscenes/internal_samus_in_blue_ship_data.o(.rodata);
/* 760090-760420 */
src/data/menus/internal_pause_screen_data.o(.rodata);
/* 7602d4-760420 */
src/data/menus/internal_erase_sram_data.o(.rodata)
/* 760458-760aa0 */
src/data/menus/internal_title_screen_data.o(.rodata)

View File

@ -4,6 +4,7 @@
#include "color_effects.h"
#include "data/cutscenes/cutscenes_data.h"
#include "data/menus/pause_screen_data.h"
#include "data/shortcut_pointers.h"
#include "data/engine_pointers.h"
@ -969,10 +970,7 @@ void CutsceneReset(void)
// Clear OAM
for (i = 0; i < ARRAY_SIZE(CUTSCENE_DATA.oam); i++)
{
// FIXME CUTSCENE_DATA.oam[i] = sCutsceneOam_Empty;
CUTSCENE_DATA.oam[i] = *(struct CutsceneOamData*)0x840d058;
}
CUTSCENE_DATA.oam[i] = sCutsceneOam_Empty;
// Set default rotation and scaling
gCurrentOamRotation = 0;

View File

@ -20,5 +20,3 @@ const struct CutsceneSubroutineData sSamusInBlueShipSubroutineData[3] = {
.oamLength = 1
}
};
const u8 sTempArray_7600f8[0x328] = INCBIN_U8("data/Blob_7600f8_760420.bin");

View File

@ -483,5 +483,3 @@ const u16 sSamusInBlueShipPAL[9 * 16] = INCBIN_U16("data/cutscenes/SamusInBlueSh
const u32 sSamusInBlueShipSamusGFX[3641] = INCBIN_U32("data/cutscenes/SamusInBlueShip/Samus.gfx.lz");
const u32 sSamusInBlueShipControlsGFX[1642] = INCBIN_U32("data/cutscenes/SamusInBlueShip/Controls.gfx.lz");
const u32 sSamusInBlueShipSamusTileTable[368] = INCBIN_U32("data/cutscenes/SamusInBlueShip/Ship.tt");
const u8 sTempArray_3fcef0[0x14510] = INCBIN_U8("data/Blob_3fcef0_411400.bin");

View File

@ -0,0 +1,162 @@
#include "data/menus/internal_pause_screen_data.h"
#include "data/menus/pause_screen_data.h"
#include "macros.h"
#include "gba.h"
#include "minimap.h"
#include "constants/connection.h"
#include "constants/menus/pause_screen.h"
const struct PauseScreenSubroutineData sMapScreenSubroutineInfo_Empty = {
.currentSubroutine = PAUSE_SCREEN_SUBROUTINE_MAP_SCREEN,
.padding_1 = { 0, 0, 0 },
.stage = 0,
.timer = 0,
.unk_8 = 0,
.unk_A = 0
};
const u32* const sMapScreenAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = {
[LANGUAGE_JAPANESE] = sMapScreenAreaNamesEnglishGfx,
[LANGUAGE_HIRAGANA] = sMapScreenAreaNamesHiraganaGfx,
[LANGUAGE_ENGLISH] = sMapScreenAreaNamesEnglishGfx,
[LANGUAGE_GERMAN] = sMapScreenAreaNamesEnglishGfx,
[LANGUAGE_FRENCH] = sMapScreenAreaNamesEnglishGfx,
[LANGUAGE_ITALIAN] = sMapScreenAreaNamesEnglishGfx,
[LANGUAGE_SPANISH] = sMapScreenAreaNamesEnglishGfx
};
const u32* const sMapScreenChozoStatueAreaNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = {
[LANGUAGE_JAPANESE] = sMapScreenChozoStatueAreaNamesEnglishGfx,
[LANGUAGE_HIRAGANA] = sMapScreenChozoStatueAreaNamesHiraganaGfx,
[LANGUAGE_ENGLISH] = sMapScreenChozoStatueAreaNamesEnglishGfx,
[LANGUAGE_GERMAN] = sMapScreenChozoStatueAreaNamesEnglishGfx,
[LANGUAGE_FRENCH] = sMapScreenChozoStatueAreaNamesEnglishGfx,
[LANGUAGE_ITALIAN] = sMapScreenChozoStatueAreaNamesEnglishGfx,
[LANGUAGE_SPANISH] = sMapScreenChozoStatueAreaNamesEnglishGfx
};
const u32* const sMapScreenUnknownItemsNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = {
[LANGUAGE_JAPANESE] = sMapScreenUnknownItemsNamesJapaneseGfx,
[LANGUAGE_HIRAGANA] = sMapScreenUnknownItemsNamesHiraganaGfx,
[LANGUAGE_ENGLISH] = sMapScreenUnknownItemsNamesEnglishGfx,
[LANGUAGE_GERMAN] = sMapScreenUnknownItemsNamesEnglishGfx,
[LANGUAGE_FRENCH] = sMapScreenUnknownItemsNamesEnglishGfx,
[LANGUAGE_ITALIAN] = sMapScreenUnknownItemsNamesEnglishGfx,
[LANGUAGE_SPANISH] = sMapScreenUnknownItemsNamesEnglishGfx
};
const u32* const sMapScreenEquipmentNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = {
[LANGUAGE_JAPANESE] = sEquipmentNamesJapaneseGfx,
[LANGUAGE_HIRAGANA] = sEquipmentNamesHiraganaGfx,
[LANGUAGE_ENGLISH] = sEquipmentNamesEnglishGfx,
[LANGUAGE_GERMAN] = sEquipmentNamesEnglishGfx,
[LANGUAGE_FRENCH] = sEquipmentNamesEnglishGfx,
[LANGUAGE_ITALIAN] = sEquipmentNamesEnglishGfx,
[LANGUAGE_SPANISH] = sEquipmentNamesEnglishGfx
};
const u32* const sMapScreenMenuNamesGfxPointers[MAX_AMOUNT_OF_LANGUAGES] = {
[LANGUAGE_JAPANESE] = sMenuNamesJapaneseGfx,
[LANGUAGE_HIRAGANA] = sMenuNamesHiraganaGfx,
[LANGUAGE_ENGLISH] = sMenuNamesEnglishGfx,
[LANGUAGE_GERMAN] = sMenuNamesEnglishGfx,
[LANGUAGE_FRENCH] = sMenuNamesEnglishGfx,
[LANGUAGE_ITALIAN] = sMenuNamesEnglishGfx,
[LANGUAGE_SPANISH] = sMenuNamesEnglishGfx
};
FORCE_RODATA
u16 sPauseScreenCompletionInfoOamData[6][5] = {
{
10, 0xE, HALF_BLOCK_SIZE, BLOCK_SIZE * 8 + HALF_BLOCK_SIZE,
0
},
{
11, 0xF, HALF_BLOCK_SIZE, BLOCK_SIZE + HALF_BLOCK_SIZE,
0
},
{
12, 0x10, HALF_BLOCK_SIZE, BLOCK_SIZE * 2,
0
},
{
13, 0x11, HALF_BLOCK_SIZE, BLOCK_SIZE * 2 + HALF_BLOCK_SIZE,
0
},
{
14, 0x12, HALF_BLOCK_SIZE, BLOCK_SIZE * 3,
0
},
{
15, 0x13, BLOCK_SIZE * 3 + 8, BLOCK_SIZE - QUARTER_BLOCK_SIZE + 4,
0x10
}
};
static const u8 sUnused_7601cc[16] = {
0x14, 0x0, 0x20, 0x1,
0x34, 0x0, 0x12, 0x0,
0x16, 0x0, 0x78, 0x1,
0x34, 0x0, 0x0, 0x0
};
const u8* const sStatusScreenBeamFlagsOrderPointer = sStatusScreenBeamFlagsOrder;
const u8* const sStatusScreenBombFlagsOrderPointer = sStatusScreenBombFlagsOrder;
const u8* const sStatusScreenSuitFlagsOrderPointer = sStatusScreenSuitFlagsOrder;
const u8* const sStatusScreenMiscFlagsOrderPointer = sStatusScreenMiscFlagsOrder;
const u32* const sMinimapDataPointers[11] = {
[AREA_BRINSTAR] = sBrinstarMinimap,
[AREA_KRAID] = sKraidMinimap,
[AREA_NORFAIR] = sNorfairMinimap,
[AREA_RIDLEY] = sRidleyMinimap,
[AREA_TOURIAN] = sTourianMinimap,
[AREA_CRATERIA] = sCrateriaMinimap,
[AREA_CHOZODIA] = sChozodiaMinimap,
[AREA_DEBUG] = sBrinstarMinimap,
[8] = sExtraMinimap,
[9] = sExtraMinimap,
[10] = sExtraMinimap
};
const u32 sExploredMinimapBitFlags[32] = {
1 << 0, 1 << 1, 1 << 2, 1 << 3, 1 << 4,
1 << 5, 1 << 6, 1 << 7, 1 << 8, 1 << 9,
1 << 10, 1 << 11, 1 << 12, 1 << 13, 1 << 14,
1 << 15, 1 << 16, 1 << 17, 1 << 18, 1 << 19,
1 << 20, 1 << 21, 1 << 22, 1 << 23, 1 << 24,
1 << 25, 1 << 26, 1 << 27, 1 << 28, 1 << 29,
1 << 30, 1 << 31
};
const MinimapFunc_T sMinimapTilesCopyGFXFunctionPointers[4] = {
MinimapCopyTileGFX,
MinimapCopyTileXFlippedGFX,
MinimapCopyTileYFlippedGFX,
MinimapCopyTileXYFlippedGFX,
};
FORCE_RODATA
u32* sPauseScreen_7602a8 = VRAM_BASE + 0xBC00;
FORCE_RODATA
u8 sMapDownloadLineTrailOamOffsets[4] = {
3, 4, 5, 6
};
FORCE_RODATA
const u32 sPauseScreen_7602b0[9] = {
0xFFFFFFFF,
0xFFFFFFFF ^ 0xF,
0xFFFFFFFF ^ 0xFF,
0xFFFFFFFF ^ 0xFFF,
0xFFFFFFFF ^ 0xFFFF,
0xFFFFFFFF ^ 0xFFFFF,
0xFFFFFFFF ^ 0xFFFFFF,
0xFFFFFFFF ^ 0xFFFFFFF,
0xFFFFFFFF ^ 0xFFFFFFFF,
};
const u8 sTempArray_7602d4[0x14c] = INCBIN_U8("data/Blob_7602d4_760420.bin");

View File

@ -0,0 +1,824 @@
#include "data/menus/pause_screen_data.h"
#include "macros.h"
#include "gba.h"
#include "constants/connection.h"
#include "constants/event.h"
#include "constants/samus.h"
#include "constants/text.h"
const u16 sPauseScreen_3fcef0[11 * 16] = INCBIN_U16("data/menus/PauseScreen/3fcef0.pal");
const u16 sTankIconsPal[16 * 16] = INCBIN_U16("data/menus/PauseScreen/TankIcons.pal");
static const u16 sUnk_3fd250 = 0x2A25;
const u16 sPauseScreen_3fd252[5 * 16 - 1] = INCBIN_U16("data/menus/PauseScreen/3fd252.pal");
const u16 sMinimapAnimatedPalette[1 * 16] = INCBIN_U16("data/menus/PauseScreen/MinimapAnimated.pal");
const u16 sSamusWireframePal[4 * 16] = INCBIN_U16("data/menus/PauseScreen/SamusWireframe.pal");
// ... Oam
static const u8 sTempArray_3fd390[0x17d0] = INCBIN_U8("data/Blob_3fd390_3feb60.bin");
const u32 sMotifBehindWireframeSamusGfx[278] = INCBIN_U32("data/menus/PauseScreen/MotifBehindWireframeSamus.gfx.lz");
const u32 sPauseScreenHudGfx[1404] = INCBIN_U32("data/menus/PauseScreen/PauseScreenHud.gfx.lz");
const u32 sMinimapLettersGfx[60] = INCBIN_U32("data/menus/PauseScreen/MinimapLetters.gfx.lz");
const u32 sMenuNamesJapaneseGfx[92] = INCBIN_U32("data/menus/PauseScreen/MenuNamesJapanese.gfx.lz");
const u32 sEquipmentNamesJapaneseGfx[384] = INCBIN_U32("data/menus/PauseScreen/EquipmentNamesJapanese.gfx.lz");
const u32 sTankIconsGfx[1786] = INCBIN_U32("data/menus/PauseScreen/TankIcons.gfx.lz");
const u32 sMapScreenAreaNamesEnglishGfx[216] = INCBIN_U32("data/menus/PauseScreen/MapScreenAreaNamesEnglish.gfx.lz");
const u32 sMapScreenUnknownItemsNamesJapaneseGfx[65] = INCBIN_U32("data/menus/PauseScreen/MapScreenUnknownItemsNamesJapanese.gfx.lz");
const u32 sMapScreenChozoStatueAreaNamesEnglishGfx[152] = INCBIN_U32("data/menus/PauseScreen/MapScreenChozoStatueAreaNamesEnglish.gfx.lz");
const u32 sChozoHintBackgroundGfx[3618] = INCBIN_U32("data/menus/PauseScreen/ChozoHintBackground.gfx.lz");
const u32 sBrinstarMinimap[133] = INCBIN_U32("data/menus/PauseScreen/BrinstarMinimap.tt");
const u32 sKraidMinimap[121] = INCBIN_U32("data/menus/PauseScreen/KraidMinimap.tt");
const u32 sNorfairMinimap[153] = INCBIN_U32("data/menus/PauseScreen/NorfairMinimap.tt");
const u32 sRidleyMinimap[120] = INCBIN_U32("data/menus/PauseScreen/RidleyMinimap.tt");
const u32 sTourianMinimap[91] = INCBIN_U32("data/menus/PauseScreen/TourianMinimap.tt");
const u32 sCrateriaMinimap[114] = INCBIN_U32("data/menus/PauseScreen/CrateriaMinimap.tt");
const u32 sChozodiaMinimap[194] = INCBIN_U32("data/menus/PauseScreen/ChozodiaMinimap.tt");
const u32 sExtraMinimap[78] = INCBIN_U32("data/menus/PauseScreen/Extra2Minimap.tt");
const u32 sDebugMenuTileParts[175] = INCBIN_U32("data/menus/PauseScreen/DebugMenuTileParts.tt");
const u32 sMapScreenVisorOverlayTilemap[122] = INCBIN_U32("data/menus/PauseScreen/MapScreenVisorOverlay.tt");
const u32 sMapScreenOverlayTilemap[125] = INCBIN_U32("data/menus/PauseScreen/MapScreenOverlay.tt");
const u32 sWorldMapOverlayTilemap[206] = INCBIN_U32("data/menus/PauseScreen/WorldMapOverlay.tt");
const u32 sStatusScreenTilemap[264] = INCBIN_U32("data/menus/PauseScreen/StatusScreen.tt");
const u32 sEasySleepTilemap[196] = INCBIN_U32("data/menus/PauseScreen/EasySleep.tt");
const u32 sStatusScreenBackgroundTilemap[169] = INCBIN_U32("data/menus/PauseScreen/StatusScreenBackground.tt");
const u32 sMapScreenTextBg0TileTable[92] = INCBIN_U32("data/menus/PauseScreen/MapScreenTextBg0.tt");
const u32 sChozoHintBackgroundTileTable[577] = INCBIN_U32("data/menus/PauseScreen/ChozoHintBackground.tt");
const u32 sEquipmentNamesHiraganaGfx[411] = INCBIN_U32("data/menus/PauseScreen/EquipmentNamesHiragana.gfx.lz");
const u32 sEquipmentNamesEnglishGfx[1900] = INCBIN_U32("data/menus/PauseScreen/EquipmentNamesEnglish.gfx.lz");
const u32 sMapScreenAreaNamesHiraganaGfx[198] = INCBIN_U32("data/menus/PauseScreen/MapScreenAreaNamesHiragana.gfx.lz");
const u32 sMenuNamesHiraganaGfx[113] = INCBIN_U32("data/menus/PauseScreen/MenuNamesHiragana.gfx.lz");
const u32 sMenuNamesEnglishGfx[468] = INCBIN_U32("data/menus/PauseScreen/MenuNamesEnglish.gfx.lz");
const u32 sMapScreenUnknownItemsNamesHiraganaGfx[76] = INCBIN_U32("data/menus/PauseScreen/MapScreenUnknownItemsNamesHiragana.gfx.lz");
const u32 sMapScreenUnknownItemsNamesEnglishGfx[337] = INCBIN_U32("data/menus/PauseScreen/MapScreenUnknownItemsNamesEnglish.gfx.lz");
const u32 sMapScreenChozoStatueAreaNamesHiraganaGfx[154] = INCBIN_U32("data/menus/PauseScreen/MapScreenChozoStatueAreaNamesHiragana.gfx.lz");
const struct MenuOamData sMenuOamData_Empty = {
.yPosition = 0,
.xPosition = 0,
.unk_4 = 0,
.unk_5 = 0,
.unk_6 = 0,
.unk_7 = 0,
.animationDurationCounter = 0,
.currentAnimationFrame = 0,
.oamID = 0,
.priority = 0,
.objMode = 0,
.ended = FALSE,
.notDrawn = FALSE,
.exists = FALSE,
.boundBackground = 4,
.rotationScaling = FALSE,
.unk_E = 0
};
const struct MenuOamData sMenuOamDataChozoHint_Empty = {
.yPosition = 0,
.xPosition = 0,
.unk_4 = 0,
.unk_5 = 0,
.unk_6 = 0,
.unk_7 = 0,
.animationDurationCounter = 0,
.currentAnimationFrame = 0,
.oamID = 0,
.priority = 0,
.objMode = 0,
.ended = FALSE,
.notDrawn = FALSE,
.exists = FALSE,
.boundBackground = 3,
.rotationScaling = FALSE,
.unk_E = 0
};
const struct MenuOamData sMenuOamDataEraseSram_Empty = {
.yPosition = 0,
.xPosition = 0,
.unk_4 = 0,
.unk_5 = 0,
.unk_6 = 0,
.unk_7 = 0,
.animationDurationCounter = 0,
.currentAnimationFrame = 0,
.oamID = 0,
.priority = 0,
.objMode = 0,
.ended = FALSE,
.notDrawn = FALSE,
.exists = FALSE,
.boundBackground = 1,
.rotationScaling = FALSE,
.unk_E = 0
};
const struct CutsceneOamData sCutsceneOam_Empty = {
.yPosition = 0,
.xPosition = 0,
.unk_2 = 0,
.padding_5 = { 0, 0, 0 },
.animationDurationCounter = 0,
.currentAnimationFrame = 0,
.oamID = 0,
.priority = 0,
.objMode = 0,
.ended = FALSE,
.notDrawn = FALSE,
.exists = FALSE,
.boundBackground = 4,
.rotationScaling = FALSE,
.actions = 0,
.unk_E = 0,
.unk_10 = 0,
.unk_12 = 0,
.timer = 0,
.unk_16 = 0,
.unk_18 = 0,
.unk_1A = 0,
.padding_1C = { 0, 0 },
.unk_1E = 0
};
const u8 sUnused_40d078[16] = {
0x20, 0, 0x50, 0x3,
0, 0, 0, 0,
0, 0, 0x37, 0x60,
0x4, 0, 0, 0
};
const u16 sPauseScreen_40d088[4] = {
[0] = 0,
[1] = 1,
[2] = 2,
[3] = 3
};
const struct PauseScreenAreaIconData sPauseScreenAreaIconsData[MAX_AMOUNT_OF_AREAS] = {
[AREA_BRINSTAR] = {
.unk_0 = 0x1,
.nameOamId = 0x2,
.highlightOamId = 0x13,
.xPosition = BLOCK_SIZE * 13 - QUARTER_BLOCK_SIZE,
.yPosition = BLOCK_SIZE * 7 + HALF_BLOCK_SIZE + 12
},
[AREA_KRAID] = {
.unk_0 = 0x3,
.nameOamId = 0x4,
.highlightOamId = 0x14,
.xPosition = BLOCK_SIZE * 12,
.yPosition = BLOCK_SIZE * 8 + HALF_BLOCK_SIZE + 12
},
[AREA_NORFAIR] = {
.unk_0 = 0x5,
.nameOamId = 0x6,
.highlightOamId = 0x15,
.xPosition = BLOCK_SIZE * 13 + 8,
.yPosition = BLOCK_SIZE * 8 + HALF_BLOCK_SIZE + 4
},
[AREA_RIDLEY] = {
.unk_0 = 0x7,
.nameOamId = 0x8,
.highlightOamId = 0x16,
.xPosition = BLOCK_SIZE * 13 + 4,
.yPosition = BLOCK_SIZE * 9 - QUARTER_BLOCK_SIZE + 8
},
[AREA_TOURIAN] = {
.unk_0 = 0x9,
.nameOamId = 0xA,
.highlightOamId = 0x17,
.xPosition = BLOCK_SIZE * 11 + HALF_BLOCK_SIZE,
.yPosition = BLOCK_SIZE * 8
},
[AREA_CRATERIA] = {
.unk_0 = 0xB,
.nameOamId = 0xC,
.highlightOamId = 0x18,
.xPosition = BLOCK_SIZE * 12 + 12,
.yPosition = BLOCK_SIZE * 7 - QUARTER_BLOCK_SIZE + 4
},
[AREA_CHOZODIA] = {
.unk_0 = 0xD,
.nameOamId = 0xE,
.highlightOamId = 0x19,
.xPosition = BLOCK_SIZE * 13 + HALF_BLOCK_SIZE + 4,
.yPosition = BLOCK_SIZE * 6 + HALF_BLOCK_SIZE + 4
},
[AREA_DEBUG] = {
.unk_0 = 0,
.nameOamId = 0,
.highlightOamId = 0,
.xPosition = -QUARTER_BLOCK_SIZE,
.yPosition = -QUARTER_BLOCK_SIZE
}
};
const u16 sMapScreenArrowsData[4][4] = {
{
1, 0x4, BLOCK_SIZE * 14 + 8, BLOCK_SIZE * 5 - QUARTER_BLOCK_SIZE
},
{
0, 0x3, QUARTER_BLOCK_SIZE + 8, BLOCK_SIZE * 5 - QUARTER_BLOCK_SIZE
},
{
2, 0x1, BLOCK_SIZE * 7 + QUARTER_BLOCK_SIZE, BLOCK_SIZE + 8
},
{
3, 0x2, BLOCK_SIZE * 7 + QUARTER_BLOCK_SIZE, BLOCK_SIZE * 8 + QUARTER_BLOCK_SIZE + 8
}
};
const u8 sStatusScreenBeamFlagsOrder[5] = {
BBF_LONG_BEAM,
BBF_CHARGE_BEAM,
BBF_ICE_BEAM,
BBF_WAVE_BEAM,
BBF_PLASMA_BEAM
};
const u8 sStatusScreenBombFlagsOrder[1] = {
BBF_BOMBS
};
const u8 sStatusScreenSuitFlagsOrder[2] = {
SMF_VARIA_SUIT,
SMF_GRAVITY_SUIT
};
const u8 sStatusScreenMiscFlagsOrder[6] = {
SMF_MORPH_BALL,
SMF_POWER_GRIP,
SMF_SPEEDBOOSTER,
SMF_HIGH_JUMP,
SMF_SCREW_ATTACK,
SMF_SPACE_JUMP
};
const u8 sPauseScreen_40d0fe[4] = {
ARRAY_SIZE(sStatusScreenBeamFlagsOrder),
ARRAY_SIZE(sStatusScreenBombFlagsOrder),
ARRAY_SIZE(sStatusScreenSuitFlagsOrder),
ARRAY_SIZE(sStatusScreenMiscFlagsOrder)
};
const u16 sPauseScreen_40d102[5] = {
0x1, 0xA, 0x64, 0x3E8, 0x2710
};
const struct PauseScreenWireframeData sSamusWireframeData[7] = {
[0] = {
.oamId = 0x17,
.xPosition = BLOCK_SIZE - QUARTER_BLOCK_SIZE,
.yPosition = BLOCK_SIZE - QUARTER_BLOCK_SIZE,
.xOffset = BLOCK_SIZE * 15,
.objMode = 0,
.unk_A = BLOCK_SIZE - QUARTER_BLOCK_SIZE,
.unk_C = BLOCK_SIZE - QUARTER_BLOCK_SIZE
},
[1] = {
.oamId = 0x1A,
.xPosition = -QUARTER_BLOCK_SIZE,
.yPosition = BLOCK_SIZE * 2 - QUARTER_BLOCK_SIZE,
.xOffset = BLOCK_SIZE * 16,
.objMode = 0,
.unk_A = BLOCK_SIZE * 3 + HALF_BLOCK_SIZE + 4,
.unk_C = BLOCK_SIZE * 2
},
[2] = {
.oamId = 0x1D,
.xPosition = -QUARTER_BLOCK_SIZE,
.yPosition = BLOCK_SIZE * 5 + QUARTER_BLOCK_SIZE,
.xOffset = BLOCK_SIZE * 17,
.objMode = 0,
.unk_A = BLOCK_SIZE * 4 + 4,
.unk_C = BLOCK_SIZE * 5 + HALF_BLOCK_SIZE + 4
},
[3] = {
.oamId = 0x20,
.xPosition = BLOCK_SIZE * 9 - QUARTER_BLOCK_SIZE,
.yPosition = BLOCK_SIZE - QUARTER_BLOCK_SIZE,
.xOffset = BLOCK_SIZE * 9 - QUARTER_BLOCK_SIZE,
.objMode = 0,
.unk_A = BLOCK_SIZE * 9 + 4,
.unk_C = BLOCK_SIZE
},
[4] = {
.oamId = 0x23,
.xPosition = BLOCK_SIZE * 10 - QUARTER_BLOCK_SIZE,
.yPosition = BLOCK_SIZE * 2 + QUARTER_BLOCK_SIZE,
.xOffset = BLOCK_SIZE * 10 - QUARTER_BLOCK_SIZE,
.objMode = 0,
.unk_A = BLOCK_SIZE * 10 + 4,
.unk_C = BLOCK_SIZE * 2 + HALF_BLOCK_SIZE + 4
},
[5] = {
.oamId = 0x26,
.xPosition = BLOCK_SIZE * 10 - QUARTER_BLOCK_SIZE,
.yPosition = BLOCK_SIZE * 4 + QUARTER_BLOCK_SIZE,
.xOffset = BLOCK_SIZE * 11 - QUARTER_BLOCK_SIZE,
.objMode = 0,
.unk_A = BLOCK_SIZE * 10 + 4,
.unk_C = BLOCK_SIZE * 4 + HALF_BLOCK_SIZE + 4
},
[6] = {
.oamId = 0x2C,
.xPosition = BLOCK_SIZE * 5 + QUARTER_BLOCK_SIZE,
.yPosition = BLOCK_SIZE * 2 + QUARTER_BLOCK_SIZE,
.xOffset = 0,
.objMode = 1,
.unk_A = BLOCK_SIZE * 5 + QUARTER_BLOCK_SIZE,
.unk_C = BLOCK_SIZE * 2 + QUARTER_BLOCK_SIZE
}
};
const u16 sPauseScreen_40d17c[2] = {
0x80, 0x28
};
const u8 sPauseScreen_40d180[MAX_AMOUNT_OF_AREAS] = {
0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0
};
const struct WorldMapData sWorldMapData[MAX_AMOUNT_OF_AREAS - 1] = {
[AREA_BRINSTAR] = {
.unk_0 = 0x1,
.unk_1 = 0x8,
.xPosition = BLOCK_SIZE * 8 - QUARTER_BLOCK_SIZE,
.yPosition = BLOCK_SIZE * 5 + 8
},
[AREA_KRAID] = {
.unk_0 = 0x2,
.unk_1 = 0x9,
.xPosition = BLOCK_SIZE * 5 + HALF_BLOCK_SIZE + 12,
.yPosition = BLOCK_SIZE * 7 + 12
},
[AREA_NORFAIR] = {
.unk_0 = 0x3,
.unk_1 = 0xA,
.xPosition = BLOCK_SIZE * 9 + 8,
.yPosition = BLOCK_SIZE * 7 - QUARTER_BLOCK_SIZE + 8
},
[AREA_RIDLEY] = {
.unk_0 = 0x4,
.unk_1 = 0xB,
.xPosition = BLOCK_SIZE * 9,
.yPosition = BLOCK_SIZE * 8 - QUARTER_BLOCK_SIZE + 8
},
[AREA_TOURIAN] = {
.unk_0 = 0x5,
.unk_1 = 0xC,
.xPosition = BLOCK_SIZE * 4 + QUARTER_BLOCK_SIZE + 4,
.yPosition = BLOCK_SIZE * 5 + QUARTER_BLOCK_SIZE + 12
},
[AREA_CRATERIA] = {
.unk_0 = 0x6,
.unk_1 = 0xD,
.xPosition = BLOCK_SIZE * 6 + 8,
.yPosition = BLOCK_SIZE * 3 + 8
},
[AREA_CHOZODIA] = {
.unk_0 = 0x7,
.unk_1 = 0xE,
.xPosition = BLOCK_SIZE * 10,
.yPosition = BLOCK_SIZE * 3 - QUARTER_BLOCK_SIZE + 4
}
};
const u16 sPauseScreen_40d1c0[16][2] = {
[0] = { BLOCK_SIZE * 6 + QUARTER_BLOCK_SIZE, BLOCK_SIZE * 5 - QUARTER_BLOCK_SIZE + 8 },
[1] = { BLOCK_SIZE * 10 - 4, BLOCK_SIZE * 5 - QUARTER_BLOCK_SIZE + 12 },
[2] = { BLOCK_SIZE * 10 + HALF_BLOCK_SIZE + 4, BLOCK_SIZE * 6 + HALF_BLOCK_SIZE + 8 },
[3] = { BLOCK_SIZE * 5 + HALF_BLOCK_SIZE + 8, BLOCK_SIZE * 7 + HALF_BLOCK_SIZE + 4 },
[4] = { BLOCK_SIZE * 11 - QUARTER_BLOCK_SIZE + 4, BLOCK_SIZE * 7 - QUARTER_BLOCK_SIZE + 8 },
[5] = { BLOCK_SIZE * 9 - QUARTER_BLOCK_SIZE + 8, BLOCK_SIZE * 4 + 12 },
[6] = { BLOCK_SIZE * 8 + 12, BLOCK_SIZE * 7 + 8 },
[7] = { BLOCK_SIZE * 7 + HALF_BLOCK_SIZE + 8, BLOCK_SIZE * 7 - QUARTER_BLOCK_SIZE + 4 },
[8] = { 0, 0 },
[9] = { 0, 0 },
[10] = { 0, 0 },
[11] = { 0, 0 },
[12] = { 0, 0 },
[13] = { 0, 0 },
[14] = { 0, 0 },
[15] = { 0, 0 }
};
const u8 sBossIcons[MAX_AMOUNT_OF_AREAS - 1][5] = {
[AREA_BRINSTAR] = {
EVENT_NONE,
0,
0,
0,
0
},
[AREA_KRAID] = {
EVENT_KRAID_KILLED,
0x1,
9,
14,
0
},
[AREA_NORFAIR] = {
EVENT_NONE,
0,
0,
0,
0
},
[AREA_RIDLEY] = {
EVENT_RIDLEY_KILLED,
0x2,
7,
6,
0
},
[AREA_TOURIAN] = {
EVENT_NONE,
0,
0,
0,
0
},
[AREA_CRATERIA] = {
EVENT_ESCAPED_ZEBES,
0,
9,
7,
4
},
[AREA_CHOZODIA] = {
EVENT_NONE,
0,
0,
0,
0
}
};
const u16 sMapChunksToUpdate[3] = {
0x1C, 0x5C, 0xD4
};
static const u8 sTempArray_40d22c[0x442] = INCBIN_U8("data/Blob_40d22a_40d66c.bin");
/*const struct OamArray sPauseScreenMiscOam[56] = {
};
const struct OamArray sPauseScreenAreaNameOam[33] = {
};
const struct OamArray sPauseScreenBorderArrowsOam[5] = {
};
const struct OamArray sPauseScreenSamusIconOam[5] = {
};
const struct OamArray sPauseScreenBossIconsOam[5] = {
};
const struct OamArray sPauseScreenTargetsOam[16] = {
};
const struct OamArray sPauseScreenWorldMapOam[18] = {
};*/
const u8 sMaintainedInputDelays[8] = {
20, 4, 4, 4, 4, 4, 2
};
const u8 sMapScreenAreaIds[MAX_AMOUNT_OF_AREAS] = {
AREA_BRINSTAR,
AREA_KRAID,
AREA_NORFAIR,
AREA_RIDLEY,
AREA_TOURIAN,
AREA_CRATERIA,
AREA_CHOZODIA,
0x8
};
const u8 sMapScreenAreasViewOrder[MAX_AMOUNT_OF_AREAS] = {
AREA_CRATERIA,
AREA_BRINSTAR,
AREA_KRAID,
AREA_NORFAIR,
AREA_RIDLEY,
AREA_TOURIAN,
AREA_CHOZODIA,
AREA_BRINSTAR
};
const struct MinimapAreaName sMinimapAreaNames[10] = {
[0] = {
.area1 = AREA_CRATERIA,
.mapX1 = 3 + 1,
.mapY1 = 13 + 1,
.xOffset1 = -1,
.yOffset1 = 1,
.area2 = AREA_TOURIAN,
.mapX2 = 18 + 1,
.mapY2 = 1 + 1,
.xOffset2 = -1,
.yOffset2 = -1
},
[1] = {
.area1 = AREA_CRATERIA,
.mapX1 = 9 + 1,
.mapY1 = 11 + 1,
.xOffset1 = -1,
.yOffset1 = 1,
.area2 = AREA_BRINSTAR,
.mapX2 = 2 + 1,
.mapY2 = 13 + 1,
.xOffset2 = -1,
.yOffset2 = -1
},
[2] = {
.area1 = AREA_CRATERIA,
.mapX1 = 15 + 1,
.mapY1 = 8 + 1,
.xOffset1 = -1,
.yOffset1 = 1,
.area2 = AREA_NORFAIR,
.mapX2 = 5 + 1,
.mapY2 = 3 + 1,
.xOffset2 = -1,
.yOffset2 = -1
},
[3] = {
.area1 = AREA_BRINSTAR,
.mapX1 = 22 + 1,
.mapY1 = 13 + 1,
.xOffset1 = -1,
.yOffset1 = 1,
.area2 = AREA_NORFAIR,
.mapX2 = 14 + 1,
.mapY2 = 3 + 1,
.xOffset2 = -2,
.yOffset2 = -1
},
[4] = {
.area1 = AREA_BRINSTAR,
.mapX1 = 6 + 1,
.mapY1 = 19 + 1,
.xOffset1 = -1,
.yOffset1 = 1,
.area2 = AREA_KRAID,
.mapX2 = 9 + 1,
.mapY2 = 4 + 1,
.xOffset2 = -2,
.yOffset2 = -1
},
[5] = {
.area1 = AREA_BRINSTAR,
.mapX1 = 1 + 1,
.mapY1 = 4 + 1,
.xOffset1 = -1,
.yOffset1 = 1,
.area2 = AREA_TOURIAN,
.mapX2 = 20 + 1,
.mapY2 = 2 + 1,
.xOffset2 = -1,
.yOffset2 = -1
},
[6] = {
.area1 = AREA_NORFAIR,
.mapX1 = 17 + 1,
.mapY1 = 14 + 1,
.xOffset1 = -1,
.yOffset1 = 1,
.area2 = AREA_RIDLEY,
.mapX2 = 15 + 1,
.mapY2 = 1 + 1,
.xOffset2 = -1,
.yOffset2 = -1
},
[7] = {
.area1 = AREA_CRATERIA,
.mapX1 = 24 + 1,
.mapY1 = 3 + 1,
.xOffset1 = 1,
.yOffset1 = 0,
.area2 = AREA_CHOZODIA,
.mapX2 = 2 + 1,
.mapY2 = 17 + 1,
.xOffset2 = -1,
.yOffset2 = 0
},
[8] = {
.area1 = AREA_CRATERIA,
.mapX1 = 24 + 1,
.mapY1 = 7 + 1,
.xOffset1 = 1,
.yOffset1 = 0,
.area2 = AREA_CHOZODIA,
.mapX2 = 2 + 1,
.mapY2 = 21 + 1,
.xOffset2 = 1,
.yOffset2 = 1
},
[9] = {
.area1 = UCHAR_MAX,
.mapX1 = UCHAR_MAX,
.mapY1 = UCHAR_MAX,
.xOffset1 = UCHAR_MAX,
.yOffset1 = UCHAR_MAX,
.area2 = UCHAR_MAX,
.mapX2 = UCHAR_MAX,
.mapY2 = UCHAR_MAX,
.xOffset2 = UCHAR_MAX,
.yOffset2 = UCHAR_MAX
}
};
const u8 sPauseScreen_40d6fc[80] = INCBIN_U8("data/menus/PauseScreen/40d6fc.gfx");
const u8 sPauseScreen_40d74c[80] = INCBIN_U8("data/menus/PauseScreen/40d74c.gfx");
u8* const sPauseScreen_40d79c[5] = {
VRAM_BASE + 0x16360,
VRAM_BASE + 0x16760,
VRAM_BASE + 0x16B60,
VRAM_BASE + 0x16F60,
VRAM_BASE + 0x17300,
};
// TODO use char defines
const u8 sCharacterWidths[1184] = {
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
6, 6, 7, 7, 7, 8, 8, 4, 5, 5, 7, 7, 4, 8, 4, 7,
7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 4, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 8, 7, 7,
7, 7, 7, 7, 6, 7, 8, 8, 8, 6, 7, 5, 7, 5, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 6, 6, 6, 6, 6, 5, 6, 6, 2, 5, 5, 3, 6, 6, 6,
6, 6, 5, 6, 5, 6, 6, 6, 6, 6, 6, 5, 3, 5, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 6, 8, 8, 8, 8, 8, 16, 8, 11, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
14, 8, 14, 8, 14, 8, 14, 8, 14, 8, 14, 8, 16, 8, 16, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 5, 5, 5,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 5, 5, 5,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 6, 7, 7, 7, 7, 6, 7, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 6, 6, 6, 6, 6, 5, 6, 6, 2, 5, 5, 3, 6, 6, 6,
6, 6, 5, 6, 5, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8
};
const struct Message sMessage_Empty = {
.textIndex = 0,
.indent = 0,
.delay = 0,
.color = 0,
.line = 0,
.unk_8 = 0,
.unk_9 = 0,
.messageID = 0,
.gfxSlot = 0,
.stage = 0,
.isMessage = TRUE,
.messageEnded = FALSE,
.unk_F = 0
};
const struct Message sMessageStoryText_Empty = {
.textIndex = 0,
.indent = 0,
.delay = 0,
.color = 0,
.line = 0,
.unk_8 = 0,
.unk_9 = 0,
.messageID = 0,
.gfxSlot = 0,
.stage = 0,
.isMessage = FALSE,
.messageEnded = FALSE,
.unk_F = 0
};
const struct Message sMessageFileScreen_Empty = {
.textIndex = 0,
.indent = 0,
.delay = 0,
.color = 0,
.line = 0,
.unk_8 = 0,
.unk_9 = 0,
.messageID = 0,
.gfxSlot = 0,
.stage = 0,
.isMessage = FALSE,
.messageEnded = FALSE,
.unk_F = 0
};
const struct Message sMessageDescription_Empty = {
.textIndex = 0,
.indent = 0,
.delay = 0,
.color = 0,
.line = 0,
.unk_8 = 2,
.unk_9 = 20,
.messageID = 0,
.gfxSlot = 0,
.stage = 0,
.isMessage = FALSE,
.messageEnded = FALSE,
.unk_F = 0
};
const u16 sPauseScreen_40dc90[1 * 16] = INCBIN_U16("data/menus/PauseScreen/40dc90.pal");
const u16 sPauseScreen_40dcb0[1 * 16] = INCBIN_U16("data/menus/PauseScreen/40dcb0.pal");
const u16 sPauseScreen_40dcd0[1 * 16] = INCBIN_U16("data/menus/PauseScreen/40dcd0.pal");
const u8 sPauseScreen_40dcf0[4] = {
32, 16, 16, 16
};
const u8 sPauseScreen_40dcf4[16] = {
2, 2, 2, 2,
2, 2, 2, 2,
2, 2, 2, 2,
2, 2, 2, 2
};
const u8 sMinimapAnimatedPaletteOffsets[MAX_AMOUNT_OF_AREAS - 1] = {
0x9E, 0x9D, 0x9C, 0x9B,
0x9A, 0x9F, 0x99
};
const u8 sTempArray_40dd0b[0x3b9] = INCBIN_U8("data/Blob_40dd0b_40e0c4.bin");

View File

@ -0,0 +1,7 @@
#include "data/menus/pause_screen_map_data.h"
#include "macros.h"
const u8 sMinimapTilesGfx[5120] = INCBIN_U8("data/menus/PauseScreen/sMinimapTiles.gfx");
const u32 sPauseScreen_40f4c4[1792] = INCBIN_U32("data/menus/PauseScreen/40f4c4.gfx");
const u32 sMapScreenAreaNamesGfx[167] = INCBIN_U32("data/menus/PauseScreen/MapScreenAreaNamesGfx");
const u16 sMinimapTilesPal[5 * 16] = INCBIN_U16("data/menus/PauseScreen/MinimapTiles.pal");

View File

@ -1,21 +0,0 @@
#include "data/unsorted.h"
#include "minimap.h"
#include "gba.h"
#include "temp_globals.h"
// 760218
const u32 sExploredMinimapBitFlags[32] = {
0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x100, 0x200, 0x400, 0x800,
0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000, 0x40000, 0x80000,
0x100000, 0x200000, 0x400000, 0x800000, 0x1000000, 0x2000000, 0x4000000,
0x8000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000
};
// 760298
const MinimapFunc_T sMinimapTilesCopyGFXFunctionPointers[4] = {
MinimapCopyTileGFX,
MinimapCopyTileXFlippedGFX,
MinimapCopyTileYFlippedGFX,
MinimapCopyTileXYFlippedGFX,
};

View File

@ -1,10 +1,12 @@
#include "menus/erase_sram.h"
#include "macros.h"
#include "callbacks.h"
#include "data/shortcut_pointers.h"
#include "data/menus/erase_sram_data.h"
#include "data/menus/internal_erase_sram_data.h"
#include "data/menus/title_screen_data.h"
#include "data/menus/pause_screen_data.h"
#include "constants/audio.h"
#include "constants/game_state.h"
@ -384,10 +386,7 @@ void EraseSramResetOAM(void)
ERASE_SRAM_DATA.nextOption = ERASE_SRAM_OPTION_CHANGED_FLAG | ERASE_SRAM_OPTION_QUESTION_NO;
for (i = 0; i < ARRAY_SIZE(ERASE_SRAM_DATA.oam); i++)
{
ERASE_SRAM_DATA.oam[i] = *(struct MenuOamData*)0x840d048;
// FIXME *pOam = sEraseSramMenuOamData_Empty;
}
ERASE_SRAM_DATA.oam[i] = sMenuOamDataEraseSram_Empty;
ERASE_SRAM_DATA.oam[2].oamID = sEraseSramQuestionWindowNoSelectedOamId;
ERASE_SRAM_DATA.oam[2].yPosition = sEraseSramMenuCursorPosition[0][1];

View File

@ -7,6 +7,7 @@
#include "data/menus/game_over_data.h"
#include "data/menus/file_select_data.h"
#include "data/shortcut_pointers.h"
#include "data/menus/pause_screen_data.h"
#include "constants/audio.h"
#include "constants/demo.h"
@ -303,8 +304,7 @@ void GameOverInit(void)
GameOverUpdateTextGfx();
// FIXME GAME_OVER_DATA.oam[0] = sMenuOamData_Empty;
GAME_OVER_DATA.oam[0] = *(struct MenuOamData*)0x840d028;
GAME_OVER_DATA.oam[0] = sMenuOamData_Empty;
GameOverUpdateSamusHead(SAMUS_CURSOR_ACTION_LOADING);
CallbackSetVBlank(GameOverVBlank);
@ -361,8 +361,7 @@ void GameOverInit_Unused(void)
GameOverUpdateTextGfx();
// FIXME GAME_OVER_DATA.oam[0] = sMenuOamData_Empty;
GAME_OVER_DATA.oam[0] = *(struct MenuOamData*)0x840d028;
GAME_OVER_DATA.oam[0] = sMenuOamData_Empty;
CallbackSetVBlank(GameOverVBlank);
}

View File

@ -303,18 +303,18 @@ void PauseScreenUpdateMapArrows(void)
PAUSE_SCREEN_DATA.canScrollRight = PAUSE_SCREEN_DATA.mapRightBorder > PAUSE_SCREEN_DATA.mapViewX;
// Draw if can scroll
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[0][0]].notDrawn = PAUSE_SCREEN_DATA.canScrollRight ? FALSE : TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[1][0]].notDrawn = PAUSE_SCREEN_DATA.canScrollLeft ? FALSE : TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[2][0]].notDrawn = PAUSE_SCREEN_DATA.canScrollUp ? FALSE : TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[3][0]].notDrawn = PAUSE_SCREEN_DATA.canScrollDown ? FALSE : TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[0][0]].notDrawn = PAUSE_SCREEN_DATA.canScrollRight ? FALSE : TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[1][0]].notDrawn = PAUSE_SCREEN_DATA.canScrollLeft ? FALSE : TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[2][0]].notDrawn = PAUSE_SCREEN_DATA.canScrollUp ? FALSE : TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[3][0]].notDrawn = PAUSE_SCREEN_DATA.canScrollDown ? FALSE : TRUE;
}
else
{
// Not on map screen, set not drawn
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[0][0]].notDrawn = TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[1][0]].notDrawn = TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[2][0]].notDrawn = TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[3][0]].notDrawn = TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[0][0]].notDrawn = TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[1][0]].notDrawn = TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[2][0]].notDrawn = TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[3][0]].notDrawn = TRUE;
}
// Update world map area highlight
@ -839,31 +839,19 @@ void PauseScreenLoadAreaNamesAndIcons(void)
pOam = PAUSE_SCREEN_DATA.miscOam;
for (i = 0; i < ARRAY_SIZE(PAUSE_SCREEN_DATA.miscOam); i++, pOam++)
{
// FIXME *pOam = sMenuOamData_Empty;
*pOam = *(struct MenuOamData*)0x840d028;
}
*pOam = sMenuOamData_Empty;
pOam = PAUSE_SCREEN_DATA.areaNameOam;
for (i = 0; i < ARRAY_SIZE(PAUSE_SCREEN_DATA.areaNameOam); i++, pOam++)
{
// FIXME *pOam = sMenuOamData_Empty;
*pOam = *(struct MenuOamData*)0x840d028;
}
*pOam = sMenuOamData_Empty;
pOam = PAUSE_SCREEN_DATA.borderArrowsOam;
for (i = 0; i < ARRAY_SIZE(PAUSE_SCREEN_DATA.borderArrowsOam); i++, pOam++)
{
// FIXME *pOam = sMenuOamData_Empty;
*pOam = *(struct MenuOamData*)0x840d028;
}
*pOam = sMenuOamData_Empty;
pOam = PAUSE_SCREEN_DATA.worldMapOam;
for (i = 0; i < ARRAY_SIZE(PAUSE_SCREEN_DATA.worldMapOam); i++, pOam++)
{
// FIXME *pOam = sMenuOamData_Empty;
*pOam = *(struct MenuOamData*)0x840d028;
}
*pOam = sMenuOamData_Empty;
if (PAUSE_SCREEN_DATA.typeFlags & PAUSE_SCREEN_TYPE_GETTING_NEW_ITEM)
{
@ -939,17 +927,17 @@ void PauseScreenLoadAreaNamesAndIcons(void)
PauseScreenDrawCompletionInfo(FALSE);
for (i = 0; i < ARRAY_SIZE(sPauseScreen_40d0d0); i++)
for (i = 0; i < ARRAY_SIZE(sMapScreenArrowsData); i++)
{
if (gPauseScreenFlag == PAUSE_SCREEN_PAUSE_OR_CUTSCENE)
{
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[i][0]].exists = TRUE;
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[i][0]].exists = TRUE;
}
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[i][0]].oamID = sPauseScreen_40d0d0[i][1];
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[i][0]].xPosition = sPauseScreen_40d0d0[i][2];
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[i][0]].yPosition = sPauseScreen_40d0d0[i][3];
PAUSE_SCREEN_DATA.borderArrowsOam[sPauseScreen_40d0d0[i][0]].priority = 3;
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[i][0]].oamID = sMapScreenArrowsData[i][1];
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[i][0]].xPosition = sMapScreenArrowsData[i][2];
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[i][0]].yPosition = sMapScreenArrowsData[i][3];
PAUSE_SCREEN_DATA.borderArrowsOam[sMapScreenArrowsData[i][0]].priority = 3;
}
}
@ -3426,7 +3414,7 @@ void CheckForMaintainedInput(void)
gMaintainedInputData.delay = 0;
// Update set
if (gMaintainedInputData.set < ARRAY_SIZE(sMaintainedInputDelays) - 1)
if (gMaintainedInputData.set < ARRAY_SIZE(sMaintainedInputDelays) - 2)
gMaintainedInputData.set++;
}
}

View File

@ -6,6 +6,7 @@
#include "data/block_data.h"
#include "data/menus/pause_screen_data.h"
#include "data/menus/pause_screen_map_data.h"
#include "data/menus/internal_pause_screen_data.h"
#include "constants/block.h"
#include "constants/connection.h"
@ -233,7 +234,7 @@ void PauseScreenDrawIgtAndTanks(u8 param_1, u8 drawTanks)
sPauseScreen_40d79c[3] + HALF_BLOCK_SIZE * 2, HALF_BLOCK_SIZE, 32);
// Draw checkmarks when you have all of the tanks
for (i = 0; i < 3; i++)
for (i = 3; i >= 0; i--)
{
if ((PAUSE_SCREEN_DATA.tankStatus >> i) & 1)
{

View File

@ -675,8 +675,7 @@ void ChozoHintDeterminePath(u8 param_1)
const i8* pTarget;
const u8* ptr;
// FIXME
DMATransfer(3, 0x840d038, &oam, sizeof(oam), 16);
DMATransfer(3, sMenuOamDataChozoHint_Empty, &oam, sizeof(oam), 16);
if (PAUSE_SCREEN_DATA.typeFlags & PAUSE_SCREEN_TYPE_ON_MAP_SCREEN)
oam.priority = 0;

View File

@ -5,6 +5,7 @@
#include "data/shortcut_pointers.h"
#include "data/menus/status_screen.h"
#include "data/menus/pause_screen_data.h"
#include "data/menus/internal_pause_screen_data.h"
#include "constants/connection.h"
#include "constants/demo.h"

View File

@ -6,6 +6,7 @@
#include "data/shortcut_pointers.h"
#include "data/menus/title_screen_data.h"
#include "data/menus/internal_title_screen_data.h"
#include "data/menus/pause_screen_data.h"
#include "constants/menus/title_screen.h"
#include "constants/audio.h"
@ -95,8 +96,7 @@ void TitleScreenResetOAM(void)
while (i < ARRAY_SIZE(TITLE_SCREEN_DATA.oam))
{
*pOam = *(struct MenuOamData*)0x840d028;
// FIXME *pOam = sMenuOamData_Empty;
*pOam = sMenuOamData_Empty;
i++;
pOam++;

View File

@ -2,10 +2,10 @@
#include "gba.h"
#include "macros.h"
#include "data/unsorted.h"
#include "data/shortcut_pointers.h"
#include "data/menus/pause_screen_data.h"
#include "data/menus/pause_screen_map_data.h"
#include "data/menus/internal_pause_screen_data.h"
#include "constants/connection.h"
#include "constants/game_state.h"

View File

@ -4,6 +4,7 @@
#include "data/text_data.h"
#include "data/shortcut_pointers.h"
#include "data/menus/pause_screen_data.h"
#include "constants/text.h"
#include "constants/menus/pause_screen.h"

View File

@ -29,6 +29,7 @@ subDirs: array = [
"menus/",
"menus/TitleScreen/",
"menus/EraseSram/",
"menus/PauseScreen/",
"rooms/",
"rooms/debug/",
"samus/",