Difference between revisions of "EarthBound:ROM map"

From Data Crystal
Jump to navigation Jump to search
(Fixed two links broken when links were redone. Fixed lengths with a PHP script.)
(Now using new {{rommap}} template.)
Line 1: Line 1:
''This page needs to be formatted a bit differently. The general information on ROM maps should go on its own page.''
+
{{rommap|game=[[EarthBound]]}}
  
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.
+
== Primary Engine and Critical Data Bank ==
 
 
== 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 ===
 
  
 
* <tt>000000 to 0001FF (000200)</tt> = [[EarthBound:Header|ROM Header Data]]
 
* <tt>000000 to 0001FF (000200)</tt> = [[EarthBound:Header|ROM Header Data]]
Line 65: Line 51:
 
* <tt>04FF4A to 0501FF (0002b6)</tt> = '''''Unclassified Data'''''
 
* <tt>04FF4A to 0501FF (0002b6)</tt> = '''''Unclassified Data'''''
  
=== Text Bank ===
+
== Text Bank ==
  
 
* <tt>050200 to 051D11 (001b12)</tt> = [[EarthBound:Conditional Pointers for Store Dialogue|Conditional Pointers for Store Dialogue]]
 
* <tt>050200 to 051D11 (001b12)</tt> = [[EarthBound:Conditional Pointers for Store Dialogue|Conditional Pointers for Store Dialogue]]
Line 71: Line 57:
 
* <tt>0A012F to 0A01FF (0000d1)</tt> = '''Nullspace'''
 
* <tt>0A012F to 0A01FF (0000d1)</tt> = '''Nullspace'''
  
=== Animation Bank ===
+
== Animation Bank ==
  
 
* <tt>0A0200 to 0AD9A0 (00d7a1)</tt> = [[EarthBound:Battle BGs:Primary Data Group|Battle BGs: Primary Data Group]]
 
* <tt>0A0200 to 0AD9A0 (00d7a1)</tt> = [[EarthBound:Battle BGs:Primary Data Group|Battle BGs: Primary Data Group]]
Line 112: Line 98:
 
* <tt>0EFA06 to 0F01FF (0007fa)</tt> = '''''Audio Data Block (Unspecified) '''''
 
* <tt>0EFA06 to 0F01FF (0007fa)</tt> = '''''Audio Data Block (Unspecified) '''''
  
=== Map Bank ===
+
== Map Bank ==
  
 
* <tt>0F0200 to 0F284E (00264f)</tt> = [[EarthBound:Door Destinations Table|Door Destinations Table]]
 
* <tt>0F0200 to 0F284E (00264f)</tt> = [[EarthBound:Door Destinations Table|Door Destinations Table]]
Line 128: Line 114:
 
* <tt>1017C0 to 101A7F (0002c0)</tt> = [[EarthBound:Map Tiles:Event Control Table|Map Tiles: Event Control Table]]
 
* <tt>1017C0 to 101A7F (0002c0)</tt> = [[EarthBound:Map Tiles:Event Control Table|Map Tiles: Event Control Table]]
  
=== Battle Bank ===
+
== Battle Bank ==
  
 
* <tt>101A80 to 10BA7F (00a000)</tt> = [[EarthBound:Map Data:Enemy Placement data|Map Data: Enemy Placement data]]
 
* <tt>101A80 to 10BA7F (00a000)</tt> = [[EarthBound:Map Data:Enemy Placement data|Map Data: Enemy Placement data]]
Line 139: Line 125:
 
* <tt>1101A8 to 1101FF (000058)</tt> = '''Nullspace'''
 
* <tt>1101A8 to 1101FF (000058)</tt> = '''Nullspace'''
  
=== Primary Data Groups Bank ===
+
== Primary Data Groups Bank ==
  
 
* <tt>110200 to 1547BF (0445c0)</tt> = [[EarthBound:Uncompressed Sprite Graphics|Uncompressed Sprite Graphics]]
 
* <tt>110200 to 1547BF (0445c0)</tt> = [[EarthBound:Uncompressed Sprite Graphics|Uncompressed Sprite Graphics]]
Line 170: Line 156:
 
* <tt>15F90D to 1601FF (0008f3)</tt> = '''Nullspace'''
 
* <tt>15F90D to 1601FF (0008f3)</tt> = '''Nullspace'''
  
=== Map Construction Primary Bank ===
+
== Map Construction Primary Bank ==
  
 
* <tt>160200 to 1751FF (015000)</tt> = [[EarthBound:Map Data:Primary Table|Map Data: Primary Table]]
 
