MiSTer CRT Guide - WIP

The Wiki is a source of knowledge for the MiSTer project, contributions are welcome.
akeley
Posts: 860
Joined: Mon May 25, 2020 7:54 pm
Has thanked: 237 times
Been thanked: 228 times

MiSTer CRT Guide - WIP

Unread post by akeley »

Some time ago I started putting together a resource regarding using MiSTer with CRT TVs & monitors, mainly for my own use but also with a possible aim of eventually turning it into a wiki page. It's a vast subject, and there is a lot of info scattered around the web, so I think having it all in one place could be useful. We might be a minority compared to the HDMI users, but the Display Devices forum gets a lot of questions on this topic, and at least some of them could be alleviated by having one solid resource.

I finally have something resembling a pre-final draft, so to speak, but before I make it live on the wiki I'd like some other people to read through it and see if they could find the inevitable mistakes, fill the remaining holes, or even add entirely new sections.

The places I'm most unsure about were tagged with [???] for convenience. The Intro and Troubleshooting/Resource sections still need doing, also some formatting, but for now I'd just like to iron out the possible errors in the most important core sections included.

The whole thing is too long to post here, and best viewed in Markdown anyway, so I attach a zip with a text file you can copy/paste into a Markdown editor like this one, or use the MiSTer wiki which has a preview section if you click on New Page.

EDIT: You can now view the page here: https://github.com/MiSTer-devel/Main_Mi ... -CRT-Guide
Attachments
GUIDE.zip
(4.75 KiB) Downloaded 253 times
FoxbatStargazer
Posts: 659
Joined: Thu Dec 10, 2020 5:44 pm
Has thanked: 200 times
Been thanked: 142 times

Re: MiSTer CRT Guide - WIP

Unread post by FoxbatStargazer »

Cables

I think having a resistor on sync pin in the SCART cable is recommended whether you use direct video or not? The problem is that the VGA standard for sync is TTL? and therefore too high. Certainly I've seen advice that this is an issue for the I/O board itself.

The problem with direct video over component is specifically SoG. Component passes sync information over the luma (green colored) cable. The Mister I/O board takes care of this, with the SoG switch either turned ON or OVR (override) depending on the board. However this switch has zero effect on the HDMI out, so you must add SoG after the fact. A relatively simple circuit to add SoG is shown here, albeit simple only for someone who is familiar with circuits in the first place. I don't think there is anything known off-the-shelf other than converting from standard HDMI or VGA to component.

The same BNC cable you listed for direct video adapters should also work with the Mister.

Actually I think there is potentially a reverse problem with direct video. If you use Mister to combine h/vsync into c-sync, can that c-sync be passed through the HDMI port and then the HDMI->VGA converter? Will the converter only want to produce separate H/V signals? Can the converter even sync with c-sync? This may also vary based on the converter because its a non-standard thing to ask of an HDMI->VGA converter.

Settings

Component does not need composite_sync=1. H and V sync lines are completely omitted on the VGA->Component cable. That's why you need SoG to add sync to the green/luma line.

vsync_adjust refers to the scaler only. I.E. HDMI port with direct_video OFF, or I/O port with vga_scaler ON. That and the whole world of video mode, vscale, border, etc. etc. is completely ignored with "pure" analog output, which seems to be what this guide is focused on. We could spell some of that out, but these settings are also settings used in standard HDMI output and therefore might be redundant here.

There are however a few cool tricks you can pull in the settings that aren't relevant to LCDs though, like changing the video blank to control the amount of overscan, creating an ultra-wide resolution for scaling that gets naturally squashed to 4:3 by the CRT, or creating 240p/120hz modes for natural scanlines on a 31khz+ monitor. I think this is edging more into learning how to create your own modelines though rather than just grabbing random stuff on the forums. Maybe that's complicated enough to be its own guide and we just hand people some presets in this one.

Core HUD Settings

Dunno what you want to call this section but there are a few crucial things to mention here. First is the ScandoublerFX, occasionally called Scanlines. Turning this option on is going to force 31khz output on most cores, which isn't going to sync with SD TVs, so its something you have to watch out for. It's also the primary tool for faking scanlines on 31khz+ displays for 15khz cores. This setting is saved per-core, so just disabling forced_scandoubler does not adjust this setting, something to watch for when switching between a VGA monitor and SD TV.

Second thing is that several cores have toggles between 60hz on and off. AO486 often runs refreshes like 70 or 75hz, the Wonderswan core is also at 75hz. The 60hz mode lets you push 60hz even over the default analog output, without having to invoke the scaler with vsync_adjust=0. Again crucial to get these cores to sync with many TVs.

Third is that in the new video processing menu, most things there only apply to the scaler, however color correction applies to the analog output as well. The default correction profiles provide a number of options to raise the gamma curve (and therefore raise contrast, at the risk of losing shadow detail)

I truly applaud this initiative and hope we can come together to make something useful!
akeley
Posts: 860
Joined: Mon May 25, 2020 7:54 pm
Has thanked: 237 times
Been thanked: 228 times

Re: MiSTer CRT Guide - WIP

Unread post by akeley »

Thanks mate, I was hoping you'd get on board with this thing because your knowledge of this subject is actually in-depth, as opposed to me being just a user who collects links and settings without really understanding all that jazz.

I appreciate your comments, they are all spot on & relevant, though for now I'll just concentrate on the stuff regarding the basics (Cables/Settings), so I can publish this thing. After that, you, and anybody else, can go and edit it - it's a wiki after all. Or we can chisel stuff out here and add it as it goes.

I'll try to do it in the next few days and ask here if I'm unsure about anything. Hopefully some other folks can chime in too in the meantime.
User avatar
lamarax
Posts: 413
Joined: Wed Nov 11, 2020 6:28 pm
Has thanked: 29 times
Been thanked: 146 times

Re: MiSTer CRT Guide - WIP

Unread post by lamarax »

Great stuff from both of you akeley & Foxbat. This guide-in-making, guarantees that there will not be any questions lingering.

