don't click here

Why Does Sonic R Tear in Software?

Discussion in 'General Sonic Discussion' started by Blades, Jan 8, 2015.

  1. Blades

    Blades

    Member
    37
    0
    6
    Why does Sonic R experience extensive screen tearing with DirectDraw but none with Direct3D? Same with Sonic 3D Blast. There doesn't seem to be any tearing in the PC ports of Sonic CD and Sonic & Knuckles. This is on Windows 98 so it shouldn't be a compatibility issue.

    If this was intentionally done by the developers, why did they do that?
     
  2. winterhell

    winterhell

    Member
    1,165
    7
    18
    Tearing means there is a lack of VSync, which could be on the driver's side, the api(directdraw/d3d/etc), the way the software is written or all of the above. For example many Radeon drivers would ignore OpenGL vsync, and even if you are at a locked 60fps you can still have tearing.
     
  3. Delta

    Delta

    Oldbie
    Expanding on the above post.

    Screen tearing is typically never intentional. It happens when the game tries to redraw itself before the monitor has had a chance to completely draw the previous frame. This results on one half of the screen showing the new frame, while the other half is still showing the old frame. In software rendering, this has a greater chance of happening because on a PC, developers don't have a reliable way to know whether the monitor has completely drawn the previous frame.

    In Direct3D/DirectX and OpenGL, however, developers have a bit more control. Both of these graphics APIs have a way to enable Vertical Sync (VSync), which tells the graphics driver to wait until it has completed the previous frame before rendering the next one, resulting in a smoother appearance. This has the side effect of limiting the game's frames per second to whatever the refresh rate of your monitor is, which is typically 60fps with modern displays.
     
  4. Blades

    Blades

    Member
    37
    0
    6
    So Sonic R and 3D Blast's software modes were broken when they shipped?
     
  5. Falk

    Falk

    Member
    1,569
    13
    18
    Depends on your definition of broken. In general people didn't seem to mind stuff like this nearly as much back then, or weren't as vocal about it.
     
  6. Trunks

    Trunks

    AGAIN TRY Oldbie
    Is there a way to force the rendering resolution of Sonic R to anything else?
     
  7. Blades

    Blades

    Member
    37
    0
    6
    Yeah but it tears at any resolution. I guess these PC ports were already crippled compared to the Saturn versions so tearing wasn't worth spending time on.

    Perhaps my PC is too fast for these games at 1.2 Ghz stepped down from 2Ghz, or my LCD refresh rate is too low at 60.
     
  8. Vangar

    Vangar

    Member
    3,639
    55
    28
    You can force Vsync in your graphics card control panel. But yeah back in 1997 it would have been rare for someone to see screen tearing as most consumer graphics cards were not displaying faster then 60fps.
     
  9. winterhell

    winterhell

    Member
    1,165
    7
    18
    With 'traditional' tearing you get 2 halves of the screen that are showing parts of consecutive frames during fast motion. If the game however supports arbitrary high framerates(like 200fps or more) and your computer is fast enough, the tearings you'll get would be much smaller. Doubling the framerate would halve the time between the updates, thus the difference between the frames would be less. At 2x-3x you'll probably stop noticing it.
    As an added bonus the input lag, the time between a keypress and the action on screen, would reduce considerably. This is the reason there is even a vsync off tick on many games.
     
  10. Covarr

    Covarr

    Sentient Cash Register Member
    4,233
    3
    18
    Trapped in my own thoughts.
    Two stageplays, a screenplay, and an album
    Will this work if the game is rendering in software mode, though? If it's tearing in an internal framebuffer before it ever goes to the GPU's own buffer, there's probably nothing a GPU setting can do about it.
     
  11. Blades

    Blades

    Member
    37
    0
    6
    No, vsync can't be forced for DirectDraw. There are utilities to do this but they only work in XP+.


    At 1.2Ghz, Sonic R starts to chug in certain spots and falls far below 60fps. Yet it still tears. I should pull out the old '98 Pentium/Voodoo3 machine and see how it runs, I can't remember.
     
  12. winterhell

    winterhell

    Member
    1,165
    7
    18
    Why not running it in a Saturn emulator?
    Direct3D is more advanced than DirectDraw and in general produces better visuals, and you can force increase the resolution, antialiasing and other stuff.