Page 1 of 1

Rotating vertical games on a CRT with vga scaler - lag?

Posted: Wed Jul 15, 2020 5:19 am
by thorr
Hello, I have a 21" VGA monitor that works great and syncs to most arcade cores without issue (rotated sideways on vertical games). My monitor is quite heavy and I am always afraid I will drop it on something when rotating it. I was able to enable the scaler and set up per core rotation in the INI file so I wouldn't have to rotate my monitor. My question is how much lag does this introduce? I would think it would have to be at least one frame because it would need the whole frame to see how to draw the screen rotated. Are arcade games typically running at 60 FPS, or are they at 30 FPS and one frame of lag won't really matter? Also, with the various scan rates of the various games, won't locking to 60FPS introduce artifacts like tearing trying to lock onto the frame rate of the game? Would it make sense to set up custom video modes for each core depending on the core's refresh rate?

In summary, I would think a CRT would be better than or equal to the best HDMI monitors in terms of lag when using the scaler, and if a normal person wouldn't notice the difference, I would prefer to use the scaler to rotate it than having to rotate my monitor. I just want to make sure it is not going to affect gameplay.

Thanks!

Re: Rotating vertical games on a CRT with vga scaler - lag?

Posted: Thu Jul 16, 2020 4:54 pm
by thorr
Answering my own question, from what I have been able to find using extensive searching, the vga_scaler=1 inherently adds 2 frames of lag which is equal to about 33ms. Also, I noticed that using vsync_adjust=2 works fine for normal 4:3 arcade games, but causes horizontal jitter when rotating vertical arcade games like Donkey Kong. Using vsync_adjust=1 fixes the horizontal jitter on Vertical games. This setting also creates 2 frames of lag from what I gather. What I don't know is if using the vga_scaler=1 and the vsync_adjust=1 causes a total of 2 or 4 frames of lag. Please correct me if I am wrong on any of this. If the total lag is 2 frames, then it might be worth it to play vertical arcade games through the scaler rather than rotating the monitor. The rest of the games can be lag free with native timings. Thanks!

Re: Rotating vertical games on a CRT with vga scaler - lag?

Posted: Fri Jul 17, 2020 7:56 am
by Vic20-Ian
Please post how you are rotating with the scaler.

Ini file settings.

Thanks.

Re: Rotating vertical games on a CRT with vga scaler - lag?

Posted: Sat Jul 18, 2020 10:24 pm
by thorr
Thank you for your help. Here are my regular ini file settings:

direct_video=1 ; 1 - enable core video timing over HDMI, use only with VGA converters.
fb_size=0 ; 0 - automatic, 1 - full size, 2 - 1/2 of resolution, 4 - 1/4 of resolution.
fb_terminal=0 ; 1 - enabled (default), 0 - disabled
forced_scandoubler=1 ; set to 1 to run scandoubler on VGA output always (depends on core).
vga_scaler=0 ; set to 1 to connect VGA to scaler output.
video_mode=1600,112,168,280,1200,3,4,38,161000 ;1600x1200 @60
video_mode_ntsc=1600,112,168,280,1200,3,4,38,161000 ;1600x1200 @60
video_mode_pal=1600,96,168,264,1200,3,4,31,131500 ;1600x1200 @50 ; untested as of now
vscale_mode=0 ; 0 - scale to fit the screen height. I sometimes use the other values below.
; 1 - use integer scale only.
; 2 - use 0.5 steps of scale.
; 3 - use 0.25 steps of scale.
vsync_adjust=2 ; set to 1 to remove horizontal shaking that occurs when set to 2
; Set to 1 for automatic HDMI VSync rate adjust to match original VSync.
; Set to 2 for low latency mode (single buffer). This option makes video butter smooth like on original emulated system.
ypbpr=0 ; set to 1 for YPbPr on VGA output.
composite_sync=1 ; set to 1 for composite sync on HSync signal of VGA output.


[1942]
direct_video=0 ; 1 - enable core video timing over HDMI, use only with VGA converters.
vga_scaler=1 ; set to 1 to connect VGA to scaler output.
vsync_adjust=2 ; set to 1 to remove horizontal shaking that occurs when set to 2

