You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Fix ambiguity in clock units
The M-cycle crusade!
* Fix missing terminator
* Fix typos and missed spelling errors
* Correct and convert "Timer Global Circuit" to SVG
Fixes#492 by moving the DIV-APU bits from 5 and 6 to 4 and 5.
Also applies the "TODO: correct the diagram" note.
Also tries to reorganise the diagram and reword some bits to be
more consistent with the rest of the document, and improve clarity.
* Correctly reflect which bits don't exist on the diagram
* Provide fallback values for viewing the SVG stand-alone
* Convert DIV+TAC diagrams to "themed" SVGs
Also restore the CGB version of that diagram
* Tweak presentation of "system counter" a little
---------
Co-authored-by: Eldred HABERT <[email protected]>
Copy file name to clipboardExpand all lines: src/Rendering.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ The main implication of this rendering process is the existence of **raster effe
9
9
The most famous raster effect is modifying the [scrolling registers](<#LCD Position and Scrolling>) between scanlines to create a ["wavy" effect](https://gbdev.io/guides/deadcscroll#effects).
10
10
11
11
A "**dot**" = one 2<sup>22</sup> Hz (≅ 4.194 MHz) time unit.
12
-
Dots remain the same regardless of whether the CPU is in [double speed](<#FF4D — KEY1 (CGB Mode only): Prepare speed switch>), so there are 4 dots per single-speed CPU cycle, and 2 per double-speed CPU cycle.
12
+
Dots remain the same regardless of whether the CPU is in [Double Speed mode](<#FF4D — KEY1 (CGB Mode only): Prepare speed switch>), so there are 4 dots per Single Speed M-cycle, and 2 per Double Speed M-cycle.
13
13
14
14
:::tip NOTE
15
15
@@ -64,10 +64,10 @@ Only the OBJ's leftmost pixel matters here, transparent or not; it is designated
64
64
3. Incur this many dots of penalty, or zero if negative (from waiting for the BG fetch to finish).
65
65
3. Incur a flat, 6-dot penalty (from fetching the OBJ's tile).
66
66
67
-
**Exception**: an OBJ with an OAM X position of 0 (thus, completely off the left side of the screen) always incurs a 11-cycle penalty, regardless of `SCX`.
67
+
**Exception**: an OBJ with an OAM X position of 0 (thus, completely off the left side of the screen) always incurs a 11-dot penalty, regardless of `SCX`.
68
68
69
69
70
-
[^first12]: The 12 extra cycles come from two tile fetches at the beginning of Mode 3. One is the first tile in the scanline (the one that gets shifted by `SCX` % 8 pixels), the other is simply discarded.
70
+
[^first12]: The 12 extra dots of penalty come from two tile fetches at the beginning of Mode 3. One is the first tile in the scanline (the one that gets shifted by `SCX` % 8 pixels), the other is simply discarded.
71
71
72
72
[^crt]: The Game Boy can afford to "take pauses", because it writes to a LCD it fully controls; by contrast, home consoles like the NES or SNES are on a schedule imposed by the screen they are hooked up to. Taking pauses arguably simplified the PPU's design while allowing greater flexibility to game developers.
Copy file name to clipboardExpand all lines: src/STAT.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
:::tip TERMINOLOGY
4
4
5
-
A *dot* is the shortest period over which the PPU can output one pixel: is it equivalent to 1 T-state on DMG or on CGB single-speed mode or 2 T-states on CGB double-speed mode. On each dot during mode 3, either the PPU outputs a pixel or the fetcher is stalling the [FIFOs](<#Pixel FIFO>).
5
+
A *dot* is the shortest period over which the PPU can output one pixel: is it equivalent to 1 T-cycle on DMG or on CGB Single Speed mode or 2 T-cycles on CGB Double Speed mode. On each dot during mode 3, either the PPU outputs a pixel or the fetcher is stalling the [FIFOs](<#Pixel FIFO>).
6
6
7
7
:::
8
8
@@ -36,7 +36,7 @@ is set, and (if enabled) a STAT interrupt is requested.
36
36
A hardware quirk in the monochrome Game Boy makes the LCD interrupt
37
37
sometimes trigger when writing to STAT (including writing \$00) during
38
38
OAM scan, HBlank, VBlank, or LY=LYC. It behaves as if \$FF were
39
-
written for one cycle, and then the written value were written the next
40
-
cycle. Because the GBC in DMG mode does not have this quirk, two games
39
+
written for one M-cycle, and then the written value were written the next
40
+
M-cycle. Because the GBC in DMG mode does not have this quirk, two games
41
41
that depend on this quirk (Ocean's *Road Rash* and Vic Tokai's *Xerd
0 commit comments