VOGONS


First post, by clb

User metadata
Rank Member
Rank
Member

Here is something mildly interesting. If on my Cyrix 486 80 MHz PC I set sound output device to PC Speaker in Pinball Fantasies, I start to get these 100% recurring artifacts on the ball, jagged/sawtooth parts of it are missing. No other visual glitches in the game that I could find. PC Speaker audio sounds good.

These artifacts only occur when the ball is vertically located on certain fixed y-coordinates/scanlines modulo some value on the table.

A slow down video is at https://youtu.be/wk88GgAc_9k

Any theories what might cause this? I was theorizing that the game board is predrawn in VGA memory, and it would only clear and draw the ball at each frame in vblank, but why would it weirdly miss only part of the ball, and only on specific scanlines?

The horizontally repeating patterns of the glitch have to do with Mode X, which organizes every four consecutive pixels on separate VGA memory planes, but I can't quite understand why it can happen that the middle of the ball would vanish.

Does your steel ball get eaten by Jaws if you're playing on PC Speaker?

Attachments

Reply 1 of 7, by clb

User metadata
Rank Member
Rank
Member

Oh, forgot to add, this was tested on ATI Mach64, fairly fast card. Although, I don't think this would be graphics card dependent (except maybe due to framebuffer timing/speed reasons).

Attachments

  • ati_mach64.png
    Filename
    ati_mach64.png
    File size
    178.92 KiB
    Views
    603 views
    File license
    Public domain

Reply 2 of 7, by kixs

User metadata
Rank l33t
Rank
l33t

I used to play Pinball Fantasies with PC speaker sound a lot back then and I never noticed it (I had ISA only 486DX2-80 with no sound card). Might be some configuration problem.

Requests are also possible... /msg kixs

Reply 3 of 7, by clb

User metadata
Rank Member
Rank
Member

Interesting to know. Yeah, might be some odd combo.

I now recall there is a sound quality setting in SETSOUND.EXE. Tried setting Low Quality, but that did not affect the glitch at all (the video above was recorded with PC Speaker setting at MAXIMUM). Also tried toggling PC Turbo button while game is running, that didn't seem to modulate the glitch either. So it is somehow behaving quite speed independent.

Attachments

Reply 4 of 7, by bregolin

User metadata
Rank Member
Rank
Member

Pinball Fantasies is quite picky when it comes to video cards- are you able to test it using a different one?

IBM Aptiva 2162 - P55 166 MMX, 32MB, CS4237B + Wavetable, ATI Mach64 2MB / Win98SE
Custom PIII 750, 64MB, SB AWE64, Voodoo 3 3000 AGP / Win98SE
Sony Vaio z505 SuperSlim - PIII 550, 192MB, YMF744, NeoMagic 256AV+ / Win98SE

Reply 5 of 7, by mkarcher

User metadata
Rank l33t
Rank
l33t

Pinball fantasies synchronizes the timer IRQ to the horizontal sync (maybe not at 31.5kHz, but at 15.7kHz). The complete drawing engine is locked to the frame rate. As you correctly suspect, this game doesn't render each frame completely, but it just draws the ball and the flippers as required. The ball is supposed to be redrawn during vertical blank, but it seems the game engine is not locked correctly to the vertical timing, suspecting the vertical blank when in fact the display is at the center. I wonder whether something goes wrong with counting the scan lines twice, so the end of frame is suspected at scanline 200 instead of 400. Redrawing the ball at scanline 200 (just after the displayed area) is the correct thing to do if Pinball Fantasies set to the "standard" video mode, but the wrong thing if Pinball is set to the "high-res" video mode.

If a different video card doesn't fix the issue, I suspect your copy of Pinball Fantasies might be broken. You don't need a fast video card for Pinball Fantasies: I played it with DAC-on-LPT sound on a 12MHz 286 computer with a mediocre ISA video card without any issue, so I am not surprised that processor or bus performance is not the root cause of the issue.

Reply 6 of 7, by clb

User metadata
Rank Member
Rank
Member

I switched from the PCI ATI Mach64 to ISA Headland HT208 (the card that was topic on this thread: Can your VGA card provide a hardware source for random numbers? ), and the glitches do go away completely. Very odd.

Reply 7 of 7, by Imperious

User metadata
Rank Oldbie
Rank
Oldbie

Looks like blood streaks on the ball. Maybe it considers running that wonderful sountrack and special effects through the PC Speaker as an evil act 😀

Really though I don't have a clue.

Atari 2600, TI994a, Vic20, c64, ZX Spectrum 128, Amstrad CPC464, Atari 65XE, Commodore Plus/4, Amiga 500
PC's from XT 8088, 486, Pentium MMX, K6, Athlon, P3, P4, 775, to current Ryzen 5600x.