Apparently there are some regions in tv memory used as half-res (960x540) "framebuffers" by TV OSD
menu, flash engine and (maybe) sdl library (?).
I found some possibly interesting addresses in [ TD Debug Menu ] -> 0x03 : SDAL Debug -> 95 : SPCScreen Gfx Debug -> 0x02 : Gfx GetResolution:
Code: Select all
############################### plane 0 ###############################
[spIGfx_GetRes]Width : 960
[spIGfx_GetRes]Height: 540
[spIGfx_GetRes]PixelDepth : 4
---------------------------------------------------------------------------
[osgInfo]planeId : 0
[osgInfo]pixelDepth : 4
[osgInfo]horStart : 0
[osgInfo]verStart : 0
[osgInfo]uiWinHSize : 1920
[osgInfo]uiWinVSize : 1080
[osgInfo]baseAddr : 0x79900000
[osgInfo]uiDstHByteSize : 3840
[osgInfo]blendType : 3
[osgInfo]blendFactor: 255
[osgInfo]osgFormat : 3
[osgInfo]trColorEn : 0
[osgInfo]doublingMode : 0
[osgInfo]compressorOffset : 0
[osgInfo]uiSrcHByteSize : 3840
[osgInfo]uiGaSrcHSize : 960
[osgInfo]uiGaSrcVSize : 540
[osgInfo]uiGaDstHSize : 960
[osgInfo]uiGaDstVSize : 540
[osgInfo]uiVdHorSize : 1920
[osgInfo]uiVdVerSize : 1080
---------------------------------------------------------------------------
[osgInfo]HScaleRatio_t.ScaleRatio : 1.000000
[osgInfo]HScaleRatio_t.uiDstRatio : 1
[osgInfo]HScaleRatio_t.uiSrcRatio : 1
[osgInfo]VScaleRatio_t.ScaleRatio : 1.000000
[osgInfo]VScaleRatio_t.uiDstRatio : 1
[osgInfo]VScaleRatio_t.uiSrcRatio : 1
---------------------------------------------------------------------------
[osgInfo]VdFrameRate : GP_NTSC_60Hz
############################### plane 1 ###############################
[spIGfx_GetRes]Width : 960
[spIGfx_GetRes]Height: 540
[spIGfx_GetRes]PixelDepth : 4
---------------------------------------------------------------------------
[osgInfo]planeId : 0
[osgInfo]pixelDepth : 4
[osgInfo]horStart : 0
[osgInfo]verStart : 0
[osgInfo]uiWinHSize : 1920
[osgInfo]uiWinVSize : 1080
[osgInfo]baseAddr : 0x79d00000
[osgInfo]uiDstHByteSize : 3840
[osgInfo]blendType : 3
[osgInfo]blendFactor: 255
[osgInfo]osgFormat : 3
[osgInfo]trColorEn : 0
[osgInfo]doublingMode : 0
[osgInfo]compressorOffset : 0
[osgInfo]uiSrcHByteSize : 3840
[osgInfo]uiGaSrcHSize : 960
[osgInfo]uiGaSrcVSize : 540
[osgInfo]uiGaDstHSize : 960
[osgInfo]uiGaDstVSize : 540
[osgInfo]uiVdHorSize : 1920
[osgInfo]uiVdVerSize : 1080
---------------------------------------------------------------------------
[osgInfo]HScaleRatio_t.ScaleRatio : 1.000000
[osgInfo]HScaleRatio_t.uiDstRatio : 1
[osgInfo]HScaleRatio_t.uiSrcRatio : 1
[osgInfo]VScaleRatio_t.ScaleRatio : 1.000000
[osgInfo]VScaleRatio_t.uiDstRatio : 1
[osgInfo]VScaleRatio_t.uiSrcRatio : 1
---------------------------------------------------------------------------
[osgInfo]VdFrameRate : GP_NTSC_60Hz
Attached simple program (more like a proof of concept) "gfx-test1" seems to work OK on my Tv. It's supposed to display some random colorfull bars on the screen, for about 30 seconds.
Included also are some utilites I used while investigating Tv memory regions.
Is such half resolution "framebuffer" actually usefull for something ? More importantly, is it safe to use ?
I don't know..
Use at your own risk!
Memory regions are most likely model-dependent.
Tested only on european LE B650 T2W T-CHL7DEUC-2005.0.
BTW, there are some mysterious things going in other memory regions too, as listed in
Code: Select all
<Memory Base Table>
DDRA_BASE : 0x60000000
DDRA_SIZE : 0x10000000
DDRB_BASE : 0x70000000
DDRB_SIZE : 0x10000000
SYSTEM_MEM_SIZE_A : 0xc400000
SYSTEM_MEM_SIZE_B : 0x6500000
Kernel0_BASE : 0x60000000
Kernel0_SIZE : 0xc400000
DP0_Base : 0x6c400000
DP0_SIZE : 0x3be0000
DP1_Base : 0x6ffe0000
DP1_SIZE : 0x0
Kernel1_BASE : 0x70000000
Kernel1_SIZE : 0x6500000
AE0_BASE : 0x76500000
AE0_SIZE : 0x400000
AE1_BASE : 0x76900000
AE1_SIZE : 0x0
MFD_BASE : 0x76900000
MFD_SIZE : 0x2e00000
GFX0_BASE : 0x79700000
GFX0_SIZE : 0x400000
GFX1_BASE : 0x79b00000
GFX1_SIZE : 0x400000
GFX2_BASE : 0x79f00000
GFX2_SIZE : 0x0
CURSOR_BASE : 0x79f00000
CURSOR_SIZE : 0x80000
TSD_SECTION_BASE : 0x79f80000
TSD_SECTION_SIZE : 0x80000
PVR_BASE : 0x7a000000
PVR_SIZE : 0x400000
GP3D_BASE : 0x7a400000
GP3D_SIZE : 0x400000
AVD_BASE : 0x7a800000
AVD_SIZE : 0x600000
SE_EXTERNAL_BUF_BASE : 0x7ae00000
SE_EXTERNAL_BUF_SIZE : 0x400000
MSPI_BASE : 0x7b200000
MSPI_SIZE : 0x40000
MSPI_RD_BASE : 0x7b240000
MSPI_RD_SIZE : 0x20000
MSPI_WR_BASE : 0x7b260000
MSPI_WR_SIZE : 0x20000
GEN_GAOPERATION_BASE : 0x7b280000
GEN_GAOPERATION_SIZE : 0x2800000
DP2_BASE : 0x7da80000
DP2_SIZE : 0x1700000
TTX_VBI_BASE : 0x7f180000
TTX_VBI_SIZE : 0x20000
DP3_BASE : 0x7f1a0000
DP3_SIZE : 0x800000
MPEG0_BASE : 0x76a00000
MPEG0_SIZE : 0x2300000
JPEG_DEC_BASE : 0x76a00000
JPEG_DEC_SIZE : 0x2000000