Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
DirectDraw wrappers and WINDY.exe
#1
I know the Windows version of ICR2 isn't the preferred method of playing the game for most, but I've gravitated towards it as it seems to work better with my controller choices. It's never looked quite as good, but thankfully there's some new tools out there to help make it a better looking and more viable option.

Basically, Windy has a DirectDraw option, but calls for the main system ddraw.dll rather than any in it's own folder. This means any wrapper which needs a ddraw.dll in the game folder wouldn't work because the game calls for the system .dll, not a local one. However, there's a workaround using an "Application Manifest". You also need to run a quick PowerShell command to get this to work, but the game will then call for the local ddraw.dll. The instructions for this are in Method 4 of the below link:

Application Manifest Instructions in Method 4: https://github.com/narzoul/DDrawCompat/w...tion-guide

Once you've gotten the game to run off the local ddraw.dll, you can then setup a wrapper to help stabilize things and get the game to look pixel-perfect. There are two I'm playing around with now, with varying results - 

DXWrapper https://github.com/elishacloud/dxwrapper - I'm having great results with this, and am able to get it to appear properly scaled full screen with vsync. I've attached a screenshot, it's a true step above in terms of full screen on an HD monitor. One issue is the intro replay won't play, but that's a minor inconvenience, and the game runs as normal after. My config file is as follows, but I'm still playing around with it:

Code:
;; Config file for DirectX DLL Wrapper
[General]
RealDllPath                = C:\SIERRA\CART\ddraw.dll
WrapperMode                = AUTO
LoadCustomDllPath          =
ExcludeProcess             =
IncludeProcess             =
RunProcess                 =
WaitForProcess             = 0
DisableLogging             = 0

[Plugins]
LoadPlugins                = 0
LoadFromScriptsOnly        = 0

[Compatibility]
Dd7to9                     = 1
D3d8to9                    = 0
DDrawCompat                = 1
Dinputto8                  = 0
DisableGameUX              = 0
DxWnd                      = 0
EnableDdrawWrapper         = 0
EnableDinputWrapper        = 0
EnableDsound8Wrapper       = 0
HandleExceptions           = 0
SingleProcAffinity         = 0

[DDrawCompat]
DDrawCompat20              = 0
DDrawCompat21              = 0
DDrawCompatExperimental    = 0
DDrawCompatDisableGDIHook  = 0
DDrawCompatNoProcAffinity  = 0

[ddraw]
ConvertToDirectDraw7       = 1
ConvertToDirect3D7         = 1
DdrawOverrideBitMode       = 0
DdrawResolutionHack       = 1

[Dd7to9]
AutoFrameSkip              = 0
DdrawEmulateSurface        = 1
DdrawWriteToGDI            = 0
DdrawLimitDisplayModeCount = 0
DdrawUseNativeResolution   = 1
DdrawClippedWidth          = 0
DdrawClippedHeight         = 0
DdrawOverrideWidth         = 0
DdrawOverrideHeight        = 0
DdrawOverrideRefreshRate   = 0
DdrawIntegerScalingClamp   = 0
DdrawMaintainAspectRatio   = 1

[d3d9]
AnisotropicFiltering       = 1
AntiAliasing               = 1
EnableVSync                = 1
EnableWindowMode           = 0
ForceVsyncMode             = 1
FullscreenWindowMode       = 0
WindowModeBorder           = 0

[FullScreen]
FullScreen                 = 0
ForceWindowResize          = 0
WaitForWindowChanges       = 0

[dinput8]
FilterNonActiveInput       = 0

[dsound]
Num2DBuffers               = 0
Num3DBuffers               = 0
ForceCertification         = 0
ForceExclusiveMode         = 0
ForceSoftwareMixing        = 0
ForceHardwareMixing        = 0
ForceHQ3DSoftMixing        = 0
ForceNonStaticBuffers      = 0
ForceVoiceManagement       = 0
ForcePrimaryBufferFormat   = 0
PrimaryBufferBits          = 16
PrimaryBufferSamples       = 44100
PrimaryBufferChannels      = 2
AudioClipDetection         = 0

dgVoodoo http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ - This is my usual go-to for upscaling old games, but it's still not working quite right with ICR2. It recognizes the .dll (the watermark is there) and will upscale and vsync, but bizarrely does it in a window. Maybe it's my system settings or maybe I'm missing something in the config, but I'll keep playing with it as time allows. Supposedly there's a way to get DXWrapper working in tandem with dgVoodoo using stub .dlls (the ddraw.dll for DXW and dgV are both different and won't work with the other program), but I haven't figured that out yet.

