PC VGA CRT MiSTer with I/O Board Scaling Issues

Discussion of official MiSTer Project addons. (https://github.com/MiSTer-devel/Hardware_MiSTer)


meanage
Posts: 10
Joined: Tue Dec 15, 2020 5:15 am

PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by meanage »

Hello,

I'm new here and I appreciate all the great advice that this community provides, thanks in advance for helping me out.

I am trying to play console cores like SNES, genesis, and TG16 on a Hitachi 751 CRT/VGA. I am getting an image, but it is not filling the screen and it is off screen to the left. This is the case on the main Mister screen as well as in the cores/games. I am trying to get my image to fill the screen. Can anyone let me know what my settings need to be?

Hitachi 751:
Native Resolution
1600 x 1200 at 75 Hz
Factory Preset Resolution Modes
640 x 480 / 120 Hz
800 x 600 / 120 Hz
1024 x 768 / 115 Hz
1152 x 870 / 100 Hz
1280 x 1024 / 85 Hz
1600 x 1200 / 75 Hz

I have these settings in the ini:
forced_scandoubler=1
vga_scaler=1

I am not sure what I am supposed to do from here?

I know there are video recipes? I found this, but do not know what it means:
video_mode=1600,64,192,304,1200,1,3,46,162000

Any other ini settings I need to account for?

Thanks much! :D
User avatar
morf77
Posts: 63
Joined: Fri Aug 28, 2020 1:42 pm
Has thanked: 12 times
Been thanked: 24 times

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by morf77 »

Hi,

I don't know this monitor but it looks pretty similar to my Sony Multiscan. Here's the video_mode I'm using for these cores:

vga_scaler=1
forced_scandoubler=1
video_mode=512,16,48,32,448,0,3,49,18240

As covered here: viewtopic.php?f=33&t=1557

If it works you may want to run the SNES or NES 240p utility to center and resize using the display's OSD. Pls let us know if it worked for you and if you're getting those sweet scanlines.
ash2fpga
Posts: 237
Joined: Tue May 26, 2020 6:20 pm
Has thanked: 62 times
Been thanked: 28 times

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by ash2fpga »

Timing info from cm751__superscan_751__19_crt_display.pdf, p.8. Video modes in mister use pixels/lines instead of us, however.
Microprocessor-based preset functions can store 26 sets of geometry settings including the standard settings.

The following industrial standard settings have been preprogrammed by the factory.

Code: Select all

No.    Video Mode Name            Horizontal    Video Model    CM751ET    CM753ET
       (with Resolution and       Frequency                    CM752ET
       Vertical Frequency)    
  1    VGA 640 X 480 - 60 Hz       31.47 kHz    VGA            x          x
  2    VESA 800 X 600 - 85 Hz      53.67 kHz    VESA           x          x
  3    VESA1024 X 768 - 85 Hz      68.68 kHz    VESA           x          x
  4    VESA1280 X 1024 - 85 Hz     91.15 kHz    VESA           x          x
  5    VESA1600 X 1200 - 75 Hz     93.75 kHz    VESA           x          -
  6    VESA1600 X 1200 - 85 Hz    106.25 kHz    VESA           -          x
NOTE :

Input signals with approximately the same frequencies may be regarded as the same signal.

The following horizontal timing conditions are recommended (at sync. H, V separate or HN composite).

for 31 kHz - 52 kHz horizontal frequency:
Horizontal front porch should be more than 0.1 us.
Horizontal sync. width should be within 1.0 - 3.8 us.
Horizontal back porch should be more than 1.2 us.
Horizontal blanking width should be more than 3.5 us.

for 52 kHz - 107 kHz horizontal frequency:
Horizontal front porch should be more than 0.1 us.
Horizontal sync. width should be within 0.8 - 3.0 us.
Horizontal back porch should be more than 1.1 us.
Horizontal blanking width should be more than 2.4 us.

The following vertical timing conditions are recommended.
Vertical front porch should be more than 9 us.
Vertical sync. width should be less than 100 us.
Vertical back porch should be more than 400 us.
Vertical blanking width should be more than 450 us.

In case the front or back porch is extremely long, or the data display time is extremely short, it may not be able to set the expected size and position.

Standard settings are subject to change without notice.

This monitor is tested and conformed compliance with ZH1/618 and EN29241-3 (lSO9241-3) ergonomics requirement on the following video modes :
"VESA 1024 X 768 - 85 Hz"
"VESA 1280 X 1024 - 85 Hz"
meanage
Posts: 10
Joined: Tue Dec 15, 2020 5:15 am

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by meanage »

Thanks much for the responses! I had not seen that post, and I will give it a try today and post back my findings. Also, appreciate the manual find!

I also have a Sony FV310, and have it working great with VGA to component. That said, I am using that CRT more for original hardware. I have the Dreamcast hooked up to the Hitachi with the Honzo box, and is looking really great. Originally, I was planning to use the Hitachi for the Amiga and ao486 cores, but my beginner-ness is keeping me from that at the present. Also, in the case of the ao486, seems like there are some issues with VGA?
meanage
Posts: 10
Joined: Tue Dec 15, 2020 5:15 am

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by meanage »

Oof! Not much luck today with experiments. I am guessing I am doing something wrong. I am not getting any change when I change the video mode.

Specifically, what is happening is that when I turn on the mister or load a core, the screen is coming up as a rectangle with about an inch of black on the top, bottom, and right. Then, the image is about a half inch off screen to the left.

I changed the video mode in the Advanced page of the ini script from the scripts menu. When I reboot, I see that the video mode has changed in the basic menu. I did not change the NTSC or PAL settings. Any ideas on what I am missing?

Thanks!
User avatar
morf77
Posts: 63
Joined: Fri Aug 28, 2020 1:42 pm
Has thanked: 12 times
Been thanked: 24 times

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by morf77 »

Why not use the On Screen Display menu to center and adjust?
meanage
Posts: 10
Joined: Tue Dec 15, 2020 5:15 am

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by meanage »

Thanks, yes that is good advice. That said, I share the vga with a Dreamcast which displays perfectly. If I mess with all the settings, the Dreamcast (or future additions) would be off. My hope is to get something full screen with the Mister settings. Is that not possible in my case since it is not a default video mode?
ash2fpga
Posts: 237
Joined: Tue May 26, 2020 6:20 pm
Has thanked: 62 times
Been thanked: 28 times

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by ash2fpga »

I would be a bit surprised if the position was (scaler) video mode specific. For example, some (all?) of Jotego's cores have h-pos/v-pos adjustments for analog video output. That leads me to think any position adjustments for analog video might have to be in the core itself.
meanage
Posts: 10
Joined: Tue Dec 15, 2020 5:15 am

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by meanage »

Interesting, I will check that out.

I think this must be a user error issue though, as the menu when you boot up is in the same state. Small rectangle image, off to the side. I must be entering in wrong/bad information somewhere. If you could, could someone tell me if my process seems correct?

I have a 1600x1200 monitor
Going from Mister I/O board through VGA into monitor
On the Mister I am accessing the ini through scripts.
I am using these settings:
forced_scandoubler=1
vga_scaler=1
video_mode=1600,64,192,304,1200,1,3,46,162000

Would that not get me a fullscreen image at least on the Mister menu? Maybe I have a random ini setting wrong?

Thanks much!
meanage
Posts: 10
Joined: Tue Dec 15, 2020 5:15 am

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by meanage »

Checking back in here. I did have luck with 640x480 @60hz which is video mode 6. This fills up the screen on the Mister menu and on the SNES core it fills up horizontally and leaves about an inch on top and bottom. I can achieve scanlines through the doubler.

Still, not super good looking. Certainly not the poor-man's PVM that I have heard tales told about. I am sure it is my error and general in experience. Any advice is appreciated.

Maybe best to stick with component, as that looks great on my Sony FV310. Still, I hope to someday get Amiga and ao486 going using a VGA...
FoxbatStargazer
Top Contributor
Posts: 1019
Joined: Thu Dec 10, 2020 5:44 pm
Has thanked: 315 times
Been thanked: 238 times

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by FoxbatStargazer »

Bit of a newbie myself but I think forced_scandoubler and vga_scaler don't quite work together like how you'd want them to.

Forced_scandoubler is mainly for taking 240pish analog output and changing it to 480pish. It simply doubles the vertical resolution with doubled pixels, pushing 15khz signals made for CRTs up to 30khz for VGA monitors. Used by itself (i.e. with vga_scaler=0) it still supports all the arbitrary resolutions any core wants to put out, and most of them seem to be compatible with most CRT VGA monitors.

VGA_scaler takes the HDMI scaler and also applies to the VGA out on the I/O board. Meaning its going to start with whatever resolution the analog output is in and then apply your scaler transformations. If you want to go this route you generally want forced_scandoubler=0, because the scaler will have more flexibility scaling up a 240pish image than a 480pish one.

If you want to approximate PVMs with a VGA CRT monitor I suggest turning off vga_scaler and forgetting about the video modes, just forced_scandoubler=1 should let you run most things. This will give you a razor sharp image that adapts to all the weird resolutions while cleanly stretching or crunching them to a 4:3 aspect ratio. You can then use scandoublerfx in the options of each core to simulate scanlines on the added vertical resolution. Its not quite a PVM but its a damn bit closer than anything you can do on an LCD and certainly looks way better than composite into an averge consumer CRT TV.

A lot of cores do give you a substantial border this way, although that is a desirable thing for some systems. If you really want to eliminate that border without messing with your monitor settings, then you probably have to go the vga_scaler way with v_scale=0 (max scaling) and select a video filter of sharp interpolated in the options of each core. Although you might get better results by making a custom video mode for a core that matches their resolution, for example the ao486 core seems to force vga_scaler on so I use either 640x400 or 1280x800 modes to get 1:1 scaling on 320x200 DOS games (with aspect ratio set to wide).
ash2fpga
Posts: 237
Joined: Tue May 26, 2020 6:20 pm
Has thanked: 62 times
Been thanked: 28 times

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by ash2fpga »

meanage wrote: Wed Dec 16, 2020 9:27 pm video_mode=1600,64,192,304,1200,1,3,46,162000
That matches the tinyvga.com listing.

It might help to see the rest of your mister.ini.
meanage wrote: Wed Dec 16, 2020 10:11 pm Still, not super good looking. Certainly not the poor-man's PVM that I have heard tales told about. I am sure it is my error and general in experience. Any advice is appreciated.
When running at 31khz, I think you have to use a scanline filter to get more of the 15khz PVM look.
meanage
Posts: 10
Joined: Tue Dec 15, 2020 5:15 am

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by meanage »

Great! I really appreciate these replies and well thought out methods. I am going to try some stuff, then I will report back with my ini and some pics. Thanks much!
meanage
Posts: 10
Joined: Tue Dec 15, 2020 5:15 am

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by meanage »

I attached some images below to show what my outcome is. This is with only the scandoubler selected to 1. Not really sure where to go from here? Thanks much for all the replies and help!
IMG_4584.JPG
IMG_4584.JPG (112.68 KiB) Viewed 7524 times
IMG_4595.JPG
IMG_4595.JPG (506.67 KiB) Viewed 7524 times
IMG_4586.JPG
IMG_4586.JPG (170.48 KiB) Viewed 7524 times
IMG_4582.JPG
IMG_4582.JPG (184.87 KiB) Viewed 7524 times
[MiSTer]
key_menu_as_rgui=0 ; set to 1 to make the MENU key map to RGUI in Minimig (e.g. for Right Amiga)
forced_scandoubler=1 ; set to 1 to run scandoubler on VGA output always (depends on core).
ypbpr=0 ; set to 1 for YPbPr on VGA output.
composite_sync=0 ; set to 1 for composite sync on HSync signal of VGA output.
vga_scaler=0 ; set to 1 to connect VGA to scaler output.
hdmi_audio_96k=0 ; set to 1 for 96khz/16bit HDMI audio (48khz/16bit otherwise)
keyrah_mode=0x18d80002 ; VIDPID of keyrah for special code translation (0x23418037 for Arduino Micro)
vscale_mode=0 ; 0 - scale to fit the screen height.
; 1 - use integer scale only.
; 2 - use 0.5 steps of scale.
; 3 - use 0.25 steps of scale.
vscale_border=0 ; set vertical border for TVs cutting the upper/bottom parts of screen (1-399)
;bootscreen=0 ; uncomment to disable boot screen of some cores like Minimig.
;mouse_throttle=10 ; 1-100 mouse speed divider. Useful for very sensitive mice
rbf_hide_datecode=0 ; 1 - hides datecodes from rbf file names. Press F2 for quick temporary toggle
menu_pal=0 ; 1 - PAL mode for menu core
hdmi_limited=0 ; 1 - use limited (16..235) color range over HDMI
; 2 - use limited (16..255) color range over HDMI, for VGA converters.
direct_video=0 ; 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=1 ; 1 - enabled (default), 0 - disabled
osd_timeout=30 ; 5-3600 timeout (in seconds) for OSD to disappear in Menu core. 30 seconds if not set.
; Background picture will get darker after double timeout
osd_rotate=0 ; Display OSD menu rotated, 0 - no rotation, 1 - rotate right (+90°), 2 - rotate left (-90°)

; 1 - enables the recent file loaded/mounted.
; WARNING: This option will enable write to SD card on every load/mount which may wear the SD card after many writes to the same place
; There is also higher chance to corrupt the File System if MiSTer will be reset or powered off while writing.
recents=0

; lastcore - Autoboot the last loaded core (corename autosaved in CONFIG/lastcore.dat) first found on the SD/USB
; lastexactcore - Autoboot the last loaded exact core (corename_yyyymmdd.rbf autosaved in CONFIG/lastcore.dat) first found on the SD/USB
; corename - Autoboot first corename_*.rbf found on the SD/USB
; corename_yyyymmdd.rbf - Autoboot first corename_yyyymmdd.rbf found on the SD/USB
;bootcore=lastcore ; uncomment to autoboot a core, as the last loaded core.
bootcore_timeout=10 ; 10-30 timeout before autoboot, comment for autoboot without timeout.

; Option to load the custom font. Format is plain bitmap 8x8.
; Supported sizes of font:
; 768 bytes - chars 32-127 (only alpha + numeric)
; 1024 bytes - chars 0-127
; 1136 bytes - chars 0-141
; up to 2048 - only chars 0-141 will be used.
; if first 32 chars are empty (for sizes 1024 bytes and more) then they are skipped.
font=font/Arcade_Black_Tiger_(Capcom).pf

; USER button emulation by keybaord. Usually it's reset button.
; 0 - lctrl+lalt+ralt (lctrl+lgui+rgui on keyrah)
; 1 - lctrl+lgui+rgui
; 2 - lctrl+lalt+del
; 3 - same as 0 (lctrl+lalt+ralt on keyrah)
reset_combo=0

dvi_mode=0 ; set to 1 for DVI mode. Audio won't be transmitted through HDMI in DVI mode.

; 0 - 1280x720@60
; 1 - 1024x768@60
; 2 - 720x480@60
; 3 - 720x576@50
; 4 - 1280x1024@60
; 5 - 800x600@60
; 6 - 640x480@60
; 7 - 1280x720@50
; 8 - 1920x1080@60
; 9 - 1920x1080@50
;10 - 1366x768@60
;11 - 1024x600@60
;12 - 1920x1440@60
;13 - 2048x1536@60
;
; custom mode: hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz
;video_mode=1600,64,192,304,1200,1,3,46,162000
;video_mode=6

; set to 1-10 (seconds) to display video info on startup/change
video_info=10

; 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.
; Adjusting is done by changing pixel clock. Not every display supports variable pixel clock.
; For proper adjusting and to reduce possible out of range pixel clock, use 60Hz HDMI video
; modes as a base even for 50Hz systems.
vsync_adjust=0

; If you monitor doesn't support either very low (NTSC monitors may not support PAL) or
; very high (PAL monitors may not support NTSC) then you can set refresh_min and/or refresh_max
; parameters, so vsync_adjust won't be applied for refreshes outside specified.
; These parameters are valid only when vsync_adjust is non-zero.
refresh_min=0
refresh_max=0

; These parameters have the same format as video_mode.
; You need to supply both PAL and NTSC modes if you want vsync_adjust to switch between
; predefined modes as a base. This will reduce the range of pixel clock.
;video_mode_ntsc=0
;video_mode_pal=0

; 1-10 (seconds) to display controller's button map upon first time key press
; 0 - disable
controller_info=6

; JammaSD/J-PAC/I-PAC keys to joysticks translation
; You have to provide correct VID and PID of your input device
; Examples: Legacy J-PAC with Mini-USB or USB capable I-PAC with PS/2 connectors VID=0xD209/PID=0x0301
; USB Capable J-PAC with only PS/2 connectors VID=0x04B4/PID=0x0101
; JammaSD: VID=0x04D8/PID=0xF3AD
jamma_vid=0x04D8
jamma_pid=0xF3AD

; Disable merging input devices. Use if only player 1 works.
; Leave no_merge_pid empty to apply this to all devices with the same VID.
;no_merge_vid=0x045E
;no_merge_pid=0x028E

; Speeds in sniper/non-sniper modes of mouse emulation by joystick
; 0 - (default) - faster move in non-sniper mode, slower move in sniper mode.
; 1 - movement speeds are swapped.
sniper_mode=0

; Uncomment following option if you don't want to see a second line for long file names in listing.
;browse_expand=0

; 0 - disable MiSTer logo in Menu core
logo=1

; Custom shared folder for core supporting this feature (currently minimig and ao486 only)
; Can be relative to core's home dir or absolute path.
; Path must exist before core start to use it, or it will fail.
; Make sure USB device is mounted before use shared folder on USB!
shared_folder=
ash2fpga
Posts: 237
Joined: Tue May 26, 2020 6:20 pm
Has thanked: 62 times
Been thanked: 28 times

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by ash2fpga »

Caveat: My mister is a bit out of date and does not have the forced vga scaler change on most/all cores.

I hooked up VGA on an LCD to see what video mode was being reported with vanilla mister.ini and forced_scandoubler=1. With that setting, the main mister menu, and all the console cores I tried, used 640x480@60. Computer cores were more varied, such as ao486 using 640x400@60. The video_mode setting appeared to be ignored. I then tried with vga_scaler=1, and video_mode took effect. You may want to give that a try.
FoxbatStargazer
Top Contributor
Posts: 1019
Joined: Thu Dec 10, 2020 5:44 pm
Has thanked: 315 times
Been thanked: 238 times

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by FoxbatStargazer »

It looks like you got analog output working with scandoubler bypassing the scaler. This should mean no more scaling artifacts. So the question is what is the problem now?

If its the borders or centering that are bugging you, you have to either adjust your monitor settings, or else consign yourself to the VGA scaler and attending distortions, because the analog output has virtually no controls.

Best I have found with the scaler is you can do 1:1 pixel mapping if you set your video output to a resolution that is a multiple of the system's typical output, and set aspect ratio to wide. Your CRT will squish the resulting image to something close to 4:3. Again I gave the example of 640x400 for ao486 to play 320x200 DOS games, this is practically a 16:10 resolution in HDMI terms but will squish to 4:3 correctly on CRT. That all assumes you are dealing with a semi-standard resolution for the core and not many possible resolutions though.
meanage
Posts: 10
Joined: Tue Dec 15, 2020 5:15 am

Re: PC VGA CRT MiSTer with I/O Board Scaling Issues

Unread post by meanage »

@FoxbatStargazer Thanks much for your input, I appreciate it. You asked what the problem is, and I supposed that it is that the image is not fullscreen. It is a 4:3 monitor capable out outputting 640x480 @60, so with the scandoubler, it seems like it should fill the screen. I don't understand why mine is not and it seems other have it doing just that. But yes, I do have analogue output, which is great. Seems like the answer you and others are suggesting is to simply use my monitor controls to adjust my image to fit the screen.

At this point, I am not sure I am satisfied with my VGA output. My limited knowledge and experience is likely the issue that is holding me back. I think I will switch back to component video with a consumer CRT until I am ready to dive into some of the computer cores and then revisit. I have heard Amiga works well with VGA and ao486 is a little dicey.

Thanks to everyone for your replies, it is a huge help!
Post Reply