VOGONS

Common searches


Reply 20 of 40, by beatcracker

User metadata
Rank Newbie
Rank
Newbie
teleguy wrote:

The problem seems to be pretty similar to the Nascar situation in that the reported vram is to big to fit into a 32 bit integer causing a change in signedness...

Thanks!

Stiletto wrote:

Seems like there should be an Application Compatibility Toolkit fix that fixes this...

Yeah, it should, so we wouldn't have to patch everything that moves. But I've downloaded latest version of ACT and there is nothing like it.

teleguy wrote:

DxWnd actually has such a compatibility fix but more often than not it doesn't work.

The "Limit available resources" one? Description in manual is too vague, does it caps DX video memory size?

Reply 21 of 40, by VirtuaIceMan

User metadata
Rank Oldbie
Rank
Oldbie

Just as a follow up to this, beatcracker suggested this to me in PM: "Hi, I had a quick glance at your race.bin and it's the same bug (add 0x96000h to the videomem size), but hex-string to search is a little different: 8144240400600900. Replace it all wi 90 and it should work. If not - I'll look at it more closer."

I can confirm this WORKED for me, the game now runs. However it falls into 2 other problems: firstly there are many textures (black parts of dashboard/in-car model) that are now transparent. This can be cured by using dgVoodoo's Direct3D fixes (and probably by other solutions like DXGL or WineD3D). The replacement DDRAW.dll method (or ACT fix) from http://www.blitzbasic.com/Community/post.php? … 77&post=1202630 when applied to race.bin in the Data folder improves framerate also (although using dgVoodoo etc will probably do the same).

The second problem though is sound. It's all crackly and makes the gameplay slow down. If I apply ALchemy to the race.bin file then the sound won't play at all, but the gameplay will be much smoother (unlike if you simply disable sound in the game), so it's something to do with audio playback. I had a fiddle with options.cfg in the Config folder, but that didn't help at all.

So, really, it's 90% there. Does everyone need a separate fix though, depending on how much memory their graphics card has? I'm wary/worried that many other failing games might also have problems with the amount of graphics memory available... currently I have 55 games broken (not just for this issue!) and 423 working (tho many of those are DOSbox so that's not really the same thing!).

My PC spec: Win10 64bit, i7-4970K (not overclocked), KFA2 GeForce RTX 2070 SUPER, Creative Soundblaster ZXr, 16GB RAM, Asus Z97-A motherboard, NZXT 410 case, ROG Swift GSYNC monitor

Reply 22 of 40, by beatcracker

User metadata
Rank Newbie
Rank
Newbie
VirtuaIceMan wrote:

Does everyone need a separate fix though, depending on how much memory their graphics card has?

No, the fix will work for everyone. For those, who interested: Viper Racing uses slightly different (older?) version of the game engine than Nascar but the bug is absolutely the same as Nascar's (tries to add 614400 bytes to the video memory size). The values to search are different because in this case compiler decided not to use registers and just accessed variable from stack, i.e.:

Nascar Heat:

  • Assembly mnemonic: add eax, 96000h
  • Actual opcodes (hex): 0500600900

Viper Racing:

  • Assembly mnemonic: add [esp+18h+var_14], 96000h
  • Actual opcodes (hex): 8144240400600900

Reply 23 of 40, by teleguy

User metadata
Rank Member
Rank
Member
beatcracker wrote:

The "Limit available resources" one? Description in manual is too vague, does it caps DX video memory size?

It affects 3 things:

1) available (free) cluster sectors on HD - limit to 16000
2) global memory: all six values for total/available physical/virtual/pagefile memory are set to a big enough value equal to 0x20000000 (approx 500 MBytes)
3) video memory as reported by GetAvailableVidMem ddraw method: in this case, the maximum value is limited to 0x7FFFF000 (approx 2 GBytes! But some recent video cards do have more!!!).

In the meantime the developer made a few changes to the program to make it work with certain games so other detection methods may have been added.

