HDMI EDID hack to allow 5.1 passthrough
HDMI EDID hack to allow 5.1 passthrough
Hello. We already know that Xbox360 connected with HDMI to Samsung can output 5.1 sound and it's coming through TV's optical out. This was possible by disabling so called 'display discovery' from Xbox settings. What I understand is that the display discovery does some EDID query and TV responds to that telling screen resolution etc. and also the sound capabilties (2 channels). This display discovery is done during HDMI handshake (I think) and this gives me an idea.
If we could find out the functions in exeDSP that are called during HDMI source is connected, we could circumvent the 2 channel info and reply with DD+ capabilities (see http://en.wikipedia.org/wiki/Extended_d ... ation_data for details)
This would allow any device (BD player, DVD player, etc.) to send the 5.1 sound to the TV and pass it to the optical out (already proven to work with Xbox360)
I'm not keen enough to complete this task, thus I'm suggesting this task for a new bounty.
This option would make many users happy and the Samsung official CNET forum has many people seeking for a solution for this, they are potential payers also.
Already browsed through the exeDSP disassembly, and there are plenty of EDID functions. The starting point would be to hook gdb breakpoints for the HdmiSwitch functions and ReportDeviceCapability. Any takers?
Edit: Already dug out some key information:
The Manufacturer ID for Samsung is 2D4C, this should be found hardcoded from exeDSP
Edit2: Might not be hardcoded after all, but on a flash memory: http://www.avsforum.com/avs-vb/showthread.php?t=1280874 (something about flashing EDID to support 3D)
If we could find out the functions in exeDSP that are called during HDMI source is connected, we could circumvent the 2 channel info and reply with DD+ capabilities (see http://en.wikipedia.org/wiki/Extended_d ... ation_data for details)
This would allow any device (BD player, DVD player, etc.) to send the 5.1 sound to the TV and pass it to the optical out (already proven to work with Xbox360)
I'm not keen enough to complete this task, thus I'm suggesting this task for a new bounty.
This option would make many users happy and the Samsung official CNET forum has many people seeking for a solution for this, they are potential payers also.
Already browsed through the exeDSP disassembly, and there are plenty of EDID functions. The starting point would be to hook gdb breakpoints for the HdmiSwitch functions and ReportDeviceCapability. Any takers?
Edit: Already dug out some key information:
The Manufacturer ID for Samsung is 2D4C, this should be found hardcoded from exeDSP
Edit2: Might not be hardcoded after all, but on a flash memory: http://www.avsforum.com/avs-vb/showthread.php?t=1280874 (something about flashing EDID to support 3D)
- erdem_ua
- SamyGO Admin
- Posts: 3125
- Joined: Thu Oct 01, 2009 6:02 am
- Location: Istanbul, Turkey
- Contact:
Re: HDMI EDID hack to allow 5.1 passthrough
Good idea. Comes logical to my mind. Does your Xbox could play movies with DTS pass-through from optical olutput? Or just AC3 streams working from Optical output?
What about DTS Hack? Does it able to enable DTS pass-through from HDMI on your setup?
I don't know if we can patch EDID data from an applet that running in TV. AFAIK that data is flashed on to chips. So, it might not that easy to do for every users...
Now I wonder that if same 3D hack works on our TVs. Since Our TV's are > 60fps, it needed to support 3D. At least panels are capable to show 3D. B series could takeover C series crown soon
Like this topic, marked sticky.
And for a bounty, we need donations. $0.00 in balance I am thinking other alternatives to create fund to project. Might be support personally If I find a good job soon
What about DTS Hack? Does it able to enable DTS pass-through from HDMI on your setup?
I don't know if we can patch EDID data from an applet that running in TV. AFAIK that data is flashed on to chips. So, it might not that easy to do for every users...
Now I wonder that if same 3D hack works on our TVs. Since Our TV's are > 60fps, it needed to support 3D. At least panels are capable to show 3D. B series could takeover C series crown soon
Like this topic, marked sticky.
And for a bounty, we need donations. $0.00 in balance I am thinking other alternatives to create fund to project. Might be support personally If I find a good job soon
Re: HDMI EDID hack to allow 5.1 passthrough
Xbox gives Dolby Digital 5.1 out and that is what the AV receiver got from TV's optical out. I'm not fully familiar with all these different multichannel streams, but DTS != DD, right? According to wikipedia Dolby Digital == AC-3. I should check if I have any DTS DVD's and try them. I assume that since the DTS hack is only for software playback of local movies, it should not have any effect on HDMI inputs. And the DTS hack just converts DTS to stereo, so I don't achieve anything with that, since TV already forces BD player to send stereo through HDMI.
I'll check what options the service menu has for EDID.
Edit: Found one DTS movie, but Xbox gives only DD 5.1 out even when the DTS was selected. Also service menu had some EDID options, EDID ON/OFF, was OFF, I set it to ON. Then it enabled some options more. There were some EDID WRITE options, tried EDID WRITE HDMI, and it said 'Wait' for a while then Success. I don't know what it did, I guess it dumps the TV's EDID data to HDMI. There was also Edid WRITE PC, but I don't have exlink to try if it dumps there. This had no impact on DD passthrough from BD player.
The first step would be to get the EDID dumped. Maybe debug menu has option for that? Or someone could try the EDID WRITE PC option
I'll check what options the service menu has for EDID.
Edit: Found one DTS movie, but Xbox gives only DD 5.1 out even when the DTS was selected. Also service menu had some EDID options, EDID ON/OFF, was OFF, I set it to ON. Then it enabled some options more. There were some EDID WRITE options, tried EDID WRITE HDMI, and it said 'Wait' for a while then Success. I don't know what it did, I guess it dumps the TV's EDID data to HDMI. There was also Edid WRITE PC, but I don't have exlink to try if it dumps there. This had no impact on DD passthrough from BD player.
The first step would be to get the EDID dumped. Maybe debug menu has option for that? Or someone could try the EDID WRITE PC option
Re: HDMI EDID hack to allow 5.1 passthrough
Just AC3; DTS passthrough (HDMI -> SPDIF) is not working.erdem_ua wrote:Good idea. Comes logical to my mind. Does your Xbox could play movies with DTS pass-through from optical olutput? Or just AC3 streams working from Optical output?
I don't have an XBOX, but I'm using EDID override on my PC (http://www.avsforum.com/avs-vb/showthre ... st18431062). With this file (EDID_MOD.zip, http://www.avsforum.com/avs-vb/attachme ... 1270398122) both AC3 & DTS audio fomats are enabled on HDMI; AC3 - working fine, DTS - nope, no sound on Tv SPDIF output.
Re: HDMI EDID hack to allow 5.1 passthrough
11 : TD Debug --> 0x02 : TDi Debug --> 0x15 : TDseSIL9287_SLAVEHdmiSwitch --> 1)TDsSIL9287 --> 0x04 : Show SRAM EDID Datanbd wrote:The first step would be to get the EDID dumped. Maybe debug menu has option for that?
Code: Select all
=============== EDID PORT 0 ===============
00 FF FF FF FF FF FF 00 4C 2D 09 05 01 00 00 00
30 12 01 03 80 10 09 78 0A EE 91 A3 54 4C 99 26
0F 50 54 BD EF 80 71 4F 81 00 81 40 81 80 95 00
95 0F B3 00 01 01 02 3A 80 18 71 38 2D 40 58 2C
45 00 A0 5A 00 00 00 1E 66 21 50 B0 51 00 1B 30
40 70 36 00 A0 5A 00 00 00 1E 00 00 00 FD 00 18
4B 1A 51 17 00 0A 20 20 20 20 20 20 00 00 00 FC
00 53 41 4D 53 55 4E 47 0A 20 20 20 20 20 01 6F
02 03 27 F1 4B 90 1F 04 13 05 14 03 12 20 21 22
23 09 07 07 83 01 00 00 E2 00 0F E3 05 03 01 67
03 0C 00 40 00 B8 2D 01 1D 00 72 51 D0 1E 20 6E
28 55 00 A0 5A 00 00 00 1E 01 1D 00 BC 52 D0 1E
20 B8 28 55 40 A0 5A 00 00 00 1E 01 1D 80 18 71
1C 16 20 58 2C 25 00 A0 5A 00 00 00 9E 01 1D 80
D0 72 1C 16 20 10 2C 25 80 A0 5A 00 00 00 9E 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ED
=============== EDID PORT 256 ===============
00 FF FF FF FF FF FF 00 4C 2D 09 05 01 00 00 00
30 12 01 03 80 10 09 78 0A EE 91 A3 54 4C 99 26
0F 50 54 BD EF 80 71 4F 81 00 81 40 81 80 95 00
95 0F B3 00 01 01 02 3A 80 18 71 38 2D 40 58 2C
45 00 A0 5A 00 00 00 1E 66 21 50 B0 51 00 1B 30
40 70 36 00 A0 5A 00 00 00 1E 00 00 00 FD 00 18
4B 1A 51 17 00 0A 20 20 20 20 20 20 00 00 00 FC
00 53 41 4D 53 55 4E 47 0A 20 20 20 20 20 01 6F
02 03 27 F1 4B 90 1F 04 13 05 14 03 12 20 21 22
23 09 07 07 83 01 00 00 E2 00 0F E3 05 03 01 67
03 0C 00 20 00 B8 2D 01 1D 00 72 51 D0 1E 20 6E
28 55 00 A0 5A 00 00 00 1E 01 1D 00 BC 52 D0 1E
20 B8 28 55 40 A0 5A 00 00 00 1E 01 1D 80 18 71
1C 16 20 58 2C 25 00 A0 5A 00 00 00 9E 01 1D 80
D0 72 1C 16 20 10 2C 25 80 A0 5A 00 00 00 9E 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0D
=============== EDID PORT 256 ===============
00 FF FF FF FF FF FF 00 4C 2D 09 05 01 00 00 00
30 12 01 03 80 10 09 78 0A EE 91 A3 54 4C 99 26
0F 50 54 BD EF 80 71 4F 81 00 81 40 81 80 95 00
95 0F B3 00 01 01 02 3A 80 18 71 38 2D 40 58 2C
45 00 A0 5A 00 00 00 1E 66 21 50 B0 51 00 1B 30
40 70 36 00 A0 5A 00 00 00 1E 00 00 00 FD 00 18
4B 1A 51 17 00 0A 20 20 20 20 20 20 00 00 00 FC
00 53 41 4D 53 55 4E 47 0A 20 20 20 20 20 01 6F
02 03 27 F1 4B 90 1F 04 13 05 14 03 12 20 21 22
23 09 07 07 83 01 00 00 E2 00 0F E3 05 03 01 67
03 0C 00 10 00 B8 2D 01 1D 00 72 51 D0 1E 20 6E
28 55 00 A0 5A 00 00 00 1E 01 1D 00 BC 52 D0 1E
20 B8 28 55 40 A0 5A 00 00 00 1E 01 1D 80 18 71
1C 16 20 58 2C 25 00 A0 5A 00 00 00 9E 01 1D 80
D0 72 1C 16 20 10 2C 25 80 A0 5A 00 00 00 9E 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1D
=============== EDID PORT 256 ===============
00 FF FF FF FF FF FF 00 4C 2D 09 05 01 00 00 00
30 12 01 03 80 10 09 78 0A EE 91 A3 54 4C 99 26
0F 50 54 BD EF 80 71 4F 81 00 81 40 81 80 95 00
95 0F B3 00 01 01 02 3A 80 18 71 38 2D 40 58 2C
45 00 A0 5A 00 00 00 1E 66 21 50 B0 51 00 1B 30
40 70 36 00 A0 5A 00 00 00 1E 00 00 00 FD 00 18
4B 1A 51 17 00 0A 20 20 20 20 20 20 00 00 00 FC
00 53 41 4D 53 55 4E 47 0A 20 20 20 20 20 01 6F
02 03 27 F1 4B 90 1F 04 13 05 14 03 12 20 21 22
23 09 07 07 83 01 00 00 E2 00 0F E3 05 03 01 67
03 0C 00 30 00 B8 2D 01 1D 00 72 51 D0 1E 20 6E
28 55 00 A0 5A 00 00 00 1E 01 1D 00 BC 52 D0 1E
20 B8 28 55 40 A0 5A 00 00 00 1E 01 1D 80 18 71
1C 16 20 58 2C 25 00 A0 5A 00 00 00 9E 01 1D 80
D0 72 1C 16 20 10 2C 25 80 A0 5A 00 00 00 9E 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FD
==============================
Code: Select all
Monitor
Model name............... SAMSUNG
Manufacturer............. Samsung
Plug and Play ID......... SAM0509
Serial number............ 1
Manufacture date......... 2008, ISO week 48
-------------------------
EDID revision............ 1.3
Input signal type........ Digital
Color bit depth.......... Undefined
Display type............. RGB color
Screen size.............. 160 x 90 mm (7,2 in)
Power management......... Not supported
Extension blocs.......... 1 (CEA-EXT)
-------------------------
DDC/CI................... n/a
Color characteristics
Default color space...... Non-sRGB
Display gamma............ 2,20
Red chromaticity......... Rx 0,640 - Ry 0,330
Green chromaticity....... Gx 0,300 - Gy 0,600
Blue chromaticity........ Bx 0,150 - By 0,060
White point (default).... Wx 0,313 - Wy 0,329
Additional descriptors... None
Timing characteristics
Horizontal scan range.... 26-81kHz
Vertical scan range...... 24-75Hz
Video bandwidth.......... 230MHz
CVT standard............. Not supported
GTF standard............. Not supported
Additional descriptors... None
Preferred timing......... Yes
Native/preferred timing.. 1920x1080p at 60Hz (16:9)
Modeline............... "1920x1080" 148,500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Detailed timing #1....... 1360x768p at 60Hz (16:9)
Modeline............... "1360x768" 85,500 1360 1424 1536 1792 768 771 777 795 +hsync +vsync
Standard timings supported
720 x 400p at 70Hz - IBM VGA
640 x 480p at 60Hz - IBM VGA
640 x 480p at 67Hz - Apple Mac II
640 x 480p at 72Hz - VESA
640 x 480p at 75Hz - VESA
800 x 600p at 60Hz - VESA
800 x 600p at 72Hz - VESA
800 x 600p at 75Hz - VESA
832 x 624p at 75Hz - Apple Mac II
1024 x 768p at 60Hz - VESA
1024 x 768p at 70Hz - VESA
1024 x 768p at 75Hz - VESA
1280 x 1024p at 75Hz - VESA
1152 x 870p at 75Hz - Apple Mac II
1152 x 864p at 75Hz - VESA STD
1280 x 800p at 60Hz - VESA STD
1280 x 960p at 60Hz - VESA STD
1280 x 1024p at 60Hz - VESA STD
1440 x 900p at 60Hz - VESA STD
1440 x 900p at 75Hz - VESA STD
1680 x 1050p at 60Hz - VESA STD
EIA/CEA-861 Information
Revision number.......... 3
IT underscan............. Supported
Basic audio.............. Supported
YCbCr 4:4:4.............. Supported
YCbCr 4:2:2.............. Supported
Native formats........... 1
Detailed timing #1....... 1280x720p at 60Hz (16:9)
Modeline............... "1280x720" 74,250 1280 1390 1430 1650 720 725 730 750 +hsync +vsync
Detailed timing #2....... 1280x720p at 50Hz (16:9)
Modeline............... "1280x720" 74,250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
Detailed timing #3....... 1920x1080i at 60Hz (16:9)
Modeline............... "1920x1080" 74,250 1920 2008 2052 2200 1080 1084 1094 1124 interlace +hsync +vsync
Detailed timing #4....... 1920x1080i at 50Hz (16:9)
Modeline............... "1920x1080" 74,250 1920 2448 2492 2640 1080 1084 1094 1124 interlace +hsync +vsync
CE video identifiers (VICs) - timing/formats supported
1920 x 1080p at 60Hz - HDTV (16:9, 1:1) [Native]
1920 x 1080p at 50Hz - HDTV (16:9, 1:1)
1280 x 720p at 60Hz - HDTV (16:9, 1:1)
1280 x 720p at 50Hz - HDTV (16:9, 1:1)
1920 x 1080i at 60Hz - HDTV (16:9, 1:1)
1920 x 1080i at 50Hz - HDTV (16:9, 1:1)
720 x 480p at 60Hz - EDTV (16:9, 32:27)
720 x 576p at 50Hz - EDTV (16:9, 64:45)
1920 x 1080p at 24Hz - HDTV (16:9, 1:1)
1920 x 1080p at 25Hz - HDTV (16:9, 1:1)
1920 x 1080p at 30Hz - HDTV (16:9, 1:1)
NB: NTSC refresh rate = (Hz*1000)/1001
CE audio data (formats supported)
LPCM 2-channel, 16/20/24 bit depths at 32/44/48 kHz
CE speaker allocation data
Channel configuration.... 2.0
Front left/right......... Yes
Front LFE................ No
Front center............. No
Rear left/right.......... No
Rear center.............. No
Front left/right center.. No
Rear left/right center... No
Rear LFE................. No
CE video capability data
CE scan behavior......... Supports overscan and underscan
IT scan behavior......... Supports overscan and underscan
PT scan behavior......... Not supported
RGB quantization range... Not supported
YCC quantization range... Not supported
CE colorimetry data
xvYCC709 support......... Yes
xvYCC601 support......... Yes
sYCC601 support.......... No
AdobeYCC601 support...... No
AdobeRGB support......... No
Metadata profile flags... 0x01
CE vendor specific data (VSDB)
IEEE registration number. 0x000C03
CEC physical address..... 2.0.0.0
Supports AI (ACP, ISRC).. Yes
Supports 48bpp........... No
Supports 36bpp........... Yes
Supports 30bpp........... Yes
Supports YCbCr 4:4:4..... Yes
Supports dual-link DVI... No
Maximum TMDS clock....... 225MHz
Report information
Date generated........... 2010-12-10
Software revision........ 2.53.0.861
Data source.............. File
Operating system......... 5.1.2600.2.Service Pack 3
Raw data
00,FF,FF,FF,FF,FF,FF,00,4C,2D,09,05,01,00,00,00,30,12,01,03,80,10,09,78,0A,EE,91,A3,54,4C,99,26,
0F,50,54,BD,EF,80,71,4F,81,00,81,40,81,80,95,00,95,0F,B3,00,01,01,02,3A,80,18,71,38,2D,40,58,2C,
45,00,A0,5A,00,00,00,1E,66,21,50,B0,51,00,1B,30,40,70,36,00,A0,5A,00,00,00,1E,00,00,00,FD,00,18,
4B,1A,51,17,00,0A,20,20,20,20,20,20,00,00,00,FC,00,53,41,4D,53,55,4E,47,0A,20,20,20,20,20,01,6F,
02,03,27,F1,4B,90,1F,04,13,05,14,03,12,20,21,22,23,09,07,07,83,01,00,00,E2,00,0F,E3,05,03,01,67,
03,0C,00,20,00,B8,2D,01,1D,00,72,51,D0,1E,20,6E,28,55,00,A0,5A,00,00,00,1E,01,1D,00,BC,52,D0,1E,
20,B8,28,55,40,A0,5A,00,00,00,1E,01,1D,80,18,71,1C,16,20,58,2C,25,00,A0,5A,00,00,00,9E,01,1D,80,
D0,72,1C,16,20,10,2C,25,80,A0,5A,00,00,00,9E,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0D
I presume "EDIT WRITE PC" does EDID EEPROM [re]write on PC/VGA input.Or someone could try the EDID WRITE PC option
Now, the question remains, what data Tv is using as source for EDID WRITE. Apparently threre are some EDID "templates" embeeded in exeDSP:
Code: Select all
_ZN8TDaShare16TBL_SIL9287_EDIDE
_ZN8TDaShare20TBL_SIL9287_EDID_1_2E
_ZN8TDaShare12TBL_EDID_PDPE
_ZN8TDaShare16TBL_EDID_PDP_1_2E
_ZN8TDaShare15TBL_PC_EDID_LCDE
_ZN8TDaShare15TBL_PC_EDID_PDPE
Also there are *.ddc files on the flash partition (/mtd_exe/EDID/); I've checked them with moninfo, and they don't look quite right (too old, and there are too few video modes listed; "Plug and Play ID" is SAM0418). Interestingly, AC3 HDMI audio is in fact enabled in GRU-ALNH*.ddc files..
Re: HDMI EDID hack to allow 5.1 passthrough
I have now a Gefen HDMI Detective Plus, which is able to 'fake' the EDID. I recorded the EDID from my amplifier and now I get Dolby Digital (AC3) pass through from another source (IPTV box), which was not able to do that before.
I think the real EDID info is in the SIL chip, since even when TV is powered off (standby), it can receive the HDMI-CEC info from my Samsung BD player when I turn that on, and then the TV starts. This indicates that the HDMI handshake is done while TV was in standby.
Next I'm going to test the DTS from my Samsung BD player, but I think I'll get the same results as you did..
I think the real EDID info is in the SIL chip, since even when TV is powered off (standby), it can receive the HDMI-CEC info from my Samsung BD player when I turn that on, and then the TV starts. This indicates that the HDMI handshake is done while TV was in standby.
Next I'm going to test the DTS from my Samsung BD player, but I think I'll get the same results as you did..
- erdem_ua
- SamyGO Admin
- Posts: 3125
- Joined: Thu Oct 01, 2009 6:02 am
- Location: Istanbul, Turkey
- Contact:
Re: HDMI EDID hack to allow 5.1 passthrough
Good lucks
I wish DTS pass-thru via internal movie player follows that.
I wish DTS pass-thru via internal movie player follows that.
Re: HDMI EDID hack to allow 5.1 passthrough
As I suspected, no DTS coming through. I see my TV has Dolby Digital Plus logo printed on the chassis, maybe it's just Samsung went cheap and didn't want to pay for DTS licence.
Re: HDMI EDID hack to allow 5.1 passthrough
Next, I'm going to see what the EDID 1.2 Port option gives. It's the older standard and maybe does not have anything about audio capabilities.
Btw, DD 5.1 pass through from internal player works using the samygo_dca, when I'm playing files recorded with PVR+ (from a channel that has a DD track)
Btw, DD 5.1 pass through from internal player works using the samygo_dca, when I'm playing files recorded with PVR+ (from a channel that has a DD track)
- andbir
- SamyGO Project Donor
- Posts: 52
- Joined: Thu Dec 17, 2009 11:43 am
- Location: Lund Sweden Europe
- Contact:
Re: HDMI EDID hack to allow 5.1 passthrough
So what happens if you power off the TV completely and then turn it on (maybe after waiting 60secs or so)nbd wrote:I think the real EDID info is in the SIL chip, since even when TV is powered off (standby), it can receive the HDMI-CEC info from my Samsung BD player when I turn that on, and then the TV starts. This indicates that the HDMI handshake is done while TV was in standby.