I’ve only tested with snes9x-gx so far, but I’ll test out a couple more tonight.
Edit:
I’ve tested some other cores, and you’re right that it seems to be snes9x-next only, or in some way related to it. Gameboy was fine, as was Nestopia and FastNES, GenplusGX and Mednafen PCE Fast. On SNES9X, it depended which game I loaded, whether or not the video would corrupt (or crash Retroarch). I had a hunch that it had to do with higher resolutions, so I loaded Seiken Densetsu 3, and it crashes Retroarch on the Title screen (but is able to display the squaresoft logo). Final Fantasy 3 and Dragon Quest 6 also would corrupt the video to some extent, but didn’t always crash. Sometimes it would crash when loading a new game, or changing cores after seeing some corrupted video.
I should also mention that disabled crop overscan did what it was supposed to on the NES cores. I could see lots of extra junk on the left and right of the screen when it was disabled.
Also, I tested this with the 1.2.2 build, because I don’t have any other cores available to compile with. I figure if they’re working on that version, it’s likely they’re working fine on the nightly as well.
And finally, this is interesting:
More Edit:
I messed around with the source last night, adding a bunch of resolutions back in, and testing out the idea of changing resolutions on the fly, since some titles do this (Seiken Densetsu 3). For the most part, it seemed to be working, though the switch is noticeable, since 256 width seems to scale differently from 512. The code also doesn’t care about a lot of cases, like resolutions from portables, so it’ll likely never be of any use.
While testing this, I was able to corrupt the video even with “crop overscan” enabled (and likely using the 256x224 resolution), so it’s likely that crop overscan isn’t the problem, or again that something is trying to write more data to a buffer than it can handle, which is easier to reproduce with a smaller buffer. I later made some other changes, and was able to change the resolution as much as I wanted without corruption, but it’s likely that the code I commented out is required in order to display things properly