NTSC region games render in monochrome in PAL60 mode
Opened this issue · 1 comments
Hello,
first of all apologies if I am raising this issue in a wrong place. If you do feel so it is not core specific please feel free to close this one but I would be really greatfull if you could point me to the right place where I can raise it.
Having no luck in finding the solution on the MiSTer forum and after several attempts to fix it myself by tinkering in the contents of yc.txt I have started to notice some patterns making me think that there could be a bug, or more likely a gap, in YC implementation/integration in PSX core manifesting in a way as described below.
My setup:
Analog IO board + active YC encoder connected via composite cable to Sony BVM monitor (PAL only);
Mister.ini:
vga_scaler=0
composite_sync=1
vga_mode=svideo
ntsc_mode=1; PAL60
Problem:
NTSC region games render in B/W in PAL60 mode seemingly depending on output resolution and/or HSync.
Note:
I have removed every entry related to PS1 from yc.txt file as per advice on the forum. Thanks to this colour appear in some cases. With the default values present in yc.txt the image is always rendered in B/W.
Observations:
- Sony booting logo and then PlayStation logo which appear when core and game is starting, are always monochrome (this is interlaced video signal);
- The PS1 "dashbboard", where CD player is available, is also monochrome (again interlaced video signal)
- Tomb Rider 1 and 2 render in colour while in game however videos are monochrome; In game resolution is 405px wide while videos 352px; There is a HSync fluctuation when the switch in resolution happens; Interestingly, the first second or so of video is in colour and then it turns into B/W (this fact is making me think we are dealing with a bug/gap);
- Final Fantasy VII changes resolution when switching between game and menu where game is monochrome and menu in colour; Videos are B/W;
- Chrono Cross is completly monochrome regardless if in-game, menu, videos; This game runs in unusual resolution of 216p and switches to also unusal interlaced resolution when in menu.
This issue is not limited to the games posted above. Those are just examples which I found representative for describing the issue and very easy to replicate.
PS1 like no other platform changes resolution very often and run in non standard resolutions. Other consoles usually sticks to 224p or 240p in NTSC mode. Maybe the Y/C module is not ready for such cases? I tested NTSC region games on NES, SNES and MegaDrive cores and colour is always there so in general the PAL60 mode works. It is only PS1 which is problematic.
On a side note, in the core's source code I have found a line which seems to be related to HSync and resetting something when frequency changes. Maybe this could be some lead but as I don't know Verilog I may be talking rubbish.
Some additional information regarding this issue:
- affected are also PAL region games but in a semi-opposite way, e.g. TR1 PAL renders videos in colour but game itself is B/W where for NTSC version videos are B/W but game is in colour;
- today I accidentally discovered that "Fixed HBlank" option "toggles" colour rendering on/off, i.e. what was colourfull before becomes B/W and what was B/W becomes colourfull.
By setting this option to "OFF" I will get colour videos in TR1 NTSC but the game itself will be B/W. Likewise, FFVII in-game will be in colour but menu will become B/W. This also makes Crono Cross fully in colour, including menus which are rendered in 478i, resolving the issue for this particular game.
However, there is some "instability" with that setting as using it has not always the same result (in the very same game). It is like sometimes switching it on/off when game is running, breaks something under the hood, and it has no effect with the following change. In such case core needs to be restarted for the setting to be applied.