Jump to content

editing own drivers, seeking help and advices


caps_buster

Recommended Posts

Hi guys. I wonder if I can get some help when tweaking an old drivers for maximum performance and custom tweaks :) I already managed some tweaks that I describe bellow, yet still there is a pretty good deal of things that I simply don't know what to do with them, so a little help is need :)

The drivers in question are oldie Forceware 45.28 ( http://rapidshare.com/files/290383806/Forceware_45.28.zip ) because they are VERY fast on the oldie computer (FX5600XT) and hence preffered.

What I did accomplish

nv4_disp.inf:

%NVIDIA_NV31.DEV_0314.1% = nv4_NV3x, PCI\VEN_10DE&DEV_0314

NVIDIA_NV31.DEV_0314.1 = "NVIDIA GeForce FX 5600XT"

(added these to make the drivers support FX 5600 XT card, otherwise no go - limitation, my card chip is reported as 5600SE, that had to be fixed in the nvcpl.dll by hand - replacing the 5600SE with 5600XT as it is in all later Forceware versions)

nv4_disp.inf:

[nv4.Services]

AddService = nv, 0x00000002, nv4_Generic_Service_Inst, nv4_EventLog_Inst

;AddService = NVSvc, 0x00000000, nv_NVSVC_Inst

(that disable the nVidia help service adding, it slow things down, lots of unnecessary HDD actions too...)

nv4_disp.inf:

[nv4.Services]

AddService = nv, 0x00000002, nv4_Generic_Service_Inst

; nv4_EventLog_Inst

(deleting the EventLog can only speed things up and I'm not a developer in need for logs, so...)

nv4_disp.inf:

HKR,, "DefaultSettings.XResolution",%REG_DWORD%,1280

HKR,, "DefaultSettings.YResolution",%REG_DWORD%,1024

(that give default resolution 1280x1024)

nv4_disp.inf:

In [nv4.SoftwareSettings] change AddReg = Default16BPP_AddReg

to

AddReg = Default32BPP_AddReg made, quite obviously, 32bits the default depth :)

setup.iss:

[File Transfer]

OverwrittenReadOnly=NoToAll

to:

OverwrittenReadOnly=YesToAll

(no questions on reinstall, I hope :D)

What I wonder about

How to STOP creating many custom resolutions nVidia force us to have? First I cleaned out the modes.txt down to this for every card:

320 x 200 32 60 70 72 75

320 x 240 32 60 70 72 75

640 x 480 32 60 70 72 75 85 100

800 x 600 32 60 70 72 75 85 100

1024 x 768 32 60 70 72 75 85 100

1280 x 1024 32 60 70 72 75 85 100

and absolutely NOTHING in the "Horizontal Spanning Modes" and "Vertical Spanning Modes", yet with little change.

Then I in nv4_disp.inf cleaned out these there lines:

HKR,, NV_R&T + rest of the line

HKR,, NV_Modes, %REG_MULTI_SZ% + rest of the line

HKR,, NV_Modes, %REG_SZ_APPEND% + rest of the line

down to this only ONE line:

HKR,, NV_Modes, %REG_MULTI_SZ%, "{*}S 320x200 320x240 640x480 800x600 1024x768 1280x1024"

That worked out beautifully, yet still two resolutions I don't want are present. A 720x480 and 720x576. How to get rid of them? In the registers, they are not even there!

os7501_th.jpg

That is driving me crazy. Do I need to hack some files? Let's hack them then!

The BIG question.

How to simulate the Linux option "AllowNon60HzDFPModes", witch I trying to find out unsucesfully. Looks like the TMDS encoder on my poor FX5600XT card wrongly fall into some category that says "60Hz only" in all Forceware drivers I tested (45.28, 53.03 WHQ, 81.95 WHQ)...

I see two ways to get more that 60Hz. Okay, there.

1) modify the drivers somehow to disable the check, as the Linux option does

2) modify the BIOS in my FX5600XT to report more modern TMDS encoder, witch is allowed to use higher refreshrates over DVI

3) buy new GFX card - friend 7300GS with the very same monitor and some 75.xx Forceware drivers do 75Hz refresh w/o a glitch

Yet since these card are not AGP and the FX5600XT got passive (nice quiet Zalman) cooling, the option no. 3 is not very viable one... Option two, modify the BIOS seems plausible, but after talking with NiBiTor autor Mavke it is on standstill now. He don't know where in the bios to look... As many of the TMDS encoders are in nVidia cards internal, it maybe even does not need to be in the BIOS. We simply don't know... If the TMDS are internal, then all you need to know is the GPU type and then you also know, if this TMDS is "locked" to 60Hz or unlocked.

(according to the Linux users sucesfull attempts to get past this artificial barrier it seems logical that this is only artificial lock and not technical one - if my card can drive a 2048x1538 resolution in 60Hz, then 2,4x smaller number of pixels in 1280x1024 it sure can draw faster that in 60Hz - looks like it can do it at, 144Hz! ...but that could be wrong, of couse...)

Okay, in fact, there is also option no. 4: use Linux, where things (probably) work!

Oh, well.

The Linux drivers only have the very fortunate possibility of override the default settings by the "AllowNon60HzDFPModes" option that let the driver bypass the checks and allow any refreshrate to be set, and hence drive the TMDS to or even over it's limits.

(I heard that it produce funny digital noise effects, if you go over it's capabilities, heh)

So basically it looks like that I have to search where the "60Hz refresh only on this chip" option of nVidia drivers is stored and then modify it (on installed drivers) and/or then go and modify the drivers to save the option as I want it - eg. leaving up to the user, how hard he want to drive his TMDS.

Anyone know know and can help what anything there?

Edited by caps_buster
Link to comment
Share on other sites


The Linux drivers only have the very fortunate possibility of override the default settings by the "AllowNon60HzDFPModes" option that let the driver bypass the checks and allow any refreshrate to be set, and hence drive the TMDS to or even over it's limits.

(I heard that it produce funny digital noise effects, if you go over it's capabilities, hehe)

So basically it looks like that I have to search where the "60Hz refresh only on this chip" option of nVidia drivers is stored and then modify it (on installed drivers) and/or then go and modify the drivers to save the option as I want it - eg. leaving up to the user, how hard he want to drive his TMDS :P

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...