DOT MATRIX WITH STEREO SOUND
POWER
FPS: --
No ROM loaded
Idle
1
2
3
4
ROM/RAM SURGEON 🔧
—
Shows Nintendo logo scroll on startup. Default: OFF (skip BIOS)
▼
0000–3FFF
ROM Bank 00
16 KiB
4000–7FFF
ROM Bank 01–NN
16 KiB
8000–9FFF
Video RAM (VRAM)
8 KiB
A000–BFFF
External RAM
8 KiB
C000–CFFF
Work RAM (WRAM)
4 KiB
D000–DFFF
Work RAM (WRAM)
4 KiB
E000–FDFF
Echo RAM ⚠
~7.5 KiB
FE00–FE9F
OAM
160 B
FEA0–FEFF
Not Usable ⚠
96 B
FF00–FF7F
I/O Registers
128 B
FF80–FFFE
High RAM (HRAM)
127 B
FFFF
IE Register
1 B
Hover a region to inspect
Joypad DMG
$FF00P1/JOYP--
Serial Transfer DMG
$FF01SB--
$FF02SC--
Timer & Divider DMG
$FF04DIV--
$FF05TIMA--
$FF06TMA--
$FF07TAC--
Interrupts DMG
$FF0FIF--
$FFFFIE--
Audio DMG
$FF10NR10--
$FF11NR11--
$FF12NR12--
$FF14NR14--
$FF16NR21--
$FF17NR22--
$FF19NR24--
$FF1ANR30--
$FF1CNR32--
$FF1ENR34--
$FF24NR50--
$FF25NR51--
$FF26NR52--
Wave Pattern DMG
$FF30–$FF3FWave RAM--
LCD DMG
$FF40LCDC--
$FF41STAT--
$FF42SCY--
$FF43SCX--
$FF44LY--
$FF45LYC--
$FF46DMA--
$FF47BGP--
$FF48OBP0--
$FF49OBP1--
$FF4AWY--
$FF4BWX--
Boot ROM DMG
$FF50BOOT--
CGB Registers CGB
$FF4CKEY0N/A
$FF4DKEY1N/A
$FF4FVBKN/A
$FF51–55HDMAN/A
$FF68–6BBCPS/DN/A
$FF70SVBKN/A
VRAM Bank 0 Layout
Block 0
$8000–$87FF
Tiles 0–127
2 KiB · 128 tiles
Block 1
$8800–$8FFF
Tiles 128–255 (signed: -128 to -1)
2 KiB · 128 tiles
Block 2
$9000–$97FF
Tiles 0–127 (signed addressing)
2 KiB · 128 tiles
Tile Map 0
$9800–$9BFF
32×32 entries = 1024 bytes
1 KiB
Tile Map 1
$9C00–$9FFF
32×32 entries = 1024 bytes
1 KiB
Tile Data Format
Each tile = 16 bytes (8×8 pixels, 2bpp)
Row = 2 bytes: low byte (LSB) + high byte (MSB)
Tile ID = (address / 16) mod 256
Row = 2 bytes: low byte (LSB) + high byte (MSB)
Tile ID = (address / 16) mod 256
Tile Map Entries
X = address mod 32
Y = (address / 32) mod 32
Each entry = 1 byte tile index
Y = (address / 32) mod 32
Each entry = 1 byte tile index
Addressing Modes
LCDC.4=1: $8000 method (unsigned)
Tiles 0–255 at $8000–$8FFF
LCDC.4=0: $8800 method (signed)
Tiles 0–127 at $9000, -128 to -1 at $8800
Tiles 0–255 at $8000–$8FFF
LCDC.4=0: $8800 method (signed)
Tiles 0–127 at $9000, -128 to -1 at $8800
Current PPU Config
Load a ROM to see live config
Jump Vectors (0000–00FF)
RST: 0000, 0008, 0010, 0018, 0020, 0028, 0030, 0038
Interrupts: 0040 (VBlank), 0048 (STAT), 0050 (Timer), 0058 (Serial), 0060 (Joypad)
RST is a 1-byte CALL to these fixed addresses. This area may be used for other purposes if unused.
Interrupts: 0040 (VBlank), 0048 (STAT), 0050 (Timer), 0058 (Serial), 0060 (Joypad)
RST is a 1-byte CALL to these fixed addresses. This area may be used for other purposes if unused.
Cartridge Header (0100–014F)
Entry point, logo, title, checksums, MBC type, ROM/RAM size info.
Most bytes must be specified correctly for the ROM to boot.
Most bytes must be specified correctly for the ROM to boot.
Echo RAM (E000–FDFF)
Maps to WRAM (C000–DDFF) with only lower 13 address bits connected. All reads/writes mirror WRAM. Nintendo prohibits use. Some emulators don't implement it. Flash carts may conflict with SRAM.
FEA0–FEFF (Prohibited)
DMG/MGB/SGB: Returns $00 (reads during OAM block cause corruption)
CGB rev 0–D: Unique RAM area, masked per-revision
CGB rev E/AGB/GBP: Returns high nibble doubled (e.g., $FFAx→$AA)
CGB rev 0–D: Unique RAM area, masked per-revision
CGB rev E/AGB/GBP: Returns high nibble doubled (e.g., $FFAx→$AA)