k4zmu2a / SpaceCadetPinball

Decompilation of 3D Pinball for Windows – Space Cadet
MIT License
3.37k stars 209 forks source link

Difference in physics between 2.0.1 and 2.1.0 #220

Open dukc opened 3 weeks ago

dukc commented 3 weeks ago

Hello, I'm using the Nix packaging of this game. I have just updated my software from NixOS 23.11 to NixOS 24.05, meaning Space Cadet got updated from 2.0.1 to 2.1.0.

There is a noticeable difference in physics, at least when it comes to point of aim with the flippers. Yes, I know the frame rate settings affect this. I'm testing with 240Hz physics and 60Hz graphics in both cases, no precise sleep, no Full Tilt available in either. Checked that uncapped UPS is off. I also switched back to 2.0.1 to confirm it behaves as I remember back there. Yes, it does.

Since Nix always uses the specified versions of the dependencies, more likely than not the libraries (like SDL / OpenGL) do differ between my 2.0.1 and 2.1.0. Should this make a difference? I can try to test if you think it could matter.

Examples of the differences:

Hold the ball in left flipper, and try to shoot the wormhole key or the hyperspace like you'd shoot in 2.0.1. The ball will hit the yellow wormhole or even lower.

Same, but try to hit the ramp (normally very easy target from the left flipper!) You'll hit the medallion targets.

Plunger seems more powerful than before. I accidentally shot the ball all the way up, which is something that rarely happens to me in 2.0.1.

Nudging behaviour isn't noticeably different, or at least doesn't immediately strike as so.

dukc commented 3 weeks ago

Since Nix always uses the specified versions of the dependencies, more likely than not the libraries (like SDL / OpenGL) do differ between my 2.0.1 and 2.1.0. Should this make a difference? I can try to test if you think it could matter.

Just tested for this. I built 2.1.0 with dependencies from NixOS 23.11, so that they match dependencies of 2.0.1. Physics behaviour same as with 2.1.0 and NixOS 24.05, meaning the versions of dependencies don't explain the difference.