Global settings are those Retry options that are used project-wise, and they are found in the retry_config/settings_global.asm file. To override some of these settings on specific levels you can change the Local Settings.
| Name | Description |
|---|---|
!default_prompt_type |
The default behaviour for the retry system.
|
| Name | Description |
|---|---|
!initial_lives |
How many lives to start a new save file with. |
!infinite_lives |
|
!midway_powerup |
|
Options reset the corresponding counters/items when the player dies and/or when going to the Overworld. Useful for Kaizo and collab hacks.
| Name | Description |
|---|---|
!counterbreak_yoshi |
Removes Yoshi. |
!counterbreak_powerup |
Removes power up state from Mario. |
!counterbreak_item_box |
Clears any power-up in the player's Item Box. |
!counterbreak_coins |
Resets the coin counter to zero. |
!counterbreak_bonus_stars |
Resets the Bonus Stars counter to zero. |
!counterbreak_score |
Resets the player's score to zero. |
!counterbreak_lives |
Resets the player's lives to !initial_lives. |
Each counterbreak option can have one of these values:
| Name | Description |
|---|---|
!fast_transitions |
If 1, level transitions will be much faster than usual. |
!initial_facing_fix |
If 1, it fixes the issue where some sprites don't face Mario when entering a level for the first time. It's suggested to enable the fix to make sprite behavior consistent between the first and all the next level reloads. |
!time_up_fix |
If 1, it fixes the issue where dying in a level with the timer set to 0 shows the "TIME UP!" message when exiting the level. |
!item_box_fix |
If 1, it fixes the issue where you can drop the reserve item in the item box by pressing Select while Mario is dying or while the Retry prompt is shown. |
!no_yoshi_intro_fix |
If 1, it fixes the weird behavior where levels 12E-13B always use the "No Yoshi Sign 2" intro regardless of the tileset / custom "No Yoshi Intro" patches. |
!disable_hurry_up |
If 1, it removes the "Hurry up!" SFX and tempo hike effect that happens when reaching 100 seconds on the timer. If not disabled, the death song will be played when dying during the tempo hike effect (regardless of the settings), to reset the tempo of the song after respawning. |
!pipe_entrance_freeze |
This controls whether to freeze sprites during a level's pipe entrance (it doesn't affect other entrance types).
|
!always_start_select |
If 1, Start+Select out of a level is always possible. Otherwise, it's only possible with the instant Retry option, or with the Retry prompt with the "EXIT" option disabled, or if the level is already beaten like vanilla. |
!death_camera_lock |
If 1, the camera won't scroll vertically during Mario's death animation. |
!reset_dsx |
If 1, DSX (dynamic) sprites status is reset on level load. |
!reset_rng |
This determines the global behavior of Retry for RNG resetting. Note that this can be changed for each sublevel (see Local Settings - %reset_rng).
!use_legacy_tables = 1, this option is ignored and you need to edit the reset_rng table in legacy/tables.asm.
|
!reset_boo_rings |
This determines what happens when you die on the title screen.
|
!reset_frame_counters |
If 1, the frame counters will be reset on each level load, making things like animations and certain sprites' behaviors (like Puntin' Chucks throw timing) more consistent between level attempts. |
!title_death_behavior |
This determines what happens when you die on the title screen.
|
| Name | Description |
|---|---|
!death_sfx
!death_sfx_addr
|
SFX to play when dying (!death_sfx = $00 → no SFX). Only played if the death song is skipped (for example, it's not played if the level uses vanilla death, but it is played when Retry is enabled).
You can find a suitable death sfx inside resources/amk/sfx (see AddmusicK Resources for details).
|
!death_jingle_alt |
The alternative death jingle which will be played after the !death_sfx when "EXIT" is chosen in the prompt (only available when you're using AddmusicK).To use it, insert the alternative death jingle with AddmusicK (you can find a suitable alt death jingle inside resources/amk/music), then you set this option to the song number you inserted it as. If this is $FF, the alternative death jingle is not used.See AddmusicK Resources for more information. |
!option_sfx
!option_sfx_addr
|
SFX to play when selecting an option in the prompt (!option_sfx = $00 → no SFX). |
!cursor_sfx
!cursor_sfx_addr
|
SFX to play when the prompt cursor moves (!cursor_sfx = $00 → no SFX). |
!room_cp_sfx
!room_cp_sfx_addr
|
SFX to play when getting a checkpoint through a room transition (!room_cp_sfx = $00 → no SFX). This is meant as a way to inform the player that they just got a room checkpoint.
If enabled, you can disable it in specific sublevels: see Local Settings - %no_room_cp_sfx.
|
!enter_level_sfx
!enter_level_sfx_addr
!enter_level_delay
|
SFX to play when entering a level from the Overworld (!enter_level_sfx = $00 → no SFX) similarly to what SMB3 does. If the SFX gets cut out, increase !enter_level_delay. |
!default_sfx_echo |
This controls the default SFX echo option for all levels and what the Local Settings - %sfx_echo option does.
!default_sfx_echo = 1 has no effect if !use_legacy_tables = 1 (see Misc settings).
|
| Name | Description |
|---|---|
!sram_feature |
If 1, a custom SRAM expansion patch will be inserted as well. By default, it will save the custom checkpoint status and death counter to SRAM. To make your own stuff saved as well, check out the SRAM Tables. Note that this is incompatible with the SRAM+ or BW-RAM+ patches: if they are detected, it will be disabled automatically. Check out SRAM & BW-RAM Info for details. |
!save_on_checkpoint |
If 1, the game will automatically save everytime a new checkpoint is obtained (when touching a midway or getting a cp on a room transition). If using this, make sure there's no softlocks (for example, a level is unbeatable from one of the checkpoints). |
!save_after_game_over |
If 1, the game will automatically save after getting a game over. This can be useful when paired with the option of not reloading some data from SRAM after a game over (see SRAM Tables for info), if you want some things to retain even if the player got a game over before saving them (for example, the death counter). This ensures that they will be saved to SRAM when this happens. |
| Name | Description |
|---|---|
!use_custom_midway_bar |
If 1, Retry will install a custom midway object in the ROM, insertable in levels by using object 2D. These objects allow you to have multiple midways in the same level, each with a different entrance. For more info on how to use them, check out Midway Instructions page. This can be used alongside ObjecTool, but you'll need to modify that patch a bit (see the ObjecTool Info page for details). |
!max_custom_midway_num |
If !use_custom_midway_bar = 1, this setting determines how many custom midways you can have in the same sublevel. The more you set, the more free ram is needed (4 bytes for each). |
General settings for the Retry prompt behavior, that apply for both types of Retry prompt. Note: if you're looking to customize the prompt GFX usage or appearance, look at Prompt Tilemap Settings.
| Name | Description |
|---|---|
!prompt_type |
|
!fast_prompt |
If 1, the prompt will show up immediately after dying. Otherwise, it will show up halfway through (or right after, depending on !retry_death_animation) the death animation, but pressing A/B during it will skip the animation. |
!retry_death_animation |
|
!prompt_show_delay |
How many frames after dying the prompt shows up when using !fast_prompt = 0 and !retry_death_animation = 0. |
!prompt_freeze |
|
!prompt_cooldown |
Cooldown (max $7F) for disabling directional inputs when the prompt shows up, which prevents selecting the "EXIT" option for a few frames. Can be useful to prevent accidentally pressing "EXIT" when dying while pressing other buttons.
Set to $00 to disable this.
|
!exit_animation |
This controls what happens when hitting "EXIT" on the Retry prompt. Note: when dying before going to Game Over, the vanilla animation will be always played regardless.
|
!no_exit_option |
Set to 1 if you don't want the "EXIT" option in the prompt. This will also allow the player to Start+Select when having the prompt. Note: you can also change this on the fly (see RAM Map page for details). |
!no_prompt_bg |
Set to 1 to remove the black background, but leave the options on screen. Note: you can also change this on the fly (see RAM Map page for details). |
!dim_screen |
Set to 1 to dim the screen while the prompt is shown. |
!brightness |
Only used if !dim_screen = 1. Can go from 0 to 15: 15 = max brightness, 0 = black. |
!exit_button
!exit_button_address
|
This defines a button that will count as hitting "EXIT" on the menu while the prompt is shown. It could be handy if you disabled the exit option, but still want a quick way of exiting the level. By default it's "Select".
Set !exit_button = $00 to disable this.
For more information on these values, see $7E0016 on the SMWCentral RAM Map.
|
!no_prompt_draw |
If 1, the Retry prompt won't be drawn to the screen (but still function normally). Use this to have the most minimalistic Retry, without having to use the instant Retry option. You should also use !no_prompt_bg = 1 or the black background will still appear (also you probably want !no_exit_option = 1). Note that this renders all the prompt options below useless (and no sprite GFX space needs to be reserved). |
!cursor_setting |
|
!cursor_oscillate_speed |
How fast the cursor oscillates (only used when !cursor_setting = 2) Higher = slower. Possible values: 0 to 5. |
!prompt_wave
!prompt_wave_speed
|
If !prompt_wave = 1, the letters in the option selected on the Retry prompt will wave up and down. The speed is determined by !prompt_wave_speed. Possible values: 0 to 5 (0 = fastest, 5 = slowest).
Note: this is incompatible with the prompt black background, as it will cause cutoff (use !no_prompt_bg = 1).
|
!no_score_sprites_on_death |
If 1, score sprites (points, 1-Up) will be removed when dying, if Retry prompt is enabled in the level. This can be used to replace their graphics ($29, $38-$39, $44-$47, $54-$57) with the Retry prompt tiles instead of having to reserve sprite tiles for the prompt. |
These options only apply when using the prompt box (!prompt_type = 0).
| Name | Description |
|---|---|
!prompt_box_text_x_pos
!prompt_box_text_y_pos
|
X/Y position of the first tile in the prompt box (the cursor on the first line). If the black box is enabled, you should not change the Y position or it will look glitched, but you're free to change the X position down to $38. Note: you can also change these on the fly (see RAM Map page for details). |
!prompt_box_exit_y_offset |
Y offset of the prompt "EXIT" line from the "RETRY" line. Note: only change this with !no_prompt_box = 1, or the prompt will look glitched.
|
!prompt_box_speed |
How fast the prompt expands/shrinks (it must evenly divide 72). |
These options only apply when using the prompt bar (!prompt_type = 1).
| Name | Description |
|---|---|
!prompt_bar_position!prompt_bar_size
|
Vertical position and size of the prompt bar when fully expanded. Note: make sure that the bar stays within the screen: in practice, !prompt_bar_position must be between 0 and $E0 and !prompt_bar_position + !prompt_bar_size must be less than or equal to $E0.
|
!prompt_bar_direction |
|
!prompt_bar_text_x_pos
!prompt_bar_text_y_pos
|
X/Y position of the first tile in the prompt bar (the cursor on the left line). Note: avoid to put it at the very top or bottom of the screen ( !prompt_bar_text_y_pos < $08 or !prompt_bar_text_y_pos > $D0) or the text won't be visible on some TVs.Note: if using !no_prompt_bg = 0, make sure that the Y position is within the bounds of the bar (!prompt_bar_text_y_pos must be greater ot equal than !prompt_bar_position and less than or equal than !prompt_bar_position + !prompt_bar_size - 8).Note: you can also change these on the fly (see RAM Map page for details). |
!prompt_bar_exit_x_offset |
X offset of the prompt "EXIT" word from the "RETRY" word. |
!prompt_bar_speed |
How fast the prompt expands/shrinks (it must evenly divide !prompt_bar_size, and if !prompt_bar_direction = 2 then it also must be even). |
Settings for the sprite status bar that comes with the Retry system.
| Name | Description |
|---|---|
!sprite_status_bar |
If 1, a sprite status bar will be installed allowing you to display the item box, coin/Yoshi coin counter and timer in levels with sprites, which keeps layer 3 working properly. The sprites use dynamic tiles, meaning you'll need to reserve some GFX space in your SP slots for them. Item box, coins and timer use one 16x16 tile each, but they only need to be reserved when actually using them, and you can choose which tiles to use for each level (or to just disable any or all of them in specific levels) using the Local Settings - Configure Sprite Status Bar). |
!remove_vanilla_status_bar |
If 1, it disables the original game's status bar (including the IRQ) which prevents layer 3 from messing up. Differently than the normal remove status bar patch, this keeps the status bar functions (lives, coins, bonus stars, score, timer, reserve item) running in the background. Suggested to use if you're using !sprite_status_bar = 1. Don't use this if you're using similar patches such as "RAM Toggled Status Bar". |
The following settings are only relevant if !sprite_status_bar = 1.
Default sprite tile and palette to use for each element in the status bar. These settings can be overridden per-level by using the Local Settings - Configure Sprite Status Bar. If both !default_xxx_tile and !default_xxx_palette are $00, the item will be hidden by default.
Note that since the elements are loaded at runtime in VRAM, you need to reserve graphics space for each one that is enabled. The specifics of how much space each one takes is described in the table. If you don't want to reserve space globally (in SP1/2), you can choose to use the local settings to reserve different tiles in each level depending on what is unused there (you can even choose to put them in SP3/4 by adding $100 to the tile number).
| Element | Name | Description |
|---|---|---|
| Item box | !default_item_box_tile |
Sprite tile number used by the item box by default. This uses 4 8x8 tiles, arranged as a 16x16 box (except if !8x8_item_box_tile = 1, in which case it only uses 1 8x8 tile). |
!default_item_box_palette |
Palette used by the item box by default | |
| Timer | !default_timer_tile |
Sprite tile number used by the timer by default. This uses 4 8x8 tiles, arranged as a 16x16 box. |
!default_timer_palette |
Palette used by the timer by default | |
| Coins | !default_coin_counter_tile |
Sprite tile number used by the coin counter by default. This uses 4 8x8 tiles, arranged as a 16x16 box. |
!default_coin_counter_palette |
Palette used by the coin counter by default | |
| Lives | !default_lives_counter_tile |
Sprite tile number used by the lives counter by default (disabled by default). This uses 3 8x8 tiles, arranged as a 16x16 box with the top right corner unused (you can use it for your own stuff). |
!default_lives_counter_palette |
Palette used by the lives counter by default (the included GFX is tailored for vanilla palette 9, using the berry colors) | |
| Bonus stars | !default_bonus_stars_tile |
Sprite tile number used by the bonus stars counter by default (disabled by default). This uses 3 8x8 tiles, arranged as a 16x16 box with the top right corner unused (you can use it for your own stuff). |
!default_bonus_stars_palette |
Palette used by the bonus stars counter by default (the included GFX is tailored for vanilla palette 9, using the berry colors) | |
| Deaths | !default_death_counter_tile |
Sprite tile number used by the death counter by default (disabled by default). This uses 6 8x8 tiles, arranged as a 24x16 box. |
!default_death_counter_palette |
Palette used by the death counter by default |
With these settings you can customize the position on the screen of each sprite status bar element (icons and counters independently), and also enable or disable an "X" tile next to the counters for those applicable (similarly to the vanilla status bar).
| Element | Name | Description |
|---|---|---|
| Item box | !item_box_x_pos |
X position on the screen to draw the item box |
!item_box_y_pos |
Y position on the screen to draw the item box | |
| Timer | !timer_icon_x_pos |
X position on the screen to draw the timer icon |
!timer_icon_y_pos |
Y position on the screen to draw the timer icon | |
!timer_X_enabled |
If 1, the "X" tile is drawn together with the timer | |
!timer_X_x_pos |
X position on the screen to draw the timer "X" tile | |
!timer_Y_x_pos |
Y position on the screen to draw the timer "X" tile | |
!timer_counter_x_pos |
X position on the screen to draw the timer counter | |
!timer_counter_y_pos |
Y position on the screen to draw the timer counter | |
!timer_counter_right_align |
The alignment determines where the timer counter is drawn when there's less digits to draw (because of leading 0s). If 1, the timer counter is right aligned, otherwise it is left aligned | |
| Coins | !coin_icon_x_pos |
X position on the screen to draw the normal coin icon |
!coin_icon_y_pos |
Y position on the screen to draw the normal coin icon | |
!coin_X_enabled |
If 1, the "X" tile is drawn together with the coin counter | |
!coin_X_x_pos |
X position on the screen to draw the coin counter "X" tile | |
!coin_Y_x_pos |
Y position on the screen to draw the coin counter "X" tile | |
!coin_counter_x_pos |
X position on the screen to draw the normal coin counter | |
!coin_counter_y_pos |
Y position on the screen to draw the normal coin counter | |
!coin_counter_right_align |
The alignment determines where the coin counter is drawn when there's less digits to draw (because of leading 0s). If 1, the coin counter is right aligned, otherwise it is left aligned | |
| Dragon coins | !dc_counter_x_pos |
X position on the screen to draw the Dragon/Yoshi coin counter |
!dc_counter_y_pos |
Y position on the screen to draw the Dragon/Yoshi coin counter | |
| Lives | !lives_icon_x_pos |
X position on the screen to draw the lives icon |
!lives_icon_y_pos |
Y position on the screen to draw the lives icon | |
!lives_X_enabled |
If 1, the "X" tile is drawn together with the lives counter. | |
!lives_X_x_pos |
X position on the screen to draw the lives counter "X" tile. | |
!lives_Y_x_pos |
Y position on the screen to draw the lives counter "X" tile. | |
!lives_counter_x_pos |
X position on the screen to draw the lives counter | |
!lives_counter_y_pos |
Y position on the screen to draw the lives counter | |
!lives_counter_right_align |
The alignment determines where the lives counter is drawn when there's less digits to draw (because of leading 0s). If 1, the lives counter is right aligned, otherwise it is left aligned | |
| Bonus stars | !bonus_stars_icon_x_pos |
X position on the screen to draw the bonus stars icon |
!bonus_stars_icon_y_pos |
Y position on the screen to draw the bonus stars icon | |
!bonus_stars_X_enabled |
If 1, the "X" tile is drawn together with the bonus stars counter. | |
!bonus_stars_X_x_pos |
X position on the screen to draw the bonus stars counter "X" tile. | |
!bonus_stars_Y_x_pos |
Y position on the screen to draw the bonus stars counter "X" tile. | |
!bonus_stars_counter_x_pos |
X position on the screen to draw the bonus stars counter | |
!bonus_stars_counter_y_pos |
Y position on the screen to draw the bonus stars counter | |
!bonus_stars_right_align |
The alignment determines where the bonus stars counter is drawn when there's less digits to draw (because of leading 0s). If 1, the bonus stars counter is right aligned, otherwise it is left aligned | |
| Deaths | !death_icon_x_pos |
X position on the screen to draw the deaths icon |
!death_icon_y_pos |
Y position on the screen to draw the deaths icon | |
!death_X_enabled |
If 1, the "X" tile is drawn together with the death counter. | |
!death_X_x_pos |
X position on the screen to draw the death counter "X" tile. | |
!death_Y_x_pos |
Y position on the screen to draw the death counter "X" tile. | |
!death_counter_x_pos |
X position on the screen to draw the deaths counter | |
!death_counter_y_pos |
Y position on the screen to draw the deaths counter | |
!death_counter_right_align |
The alignment determines where the death counter is drawn when there's less digits to draw (because of leading 0s). If 1, the death counter is right aligned, otherwise it is left aligned |
| Name | Description |
|---|---|
!X_tile |
Tile number to use for the "X" tile (single 8x8). |
!X_palette |
Palette to use for the "X" tile. |
!always_draw_box |
If 1, the item box will always be drawn (if set to be drawn for the specific level). Otherwise, it will only be drawn when having an item in reserve. |
!8x8_item_box_tile |
If 1, the item box will use an 8x8 tile instead of a 16x16 tile. |
!draw_all_dc_collected |
If 1, when collecting all DCs in a level they'll be displayed in the status bar. If 0, they won't be displayed (like in vanilla). |
!default_coin_counter_behavior |
Changes which of the coin counter elements are drawn by default (assuming !default_coin_counter_tile and !default_coin_counter_palette enable these counters to be drawn):
|
!draw_leading_zeroes |
If 1, leading zeroes in the counters will be drawn. Note that this renders all the !xxx_align_right options useless (since all digits are always drawn, the alignment does not matter). |
| Name | Description |
|---|---|
!draw_retry_indicator |
If 1, an 8x8 indicator will be drawn on the sprite status bar in levels where Retry prompt or instant Retry is enabled. This could be useful for collabs. The other settings control how and where it is drawn. The tile you choose will be overwritten at runtime by the indicator tile when needed. |
!retry_indicator_tile |
Location to uploade the tile in VRAM. (Default SP1) |
!retry_indicator_palette |
Sprite palette number used by the retry indicator tile. |
!retry_indicator_x_pos |
X position on the screen to draw the indicator. |
!retry_indicator_y_pos |
Y position on the screen to draw the indicator. |
| Name | Description |
|---|---|
!status_death_counter |
If 1, a death counter will replace the lives on the vanilla status bar. |
!status_death_word |
If 1, the "DEATHS" word will replace Mario's name on the vanilla status bar. If you want to customize the text or its palette, look in retry_config/code/hijacks/death_counter.asm. |
!ow_death_counter |
If 1, a death counter will be written to the Overworld border. Note: this only handles the counter, if you want other stuff like "DEATHS" appear, use LM's layer 3 editor. |
!ow_death_counter_x_pos |
Tile X position of the death counter on the Overworld. |
!ow_death_counter_y_pos |
Tile Y position of the death counter on the Overworld. |
!ow_death_counter_props |
YXPCCCTT properties of the death counter on the Overworld, configured as l3_prop(6,1). The first digit is the palette number, the second is the GFX page number (0 or 1). |
| Name | Description |
|---|---|
!use_legacy_tables |
If 1, the level-specific Retry settings will be loaded from the legacy/tables.asm file instead of the settings_local.asm file. Use this if you prefer the old table-based approach rather than the new macro-based approach. |