PVR350 Video decoder registers 0x02002800 -> 0x02002B00
=======================================================

This list has been worked out through trial and error. There will be mistakes
and omissions. Some registers have no obvious effect so it's hard to say what
they do, while others interact with each other, or require a certain load
sequence. Horizontal filter setup is one example, with six registers working
in unison and requiring a certain load sequence to correctly configure. The
indexed colour palette is much easier to set at just two registers, but again
it requires a certain load sequence.

Some registers are fussy about what they are set to. Load in a bad value & the
decoder will fail. A firmware reload will often recover, but sometimes a reset
is required. For registers containing size information, setting them to 0 is
generally a bad idea. For other control registers i.e. 2878, you'll only find
out what values are bad when it hangs.

--------------------------------------------------------------------------------
2800
      bit 0
	Decoder enable
	  0 = disable
	  1 = enable
--------------------------------------------------------------------------------
2804
      bits 0:31
	Decoder horizontal Y alias register 1
---------------
2808
      bits 0:31
	Decoder horizontal Y alias register 2
---------------
280C
      bits 0:31
	Decoder horizontal Y alias register 3
---------------
2810
      bits 0:31
	Decoder horizontal Y alias register 4
---------------
2814
      bits 0:31
	Decoder horizontal Y alias register 5
---------------
2818
      bits 0:31
	Decoder horizontal Y alias trigger

     These six registers control the horizontal aliasing filter for the Y plane.
     The first five registers must all be loaded before accessing the trigger
     (2818), as this register actually clocks the data through for the first
     five.

     To correctly program set the filter, this whole procedure must be done 16
     times. The actual register contents are copied from a lookup-table in the
     firmware which contains 4 different filter settings.

--------------------------------------------------------------------------------
281C
      bits 0:31
	Decoder horizontal UV alias register 1
---------------
2820
      bits 0:31
	Decoder horizontal UV alias register 2
---------------
2824
      bits 0:31
	Decoder horizontal UV alias register 3
---------------
2828
      bits 0:31
	Decoder horizontal UV alias register 4
---------------
282C
      bits 0:31
	Decoder horizontal UV alias register 5
---------------
2830
      bits 0:31
	Decoder horizontal UV alias trigger

     These six registers control the horizontal aliasing for the UV plane.
     Operation is the same as the Y filter, with 2830 being the trigger
     register.

--------------------------------------------------------------------------------
2834
      bits 0:15
	Decoder Y source width in pixels

      bits 16:31
	Decoder Y destination width in pixels
---------------
2838
      bits 0:15
	Decoder UV source width in pixels

      bits 16:31
	Decoder UV destination width in pixels

     NOTE: For both registers, the resulting image must be fully visible on
     screen. If the image exceeds the right edge both the source and destination
     size must be adjusted to reflect the visible portion. For the source width,
     you must take into account the scaling when calculating the new value.
--------------------------------------------------------------------------------

283C
      bits 0:31
	Decoder Y horizontal scaling
		    Normally = Reg 2854 >> 2
---------------
2840
      bits 0:31
	Decoder ?? unknown - horizontal scaling
	  Usually 0x00080514
---------------
2844
      bits 0:31
	Decoder UV horizontal scaling
	  Normally = Reg 2854 >> 2
---------------
2848
      bits 0:31
	Decoder ?? unknown - horizontal scaling
	  Usually 0x00100514
---------------
284C
      bits 0:31
	Decoder ?? unknown - Y plane
	  Usually 0x00200020
---------------
2850
      bits 0:31
	Decoder ?? unknown - UV plane
	  Usually 0x00200020
---------------
2854
      bits 0:31
	Decoder 'master' value for horizontal scaling
---------------
2858
      bits 0:31
	Decoder ?? unknown
	  Usually 0
---------------
285C
      bits 0:31
	Decoder ?? unknown
	  Normally = Reg 2854 >> 1
---------------
2860
      bits 0:31
	Decoder ?? unknown
	  Usually 0
---------------
2864
      bits 0:31
	Decoder ?? unknown
	  Normally = Reg 2854 >> 1