* <tt>160200 to 1751FF (015000)</tt> = [[EarthBound:Map Data:Primary Table|Map Data: Primary Table]]
Line 181: Line 167:
 
* <tt>189150 to 18F25D (00610e)</tt> = [[EarthBound:Map Data:Tile Collision Arrangement Pointer Table|Map Data: Tile Collision Arrangement Pointer Table]]
 
* <tt>189150 to 18F25D (00610e)</tt> = [[EarthBound:Map Data:Tile Collision Arrangement Pointer Table|Map Data: Tile Collision Arrangement Pointer Table]]
  
=== Anti-Piracy Screens Bank ===
+
== Anti-Piracy Screens Bank ==
  
 
* <tt>18F25E to 18F40C (0001af)</tt> = [[EarthBound:Anti-Piracy Notice Screen Arrangement|Anti-Piracy Notice Screen Arrangement]]
 
* <tt>18F25E to 18F40C (0001af)</tt> = [[EarthBound:Anti-Piracy Notice Screen Arrangement|Anti-Piracy Notice Screen Arrangement]]
Line 190: Line 176:
 
* <tt>18F8B7 to 1901FF (000949)</tt> = '''''Audio Data Block (Unspecified) '''''
 
* <tt>18F8B7 to 1901FF (000949)</tt> = '''''Audio Data Block (Unspecified) '''''
  
=== Map Construction Secondary Bank ===
+
== Map Construction Secondary Bank ==
  
 
* <tt>190200 to 19D051 (00ce52)</tt> = [[EarthBound:Map Data:Tile Arrangement Block 2|Map Data: Tile Arrangement Block 2]]
 
* <tt>190200 to 19D051 (00ce52)</tt> = [[EarthBound:Map Data:Tile Arrangement Block 2|Map Data: Tile Arrangement Block 2]]
Line 217: Line 203:
 
* <tt>1FEE46 to 2001FF (0013ba)</tt> = '''''Audio Data Block (Unspecified 5,049 Kb Block) '''''
 
* <tt>1FEE46 to 2001FF (0013ba)</tt> = '''''Audio Data Block (Unspecified 5,049 Kb Block) '''''
  
=== Miscellaneous Graphics Bank ===
+
== Miscellaneous Graphics Bank ==
  
 
* <tt>200200 to 200953 (000754)</tt> = [[EarthBound:Text Window Graphics|Text Window Graphics]]
 
* <tt>200200 to 200953 (000754)</tt> = [[EarthBound:Text Window Graphics|Text Window Graphics]]
Line 294: Line 280:
 
* <tt>2F0200 to 2F125A (00105b)</tt> = '''''Unclassified Data'''''
 
* <tt>2F0200 to 2F125A (00105b)</tt> = '''''Unclassified Data'''''
  
=== Map Construction Ternary Bank ===
+
== Map Construction Ternary Bank ==
  
 
* <tt>2F125B to 2F12AA (000050)</tt> = [[EarthBound:Map Data:Tileset Pointer Table|Map Data: Tileset Pointer Table]]
 
* <tt>2F125B to 2F12AA (000050)</tt> = [[EarthBound:Map Data:Tileset Pointer Table|Map Data: Tileset Pointer Table]]
Line 304: Line 290:
 
* <tt>2F146B to 2F153E (0000d4)</tt> = [[EarthBound:Map Data:Freakish Tile Animation Table|Map Data: Freakish Tile Animation Table]]
 
* <tt>2F146B to 2F153E (0000d4)</tt> = [[EarthBound:Map Data:Freakish Tile Animation Table|Map Data: Freakish Tile Animation Table]]
  
=== Secondary Engine and Critical Data Bank ===
+
== Secondary Engine and Critical Data Bank ==
  
 
* <tt>2F153F to 2F1C7E (000740)</tt> = [[EarthBound:Sprite Grouping Pointer Table|Sprite Grouping Pointer Table]]
 
* <tt>2F153F to 2F1C7E (000740)</tt> = [[EarthBound:Sprite Grouping Pointer Table|Sprite Grouping Pointer Table]]
Line 315: Line 301:
 
* <tt>2FA8EC to 2FDAB4 (0031c9)</tt> = '''''Unclassified Data'''''
 
* <tt>2FA8EC to 2FDAB4 (0031c9)</tt> = '''''Unclassified Data'''''
  
