How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by sofakng »

Does anybody know if most DOS games ran at 70 Hz refresh rate? If so, how does ao486/MiSTer handle this?
User avatar
SuperBabyHix
Posts: 152
Joined: Sun May 24, 2020 8:26 pm
Has thanked: 45 times
Been thanked: 36 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by SuperBabyHix »

In the ao486 settings there is a refresh rate setting. Variable will make the Mister output the proper original refresh rate (so 70hz for mode 13h and the like). The other setting forces everything to 60hz for compatibility with monitors that can't handle 70hz.
sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by sofakng »

Are you talking about the VSync setting? (it switches between 60Hz and 'Variable')

I'm still trying to setup the core myself or else I'd test it but using 60Hz with a 70Hz game will introduce a bit of stutter, right?

Also, does 'variable' output the 70 Hz over HDMI?
User avatar
SuperBabyHix
Posts: 152
Joined: Sun May 24, 2020 8:26 pm
Has thanked: 45 times
Been thanked: 36 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by SuperBabyHix »

Yes, variable means just that, the output's refresh rate is variable and will change depending on the game. Yes, it will output 70hz over HDMI. Games that have smooth scrolling will not stutter with the variable setting (given that your monitor or TV can handle the signal without dropping frames.

edit: I should also clarify that 70hz games will indeed stutter with the 60hz setting.
ash2fpga
Posts: 237
Joined: Tue May 26, 2020 6:20 pm
Has thanked: 62 times
Been thanked: 28 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by ash2fpga »

Would refresh rate tools like VBEHz or UniRefresh apply [be able to be used] here? I remember running it late DOS-era for programs that flickered pretty badly otherwise (60Hz?).
User avatar
SuperBabyHix
Posts: 152
Joined: Sun May 24, 2020 8:26 pm
Has thanked: 45 times
Been thanked: 36 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by SuperBabyHix »

I don't believe so since those are for VESA screen modes. The ao486 core only has basic VGA support. To my knowledge it does not support any VESA modes.
User avatar
uigiflip
Posts: 27
Joined: Sun May 24, 2020 7:28 pm
Been thanked: 2 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by uigiflip »

this has since been updated for super vga
Ultimate MiSTer Blissbox pro version, Replay Vidor version, Replay 2, Real Amiga's 500+, 500+ with pi storm, a1200 in cd32 special edition case. https://www.twitch.tv/uigiflip
sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by sofakng »

uigiflip wrote: Sun Aug 09, 2020 7:21 am this has since been updated for super vga
Sorry, I'm not sure what you mean?

Are you talking about VBEHz or UniRefresh? Do they actually force 60 Hz for the games so they don't have judder? ...or does that cause the games to run differently, etc?

I'm still confused on the whole 70 Hz (mode 13h?) thing, except for knowing that converting 70 Hz to 60 Hz causes judder/sutter?
AntialiasedPixel
Posts: 44
Joined: Mon May 25, 2020 2:17 am
Been thanked: 2 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by AntialiasedPixel »

sofakng wrote: Tue Aug 11, 2020 2:14 am
uigiflip wrote: Sun Aug 09, 2020 7:21 am this has since been updated for super vga
Sorry, I'm not sure what you mean?

Are you talking about VBEHz or UniRefresh? Do they actually force 60 Hz for the games so they don't have judder? ...or does that cause the games to run differently, etc?

I'm still confused on the whole 70 Hz (mode 13h?) thing, except for knowing that converting 70 Hz to 60 Hz causes judder/stutter?
He's talking about the beta version of of ao486 core that are being tested. The video has been updated to support supervga resolution and high color, as well as a bunch of timing updates, so it probably performs pretty differently that the current release version of the core.

I honestly don't know the technical details enough to say for sure, but most dos games didn't even draw 60 frames per second, so would it really matter if mister is refreshing the screen at 60 or 70hz? I guess maybe there might be some occasional tearing where the screen refreshes while a frame is redrawing(not sure if that was a thing with how older vga was buffered/drawn), but there aren't really many dos games require that level of precision, It's nice like we are playing professional Counter Strike at 4k 120fps. I played Doom and a number of other games on the beta core and never noticed much difference playing side by side with a 486 laptop hooked to a vga crt.

But, if someone with technical details know a reason the core could be improved, I'm all for adding accuracy.
User avatar
SuperBabyHix
Posts: 152
Joined: Sun May 24, 2020 8:26 pm
Has thanked: 45 times
Been thanked: 36 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by SuperBabyHix »

sofakng wrote: Tue Aug 11, 2020 2:14 am
uigiflip wrote: Sun Aug 09, 2020 7:21 am this has since been updated for super vga
Sorry, I'm not sure what you mean?

Are you talking about VBEHz or UniRefresh? Do they actually force 60 Hz for the games so they don't have judder? ...or does that cause the games to run differently, etc?

I'm still confused on the whole 70 Hz (mode 13h?) thing, except for knowing that converting 70 Hz to 60 Hz causes judder/sutter?
Those utilities are only for VESA modes, mode 13h is a VGA mode. They will not allow you to change the refresh rate for VGA modes. Even if you found a program that did let you change the refresh rate of VGA modes it would either introduce judder, cause screen tearing, or change the speed of the games. I have used a utility once that did change VGA modes into 640x480 at 60hz. This was for use with a TV output card to make the signal more compatible with NTSC televisions. It was very incompatible with games, and the ones it was compatible with were squished into the wrong aspect ratio and did exhibit judder. The force 60hz option that the Mister already has is probably the best you can get when it comes to playing VGA games at 60hz.
sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by sofakng »

Thanks for the reply! I was around in the 1980s and my first PC was a 386 but when you had a CRT you didn't have to worry/think about any of this.

What is the difference between VGA, SVGA, and VESA?

If I understand correctly, they are all different video standards. VGA typically allows up to 640x480 and SVGA is up to 1024x760 (768). VESA is the same as SVGA?

Mode 13h was a VGA mode for 320x200 (256 colors). I don't see any information where 70 Hz was standard/required though?
User avatar
SuperBabyHix
Posts: 152
Joined: Sun May 24, 2020 8:26 pm
Has thanked: 45 times
Been thanked: 36 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by SuperBabyHix »

sofakng wrote: Tue Aug 11, 2020 5:13 pm Thanks for the reply! I was around in the 1980s and my first PC was a 386 but when you had a CRT you didn't have to worry/think about any of this.

What is the difference between VGA, SVGA, and VESA?

If I understand correctly, they are all different video standards. VGA typically allows up to 640x480 and SVGA is up to 1024x760 (768). VESA is the same as SVGA?

Mode 13h was a VGA mode for 320x200 (256 colors). I don't see any information where 70 Hz was standard/required though?
Without going into too much detail, VGA tops out at 640x480 16 colors at 60Hz. VESA modes, or VBE (Vesa Bios Extension) modes are graphics modes beyond VGA. Back then SVGA was just a generic term thrown interchangeably with VESA. These days people tend to associate it with 800x600 resolution though, XGA as 1024x768, and so on.

The reason mode 13h (and any 200/400 line video modes) have to be 70hz is because VGA monitors would not typically sync with video signals too far below 31khz horizontal refresh. A 400 line signal at 60hz is only about 25khz, which is typically going to be too low to sync.
sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by sofakng »

Great information. Thanks so much!

I'm wondering if mode 13h was popular because it allowed 256 colors (8bpp) and the others only allowed 16 (4bpp)? (source: Wikipedia)

There also appears to be a crazy "Mode X" for 320x240x8 for a bit higher resolution but lower refresh rate (60 Hz).

Very interesting stuff...
User avatar
Sorgelig
Site Admin
Posts: 890
Joined: Thu May 21, 2020 9:49 pm
Has thanked: 2 times
Been thanked: 214 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by Sorgelig »

With 60Hz mode in OSD, the VGA adapter naturally outputs 60Hz video (with ~26KHz HSync). You don't need any DOS tool for that. If game is syncing to VSync produced by VGA card then scroll will be smooth. But if game syncs to other timer keeping in mind a standard fixed 70Hz, then it will stutter. So it depends only on game.
sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by sofakng »

Thanks so much for the explanation! Does vsync_adjust also affect this?

I was told that Pinball Dreams is a perfect game to test because it supposedly uses mode 13h and 70 Hz. It also scrolls the pinball tables so you can see immediately how smooth the scrolling is.

I've also just downloaded the new ao486 core (released a few minutes ago) and here is what I found:

vsync_adjust = 2 (lowest latency)

Monitor is LG 27UK650 (4K with FreeSync and HDR10).

1) ao486 VSYNC set to 60 Hz worked fine with no judder. video_info showed the game was generating/outputting 60 Hz.
2) ao486 VSYNC to VARIABLE had judder. video_info showed the game was generating/outputting 70 Hz and the monitor accepted it (confirmed via monitor OSD as well), but apparently the monitor converts to 60 Hz internally causing the judder.

These sound like expected results but I thought I'd share. However, I was expecting all mode 13 games to have judder (ie. syncing to different timer other than VGA card), so I am extremely happy to see it was outputting correct 60 Hz without any judder!

It sounds like it will vary based on the game but I'm still very happy to see these results!
User avatar
SuperBabyHix
Posts: 152
Joined: Sun May 24, 2020 8:26 pm
Has thanked: 45 times
Been thanked: 36 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by SuperBabyHix »

@sofakng Were you running Pinball Dreams in the high or low resolution mode? I think both are 70Hz, but it might be worth checking either way. Epic Pinball is a good game to use to check 60Hz scrolling. The menus are 320x200@70Hz, but the gameplay is 320x240@60hz.
sofakng
Posts: 138
Joined: Fri Jun 19, 2020 12:52 am
Been thanked: 23 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by sofakng »

I'm guessing low resolution? (320x200)

I'm not sure how to activate high-resolution mode? I've done a search that says pressing 'F10' but it didn't work.

I'll try to find a copy of Epic Pinball as well and give it a test. I wish it was easier to find (ie. purchase) original floppy disk images of these older games. I know you can buy them on Good Old Games (and other sites) but they are already 'installed' and have DOSBox included.

It would great to have the original floppy images you can install from :)
User avatar
SuperBabyHix
Posts: 152
Joined: Sun May 24, 2020 8:26 pm
Has thanked: 45 times
Been thanked: 36 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by SuperBabyHix »

I think you change it in the options menu which I believe is F5 from the main menu.
User avatar
bootsector
Posts: 170
Joined: Sun May 24, 2020 6:58 pm
Has thanked: 4 times
Been thanked: 30 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by bootsector »

I can only get a black screen when starting a new table on Pinball Dreams. Did you guys do anything to solve this? I'm using HDMI.
throAU
Posts: 181
Joined: Fri Sep 11, 2020 1:06 am
Has thanked: 233 times
Been thanked: 27 times

Re: How does ao486 handle 70 Hz DOS games? (i.e. almost all DOS games?)

Unread post by throAU »

sofakng wrote: Tue Aug 11, 2020 7:29 pm Great information. Thanks so much!

I'm wondering if mode 13h was popular because it allowed 256 colors (8bpp) and the others only allowed 16 (4bpp)? (source: Wikipedia)

There also appears to be a crazy "Mode X" for 320x240x8 for a bit higher resolution but lower refresh rate (60 Hz).

Very interesting stuff...

Mode 13h was popular for very many reasons, as someone who did a little dabbling with it, it was an extremely easy entry to graphics programming.

To get started, you basically

(in x86 assembly from memory; its been like 30 years)

Code: Select all

mv AX, 0x0013
int 10h
That puts you in mode 13h

Each pixel is a byte in a 64000 byte array starting at $A000:0000

No bit-planes to worry about (like the other modes), no complicated algorithms, just plain 320*Y+X as your memory offset to hit with a byte to change a pixel. And yes. 256 colours!

As far as initialising a graphics mode goes, it does not get any easier than that. As far as calculating pixel locations, it doesn't get any easier than that.


Tweaked mode 13h (modeX, etc.) are a little more complicated, but not a massive step once you get your head around mode 13h and start playing. Mode 13h simply gave you immediate reward and access to the graphics via simple code to experiment with. Mode X forced you back into bit-planes for memory access but the trade off was 4 video pages and hardware page flipping, and if you're clever up to 4x the fill rate (you control access to 4 pixels at once via a register IIRC, and can copy/fill 4 pixels at once if you're clever about it). Mode X also gives you "square" pixels and slightly better res (320x240) but the multiple video pages and hardware page flipping was huge.


Also, the resolution was low enough for crappy CPUs of the day to be fast enough to drive it in software via simple memory copies, etc. No blitters or anything to learn how to program. Brain-dead simple :)
Post Reply