---------------
2868
      bits 0:31
	Decoder ?? unknown
	  Usually 0

     Most of these registers either control horizontal scaling, or appear linked
     to it in some way. Register 2854 contains the 'master' value & the other
     registers can be calculated from that one. You must also remember to
     correctly set the divider in Reg 2874.

     To enlarge:
	     Reg 2854 = (source_width * 0x00200000) / destination_width
	     Reg 2874 = No divide

     To reduce from full size down to half size:
	     Reg 2854 = (source_width/2 * 0x00200000) / destination width
	     Reg 2874 = Divide by 2

     To reduce from half size down to quarter size:
	     Reg 2854 = (source_width/4 * 0x00200000) / destination width
	     Reg 2874 = Divide by 4

     The result is always rounded up.

--------------------------------------------------------------------------------
286C
      bits 0:15
	Decoder horizontal Y buffer offset

      bits 15:31
	Decoder horizontal UV buffer offset

     Offset into the video image buffer. If the offset is gradually incremented,
     the on screen image will move left & wrap around higher up on the right.

--------------------------------------------------------------------------------
2870
      bits 0:15
	Decoder horizontal Y output offset

      bits 16:31
	Decoder horizontal UV output offset

     Offsets the actual video output. Controls output alignment of the Y & UV
     planes. The higher the value, the greater the shift to the left. Use
     reg 2890 to move the image right.

--------------------------------------------------------------------------------
2874
      bits 0:1
	Decoder horizontal Y output size divider
	  00 = No divide
	  01 = Divide by 2
	  10 = Divide by 3

      bits 4:5
	Decoder horizontal UV output size divider
	  00 = No divide
	  01 = Divide by 2
	  10 = Divide by 3

      bit 8
	Decoder ?? unknown
	  0 = Normal
	  1 = Affects video output levels

      bit 16
	Decoder ?? unknown
	  0 = Normal
	  1 = Disable horizontal filter

--------------------------------------------------------------------------------
2878
      bit 0
	?? unknown

      bit 1
	osd on/off
	  0 = osd off
	  1 = osd on

      bit 2
	Decoder + osd video timing
	  0 = NTSC
	  1 = PAL

      bits 3:4
	?? unknown

      bit 5
	Decoder + osd
	  Swaps upper & lower fields

--------------------------------------------------------------------------------
287C
      bits 0:10
	Decoder & osd ?? unknown
	  Moves entire screen horizontally. Starts at 0x005 with the screen
	  shifted heavily to the right. Incrementing in steps of 0x004 will
	  gradually shift the screen to the left.

      bits 11:31
	?? unknown

     Normally contents are 0x00101111 (NTSC) or 0x1010111d (PAL)

--------------------------------------------------------------------------------
2880  --------    ?? unknown
2884  --------    ?? unknown
--------------------------------------------------------------------------------
2888
      bit 0
	Decoder + osd ?? unknown
	  0 = Normal
	  1 = Misaligned fields (Correctable through 289C & 28A4)

      bit 4
	?? unknown

      bit 8
	?? unknown

     Warning: Bad values will require a firmware reload to recover.
		 Known to be bad are 0x000,0x011,0x100,0x111
--------------------------------------------------------------------------------
288C
      bits 0:15
	osd ?? unknown
	  Appears to affect the osd position stability. The higher the value the
	  more unstable it becomes. Decoder output remains stable.

      bits 16:31
	osd ?? unknown
	  Same as bits 0:15

--------------------------------------------------------------------------------
2890
      bits 0:11
	Decoder output horizontal offset.

     Horizontal offset moves the video image right. A small left shift is
     possible, but it's better to use reg 2870 for that due to its greater
     range.

     NOTE: Video corruption will occur if video window is shifted off the right
     edge. To avoid this read the notes for 2834 & 2838.
--------------------------------------------------------------------------------
2894
      bits 0:23
	Decoder output video surround colour.

     Contains the colour (in yuv) used to fill the screen when the video is
     running in a window.
--------------------------------------------------------------------------------
2898
      bits 0:23
	Decoder video window colour
	  Contains the colour (in yuv) used to fill the video window when the
	  video is turned off.

      bit 24
	Decoder video output
	  0 = Video on
	  1 = Video off

      bit 28
	Decoder plane order
	  0 = Y,UV
	  1 = UV,Y

      bit 29
	Decoder second plane byte order
	  0 = Normal (UV)
	  1 = Swapped (VU)

     In normal usage, the first plane is Y & the second plane is UV. Though the
     order of the planes can be swapped, only the byte order of the second plane
     can be swapped. This isn't much use for the Y plane, but can be useful for
     the UV plane.

