Mega Man X/RAM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a RAM map for Mega Man X.

Tested only on ver 1.1 of the ROM:

7E:0098              Graphics Set to be decompressed

7E:0300 - 7E:04FF    Background & Sprite Palette
7E:0500 - 7E:052F?   Table of 5-byte entries for DMA transfer of X's graphics from ROM to VRAM.
	#0	- Gets Copied to $2115          ;VRAM Increment Type
	#1	- Gets Copied to $2116	        ;VRAM Address
	#3	- Gets Copied to $4305		;Number of Bytes
	#5	- Gets Copied to $4302		;Source Word
	#7	- Gets Copied to $4304		;Source Bank

7E:0600 - 7E:0643    DMA Data for BG Layer 3
	#0	- Gets Coppied to $2115
	#1	- Gets Coppied to $2116/7	;VRAM Address
	#3	- Gets Coppied to $4305		;Number of Bytes LOW
        #4      - PPU Data (length is based off byte #3)

7E:0700 - 7E:091F    Sprite DMA

7E:0B72 - 7E:0B91    Sound Queue (16-bit)
	#0      - Sound ID
	#1      - Stereo Parameters

7E:0B92 - 7E:0B94    Pointer to 16x16 Tile Collision Data (24-bit)
7E:0B95 - 7E:0B97    BG Layer 1's Pointer to 8x8 Tile Data for each 16x16 Tile (24-bit)
7E:B98  - 7E:0B9A    BG Layer 2's Pointer to 8x8 Tile Data for each 16x16 Tile (24-bit)
7E:0BAA              X's current state (6 = rising, 8 = falling, 14 = dashing, etc...)
7E:0BAA              X's current sub-state
7E:0BAC - 7E:0BAE    X's X-position (24-bit)
7E:0BAF - 7E:0BB1    X's Y-position (24-bit)
7E:0BBB - 7E:0BBC    General purpose animation timer for X?
7E:0BBF              X's current pose
7E:0BC2 - 7E:0BC3    X's horizontal velocity
7E:0BC4 - 7E:0BC5    X's vertical velocity
7E:0BC6              X's acceleration (gravity)
7E:0BCF              X's health
7E:0BE0 - 7E:0BE2    Mirror of controller input (bits for unused buttons seem to be ANDed out)
7E:0BDD              Number of shots currently on screen
7E:0BFA              Dash timer
7E:0BFF              Charge timer
7E:0C03              Charge level (01 = fully charged /w/ arm part, 02 = normal full charge,
                     03 = partial charge | Not sure what it's used for)

7E:0C06              Bitflags: Standing = 04, hanging on left wall = 02, right wall = 01
7E:0C30 - 7E:0C8F    Stuff for armor parts (position, type, and so forth)


7E:0E18              Ride armor exist flag (00 = delete ride armor, all else = ride armor exists)
7E:0E1A              Ride armor's current state
7E:0E1C - 7E:0E1E    Ride armor's X-position (24-bit)
7E:0E1F - 7E:0E22    Ride armor's Y-position (24-bit)
7E:0E32 - 7E:0E33    Ride armor's horizontal velocity
7E:0E34 - 7E:0E35    Ride armor's vertical velocity
7E:0E36              Ride armor's acceleration (gravity)
7E:0E4D              Ride armor's heading 40 = facing right, 00 = facing left

7E:1E4D - 7E:1E4D    Camera X Position (16-bit)
7E:1E50 - 7E:1E51    Camera Y Position (16-bit)
7E:1E5E - 7E:1E5F    Camera Left Side border (16-bit)
7E:1E60 - 7E:1E61    Camera Right Side border (16-bit)
7E:1E68 - 7E:1E69    Camera Top Side border (16-bit)
7E:1E6A - 7E:1E6B    Camera X Position the Previous Frame (16-bit) 
7E:1E6C - 7E:1E6D    Camera Y Position the Previous Frame (16-bit)
7E:1E6E - 7E:1E6F    Camera Bottom Side border (16-bit)

7E:1F0E - 7E:1F0F    Boss Index (used for Health Bar Code)
7E:1F34              Weapon Menu Opened flag
7E:1F7A              Current Stage
	#0	- Highway/intro
	#1	- Octo
	#2	- Chameleon
	#3	- Dillo
	#4	- Mammoth
	#5	- Eagle
	#6	- Mandrill
	#7	- Kuwanger
	#8	- Penguin
	#9	- Sigma 1
	#A	- Sigma 2
	#B	- Sigma 3
	#C 	- Sigma 4

7E:1F7B              Complete Sigma Stages
7E:1F7E              Increased by 1 ever time the Hadoken Capsule gets visited
7E:1F80              Current amount of 1UPs
7E:1F81              Check Point
7E:1F83 - 7E:1F85    Sub Tank Ammo (+80hex means the sub tank was acquired)
7E:1F86 - 7E:1F96    Weapon Ammo + aqqiured flag if bit 6 is set to 1 (2 bytes per Weapon)
	#0	- ???
	#2	- Homing Torpedo
	#4	- Chameleon Sting
	#6	- Rolling Shield
	#8	- Fire Wave
	#A 	- Storm Tornado
	#C	- Spark Shot
	#E	- Boomerang Cutter
	#10	- Shot Gun Ice		   

7E:1F99              Bitflag array of armor pieces collected
7E:1F9A              X's maximum health

7E:1F9C              Bitflag array of heart tanks collected
7E:1FB4              Current number of lives remaining
7E:1F9B              Intro Completed flag

7E:2000 - 7E:85FF    BG Layer 1 16x16 Tile Data (200hex bytes per Room)      
7E:8600 - 7E:E7FF    BG Layer 2 16x16 Tile Data
7E:E800 - 7E:EBFF    BG Layer 1 Screen Arrangement
7E:EC00 - 7E:EFFF    BG Layer 2 Screen Arrangement

7E:FFC0 - 7E:FFC5    Button configurations

7E:FFFE              SPC 700 Status ?

7F:0000 - 7F:7DFF    Where Decompressed Graphics are stored