A reason I first got my MiSTer, was that it advertised to be easily connected to a CRT. In reality, I went scuffing bits off from the internets to make my rigs work (which finally didn't, at least to a satisfactory degree; see: RGB PAL, "tate" etc, etc)

So thank you for trying to digest all the knowledge that's available to a concise format!
FoxbatStargazer
Posts: 659
Joined: Thu Dec 10, 2020 5:44 pm
Has thanked: 200 times
Been thanked: 142 times

Re: MiSTer CRT Guide - WIP

Unread post by FoxbatStargazer »

I should note I don't have any direct experience with SCART, just what I've read and knowing a bit of the theory. Especially Bob's warnings about using a resistor on the sync line. So maybe someone can check if I got something wrong there.

There have been complaints recently of HDMI->VGA scalers not working with direct_video, but I wonder whether this is a direct_video problem or more of a problem specifically with csync being supported by some adapters and not others. I've tried three different adapters with my VGA monitors and had no problems. I don't have any csync displays I can test with though.
akeley
Posts: 860
Joined: Mon May 25, 2020 7:54 pm
Has thanked: 237 times
Been thanked: 228 times

Re: MiSTer CRT Guide - WIP

Unread post by akeley »

Took a while, but I finally managed to tidy it all up a bit and apply @Foxbat's corrections. The page is now live: https://github.com/MiSTer-devel/Main_Mi ... -CRT-Guide

I haven't added it to the main sidebar yet, so there's still time for another round of tweaking before it gets truly visible. You can now edit this wiki if you have the account on github, or post your suggested changes/additions here and I will do it myself. If you do some edits please mention it here as well so we can cross check the info.

Some comments re @FoxbatStargazer's post:
FoxbatStargazer wrote: Tue Mar 22, 2022 5:23 pm I think having a resistor on sync pin in the SCART cable is recommended whether you use direct video or not? The problem is that the VGA standard for sync is TTL? and therefore too high. Certainly I've seen advice that this is an issue for the I/O board itself.
Yes, that's true, I just had a hangover from when this info was only listed on Direct Video wiki page. I did correct it now and have linked to that RetroRGB article, even though I think it might be a bit on the alarmist side. I have used a few TVs with a MiST cable which I don't think has this resistor and they survived just fine, so I think it might be more of a possibility than certainty. Still, it's best to just stick with the
"better safe than sorry" line in a public guide.
The problem with direct video over component is specifically SoG.

Have a look at this again, I did include a link to this scheamtic before but maybe it needs more info.
Actually I think there is potentially a reverse problem with direct video. If you use Mister to combine h/vsync into c-sync...
I have no idea, that's all black magic to me. But you might well be onto something. Like I said elsewhere, my adapter generally works fine with most cores, but a few refuse to sync (unless I use dedicated VGA2SCART adapter instead of MiSTer cable). Perhaps it is related.

Also, it might be related to what you mention in your second post, about people saying that "HDMI->VGA scalers not working with direct_video". It's tricky to figure if that's down to MiSTer side, the adapters, or user error, to be honest. But definitely something we could put on the To Investigate list.
Component does not need composite_sync=1. H and V sync lines are completely omitted on the VGA->Component cable. That's why you need SoG to add sync to the green/luma line.
Ok, I removed that CS setting. Do you need to use that SoG switch on I/O board in all cases of using Component? Or is it something that "might need" doing (my wording from Wiki)?
vsync_adjust refers to the scaler only. I.E. HDMI port with direct_video OFF, or I/O port with vga_scaler ON. That and the whole world of video mode, vscale, border, etc. etc. is completely ignored with "pure" analog output, which seems to be what this guide is focused on. We could spell some of that out, but these settings are also settings used in standard HDMI output and therefore might be redundant here.
I left them for now with reference to Custom Video Modes. Speaking of which...
There are however a few cool tricks you can pull in the settings that aren't relevant to LCDs though, like changing the video blank to control the amount of overscan, creating an ultra-wide resolution for scaling that gets naturally squashed to 4:3 by the CRT, or creating 240p/120hz modes for natural scanlines on a 31khz+ monitor. I think this is edging more into learning how to create your own modelines though rather than just grabbing random stuff on the forums. Maybe that's complicated enough to be its own guide and we just hand people some presets in this one.
My idea was to have a very brief how-to on modeline creation in the CVM section (I left a placeholder for that). You, or @thorr, or somebody else who knows this stuff real well would have to write it. Just to give an idea on what to do, and which variables are important to tweak, the more in depth stuff can be linked to (I already placed one link there to @Shogun's guide)

About the examples you mention, they could be included there or perhaps in the FAQ section, because eg the 240p/120hz modes are a distinct topic. I'd like to have some example presets for people like me who aren't really good at maths or don't have time to learn it in depth and just want to copypaste some stuff that works. So that's how the CVM section is structured now.
Core HUD Settings

Dunno what you want to call this section but there are a few crucial things to mention here.
Great idea, but, again, I don't know enough about this stuff. You or somebody else would have to write that. I left a placeholder section called CORE OSD SETTINGS

************************************
I've also added a placeholder for "FAQ" section - that's for all the troubleshooting and "other" solutions/ideas.
Anotehr one is "Remaining problems" section - meaning to list problematic cores and such

Apart from all that, these things are also on my immediate TO DO list:

-add section or descriptions for @tsowell's latest merge - I think it is possible to use it for everything, not just ao486?
-add more cable sources
-where to buy dv & io
-check other adpaters for composite and S-Video I've seen mentioned
-perhaps add RESOURCES section
-DOSBOX OR SCUMM how to / is possible?

As always, all comments / suggestions / further corrections would be most appreciated.
FoxbatStargazer
Posts: 659
Joined: Thu Dec 10, 2020 5:44 pm
Has thanked: 200 times
Been thanked: 142 times

Re: MiSTer CRT Guide - WIP

Unread post by FoxbatStargazer »

About the SoG switch for component: while there are supposedly some cores that will automatically turn SoG on, and thus why it was initially labeled OVeRride vs AUTO, it seems to be so few that we should just recommend people turn on the switch. It's needed to even see anything in the menu core and I don't know of any harm in doing so.

I think covering the HUD settings is most crucial of all, anything that can cause your SD TV to fail to sync is a pain to deal with. And yeah I don't mind inserting that myself.

I don't really know enough about potential c-sync + direct video issues to say anything definitive. It's just something I wondered about. Was hoping more could chime in with their findings.
ItsTigerTime
Posts: 9
Joined: Sun Dec 06, 2020 4:29 am
Has thanked: 1 time

Re: MiSTer CRT Guide - WIP

Unread post by ItsTigerTime »

ive just got a new old CRT Monitor here in Australia with VGA got it working finally on my mister after a few days my issue is some of the arcade games are upside down or sidewards have no idea how to fix it


Settings I have are

[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=1 ; 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=1 ; 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=1 ; 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=4 ; 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
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°)
akeley
Posts: 860
Joined: Mon May 25, 2020 7:54 pm
Has thanked: 237 times
Been thanked: 228 times

Re: MiSTer CRT Guide - WIP

Unread post by akeley »

ItsTigerTime wrote: Fri Apr 01, 2022 7:24 am ive just got a new old CRT Monitor here in Australia with VGA got it working finally on my mister after a few days my issue is some of the arcade games are upside down or sidewards have no idea how to fix it
That's normal, some arcade cores are vertical / horizontal / flipped by default. You can rotate them using the scaler, but am not sure if it's possible on VGA. More info here: viewtopic.php?t=3494

"Direct_video=4" in your mister.ini is wrong, it can be only 0 or 1, but you're probably not using it anyway.
FoxbatStargazer
Posts: 659
Joined: Thu Dec 10, 2020 5:44 pm
Has thanked: 200 times
Been thanked: 142 times

Re: MiSTer CRT Guide - WIP

Unread post by FoxbatStargazer »

vga_scaler=1 lets you apply the scaler to VGA output. Scaler is the only way to do 90/270 rotation (short of physically rotating your monitor, as the arcades did!) Any digital rotation settings will be in the core's menu.

Some cores might let you flip the original resolution but others won't, in which case those settings will only apply to scaled output.

If you only want to apply the scaler to arcades add the following section to your mister.ini.

Code: Select all

[arcade]
forced_scandoubler=0
vga_scaler=1
You will need to pick a suitable video mode as well. You can also change [arcade] with the arcade core's name if you want to target specific cores. (Name should be what shows up on the left side of the core's menu.)
User avatar
morf77
Posts: 60
Joined: Fri Aug 28, 2020 1:42 pm
Has thanked: 12 times
Been thanked: 22 times

Re: MiSTer CRT Guide - WIP

Unread post by morf77 »

First of all great job adding this stuff to the wiki it will save CRT-heads a lot of time I'm sure.

I was wondering if SVGA CRT monitors require a separate section. This is merely a suggestion though but in my experience with a 1600x1200 SVGA custom video_mode is a superior setting to scandoubler. Scandoubler on my SVGA more than often doesn't allow the cores to use all the real estate available on the screen, centering the image and filling the screen requires manual adjusting on every core and scanlines look better using the native resolution. I can't tell if this is true for all SVGA monitors, I'm using a Sony multiscan 400 ps with a native res of 1600x1200 @ 75 hz. Using a custom video_mode the most I ever need to do is press the "auto sizing and centering (ASC)" button (using scandoubler this button doesn't adjust anything).
FoxbatStargazer
Posts: 659
Joined: Thu Dec 10, 2020 5:44 pm
Has thanked: 200 times
Been thanked: 142 times

