PSX stuttering in some 3D games
-
First of all, thank you all very much for your inputs in trying to help me troubleshoot this, and for the interesting angles to explore.
I hadn't thought of looking into whether the problem could be related to the BIOS, nor disk cluster size.
So, here are my findings so far:
- I tested the PAL and NTSC versions of Colin McRae (for practical purposes, as it's where I can most easily reproduce the problem) and both behave the same. I tested both eboot and bin/cue. So, for the time being, I'm excluding "file format" and "region" as being a factor here.
- My TV is PAL, meaning it's running at 50Hz. Unfortunately, there was no noticeable difference between PAL or NTSC in terms of stuttering.
- @Darksavior I checked and it seems my USB drive's cluster size is 512 bytes. Theory would suggest that this could be a factor in regards to performance, though surprisingly the first web result I found with some benchmarks seems to suggest that for random or sequential reads (which would be the case here, I suspect) the performance is not that worse than your 32k sectors, which defies my expectations. I will likely try to test larger clusters - but not at the moment, as formatting a 64GB drive and copying everything back again is somewhat time consuming so I'd rather avoid it if possible. Still, I will go after this if I can't achieve better results any other way.
- @Wulf I haven't yet tested running the games from the SD card, but I may just for getting that hypothesis out of the way. As you state, I'd also expect it to be faster reading from the USB drive, but given that it's a high speed card and (perhaps) the RPi's card reader is faster than the performance we're getting from the USB drive. Still, if that turns out to be true, there's likely little I'll do about that as I can't fit my games in the card, and I'd rather keep the game collection on the USB drive. I'll test it out, though!
@edmaul69 The BIOS thing is the most intriguing to me, though. So far, I (think I) had been using the recommended BIOS, named SCPH1001.BIN . For the sake of testing, I copied over scph7502.bin, and renamed it to all caps (what's the filename for yours, Darksavior?). I wasn't sure that was the right thing to do, as that's not mentioned in the wiki page as being the right filename.
Now, the big issue, though, is that lr-pcsx-rearmed (that's the emulator I'm using, by the way - I'm assuming you're all using that one as well?) has a "very capable Internal HLE BIOS that can run many games without problems". For the sake of testing, I actually renamed the BIOS to a name that wouldn't be accepted (SCPH750__2.BIN and SCPH100__1.BIN) and lo and behold, the games still launched, and behaved exactly like before.
So, a question now is whether there is a way to check what BIOS is being used in each game session. I imagine that information might be available somewhere in the RetroArch menu, will need to check later in the day, as my workday is just starting.
So that's where I am so far.
Thanks all for the help, data points and insights. Truly helpful!
Have a great day.
-
@pjft some games can play without the bios. As far as renaming the bios, i believe whichever one you choose to use has to be named SCPH1001.BIN. i am going to try to remember to test tomorrow with my external hard drive and sd card. I only have samsung cards in my pi's now as they performed far better for me than the several other popular brands of cards. i will even try a thumb drive for fun. I will be testing ape escape for the psp as well as it had the same issue back when i first added it and tested it. i should hopefully be able to find the best solution in my case which might be helpful to you.
-
@pjft Mine is scph7502.bin. Lower case. No complaints from pcsx. I think its a PAL bios too, though it loads anything I throw at it at 60hz np. I've used this bios for over 15yrs in other emulators so I'll use my own experience over a wiki saying 1001 is the only choice.
Also, get a random usb stick and format it to 32k to test one game with it, heh. -
@Darksavior Oh, I perfectly get that and fully agree with you.
My question is whether the emulator is actually using it - i.e. if you actually remove the file from the folder, do your games stop working - or if it's using its internal BIOS.
-
@pjft If there's no bios, you'll get some message in yellow text on bottom left saying it found no bios, and to expect errors.
I swear someone had a similar problem to yours, but with nes. PAL tv, but skipping games. Not sure how he fixed it. It was in this forum.
-
@pjft said in PSX stuttering in some 3D games:
My TV is PAL, meaning it's running at 50Hz. Unfortunately, there was no noticeable difference between PAL or NTSC in terms of stuttering.
it's a CRT? because modern HDTVs should all run at 60hz fine, unless you've set retropie to use a weird video mode. this might be the root of your problem.
i do see some very small blips in tekken 3 and i'm sure they exist in other games, it's just tekken 3 is one i'm most familiar with on the psx so they stick out to me. i'm not sure what causes it.
-
@Darksavior said in PSX stuttering in some 3D games:
@pjft If there's no bios, you'll get some message in yellow text on bottom left saying it found no bios, and to expect errors.
I swear someone had a similar problem to yours, but with nes. PAL tv, but skipping games. Not sure how he fixed it. It was in this forum.
Great - that's what I was looking for. I'll look out for that message, just to sanity check the procedure.
-
@dankcushions It's not a CRT, it's a 7-8 year old Toshiba REGZA, 1080p LCD. But the default mode that the RPi sets itself up for is 50Hz - should I attempt to force it to a 60Hz mode?
-
@pjft said in PSX stuttering in some 3D games:
@dankcushions It's not a CRT, it's a 7-8 year old Toshiba REGZA, 1080p LCD. But the default mode that the RPi sets itself up for is 50Hz - should I attempt to force it to a 60Hz mode?
i think so. that seems wrong to me. anything with 1080p must have 60hz i think.
-
@dankcushions Sounds good, I'll try that.
I suppose I assumed that the RPi would attempt to use a default mode that'd be optimal for the TV, as part of some HDMI handshake protocol (that, truth be told, I am not sure it exists!).
I believe it's defaulting to mode 31 (1080p, 50Hz) and you're suggesting changing to mode 16 (1080p, 60Hz). I'll try that later. Thanks!
-
hmmm, what about other games for the psx and other emulators? If they aren't experiencing a problem with stuttering would it actually be a tv settings issue?
-
also, if it was a frequency issue, wouldn't the stutter be more consistant? plus, unless if I'm mistaken, the refresh rate should only affect the tv image stuttering, not the sound.
-
@Wulf This is quite a wise comment.
Indeed, maybe it manifests in other emulators differently, though you are right, I'd be suspicious.
I am at home now, and going through the TV modes. It seems it'll accept the 60Hz one (though the 50Hz "scores" higher on the EDID test, unsure why), so I'll try it out and update this later.
It might be that RetroArch is trying to render 60fps and, for whatever reason, something here goes weird.
But you are correct. This is the only emulator, and it's only in a few games - namely 3D games, which lead me to suspect it might be related to data throughput on streaming from the emulated CD.
I'll report back.
-
@pjft It could also be related to the emulator itself not liking those games. You see this a lot with psp games on the pi.
-
So, a few tests later here's what I find:
- My TV does work at 60Hz. I do have to disable overscan for that to work well. Shrug.
- NTSC games run smoother (visually), it seems, or it's just my eyes playing tricks on me. Anyway, no complaints there.
- The weird split-second audio and video stutter stays the same, regardless of 60 vs 50 Hz, running from USB vs memory card. Maybe there's a very so slight improvement, but might just be perception rather than reality. Ridge Racer is easy to replicate in the first track (Yokohama?), inside the tunnel, if you hit the right wall a few times.
- I managed to use the proper 7502 BIOS.
So, what did I learn? That my TV supports 60Hz, and that some games are smoother, so I'll stick to that for the time being and see how it goes.
Thanks all for the inputs and insights.
-
@pjft testing on a usb 3.0 slim seagate external laptop hard drive formatted in fat32 with a powered usb hub and with crt-p shader enabled. I have not had a single hiccup. I even tested ape escape on the psp that hiccuped when i had my hard drive plugged directly to my pi 3. Testing with a lexar 16gb fat32 usb 2.0 flash drive, using the crt-pi shader, on the powered hub no problems. Plugged directly in i had sound glitches when i hit something in ridge racer 4. Which tells me it is a probably a graphic issue. Some emulators will deem that audio is less important and will drop audio to keep the video running smooth. I believe the pi not having enough power is an issue as when using your thumb drive. Im sure there are more power efficient flash drives that might not show an issue, or even possibly making changes to your drive might help, but i believe power is the issue in your case.
-
@pjft do you have the 'enhanced resolution' option(s) turned on? see https://github.com/retropie/retropie-setup/wiki/Playstation-1#enhanced-graphics
even if you don't recall doing this, it's wise to double check. that has caused some minor graphics stutters for me in some games.
also you might consider trying .pbps if you're using .cue/.bins, or vice versa.
-
Thanks all.
@dankcushions I do not have the enhanced resolution option turned on - I actually tested it yesterday to see if it'd help, and even though it looked prettier for a bit, it crashed the whole system shortly afterwards :) I'll try a bit more alternatives, but it's no big issue - I was just trying to see what others experienced, in order to know what to look for. The 60Hz thing is already a good improvement - especially on those NeoGeo games with flickery transparencies like Samurai Showdown 4 - they look a lot better now!
@edmaul69 Interesting. You tested Ridge Racer using all those methods, and the one that had trouble was running from the thumb drive?
I may see if increasing the voltage, or testing from an externally powered drive would work. Need to get my hands on something for that effect, though. But that's a good pointer for the future - noted! Thanks!
I don't want you all to spend more time on this, I'm happy with the outcome of the exercise at least :)
Thank you all!
-
@edmaul69 hmmm, that sounds plausible. Out of curiosity, what's the amp rating on the power supply you used? USB 2.0 has specs for 500 mA (which means the USB drive can't have more than that, and is probably much less).
I also found this page about the compatibility of games and the PCSX-ReARMed emulator: https://www.reddit.com/r/RetroPie/comments/4t37fb/psx_compatibility_list/
It's not based on raspberry pi, so take it with a grain of salt, but ridge racer 4 didn't seem to have any obvious issues.
-
@pjft @Wulf i have a rockband powered usb hub with a canakit raspberry pi 2.5a power supply. And i have the same power suppy powering my pi 3. The flash drive ran perfect on the hub but not had issues plugged directly in. Upping the power might to the usb ports might help. I tested the rally games as well on the plugged in hard drive and they ran smooth on that. I didnt test them on the flash drive as i already found a problem in ridge racer.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.