Skip to content

Full Screen Start Menu by Archie and Mudskip

Team Aqua's Hideout edited this page Mar 26, 2024 · 15 revisions
start_menu_static_view.-.Trim.mov
start_menu_fem_clock_mode_view.mov

Setup

To apply these changes you have two options, either pull the branch from the TeamAqua fork of pokeemerald (instructions below), or copy in the changes by hand Here is the diff

This branch is Expansion Compatible but if you are using the HGSS Pokedex you need to change one line in pokdex_plus_hgss.c:

static void Task_ClosePokedex(u8 taskId)
{
    if (!gPaletteFade.active)
    {
        gSaveBlock2Ptr->pokedex.mode = sPokedexView->dexMode;
        if (!IsNationalPokedexEnabled())
            gSaveBlock2Ptr->pokedex.mode = DEX_MODE_HOENN;
        gSaveBlock2Ptr->pokedex.order = sPokedexView->dexOrder;
        ClearMonSprites();
        FreeWindowAndBgBuffers();
        DestroyTask(taskId);
        SetMainCallback2(CB2_ReturnToFullScreenStartMenu);   // This is the changed Line
        m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 0x100);
        Free(sPokedexView);
    }
}

Usage

The Start Menu uses the same FLAG_SYS_POKEDEX_GET, FLAG_SYS_POKEMON_GET and FLAG_SYS_POKENAV_GET flags to determine whether or not you can use each of the menus as the vanilla Start Menu. They will show up greyed out if you do not have these flags set and you won't be able to use them.

The save dialogue does not give an extra confirmation for overwriting an existing save, I've never heard of anyone accidentally doing this so personally I like it better this way. Just be aware.

finishedstartmenu

There is also a config inside src/ui_startmenu_full.c (on top after the #includes) file to add an option to set the time clock modes between 12-hours and 24-hours mode. In order to be able to use it, you need to set the FLAG_CLOCK_MODE define on that file to an unused flag e.g. FLAG_UNUSED_0x020 and recompile after like the diff below. The button to trigger between the modes by default is the SELECT button.

-#define FLAG_CLOCK_MODE 0
+#define FLAG_CLOCK_MODE FLAG_UNUSED_0x20

When the config is enabled, the input reference to switch between clock modes is not shown in-game by default. If you would like to actually show the button, you need to uncomment these parts in src/ui_startmenu_full.c.

-//#if (FLAG_CLOCK_MODE != 0)
-//static const u32 sStartMenuTilemap[] = INCBIN_U32("graphics/ui_startmenu_full/menu_tilemap_alt.bin.lz");
-//#else
+#if (FLAG_CLOCK_MODE != 0)
+static const u32 sStartMenuTilemap[] = INCBIN_U32("graphics/ui_startmenu_full/menu_tilemap_alt.bin.lz");
+#else
static const u32 sStartMenuTilemap[] = INCBIN_U32("graphics/ui_startmenu_full/menu_tilemap.bin.lz");
-//#endif
+#endif

Before:

pokeemerald-0

After:

pokeemerald-1

You use git remote add and git pull commands to pull in a feature branch. That is,

git remote add team_aqua https://github.com/TeamAquasHideout/pokeemerald

git pull team_aqua full_start_menu

(instructions from Pawkkie)

Credits

Code by Archie

Graphics by Mudskip

UI Shell Code by ghoulslash

HP Bar Code + Small Bits from PSFs hack written by Rioluwott

Knowledge Download from Grunt Lucas

Inspired by psf's Start Menu Design, and Rioluwotts ROWE Design

Contact

If you have questions or problems with the branch join the TAH Discord and ping me in the #romhacking-help channel for help: https://discord.gg/hX3a63RYzZ

Clone this wiki locally