User Tools

Site Tools


digic8:registers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
digic8:registers [2022/02/20 13:45] – [LV peaking (Highlights / zebra)] kitordigic8:registers [2022/02/20 17:04] – [LV peaking (Highlights / zebra)] kitor
Line 27: Line 27:
  
 ^ Address        ^ Output  ^ Type      ^ Controls what?      ^ ^ Address        ^ Output  ^ Type      ^ Controls what?      ^
-| ''0xD0300520'' | HDMI    | overexpo  | enable / disable    | +| ''0xD0300520'' | HDMI    | zebra     | enable / disable    |
-| ''0xD0300550'' | HDMI    | underexpo | enable / disable    |+
 | ''0xD0300750'' | HDMI    | overexpo  | threshold and style | | ''0xD0300750'' | HDMI    | overexpo  | threshold and style |
 | ''0xD0300754'' | HDMI    | overexpo  | color               | | ''0xD0300754'' | HDMI    | overexpo  | color               |
 | ''0xD0300758'' | HDMI    | underexpo | threshold and style | | ''0xD0300758'' | HDMI    | underexpo | threshold and style |
 | ''0xD030075C'' | HDMI    | underexpo | color               | | ''0xD030075C'' | HDMI    | underexpo | color               |
-| ''0xD0304220'' | LCD/EVF | overexpo  | enable / disable    | +| ''0xD0304220'' | LCD/EVF | zebra     | enable / disable    |
-| ''0xD0304250'' | LCD/EVF | underexpo | enable / disable    |+
 | ''0xD0304488'' | LCD/EVF | overexpo  | threshold and style | | ''0xD0304488'' | LCD/EVF | overexpo  | threshold and style |
 | ''0xD030448C'' | LCD/EVF | overexpo  | color               | | ''0xD030448C'' | LCD/EVF | overexpo  | color               |
Line 42: Line 40:
 Registers used by ''DispVram'' State object to control overexposure highlighting feature. Registers used by ''DispVram'' State object to control overexposure highlighting feature.
  
-Not tested on HDMI yet (registers found via static analysis)Ability to have underexposure highlights (like on D45) is not yet confirmed.+===Note on HDMI registers=== 
 +Directly poking HDMI enable doesn't workThere's something running in DryOS that constantly overwrites this register with value saved in runtime.
  
-Code suggests there are more registers: +On R180.739 I was able to follow xrefs to that register, and found a function that writes them - on R180.739 source value is stored in ''b054''. If you apply the rules but write value to ''b054'' instead of register it will get updated and zebras displayed on HDMI.
- +
-^ Output  ^ Reg       ^ Addresses                 ^ Range   ^ +
-| HDMI(?) | Enable    | ''0xD0300520 + 0x30 * n'' | n∈(0-7) | +
-| HDMI(?) | Threshold | ''0xD0300750 + 0x8  * n'' | n∈(0-5) | +
-HDMI(?) | Color     | ''0xD0300754 + 0x8  * n'' | n∈(0-5) | +
-| LCD(? | Enable    | ''0xD0304220 + 0x30 * n'' | n∈(0-7) | +
-| LCD(? | Threshold | ''0xD0304488 + 0x8  * n'' | n∈(0-5) | +
-| LCD(? | Color     | ''0xD030448C + 0x8  * n'' | n∈(0-5) | +
- +
-For ''n > 1'' there's no visible difference.+
  
-For ''n > 1'' Threshold registers accept both thresholds at the same time, but since those have no observed effects on displayed image - meaning is unknown.+__It is possible to have independent zebras configured on LCD and HDMI while running in Clean HDMI mode!__
  
 ===Enable register=== ===Enable register===
Line 63: Line 52:
  
 Value written should be masked ''0x100'' with one read from ''reg + 0x2000'' Value written should be masked ''0x100'' with one read from ''reg + 0x2000''
 +
 +This register lies in **Display registers** range and most likely has more meanings.
  
 ===Threshold / style register=== ===Threshold / style register===
Line 79: Line 70:
 Value written should be masked ''0xB137FFFF'' with one read from ''reg + 0x2000'' Value written should be masked ''0xB137FFFF'' with one read from ''reg + 0x2000''
  
-^ Field      ^ Range ^ Description ^+^ Field        ^ Range ^ Description ^
 | visibility   | 0,1   | zebra visibility (do not confuse with Enable register)  | | visibility   | 0,1   | zebra visibility (do not confuse with Enable register)  |
-| speed:       | 0-3   | lines/dots are moving slower -> faster                  |+| speed        | 0-3   | lines/dots are moving slower -> faster                  |
 | angle        | 0-1   | 0: 45 deg, 1: -45 deg                                   | | angle        | 0-1   | 0: 45 deg, 1: -45 deg                                   |
-| style:       | 0-2   | 0: light dots, 1: thin lines, 2: thick lines            |+| style        | 0-2   | 0: light dots, 1: thin lines, 2: thick lines            |
 | opacity      | 0-7   | very opaque -> solid color                              | | opacity      | 0-7   | very opaque -> solid color                              |
 | underexpo_th | 0-255 | Threshold on undexexpo register, ignored on overexpo    |  | underexpo_th | 0-255 | Threshold on undexexpo register, ignored on overexpo    | 
 | overexpo_th  | 0-255 | Threshold on overexpo register, ignored on underexpo    | | overexpo_th  | 0-255 | Threshold on overexpo register, ignored on underexpo    |
 +
 +**Note: On HDMI max threshold is 0xE8** Values above that are not displayed!
  
 ===Color register=== ===Color register===
  
 Controls color of highlight overlays. ''??YYUUVV'' format. Canon code defaults to black (''00008080'') Controls color of highlight overlays. ''??YYUUVV'' format. Canon code defaults to black (''00008080'')
 +
 +===More registers===
 +
 +Code suggests there are more registers:
 +
 +^ Output ^ Reg       ^ Addresses                 ^ Range   ^
 +| HDMI   | Enable    | ''0xD0300520 + 0x30 * n'' | n∈⟨0,7⟩ |
 +| LCD    | Enable    | ''0xD0304220 + 0x30 * n'' | n∈⟨0,7⟩ |
 +| HDMI   | Threshold | ''0xD0300750 + 0x8  * m'' | m∈⟨0,5⟩ |
 +| HDMI   | Color     | ''0xD0300754 + 0x8  * m'' | m∈⟨0,5⟩ |
 +| LCD    | Threshold | ''0xD0304488 + 0x8  * m'' | m∈⟨0,5⟩ |
 +| LCD    | Color     | ''0xD030448C + 0x8  * m'' | m∈⟨0,5⟩ |
 +
 +n values above 0 and m values above 1 are not understood. There's no visible difference on screen.
 +
 +For ''m > 1'' Threshold registers accept both under and overexposure thresholds at the same time, but since those have no visible effects on displayed image - meaning is unknown.
 +
 +Guess: maybe ''m > 1'' are in use for 10 bit / HDR mode?
 ==== Audio ==== ==== Audio ====
  
digic8/registers.txt · Last modified: 2022/02/21 23:03 by kitor