This shows you the differences between two versions of the page.
— | super:intermediate_guides:message_boxes [2015/04/26 15:19] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ==== Tile, Table, and Palette locations ==== | ||
+ | |||
+ | * HUD/layer 3/ | ||
+ | * Message Box Tile Tables: bank 85 or 0x28000 | ||
+ | * Palette: Supposedly, all but 1 palette come from the first 2 (CRE/HUD) palettes. | ||
+ | * Palette 08 - Pink Text, White Instruction Type (' | ||
+ | * Palette 0C - Blue Text (Can be used for White Instruction Type) | ||
+ | * Palette 18 - Green Text, Red Arrow (Save dialog) | ||
+ | * Palette 1C - Orange Text | ||
+ | |||
+ | ==== Tile Table Byte Explanation ==== | ||
+ | |||
+ | Tile Tables consist of 2 bytes, like 4E 28. The first byte is the tile number used in the tileset | ||
+ | that the table uses. Row 1 of the tile table goes from 00-0F, row 2 is from 10-1F, and row 3 is 20-2F, | ||
+ | and so on. If you open an unheadered rom in a tile editor and scroll down to D3200 and change to | ||
+ | view to gameboy mode, you can see how this is done a lot easier. In the example 4E 28, you see that | ||
+ | tile 4E (to the right of the ' | ||
+ | |||
+ | The second byte consists of 3 things all together as one: The Palette Number, the Tile Flip, and the | ||
+ | Priority Bit. You get the value of this byte by adding the 3 parts together, like, for our example, | ||
+ | 4E 28, you can only get the 28 by having a palette number of 08, a flip of 00, and a priority bit of | ||
+ | 20: 08 + 00 + 20 = 28. It's actually a bit more complex than that, but this is the easy way, and the | ||
+ | only way you really need to know. | ||
+ | |||
+ | The Palette Number can only be: 00, 04, 08, 0C, 10, 14, 18, 1C | ||
+ | |||
+ | The Tile Flip can only be: | ||
+ | * 00 - No flip | ||
+ | * 40 - Horizontal flip | ||
+ | * 80 - Vertical flip | ||
+ | * C0 - Horizontal and vertical flip | ||
+ | |||
+ | The Priority Bit can only be: 00 or 20 | ||
+ | * 00 - Places tiles behind layer 1, layer 2, and sprites. | ||
+ | * 20 - Places tiles in front of layer 1, layer 2, and sprites. | ||
+ | |||
+ | |||
+ | ==== Letter to HEX Conversion Table ==== | ||
+ | |||
+ | By request, I'm including conversion tables to make it easy to type the letters into a ROM with a hex | ||
+ | editor by seeing what their hex values are. Included is the original table and one for my map patch. | ||
+ | |||
+ | Also, there are two apostrophes, | ||
+ | an apostrophe, or they could be left single qoute and right single quote and one is used as an | ||
+ | apostrophe... it's up to you how you use it, as they aren't used in-game. | ||
+ | |||
+ | The item description text is complex, and not listed here. Use a tile editor for that. | ||
+ | |||
+ | Original ROM: | ||
+ | < | ||
+ | Letter: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z . , ' | ||
+ | Hex: E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF | ||
+ | </ | ||
+ | |||
+ | DC's Map Patch: | ||
+ | < | ||
+ | Letter: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z . , ' | ||
+ | Hex: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Other useful info ==== | ||
+ | |||
+ | Each line of a message box extends the entire screen. (32 8x8 pixel tiles) | ||
+ | |||
+ | The lines above and below each message box consists of a single table placed both at the top and | ||
+ | bottom of each message box, and is 1 screen wide (32 tiles)x 1 tile tall. You can add/ | ||
+ | tiles to alter the width of the large and small message boxes, but you must also alter all the message | ||
+ | boxes below that go with each size in order to make them appear correct. If you edit this blank space, | ||
+ | keep in mind that you are changing it for BOTH the top and bottom of the message boxes. | ||
+ | |||
+ | The message dialog boxes use the transparent tile at 0E for all the invisible space around the boxes, | ||
+ | or the Clearing Tiles. The priority bit hides these tiles behind layers 1 and 2, as well as sprites, | ||
+ | but can be seen if there is nothing on layer 2, or if part of layer 2 is transparent. By default, you | ||
+ | won't actually see those tiles because they are already using a transparent color. | ||
+ | |||
+ | The black part of the message boxes uses tile 4E by default, which is black in the right palettes. | ||
+ | The rest of the tiles are the letters and words at the bottom of the layer 3 tileset, as well as the | ||
+ | HUD selections. | ||
+ | |||
+ | You can use any tile in the layer 3 tileset in your messages. | ||
+ | Mini hint maps from item messages, anyone? | ||
+ | |||
+ | |||
+ | |||
+ | ==== Message box locations (in hex, clean headerless rom) ==== | ||
+ | |||
+ | ^ 28000-2803F | Blank lines above and below large (wide) message boxes (like missiles, power bombs, super missiles, items) | | ||
+ | ^ 28040-2807F | Blank lines above and below small (narrow) message boxes (like energy tank, reserve tank, beams, save) | | ||
+ | ^ 28080-2877E | ASM used to determine which message box top and bottom to load and which message to load. | | ||
+ | ^ 28426-28435 | in the ASM: Button Tiles. | ||
+ | ^ 2823F | in the ASM: '0E 00' | ||
+ | |||
+ | Button tiles: | ||
+ | E0 28 - A | ||
+ | E1 3C - B | ||
+ | F7 2C - X | ||
+ | F8 38 - Y | ||
+ | D0 38 - SEL | ||
+ | EB 38 - L | ||
+ | F1 38 - R | ||
+ | 4E 28 - (space, unused?) | ||
+ | |||
+ | |||
+ | ==== Message List ==== | ||
+ | |||
+ | ^ Energy Tank | 64 bytes, small | 2877F-287BE | | ||
+ | ^ Missile | ||
+ | | |word " | ||
+ | | |blank space line | 287FF-2883E | | ||
+ | | |top of missile icon | 2883F-2887E | | ||
+ | | |" | ||
+ | ^ Super Missile | ||
+ | | |words "Super Missile" | ||
+ | | |blank space line | 288FF-2893E | | ||
+ | | |top of S.Missile icon | 2893F-2897E | | ||
+ | | |" | ||
+ | ^ Power bomb | 256 bytes, large || | ||
+ | | | words "Power Bomb" | ||
+ | | | blank space line | 289FF-28A3E | | ||
+ | | | top of P. Bomb icon | 28A3F-28A7E | | ||
+ | | | " | ||
+ | ^ Grapple Beam | 256 bytes, large || | ||
+ | | | words " | ||
+ | | | blank space line | 28AFF-28B3E | | ||
+ | | | top of G. Beam icon | 28B3F-28B7E | | ||
+ | | | " | ||
+ | ^ X-Ray Scope | 256 bytes, large || | ||
+ | | | words "X-Ray Scope" | ||
+ | | | blank space line | 28BFF-28C3E | | ||
+ | | | top of X-Ray icon | 28C3F-28C7E | | ||
+ | | | " | ||
+ | ^ Varia Suit | 64 bytes, small | 28CBF-28CFE | | ||
+ | ^ Spring Ball | 64 bytes, small | 28CFF-28D3E | | ||
+ | ^ Morphing Ball | 64 bytes, small | 28D3F-28D7E | | ||
+ | ^ Screw Attack | ||
+ | ^ Hi-Jump | ||
+ | ^ Space Jump | 64 bytes, small | 28DFF-28E3E | | ||
+ | ^ Speed Booster | ||
+ | | | words "Speed Booster" | ||
+ | | | blank space line | 28E7F-28EBE | | ||
+ | | | blank space line | 28EBF-28EFE | | ||
+ | | | "press &" etc. text | 28EFF-28F3E | | ||
+ | ^ Charge Beam | 64 bytes, small | 28F3F-28F7E | | ||
+ | ^ Ice Beam | 64 bytes, small | 28F7F-28FBE | | ||
+ | ^ Wave Beam | 64 bytes, small | 28FBF-28FFE | | ||
+ | ^ Spazer | ||
+ | ^ Plasma Beam | 64 bytes, small | 2903F-2907E | | ||
+ | ^ Bomb | 256 bytes, large || | ||
+ | | | word " | ||
+ | | | top of Samus pic | 290BF-290FE | | ||
+ | | | middle of Samus pic | 290FF-2913E | | ||
+ | | | " | ||
+ | ^ Map Data Access Completed. | ||
+ | | | "Map Data Access" | ||
+ | | | blank space line | 291BF-291FE | | ||
+ | | | " | ||
+ | ^ Energy Recharge Completed. | ||
+ | | | " | ||
+ | | | blank space line | 2927F-292BE | | ||
+ | | | " | ||
+ | ^ Missile Reload Completed. | ||
+ | | | " | ||
+ | | | blank space line | 2933F-2937E | | ||
+ | | | " | ||
+ | ^ Would you like to save? | 256 bytes, small || | ||
+ | | | "Would You Like" | ||
+ | | | "To Save?" | ||
+ | | | blank space line | 2943F-2947E | | ||
+ | | | " | ||
+ | ^ Save Completed | ||
+ | ^ Reserve Tank | 64 bytes, small | 294FF-2953E | | ||
+ | ^ Gravity Suit | 64 bytes, small | 2953F-2957E | | ||
+ | | These next 3 tables go to the save dialog. Make sure to edit at least the 3 ' | ||
+ | ^ " | ||
+ | ^ " | ||
+ | ^ " | ||
+ | |||
+ | |||
+ | ==== Credits ==== | ||
+ | |||
+ | Wiki page based on DChronos' | ||
+ | |||
+ | Special thanks to Jathys for help on the color/ | ||
+ | as pointing me towards the location of the message box data. ^_^ | ||