Retry Prompt Tilemap Settings

This section describes how to edit the Retry prompt by using the prompt_tilemap.asm file.

If you're here just because you're getting glitched sprite tiles when the Retry prompt shows up, check out the Basic Settings.

Contents


Basic Settings

Name Description
!prompt_tile_cursor
!prompt_tiles_line1
!prompt_tiles_line2
Sprite tile numbers used by the prompt tiles ($00-$FF = SP1/SP2, $100-$1FF = SP3/SP4). These will be uploaded dynamically during gameplay when needed (and only those that are needed).
The default values should be fine in a lot of cases, since they just overwrite some Mario animation tiles that are not needed during death, but you may need to change them if you have some other patch installed that uses dynamic tiles (like 32x32 Mario or Custom Powerups) and you notice some glitchy tiles when the prompt appears.
  • !prompt_tile_cursor is a single value but, if the black Retry background is enabled (!no_prompt_bg = 0), it uses three adjacent 8x8 tiles (so $20 means it will overwrite $20, $21, $22), otherwise just one 8x8 tile.
  • !prompt_tiles_line1 is a list of 8x8 tiles that will be used for the first line of the prompt (by default it's 4 values because RETRY has 4 unique letters: R, E, T, Y).
  • !prompt_tiles_line2 is a list of 8x8 tiles that will be used additionally for the second line of the prompt (by default it's 2 values because EXIT has the 2 additional letters X and I, while E and T are already accounted for in the first line). Note that this is unused if the exit option is disabled (!no_exit_option = 1) or if all the tiles needed for the second line are already defined in the first line, so you should comment it (add ; before it) to avoid uploading garbage tiles.
!prompt_pal_letter
!prompt_pal_cursor
The palette row used by the cursor and the letter tiles. Note that they use sprite palettes.

Advanced Settings

These options allow you to modify the "alphabet" used for the Retry prompt text and to specify the words that will be displayed in the prompt. Obviously you'll also need to edit the Retry gfx files to add new letters to the alphabet, if needed.
Name Description
!prompt_gfx_index_cursor
!prompt_gfx_index_line1
!prompt_gfx_index_line2
These options specify which tiles of the gfx file correspond to the tiles used for the cursor, for the first line and for the second line. The gfx files used for this are gfx/prompt1.bin (used when the black box is enabled) and gfx/prompt2.bin (used when the black box id disabled).
The values are indexes to the tiles in the gfx file, starting from 0. So for example, with the default gfx files, the letter R would be index 3 (since it's the fourth tile).
  • !prompt_gfx_index_cursor is the index of the cursor tile. Note that the gfx file also needs to have two "empty" tiles (black tiles for prompt1.bin, transparent tiles for prompt2.bin) right next to the cursor. You usually wouldn't need to edit this as you would just edit the text itself.
  • !prompt_gfx_index_line1 is the list of indexes of the unique tiles needed for the first line. By default it corresponds to the indexes of the letters R, E, T, Y. Note that the amount of indexes should correspond to the amount of values in !prompt_tiles_line1.
  • !prompt_gfx_index_line2 is the list of indexes of the additional unique tiles needed for the second line. By default it corresponds to the indexes of the letters X and I, since E and T are already included in the first list. Note that the amount of indexes should correspond to the amount of values in !prompt_tiles_line2. Note that this is unused if the exit option is disabled (!no_exit_option = 1) or if all the tiles needed for the second line are already defined in the first line, so you should comment it (add a ; before it) to avoid uploading garbage tiles.
!prompt_tile_index_line1
!prompt_tile_index_line2
These settings is how you specify which tiles are actually drawn in the prompt for the two lines.
To find this out, note down the string of all the letters specified by !prompt_gfx_index_line1 and !prompt_gfx_index_line2 (in the same order). Then, in the defines you put the tiles as indexes to this string you constructed.
For example, the default settings specify RETY and XI, so the complete string is RETYXI. This means that R = 0, E = 1, T = 2, Y = 3, X = 4, I = 5.
So, to draw RETRY on the first line !prompt_tile_index_line1 = 0,1,2,0,3, and to draw EXIT on the second line !prompt_tile_index_line2 = 1,4,5,2.
If a line has multiple words, you can use -1 in the list to denote a space, without having to add extra gfx for it (if the box is enabled, the space will be the black square, otherwise it just skips to the next tile).
In these lists you can specify any amount of tiles you want, but keep in mind that if the black background is enabled you'll be constrained by the prompt box/bar size (although you can change !prompt_box_text_x_pos/!prompt_bar_text_x_pos in settings_global.asm if you need more space). If it is disabled, you'll be constrained by the screen space.
Note that !prompt_tile_index_line2 is unused if the exit option is disabled (!no_exit_option = 1), so you can comment it to save some ROM space (add ; before it).

Tilemap Generation Tool

If you want to avoid hex brainrot you can use this simple tool to generate the settings for you, based on the text you want to show on the prompt. Then just copy them and paste them over the corresponding settings in the prompt_tilemap.asm asm file.

Both lines are case sensitive (usually you want everything to be all caps though), and the second line can be left empty if you're not using the "Exit" option (!no_exit_option = 1).

The tool output will be: how many values need to be specified in the prompt tiles lists (you need to choose these values yourself), the contents of the gfx/tile index lists, and a visual of how the prompt1.bin/prompt2.bin gfx file should be layed out (you need to edit the gfx yourself). In the gfx layout, "▶" denotes the cursor tile and "⬜" the "empty" tile (black or transparent square depending on the gfx file).

Note that in some cases some defines might start with ; and it's important that it is kept in the asm file.