--------------------------------------------------------------------------------
289C
      bits 0:15
	Decoder vertical field offset 1

      bits 16:31
	Decoder vertical field offset 2

     Controls field output vertical alignment. The higher the number, the lower
     the image on screen. Known starting values are 0x011E0017 (NTSC) &
     0x01500017 (PAL)
--------------------------------------------------------------------------------
28A0
      bits 0:15
	Decoder & osd width in pixels

      bits 16:31
	Decoder & osd height in pixels

     All output from the decoder & osd are disabled beyond this area. Decoder
     output will simply go black outside of this region. If the osd tries to
     exceed this area it will become corrupt.
--------------------------------------------------------------------------------
28A4
      bits 0:11
	osd left shift.

     Has a range of 0x770->0x7FF. With the exception of 0, any value outside of
     this range corrupts the osd.
--------------------------------------------------------------------------------
28A8
      bits 0:15
	osd vertical field offset 1

      bits 16:31
	osd vertical field offset 2

     Controls field output vertical alignment. The higher the number, the lower
     the image on screen. Known starting values are 0x011E0017 (NTSC) &
     0x01500017 (PAL)
--------------------------------------------------------------------------------
28AC  --------    ?? unknown
 |
 V
28BC  --------    ?? unknown
--------------------------------------------------------------------------------
28C0
      bit 0
	Current output field
	  0 = first field
	  1 = second field

      bits 16:31
	Current scanline
	  The scanline counts from the top line of the first field
	  through to the last line of the second field.
--------------------------------------------------------------------------------
28C4  --------    ?? unknown
 |
 V
28F8  --------    ?? unknown
--------------------------------------------------------------------------------
28FC
      bit 0
	?? unknown
	  0 = Normal
	  1 = Breaks decoder & osd output
--------------------------------------------------------------------------------
2900
      bits 0:31
	Decoder vertical Y alias register 1
---------------
2904
      bits 0:31
	Decoder vertical Y alias register 2
---------------
2908
      bits 0:31
	Decoder vertical Y alias trigger

     These three registers control the vertical aliasing filter for the Y plane.
     Operation is similar to the horizontal Y filter (2804). The only real
     difference is that there are only two registers to set before accessing
     the trigger register (2908). As for the horizontal filter, the values are
     taken from a lookup table in the firmware, and the procedure must be
     repeated 16 times to fully program the filter.
--------------------------------------------------------------------------------
290C
      bits 0:31
	Decoder vertical UV alias register 1
---------------
2910
      bits 0:31
	Decoder vertical UV alias register 2
---------------
2914
      bits 0:31
	Decoder vertical UV alias trigger

     These three registers control the vertical aliasing filter for the UV
     plane. Operation is the same as the Y filter, with 2914 being the trigger.
--------------------------------------------------------------------------------
2918
      bits 0:15
	Decoder Y source height in pixels

      bits 16:31
	Decoder Y destination height in pixels
---------------
291C
      bits 0:15
	Decoder UV source height in pixels divided by 2

      bits 16:31
	Decoder UV destination height in pixels

     NOTE: For both registers, the resulting image must be fully visible on
     screen. If the image exceeds the bottom edge both the source and
     destination size must be adjusted to reflect the visible portion. For the
     source height, you must take into account the scaling when calculating the
     new value.
--------------------------------------------------------------------------------
2920
      bits 0:31
	Decoder Y vertical scaling
	  Normally = Reg 2930 >> 2
---------------
2924
      bits 0:31
	Decoder Y vertical scaling
	  Normally = Reg 2920 + 0x514
---------------
2928
      bits 0:31
	Decoder UV vertical scaling
	  When enlarging = Reg 2930 >> 2
	  When reducing = Reg 2930 >> 3
---------------
292C
      bits 0:31
	Decoder UV vertical scaling
	  Normally = Reg 2928 + 0x514
---------------
2930
      bits 0:31
	Decoder 'master' value for vertical scaling
---------------
2934
      bits 0:31
	Decoder ?? unknown - Y vertical scaling
