MiSTer-devel / Main_MiSTer

Main MiSTer binary and Wiki
GNU General Public License v3.0
3.01k stars 324 forks source link

Screen size issue with Sharp Aquos LC37D40U #440

Closed buvk closed 1 year ago

buvk commented 3 years ago

Sharp Aquos LC37D40U resolution is 1366x768. When MiSTer is connected via HDMI using 1280x720@60 (selecting 1366x768@60 shows unsupported resolution), output is zoomed in and the top/bottom/sides are cut off. This can be circumvented in the menu by adjusting vscale_border, however, the cores themselves are still zoomed in.

Is there any way to address this aside from using analog output?

sorgelig commented 3 years ago

probably try to make a custom resolution. Besides the visible 1366x768 resolution there are invisible fields which may require of specific size by this TV/Monitor. Probably you need to google to see if some people have more info about supported resolutions of this display.

buvk commented 3 years ago

I found an interesting thread where someone experienced a similar issue with their TV:

https://www.sevenforums.com/graphic-cards/104010-no-1366x768-resolution-my-tv.html

As for my TV, it will apparently only accept 1080i/720p/480p/480i signals even though native pixel resolution is 1366x768, so I am not sure a custom resolution will help in this case.

Is it possible to prevent upscaling a 720p output to the pixel resolution (1366x768)? Maybe some kind of zoom/overscan/underscan setting on MiSTer since this cannot be adjusted on the TV.

I did try 640x480@60; everything fits on the screen in this mode, however, using this resolution is not ideal.

boogermann commented 3 years ago

@buvk try using this video mode

video_mode=1360,48,32,80,768,3,10,9,72048

as the settings on MiSTer for that resolution is targeted towards monitors at 85.5hz (CVT), the one I gave you is more suitable for TV's (CVT-RB)

buvk commented 3 years ago

I just tried this. The TV did not accept this video mode (unsupported resolution).

boogermann commented 3 years ago

@buvk my bad, I just notice the line I gave you is 1360 and not 1366. I have a tool to generate the modelines for mister but they will round the value to the closest even number divided by 2. So it won't accept 683 as valid and round to 680. I can fine tune the application to generate the correct value, but If you can plug the screen to a PC (Windows/Linux) and run an edid program to read what your screen will report back as valid resolutions would help a lot. On windows you can use this application: https://www.nirsoft.net/utils/dump_edid.html and just run the executable on the command prompt so you can see the output. On Linux you can install the package read-edid and run with get-edid | parse-edid.

buvk commented 3 years ago

dumpedid returns the following:

Supported Display Modes : 1920 X 540 60 Hz

boogermann commented 3 years ago

It showed only one resolution!? that's odd, here's an example of what my is dumping. Either way I made one fitting that resolution so you can check the results, try one at the time

;CVT
video_mode=1920,64,192,256,540,3,10,9,82007
;CVT-RB
video_mode=1920,48,32,80,540,3,10,6,69763
Active                   : Yes
Registry Key             : DISPLAY\ACI2493\5&11eaf8b8&0&UID4352
Monitor Name             : VE247
Serial Number            : DBLMQS034540
Manufacture Week         : 46 / 2013
ManufacturerID           : 26884 (0x6904)
ProductID                : 9363 (0x2493)
Serial Number (Numeric)  : 16843009 (0x01010101)
EDID Version             : 1.3
Display Gamma            : 2.20
Vertical Frequency       : 50 - 76 Hz
Horizontal Frequency     : 30 - 83 KHz
Maximum Image Size       : 53 X 30 cm (24.0 Inch)
Maximum Resolution       : 1920 X 1080
Support Standby Mode     : Yes
Support Suspend Mode     : Yes
Support Low-Power Mode   : Yes
Support Default GTF      : No
Digital                  : Yes

Supported Display Modes  :
     720 X  400  70 Hz
     640 X  480  60 Hz
     640 X  480  67 Hz
     640 X  480  72 Hz
     640 X  480  75 Hz
     800 X  600  56 Hz
     800 X  600  60 Hz
     800 X  600  72 Hz
     800 X  600  75 Hz
     832 X  624  75 Hz
    1024 X  768  60 Hz
    1024 X  768  70 Hz
    1024 X  768  75 Hz
    1152 X  864  75 Hz
    1280 X  960  60 Hz
    1440 X  900  60 Hz
    1280 X 1024  60 Hz
    1280 X 1024  75 Hz
    1680 X 1050  60 Hz
    1600 X 1200  60 Hz
    1920 X 1080  60 Hz