I'm still exploring different options for this now that I've gotten it to work properly. Might be able to use Reshade with it too, now, but that's for another day. Anyhow, give these a shot, and I'll keep playing with what I can stumble on, maybe there's a way through this method to go beyond 640x480.


Attached Files Thumbnail(s)
   
Reply
#2
Thanks for posting about this!

I played around for a few hours with the dxwrapper and dgvoodoo with your advice on pointing to a local ddraw.dll in the icr2 directory. I was able to get dgvoodoo working on its own without dxwrapper but couldn't find info on how to combine it was dxwrapper to take advantage of both.

I was able to get a similar output to your screenshot, full screen with preserved aspect ratio and correct scaling. It looks very similar to what I am able to get with Dosbox ECE and the dos version.

My hope was that these wrappers could actually Upscale the game, actually increase the 3D rendering resolution, but I believe in how ddraw was implemented in ICR2, it still behaves as though it is a 2D game, and so true upscaling to have the sim run at a higher resolution (not just make pixels bigger) may not be possible?

I also tried playing with the DxWnd portion of the program but wasn't able to get past the intro video without it crashing the sim.

Either way, great stuff. Im interested if it improves stability with the WINDY version of the sim because there are a few features with how that version handles championships/carsets and menus which make it a bit nicer to use!
Reply
#3
Wait, running Windy on a later Windows version.... I am now interested.
IIRS Driver Champion (2005-2007, 2010-2014)
IIRS Team Champion (2004-2014)
Reply
#4
I've never
(05-18-2021, 03:07 AM)jxeboy Wrote: My hope was that these wrappers could actually Upscale the game, actually increase the 3D rendering resolution, but I believe in how ddraw was implemented in ICR2, it still behaves as though it is a 2D game, and so true upscaling to have the sim run at a higher resolution (not just make pixels bigger) may not be possible?

I actually got Reshade to work with it, and it shows the game rendering as one 4-sided surface, not individual polygons from within the game...so, yeah, it's effectively rendered as a 2d game. Which doesn't make sense to me as the Rendition version would have to be usual 3d, but I'm not a programmer so my understanding beyond this is limited. I've tried pulling the .exe into a hex editor to see if there's obvious resolutions somewhere, but I can't find them and I wouldn't know what the hex value to change it to would be anyhow. But the Reshade thing also raises the options of interpolation shaders, so maybe that could have an effect.

(05-18-2021, 04:46 AM)Wolf_pd Wrote: Wait, running Windy on a later Windows version.... I am now interested.

Believe it or not I've never had a problem running Windy on Windows 10. It's never the prettiest but it does work well for me, for whatever reason.
Reply
#5
I am on 8.1 and will upgrade to 10 later this year. Windows Vista it worked for me, but after that just via DOSBOX and not really a fan of that. Too much Windified I guess.
IIRS Driver Champion (2005-2007, 2010-2014)
IIRS Team Champion (2004-2014)
Reply
#6
To Wolf_pd
I run Windy with my Win8.1 computer and it is perfect, much better than dosbox on my machine. I do it via Windows XP in VirtualBox. VirtualBox is a simple install. Then I just used some instructions from the NET, together with an XP file link, to install WinXP in it. Was pretty easy. Then an old XP serial number to formalize it. In all my years of playing icr2 in different forms this has been easily the best. 
Unfortunately I ran into trouble when my old Ferrari wheel finally died & I replaced it with a Logitech G29. WinXP picked up the G29 and all the settings could be used; great. But I couldn't adjust stiffness of the wheel & it defaulted to 100% stiff! Couldn't believe it. It's not useable for more than a few minutes unfortunately, & Logitech wouldn't help me fix it, being in WinXP. 
So it's back to dosbox for the time being. Result has been me playing basically no icr2 & just running GPL (which is also great, but icr2 is my favourite!). 
So if you have an older wheel like a G27, for which software works in XP, with just a bit of setting up you should be able to get Windy to work perfectly. Perhaps don't try it with a G29 though.

To all : 
if anyone has suggestions to help resolve my G29/XP/Windy issue I'd be keen to give it a go. But perhaps the only option is to look for an older wheel on ebay or similar... 

TD
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)