---------------
2938
      bits 0:31
	Decoder Y vertical scaling
	  Normally = Reg 2930
---------------
293C
      bits 0:31
	Decoder ?? unknown - Y vertical scaling
---------------
2940
      bits 0:31
	Decoder UV vertical scaling
	  When enlarging = Reg 2930 >> 1
	  When reducing = Reg 2930
---------------
2944
      bits 0:31
	Decoder ?? unknown - UV vertical scaling
---------------
2948
      bits 0:31
	Decoder UV vertical scaling
	  Normally = Reg 2940
---------------
294C
      bits 0:31
	Decoder ?? unknown - UV vertical scaling

     Most of these registers either control vertical scaling, or appear linked
     to it in some way. Register 2930 contains the 'master' value & all other
     registers can be calculated from that one. You must also remember to
     correctly set the divider in Reg 296C

     To enlarge:
	     Reg 2930 = (source_height * 0x00200000) / destination_height
	     Reg 296C = No divide

     To reduce from full size down to half size:
	     Reg 2930 = (source_height/2 * 0x00200000) / destination height
	     Reg 296C = Divide by 2

      To reduce from half down to quarter.
	     Reg 2930 = (source_height/4 * 0x00200000) / destination height
	     Reg 296C = Divide by 4

--------------------------------------------------------------------------------
2950
      bits 0:15
	Decoder Y line index into display buffer, first field

      bits 16:31
	Decoder Y vertical line skip, first field
--------------------------------------------------------------------------------
2954
      bits 0:15
	Decoder Y line index into display buffer, second field

      bits 16:31
	Decoder Y vertical line skip, second field
--------------------------------------------------------------------------------
2958
      bits 0:15
	Decoder UV line index into display buffer, first field

      bits 16:31
	Decoder UV vertical line skip, first field
--------------------------------------------------------------------------------
295C
      bits 0:15
	Decoder UV line index into display buffer, second field

      bits 16:31
	Decoder UV vertical line skip, second field
--------------------------------------------------------------------------------
2960
      bits 0:15
	Decoder destination height minus 1

      bits 16:31
	Decoder destination height divided by 2
--------------------------------------------------------------------------------
2964
      bits 0:15
	Decoder Y vertical offset, second field

      bits 16:31
	Decoder Y vertical offset, first field

     These two registers shift the Y plane up. The higher the number, the
     greater the shift.
--------------------------------------------------------------------------------
2968
      bits 0:15
	Decoder UV vertical offset, second field

      bits 16:31
	Decoder UV vertical offset, first field

     These two registers shift the UV plane up. The higher the number, the
     greater the shift.
--------------------------------------------------------------------------------
296C
      bits 0:1
	Decoder vertical Y output size divider
	  00 = No divide
	  01 = Divide by 2
	  10 = Divide by 4

      bits 8:9
	Decoder vertical UV output size divider
	  00 = No divide
	  01 = Divide by 2
	  10 = Divide by 4
--------------------------------------------------------------------------------
2970
      bit 0
	Decoder ?? unknown
	  0 = Normal
	  1 = Affect video output levels

      bit 16
	Decoder ?? unknown
	  0 = Normal
	  1 = Disable vertical filter

--------------------------------------------------------------------------------
2974  --------   ?? unknown
 |
 V
