jumper Posted June 13, 2024 Posted June 13, 2024 On 6/11/2024 at 6:56 AM, jumper said: Select Monitor Scaling, shut down Windows, then cold boot with an EBD to DOS. BTW, preview for 4) isn't correct. Select Monitor Scaling and Exit to DOS. This should retain the setting. Then use a DOS Vesa 3 app to set the mode and refresh rate. If it still doesn't work, the problem is definitely the video card not correctly supporting Vesa 3 on the DVI port. What DOS app are you using for your tests? BTW, both are 16:9 so there should be no black side bars. If the preview is like what you get, then it is correctly previewing incorrect behavior.
defuser Posted June 20, 2024 Author Posted June 20, 2024 On 6/13/2024 at 9:09 PM, jumper said: BTW, both are 16:9 so there should be no black side bars. If the preview is like what you get, then it is correctly previewing incorrect behavior. It thus scales 1600x900 under DOS (And in the DOS window of Windows), in the case when it is entered in the standard 4:3 (For example, 1024x768). And after completing the full-screen DOS application and returning to Windows, these "incorrect" proportions are preserved for 1600x900 installed on the desktop (Texts and shortcuts are narrowed, and black bars remain at the edges). At the same time, from a "clean slate" under Windows, the monitor does not allow you to set the "Aspect" mode (Other options are available besides this). For this zoom mode to become available again, something must be written in 1600x900 under DOS. It looks very confusing. Most likely, this still corresponds to some interaction specification. Somehow, the monitor under DOS determines the parameters and the ratio of the entered resolution. But this is not the right behavior. It is necessary that the video card outputs, for example, 800x600, as it is (As it is selected in the application), as it happens with a VGA connection. On 6/13/2024 at 9:09 PM, jumper said: What DOS app are you using for your tests? UniRefresh + Quake 1. What other apps can I try for this purpose? On 6/13/2024 at 9:09 PM, jumper said: Select Monitor Scaling and Exit to DOS. This should retain the setting. Then use a DOS Vesa 3 app to set the mode and refresh rate. The output in DOS does not work for me (It exits and freezes). Only a separate MS-DOS 6.22 (Multiboot menu of Windows 98) works, in which I test all this. The DOS window also works under Windows 98 (Also used). Running DOS received with "BootGui=0". As well as DOS, located on the OEM CD of Windows 98. Everywhere the picture is almost identical. The scaling settings, in turn, apply to the DOS window of Windows 98. But only the first two options work (Enter in the center or Stretch). The third option (Passing native permission) doesn't work. For pure MS-DOS 6.22, the tool mentioned above (In the sixth message) is used: http://rayer.g6.cz/programm/nvsc.zip It also allows you to use only the first two options (Fit or Stretch). At the same time, under any DOS, the above method of scaling the monitor is always used, determined by the entered resolution. The monitor input is always supplied with what is specified in the monitor's EDID (including the refresh rate). On 6/13/2024 at 9:09 PM, jumper said: If it still doesn't work, the problem is definitely the video card not correctly supporting Vesa 3 on the DVI port. And so it happens. I try changing the refresh rate as usual using UniRefresh, but it doesn't work for DVI connectivity. Only for VGA (and even then, not on all VBE 3 compatible nVidia video cards).
defuser Posted June 20, 2024 Author Posted June 20, 2024 At the moment, I can change the update rate under DOS via DVI connection in only one way - by changing the EDID and flashing it to the monitor. But this method does not seem ideal to me, for the simple reason that it is somewhat tedious to flash the EDID for each DOS program that needs its own frequency. Isn't there a simpler, programmatic way for DOS to change the frequency in any way (Programmatically redefining the EDID under DOS would be a perfectly suitable solution if it existed). By the way, are there any tools for flashing the monitor's EDID under DOS that use the i2c bus and support 256-byte EDID images?
defuser Posted June 21, 2024 Author Posted June 21, 2024 (edited) 10 hours ago, defuser said: The output in DOS does not work for me (It exits and freezes). A small correction. I just checked the whole thing again and no, it really goes out fine in DOS. It's just that for some reason the USB keyboard doesn't work there and therefore nothing can be done. It looks like a hang, but in fact it is not a hang. You can add the program to DOSSTART.BAT and it will run successfully after exiting DOS. It seems to me that the USB driver captures the keyboard under Windows and does not want to give back control of the CSM (Which works before Windows starts). Something like that. However, this is more than enough to perform the specified check. I set the monitor zoom mode in the driver (the third option), added Quake to DOSSTART. BAT, and exited in DOS. Quake started. But the input of the monitor still receives 1600x900@72hz (Registered by me in the EDID, at the moment, in the "Preferred Timing Block" section). The same mode is applied to the monitor both in pure MS-DOS 6.22 and in the DOS window of Windows 98. Regardless of what is installed on the desktop. And by the way, the" wrong " proportions (Typical for 4: 3, stretched by 16:9) they are saved for this mode and only for it (If you specify a different one in the EDID, it will be different). Apparently, due to the fact that at an early stage of loading, the monitor ALREADY works with this video mode and applies this "wrong" scaling to the "correct" video modes of early DOS embedded in it, and this is apparently remembered somewhere. They've made a lot of sense out there... Just as planned, I checked the NV34 again and compared it with what the G70 has. The first value is what is selected in the game; the second value is what actually goes to the monitor input. "Aspect" - indicates that there is an active option to enable aspect ratio support in the monitor menu. Underlined - playable modes (No lags. Frame synchronization works). In all cases - UniRefresh set to 72hz; Quake 1; MTRR LFB WC. VGA NV34: 320x200 => 720x400@70 360x200 => 720x400@70 320x240 => 848x480@72 Aspect 360x240 => 640x480@60 Aspect 320x350 => 640x350@70 360x350 => 640x350@70 320x400 => Out of range 360x400 => 720x400@70 320x480 => 640x480@60 Aspect 360x480 => 640x480@60 Aspect 640x400 => Out of range 640x480 => 848x480@72 Aspect 800x600 => 800x600@72 Aspect 1024x768 => 1024x768@72 Aspect 1280x1024 => 1280x1024@72 Aspect VGA G70: all the same, except: 320x240 => 640x480@60 Aspect 320x400 => 720x400@70 640x400 => 720x400@70 640x480 => 640x480@60 Aspect 800x600 => 800x600@60 Aspect 1024x768 => 1024x768@60 Aspect 1280x1024 => 1280x1024@60 Aspect DVI: NV34 (Default EDID) - all modes (except 1280) => 1024x768@60hz Aspect NV34 (Modified EDID) - all modes (except 1280) => 1024x768@60hz Aspect G70 (Default EDID) - all modes => 1920x1080@60hz G70 (Modified EDID) - all modes (except 1280) => 1600x900@72hz Aspect As for the "Aspect" mode, in fact, with it, the standard 4:3 modes stretched at 16:9 seem to look, oddly enough, approximately correct. But NV34 in DVI, for some reason, not only ignores UniRefresh, but also what the monitor itself requires from it. Perhaps this is just the case when the value is hardcoded in the BIOS (Apparently, ATI does about the same), or it takes this value from some alternative location. Edited June 21, 2024 by defuser
SweetLow Posted June 21, 2024 Posted June 21, 2024 (edited) 4 hours ago, defuser said: Perhaps this is just the case when the value is hardcoded in the BIOS (Apparently, ATI does about the same) Hardcoded not value, but values. Old BIOSes just do not "know" how to display anything different from standard modes and just select one of them. The only variant is to replace BIOS code to something else like UniVBE. Edited June 21, 2024 by SweetLow
defuser Posted June 22, 2024 Author Posted June 22, 2024 (edited) On 6/21/2024 at 10:08 AM, SweetLow said: Hardcoded not value, but values. Old BIOSes just do not "know" how to display anything different from standard modes and just select one of them. The only variant is to replace BIOS code to something else like UniVBE. It's clear. It turns out that there are several possible scenarios at once. Older vBIOS can understand PTB EDID values, such as those that correspond exclusively to GTF. But don't quite understand CVT, CVT-RB and CVT-RBv2 (Specified in the EDID for DVI \ HDMI of a modern monitor). Therefore, the BIOS chooses something from the standard values when it suddenly encounters an unfamiliar "CVT", and even at 16:9. Hence, 1024x768 (apparently GTF) is forced. Another option is that 1024x768 can simultaneously be a certain " vBIOS Default "and it is always reset to it when it cannot set the requested"CVT". This can be easily checked, but you will need to modify the EDID again. Replacing 1600x900_CVT with something not quite standard, something like 800x600_GTF. The old vBIOS should understand this if it really accesses this block (PTB). And instead of 1024x768 at the input, if everything is really so, it should immediately become 800x600. Otherwise, this mechanism does not work at all in NV34 (not implemented yet\Disabled by default\Disabled for this particular monitor\Works differently than expected). Well, accordingly, the resulting option may be just the same in the fact that the old vBIOS may not read this block at all and just choose something from the standard values at once. But then again, why is only one single value always used? There are also a lot of them (There is, by the way, and 1280x1024@75hz, why not choose it, for example?). Judging by this behavior, it seems to me that it still uses internal values from vBIOS (Choosing only one of them). And what it starts from then, choosing this "only correct" value, if not from EDID, remains a mystery. I also looked a little bit at UniVBE on NV34 (So far only superficially, it is quite buggy and it has two different recommended versions, the behavior of which is slightly different, as well as their glitches. Therefore, all the following observations are only preliminary). With DVI allows you to still change the frequency up to 75hz at 1024x768, but only if the game itself is selected exactly 1024x768. When you select any other modes, the input to the monitor remains as before 1024x768@60hz. Also such an option. It's just a coincidence that the game has such a display mode. Some games can't even exceed 800x600_Vesa2 (or even even less), which means they're all out of whack? Well, the limit of 75hz is clearly not hardware. But on the G70, of course, this does not work at all, because the game does not support 1920x1080 or even 1600x900 (Which UniVBE or vBIOS chooses). Accordingly, it cannot be selected in the game. And if you wind up even just 60HZ at the same 1024x768 or 800x600 and select it in the game, it immediately writes that there is no signal (That is, it tries to do something there, but it clearly breaks off about something and flies out of the range). I will dig up this effect in more detail. Notably, UniVBE itself acts similarly to VBIOS in both cases, setting hard-coded 1024x768 for NV34 and 1920x1080\1600x900 (depending on the EDID) for G70. That is, it does not bring anything new in this regard. Presumably, if you set EDID 1024x768 as preferred (PTB), then the G70 will be able to work similarly to NV34. But this solution, again, is not perfect, for the same reasons. Along the way, I also managed to find out that data from the EDID is read every time the video mode is changed in the game. Thus, on the fly, in principle, it would be possible to change the preferred mode and refresh rate so that the video card would actually use it. But this requires a powerful software tool that allows you to modify EDID data on the fly (something like "EDID override for DOS"). Or a deep revision of UniVBE could also be a good solution to quite a few similar problems, because, among other things, it also added new modes to the game (Which were not originally available), and also includes support for VBE 3.0 (Where it is not yet\no longer yet), although it actually turns on not everywhere (at least as far as the refresh rate is concerned) and usually doesn't work on anything higher than NV3x (at least on VGA. On DVI, as you can see, too, a positive result has not yet been achieved). I also checked "Aspect". The actual aspect ratio (If measured with a measuring tape) of the 1024x768 video mode under DOS, embedded in 1600x900 (Which the video card outputs) and applied to it by the "Aspect" monitor, is 4:3 (400x300 millimeters physically). Of course, when in Windows, in the same framework, the size of 400x300 millimeters, 1600x900 remains embedded - this does not look natural. But this can be easily corrected even in several possible ways (by setting the video driver zoom, changing the refresh rate to a different one than used under DOS, or by setting the monitor itself). So this is just not a serious problem here (Just an annoying flaw). Edited June 22, 2024 by defuser
defuser Posted August 12, 2024 Author Posted August 12, 2024 On 6/21/2024 at 5:26 AM, defuser said: VGA NV34: 320x200 => 720x400@70 360x200 => 720x400@70 320x240 => 848x480@72 Aspect 360x240 => 640x480@60 Aspect 320x350 => 640x350@70 360x350 => 640x350@70 320x400 => Out of range 360x400 => 720x400@70 320x480 => 640x480@60 Aspect 360x480 => 640x480@60 Aspect 640x400 => Out of range 640x480 => 848x480@72 Aspect 800x600 => 800x600@72 Aspect 1024x768 => 1024x768@72 Aspect 1280x1024 => 1280x1024@72 Aspect A bit offtopic, but for the sake of fairness, I also checked what would happen if a full-fledged CRT monitor (based on Mitsubishi DiamondTronNF) was connected under the same conditions. What it will look like. And here's what came out of it: VGA NV34 with CRT: 320x200 => 640x400@71 Aspect 360x200 => 640x400@71 Aspect 320x240 => 640x480@72 Aspect 360x240 => 640x480@60 Aspect 320x350 => 640x400@70 Aspect 360x350 => 640x400@71 Aspect 320x400 => 640x400@72 Aspect 360x400 => 640x400@71 Aspect 320x480 => 640x480@60 Aspect 360x480 => 640x480@60 Aspect 640x400 => 640x400@72 Aspect 640x480 => 640x480@72 Aspect 800x600 => 800x600@72 Aspect 1024x768 => 1024x768@72 Aspect 1280x1024 => 1280x1024@72 Aspect As you can see, the number of playable modes immediately increased. Moreover, in each case, the aspect ratio is now correct (Which is achieved due to more subtle settings of the monitor itself, which, as it turned out, allow significantly more than the LCD. For example, completely arbitrarily narrow-expand any image horizontally and vertically, regardless of each other). And another thing that immediately caught my eye was that, unlike the LCD, the lubrication was completely lost when driving. Three-dimensional space moves like something real behind glass. There was no such effect on the LCD, and with any settings and connection methods, there was always a barely noticeable smudge when strafing near a wall or any object, which causes noticeable damage to realism. But nevertheless, returning directly to the topic, I managed to find out that this problem has already been encountered and tried to solve it with a hardware DVI cable mod (Which in general is almost the same as I have already done, only without flashing the modified EDID directly to the monitor itself). They also tried to modify the BIOS, but these are all half-measures. This is not flexible, difficult, and requires significant intervention. Therefore, it is difficult to consider all these solutions as full-fledged and easily accessible to everyone. I would still like to find ways to make do with purely software tools.
FlameOnion Posted August 19, 2024 Posted August 19, 2024 As info, I saw a little box(4k hdmi edid emulator) that have multiple switchable profiles. Also, to add to that "DVI cable mod", using arduino with multiple EDID eeprom to switch between them using COM port from PC with appropriate program in a .bat file(as a launcher for programs with different settings)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now