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
Next revisionBoth sides next revision
digic8:registers [2022/02/20 14:53] – [LV peaking (Highlights / zebra)] kitordigic8:registers [2022/02/20 16:35] – [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.
  
-HDMI registers don't work as for nowThreshold/color registers accepts values as expected. Enable/disable is ignored.+===Note on HDMI registers=== 
 +Directly poking HDMI enable doesn't work. There's something running in DryOS that constantly overwrites this register with value saved in runtime.
  
-When observed in Play menu (with stock overexpo warning enabled), enable register changes as expectedSo there'piece of puzzle still missing.+On R180.739 I was able to follow xrefs to that register, and found 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.
  
-Code suggests there are more registers: +__It is possible to have independent zebras configured on LCD and HDMI while running in Clean HDMI mode!__
- +
-^ 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.+
  
 ===Enable register=== ===Enable register===
Line 93: Line 80:
  
 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