=== Debug Menu Assembly Bank ===
+
== Debug Menu Assembly Bank ==
  
 
* <tt>2FDAB5 to 2FDB5D (0000a9)</tt> = [[EarthBound:Programmers' Debug Mode Menu Text|Programmers' Debug Mode Menu Text]]
 
* <tt>2FDAB5 to 2FDB5D (0000a9)</tt> = [[EarthBound:Programmers' Debug Mode Menu Text|Programmers' Debug Mode Menu Text]]
Line 326: Line 312:
  
 
[[Category:EarthBound|ROM map]]
 
[[Category:EarthBound|ROM map]]
[[Category:ROM maps|EarthBound]]
 

Revision as of 16:16, 21 September 2005

Primary Engine and Critical Data Bank

  • 000000 to 0001FF (000200) = ROM Header Data
  • 000200 to 0081FF (008000) = Unclassified Data
  • 008200 to 00836F (000170) = Important ASM (EDIT AT OWN RISK)
  • 008370 to 008590 (000221) = More Important ASM (EDIT AT OWN RISK)
  • 008591 to 00AD05 (002775) = Unclassified Data
  • 00AD06 to 00ADA7 (0000a2) = Music Loading Routine
  • 00ADA8 to 0212E5 (01653e) = Unclassified Data
  • 0212E6 to 0215AB (0002c6) = HP/PP Rolling Routine
  • 0215AC to 0301B6 (00ec0b) = Unclassified Data
  • 0301B7 to 03E44F (00e299) = Largely Movement Data, Possibly Incongruous
  • 03E450 to 03E5F7 (0001a8) = Dialog Window Attributes Table
  • 03E5F8 to 03EA73 (00047c) = Unclassified Data
  • 03EA74 to 03EB68 (0000f5) = Debug Mode Commands
  • 03EB69 to 03F253 (0006eb) = Unclassified Data
  • 03F254 to 03F28F (00003c) = Primary Font Table
  • 03F290 to 03F3EC (00015d) = PSI Submenu Text
  • 03F3ED to 03F4B1 (0000c5) = ASM Routine - Indeterminate Function
  • 03F4B1 to 03F4B4 (000004) = Unclassified Data
  • 03F4B5 to 03F5C4 (000110) = Character Graphics Control Table
  • 03F5C5 to 03FD2A (000766) = Unclassified Data, Partially ASM
  • 03FD2B to 03FD46 (00001c) = Name Registration String
  • 03FD47 to 0402D3 (00058d) = Unclassified Data
  • 0402D4 to 040D51 (000a7e) = Movement Pattern Pointer Table
  • 040D52 to 04189D (000b4c) = Unclassified Data, Partially ASM
  • 04189E to 0419C7 (00012a) = Decompression Routine
  • 0419C8 to 043163 (00179c) = Unclassified Data
  • 043164 to 04318C (000029) = Map Data Pointer Table
  • 04318D to 04374F (0005c3) = Unclassified Data
  • 043750 to 043768 (000019) = Goods Submenu Commands
  • 043769 to 045D4C (0025e4) = Unclassified Data, Partially ASM
  • 045D4D to 045E0F (0000c3) = Status Text Strings
  • 045E10 to 045E85 (000076) = Equipment Submenu Text
  • 045E86 to 048236 (0023b1) = Unclassified Data
  • 048237 to 04830D (0000d7) = Lumine Hall Text
  • 04830E to 04A0A3 (001d96) = Unclassified Data, Partially ASM
  • 04A0A4 to 04A0C3 (000020) = Movement-Referenced Text String Pointer Table
  • 04A0C4 to 04A1E0 (00011d) = ASM Routine - Indeterminate Function
  • 04A1E1 to 04A28A (0000aa) = Battle Command Strings
  • 04A28B to 04A508 (00027e) = Unclassified Data
  • 04A509 to 04A530 (000028) = Prayer Command Text Pointers
  • 04A531 to 04C25F (001d2f) = Unclassified Data
  • 04C260 to 04C4DC (00027d) = Startup Menu Text Strings
  • 04C4DD to 04F909 (00342d) = Unclassified Data
  • 04F90A to 04FB46 (00023d) = Music track pointer table <- Inaccurate
  • 04FB47 to 04FD41 (0001fb) = Sound/music pointer table <- Inaccurate
  • 04FD42 to 04FF49 (000208) = Parsing Routines for 04FB47 Block
  • 04FF4A to 0501FF (0002b6) = 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