Local Retry Settings

Local settings are those Retry options that can be configured on a level-specific basis. These options must be inserted in the retry_config/settings_local.asm file. If you used older version of Retry, these are equivalent to the various tables you had to change the values of, but made simpler by not having to manage big tables of hex data.

If you still prefer the table approach, you can set !use_legacy_tables = 1 in settings_global.asm and edit the tables in legacy/tables.asm as you're used to. In this case, ignore this document and the settings_local.asm file.


Overview

This approach of configuring the level-specific settings uses instructions that enable some setting for a specified level number. Each instruction must be put on a separate line in the asm file.

There are various instruction types, but most times you'll probably only use one or two of them for any given level, if any.

The instruction types are the following:


%checkpoint(level, value)

This allows you to configure the checkpoint behavior for the specified level. value can have one of the following values:

If this option isn't specified for a level, then it will default to 0 (vanilla checkpoint behavior).

Examples:

Note that you can also use custom midway objects (that look like vanilla midway bars) to have multiple midways. See Custom Midway Instructions for more information.


%retry(level, value)

This allows to override the Retry type for the specified level. value can have one of the following values:

If this option isn't specified for a level, then it will default to 0 (follow the global setting).

Examples:


%checkpoint_retry(level, checkpoint, retry)

This is a shorthand to configure the checkpoint and Retry type for a level with the same instruction. checkpoint follows the %checkpoint format and retry follows the %retry format.

Examples:


%sfx_echo(level)

This will enable SFX echo in the specified sublevel. Note that this option only works if AddmusicK is used in the ROM, and the SFX uses the same echo as the music (if the music has no echo, then the SFX also won't have echo).

Examples:


%no_reset_rng(level)

Normally Retry resets the RNG seed every time a level is reloaded, to make setups consistent between deaths. Using this option will make the RNG not reset when retrying in this sublevel.

Examples:


%no_room_cp_sfx(level)

If a level uses the checkpoint type 2 or 3, then a SFX is played when the automatic checkpoint is triggered (the SFX is defined by !room_cp_sfx in settings_global.asm).

If you use this, then the automatic checkpoints in the specified sublevel won't have any SFX. If !room_cp_sfx = 0, you can ignore this.

Examples:


%no_lose_lives(level)

If infinite lives is disabled (!infinite_lives = 0 in settings_global.asm), you can prevent life loss in specific sublevels using this option (for example for tutorial rooms or cutscenes).

If !infinite_lives = 1, you can ignore this.

Examples:


%settings(level, checkpoint, retry, sfx_echo, no_reset_rng, no_room_cp_sfx, no_lose_lives)

This is a shorthand to configure all the settings for the specified level at the same time.

The arguments are:


Return to main page