To rotate the screen for 1942 in this case, I select the rotate option in the F12 menu, and select the DIP settings to flip the screen if it is upside down. When setting vsync_adjust to 2, the image shakes horizontally. Setting it to 1 fixes that. I am curious about the lag introduced by the vga_scaler and vsync_adjust settings on a CRT monitor. Thanks!

Re: Rotating vertical games on a CRT with vga scaler - lag?

Posted: Sat Sep 12, 2020 9:32 pm
by Geords
I'm looking to achieve something similar with my 17 inch vga multiscan monitor: use direct video for most cores, only relying on the scaler when I need to rotate it. I also get the jitters with vsync adjust=2. Additionally, I haven't found a way to apply custom filter scanlines, so I'm relying on the scan doubler for those.

I'm not sure if I'm wasting my time but I have been setting up custom video modes for these rotated cores so that I can have integer scaling with the largest possible picture. I calculate a custom 4:3 mode with the same - or slightly larger - number of lines as the vertical output from the scaler. The scaler res shows on the screen when I start the core and I use that height.

This does appear to improve scrolling on things like 1942, but would love to know if there is a simpler way. I found a great page for calculating custom video modes if that is the best option. :-)

https://tomverbeure.github.io/video_timings_calculator

Re: Rotating vertical games on a CRT with vga scaler - lag?

Posted: Mon Apr 29, 2024 12:23 am
by daksneezian
Geords wrote: Sat Sep 12, 2020 9:32 pm

I'm looking to achieve something similar with my 17 inch vga multiscan monitor: use direct video for most cores, only relying on the scaler when I need to rotate it. I also get the jitters with vsync adjust=2. Additionally, I haven't found a way to apply custom filter scanlines, so I'm relying on the scan doubler for those.

I'm not sure if I'm wasting my time but I have been setting up custom video modes for these rotated cores so that I can have integer scaling with the largest possible picture. I calculate a custom 4:3 mode with the same - or slightly larger - number of lines as the vertical output from the scaler. The scaler res shows on the screen when I start the core and I use that height.

This does appear to improve scrolling on things like 1942, but would love to know if there is a simpler way. I found a great page for calculating custom video modes if that is the best option. :-)

https://tomverbeure.github.io/video_timings_calculator

Resurrecting this: would you mind posting one of the Modelines? I’m trying to use a rotated view but all my modelines are crap lol


Re: Rotating vertical games on a CRT with vga scaler - lag?

Posted: Tue Apr 30, 2024 6:01 pm
by retrodroid

I'm using a multi-sync arcade monitor (15.75 kHz, 25 kHz, and 31.5 kHz, +/- 2 or so KHz) connected via VGA on the I/Oboard, and have had some good results with displaying vertical games without strange scrolling artifacts using the following settings in mister.ini:

[arcade_vertical]
video_mode=6
vscale_mode=5
vysnc_adjust=2
vga_scaler=1

Some games require additional customizations:

[digdug*]
vsync_adjust=0

[ponpoko]
vscale_mode=1

[spyhunt]
vscale_mode=1

You may also need to tweak the aspect ratio selected in the OSD to optimize the visual presentation for a particular game.

Some games that won't render perfect integer scaling can be visually improved via the OSD Video processing mod-> Interpolation(Medium) mode:

IMG_7174.JPG
IMG_7174.JPG (4.07 MiB) Viewed 3662 times

Re: Rotating vertical games on a CRT with vga scaler - lag?

Posted: Wed May 01, 2024 11:29 pm
by daksneezian

Thank you!


Re: Rotating vertical games on a CRT with vga scaler - lag?

Posted: Sun May 26, 2024 12:34 am
by Geords
daksneezian wrote: Mon Apr 29, 2024 12:23 am
Geords wrote: Sat Sep 12, 2020 9:32 pm

I'm looking to achieve something similar with my 17 inch vga multiscan monitor: use direct video for most cores, only relying on the scaler when I need to rotate it. I also get the jitters with vsync adjust=2. Additionally, I haven't found a way to apply custom filter scanlines, so I'm relying on the scan doubler for those.

I'm not sure if I'm wasting my time but I have been setting up custom video modes for these rotated cores so that I can have integer scaling with the largest possible picture. I calculate a custom 4:3 mode with the same - or slightly larger - number of lines as the vertical output from the scaler. The scaler res shows on the screen when I start the core and I use that height.

This does appear to improve scrolling on things like 1942, but would love to know if there is a simpler way. I found a great page for calculating custom video modes if that is the best option. :-)

https://tomverbeure.github.io/video_timings_calculator

Resurrecting this: would you mind posting one of the Modelines? I’m trying to use a rotated view but all my modelines are crap lol

Sorry for delay. Not been checking my notifications!

Here are some custom vdeo modes per core that worked on flipped screen modes to get what felt like reasonable integer scaling on a multisync svga monitor:

Code: Select all

[194*]
video_mode=712,24,64,88,534,3,4,15,29500
direct_video=0

[1941]
video_mode=1048,56,104,160,786,3,4,23,66750
direct_video=0
vsync_adjust=1

[alibaba]
video_mode=792,24,80,104,594,3,4,17,37000
direct_video=0

[amidars]
video_mode=704,24,64,88,531,3,10,9,29000
direct_video=0

[anteater]
video_mode=712,24,64,88,534,3,4,15,29500
direct_video=0

[A.ARKANOID]
direct_video=0
video_mode=1200,72,120,192,900,3,4,27,88500

[arkatayt]
direct_video=0
video_mode=1200,72,120,192,900,3,4,27,88500

[arkanoid*]
direct_video=0
video_mode=1200,72,120,192,900,3,4,27,88500

[armorcar]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[atlantis2]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[azurian]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[bagman]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[battroad]
direct_video=0
video_mode=1360,80,136,216,1020,3,4,25,94250

[beastfp]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[bigkong]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[birdiy]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[blkhole]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[bombjack]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[botanic]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[btime]
direct_video=0
video_mode=700,24,64,88,525,3,10,9,28500

[brubber]
direct_video=0
video_mode=700,24,64,88,525,3,10,9,28500

[calipso]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[catacomb]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[centiped]
direct_video=0
video_mode=1416,48,32,80,1062,3,4,24,103250

[Clean Sweep]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[GBA]
direct_video=0
vsync_adjust=2
video_mode=856,40,80,120,642,3,4,19,43750

[colony7]
direct_video=0
video_mode=840,40,80,120,630,3,4,18,42250

[commando]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[A.COMSPC]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[cavenger]
direct_video=0
video_mode=1

[crater]
direct_video=0
video_mode=6

[crbaloon]
direct_video=0
video_mode=720,24,72,96,540,3,4,9,30500

[A.CCLIMB]
direct_video=0
video_mode=1200,72,120,192,900,3,4,27,88500

[ckong*]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[devilfsg]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[digdug*]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[dkong]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[dkongjr]
direct_video=0
video_mode=1200,72,120,192,900,3,4,27,88500

[dorodon]
direct_video=0
video_mode=664,16,64,80,498,3,4,14,25500

[ddonpach]
direct_video=0
;video_mode=1280,80,128,208,960,3,4,29,101250
;video_mode=960,48,96,144,720,3,4,21,55750
video_mode=640,16,96,48,480,11,2,31,25175

[ddragon*]
direct_video=0
vsync_adjust=2
video_mode=1240,72,128,200,930,3,4,28,94750

[dremshpr]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[todruaga]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[eeekkp]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[eggor]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[eyes]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[frogger]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[galaga*]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[galaxian]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[gaplus]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[gaunt*]
direct_video=0
vsync_adjust=2
video_mode=700,24,64,88,525,3,10,9,28500

[vindctr2]
direct_video=0
vsync_adjust=2
video_mode=700,24,64,88,525,3,10,9,28500

[4dwarrio]
direct_video=0
vsync_adjust=2
video_mode=6

[bullfgt]
direct_video=0
vsync_adjust=2
video_mode=6

[blockgal]
direct_video=0
vsync_adjust=2
video_mode=6

[flicky]
direct_video=0
vsync_adjust=2
video_mode=6

[mrviking]
direct_video=0
vsync_adjust=2
video_mode=6

[imsorry]
direct_video=0
vsync_adjust=2
video_mode=6

[myhero]
direct_video=0
vsync_adjust=2
video_mode=6

[pitfall2*]
direct_video=0
vsync_adjust=2
video_mode=6

[raflesia]
direct_video=0
vsync_adjust=2
video_mode=6

[regulus]
direct_video=0
video_mode=6