29EF  --------   ?? unknown
--------------------------------------------------------------------------------
2A00
      bits 0:2
	osd colour mode
	  000 = 8 bit indexed
	  001 = 16 bit (565)
	  010 = 15 bit (555)
	  011 = 12 bit (444)
	  100 = 32 bit (8888)

      bits 4:5
	osd display bpp
	  01 = 8 bit
	  10 = 16 bit
	  11 = 32 bit

      bit 8
	osd global alpha
	  0 = Off
	  1 = On

      bit 9
	osd local alpha
	  0 = Off
	  1 = On

      bit 10
	osd colour key
	  0 = Off
	  1 = On

      bit 11
	osd ?? unknown
	  Must be 1

      bit 13
	osd colour space
	  0 = ARGB
	  1 = AYVU

      bits 16:31
	osd ?? unknown
	  Must be 0x001B (some kind of buffer pointer ?)

     When the bits-per-pixel is set to 8, the colour mode is ignored and
     assumed to be 8 bit indexed. For 16 & 32 bits-per-pixel the colour depth
     is honoured, and when using a colour depth that requires fewer bytes than
     allocated the extra bytes are used as padding. So for a 32 bpp with 8 bit
     index colour, there are 3 padding bytes per pixel. It's also possible to
     select 16bpp with a 32 bit colour mode. This results in the pixel width
     being doubled, but the color key will not work as expected in this mode.

     Colour key is as it suggests. You designate a colour which will become
     completely transparent. When using 565, 555 or 444 colour modes, the
     colour key is always 16 bits wide. The colour to key on is set in Reg 2A18.

     Local alpha works differently depending on the colour mode. For 32bpp & 8
     bit indexed, local alpha is a per-pixel 256 step transparency, with 0 being
     transparent and 255 being solid. For the 16bpp modes 555 & 444, the unused
     bit(s) act as a simple transparency switch, with 0 being solid & 1 being
     fully transparent. There is no local alpha support for 16bit 565.

     Global alpha is a 256 step transparency that applies to the entire osd,
     with 0 being transparent & 255 being solid.

     It's possible to combine colour key, local alpha & global alpha.
--------------------------------------------------------------------------------
2A04
      bits 0:15
	osd x coord for left edge

      bits 16:31
	osd y coord for top edge
---------------
2A08
      bits 0:15
	osd x coord for right edge

      bits 16:31
	osd y coord for bottom edge

     For both registers, (0,0) = top left corner of the display area. These
     registers do not control the osd size, only where it's positioned & how
     much is visible. The visible osd area cannot exceed the right edge of the
     display, otherwise the osd will become corrupt. See reg 2A10 for
     setting osd width.
--------------------------------------------------------------------------------
2A0C
      bits 0:31
	osd buffer index

     An index into the osd buffer. Slowly incrementing this moves the osd left,
     wrapping around onto the right edge
--------------------------------------------------------------------------------
2A10
      bits 0:11
	osd buffer 32 bit word width

     Contains the width of the osd measured in 32 bit words. This means that all
     colour modes are restricted to a byte width which is divisible by 4.
--------------------------------------------------------------------------------
2A14
      bits 0:15
	osd height in pixels

      bits 16:32
	osd line index into buffer
	  osd will start displaying from this line.
--------------------------------------------------------------------------------
2A18
      bits 0:31
	osd colour key

     Contains the colour value which will be transparent.
--------------------------------------------------------------------------------
2A1C
      bits 0:7
	osd global alpha

     Contains the global alpha value (equiv ivtvfbctl --alpha XX)
--------------------------------------------------------------------------------
2A20  --------    ?? unknown
 |
 V
2A2C  --------    ?? unknown
--------------------------------------------------------------------------------
2A30
      bits 0:7
	osd colour to change in indexed palette
---------------
2A34
      bits 0:31
	osd colour for indexed palette

     To set the new palette, first load the index of the colour to change into
     2A30, then load the new colour into 2A34. The full palette is 256 colours,
     so the index range is 0x00-0xFF
--------------------------------------------------------------------------------
2A38  --------    ?? unknown
2A3C  --------    ?? unknown
--------------------------------------------------------------------------------
2A40
      bits 0:31
	osd ?? unknown

     Affects overall brightness, wrapping around to black
--------------------------------------------------------------------------------
2A44
      bits 0:31
	osd ?? unknown

     Green tint
--------------------------------------------------------------------------------
2A48
      bits 0:31
	osd ?? unknown

     Red tint
--------------------------------------------------------------------------------
2A4C
      bits 0:31
	osd ?? unknown

     Affects overall brightness, wrapping around to black
--------------------------------------------------------------------------------
2A50
      bits 0:31
	osd ?? unknown

     Colour shift
--------------------------------------------------------------------------------
2A54
      bits 0:31
	osd ?? unknown

     Colour shift
--------------------------------------------------------------------------------
2A58  --------    ?? unknown
 |
 V
2AFC  --------    ?? unknown
--------------------------------------------------------------------------------
2B00
      bit 0
	osd filter control
	  0 = filter off
	  1 = filter on

      bits 1:4
	osd ?? unknown

--------------------------------------------------------------------------------

v0.4 - 12 March 2007 - Ian Armstrong (ian@iarmst.demon.co.uk)