buvk commented 3 years ago

Yup, here is the full output:

Active                   : Yes
Registry Key             : DISPLAY\SHP0FBE\4&4d3e7d6&0&UID198171
Monitor Name             : SHARP HDMI
Manufacture Week         : 0 / 2006
ManufacturerID           : 4173 (0x104D)
ProductID                : 4030 (0x0FBE)
Serial Number (Numeric)  : 16843009 (0x01010101)
EDID Version             : 1.3
Display Gamma            : 2.20
Vertical Frequency       : 59 - 61 Hz
Horizontal Frequency     : 15 - 46 KHz
Image Size               : 61.5 X 46.1 cm (30.3 Inch)
Maximum Image Size       : 82 X 46 cm (37.0 Inch)
Maximum Resolution       : 1920 X 540
Support Standby Mode     : No
Support Suspend Mode     : No
Support Low-Power Mode   : Yes
Support Default GTF      : No
Digital                  : Yes

Supported Display Modes  :
    1920 X  540  60 Hz

I tried both of those video modes. I get a picture, but it is not centered. Using the first one you listed, the image is shifted to the right. Using the second, it is shifted to the left.

boogermann commented 3 years ago

what a weird display, there's another line I didn't include because rarely works, but due to all those weird behaviors it won't hurt trying

;CVT-RB-2
video_mode=1920,8,32,40,540,2,8,6,66720

I've also generated with margins but I don't think it would help

;custom mode:hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz
;CVT
video_mode=1984,64,200,264,540,3,10,10,84855
;CVT-RB
video_mode=1984,48,32,80,540,3,10,6,71910
;CVT-RB-2
video_mode=1984,8,32,40,540,2,8,6,68855

and here is the 1366x768 with margin

;custom mode:hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz
;CVT
video_mode=1408,72,144,216,768,3,10,18,88210
;CVT-RB
video_mode=1408,48,32,80,768,3,10,10,74417
;CVT-RB-2
video_mode=1408,8,32,40,768,9,8,6,70620
boogermann commented 3 years ago

Ok, so that mode is actually interlaced! I found information on your display here: https://edid.tv/edid/891/ the serial number helped track it down and it seems to support 1080i and 720p

I generated this one with the tool, but if doesn't work your best bet will be to create a modeline with the numbers that came from the edid to match exactly what your monitor wants.

;custom mode:hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz
;CVT
video_mode=1920,64,192,256,270,3,10,10,42755
;CVT-RB
video_mode=1920,48,32,80,270,3,10,6,36067
;CVT-RB-2
video_mode=1920,8,32,40,270,2,8,6,34320
buvk commented 3 years ago

TV returned incompatible video mode for all 3 of these.

I also tried the ones above that; I either got incompatible video mode or a shifted image.

Ideally I would like to use 720p resolution as opposed to 1080i. I tried using the following, but it just gives me the same problem I had when I selected video_mode=0 where the sides and top/bottom are cut off (image appears zoomed in)

video_mode=1280,110,40,220,720,5,5,20,74250

boogermann commented 3 years ago

here is the trio with 1280x720 if you want to give it a try

;custom mode:hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz
;CVT
video_mode=1280,64,128,192,720,3,5,20,74680
;CVT-RB
video_mode=1280,48,32,80,720,3,5,13,64022
;CVT-RB-2
video_mode=1280,8,32,40,720,7,8,6,60466

@sorgelig, Grabulosaure had a fork with the EDID implemented, would it be possible to add that into the framework? https://temlib.org/pub/mister/edid/, I've noticed not long ago you added access to the I2C via the HPS side. I've already have the code that deals with the I2C on my fork of main to program the TDA19988, I can easily add the code to read and parse the EDID information and calculate the modeline for what the monitor replies as "preferred timing". This is the output of the edid running on MiSTer with his code in place

