Rolling picture with YPbPr

Thad
Posts: 13
Joined: Sun May 24, 2020 9:28 pm

Rolling picture with YPbPr

Unread post by Thad »

Hello there!

I'm new to MiSTer, and I'm having some trouble with the refresh rate when I boot some of the cores. I'm using an NTSC CRT TV with YPbPr inputs. (The brand is Magnavox; I'm not sure what model, but I can try to figure it out if that will help.)

(ETA: I believe the model is 20MT4405/17. I haven't hauled the TV out to look at the sticker on the back, but based on photos, that's the one I've got.)

I bought my DE-10 Nano and the following accessories from misteraddons.com:

IO board (standard, generic 5V fan)
VGA to Component / YPbPr Cable
In-Line Power Switch
SDRAM XSD 2.5 128MB

I'm also using a MakerSpot Micro USB OTG Hub from Amazon.

I've got the IO board connected to a YPbPr switch with the VGA-YPbPr adapter; the switch outputs to the TV.

The main menu works. Some cores display correctly. Some display a rolling picture when I load them; I believe they're running at 50Hz instead of 60Hz. In some cases the refresh rate switches to 60Hz when I load a ROM (usually the picture continues to roll for a few seconds but then switches to 60Hz, usually after a screen transition).

I've run update.sh and the cores are all the latest versions. In MiSTer.ini, I've set ypbpr=1 and tried with and without composite_sync; I haven't noticed any difference between composite_sync=0 and composite_sync=1. The IO board's SOG switch is set to "OVR". The Genesis and SNES cores are both set to US as the region.

Cores that load at the correct refresh rate:

Most arcade cores
GBA
NES
SMS

Cores that load at the wrong refresh rate but will switch to the correct one if I load a ROM:

Genesis
SNES
TurboGrafx16

I've also noticed that Flicky behaves similarly and displays a rolling picture when I first open it but switches to 60Hz once it gets to the title screen.

Cores that load at the wrong refresh rate and don't switch if I load a ROM:

Gameboy

I've got a workaround set up for Genesis, SNES, and TG-16; if I put a boot.rom in their respective game directories, then they load the ROM at startup and switch to 60Hz. But that doesn't work for Game Boy. Loading a ROM doesn't always switch the refresh rate for Genesis, SNES, or TG-16, either; some ROMs continue to display a rolling picture, even if the ROM is from an NTSC region.

(ETA: I found a workaround for Game Boy too; use Mega Man 5 as boot2.rom and enable Super Game Boy. More information in a post farther down this page.)

I'm guessing I've missed a configuration setting somewhere, but I'm stumped. Is there a way to force the cores to display at 60Hz? If anybody has any ideas, let me know; thanks!

ETA: I've done a bit more research and there are some people reporting a similar problem in this Reddit thread: MiSTer YPbPr sync problem

Two different posters describe having a similar issue with Philips TVs. Mine is a Magnavox, which is the same company. So it looks like this may be a common issue with Philips/Magnavox CRTs.

foldor
Posts: 9
Joined: Mon May 25, 2020 1:58 am

Re: Rolling picture with YPbPr

Unread post by foldor »

For me, I had to switch on the SOG switch in order to fix this on my Trinitron FV310. Try giving it a shot.

Thad
Posts: 13
Joined: Sun May 24, 2020 9:28 pm

Re: Rolling picture with YPbPr

Unread post by Thad »

Thanks foldor,

The SOG switch on my board isn't labeled with "off/on", it's labeled with "AUTO/OVR". I've got it set to OVR, which I think is the equivalent of "on"; if I set it to "AUTO" then the picture rolls all the time, not just some of the time.

I've also updated my OP with more information, including (what I believe is) the model number of my TV. This looks like it might be a common issue to Philips/Magnavox sets.

Dysfunkshnl
Posts: 1
Joined: Mon May 25, 2020 3:01 am

Re: Rolling picture with YPbPr

Unread post by Dysfunkshnl »

I'm having an identical issue with my CRT via I/O board. SMS, NES, Arcade Cores, MegaCD, all fine....the rest not. Was thinking it was an INI file issue, which I'll display below. Any help would be fantastic.


[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=0 ; set to 1 to run scandoubler on VGA output always (depends on core).
ypbpr=1 ; 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=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
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

; 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/Computer_Apple_II.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
;
; custom mode: hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz
; video_mode=1280,110,40,220,720,5,5,20,74250
video_mode=8

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

; 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=7

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

; JammaSD keys to joysticks translation
; You have to provide correct VID and PID of your input device
jammasd_vid=0x04D8
jammasd_pid=0xF3AD

spacejockey
Posts: 4
Joined: Sun May 24, 2020 9:58 pm

Re: Rolling picture with YPbPr

Unread post by spacejockey »

Yesterday i have same problem. I can work out deleting core's config (in /config).
The problem lies in scandoubler fx was ON(scanline 50%) so you turn off before active DIRECT VIDEO will be OK.

User avatar
colonel panic
Posts: 21
Joined: Mon May 25, 2020 1:54 pm

Re: Rolling picture with YPbPr

Unread post by colonel panic »

I've had similar issues with cores booting in PAL using a VGA to RGB cable into my PVM. (My particular PVM has a problem displaying PAL, its on my to-do list to fix it.) How I've gotten around this is by booting the core on an HDTV over HDMI using the scaler and an alt ini, setting the video mode in the core options to NTSC, and saving the core config. Might not totally fix your issue, but it will definitely help you if your CRT can only display NTSC

Shogun
Posts: 2
Joined: Wed Jun 24, 2020 7:41 pm

Re: Rolling picture with YPbPr

Unread post by Shogun »

I am experiencing a very similar issue so instead of posting a new thread I thought I'd post in this one. My issue is with certain cores give me a rolling screen on my Sony CRT TV when I launch them. I'll include my .ini at the bottom of the post. These issues are not occurring on my PC CRT.

Signal path: Mister FPGA > VGA out on I/O board > VGA to Component cable> Component input on Sony Trinitron KV-24FS100.

After testing the cores:
SNES, NES, Genesis, Neogeo, GBA - No sync
SMS, megacd Arcade, TG16, gameboy - Sync

Things I have tried are all different combinations of settings in the ini. SoG switch, setting all cores to NTSC region using my PC CRT (also confirming the cores work there), as well as launching various games in the SNES core to see if they would sync up when a game is launched. I tried hooking up to another TV I have which is a Phillips which can accept progressive signals. It was completely different as to what cores would have sync and which other wouldn't. For example Neogeo games just had a black screen but I could see the menu.

Code: Select all

[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=0   ; set to 1 to run scandoubler on VGA output always (depends on core).
ypbpr=1                ; 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)
volumectl=0            ; enable audio volume control by multimedia keys
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-99)
;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
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 timout

; 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/myfont.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
;
; custom mode: hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz
;   video_mode=1280,110,40,220,720,5,5,20,74250
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

; 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=7

Shogun
Posts: 2
Joined: Wed Jun 24, 2020 7:41 pm

Re: Rolling picture with YPbPr

Unread post by Shogun »

I found a solution that worked with my setup using the new refresh_min, refresh_max settings in the updated mister.ini. I set the min to 59hz and the max to 60hz. After that every core worked except snes so that made me think something was wrong with that specific core. I deleted all my snes config files and updated the core and now it works! Everything is now working great so I hope this works for others out there.
; 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

Thad
Posts: 13
Joined: Sun May 24, 2020 9:28 pm

Re: Rolling picture with YPbPr

Unread post by Thad »

Thanks Shogun, glad to hear that worked for you.

Unfortunately, no such luck here; I tried refresh_min=59, refresh_max=60 and it didn't change anything for me. The search continues...

Thad
Posts: 13
Joined: Sun May 24, 2020 9:28 pm

Re: Rolling picture with YPbPr

Unread post by Thad »

I still don't have a fix, but I found a workaround for Game Boy. For whatever reason, if I enable Super Game Boy and load Mega Man 5, it fixes the rolling picture -- and once it's loaded, I can switch games; other games work fine after that (even if I turn off SGB mode). So I just enable SGB and save my settings, then make MM5 my boot2.rom and now I can play Game Boy.

Not sure why that game in particular; the same trick didn't work with Donkey Kong.

User avatar
wreckk
Posts: 8
Joined: Mon May 25, 2020 10:58 pm

Re: Rolling picture with YPbPr

Unread post by wreckk »

I was having this exact issue when attaching my MiSTer to a SONY PVM 5041.

I went through all the settings, adjusted refresh rate, vsync, etc... After over an hour of tinkering with almost every setting, I was at my wits end and decided to see if there were any potential settings I was missing on the back of my unit.

Long story short, I found a knob for VHOLD which completely solved my issue after a second or two of tuning.

Lots of CRT units have a vhold knob, sometimes recessed, but is fully accessible with a flat screwdriver.

I really hope this helps you all solve your issues, it was driving me crazy.

Post Reply