gb::memorymap namespace

Defines values for specific locations in the Gameboy memory map.

Enums

enum Locations { PERMANENT_ROM_BANK_START = 0x0000, INTERRUPT_HANDLER_VBLANK = 0x0040, INTERRUPT_HANDLER_LCDSTAT = 0x0048, INTERRUPT_HANDLER_TIMER = 0x0050, INTERRUPT_HANDLER_SERIAL = 0x0058, INTERRUPT_HANDLER_JOYPAD = 0x0060, PROGRAM_START = 0x0100, NINTENDO_LOGO_START = 0x0104, NINTENDO_LOGO_END = 0x0133, GAME_TITLE_START = 0x0134, GAME_TITLE_END = 0x013E, GAME_DESTINATION_START = 0x013F, GAME_DESTINATION_END = 0x0142, COLOR_COMPATABILITY = 0x0143, NEW_LICENSE_START = 0x0144, NEW_LICENSE_END = 0x0145, SGB_COMPATABILITY = 0x0146, CART_TYPE = 0x0147, CART_ROM_SIZE = 0x0148, CART_RAM_SIZE = 0x0149, DETINATION_CODE = 0x014A, OLD_LICENSE = 0x014B, MASK_ROM_VERSION = 0x014C, COMPLEMENT_CHECKSUM = 0x014D, CHECKSUM_START = 0x014E, CHECKSUM_END = 0x014F, PERMANENT_ROM_BANK_END = 0x3FFF, SWITCHABLE_ROM_BANK_START = 0x4000, SWITCHABLE_ROM_BANK_END = 0x7FFF, CHARACTER_RAM_START = 0x8000, CHARACTER_RAM_END = 0x97FF, BG_MAP_DATA_1_START = 0x9800, BG_MAP_DATA_1_END = 0x9BFF, BG_MAP_DATA_2_START = 0x9C00, BG_MAP_DATA_2_END = 0x9FFF, EXTERNAL_RAM_START = 0xA000, EXTERNAL_RAM_END = 0xBFFF, WORK_RAM_BANK_0_START = 0xC000, WORK_RAM_BANK_0_END = 0xCFFF, WORK_RAM_BANK_1_START = 0xD000, WORK_RAM_BANK_1_END = 0xDFFF, OAM_START = 0xFE00, OAM_END = 0xFE9F, JOYPAD_REGISTER = 0xFF00, SB_REGISTER = 0xFF01, SC_REGISTER = 0xFF02, DIVIDER_LO_REGISTER = 0xFF03, DIVIDER_REGISER = 0xFF04, TIMER_COUNTER_REGISTER = 0xFF05, TIMER_MODULO_REGISTER = 0xFF06, TIMER_CONTROLLER_REGISTER = 0xFF07, NR10_REGISTER = 0xFF10, NR11_REGISTER = 0xFF11, NR12_REGISTER = 0xFF12, NR13_REGISTER = 0xFF13, NR14_REGISTER = 0xFF14, NR20_REGISTER = 0xFF15, NR21_REGISTER = 0xFF16, NR22_REGISTER = 0xFF17, NR23_REGISTER = 0xFF18, NR24_REGISTER = 0xFF19, NR30_REGISTER = 0xFF1A, NR31_REGISTER = 0xFF1B, NR32_REGISTER = 0xFF1C, NR33_REGISTER = 0xFF1D, NR34_REGISTER = 0xFF1E, NR41_REGISTER = 0xFF20, NR42_REGISTER = 0xFF21, NR43_REGISTER = 0xFF22, NR44_REGISTER = 0xFF23, NR50_REGISTER = 0xFF24, NR51_REGISTER = 0xFF25, NR52_REGISTER = 0xFF26, WAVE_PATTERN_RAM_START = 0xFF30, WAVE_PATTERN_RAM_END = 0xFF3F, LCDC_REGISTER = 0xFF40, LCD_STAT_REGISTER = 0xFF41, SCY_REGISTER = 0xFF42, SCX_REGISTER = 0xFF43, LY_REGISTER = 0xFF44, LYC_REGISTER = 0xFF45, BGP_REGISTER = 0xFF47, OBP0_REGISTER = 0xFF48, OBP1_REGISTER = 0xFF49, WY_REGISTER = 0xFF4A, WX_REGISTER = 0xFF4B, KEY1_REGISER = 0xFF4D, DMA_REGISTER = 0xFF46, VBK_REGISTER = 0xFF4F, HDMA1 = 0xFF51, HDMA2 = 0xFF52, HDMA3 = 0xFF53, HDMA4 = 0xFF54, HDMA5 = 0xFF55, BGPI = 0xFF68, BGPD = 0xFF69, OBPI = 0xFF6A, OBPD = 0xFF6B, SVBK_REGISTER = 0xFF70, HIGH_RAM_START = 0xFF80, HIGH_RAM_END = 0xFFFE, INTERRUPT_ENABLE = 0xFFFF, INTERRUPT_FLAG = 0xFF0F }
enum LCDC { ENABLE = (1 << 7), WINDOW_CODE_AREA = (1 << 6), WINDOW_ON = (1 << 5), CHARACTER_DATA = (1 << 4), BG_CODE_AREA = (1 << 3), OBJ_8x16 = (1 << 2), OBJ_ON = (1 << 1), BG_DISPLAY_ON = (1 << 0) }
LCDC Register bit masks.
enum Stat { LYCLY = (1 << 2) }
LCDC Status Register bit masks.
enum SC { TRANSFER = (1 << 7), SHIFT_CLOCK_RATE = (1 << 1), CLOCK_MODE = (1 << 0) }
Serial Control register bit masks.

