@@ -268,63 +268,63 @@ The tables above were obtained from analysis of [the boot ROM's disassemblies](h
268268
269269As far as timing-sensitive values are concerned, these values are recorded at PC = $0100.
270270
271- Name | Address | DMG0 | DMG / MGB | SGB / SGB2 | CGB / AGB
272- -------------:|:-------:|:----:|:---------:|:----------:|:-----------:
273- [ ` P1 ` ] | $FF00 | $CF | $CF | $C7 or $CF | $C7 or $CF
274- [ ` SB ` ] | $FF01 | $00 | $00 | $00 | $00
275- [ ` SC ` ] | $FF02 | $7E | $7E | $7E | $7F
276- [ ` DIV ` ] | $FF04 | $18 | $AB | ??[ ^ unk ] | ??[ ^ unk_pad ]
277- [ ` TIMA ` ] | $FF05 | $00 | $00 | $00 | $00
278- [ ` TMA ` ] | $FF06 | $00 | $00 | $00 | $00
279- [ ` TAC ` ] | $FF07 | $F8 | $F8 | $F8 | $F8
280- [ ` IF ` ] | $FF0F | $E1 | $E1 | $E1 | $E1
281- [ ` NR10 ` ] | $FF10 | $80 | $80 | $80 | $80
282- [ ` NR11 ` ] | $FF11 | $BF | $BF | $BF | $BF
283- [ ` NR12 ` ] | $FF12 | $F3 | $F3 | $F3 | $F3
284- [ ` NR13 ` ] | $FF13 | $FF | $FF | $FF | $FF
285- [ ` NR14 ` ] | $FF14 | $BF | $BF | $BF | $BF
286- [ ` NR21 ` ] | $FF16 | $3F | $3F | $3F | $3F
287- [ ` NR22 ` ] | $FF17 | $00 | $00 | $00 | $00
288- [ ` NR23 ` ] | $FF18 | $FF | $FF | $FF | $FF
289- [ ` NR24 ` ] | $FF19 | $BF | $BF | $BF | $BF
290- [ ` NR30 ` ] | $FF1A | $7F | $7F | $7F | $7F
291- [ ` NR31 ` ] | $FF1B | $FF | $FF | $FF | $FF
292- [ ` NR32 ` ] | $FF1C | $9F | $9F | $9F | $9F
293- [ ` NR33 ` ] | $FF1D | $FF | $FF | $FF | $FF
294- [ ` NR34 ` ] | $FF1E | $BF | $BF | $BF | $BF
295- [ ` NR41 ` ] | $FF20 | $FF | $FF | $FF | $FF
296- [ ` NR42 ` ] | $FF21 | $00 | $00 | $00 | $00
297- [ ` NR43 ` ] | $FF22 | $00 | $00 | $00 | $00
298- [ ` NR44 ` ] | $FF23 | $BF | $BF | $BF | $BF
299- [ ` NR50 ` ] | $FF24 | $77 | $77 | $77 | $77
300- [ ` NR51 ` ] | $FF25 | $F3 | $F3 | $F3 | $F3
301- [ ` NR52 ` ] | $FF26 | $F1 | $F1 | $F0 | $F1
302- [ ` LCDC ` ] | $FF40 | $91 | $91 | $91 | $91
303- [ ` STAT ` ] | $FF41 | $81 | $85 | ??[ ^ unk ] | ??[ ^ unk_pad ]
304- [ ` SCY ` ] | $FF42 | $00 | $00 | $00 | $00
305- [ ` SCX ` ] | $FF43 | $00 | $00 | $00 | $00
306- [ ` LY ` ] | $FF44 | $91 | $00 | ??[ ^ unk ] | ??[ ^ unk_pad ]
307- [ ` LYC ` ] | $FF45 | $00 | $00 | $00 | $00
308- [ ` DMA ` ] | $FF46 | $FF | $FF | $FF | $00
309- [ ` BGP ` ] | $FF47 | $FC | $FC | $FC | $FC
310- [ ` OBP0 ` ] | $FF48 | $FF | $FF | $FF | $00
311- [ ` OBP1 ` ] | $FF49 | $FF | $FF | $FF | $00
312- [ ` WY ` ] | $FF4A | $00 | $00 | $00 | $00
313- [ ` WX ` ] | $FF4B | $00 | $00 | $00 | $00
314- [ ` KEY1 ` ] | $FF4D | $FF | $FF | $FF | $FF
315- [ ` VBK ` ] | $FF4F | $FF | $FF | $FF | $FF
316- [ ` HDMA1 ` ] | $FF51 | $FF | $FF | $FF | $FF
317- [ ` HDMA2 ` ] | $FF52 | $FF | $FF | $FF | $FF
318- [ ` HDMA3 ` ] | $FF53 | $FF | $FF | $FF | $FF
319- [ ` HDMA4 ` ] | $FF54 | $FF | $FF | $FF | $FF
320- [ ` HDMA5 ` ] | $FF55 | $FF | $FF | $FF | $FF
321- [ ` RP ` ] | $FF56 | $FF | $FF | $FF | $FF
322- [ ` BCPS ` ] | $FF68 | $FF | $FF | $FF | ??[ ^ compat ]
323- [ ` BCPD ` ] | $FF69 | $FF | $FF | $FF | ??[ ^ compat ]
324- [ ` OCPS ` ] | $FF6A | $FF | $FF | $FF | ??[ ^ compat ]
325- [ ` OCPD ` ] | $FF6B | $FF | $FF | $FF | ??[ ^ compat ]
326- [ ` SVBK ` ] | $FF70 | $FF | $FF | $FF | $FF
327- [ ` IE ` ] | $FFFF | $00 | $00 | $00 | $00
271+ Name | Address | DMG0 | DMG / MGB | SGB / SGB2 | CGB / AGB
272+ -------------:|:-------:|:-------- :|:---------:|:----------:|:-----------:
273+ [ ` P1 ` ] | $FF00 | $CF | $CF | $C7 or $CF | $C7 or $CF
274+ [ ` SB ` ] | $FF01 | $00 | $00 | $00 | $00
275+ [ ` SC ` ] | $FF02 | $7E | $7E | $7E | $7F
276+ [ ` DIV ` ] | $FF04 | $18 | $AB | ??[ ^ unk ] | ??[ ^ unk_pad ]
277+ [ ` TIMA ` ] | $FF05 | $00 | $00 | $00 | $00
278+ [ ` TMA ` ] | $FF06 | $00 | $00 | $00 | $00
279+ [ ` TAC ` ] | $FF07 | $F8 | $F8 | $F8 | $F8
280+ [ ` IF ` ] | $FF0F | $E1 | $E1 | $E1 | $E1
281+ [ ` NR10 ` ] | $FF10 | $80 | $80 | $80 | $80
282+ [ ` NR11 ` ] | $FF11 | $BF | $BF | $BF | $BF
283+ [ ` NR12 ` ] | $FF12 | $F3 | $F3 | $F3 | $F3
284+ [ ` NR13 ` ] | $FF13 | $FF | $FF | $FF | $FF
285+ [ ` NR14 ` ] | $FF14 | $BF | $BF | $BF | $BF
286+ [ ` NR21 ` ] | $FF16 | $3F | $3F | $3F | $3F
287+ [ ` NR22 ` ] | $FF17 | $00 | $00 | $00 | $00
288+ [ ` NR23 ` ] | $FF18 | $FF | $FF | $FF | $FF
289+ [ ` NR24 ` ] | $FF19 | $BF | $BF | $BF | $BF
290+ [ ` NR30 ` ] | $FF1A | $7F | $7F | $7F | $7F
291+ [ ` NR31 ` ] | $FF1B | $FF | $FF | $FF | $FF
292+ [ ` NR32 ` ] | $FF1C | $9F | $9F | $9F | $9F
293+ [ ` NR33 ` ] | $FF1D | $FF | $FF | $FF | $FF
294+ [ ` NR34 ` ] | $FF1E | $BF | $BF | $BF | $BF
295+ [ ` NR41 ` ] | $FF20 | $FF | $FF | $FF | $FF
296+ [ ` NR42 ` ] | $FF21 | $00 | $00 | $00 | $00
297+ [ ` NR43 ` ] | $FF22 | $00 | $00 | $00 | $00
298+ [ ` NR44 ` ] | $FF23 | $BF | $BF | $BF | $BF
299+ [ ` NR50 ` ] | $FF24 | $77 | $77 | $77 | $77
300+ [ ` NR51 ` ] | $FF25 | $F3 | $F3 | $F3 | $F3
301+ [ ` NR52 ` ] | $FF26 | $F1 | $F1 | $F0 | $F1
302+ [ ` LCDC ` ] | $FF40 | $91 | $91 | $91 | $91
303+ [ ` STAT ` ] | $FF41 | $81 | $85 | ??[ ^ unk ] | ??[ ^ unk_pad ]
304+ [ ` SCY ` ] | $FF42 | $00 | $00 | $00 | $00
305+ [ ` SCX ` ] | $FF43 | $00 | $00 | $00 | $00
306+ [ ` LY ` ] | $FF44 | $91 | $00 | ??[ ^ unk ] | ??[ ^ unk_pad ]
307+ [ ` LYC ` ] | $FF45 | $00 | $00 | $00 | $00
308+ [ ` DMA ` ] | $FF46 | $FF | $FF | $FF | $00
309+ [ ` BGP ` ] | $FF47 | $FC | $FC | $FC | $FC
310+ [ ` OBP0 ` ] | $FF48 | ?? [ ^ obp ] | ?? [ ^ obp ] | ?? [ ^ obp ] | ?? [ ^ obp ]
311+ [ ` OBP1 ` ] | $FF49 | ?? [ ^ obp ] | ?? [ ^ obp ] | ?? [ ^ obp ] | ?? [ ^ obp ]
312+ [ ` WY ` ] | $FF4A | $00 | $00 | $00 | $00
313+ [ ` WX ` ] | $FF4B | $00 | $00 | $00 | $00
314+ [ ` KEY1 ` ] | $FF4D | $FF | $FF | $FF | $FF
315+ [ ` VBK ` ] | $FF4F | $FF | $FF | $FF | $FF
316+ [ ` HDMA1 ` ] | $FF51 | $FF | $FF | $FF | $FF
317+ [ ` HDMA2 ` ] | $FF52 | $FF | $FF | $FF | $FF
318+ [ ` HDMA3 ` ] | $FF53 | $FF | $FF | $FF | $FF
319+ [ ` HDMA4 ` ] | $FF54 | $FF | $FF | $FF | $FF
320+ [ ` HDMA5 ` ] | $FF55 | $FF | $FF | $FF | $FF
321+ [ ` RP ` ] | $FF56 | $FF | $FF | $FF | $FF
322+ [ ` BCPS ` ] | $FF68 | $FF | $FF | $FF | ??[ ^ compat ]
323+ [ ` BCPD ` ] | $FF69 | $FF | $FF | $FF | ??[ ^ compat ]
324+ [ ` OCPS ` ] | $FF6A | $FF | $FF | $FF | ??[ ^ compat ]
325+ [ ` OCPD ` ] | $FF6B | $FF | $FF | $FF | ??[ ^ compat ]
326+ [ ` SVBK ` ] | $FF70 | $FF | $FF | $FF | $FF
327+ [ ` IE ` ] | $FFFF | $00 | $00 | $00 | $00
328328
329329[ ^ unk ] :
330330Since this boot ROM's duration depends on the header's contents, a general answer can't be given.
@@ -334,6 +334,11 @@ The value should be static for a given header, though.
334334Since this boot ROM's duration depends on the header's contents (and the player's inputs in compatibility mode), an answer can't be given.
335335Just don't rely on these.
336336
337+ [ ^ obp ] :
338+ These registers are left entirely uninitialized.
339+ Their value tends to be most often $00 or $FF, but the value is especially not reliable if your software runs after e.g. a flashcart or multicart selection menu.
340+ Make sure to always set those before displaying objects for the first time.
341+
337342[ ^ compat ] :
338343These depend on whether compatibility mode is enabled.
339344
0 commit comments