|
| 1 | + |
| 2 | +# Hardware Registers |
| 3 | + |
| 4 | +Address | Name | Description | Readable / Writable | Models |
| 5 | +-----------|-------------|-------------------------------------------------------------------|---------------------|------- |
| 6 | +$FF00 | [P1/JOYP] | Joypad | Mixed | All |
| 7 | +$FF01 | [SB] | Serial transfer data | R/W | All |
| 8 | +$FF02 | [SC] | Serial transfer control | R/W | Mixed |
| 9 | +$FF04 | [DIV] | Divider register | R/W | All |
| 10 | +$FF05 | [TIMA] | Timer counter | R/W | All |
| 11 | +$FF06 | [TMA] | Timer modulo | R/W | All |
| 12 | +$FF07 | [TAC] | Timer control | R/W | All |
| 13 | +$FF0F | [IF] | Interrupt flag | R/W | All |
| 14 | +$FF10 | [NR10] | Sound channel 1 sweep | R/W | All |
| 15 | +$FF11 | [NR11] | Sound channel 1 length timer & duty cycle | Mixed | All |
| 16 | +$FF12 | [NR12] | Sound channel 1 volume & envelope | R/W | All |
| 17 | +$FF13 | [NR13] | Sound channel 1 wavelength low | W | All |
| 18 | +$FF14 | [NR14] | Sound channel 1 wavelength high & control | Mixed | All |
| 19 | +$FF16 | [NR21] | Sound channel 2 length timer & duty cycle | Mixed | All |
| 20 | +$FF17 | [NR22] | Sound channel 2 volume & envelope | R/W | All |
| 21 | +$FF18 | [NR23] | Sound channel 2 wavelength low | W | All |
| 22 | +$FF19 | [NR24] | Sound channel 2 wavelength high & control | Mixed | All |
| 23 | +$FF1A | [NR30] | Sound channel 3 DAC enable | R/W | All |
| 24 | +$FF1B | [NR31] | Sound channel 3 length timer | W | All |
| 25 | +$FF1C | [NR32] | Sound channel 3 output level | R/W | All |
| 26 | +$FF1D | [NR33] | Sound channel 3 wavelength low | W | All |
| 27 | +$FF1E | [NR34] | Sound channel 3 wavelength high & control | Mixed | All |
| 28 | +$FF20 | [NR41] | Sound channel 4 length timer | W | All |
| 29 | +$FF21 | [NR42] | Sound channel 4 volume & envelope | R/W | All |
| 30 | +$FF22 | [NR43] | Sound channel 4 frequency & randomness | R/W | All |
| 31 | +$FF23 | [NR44] | Sound channel 4 control | Mixed | All |
| 32 | +$FF24 | [NR50] | Master volume & VIN panning | R/W | All |
| 33 | +$FF25 | [NR51] | Sound panning | R/W | All |
| 34 | +$FF26 | [NR52] | Sound on/off | Mixed | All |
| 35 | +$FF30-FF3F | [Wave RAM] | Storage for one of the sound channels' waveform | R/W | All |
| 36 | +$FF40 | [LCDC] | LCD control | R/W | All |
| 37 | +$FF41 | [STAT] | LCD status | Mixed | All |
| 38 | +$FF42 | [SCY] | Viewport Y position | R/W | All |
| 39 | +$FF43 | [SCX] | Viewport X position | R/W | All |
| 40 | +$FF44 | [LY] | LCD Y coordinate | R | All |
| 41 | +$FF45 | [LYC] | LY compare | R/W | All |
| 42 | +$FF46 | [DMA] | OAM DMA source address & start | R/W | All |
| 43 | +$FF47 | [BGP] | BG palette data | R/W | DMG |
| 44 | +$FF48 | [OBP0] | OBJ palette 0 data | R/W | DMG |
| 45 | +$FF49 | [OBP1] | OBJ palette 1 data | R/W | DMG |
| 46 | +$FF4A | [WY] | Window Y position | R/W | All |
| 47 | +$FF4B | [WX] | Window X position plus 7 | R/W | All |
| 48 | +$FF4D | [KEY1] | Prepare speed switch | Mixed | CGB |
| 49 | +$FF4F | [VBK] | VRAM bank | R/W | CGB |
| 50 | +$FF51 | [HDMA1] | VRAM DMA source high | W | CGB |
| 51 | +$FF52 | [HDMA2] | VRAM DMA source low | W | CGB |
| 52 | +$FF53 | [HDMA3] | VRAM DMA destination high | W | CGB |
| 53 | +$FF54 | [HDMA4] | VRAM DMA destination low | W | CGB |
| 54 | +$FF55 | [HDMA5] | VRAM DMA length/mode/start | R/W | CGB |
| 55 | +$FF56 | [RP] | Infrared communications port | Mixed | CGB |
| 56 | +$FF68 | [BCPS/BGPI] | Background color palette specification / Background palette index | R/W | CGB |
| 57 | +$FF69 | [BCPD/BGPD] | Background color palette data / Background palette data | R/W | CGB |
| 58 | +$FF6A | [OCPS/OBPI] | OBJ color palette specification / OBJ palette index | R/W | CGB |
| 59 | +$FF6B | [OCPD/OBPD] | OBJ color palette data / OBJ palette data | R/W | CGB |
| 60 | +$FF6C | [OPRI] | Object priority mode | R/W | CGB |
| 61 | +$FF70 | [SVBK] | WRAM bank | R/W | CGB |
| 62 | +$FF76 | [PCM12] | Audio digital outputs 1 & 2 | R | CGB |
| 63 | +$FF77 | [PCM34] | Audio digital outputs 3 & 4 | R | CGB |
| 64 | +$FFFF | [IE] | Interrupt enable | R/W | All |
| 65 | + |
| 66 | +[P1/JOYP]: <#FF00 — P1/JOYP: Joypad> |
| 67 | +[SB]: <#FF01 — SB: Serial transfer data> |
| 68 | +[SC]: <#FF02 — SC: Serial transfer control> |
| 69 | +[DIV]: <#FF04 — DIV: Divider register> |
| 70 | +[TIMA]: <#FF05 — TIMA: Timer counter> |
| 71 | +[TMA]: <#FF06 — TMA: Timer modulo> |
| 72 | +[TAC]: <#FF07 — TAC: Timer control> |
| 73 | +[IF]: <#FF0F — IF: Interrupt flag> |
| 74 | +[NR10]: <#FF10 — NR10: Channel 1 sweep> |
| 75 | +[NR11]: <#FF11 — NR11: Channel 1 length timer & duty cycle> |
| 76 | +[NR12]: <#FF12 — NR12: Channel 1 volume & envelope> |
| 77 | +[NR13]: <#FF13 — NR13: Channel 1 wavelength low \[write-only\]> |
| 78 | +[NR14]: <#FF14 — NR14: Channel 1 wavelength high & control> |
| 79 | +[NR21]: <#Sound Channel 2 — Pulse> |
| 80 | +[NR22]: <#Sound Channel 2 — Pulse> |
| 81 | +[NR23]: <#Sound Channel 2 — Pulse> |
| 82 | +[NR24]: <#Sound Channel 2 — Pulse> |
| 83 | +[NR30]: <#FF1A — NR30: Channel 3 DAC enable> |
| 84 | +[NR31]: <#FF1B — NR31: Channel 3 length timer \[write-only\]> |
| 85 | +[NR32]: <#FF1C — NR32: Channel 3 output level> |
| 86 | +[NR33]: <#FF1D — NR33: Channel 3 wavelength low \[write-only\]> |
| 87 | +[NR34]: <#FF1E — NR34: Channel 3 wavelength high & control> |
| 88 | +[NR41]: <#FF20 — NR41: Channel 4 length timer \[write-only\]> |
| 89 | +[NR42]: <#FF21 — NR42: Channel 4 volume & envelope> |
| 90 | +[NR43]: <#FF22 — NR43: Channel 4 frequency & randomness> |
| 91 | +[NR44]: <#FF23 — NR44: Channel 4 control> |
| 92 | +[NR50]: <#FF24 — NR50: Master volume & VIN panning> |
| 93 | +[NR51]: <#FF25 — NR51: Sound panning> |
| 94 | +[NR52]: <#FF26 — NR52: Sound on/off> |
| 95 | +[Wave RAM]: <#FF30–FF3F — Wave pattern RAM> |
| 96 | +[LCDC]: <#FF40 — LCDC: LCD control> |
| 97 | +[STAT]: <#FF41 — STAT: LCD status> |
| 98 | +[SCY]: <#FF42–FF43 — SCY, SCX: Viewport Y position, X position> |
| 99 | +[SCX]: <#FF42–FF43 — SCY, SCX: Viewport Y position, X position> |
| 100 | +[LY]: <#FF44 — LY: LCD Y coordinate \[read-only\]> |
| 101 | +[LYC]: <#FF45 — LYC: LY compare> |
| 102 | +[DMA]: <#FF46 — DMA: OAM DMA source address & start> |
| 103 | +[BGP]: <#FF47 — BGP (Non-CGB Mode only): BG palette data> |
| 104 | +[OBP0]: <#FF48–FF49 — OBP0, OBP1 (Non-CGB Mode only): OBJ palette 0, 1 data> |
| 105 | +[OBP1]: <#FF48–FF49 — OBP0, OBP1 (Non-CGB Mode only): OBJ palette 0, 1 data> |
| 106 | +[WY]: <#FF4A–FF4B — WY, WX: Window Y position, X position plus 7> |
| 107 | +[WX]: <#FF4A–FF4B — WY, WX: Window Y position, X position plus 7> |
| 108 | +[KEY1]: <#FF4D — KEY1 (CGB Mode only): Prepare speed switch> |
| 109 | +[VBK]: <#FF4F — VBK (CGB Mode only): VRAM bank> |
| 110 | +[HDMA1]: <#FF51–FF52 — HDMA1, HDMA2 (CGB Mode only): VRAM DMA source (high, low) \[write-only\]> |
| 111 | +[HDMA2]: <#FF51–FF52 — HDMA1, HDMA2 (CGB Mode only): VRAM DMA source (high, low) \[write-only\]> |
| 112 | +[HDMA3]: <#FF53–FF54 — HDMA3, HDMA4 (CGB Mode only): VRAM DMA destination (high, low) \[write-only\]> |
| 113 | +[HDMA4]: <#FF53–FF54 — HDMA3, HDMA4 (CGB Mode only): VRAM DMA destination (high, low) \[write-only\]> |
| 114 | +[HDMA5]: <#FF55 — HDMA5 (CGB Mode only): VRAM DMA length/mode/start> |
| 115 | +[RP]: <#FF56 — RP (CGB Mode only): Infrared communications port> |
| 116 | +[BCPS/BGPI]: <#FF68 — BCPS/BGPI (CGB Mode only): Background color palette specification / Background palette index> |
| 117 | +[BCPD/BGPD]: <#FF69 — BCPD/BGPD (CGB Mode only): Background color palette data / Background palette data> |
| 118 | +[OCPS/OBPI]: <#FF6A–FF6B — OCPS/OBPI, OCPD/OBPD (CGB Mode only): OBJ color palette specification / OBJ palette index, OBJ color palette data / OBJ palette data> |
| 119 | +[OCPD/OBPD]: <#FF6A–FF6B — OCPS/OBPI, OCPD/OBPD (CGB Mode only): OBJ color palette specification / OBJ palette index, OBJ color palette data / OBJ palette data> |
| 120 | +[OPRI]: <#FF6C — OPRI (CGB Mode only): Object priority mode> |
| 121 | +[SVBK]: <#FF70 — SVBK (CGB Mode only): WRAM bank> |
| 122 | +[PCM12]: <#FF76 — PCM12 (CGB Mode only): Digital outputs 1 & 2 \[read-only\]> |
| 123 | +[PCM34]: <#FF77 — PCM34 (CGB Mode only): Digital outputs 3 & 4 \[read-only\]> |
| 124 | +[IE]: <#FFFF — IE: Interrupt enable> |
0 commit comments