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: 3126
 - 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
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_PDPEAlso 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: 3126
 - 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.
DivFix++ AVI Fix
Meteorite MKV Repair