VOGONS

Common searches


First post, by Oerg866

User metadata
Rank Newbie
Rank
Newbie

Hello,

I was wondering if there is something like a framerate limiter for Windows 98/DirectX <=7 based applications?

(more specifically, I want to slow down "Shadows of the Empire" to 30 fps)
.

Cheers
Eric

Reply 3 of 13, by SpeedySPCFan

User metadata
Rank Member
Rank
Member

If you have an Nvidia card, you can force 30FPS using the control panel with a vsync setting. You should be able to do the same with an ATI card.

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 4 of 13, by Oerg866

User metadata
Rank Newbie
Rank
Newbie

All of that didn't work 🙁 60 is the lowest it'd go ...

But I did manage to play through the game now (who would have thought that you can *kill* the other speedbikes x) )

edit: also:

Harekiet wrote:

Just play the n64 version emulated with savestates to get passed the cheap deaths...

Top tip 10/10 would ask again 😵

BTW: I wonder why this game is so much more finicky / buggy / touchy wrt hardware and software (especially OS and DX version) than Jedi Knight which was basically developed side by side with SOTE...

Reply 5 of 13, by slartibardfast0

User metadata
Rank Newbie
Rank
Newbie

hi,

I've written a small amendment to a directx wrapper project to allow for capping of frame rates of any <= DirectX 7 3D games

I wrote it specifically for a play through of Star Wars Shadows of the Empire on an old Windows 98SE machine,
which has a rather overspec'd Geforce Quadro FX 1000.

check it out here:
https://github.com/slartibardfast/dxfpscap/re … elease.20200719

to use on Win2000+ simply extract to main game directory (not loaders etc) for example:
C:\Program Files\LucasArts\Shadows\SData (Shadows.EXE)

however on Windows 9x a hex editor must be used to "DDRAW.dll" references with "30cap.dll" in the main game exe
as for reasons unknown to me, the DLL search patch for DDRAW.dll seems to go straight to the system directory

Enjoy! & please let me know if you'd like any different frame caps built- 30 seems perfect for Shadows.exe and a good start.

Reply 6 of 13, by xcomcmdr

User metadata
Rank Oldbie
Rank
Oldbie

Oh nice, I've searched for such an utility for so long !

I know there is DXWND and RivaTuner, but a simple utility that does only FPS limiting for DX was so very missing.

I'l try it ASAP. Thank you so much !

First try : MechWarrior 3.

Reply 7 of 13, by slartibardfast0

User metadata
Rank Newbie
Rank
Newbie

thanks very much @xcomcmdr let me know if you need any different caps like 24, 40 or 60 fps or whatever suits best!

if it's useful I might make the rate a configurable & eventually add a hot-key to enable/disable the cap

i'm not all too familiar with MW3, but a fpscap_0 log file should be created in the running directory that lists some of the wrapped elements,
hopefully the correct path get hit but if not, please do say so, I could never get DXWND or RivaTuner to limit frame rates in Windows 9x,
so would really like to get this correct over time.

Reply 9 of 13, by Dictator

User metadata
Rank Newbie
Rank
Newbie
slartibardfast0 wrote on 2020-07-19, 17:45:
hi, […]
Show full quote

hi,

I've written a small amendment to a directx wrapper project to allow for capping of frame rates of any <= DirectX 7 3D games

I wrote it specifically for a play through of Star Wars Shadows of the Empire on an old Windows 98SE machine,
which has a rather overspec'd Geforce Quadro FX 1000.

check it out here:
https://github.com/slartibardfast/dxfpscap/re … elease.20200719

to use on Win2000+ simply extract to main game directory (not loaders etc) for example:
C:\Program Files\LucasArts\Shadows\SData (Shadows.EXE)

however on Windows 9x a hex editor must be used to "DDRAW.dll" references with "30cap.dll" in the main game exe
as for reasons unknown to me, the DLL search patch for DDRAW.dll seems to go straight to the system directory

Enjoy! & please let me know if you'd like any different frame caps built- 30 seems perfect for Shadows.exe and a good start.

I just wanted to say thanks for this - I just tried it out with Shadows of the Empire on Windows 98SE and it seems to work rather perfectly. It seems to have proper frame pacing as well at 30, which is not necessarily expected given the AGE of the APIs here. How exactly are you doing this so well?
Well done!

Reply 10 of 13, by slartibardfast0

User metadata
Rank Newbie
Rank
Newbie
Dictator wrote on 2021-11-15, 10:00:
slartibardfast0 wrote on 2020-07-19, 17:45:
hi, […]
Show full quote

hi,

I've written a small amendment to a directx wrapper project to allow for capping of frame rates of any <= DirectX 7 3D games

I wrote it specifically for a play through of Star Wars Shadows of the Empire on an old Windows 98SE machine,
which has a rather overspec'd Geforce Quadro FX 1000.

check it out here:
https://github.com/slartibardfast/dxfpscap/re … elease.20200719

to use on Win2000+ simply extract to main game directory (not loaders etc) for example:
C:\Program Files\LucasArts\Shadows\SData (Shadows.EXE)

however on Windows 9x a hex editor must be used to "DDRAW.dll" references with "30cap.dll" in the main game exe
as for reasons unknown to me, the DLL search patch for DDRAW.dll seems to go straight to the system directory

Enjoy! & please let me know if you'd like any different frame caps built- 30 seems perfect for Shadows.exe and a good start.

I just wanted to say thanks for this - I just tried it out with Shadows of the Empire on Windows 98SE and it seems to work rather perfectly. It seems to have proper frame pacing as well at 30, which is not necessarily expected given the AGE of the APIs here. How exactly are you doing this so well?
Well done!

thanks very much!

I hooked the frame presentation logic from a pre-existing direct3d/directdraw wrapper to
a custom delay function that ties to the precise timer that windows provides in QueryPerformanceCounter()
even windows 9x appears to use the pentium's time stamp counter under the hood,
which is more than enough accuracy for a 1-60 fps target!

I'm attempting to figure out a good generic approach (albeit in assembler fragments)
for patching ms-dos speed sensitive game loops over the christmas. but i've very little spare time!

Reply 11 of 13, by eddman

User metadata
Rank Newbie
Rank
Newbie

Superb work. It's so nice to see tools made for old machines and OSes.

slartibardfast0 wrote on 2021-12-23, 18:08:

even windows 9x appears to use the pentium's time stamp counter under the hood,
which is more than enough accuracy for a 1-60 fps target!

You mean a regular pentium? On the github page you mention using at least a pentium pro.

Reply 12 of 13, by KCompRoom2000

User metadata
Rank Oldbie
Rank
Oldbie

By any chance would the dxfpscap utility work with the PC version of Spiderman (2000) on Windows 9x? I remember that game had a bug where you couldn't get past the Scale the Girders level without using FRAPS or a similar utility to limit the frame rate to 30 fps, so I figured it'd be worth using dxfpscap with that game to make it playable.

Reply 13 of 13, by eddman

User metadata
Rank Newbie
Rank
Newbie
KCompRoom2000 wrote on 2022-02-19, 08:16:

By any chance would the dxfpscap utility work with the PC version of Spiderman (2000) on Windows 9x?

Why don't you try it yourself? It's very simple to do. If the game uses ddraw, then it might work.