EarthBound/ROM map

From Data Crystal
< EarthBound
Revision as of 21:35, 9 September 2005 by AnyoneEB (talk | contribs) (Changed todo message at top of page. Started changing links, unsure on how to change them.)
Jump to navigation Jump to search

This page needs to be formatted a bit differently. The general information on ROM maps should go on its own page. The links should be changed to point to the Earthbound pseudo-namespace and to not use BA's overly descriptive naming.


The ROM Map is a linear breakdown of the hard-coded data in the EarthBound ROM. For the purposes of this database, it serves as a jumping-off point to more specific documents regarding each identified block of code.

Notes on the ROM Map

Reading the data

The ROM Map breaks down the entirety of EarthBound's raw code into specific block by function and type of data. The start address and the end address of each block are given, plus a total byte size (shown in parentheses). All addresses are raw hex format, assuming a 24 Mbit headered ROM. Following the location and size is a brief description of the data contained within. The descriptions are linked to seperate topics with details on each block.

Categorization of blocks

Note that the categorizations below are meant strictly as a means of demarking various areas. The label given does not neccessarily mean that all the data is logically grouped in that category. For example, music and sound data are scattered throughout the ROM. Please take any seeming incongruities between actual data and the categories in stride.

The ROM Map

Primary Engine and Critical Data Bank

  • 000000 to 0001FF (0001FF) = ROM Header Data
  • 000200 to 0081FF (007FFF) = Unclassified Data
  • 008200 to 00836F (00016F) = Important ASM (EDIT AT OWN RISK)
  • 008370 to 008590 (000220) = More Important ASM (EDIT AT OWN RISK)
  • 008591 to 00AD05 (002774) = Unclassified Data
  • 00AD06 to 00ADA7 (0000A1) = Music Loading Routine
  • 00ADA8 to 0212E5 (01653D) = Unclassified Data
  • 0212E6 to 0215AB (0002C5) = HP/PP Rolling Routine
  • 0215AC to 0301B6 (00EC0A) = Unclassified Data
  • 0301B7 to 03E44F (00E298) = Largely Movement Data, Possibly Incongruous
  • 03E450 to 03E5F7 (0001A7) = Dialog Window Attributes Table
  • 03E5F8 to 03EA73 (00047B) = Unclassified Data
  • 03EA74 to 03EB68 (0000F4) = Debug Mode Commands
  • 03EB69 to 03F253 (0006EA) = Unclassified Data
  • 03F254 to 03F28F (00003B) = Primary Font Table
  • 03F290 to 03F3EC (00015C) = PSI Submenu Text
  • 03F3ED to 03F4B1 (0000C4) = ASM Routine - Indeterminate Function
  • 03F4B1 to 03F4B4 (000004) = Unclassified Data
  • 03F4B5 to 03F5C4 (00010F) = Character Graphics Control Table
  • 03F5C5 to 03FD2A (000765) = Unclassified Data, Partially ASM
  • 03FD2B to 03FD46 (00001B) = Name Registration String
  • 03FD47 to 0402D3 (00058C) = Unclassified Data
  • 0402D4 to 040D51 (000A7D) = Movement Pattern Pointer Table
  • 040D52 to 04189D (000B4A) = Unclassified Data, Partially ASM
  • 04189E to 0419C7 (000129) = Decompression Routine
  • 0419C8 to 043163 (00179B) = Unclassified Data
  • 043164 to 04318C (000028) = Map Data Pointer Table
  • 04318D to 04374F (0004C2) = Unclassified Data
  • 043750 to 043768 (000018) = Goods Submenu Commands
  • 043769 to 045D4C (0025E3) = Unclassified Data, Partially ASM
  • 045D4D to 045E0F (0000C3) = Status Text Strings
  • 045E10 to 045E85 (00007B) = Equipment Submenu Text
  • 045E86 to 048236 (0023B0) = Unclassified Data
  • 048237 to 04830D (0000D6) = Lumine Hall Text
  • 04830E to 04A0A3 (001D95) = Unclassified Data, Partially ASM
  • 04A0A4 to 04A0C3 (00001F) = Movement-Referenced Text String Pointer Table
  • 04A0C4 to 04A1E0 (00011C) = ASM Routine - Indeterminate Function
  • 04A1E1 to 04A28A (0000A9) = Battle Command Strings
  • 04A28B to 04A508 (00027D) = Unclassified Data
  • 04A509 to 04A530 (000027) = Prayer Command Text Pointers
  • 04A531 to 04C25F (001D2E) = Unclassified Data
  • 04C260 to 04C4DC (00027C) = Startup Menu Text Strings
  • 04C4DD to 04F909 (00342C) = Unclassified Data
  • 04F90A to 04FB46 (00023C) = Music track pointer table <- Inaccurate
  • 04FB47 to 04FD41 (0001FA) = Sound/music pointer table <- Inaccurate
  • 04FD42 to 04FF49 (000207) = Parsing Routines for 04FB47 Block
  • 04FF4A to 0501FF (0002B5) = Unclassified Data

Text Bank

Animation Bank

Map Bank

Battle Bank

Primary Data Groups Bank

Map Construction Primary Bank

Anti-Piracy Screens Bank

Map Construction Secondary Bank

Miscellaneous Graphics Bank

Map Construction Ternary Bank

Secondary Engine and Critical Data Bank

Debug Menu Assembly Bank