EarthBound Zero/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(remove formatting test)
(added values that catador figured out)
Line 19: Line 19:
ram_y = 0x2dc0
ram_y = 0x2dc0


real_x = ((ram_x - 0xfe00) % 0x10000) / 0x80
real_x = ((byte1 << 8) | (byte0 & 0xC0)) >> 2
real_y = ((ram_y - 0x1e40) % 0x10000) / 0x80
real_y = ((byte3 << 8) | (byte2 & 0xC0) - 0x2000) >> 2
</pre>
</pre>


{{Internal Data|game=EarthBound Zero}}
{{Internal Data|game=EarthBound Zero}}

Revision as of 22:58, 25 June 2023

Chip tiny.png The following article is a RAM map for EarthBound Zero.

RAM Purpose
0x0006 Part of an instruction for "copy protection". $E5 on checksum failure. $00 to bypass. "Correct"/non-hack value unknown.
0x0611 Looks like the first EXP byte, but changing it even mid-battle will result in insta-death. Anti-cheat?
0x0818-B The X and Y coordinates, stored strangely; see below

Coordinates

The coordinates in RAM to not correspond to coordinates in the rest of the game. To convert it, run this Python code (in this example, bytes $818-B are `80 19 C0 2D`):

# replace with the values from the RAM
ram_x = 0x1980
ram_y = 0x2dc0

real_x = ((byte1 << 8) | (byte0 & 0xC0)) >> 2
real_y = ((byte3 << 8) | (byte2 & 0xC0) - 0x2000) >> 2