# 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`

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_X`**
**`QUICKSTART_HUD_Y`**| `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`
```c
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`
```c
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.
```c
// For the HUD
if (QUICKSTART && QUICKSTART_HUD)
CreateQuickstartHud();
```
```
// To trigger Quickstart
if (QUICKSTART && JOY_NEW(SELECT_BUTTON))
Quickstart();
```