Mednafen-PSX-0928 core issues

So I just noticed the Mednafen-PSX core has been updated at last, which is great because the previous core, while good overall, had serious issues with a few games, some of which happened to be very popular. However, upon trying it out, I run into an even more serious issue: it won’t work at all. All I get is a black screen, no audio or anything. It just sits there.

I’m running Windows 7 as my OS. I’m on the latest version of RetroArch, but I also tried using a slightly newer compiled version with integer scaling, and it works on neither. I also tried switching between OpenGL and Direct3D, and it made no difference. Went back to the previous core to make sure I didn’t break anything, and it still works as it should, so I’m led to believe the issue lies with the newer core, unless something has changed in the way it looks for a BIOS or something that I am not aware of.

Well, tried a couple of games in Wine (32-bit) to be sure. Runs just fine here. You have a log or something?

Eh, I ended up just getting a new RetroArch installation, and passing over my old configuration files, and it worked then. Not sure what was causing the problem in the slightest. All I can complain about is that it no longer seems to do aspect ratio correction in games that are not 320x240, such as FFT, which I can report doesn’t have glitchy graphics anymore, by the way.

We are no longer going to be messing around with the framebuffer on retro_run (at runtime) and adjust how the picture looks for various resolutions - not only is this error prone but it also makes things slower. It might have caused some of the glitches that you saw in previous versions.

One possible issue though. Since we’re no longer mucking around with the FB, what about the geometry? It’s reported as 320x240, but in .26 at least it really output 340x240 for some reason …

We should probably log the framebuffer width/heights again - I think some of those odd sizes from the previous versions got corrected.

BTW maister - the issue that I commented on yesterday (the ‘frameskippy’ nature of the gameplay) appears to be a new issue that has popped up with regards to Xinerama. As long as I play RetroArch on one monitor, gameplay is silky smooth and vsync appears to work - as soon as I ‘extend’ the display to another monitor with Xinerama, I get the ‘tearing’ video. I think what might be going on is some issue related to your recent work on refresh rates - the 'second monitor’s different refresh rate might be causing some issues (just a guess).

On Xinerama, you only get vsync on one of the monitors (main monitor). That’s a fundamental flaw of multiple monitors I guess because they all have different refresh rates (potentially).

Well the thing is that previously I could drag the window or the game onto one of the two monitors and get decent Vsync that way - now however (ever since the refresh rate changes) it is broken in that on both of the screens it will produce visible tearing. The only way I can get Vsync to work again as it should is to turn off one of the two monitors.

So there has been a regression of sorts here.

That sounds more like a driver regression, either that or it’s a “new” behavior. The old behavior was kinda weird as well anyways. I only really tested VSync behavior in Xinerama on nVidia blob as well.

So now we will have ever-changing aspect ratio for PS1 games?

The problem at the moment appears to be that the window is technically in the correct 4:3 aspect ratio, but the actual displayed image is not, as there’s always black bars on the sides squishing the image. This appears to happen with every game regardless of their internal resolution. I frankly don’t get why this occurs. Now games don’t display in either their native aspect ratio or the proper 4:3, and there’s really no way to change this other than figuring out a custom aspect ratio to stretch the window enough to get the displayed image in the correct 4:3.

Maybe I haven’t paid attention enough, but I haven’t found the aspect ratio to be that problematic with this core. A lot of PS1 games will have small black bars on the top and bottom, but I think we get that on real hardware as well. The only thing that has really disturbed me about the picture is the weird pixel distortion that you tend to get in certain places, like the BIOS screen for example. Even when stretching an image it’s not supposed to be that bad, at least not if you use bilinear filtering. This, however, happens with mednafen proper too.

The black bars on the top and bottom are not a problem, because they would be there regardless. It’s the ones on the sides that are the issue. The games are not being displayed in the proper aspect ratio because of this. The previous core did not have this problem, and displayed games as it should.

Oh OK, well if that’s the case then I can see that it’s a problem, and I too hope that it will be fixed. Have you compared the libretro core to mednafen proper regarding this issue?

Looked at it. It pads 320x240 to 350x240 (not 340 … interesting), and 640 width to 700 width (?!). To get it just right I shifted image 14 pixels to left (not 15), and 33 pixels for hires, and it works perfectly for my test games (MGS, Chrono Cross, Tekken 3). Pushed to Git. This is really weird though. I don’t understand why the core does it like this to begin with …

Huh. Well that explains why setting a custom aspect ratio so that the window resolution was about 1400x960 at 4x scale resulted in a correct aspect ratio for the actual viewable area.

Looking forward to the fixed core being available from the RetroArch update.

I’ve updated the build in updater.

Just tested. It works as it should for games with a 320x240 resolution like FFIX, as well as games that use hi-res 640x480 in menus, such as Silent Hill, but the issue persists with FFT, which used 256x240, as well as Tekken 3, which uses 364x240, and Spyro, which uses 512x240.

So basically, anything that isn’t 320x240 or 640x480 still has black bars on the sides that shouldn’t be there.

Ok, so there exists more resolutions which break. Good to know. Are these all the possible resolutions?

  • 256x240
  • 320x240
  • 364x240
  • 512x240
  • 640x480

I can test more with Spyro and Tekken 3 (which looked fine to me, but I’m not too anal about aspect ratios … :wink: ). I don’t have FFT, but I’ll look into it.

From what I understand, the PS1 basically has five horizontal resolution modes, namely 256, 320, 364, 512, and 640, and officially it has as vertical resolutions 240 lines and 480 lines, although I have determined it can also use 224 lines like the NES, SNES, and Genesis do. It is capable of combining any of the horizontal and vertical resolution modes, but I doubt any hi-res, 480 line mode other than 640x480 is very common, and even that one isn’t all that common.

In any case, it’s not the vertical resolution that breaks the aspect ratio, but rather the horizontal resolution. If you could test and tweak for all five of those modes, that would be great. Another notable game that makes use of 256x240 is Castlevania: SOTN, at least during gameplay (I believe it switches into other resolution modes in the title screen and menus and such).