[spatter]
direct_video=0
vsync_adjust=2
video_mode=6

[seganinj]
direct_video=0
vsync_adjust=2
video_mode=6

[starjack*]
direct_video=0
vsync_adjust=2
video_mode=6

[swat]
direct_video=0
vsync_adjust=2
video_mode=6

[teddybb]
direct_video=0
vsync_adjust=2
video_mode=6

[upndown]
direct_video=0
vsync_adjust=2
video_mode=6

[wmatch]
direct_video=0
vsync_adjust=2
video_mode=6

[wboy]
direct_video=0
vsync_adjust=2
video_mode=6

[tp84*]
direct_video=0
vsync_adjust=2
video_mode=6

[gemini]
direct_video=0
video_mode=6

; Gorf
[A.ASTROCADE]
direct_video=0
video_mode=1232,72,128,200,924,3,4,28,93750

[gorkans]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[gberet]
direct_video=0
vsync_adjust=2
video_mode=1200,72,120,192,900,3,4,27,88500

[gunsmoke]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[horizon]
direct_video=0
vsync_adjust=2
video_mode=1360,80,136,216,1020,3,4,25,94250

[jin]
direct_video=0
video_mode=840,40,80,120,630,3,4,18,42250

[journey]
direct_video=0
video_mode=1392,88,144,232,1044,3,4,32,120500

[jumpshot]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[kick*]
direct_video=0
video_mode=1392,88,144,232,1044,3,4,32,120500

[kidniki]
direct_video=0
vsync_adjust=2
video_mode=1360,80,136,216,1020,3,4,25,94250

[kungfum]
vsync_adjust=2
video_mode=1360,80,136,216,1020,3,4,25,94250
direct_video=0

[ladybug]
direct_video=0
video_mode=664,16,64,80,498,3,4,14,25500

[lwings]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[lizwiz]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[ldrun*]
direct_video=0
video_mode=1360,80,136,216,1020,3,4,25,94250

[losttomb]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[luctoday]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[mappy]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[mario]
direct_video=0
vertical_sync=2
video_mode=1200,72,120,192,900,3,4,27,88500

[mars]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[mercs]
direct_video=0
video_mode=1048,56,104,160,786,3,4,23,66750

[mimonscr]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[minefld]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[mooncrgx]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[moonwar]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[motos]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[A.GALAXN]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[mrtnt]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[mspacman]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[nrallyx]
direct_video=0
video_mode=6
vsync_adjust=2

[omegab]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[orbitron]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[pacman]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[clubpacm]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[pacplus]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[A.PACMAN]
direct_video=0
video_mode=792,24,80,104,594,3,4,17,37000

[pengo]
direct_video=0
video_mode=5

[phoenix]
direct_video=0
video_mode=1360,80,136,216,1020,3,4,25,94250

[pickin]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[pisces]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[playball]
direct_video=0
video_mode=816,32,80,112,612,3,4,17,39500

[pleiad*]
direct_video=0
video_mode=1352,80,144,224,1014,3,4,31,113500

[A.PONG]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500
vsync_adjust=2

[pooyan]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[powerdrv]
vsync_adjust=2

[puckman]
direct_video=0
video_mode=5

[rallyx]
direct_video=0
video_mode=6
vsync_adjust=2

[rescue]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[robby]
direct_video=0
vsync_adjust=2
video_mode=6

[rushatck]
direct_video=0
vsync_adjust=2
video_mode=6

[shollow]
direct_video=0

[scramble]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[sinistar]
direct_video=0
video_mode=816,32,80,112,612,3,4,17,39500

[spacezap]
direct_video=0
video_mode=6
vsync_adjust=2

[spdcoin]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[spelunk*]
direct_video=0
vsync_adjust=2
video_mode=1360,80,136,216,1020,3,4,25,94250

[spyhunt]
direct_video=0
video_mode=1360,80,136,216,1020,3,4,25,94250

[sbagman]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[sbrkout]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[scobra]
direct_video=0
video_mode=704,24,64,88,531,3,10,9,29000

[tokiob]
direct_video=0
video_mode=712,24,64,88,534,3,4,15,29500

[travrusa]
direct_video=0
video_mode=3

[wow]
direct_video=0
vsync_adjust=2
video_mode=6