Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steam-enabled GMS games triggering 'Entry Point Not Found' #2

Open
BPzeBanshee opened this issue May 18, 2021 · 1 comment
Open

Steam-enabled GMS games triggering 'Entry Point Not Found' #2

BPzeBanshee opened this issue May 18, 2021 · 1 comment
Assignees

Comments

@BPzeBanshee
Copy link

A recent update to my machine has led most of the GMS apps I helped develop over the last decade run into the very issue this project and it's dev-friendly gmsched tries to resolve.

While I plan on updating the games I'm involved with to use gmsched which I understand is the cleaner way to implement this, I thought I'd let you know that sticking this project's DBGHELP.DLL and running Steam-enabled EXEs (in this test case, Zenodyne R, but also tried with other projects) straight from Windows Explorer causes this window to popup:

 ---------------------------
 Zenodyne_Remake.exe - Entry Point Not Found
 ---------------------------
 The procedure entry point SymSetOptions could not be located in the dynamic link library C:\Program Files (x86)\Steam\CSERHelper.dll. 
 ---------------------------
 OK   
 ---------------------------

I looked up SymSetOptions and it looks like it's an actual function of the real DBGHELP.DLL, so I suppose a stub override like you've done with SymInitialize may well solve this and make this stub DLL good to use with Steam-enabled GM games.

Interestingly, the error does not crash the game: it appears to follow as normal, and at least going by ingame test code, Steam still responds as being loaded and ready to go. Furthermore, running the games through the given Steam shortcuts or through it's UI launch areas (ie. taskbar > Game) does not trigger the sign. It's a mild inconvenience though.

As for addressing the intended fault of GMS scheduling causing framerate issues, I notice that at least on my machine, I still get an occasional FPS drop, but only by a frame as reported in the FPS display within the first minute of running time and it's barely noticeable compared to the 2-20 FPS dips I was getting before from day to day. I also notice that fps_real still reports low numbers even with the DLL present until I set the IDE sleep margin to 15ms, which I assume is because GMS is still calculating those values based on the buggy scheduling function in the first place.

@omicronrex omicronrex self-assigned this May 18, 2021
@omicronrex
Copy link
Owner

I looked up SymSetOptions and it looks like it's an actual function of the real DBGHELP.DLL, so I suppose a stub override like you've done with SymInitialize may well solve this and make this stub DLL good to use with Steam-enabled GM games.

Looking into it!

As for addressing the intended fault of GMS scheduling causing framerate issues, I notice that at least on my machine, I still get an occasional FPS drop, but only by a frame as reported in the FPS display within the first minute of running time and it's barely noticeable compared to the 2-20 FPS dips I was getting before from day to day.

This is pretty on par for the course in game maker, and common if sleep margin is set to 0 or vsync is on...

I also notice that fps_real still reports low numbers even with the DLL present until I set the IDE sleep margin to 15ms, which I assume is because GMS is still calculating those values based on the buggy scheduling function in the first place.

That's because your computer is clocking down, so the frames are taking up more time. fps_real simply measures the free time inbetween frames - if the game was just about to hit the frame boundary, your cpu would up the clock, again increasing the fps_real again. This doesn't mean the game is running poorly, it just means yoyogames called this variable a very undescriptive name for what it actually does.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants