Jump to content
IGNORED

Games with 50/60Hz issues


Wrathchild

Recommended Posts

Hi,

 

In playing AR: The Dungeon's intro under emulation, my ears

don't like the tune played at 50Hz and find it much better at 60Hz.

 

Whether or not patching it to auto-detect the machine's rate and

playback accordingly would actually fix this is possible, it got me

thinking that a list could be compiled of those titles that people

know have issues and maybe during 2006 the programmers

amongst us can hack some of them to work correctly.

 

I guess games with timers, e.g. counting down, could suffer

this problem and playing it in one country either puts one

user at an advantage, e.g. more time than was originally

intended, or at a dis-advantage, e.g. the game runs out

sooner than it normally would.

 

I would be good to also confirm the games that check this

correctly and adapt accordingly.

 

Regards,

Mark

Link to comment
Share on other sites

Most games use timers based on the VBI. Although you can get near identical timing using POKEY, I feel it to be a bit of a waste of time, plus you lose the use of 1 sound voice.

 

Of course, well written software could use fractional increments for sprite movement, and other techniques to keep music the same speed, but in my experience, I haven't really come across any such software.

 

Machines like the ST and C-64 had the advantage of 100Hz timer interrupts which were built in to the OS/HW, but games tend to ignore them since they're not based on the VBlank interval.

Link to comment
Share on other sites

One of the big problems with the older computers is that moveable objects are usually 2D sprites with a fairly defined pattern, as compared to more modern games with anti-aliased 3D textured objects.

 

Once you start moving objects at fractional rates (which you would have to do to get the same speed with PAL/NTSC) you can really see some jerkiness coming in.

 

I found that I could get the best sprite movement using the following method for velocity control. Imagine the sprite as having a byte as follows for velocity:

 

76543210
DIIIFFFF

D is a direction flag (1=left, 0=right)

III is the increment component. The number of pixels per frame to move the object to the left or right (as flagged by D).

FFFF is a fractional component. It gets added to a 4-bit counter. If the counter overflows, then for that frame only, add 1 to the increment component.

 

With variations of that technique you can have multiple objects with unique speeds, and not have to use too much processing overhead.

Edited by Rybags
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...