The current URL is datacrystal.tcrf.net.
Pokémon mini/Memory Map: Difference between revisions
(Created page with "The common memory space for the Pokemon mini. == Broadly == * <tt>000000-000FFF (001000)</tt> = Internal BIOS * <tt>001000-001FFF (001000)</tt> = #R...") |
(→top) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{subpage}} | |||
The common memory space for the Pokemon mini. | The common memory space for the Pokemon mini. | ||
Line 18: | Line 20: | ||
* <tt>1000-12FF (0300)</tt> = Frame Buffer | * <tt>1000-12FF (0300)</tt> = Frame Buffer | ||
* <tt>1300-135F (0060)</tt> = Sprite Attributes | * <tt>1300-135F (0060)</tt> = [[#Sprite Attributes|Sprite Attributes]] | ||
* <tt>1360-141F (00C0)</tt> = Tile Map | * <tt>1360-141F (00C0)</tt> = Tile Map | ||
* <tt>1420-1FFF (0BE0)</tt> = General Purpose Memory | * <tt>1420-1FFF (0BE0)</tt> = General Purpose Memory | ||
Line 27: | Line 29: | ||
* <tt>1000-12FF (0300)</tt> = Frame Buffer | * <tt>1000-12FF (0300)</tt> = Frame Buffer | ||
* <tt>1300-135F (0060)</tt> = Sprite Attributes | * <tt>1300-135F (0060)</tt> = [[#Sprite Attributes|Sprite Attributes]] | ||
* <tt>1360-14DF (0180)</tt> = Tile Map | * <tt>1360-14DF (0180)</tt> = Tile Map | ||
* <tt>14E0-1FFF (0B20)</tt> = General Purpose Memory | * <tt>14E0-1FFF (0B20)</tt> = General Purpose Memory | ||
Line 34: | Line 36: | ||
* <tt>1000-12FF (0300)</tt> = Frame Buffer | * <tt>1000-12FF (0300)</tt> = Frame Buffer | ||
* <tt>1300-135F (0060)</tt> = Sprite Attributes | * <tt>1300-135F (0060)</tt> = [[#Sprite Attributes|Sprite Attributes]] | ||
* <tt>1360-1FFF (0CA0)</tt> = General Purpose Memory | * <tt>1360-1FFF (0CA0)</tt> = General Purpose Memory | ||
Line 45: | Line 47: | ||
* <tt>1000-1FFF (1000)</tt> = General Purpose Memory | * <tt>1000-1FFF (1000)</tt> = General Purpose Memory | ||
=== Sprite Attributes === | |||
Byte offset & bit mask of relevant bits (in hex). Note that the sprite position extends left and above by one sprite length, such that any sprite placed with an X of 0 or a Y of 0 will not be displayed on the screen. | |||
* <tt>00 & 7f</tt> = X position | |||
* <tt>01 & 7f</tt> = Y position | |||
* <tt>02 & ff</tt> = Index in spriteset | |||
* <tt>03 & 08</tt> = Enabled | |||
* <tt>03 & 04</tt> = Color inverted | |||
* <tt>03 & 02</tt> = Vertically flipped | |||
* <tt>03 & 01</tt> = Horizontally flipped | |||
== Registers == | == Registers == |
Latest revision as of 15:00, 24 January 2024
This is a sub-page of Pokémon mini.
The common memory space for the Pokemon mini.
Broadly
- 000000-000FFF (001000) = Internal BIOS
- 001000-001FFF (001000) = PM RAM
- 002000-0020FF (000100) = Hardware Registers
- 002100-1FFFFF (1FDF00) = Cartridge Memory
- After this is mirrored versions of the content
RAM
Depending on how activated the Program Rendering Chip (PRC) is, this amount of memory it uses can be a different size. The PRC can have sprites and tiles separately enabled and tiles have multiple size options (for use with scrolling). Additionally, the PRC can be enabled to simply copy a buffer and not manage the buffer itself. Thus it can have one of the following schemata:
Sprites enabled and tile mode 0-2
Tile modes: 0 (12x16), 1 (16x12), or 2 (24x8)
- 1000-12FF (0300) = Frame Buffer
- 1300-135F (0060) = Sprite Attributes
- 1360-141F (00C0) = Tile Map
- 1420-1FFF (0BE0) = General Purpose Memory
Sprites enabled and tile mode 3
Tile mode 3 is 24x16
- 1000-12FF (0300) = Frame Buffer
- 1300-135F (0060) = Sprite Attributes
- 1360-14DF (0180) = Tile Map
- 14E0-1FFF (0B20) = General Purpose Memory
Sprites enabled and tiles disabled
- 1000-12FF (0300) = Frame Buffer
- 1300-135F (0060) = Sprite Attributes
- 1360-1FFF (0CA0) = General Purpose Memory
PRC set to copy only
- 1000-12FF (0300) = Frame Buffer
- 1300-1FFF (0D00) = General Purpose Memory
PRC disabled
- 1000-1FFF (1000) = General Purpose Memory
Sprite Attributes
Byte offset & bit mask of relevant bits (in hex). Note that the sprite position extends left and above by one sprite length, such that any sprite placed with an X of 0 or a Y of 0 will not be displayed on the screen.
- 00 & 7f = X position
- 01 & 7f = Y position
- 02 & ff = Index in spriteset
- 03 & 08 = Enabled
- 03 & 04 = Color inverted
- 03 & 02 = Vertically flipped
- 03 & 01 = Horizontally flipped
Registers
See here.
Cartridge Memory
- 2100-2101 (0002) = PM marker
- 2102-2107 (0006) = Reset Location
- 2108-210d (0006) = PRC Frame Copy IRQ
- 210e-2113 (0006) = PRC Render IRQ
- 2114-2119 (0006) = Timer 2 Underflow (upper) IRQ
- 211a-211f (0006) = Timer 2 Underflow (lower) IRQ
- 2120-2125 (0006) = Timer 1 Underflow (upper) IRQ
- 2126-212b (0006) = Timer 1 Underflow (lower) IRQ
- 212c-2131 (0006) = Timer 3 Underflow (upper) IRQ
- 2132-2137 (0006) = Timer 3 Comparator IRQ
- 2138-213d (0006) = 32hz Timer (256hz linked) IRQ
- 213e-2143 (0006) = 8hz Timer (256hz linked) IRQ
- 2144-2149 (0006) = 2hz Timer (256hz linked) IRQ
- 214a-214f (0006) = 1hz Timer (256hz linked) IRQ
- 2150-2155 (0006) = IR Receiver IRQ
- 2156-215b (0006) = Shake Sensor IRQ
- 215c-2161 (0006) = Power Key IRQ
- 2162-2167 (0006) = Right Key IRQ
- 2168-216d (0006) = Left Key IRQ
- 216e-2173 (0006) = Down Key IRQ
- 2174-2179 (0006) = Up Key IRQ
- 217a-217f (0006) = C Key IRQ
- 2180-2185 (0006) = B Key IRQ
- 2186-218b (0006) = A Key IRQ
- 218c-2191 (0006) =
- 2192-2197 (0006) =
- 2198-219d (0006) =
- 219e-21a3 (0006) = Cartridge IRQ
- 21a4-21ab (0008) = NINTENDO in plain text (required to boot)
- 21ac-21af (0004) = Game Code
- 21b0-21bb (000c) = Game Title (zero-padded)
- 21bc-21bd (0002) = 2P (Unknown purpose)
- 21be-21cf (0012) = Reserved (Zero)
- After this is general purpose ROM