Interrupt / systemshock

Shockolate - A minimalist and cross platform System Shock source port.
GNU General Public License v3.0
802 stars 62 forks source link

Flicker issues in OpenGL mode #353

Open mrikola opened 4 years ago

mrikola commented 4 years ago

See for example https://www.youtube.com/watch?v=EEFMLmsVhr8

Gerwin2k commented 3 years ago

Actually, IMO, something has gone wrong with both the OpenGL and Software rendering frame handling. It is like it is showing a newer rendered frame, then an older frame after that, etc. As if moving forward, moving back a little, then forward again. I would be curious about playing ingame recorded footage at like quarter speed, to better determine what is happening.

The original game is more easy for the eyes.

Edit: Seems the thing I am describing is not always happening, but occasionally.

Gerwin2k commented 1 year ago

Two years later: The issue on my WIN32 system was caused by SDL_RENDERER_PRESENTVSYNC. When I disable that it finally became playable/enjoyable. The issue was both with plain SDL rendering and OpenGL. I added an option to toggle it in my local build: MacSrc\Shock.c, line 220

    if (gShockPrefs.vsync) renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC); // GB 2023 vsync option
    else                   renderer = SDL_CreateRenderer(window, -1, 0);