elishacloud / dxwrapper

Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.
zlib License
1.22k stars 88 forks source link

Balls of Steel - option to hide cursor #296

Open Omni4 opened 1 week ago

Omni4 commented 1 week ago

Hi Elisha, first of all: thanks for your wrappers!

I use dxwrapper (Dd7to9 & ForceDirect3D9On12) on Balls of Steal (GOG version) and it works like a charm, except for one thing: The cursor in the center of the screen (the cursor should not be there). I've tried dinputto8 and it lets me move the cursor to the side, but it adds a nasty long exit of the tables and I still have to move the cursor every time I start a table. Can you please add a "hide cursor" option to dxwrapper?

Greetings, Omni4

elishacloud commented 1 week ago

That doesn't sound right. What build of dxwrapper are you using? Can you upload your logs?

Omni4 commented 1 week ago

I'm using the latest build. Here are 2 logs: dxwrapper-barbarin.log dxwrapper-duke.log Edit: Each table has separate log files because the ddp files are just renamed executables.

Omni4 commented 1 week ago

Just discovered that the launcher that GOG use to launch Balls of Steal is the "BOS Loader v1.0" which is "inspired by the DirectDraw wrapper project". The default bos.exe does not have the cursor problem, but the launcher is stuck in the top left of the screen. I've also tested BOS Loader v1.1 and it gives the same cursor problem with a loading cursor.

elishacloud commented 1 week ago

Can you try with the latest unreleased build? This one may have a fix for this already: dxwrapper.zip

Omni4 commented 1 week ago

Sadly not. The tables now give no output. Here's the log file: dxwrapper-barbarin.log

Edit: Thanks for trying. It's past 02:00 over here,.. bedtime for me.

elishacloud commented 1 week ago

It looks like it is hanging at or after:

Installing memory management hooks
elishacloud commented 1 week ago
  1. Can you check if either of these files dbghelp.dll or dbgeng.dll exist in the game folder? If so back them up and delete them.
  2. Make sure you rename any ddraw or other similar patch from GOG. These can conflict with my patch.
  3. Try disabling any compatibility options for either of the exe files.
Omni4 commented 1 week ago

dbg dlls are not present. removed all loaders and dlls except for audiow32.dll because it's needed to run the game. No compatibility options are applied. Still gives the same crashes at the same place.

elishacloud commented 5 days ago

Ok, try this one. I disabled all those hooks: dxwrapper.zip

Omni4 commented 5 days ago

With this one the game works again, but still shows the cursor in the center of the screen.

elishacloud commented 5 days ago

That build I just disable the features. Would you mind helping me troubleshoot this so that the features actually work?

I made some changes and added some logging to this build: dxwrapper.zip

This won't fix the mouse cursor issue, but I want to try and fix the other issue. I will also make an option to hide the cursor later as well.

Let me know if this build works or not. If it does not work please attach the debug build. Also, if you have another game you can test this will that would be good. Just to see if that is an issue with the game or your operating system.

Omni4 commented 5 days ago

This one crashes at the same place, at "Installing memory management hooks". dxwrapper-barbarin.log I don't have much time atm. It's almost bedtime for me.

Omni4 commented 5 days ago

Tested it with Jazz Jackrabbit 2 and it gives the same crash. dxwrapper-jazz2.log It's loading the game, but there is nothing on screen. I have to stop the game via Task Manager.

I'm running it on Windows 11 build 27695.1000 rs_prerelease (Canary build). DxWrapper v1.1.6900.22 is working without this problem.

elishacloud commented 5 days ago

Thanks for testing that. I suspect that the issue is the pre-release build. Should work with the release build.

As far as DxWrapper v1.1.6900.22, it does not have these features.

Omni4 commented 5 days ago

You're welcome! Here's a debug log in case you can use it: dxwrapper-duke nukem.log

elishacloud commented 4 days ago

Thanks! I plan to test the game later and fix any issues. But this crash is unique to your computer so I am hoping to figure out where it has the issue.

Can you test with this one and give me the logs? This will help me see where it crashes: dxwrapper.zip

elishacloud commented 3 days ago

Do you know if there is a demo or some way for me to test the game? The only one I could find was on Amazon for over $100.

Omni4 commented 3 days ago

Sorry,.. busy days here. I see they removed it from GOG. Probably because of the Duke Nukem table… :/ I still have the GOG installer if you want it. It’s updated to v1.3

Omni4 commented 3 days ago

If you live in or near the US, you could try this option: https://www.amazon.com/dp/B0006H0MGO/?tag=mobygames02-20&aod=1

elishacloud commented 3 days ago

That is for the a Pinball game called "Balls of Steel". I thought you were playing Duke Nukem Forever: Balls of Steel Edition. Correct me if I am wrong.

elishacloud commented 3 days ago

Sure, happy to get the GOG version if you have a way to get it to me.

Omni4 commented 3 days ago

That is for the a Pinball game called "Balls of Steel". I thought you were playing Duke Nukem Forever: Balls of Steel Edition. Correct me if I am wrong.

Ha,.. no. I'm playing the pinball game. A re-release is also available on Steam, but it has a custom loader and it's missing the Duke Nukem table.

Omni4 commented 3 days ago

Thanks! I plan to test the game later and fix any issues. But this crash is unique to your computer so I am hoping to figure out where it has the issue.

Can you test with this one and give me the logs? This will help me see where it crashes: dxwrapper.zip

Here's the test log: dxwrapper-barbarin.log

elishacloud commented 3 days ago

Here is the latest build. This should fix the crash. Also, I tested with Balls of Steel and Alt+Tab works fine for me. Also, I am not seeing the cursor issue.

Here is the latest build: dxwrapper.zip

Omni4 commented 2 days ago

Thanks! That build fixed the crash. Alt+Tab did work for me also, I just have the cursor problem, but that is probably an early access problem.

Did you remove the DdrawCreateDeviceEarly function from this build? That changed the loading cursor into a regular cursor for me. That way I can swipe the cursor into a corner while loading a table. Now it's showing the loading cursor again.

Omni4 commented 2 days ago

I have an other request: Do you run Windows 11? If so, can you share the DirectX files from your System32 and from your SysWOW64 folder? d3d. + ddraw. + dinput. + dx.? I want to test if it has to do something with one of those files.