Enum documentation

enum gb::memorymap::Locations

Enumerators
PERMANENT_ROM_BANK_START
INTERRUPT_HANDLER_VBLANK
INTERRUPT_HANDLER_LCDSTAT
INTERRUPT_HANDLER_TIMER
INTERRUPT_HANDLER_SERIAL
INTERRUPT_HANDLER_JOYPAD
PROGRAM_START
NINTENDO_LOGO_START
NINTENDO_LOGO_END
GAME_TITLE_START
GAME_TITLE_END
GAME_DESTINATION_START
GAME_DESTINATION_END
COLOR_COMPATABILITY
NEW_LICENSE_START
NEW_LICENSE_END
SGB_COMPATABILITY
CART_TYPE
CART_ROM_SIZE
CART_RAM_SIZE
DETINATION_CODE
OLD_LICENSE
MASK_ROM_VERSION
COMPLEMENT_CHECKSUM
CHECKSUM_START
CHECKSUM_END
PERMANENT_ROM_BANK_END
SWITCHABLE_ROM_BANK_START
SWITCHABLE_ROM_BANK_END
CHARACTER_RAM_START
CHARACTER_RAM_END
BG_MAP_DATA_1_START
BG_MAP_DATA_1_END
BG_MAP_DATA_2_START
BG_MAP_DATA_2_END
EXTERNAL_RAM_START
EXTERNAL_RAM_END
WORK_RAM_BANK_0_START
WORK_RAM_BANK_0_END
WORK_RAM_BANK_1_START
WORK_RAM_BANK_1_END
OAM_START
OAM_END
JOYPAD_REGISTER
SB_REGISTER
SC_REGISTER
DIVIDER_LO_REGISTER
DIVIDER_REGISER
TIMER_COUNTER_REGISTER
TIMER_MODULO_REGISTER
TIMER_CONTROLLER_REGISTER
NR10_REGISTER
NR11_REGISTER
NR12_REGISTER
NR13_REGISTER
NR14_REGISTER
NR20_REGISTER
NR21_REGISTER
NR22_REGISTER
NR23_REGISTER
NR24_REGISTER
NR30_REGISTER
NR31_REGISTER
NR32_REGISTER
NR33_REGISTER
NR34_REGISTER
NR41_REGISTER
NR42_REGISTER
NR43_REGISTER
NR44_REGISTER
NR50_REGISTER
NR51_REGISTER
NR52_REGISTER
WAVE_PATTERN_RAM_START
WAVE_PATTERN_RAM_END
LCDC_REGISTER
LCD_STAT_REGISTER
SCY_REGISTER
SCX_REGISTER
LY_REGISTER
LYC_REGISTER
BGP_REGISTER
OBP0_REGISTER
OBP1_REGISTER
WY_REGISTER
WX_REGISTER
KEY1_REGISER
DMA_REGISTER
VBK_REGISTER

VRAM Bank Selection.

HDMA1

New D<A Source High.

HDMA2

New DMA Source Low.

HDMA3

New DMA Destination High.

HDMA4

New DMA Destination Low.

HDMA5

New DMA Length/Mode/Start.

BGPI

Background Palette Index.

BGPD

Background Palette Data.

OBPI

Object Palette Index.

OBPD

Object Palette Data.

SVBK_REGISTER
HIGH_RAM_START
HIGH_RAM_END
INTERRUPT_ENABLE
INTERRUPT_FLAG

enum gb::memorymap::LCDC

LCDC Register bit masks.

Enumerators
ENABLE

LCD Controller enable.

WINDOW_CODE_AREA

Window map area selection.

WINDOW_ON

Window enable.

CHARACTER_DATA

Character map.

BG_CODE_AREA

Background map area selection.

OBJ_8x16

Sprite composition mode.

OBJ_ON

Sprite enable.

BG_DISPLAY_ON

Background enable.

enum gb::memorymap::Stat

LCDC Status Register bit masks.

Enumerators
LYCLY

LY=LYC flag.

enum gb::memorymap::SC

Serial Control register bit masks.

Enumerators
TRANSFER

Transfer start flag.

SHIFT_CLOCK_RATE

Shift clock.

CLOCK_MODE

0-External Clock, 1-Internal Clock