MiSTer-devel / PSX_MiSTer

PSX for MiSTer
GNU General Public License v2.0
204 stars 49 forks source link

Analog output garbled #249

Open UndertakerInfinity opened 1 year ago

UndertakerInfinity commented 1 year ago

I'm using an old NTSC CRT TV in composite through a VGA to NTSC active adapter. Here's my relevant ini settings: forced_scandoubler=1 ypbpr=0 composite_sync=0 vga_scaler=0

After a recent update (current year, sorry can't tell exactly which update it was) output started coming out garbled, like it does while MiSTer is starting up, but it stays like that. Setting vga_scaler to 1 fixes the image, only now it's going through the scaler, which previously wasn't needed.

sorgelig commented 1 year ago

should be: forced_scandoubler=0

birdybro commented 1 year ago

https://mister-devel.github.io/MkDocs_MiSTer/advanced/crttable/ - Here's a reference table for all ways you can configure analog output that I'm aware of. Look at the last line, I think that's how you want it configured. If it doesn't work after turning off forced scandoubler, then try turning on composite_sync. Some of those RGB --> NTSC/PAL adapters require that.

UndertakerInfinity commented 1 year ago

That reference table is great, I had not seen it before. However: forced_scandoubler=0 showed no change. PSX core output is garbled, other cores work fine. composite_sync=1 gave me test bars in the menu, couldn't get to the core.

UndertakerInfinity commented 1 year ago

did additional testing and setting forced_scandoubler=0 made every other core look like the PSX core. setting forced_scandoubler=1 made every other core look good again, but not PSX. Maybe PSX core is ignoring forced_scandoubler setting? Ran update_all just in case, but no change on this issue. Note I'm using a regular old CRT NTSC TV, not a PVM or a PC Monitor

Kuba-J commented 1 year ago

did additional testing and setting forced_scandoubler=0 made every other core look like the PSX core. setting forced_scandoubler=1 made every other core look good again, but not PSX. Maybe PSX core is ignoring forced_scandoubler setting? Ran update_all just in case, but no change on this issue. Note I'm using a regular old CRT NTSC TV, not a PVM or a PC Monitor

There is no scandoubler in PSX core:

https://github.com/MiSTer-devel/PSX_MiSTer/issues/213

birdybro commented 1 year ago

Yup, this is the issue. You are not outputting to a 15kHz display (PSX native output frequency), you are outputting to a 31kHz display, so you require the scandoubler, and the PSX core does not use that. You will require an external 15kHz --> 31kHz converter to make it work correctly or you can try your luck with super resolution video modes, but that's a lot of trial and error since compatibility depends on the target display.

Or you can try to use vga_scaler=1 instead, but it may require a little tweaking here and there. If you have an NTSC TV with VGA in or Component in, it's possible it's trying to run in 480p mode (31kHz) instead of 240p/480i (15kHz), which would require 31kHz. There may be a toggle on the TV itself to switch to 240p/480i. Or you can enable vga_scaler=1 and try video_mode=6 (640x480p@60)

UndertakerInfinity commented 1 year ago

oh vga scaler definitely works and it's what I'm doing right now. My TV has no resolution settings, it's an old component-only set. Will 480p mode or vga_scaler display interlaced content correctly? that's about the main reason to use a CRT for me, deinterlacing is not the same.

What's odd is that I had it without the scaler before that update (I default to no scaler and then add per-core exceptions: the menu and every arcade core that requires rotation).

birdybro commented 1 year ago

Ah, I think I know what might be happening. There are a new couple of options in the MiSTer.ini that you should take note of:

https://github.com/MiSTer-devel/Main_MiSTer/blob/master/MiSTer.ini#L5-L6

You might need to switch vga_mode= to ypbpr. The default is rgb, and the legacy feature of ypbpr= does not work anymore.

UndertakerInfinity commented 1 year ago

relevant things I forgot to share:

I tried vga_mode=ypbpr and got bluish image in every core, psx core still garbled. I think the converter is expecting standard vga. I also tried vga_mode=cvbs with similar results (a dim, bluish, striped image).

Bottom line is:

UndertakerInfinity commented 1 year ago

addendum: I ran a bunch of tests with vga_scaler=1, video_mode=6 and the PSX core's 240i to 480p hack.

hack off:

hack on:

birdybro commented 3 months ago

@UndertakerInfinity Is this resolved?