New build available:
https://github.com/grimdoomer/Open-PS2-Loader/releases/tag/v1.2.0.3-beta
Change log:
- Fixed issues with manual start mode for devices
- Fixed issues with freezing on startup
- Fixed issues with IGR freezing/not working (I've tested this quite a bit and it hasn't crashed yet, but I'm still not confident the issue is fully fixed)
- Fixed issues with renaming/deleting games not refreshing the game list
- Fixed issues with config files causing freezing on startup (thanks Bat_Rastard for the config file upload)
I've included a pdaemu version with this build as well, though it's completely untested. There's a couple things I want to highlight which I've detailed below.
MBR vs GPT
MBR partition style only works on drives up to 2.2TB (it's technically like 2.19TB), but GPT works on all sizes. The drive does not need to be larger than 2TB to use GPT, you can format a drive of any size using GPT partition style. When you do format a drive using GPT style you will also get what's called a "protective MBR". It's an MBR partition sector that's there for backwards compatibility with OS's that don't support GPT. Unless you're plugging this drive into a very old PC (like Windows XP old) every version of Windows from Vista and up have support for GPT, so you're not losing anything by using GPT even for drives of smaller sizes.
OPL has no insight as to whether the device is MBR or GPT, that's all handled by a different module and as far as OPL is concerned there's no difference between the two. There isn't any reason why one would perform better than the other. Once the MBR/GPT sectors are parsed and the exFAT file system is mounted they're never accessed again until OPL is restarted.
OPL has no ability to rewrite the MBR or GPT sectors, nor will it try to. If you experienced file system corruption issues and you haven't reformatted the drive since using one of the previously posted OPL builds with corruption issues, this is probably a result of those issues. I would recommend formatting any drive used with the older versions I posted as there was a chance of file system corruption occurring, even if it seemed to work fine since then. This is exactly why I removed those builds from my github. It's possible there is some other corruption bug at hand that I haven't fixed yet, but I have been using my HDD, USB, and MX4SIO devices heavily since the last two builds and haven't had any issues.
Config file issues
This latest build I posted, v1.2.0.3, contains a number of bug fixes for issues with config files causing freezing on startup. However, I still have not fixed the issues related to config files being loaded/saved to incorrect devices. The bottom line is, this is complicated for other reasons. Some people want the config file on the MC, some people want it on the usb stick, others might want it on the HDD. Trying to save it to mass0 might not save it to the same device every time, as mass0 isn't specific to a single device, rather, it's whichever device was mounted first.
Rather than trying to come up with some complicated logic for where the config file should be saved to, I opted to leave this as-is. OPL will default to looking on the memory card first, and check mass0 second, and again, mass0 is the first fat/exFAT partition to get mounted across all devices plugged in. It may not be the same partition/device every time depending on how long it takes for the devices to ready up and which devices you have plugged in at the time. This feature is probably due for a redesign now, but I don't have any plans on doing this myself.
Menu issues
There are still a number of bugs with the main menu after adding in "hot-plugging" support for BDM devices. Things like
- The left/right arrows appearing/not appearing correctly based on the current menu state
- Enabling/Disabling BDM devices in the OPL settings menu may require a reboot of OPL before they appear in the games list menu
The bottom line is the OPL menu system was not designed to handle menus dynamically appearing and disappearing. It was designed to handle 4 or 5 static menus with no ability to dynamically update the menu list. Adding support for hot-plugging devices was a feature I thought most people would enjoy when using BDM devices, but it has pushed the menu system to its limits and these bugs are a result of that. I don't really have any plans on refining this any further, as it's taking more time to address these smaller issues than it's worth, and trying to fix one issue just causes another to appear. Ultimately the menu system should really be rewritten to handle this type of functionality vs. me trying to hack it in and hoping for the best.
Submitting back to the main OPL repository/PR status
My initial goal was to get my changes checked into the main OPL repository but a number of things have changed along the way and I no longer intend to submit a PR for these changes. The reality is I ended up making way more changes to support these new features than I initially anticipated, and it's too big to submit in a single PR. There's also a number of smaller issues at hand (menu things, config file things, etc).
Submitting multiple PRs would take a long time, and any issues that pop up (and there will be issues) whether my fault or not, I will have to go investigate. The debug-ability of OPL (and ps2 homebrew in general) is extremely poor, and debugging even a small issue can take hours to investigate. As I mentioned above OPL was not designed to handle some of these new features (40+ people have been hacking things into it for over 10 years now and the code shows for it), and there are other features which are now due for a redesign as different people expect different behaviors from them than how they used to function.
When I initially took this project on I had no intention of sticking around the ps2 community long term. I mostly came to making loading games off a HDD easier, and look into a couple hardware specific things. I will continue to try and look into any major bugs that pop up, but as I have mostly achieved my main goal of making it easier to load games I no longer plan to see this through to the end for the reasons stated above. I will leave all the changes I've made on my fork of OPL on my github, and I may even try and clean up my changes into a "PR ready" branch in case someone else wants to try committing them back to the main repo. But I don't have any plans on submitting them myself.
Once again a huge thanks to everyone who helped test this and reported feedback, without you this would not have come as far as it has in such a short period of time.