First post, by Ringding
Because of Pinball Fantasies no-scroll patch for dosbox 0.65 I started playing around with Pinball Fantasies and noticed that it was quite unplayable on OS X (10.11) because of unpredictable slowdowns and sound stuttering. After a while I noticed that the official 0.74 release build does not exhibit this problem. Further experimentation revealed the following:
- The problem is caused by the frame rate being restricted to 60fps. Since GFX_EndUpdate is blocked by this, the VGA refresh rate of 70fps cannot be attained.
- Current source compiled with current Xcode -> 60fps.
- 0.74 source compiled with current Xcode -> 60fps.
- 0.74 source compiled on an old 10.6 installation -> 70fps.
- Switching between the old and new SDL builds (via DYLD_LIBRARY_PATH) does not make a difference.
- Behavior is the same for surface and opengl.
All builds were done with -arch i386.
Clearly something with binary produced by old tools causes OS X to deactivate v-synch, while it is forced for the build from today's toolchain. I have not yet found out if something is being compiled differently because of divergent preprocessor conditionals or other slight API differences, or if it is merely the version stamped onto the final binary that causes this behavior change. Using the newer tools to build for older versions is not exactly made easy by Apple – in fact I have not found out a way to do this –, but I'm not really so much into the developer stuff in Apple land. I have also tried using CGLSetParameter(kCGLCPSwapInterval) to switch off v-synch to no avail.
I wanted to share my preliminary observations. I have no solution to this apart from building on Snow Leopard.