VOGONS


First post, by Yopachi

User metadata
Rank Newbie
Rank
Newbie

Hello Vogons!

I've been playing Cybercon III over the years and I was wondering if yall might help identify what is happening. Cybercon III is a first person 3d labyrinth type game from 1992. It seems to update frames by sliding each picture over the last like a stack of cards. There is very obvious tearing when turning left and right. I've tried running this game in every build of Dosbox with every setting I can think of to clean up the visuals but nothing has done the trick. I even booted it up on the MiSTer FPGA AO486 core and it does the same thing. The game was also programmed for the Amiga and Atari ST and those versions don't have the tearing.

Attachments

  • Image1.gif
    Filename
    Image1.gif
    File size
    54.47 KiB
    Views
    741 views
    File license
    Fair use/fair dealing exception

Reply 1 of 5, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Cybercon III updates the screen without regard for vertical retrace, hence the tearing. The game's main loop drives the frequency of screen updates, so system speed (cycles in DOSBox) can influence the appearance of the tearing. You can see the effect of system speed even in the title screen with the rotating robot, where the rotation is slower or faster.

I made a loader program that waits for retrace at the beginning of each screen update, which significantly reduces tearing. However, it is experimental because externally manipulating framerate could cause issues, although I haven't noticed any. Waiting for retrace also makes the game run at a reasonable speed on a faster system, so increasing cycles in DOSBox to 7,000 or so should work okay; but too many cycles seems to make the game overreact to control input.

Extract the attached program in the installation directory and run it to start the game; any command line parameters will be passed along (e.g. "CC3WFR A" will run the game with AdLib sound).

Attachments

  • Filename
    cc3wfr.zip
    File size
    266 Bytes
    Downloads
    49 downloads
    File license
    Fair use/fair dealing exception

Reply 2 of 5, by Yopachi

User metadata
Rank Newbie
Rank
Newbie
ripsaw8080 wrote on 2021-08-14, 17:40:

I made a loader program that waits for retrace at the beginning of each screen update...

Wow Ripsaw! That absolutely helps! I was hoping to get some footage of the game minus the tearing, and now I can! Thankyou very much for your time and talent here 😁

Reply 3 of 5, by Yopachi

User metadata
Rank Newbie
Rank
Newbie

After further testing here is what I've found. "cc3wfr.com" is limited to working at or above 4000 cycles however I'm looking to run the game in the 1500 to 2000 cycle range. I used the Amiga to get an idea of the intended game speed. 4000 cycles feels about twice the speed I'm used to.

Reply 4 of 5, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

That seems a rather low amount of cycles for a game released in 1992... In any case, the game code that updates the screen is doing more than a block move from memory to the screen buffer, and tearing can still happen if cycles are low.

What is needed for your purpose, I think, is to slow the game down while keeping cycles high enough to update the screen quickly. To that end, I modified the previous loader to wait for retrace multiple times before updating the screen, thus the game's main loop is slowed even with higher cycles.

The attached loader takes a first parameter of 1-9 for the number of retrace intervals to wait, with 1 being equivalent to how the previous loader works. For example, to wait 4 times and use AdLib sound you'd type: "CC3WFRX 4 A". Have fun experimenting and finding the number of times to wait and amount of cycles that works best for you!

Attachments

  • Filename
    cc3wfrx.zip
    File size
    336 Bytes
    Downloads
    48 downloads
    File license
    Fair use/fair dealing exception

Reply 5 of 5, by Yopachi

User metadata
Rank Newbie
Rank
Newbie

This is amazing! Here is a gif of the cybersuit getting run over by a cleaning robot at 10 fps w/o tearing!

Attachments

  • fireworks.gif
    Filename
    fireworks.gif
    File size
    859.34 KiB
    Views
    604 views
    File license
    Fair use/fair dealing exception