Mother 3/Gift box table: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
m (Lelegofrog moved page MOTHER 3/Gift box table to Mother 3/Gift box table: title consistency with TCRF)
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Infobox table|name=Gift Box Table
{{subpage|game=MOTHER 3:ROM map}}
{{Infobox table
|name=Gift Box Table
|game=MOTHER 3
|game=MOTHER 3
|loc=ROM
|loc=ROM
|start=0x1165C10
|start=0x1165C10
|end=0x1169C10
|end=0x1169C1B
|numentries=1024 (0x400)
|numentries=1024 (0x400)
|entrylength=4 bytes
|entrylength=16 bytes
|totallength=16384 bytes (0x4000)
|totallength=16384 bytes (0x400C)
}}
}}
==Table overview==
==Table overview==
This table contains 16 bytes entries for every gift in the game.<br>
This table contains 16 bytes entries for every gift in the game.<br>
It has 9 unused bytes, some of them have data.<br>
First value of the Table, at 04, is a pointer to the rest of the table... So to 0C.<br>
Gifts are always placed on the bottom right corner of tiles.<br>
It has 4 unused bytes.<br>
Do note that changing 02 and 03 will change where the gift's sprite is, but not its hitbox location.<br>
Do note that changing 06 and 07 will change where the gift's sprite is, but not its hitbox location.<br>
===Table Structure===
===Table Structure===
*[00]-[01]= Map index, since map index hexs go over FF, 02 contains the value that is over FF. Swapping them will give the correct index, so if 01= 5E and 02=03, the map will be 035E.<br>
*[00]=It has different outcomes based on what are the two hex values of the byte. 21 must be examined as 2 and 1. If the first value is even, the gift will display as normal, if it's odd the gift box won't be displayed and it will access a weird moving entity debug mode where the game slows down (Not FPS, the game). It will write various values to the RAM if the gift is collected (the gift can't be seen, but it's still there). If the first value is greater than 8 (included), the box will give DP when it's interacted with. The second value will determine the box's color: if it's 0 or 1, it will be red, if it's 2 it will blue, but the text won't be printed, if it's 3 the color will be blue and it will work as normal, if is 4 or 5 it will glitch all boxes and they won't display sometimes, and last, if it's greater than 6 (included) it will access the strange debug mode from before.
*[02]=The gift box's sprite's X tileset coordinate. It goes from left (00) to right.<br>
*[01]=Dummy byte, the second half of the byte must be set to 0, otherwise you won't be able to interact with the gift box.<br>
*[03]=The gift box's sprite's Y tileset coordinate. It goes from top (00) to bottom.<br>
*[02-03]=The first half of both of these values will determine how many items a box will give, for example, if 02 is 10 and 03 is 20, it will give hex 21, or 33, of one item. The maximum number of items a box can give is 127, or 7F.<br>
*[04]=Hex value of the item in the gift box.<br>
*[04]-[05]= Map index, since map index hexs go over FF, 05 contains the value that is over FF. Swapping them will give the correct index, so if 04= 5E and 05=03, the map will be 035E.<br>
*[05]=Changing this from 00 will make the game not show the "X got an item." message.<br>
*[06]=The gift box's sprite's X tileset coordinate. It goes from left (00) to right.<br>
*[06-07]=Dummy bytes.<br>
*[07]=The gift box's sprite's Y tileset coordinate. It goes from top (00) to bottom.<br>
*[08]=Unique identifier of the gift box, it's used to check if a box has already been opened, this way an opened box during Flint's Chapter will remain opened during Duster's one because they have the same identifier. 83 is the exception, it's the Wess's Thunder Bomb's gift box.<br>
*[08]=Hex value of the item in the gift box.<br>
*[09-0B]=Dummy bytes.<br>
*[09]=Changing this from 00 will make the game not show the "X got an item." message.<br>
*[0C]=Doesn't do anything, but is set for every gift box.(?) (Always set to 01 or 03)<br>
*[0A-0B]=How many DP a gift box will give. For example, if 0A is FF and 0B is 10, the box will give 10FF DP. The maximum value is 65535, FFFF.<br>
*[0D]=Dummy byte.<br>
*[0C-OD]=Unique identifier of the gift box, it's used to check if a box has already been opened, this way an opened box during Flint's Chapter will remain opened during Duster's one because they have the same identifier. 83 is the exception, it's the Wess's Thunder Bomb's gift box.<br>
*[0E]=Doesn't do anything, but is set for every gift box.(?) (Always set to 10, 30 or 40)<br>
*[0E-0F]=Dummy bytes.<br>
*[0F]=Dummy byte, when changed doesn't do anything, but it's set for some gift in unused maps.(If set=01)<br>

Latest revision as of 02:03, 20 May 2024

This is a sub-page of Mother 3.

Gift Box Table
Game MOTHER 3
Start Address 0x1165C10
End Address 0x1169C1B
# of Entries 1024 (0x400)
Entry Length 16 bytes
Total Length 16384 bytes (0x400C)
Back to the ROM map

Table overview

This table contains 16 bytes entries for every gift in the game.
First value of the Table, at 04, is a pointer to the rest of the table... So to 0C.
It has 4 unused bytes.
Do note that changing 06 and 07 will change where the gift's sprite is, but not its hitbox location.

Table Structure

  • [00]=It has different outcomes based on what are the two hex values of the byte. 21 must be examined as 2 and 1. If the first value is even, the gift will display as normal, if it's odd the gift box won't be displayed and it will access a weird moving entity debug mode where the game slows down (Not FPS, the game). It will write various values to the RAM if the gift is collected (the gift can't be seen, but it's still there). If the first value is greater than 8 (included), the box will give DP when it's interacted with. The second value will determine the box's color: if it's 0 or 1, it will be red, if it's 2 it will blue, but the text won't be printed, if it's 3 the color will be blue and it will work as normal, if is 4 or 5 it will glitch all boxes and they won't display sometimes, and last, if it's greater than 6 (included) it will access the strange debug mode from before.
  • [01]=Dummy byte, the second half of the byte must be set to 0, otherwise you won't be able to interact with the gift box.
  • [02-03]=The first half of both of these values will determine how many items a box will give, for example, if 02 is 10 and 03 is 20, it will give hex 21, or 33, of one item. The maximum number of items a box can give is 127, or 7F.
  • [04]-[05]= Map index, since map index hexs go over FF, 05 contains the value that is over FF. Swapping them will give the correct index, so if 04= 5E and 05=03, the map will be 035E.
  • [06]=The gift box's sprite's X tileset coordinate. It goes from left (00) to right.
  • [07]=The gift box's sprite's Y tileset coordinate. It goes from top (00) to bottom.
  • [08]=Hex value of the item in the gift box.
  • [09]=Changing this from 00 will make the game not show the "X got an item." message.
  • [0A-0B]=How many DP a gift box will give. For example, if 0A is FF and 0B is 10, the box will give 10FF DP. The maximum value is 65535, FFFF.
  • [0C-OD]=Unique identifier of the gift box, it's used to check if a box has already been opened, this way an opened box during Flint's Chapter will remain opened during Duster's one because they have the same identifier. 83 is the exception, it's the Wess's Thunder Bomb's gift box.
  • [0E-0F]=Dummy bytes.