@@ -40,6 +40,7 @@ rev_Check_hardware_inc : MACRO
40
40
ENDM
41
41
42
42
_VRAM EQU $8000 ; $8000->$9FFF
43
+ _VRAM8000 EQU _VRAM
43
44
_VRAM8800 EQU $8800
44
45
_VRAM9000 EQU $9000
45
46
_SCRN0 EQU $9800 ; $9800->$9BFF
@@ -68,7 +69,7 @@ rRAMB EQU $4000 ; $4000->$5fff - Bit 3 enables rumble (if present)
68
69
69
70
; --
70
71
; -- P1 ($FF00)
71
- ; -- Register for reading joy pad info. (R/W)
72
+ ; -- Register for reading joy pad info. (R/W)
72
73
; --
73
74
rP1 EQU $FF00
74
75
@@ -185,15 +186,15 @@ rAUD1ENV EQU rNR12
185
186
186
187
; --
187
188
; -- AUD1LOW/NR13 ($FF13)
188
- ; -- Frequency lo (W)
189
+ ; -- Frequency low byte (W)
189
190
; --
190
191
rNR13 EQU $FF13
191
192
rAUD1LOW EQU rNR13
192
193
193
194
194
195
; --
195
196
; -- AUD1HIGH/NR14 ($FF14)
196
- ; -- Frequency hi (W)
197
+ ; -- Frequency high byte (W)
197
198
; --
198
199
; -- Bit 7 - Initial (when set, sound restarts)
199
200
; -- Bit 6 - Counter/consecutive selection
@@ -225,15 +226,15 @@ rAUD2ENV EQU rNR22
225
226
226
227
; --
227
228
; -- AUD2LOW/NR23 ($FF18)
228
- ; -- Frequency lo (W)
229
+ ; -- Frequency low byte (W)
229
230
; --
230
231
rNR23 EQU $FF18
231
232
rAUD2LOW EQU rNR23
232
233
233
234
234
235
; --
235
236
; -- AUD2HIGH/NR24 ($FF19)
236
- ; -- Frequency hi (W)
237
+ ; -- Frequency high byte (W)
237
238
; --
238
239
; -- see AUD1HIGH for info
239
240
; --
@@ -277,7 +278,7 @@ rAUD3LEVEL EQU rNR32
277
278
278
279
; --
279
280
; -- AUD3LOW/NR33 ($FF1D)
280
- ; -- Frequency lo (W)
281
+ ; -- Frequency low byte (W)
281
282
; --
282
283
; -- see AUD1LOW for info
283
284
; --
@@ -287,7 +288,7 @@ rAUD3LOW EQU rNR33
287
288
288
289
; --
289
290
; -- AUD3HIGH/NR34 ($FF1E)
290
- ; -- Frequency hi (W)
291
+ ; -- Frequency high byte (W)
291
292
; --
292
293
; -- see AUD1HIGH for info
293
294
; --
@@ -335,13 +336,12 @@ rAUD4POLY EQU rNR43
335
336
336
337
; --
337
338
; -- AUD4GO/NR44 ($FF23)
338
- ; -- (has wrong name and value (ff30) in Dr.Pan's doc!)
339
339
; --
340
340
; -- Bit 7 - Inital
341
341
; -- Bit 6 - Counter/consecutive selection
342
342
; --
343
343
rNR44 EQU $FF23
344
- rAUD4GO EQU rNR44 ; silly name!
344
+ rAUD4GO EQU rNR44
345
345
346
346
347
347
; --
@@ -441,8 +441,8 @@ STATF_MODE10 EQU %00100000 ; Mode 10
441
441
STATF_MODE01 EQU %00010000 ; Mode 01 (V-Blank)
442
442
STATF_MODE00 EQU %00001000 ; Mode 00 (H-Blank)
443
443
STATF_LYCF EQU %00000100 ; Coincidence Flag
444
- STATF_HB EQU %00000000 ; H-Blank
445
- STATF_VB EQU %00000001 ; V-Blank
444
+ STATF_HBL EQU %00000000 ; H-Blank
445
+ STATF_VBL EQU %00000001 ; V-Blank
446
446
STATF_OAM EQU %00000010 ; OAM-RAM is used by system
447
447
STATF_LCD EQU %00000011 ; Both OAM and VRAM used by system
448
448
STATF_BUSY EQU %00000010 ; When set, VRAM access is unsafe
@@ -522,6 +522,7 @@ rOBP1 EQU $FF49
522
522
; -- Window Y Position (R/W)
523
523
; --
524
524
; -- 0 <= WY <= 143
525
+ ; -- When WY = 0, the window is displayed from the top edge of the LCD screen.
525
526
; --
526
527
rWY EQU $FF4A
527
528
@@ -531,15 +532,20 @@ rWY EQU $FF4A
531
532
; -- Window X Position (R/W)
532
533
; --
533
534
; -- 7 <= WX <= 166
535
+ ; -- When WX = 7, the window is displayed from the left edge of the LCD screen.
536
+ ; -- Values of 0-6 and 166 are unreliable due to hardware bugs.
534
537
; --
535
538
rWX EQU $FF4B
536
539
537
540
538
541
; --
539
- ; -- KEY 1 ($FF4D)
542
+ ; -- SPEED ($FF4D)
540
543
; -- Select CPU Speed (R/W)
541
544
; --
542
- rKEY1 EQU $FF4D
545
+ rSPD EQU $FF4D
546
+
547
+ SPDF_DBLSPEED EQU %10000000 ; 0=Normal Speed, 1=Double Speed (R)
548
+ SPDF_PREPARE EQU %00000001 ; 0=No, 1=Prepare (R/W)
543
549
544
550
545
551
; --
@@ -553,38 +559,49 @@ rVBK EQU $FF4F
553
559
554
560
; --
555
561
; -- HDMA1 ($FF51)
556
- ; -- Horizontal Blanking, General Purpose DMA (W)
562
+ ; -- High byte for Horizontal Blanking/General Purpose DMA source address (W)
563
+ ; -- CGB Mode Only
557
564
; --
558
565
rHDMA1 EQU $FF51
559
566
560
567
561
568
; --
562
569
; -- HDMA2 ($FF52)
563
- ; -- Horizontal Blanking, General Purpose DMA (W)
570
+ ; -- Low byte for Horizontal Blanking/General Purpose DMA source address (W)
571
+ ; -- CGB Mode Only
564
572
; --
565
573
rHDMA2 EQU $FF52
566
574
567
575
568
576
; --
569
577
; -- HDMA3 ($FF53)
570
- ; -- Horizontal Blanking, General Purpose DMA (W)
578
+ ; -- High byte for Horizontal Blanking/General Purpose DMA destination address (W)
579
+ ; -- CGB Mode Only
571
580
; --
572
581
rHDMA3 EQU $FF53
573
582
574
583
575
584
; --
576
585
; -- HDMA4 ($FF54)
577
- ; -- Horizontal Blanking, General Purpose DMA (W)
586
+ ; -- Low byte for Horizontal Blanking/General Purpose DMA destination address (W)
587
+ ; -- CGB Mode Only
578
588
; --
579
589
rHDMA4 EQU $FF54
580
590
581
591
582
592
; --
583
593
; -- HDMA5 ($FF55)
584
- ; -- Horizontal Blanking, General Purpose DMA (R/W)
594
+ ; -- Transfer length (in bytes)/mode/start for Horizontal Blanking, General Purpose DMA (R/W)
595
+ ; -- CGB Mode Only
585
596
; --
586
597
rHDMA5 EQU $FF55
587
598
599
+ HDMA5F_MODE_GP EQU %00000000 ; General Purpose DMA (W)
600
+ HDMA5F_MODE_HBL EQU %10000000 ; HBlank DMA (W)
601
+
602
+ ; -- Once DMA has started, use HDMA5F_BUSY to check when the transfer is complete
603
+ HDMA5F_BUSY EQU %10000000 ; 0=DMA complete, 1=Busy (DMA still in progress) (R)
604
+
588
605
589
606
; --
590
607
; -- RP ($FF56)
@@ -599,6 +616,8 @@ rRP EQU $FF56
599
616
; --
600
617
rBCPS EQU $FF68
601
618
619
+ BCPSF_AUTOINC EQU %10000000 ; Auto Increment (0=Disabled, 1=Increment after Writing)
620
+
602
621
603
622
; --
604
623
; -- BCPD ($FF69)
@@ -608,14 +627,16 @@ rBCPD EQU $FF69
608
627
609
628
610
629
; --
611
- ; -- BCPS ($FF6A)
630
+ ; -- OCPS ($FF6A)
612
631
; -- Object Color Palette Specification (R/W)
613
632
; --
614
633
rOCPS EQU $FF6A
615
634
635
+ OCPSF_AUTOINC EQU %10000000 ; Auto Increment (0=Disabled, 1=Increment after Writing)
636
+
616
637
617
638
; --
618
- ; -- BCPD ($FF6B)
639
+ ; -- OCPD ($FF6B)
619
640
; -- Object Color Palette Data (R/W)
620
641
; --
621
642
rOCPD EQU $FF6B
0 commit comments