Open-PS2-Loader
Open-PS2-Loader copied to clipboard
[ISSUE] Games get stuck loading when using USB 3.0 drive but not with slower USB 2.0 drive. [USB]
Describe the issue USB games get stuck when loading with a specific USB drive (SanDisk Ultra USB 3.0 128GB), each game at a different time. Controller inputs stop being recognised (original PS2 and PADEMU controllers) when games get stuck. If I remove the USB drive in question an re-insert it, the game continues to load starts working again. Some games eventually get stuck again and removing and re-inserting the USB drive solves the loading issue again.
If I use another USB drive (SiliconPower "The Simpsons" USB 2.0 8GB), config files and games take longer to load but never get stuck and I can play without issues.
Both USB drives are FAT32 formatted and fully defragmented.
Configuration:
- Console Model: SCPH-79001 with latest FMCB (1.966) and no modchip.
- Open PS2 Loader revision: OPNPS2LD-0.9.3+.1562-Beta-41f7cf0.ELF
- Open PS2 Loader mode: USB
- Information about affected games (if any): All games.
To Reproduce Steps to reproduce the behavior:
- Use the same USB drive (or something equivalent to it I guess) to load games.
- Load any game (with PADEMU and VMC enabled to mimic my setup).
- Get stuck at any point while the game loads.
Expected behaviour I expected games to fully load just like with the "SiliconPower "The Simpsons" USB 2.0 8GB drive.
Screenshots
OPL Settings:
Loading game:
Gets stuck for the first time:
I re-insert the drive, keeps loading:
Gets stuck again:
I re-insert the drive, finishes loading and lets me play:
Additional context I'm using PADEMU and VMC. Disabling either of those or both at the same time didn't change the result, games still got stuck. Games I've tried:
- Gran Turismo 4: Gets stuck at the disclaimer screen prior to the first intro video, then it loads.
- Harry Potter Quidditch World Cup: Gets stuck to a black screen, then stuck at the "Play Station 2" screen, then at the first loading screen, then it loads.
- Need For Speed Underground 2: Gets stuck to a black screen, then stuck at the "Play Station 2" screen, then it loads.
- There are more games but they replicate the same behaviour as te previously mentioned games.
SanDisk USB 3.0 flash drives actually contain the same Nand/NVME chipsets found on M.2. drives but with a USB controller chip. They are very fast, cheap, and efficient drives with one damning downfall: HEAT! They have no thermal protection whatsoever. No passive heatsink. Nothing. They get insanely hot, and honestly, way too hot for the PS2's lowly USB 1.x ports to risk using any further. I have the 32GB model of this same SanDisk flash drive, and just using it for the 7 minutes or so it takes for Windows Media Creator to flash Windows 10 on it makes it get uncomfortably hot. SanDisk isn't the only offenders here. You really have to shop around to find a USB 3.x flash drive that doesn't have these chipsets and the excessive heat that comes with them.
Thanks for the head up on the drive's flaws! It's the only large capacity drive that I have, I don't use it much, but as it was FAT32 formatted it was perfect for my PS2 backups. I've never noticed any heat issues, but as I said before, I don't use it that much nor that hard to even get to that point. I don't intend to use this drive forever, I'm just using it while I wait for an OrangePi Zero or similar in order to use SMB instead. I guess I could try to run this drive through a USB hub so it reduces its speed (and hope that solves the loading issue).
I'm pretty confident the issue is heat, which causes it to disconnect from the host because these drives -- for some fucked in the head engineering reason -- are drawing over 800 mA of power compared to 200 to 400 mA that USB 2.0 drive will, which explains the excessive (and unacceptable) 65-70 degrees Celsius these poor things are hitting. I try to avoid using mine as much as possible - even going so far to put a backup of my PS4's firmware on a 10+ year old 2GB flash drive.
SanDisk/Western Digital is aware of the power ... and don't give a rat's monkey's ass about it ... https://forums.sandisk.com/t/ultra-fit-usb-3-0-excessive-heat/33099
Oh I see, so they draw a lot of current, that explains why all the USB devices attached disconnect. I'll try a powered hub (I have one with a 2A PSU, it should be plenty), if that solves the issue then most likely it's the current draw that is the issue as you said.
I usually use my old and reliable Kingston DataTraveler G3 for everything, but the PS2 ignores it's existence (I know about Kingston drives and PS2 not being good friends), so I'm left with other low capacity drives or my fast and large capacity (that I also now know to be unreliable) SanDisk. As I said I'm not planning on using it for the long term so I'll try to find a temporary solution until I get to put on the SMB server.
Thanks for the help!
Edit: It also makes sense that it disconnects while the initial heavy reading is done and thus taking more current than it should, so yeah, now it all makes sense.
Edit 2: I've tried the powered hub and the USB still disconnects while loading :'( . How probable would be that the issue resides on some reading error because of the fast speeds (at least topping 1.1 speeds and also the faster access times compared to old drives) or because of fast reading "blocks" of data or something? Is there any way that I could provide some kind of log or something that logs all the activity of OPL and issues that may arise?
This video is revealing. I believe Sandisk deliberately used USB 2.0 controllers when mass producing USB 3.0 drives, and the excessive heat generated from the power draw is coming back to haunt them i.e. taking out capacitors, controllers, reheating cold solder joints that then become ungrounded/short out ... https://youtu.be/GR1PldjDchk
I've been having issues with my own USB3 drive. It seems the maximum nr of sectors to read is limited. I think I fixed it by limiting the number of sectors to 128 (64KiB). Any value larger will make it crash when a game request a larger block.
Could you test the following build?: https://github.com/rickgaiser/Open-PS2-Loader/tree/test-usb3
I've been having issues with my own USB3 drive. It seems the maximum nr of sectors to read is limited. I think I fixed it by limiting the number of sectors to 128 (64KiB). Any value larger will make it crash when a game request a larger block.
Could you test the following build?: https://github.com/rickgaiser/Open-PS2-Loader/tree/test-usb3
I don't have my PS2 right now, when I can I'll test for sure. Thanks!
I tried it and it doesn't fix my issue :( I still need to unplug and plug again the USB drive to continue the game loading.
Don't know if by crash you mean that OPL crashes, but in my case it doesn't seem to crash, but instead it seems to freeze and it resumes working after re-plugging the USB drive, like it's waiting for the drive as if it were unplugged.
I've replicated your test:
- Almost the same USB stick: "Sandisk Ultra USB 3.0", but 32GB instead of 128GB
- PS2 SLIM 90k
- Games: GT4 and NFS-U2
- Logo enabled
- v1.0.0 release
But both games work fine... perhaps the issue is with the 128GB model only, but I don't have that model. Without being able to replicate the issue, I cannot debug/fix it.
Are there any other sticks known to have this same behaviour? I have some usb3 stick that had a different problem, and seem to be fixed with limiting the number of sectors. But this behaviour I cannot replicate.
To better describe the issue, it seems that the USB drive freezes. If you want I can record a video showing the thing. The USB drive has the blue indicator light that pulses slowly when inactive and strobes a little ~~faster~~ slower when in use. Well, the light in my drive gets stuck in its current position whenever I load a game. If it was off when I load a game the light stays off, if it was at half brightness then it freezes like that, etc. It's like the drive "crashes".
As you said, it may as well bean issue with the 128GB version. I have no other USB3 drive to compare, only USB2 which work fine.
I've compiled your repo myself, the only other possibility is that it compiled wrong or without you fix, which I don't think happened as I cloned the correct branch and I used the latest SDK.
Is there any way I could get any logs for OPL? Or maybe a simple modification to OPL to alert on the screen when the USB device disconnects (as that's what I think its happening)?
Edit: To add, this issue is present with ALL games I try, even with OPL apps, so I'd say it's obvious that it is not a specific game issue but an issue with the USB drive and OPL.
I got lent a different USB drive, a Kingston DataTraveler 100 G3 (16GB USB3) and it didn't show any errors loading games using old OPL nor using your modified version, so I couldn't replicate the issue with another drive.
I've been testing some Linux distros with my Sandisk USB 3.0 32GB drive that gets insanely hot and a Patriot Rage 64GB USB 3.0 that kicks major league ass, and noticed when using the Sandisk in 3.0 mode to burn the ISOs, it gets hot, but when I do the same in a USB 2.x port, there's no excessive heat. This drive only gets hot when used in a USB 3.0 port in order to achieve the necessary write speed. Therefore, the PS2's 1.0 ports could never be damaged by this drive. Heat isn't the problem here ... we can be sure of that!