Reply 25 of 40, by crazytiti

User metadata
Rank Newbie
Rank
Newbie

Hello, may i dig this topic out of his hole ?
I recently re-install Viper racing in it's last (?) update 1.2.5 2016
To play with my force feedback wheel on my up2date PC windows 10 + ryzen + 3060ti
It's running ok-ish
I have two major problems :
- transparency on every black pixel, very noticeable on the dashboard.
- any resolution above 1024 (with the ResolutionChanger.exe) crash

And a lot of minors that doesn't really bother me :
- missing menu parts when antialiasing is activated
- FFB with G29 is very strong
- the benchmark always crash (it's working on my old intel 200 with millenium card getting ~15fps)
- if i launch race.exe directly instead of Viper Racing.exe it crash (working on my old PC)

Screen capture of the main problem of transparency :
72480

Reply 27 of 40, by crazytiti

User metadata
Rank Newbie
Rank
Newbie

Thanks for the input, I try the 3 and none is working, it seems viper racing just ignore the fil that i drop in it's folder (the main folder or the Data folder)
I even try the name_of_game.exe.manifest (https://github.com/narzoul/DDrawCompat/wiki/I … tallation-guide) but it did not work 😒

Reply 28 of 40, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
crazytiti wrote on 2022-05-16, 19:31:

Thanks for the input, I try the 3 and none is working, it seems viper racing just ignore the fil that i drop in it's folder (the main folder or the Data folder)
I even try the name_of_game.exe.manifest (https://github.com/narzoul/DDrawCompat/wiki/I … tallation-guide) but it did not work 😒

Perhaps open the game executable with a hex editor and edit references to ddraw or DDRAW to something else, such as DDRA1 or ddra1 and then rename the pasted executable

previously known as Discrete_BOB_058

Reply 29 of 40, by Narzoul

User metadata
Rank Newbie
Rank
Newbie
crazytiti wrote on 2022-05-16, 19:31:

Thanks for the input, I try the 3 and none is working, it seems viper racing just ignore the fil that i drop in it's folder (the main folder or the Data folder)
I even try the name_of_game.exe.manifest (https://github.com/narzoul/DDrawCompat/wiki/I … tallation-guide) but it did not work 😒

I've only tried the demo briefly, but the game executable is actually Data\race.bin, the exe file is just some launcher. So try putting the wrapper in the Data directory.
I tried it with DDrawCompat v0.3.1 and it works, but sound is really messed up on my system.

Reply 30 of 40, by crazytiti

User metadata
Rank Newbie
Rank
Newbie

Original post : It was, almost, a good idea, i found 1 occurence of ddraw.dll and change it to ttraw.dll
next the game was saying directx5 is not found
putting ddraw.dll in the game folder doesn't work, but putting ttraw.dll in windows/system32 work
But the game crash at launching a race.

After some research nascar heat was using the same engine and the binary is separate in two piece, one is presumably copied to the temp folder to be executed i continu to try various things (renaming, changing folder ...) but no luck for now.
Cf https://superuser.com/questions/880216/window … ith-older-games

------
edit : Yeah i try from teh begining in the root folder and in the data folder, it's seem now that it's getting the ddraw.dll file, maybe the thing with the manifest have done something.
With dgvoodoo it crash on race
With DDrawCompat-v0.3.1 it crash at launch before the menu for me 😒

The problem with the sound is resolved with the unofficial update 1.2.5
-------
Edit 2 : I just try the demo and it crash with DDrawCompat-v0.3.1 so somethign on my PC isn't as viper-compliant as yours 🙁

Reply 31 of 40, by Narzoul

User metadata
Rank Newbie
Rank
Newbie
crazytiti wrote on 2022-05-16, 20:14:

Edit 2 : I just try the demo and it crash with DDrawCompat-v0.3.1 so somethign on my PC isn't as viper-compliant as yours 🙁

If you have G-Sync enabled, turn it off for the game. It's known to be incompatible with exclusive fullscreen mode in DirectDraw. Not much I can do about it, but the next release will allow running in the Windows default "borderless windowed" mode, which at least should avoid the crash (but I think it still won't make it G-Sync compatible, most likely it will be like it's turned off).

As for the transparency issue, it looks like the NVIDIA driver bug I was investigating in Mig Alley and summarized here:
https://github.com/narzoul/DDrawCompat/issues … mment-946084312

There is a test version attached there that disables transparent textures completely, so at least you could test if that's really the problem (if you can get past the crash first). But since it disables texture transparency globally, it will introduce problems with other textures that are really supposed to be at least partly transparent, like trees in the scenery. I'll try to do something about that in the next release.

Reply 32 of 40, by crazytiti

User metadata
Rank Newbie
Rank
Newbie

ok, i use freesync, assuming the bug is certainly present i will try without it.

Edit : it's working in the demo and... i got the same issue with transparency ^^
I managed to make dgvoodoo work with the demo and the picture is fine even with forced 2x AA
Now i try to make it work with the complete version.

For the record i've already played viper on graphic card with no transparency at the time, and it's not ideal since sometime the black border of the tree sprite are overlapping the view of the track

Edit : I try the "white version" and now dashboard is OK, but the "start" flag is tranparent 😁 somewhat not so disturbing

Reply 33 of 40, by crazytiti

User metadata
Rank Newbie
Rank
Newbie

By the way if you want to test the latest version : this man has all the files and tools for viper racing :
http://vnovak.com/?fbclid=IwAR3iQIIigPmDC7wOQ … x_qyb0fzVRS2SXQ

Reply 34 of 40, by crazytiti

User metadata
Rank Newbie
Rank
Newbie

Ok so i managed to make your fabulous ddraw.dll (white version) work with the latest version 1.2.5 2016 of Viper.
I'm now able to play in 1600*900 (upper resolution crash) with somewhat nice graphics 😎
If i can ask, could i have some specials ddraw.dll to pick the least disturbing color for the transparency ?
(can i change the value in hexa directly in the dll ?)

72675

Reply 35 of 40, by Narzoul

User metadata
Rank Newbie
Rank
Newbie
crazytiti wrote on 2022-05-16, 22:11:
Ok so i managed to make your fabulous ddraw.dll (white version) work with the latest version 1.2.5 2016 of Viper. I'm now able t […]
Show full quote

Ok so i managed to make your fabulous ddraw.dll (white version) work with the latest version 1.2.5 2016 of Viper.
I'm now able to play in 1600*900 (upper resolution crash) with somewhat nice graphics 😎
If i can ask, could i have some specials ddraw.dll to pick the least disturbing color for the transparency ?
(can i change the value in hexa directly in the dll ?)

I don't know the best color to use, but yes, you can hex edit the dll. Search for this string:
FF FF FF 00 C7 84 39 18 04 00 00 AD BA AD BA C7 84 39 1C 04 00 00 FF FF FF 00
It should be at offset 0x16176. The first and last 4 bytes are the colors you need to edit to the same value (in RGBA order I think).
I just tried it quickly with all 00s and it had the intended effect (holes in the cockpit).

The game shouldn't crash above 2k resolutions with DDrawCompat, unless there is some additional game-specific restriction I don't know about. Render targets are restricted to 2048x2048 resolution in native Direct3D, but DDrawCompat works around that since v0.3.0.

Reply 37 of 40, by crazytiti

User metadata
Rank Newbie
Rank
Newbie

Ok So first test :
FF 00 FF 00 C7 84 39 18 04 00 00 AD BA AD BA C7 84 39 1C 04 00 00 FF FF FF 00
=> doing on purpose exactly what you said not to do with different values.
And... It works !!!
The game looks exactly like it supposed to be, transparency where needed and that's all 😀
I put the DLL here for others :
http://crazytiti.free.fr/divers/ddraw-viper/ddraw.dll

See for yourself
72766
72767
72768