/root# ./edid
    0 : 00 FF FF FF FF FF FF 00 1E 6D E8 57 01 01 01 01 
   10 : 01 14 01 03 80 33 1D 78 0A C2 A5 A4 56 4D 9C 25 
   20 : 11 50 54 A5 6F 00 81 80 81 8F 71 40 B3 00 81 4F 
   30 : 71 4F 01 01 01 01 02 3A 80 18 71 38 2D 40 58 2C 
   40 : 45 00 DA 28 11 00 00 1A 21 39 90 30 62 1A 27 40 
   50 : 68 B0 36 00 DA 28 11 00 00 1C 00 00 00 FD 00 38 
   60 : 4B 1E 53 11 00 0A 20 20 20 20 20 20 00 00 00 FC 
   70 : 00 4D 32 33 36 32 44 50 0A 20 20 20 20 20 01 11 
   80 : 02 03 21 F1 4E 84 05 03 02 20 22 10 11 13 12 14 
   90 : 1F 07 16 26 15 07 50 09 07 07 66 03 0C 00 10 00 
   A0 : 80 01 1D 00 72 51 D0 1E 20 38 88 15 00 56 50 21 
   B0 : 00 00 1E 01 1D 80 18 71 1C 16 20 58 2C 25 00 56 
   C0 : 50 21 00 00 9E 01 1D 80 D0 72 1C 16 20 10 2C 25 
   D0 : 80 C4 8E 21 00 00 9E 02 3A 80 D0 72 38 2D 40 10 
   E0 : 2C 45 20 06 44 21 00 00 1E 02 3A 80 18 71 38 2D 
   F0 : 40 58 2C 45 00 56 50 21 00 00 1E 00 00 00 00 CE 

    0 :  � � � � � �   m � W     
   10 :     � 3  x 
 � � � V M � % 
   20 :  P T � o  � � � � q @ �  � O 
   30 : q O      : � ▒ q 8 - @ X , 
   40 : E  � (    ▒ ! 9 � 0 b ▒ ' @ 
   50 : h � 6  � (        �  8 
   60 : K  S   
                � 
   70 :  M 2 3 6 2 D P 

   80 :   ! � N �      "      
   90 :    &   P           f  

   A0 : �    r Q �    8 �   V P !                                                                                                         
   B0 :      � ▒ q     X , %  V                                                                                                           
   C0 : P !   �   � � r      , %                                                                                                          
   D0 : � � � !   �  : � � r 8 - @  
   E0 : , E    D !     : � ▒ q 8 - 
   F0 : @ X , E  V P !        � 

/root# ./edid a |edid-decode 
EDID version: 1.3
Manufacturer: GSM Model 57e8 Serial Number 16843009
Made in week 1 of 2010
Digital display
Maximum image size: 51 cm x 29 cm
Gamma: 2.20
RGB color display
First detailed timing is preferred timing
Display x,y Chromaticity:
  Red:   0.6435, 0.3359
  Green: 0.3007, 0.6113
  Blue:  0.1464, 0.0683
  White: 0.3134, 0.3291
Established timings supported:
  720x400@70Hz 9:5 HorFreq: 31469 Hz Clock: 28.320 MHz
  640x480@60Hz 4:3 HorFreq: 31469 Hz Clock: 25.175 MHz
  640x480@75Hz 4:3 HorFreq: 37500 Hz Clock: 31.500 MHz
  800x600@60Hz 4:3 HorFreq: 37900 Hz Clock: 40.000 MHz
  800x600@75Hz 4:3 HorFreq: 46900 Hz Clock: 49.500 MHz
  832x624@75Hz 4:3 HorFreq: 49726 Hz Clock: 57.284 MHz
  1024x768@60Hz 4:3 HorFreq: 48400 Hz Clock: 65.000 MHz
  1024x768@70Hz 4:3 HorFreq: 56500 Hz Clock: 75.000 MHz
  1024x768@75Hz 4:3 HorFreq: 60000 Hz Clock: 78.750 MHz
  1280x1024@75Hz 5:4 HorFreq: 80000 Hz Clock: 135.000 MHz
Standard timings supported:
  1280x1024@60Hz 5:4 HorFreq: 64000 Hz Clock: 108.000 MHz
  1280x1024@75Hz 5:4 HorFreq: 80000 Hz Clock: 135.000 MHz
  1152x864@60Hz 4:3
  1680x1050@60Hz 16:10 HorFreq: 64700 Hz Clock: 119.000 MHz
  1280x960@75Hz 4:3
  1152x864@75Hz 4:3 HorFreq: 67500 Hz Clock: 108.000 MHz
Detailed mode: Clock 148.500 MHz, 474 mm x 296 mm
               1920 2008 2052 2200 hborder 0
               1080 1084 1089 1125 vborder 0
               +hsync -vsync 
               VertFreq: 60 Hz, HorFreq: 67500 Hz
Detailed mode: Clock 146.250 MHz, 474 mm x 296 mm
               1680 1784 1960 2240 hborder 0
               1050 1053 1059 1089 vborder 0
               -hsync +vsync 
               VertFreq: 59 Hz, HorFreq: 65290 Hz
Monitor ranges (GTF): 56-75Hz V, 30-83kHz H, max dotclock 170MHz
Monitor name: M2362DP
Has 1 extension blocks
Checksum: 0x11 (valid)

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

CTA Extension Block
Extension version: 3
Underscans PC formats by default
Basic audio support
Supports YCbCr 4:4:4
Supports YCbCr 4:2:2
1 native detailed modes

29 bytes of CTA data
  Video Data Block
    VIC   4 1280x720@60Hz 16:9 (native) HorFreq: 45000 Hz Clock: 74.250 MHz
    VIC   5 1920x1080i@60Hz 16:9  HorFreq: 33750 Hz Clock: 74.250 MHz
    VIC   3 720x480@60Hz 16:9  HorFreq: 31469 Hz Clock: 27.000 MHz
    VIC   2 720x480@60Hz 4:3  HorFreq: 31469 Hz Clock: 27.000 MHz
    VIC  32 1920x1080@24Hz 16:9  HorFreq: 27000 Hz Clock: 74.250 MHz
    VIC  34 1920x1080@30Hz 16:9  HorFreq: 33750 Hz Clock: 74.250 MHz
    VIC  16 1920x1080@60Hz 16:9  HorFreq: 67500 Hz Clock: 148.500 MHz
    VIC  17 720x576@50Hz 4:3  HorFreq: 31250 Hz Clock: 27.000 MHz
    VIC  19 1280x720@50Hz 16:9  HorFreq: 37500 Hz Clock: 74.250 MHz
    VIC  18 720x576@50Hz 16:9  HorFreq: 31250 Hz Clock: 27.000 MHz
    VIC  20 1920x1080i@50Hz 16:9  HorFreq: 28125 Hz Clock: 74.250 MHz
    VIC  31 1920x1080@50Hz 16:9  HorFreq: 56250 Hz Clock: 148.500 MHz
    VIC   7 1440x480i@60Hz 16:9  HorFreq: 15734 Hz Clock: 27.000 MHz
    VIC  22 1440x576i@50Hz 16:9  HorFreq: 15625 Hz Clock: 27.000 MHz
  Audio Data Block
    AC-3, max channels 6
      Supported sample rates (kHz): 48 44.1 32
      Maximum bit rate: 640 kb/s
    Linear PCM, max channels 2
      Supported sample rates (kHz): 48 44.1 32
      Supported sample sizes (bits): 24 20 16
  Vendor-Specific Data Block, OUI 000c03 (HDMI)
    Source physical address 1.0.0.0
    Supports_AI

Detailed mode: Clock 74.250 MHz, 598 mm x 336 mm
               1280 1336 1472 1650 hborder 0
                720  721  726  750 vborder 0
               +hsync +vsync 
               VertFreq: 60 Hz, HorFreq: 45000 Hz
Detailed mode: Clock 74.250 MHz, 598 mm x 336 mm
               1920 2008 2052 2200 hborder 0
                540  542  547  562 vborder 0
               +hsync +vsync interlaced 
               VertFreq: 60 Hz, HorFreq: 33750 Hz
Detailed mode: Clock 74.250 MHz, 708 mm x 398 mm
               1920 2448 2492 2640 hborder 0
                540  542  547  562 vborder 0
               +hsync +vsync interlaced 
               VertFreq: 50 Hz, HorFreq: 28125 Hz
Detailed mode: Clock 148.500 MHz, 518 mm x 324 mm
               1920 1936 2492 2640 hborder 0
               1080 1084 1089 1125 vborder 0
               +hsync +vsync 
               VertFreq: 50 Hz, HorFreq: 56250 Hz
Detailed mode: Clock 148.500 MHz, 598 mm x 336 mm
               1920 2008 2052 2200 hborder 0
               1080 1084 1089 1125 vborder 0
               +hsync +vsync 
               VertFreq: 60 Hz, HorFreq: 67500 Hz
Checksum: 0xce (valid)
sorgelig commented 3 years ago

As you've already mentioned, i2c from HDMI is already implemented quite some time ago. So it's up to specific application which may generate compatible modes to specific TV. Probably it can be done by a python scrips with direct access to i2c. Currently i don't have an idea how this should be implemented. MiSTer is not computer with GUI where you can have extensive dialogs with many options. Also 99.9% users need just standard resolutions already implemented. But for fine tuning for very specific case an utility or script should be fine

sorgelig commented 3 years ago

What i've gathered from this topic, this TV is not good for computer/console display as it doesn't support native resolution of its LCD panel (1366x768), so video always will be scaled. Additionally it will be scaled by MiSTer. So 2 scalers are probably too much. Keep this TV for movies. Get another more modern one for games.