RetroArch and CRT: why can't they love each other?

I think 240p is one of the best feature in RA for Wii and I think it has been done for (Trinitron) CRT lovers like me… but this wonderful couple has great problems never fixed from years.

The usual setup in this situation is Wii --> Scart RGB cable --> CRT but very very often (> 50% of times) when I launch a game (all cores involved) the TV goes dizzy (like sending 480p rather then 240p) or colors are inverted (image stable and colors remain inverted even if you exit RA) or both dizzy + colors inverted or… WOW, the game runs just fine!

The very same problem existed also with component cables (gbatemp.net) but went fixed in 0.9.9: in fact I’ve never encountered such bug using Wii or vWii with component cables.

Anyone are experiencing my troubles or knows a solution?

I have found 1.0.0.2 to be the most stable release for Wii/GC. You might have a problematic (overheating/unstable) graphics chip in your Wii that causes the inverted image thing. Does the Homebrew channel background look orangish when it happens and you quit RA? It’s as if the graphics chip and/or gx driver crashes because of RA. I see the same problem on one older (more used) Wii that I have, but not on another Wii its perfectly fine and great output… Even with the same software (same exact SD card in fact) and SCART cables. Or it could be slight variations in the gfx chip or the TV output circuitry… I don’t know.

I confirm 1.0.0.2 less incline to this problem. I have a day one Wii which works flawlessly with all my (huge) library (only DVD-DLs have reading problems)… yes, I have the infamous orange HBC but I don’t think it’s a overheating issue because colors are “perfectly” inverted and emulation speed is exactly 1/6 more slow: it’s like a strange NTSC vs. PAL problem because games run at 50fps rather than 60fps with inverted colors (and perhaps only on PAL Wiis). Moreover the bug is present only on SCART connection… if you search gbatemp forum, the problem was there even on component cable but was fixed in 0.9.9

it’s not just a RA problem, you can’t boot dols at 240p without causing issues.

Genesis Plus GX can autoboot games in 240p, moreover the Game Boy Interface can be loaded in 240p as well without issue. Many Virtual Console games also start in 240p, the “You will need the Classic Controller” nag is also in 240p.

that doesn’t mean the dol is being loaded at 240p or is it?

I’d say yes, I had talked to ekeeke about the corruption before and he guessed a possible reason, I have the email around but he said it’s probably due to RA using its own GX functions instead of libogc ones. Who knows what causes it, but I doubt he would be doing that otherwise he would have mentioned it.

Found it; it was in March 16, 2015

[QUOTE=Eke Eke;27788] It seems like a memory corruption issue, I can’t tell because the video code you linked to me to is kind of complicated to follow. I’m not sure why it has been made this much obfuscated (it seems it’s using its own GX functions instead of libogc ones) but I believe this is part of the problem you are having. If I were you, I would review that code and check if there isn’t anything hard-coded for 480-lines rendering in the menu code or something like that.[/QUOTE]

Just blindly searching, but could this be the culprit?

Edit:

Actually, when I look a little closer, there’s probably a few things involved, only one of them being that 480 magic number. It looks like VI_MAX_HEIGHT_NTSC = VI_MAX_HEIGHT_EURGB60 = 480

The entries here seem reversed, but it shouldn’t even matter:

Regardless, the min(lines, 480) line is redundant for ntsc due to the check right above it. I may take a stab at playing a bit with code. Perhaps it should be looking at the width and selecting an appropriate lines value from the resolutions array? Could a custom aspect ratio skew these values so that the width is valid, but the lines is over the maximum? Doesn’t retroarch double the height value by default, or something?

I hope it’s obvious that I really don’t have much idea what I’m talking about :slight_smile: