pokeemerald-expansion/docs/tutorials/quickstart.md

3.1 KiB

Quickstart

Quickstart is a developer convenience feature that allows the user to start a new game from the title screen, skipping the Main Menu and the Birch/Oak intros. In Emerald the player is immediately dropped into the opening truck sequence while in FRLG the player is warped straight into their room.

NOTE: Quickstart is a development only feature and is therefore automatically disabled on release builds.

Details

Quickstart is enabled by default. It can be turned off using the provided configuration option. It is automatically disabled in release builds.

To use Quickstart press SELECT from the title screen to immediately start a new game. The player's name is set to the English canon name (and in FRLG the rival as well). The player's gender is chosen randomly (this can be configured).

Player Names

Game Male Female
Emerald BRENDAN MAY
FRLG RED LEAF

The FRLG Rival is named BLUE.

Hud Element

When Quickstart is enabled a small HUD element is shown on the title screen (this can be disabled). This is displayed as a 64x32 sprite at the top-right corner of the screen. The image dimensions are only 64x16 however but the GBA does not support sprites of those dimensions.

Source File : graphics/quickstart/quickstart_hud.png

Quickstart HUD

The same sprite is used for Fire Red, Leaf Green and Emerald. Each game has it's own palette in the graphics/quickstart/ directory.

Configuration

The configuration options are briefly covered below.

Option Values Usage
ENABLE_QUICKSTART TRUE / FALSE Enables quickstart in dev builds.
Always disabled in release builds.
QUICKSTART_HUD TRUE / FALSE Shows a small HUD when quickstart is enabled. No effect otherwise.
QUICKSTART_GENDER GENDER_MALE, GENDER_FEMALE, GENDER_RANDOM Sets player gender for quickstart.
RANDOM = 50% chance for MALE/FEMALE.
QUICKSTART_HUD_POSX
QUICKSTART_HUD_POSY
s16 Coordinates X & Y Coordinate for the HUD element sprite

Public Functions

The interface of the Quickstart feature has been kept minimal. It exposes only two functions.

CreateQuickstartHud

void CreateQuickstartHud(void);
Initializes and places a small HUD element on screen. Coordinates specifed in config
Only has an effect when quickstart is enabled.

Quickstart

void Quickstart(void);
Starts a new game from the title screen when called.

Integration

The aforementioned functions may be of use for integrating this feature into custom title screens. Adding calls to the appropriate function gated with a check should suffice.

// For the HUD
if (QUICKSTART && QUICKSTART_HUD)
  CreateQuickstartHud();
// To trigger Quickstart
if (QUICKSTART && JOY_NEW(SELECT_BUTTON))
    Quickstart();