Re: MiSTer CRT Guide - WIP

Unread post by FoxbatStargazer »

I think the challenge is what specifically is CRT-like aside from having to set vga_scaler=1 or use an HDMI converter. Once you use square pixels like 1600x1200 for every core, you might as well be a flat panel monitor as far as Mister settings are concerned. It opens up all the same flat panel monitor options like integer scaling, filters, shadow masks, etc. and suddenly you've more than doubled the document length covering all these options. So whatever mention is made here, I feel like it should be on the light side, and link to some other resource that covers all the scaler-based settings.
thorr
Posts: 604
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 224 times
Been thanked: 113 times

Re: MiSTer CRT Guide - WIP

Unread post by thorr »

FYI - I wrote up a CRT modeline how to document and sent it to akeley. I probably have more ideas that can be added to it, but hopefully it is a good start.
akeley
Posts: 860
Joined: Mon May 25, 2020 7:54 pm
Has thanked: 237 times
Been thanked: 228 times

Re: MiSTer CRT Guide - WIP

Unread post by akeley »

morf77 wrote: Thu Apr 14, 2022 10:55 pm I was wondering if SVGA CRT monitors require a separate section. This is merely a suggestion though but in my experience with a 1600x1200 SVGA custom video_mode is a superior setting to scandoubler.
It certainly could be mentioned as, say, FAQ section item. If you could provide the modeline and initial settings then that would do nicely. The rest is indeed out of scope of this guide and could be linked to. Linked to, if there is anywhere to link to, that is, seeing as the Video Filters section on the Wiki was last updated in May 2020...
akeley
Posts: 860
Joined: Mon May 25, 2020 7:54 pm
Has thanked: 237 times
Been thanked: 228 times

Re: MiSTer CRT Guide - WIP

Unread post by akeley »

Thorr was kind enough to write a modeline making guide. I felt it's big and in-depth enough to warrant its own page on the Wiki so I put it here: https://github.com/MiSTer-devel/Main_Mi ... TION-GUIDE

It's also in the Wiki's sidebar under "Extra Features / Creating custom modelines" and I have linked to it from within the CRT guide. Any comments and alternative advice on modeline creation is always welcome.

Also thanks to cursedverses for new PSX modelines and people from shmups.system11 boards for advice on alternative S-Video converters.
Post Reply