EarthBound:Window statistics table

From Data Crystal
Jump to: navigation, search


Window statistics table
Game EarthBound
Start Address 0x008650
End Address 0x0088DF
# of Entries 8 (0x08)
Entry Length 82 bytes (0x52)
Total Length 656 bytes (0x290)
Back to the RAM map

The window statistics table stores information about currently open windows.

Format

Unknown


Position in window existence table


Top left corner X-coordinate


Top left corner Y-coordinate


Box width


Box height


X-coordinate of text-drawing cursor


Y-coordinate of text-drawing cursor


Unknown


Unknown (does bizarre things to text)


Font


The font being used to print text in this window.

  • 0x00 = Normal
  • 0x01 = Saturn
  • 0x02 = Small Font #1
  • 0x03 = Small Font #2 (has some glitching...)
  • 0x04 = Coffee Sequence


Unknown


Control code variables

  • Length: Unknown (likely the rest of the entry)
  • Offset within entry: 23 (0x17)
  • Range of values: Any values


Window Title "Number"

  • Length: 1 byte
  • Offset within entry: 59 (0x3B)
  • Range of values: Any values, but usually low integers, in order

If this byte is zero, the window does not have a title. Otherwise, this seems to act as some kind of offset to a range of tiles to use for the title. Setting it to higher values will cause a window's title to be filled in with other window border tiles, rolling HP meter tiles, status affliction tiles, etc.

If multiple windows are assigned titles (via the function $C2:032B), the first one gets title number 01, the second gets title number 02, and so on. Changing a window's title number to the title number of another will cause its title to change to whatever initial part of the other window's title will fit in the space allocated for the current window's title. Remaining space gets filled with junk.


Window Title String

  • Length: Null-terminated, maximum length 22 bytes (0x16)
  • Offset within entry: 60 (0x3C)
  • Range of values: Null-terminated string

The window's actual title, as a null-terminated string. Note that changing this value directly does not change the window's title; it seems to only be cached here, and this space is read from to generate the tile sequence that forms the actual title. The function $C2:032B is used to actually set a window's title.


This data is used for storage and variables by the control code parser. This range starts with two two-byte words followed a single byte known respectively as working memory, active memory, and secondary memory, though these names may not be the most accurate. Following these are two words and a byte again to and from which the working, active, and secondary memories can be copied. After these bytes, the rest of this entry seems to be used to store strings.