GPU/External Registers: Difference between revisions
Get rid of misleading and wrong information, and add more researched PDC info (unfinished) |
Adding new PDC reg names and descriptions (continuation) |
||
Line 148: | Line 148: | ||
The horizontal timing parameter order is as follows: | The horizontal timing parameter order is as follows: | ||
10 < 14 <= 60.LO <= 04 <= 60.HI <= 08 <= 0C | |||
18 <= 60.LO | |||
Timing starts from HCount == 0, then each absolute value in the beforementioned register chain triggers when HCount == register, latching the primitive display controller into a new mode. | Timing starts from HCount == 0, then each absolute value in the beforementioned register chain triggers when HCount == register, latching the primitive display controller into a new mode. | ||
There is an inherent latch order, where if two simultenaous events occur, one event wins over another. | There is an inherent latch order, where if two simultenaous events occur, one event wins over another. | ||
Line 154: | Line 156: | ||
Known latched modes (in no particular order): | Known latched modes (in no particular order): | ||
- HSync (triggers a line to the LCD to move to the next line) | - HSync (triggers a line to the LCD to move to the next line) | ||
- Back porch (area between HSync and border being displayed) | - Back porch (area between HSync and border being displayed, min 16 pixel clocks, otherwise the screen gets glitchy) | ||
- Left border start (no image data is being displayed, just a configurable solid color) | - Left border start (no image data is being displayed, just a configurable solid color) | ||
- Image start (pixel data is being DMA'd from video memory or main RAM) | - Image start (pixel data is being DMA'd from video memory or main RAM) | ||
- Right border start/Image end (border color is being displayed after the main image) | - Right border start/Image end (border color is being displayed after the main image) | ||
- Front porch ( | - Front porch (68 clock min, otherwise the screenn doesn't sync properly, and really glitches out) | ||
- Unknown synchronization/blanking (unknown where it happens) | - Unknown synchronization/blanking (unknown where it happens) | ||
Line 185: | Line 187: | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
| | | HSync | ||
| | | Triggers a HSync pulse. | ||
Based on behavior, this needs to last at least a pixel clock for the LCD to register the sync. | |||
|- | |- | ||
| 0x14 | | 0x14 | ||
| | | HPB | ||
| | | Back porch? Has to be at least one bigger than HSync, otherwise HSync never triggers. | ||
The display is blank, and the LCD displays nothing in this period (doesn't push pixels). | |||
|- | |- | ||
| 0x18 | | 0x18 | ||
| | | HBL | ||
| | | Left border trigger treshold. | ||
If this value is smaller than the back porch, then the back porch period will be zero, and the border will be immediately displayed upon entering the back porch period. | |||
Can be lower than HSync, as the back porch is what takes the controller out of HSync. | |||
Must be <= HDisp start (reg 0x60 low u16). | |||
|- | |- | ||
| 0x1C | | 0x1C | ||
Line 277: | Line 289: | ||
|- | |- | ||
| 0x60 | | 0x60 | ||
| | | HDisp | ||
| low u16: | | low u16: Image start (border --> pixel data) | ||
high u16: | high u16: Image end (pixel data --> border) | ||
|- | |- | ||
| 0x64 | | 0x64 |