PS2 Updating OPL-DB: Help needed

citronalco

Forum Noob
This post is about OPL DB, a quite popular fork of Open PS2 Loader created by Jay-Jay that includes an extra page for PS1 games together with a nice Popstarter integration.

OPL DB did not get updated since January 2022.
I'm currently trying to update OPL DB to the current ps2homebrew's OPL codebase.

I've already merged all ps2homebrew commits until now (2023-10-04), and did some basic testing: Everything seems to work properly.

EXCEPTION:
Popstarter only starts when running OPL-DB in pcsx2 emulator. On real hardware I get a black screen.
It seems like OPL-DBs included patched elfldr does not work properly when getting built with the current ps2sdk.
I really need help here, as I'm neither a professional developer nor do I have experience in PS2 programming/debugging!

As far as I understand (maybe I'm wrong):
For years Open PS2 Loader came with its own elfldr library. This got patched for OPL-DB to be able to run ELFs from memory, a functionality required to run Popstarter conveniently. Some time ago, OPL switched to using ps2sdk's integrated elfldr function. But this does not allow running ELFs from memory, so Jay-Jay continued to use the old elfldr. This does not work any more with the current ps2sdk, for reasons unknown to me. So either ps2sdk's elfldr must get upgraded to load ELFs from memory, or OPL-DBs elfldr must get fixed.
I've spent dozens of hours already trying to fix that. I am not able to do that on my own - I need help.

Here's the the code I'm working on:
github-dot-com/citronalco/OPL-Daily-Builds/tree/master
Binaries are here:
github-dot-com/citronalco/OPL-Daily-Builds/actions/runs/6599854446
I already created a WIP PR on Jay-Jay's repo, in the hope to draw some attention:
github-dot-com/Jay-Jay-OPL/OPL-Daily-Builds/pull/22
 
JJ integrated POPStarter against author will. Don't get me wrong please (I respecting Your time, effort and knowledge), but this project is quite unwelcome fork and everyone from the scene always wishing his death. ;)

@TnA @HWNJ @krHACKen
 
Last edited:
I was afraid of such a reaction:
While updating the code, I stumbled over some old and not very nice conversations on the web, and wondered what finally lead to all this.
But honestly, I'm not sure if I really want to know.

I'm still puzzled why "the thing that shall not be named" stops working on real hardware after an unknown ps2sdk commit, but still works in PCSX2.
Unfortunately it's very hard to impossible to create older ps2sdk versions to bisect, and the docker images I found are either very old or very new, but nothing in between. I also can't get ps2client on Linux to return something via ps2link for debugging (if that's still the way to go).
Any help is highly appreciated.
 
I'm still puzzled why "the thing that shall not be named" stops working on real hardware after an unknown ps2sdk commit, but still works in PCSX2.
Because Jay-Jay did not merged every commit from the original OPL into his whatever. Why? Because in case of adding some new stuff, the malarkey he was mixing in the dumpster will not compile or work on his old SDK. So, for that reason he skipped lots of IMPORTANT commits, many for compatibility with newer SDKs, but many were also graphics and memory fixes.
 
But honestly, I'm not sure if I really want to know.
Legal reasons.

Some simple examples:

Did you noticed his fork's logo is an edit os SEGA Genesis logo?
OPL%2B%2B0.9.4%2Brev.1036%2BDB.png

sega-genesis-mini-logo.png


Or maybe you noticed the App Store's icon right there in the Apps page in the built-in theme?
App-Store-Logo-2013-2017.png


Now, for the strongest reason:
OPL DB looks for a launcher made for a proprietary software made by Sony which is NOT distributed in his legit fashion. Meaning everyone who uses POPStarter has NO WAY to dump and recreate the POPS_IOX.PAK by himself. Users must get a pirated file to use it, no matter what. Even if for a big miracle they get the official files from an old HDD, they will need to be rebuild and repacked with non-public tools to get the files POPStarter needs to work. Do you see where this is going?

Please, read this entirely:
https://www.psx-place.com/threads/s...daily-build-or-githubs-opl.37510/#post-336210
 
I WAS WONDERING WHERE THAT GOMMY ASS LOGO CAME FROM ON MY OLD OPL SET UP! Aliexpress is still shipping their FMCB cards with this fork

Whats weird is that once I added the new opl program from yall I havent been able to find that version since, no loss
 
Because Jay-Jay did not merged every commit from the original OPL into his whatever. Why? Because in case of adding some new stuff, the malarkey he was mixing in the dumpster will not compile or work on his old SDK. So, for that reason he skipped lots of IMPORTANT commits, many for compatibility with newer SDKs, but many were also graphics and memory fixes.

I would not bet on on, but far as I can tell, in the latest Jay-Jay OPL-DB code every single commit from original OPL was in.
At least now everything is in: I merged offical OPL's code into OPL-DB's in smaller steps, to ensure it builds and runs, and did several diffs. The code that got added to OPL-DB is basically the extra page for POPS (they continuously backported changes of the APPS page source), and the extension of elfldr. The code looks not bad at all.

Sure, the quality of the images are debatable. POPS_IOX.PAK imho is a non-issue, i.e. most emulators don't include the ROMs. But totally out of question is that fight between OPL-DB and OPL guys. The more I read the worse it gets. I understand that it's no fun having dozens of people starting issues on the wrong repo, and "Daily Builds" as a fork's name is cocky at it's best. Study, share, improve are the principles of Free Software. Not embrace, extend, extinguish.

There are many tutorials out there and even some tools to get Popstarter working with official OPL, but it's still harder than with OPL-DB. But doing this is a one-time job. My main reason for using OPL-DB is the additional page for PS1 games: It simply looks much better when uLaunchElf is not stuck between Tekken and Wipeout.
Guess for my purpose it would be sufficient to have a second APPS page, maybe with a configurable name.

But I still want to know the cause, why, when compiled with the current ps2sdk, the patched elfldr can start popstarter on pcsx2, but does no longer work on real hardware. I mean, ps2sdk's elfldr even shares some parts of OPL-DB's patch (wherever they copied it from).

(Sorry for all the text)
 
Sure, the quality of the images are debatable. POPS_IOX.PAK imho is a non-issue, i.e. most emulators don't include the ROMs. But totally out of question is that fight between OPL-DB and OPL guys. The more I read the worse it gets. I understand that it's no fun having dozens of people starting issues on the wrong repo, and "Daily Builds" as a fork's name is cocky at it's best. Study, share, improve are the principles of Free Software. Not embrace, extend, extinguish.
Get this point: If OPL DB looks for VCD files which are only compatible with POPS, then there we have legal issues. See what I mean?
On the other hand, using OPL's app page to list ELFs which forward to POPStarter is NOT an issue. OPL must be as white as possible.
Learn the story of POPS and POPStarter to get the whole panorama, please.

There are many tutorials out there and even some tools to get Popstarter working with official OPL, but it's still harder than with OPL-DB.
I'm sorry, but you're reading in the wrong place.
Doing it in OPL is way easier. How? Simple: Use this https://www.psx-place.com/threads/popstarter-game-installer-for-opl.34243/
Try to beat ONE CLICK on easiness.

My main reason for using OPL-DB is the additional page for PS1 games
Which is a legal problem and you already have the APPS page in OPL for that matter.
Oh, there's also POPSY-X for XEB+ if you want alternatives...

It simply looks much better when uLaunchElf is not stuck between Tekken and Wipeout.
Then create a new app page and make it read conf_apps2.cfg which is a reasonable change with no legal issues.
Also, POPSY-X on XEB+ doesn't has this issue, even when it reads from conf_apps.cfg
The solution was simple: filters.

Guess for my purpose it would be sufficient to have a second APPS page, maybe with a configurable name.
I should have read this first before writing that thing above.
 
Like I wrote on the PS2-Scene-Discord... I am willing to help "to a certain point", but I will not help making OPL DB popular. I can help in fixing some things (update the theme with new assets that others contributed; help with SOME code issues, etc.), but I won't engage in updates when they are done to the official OPL Beta-builds and so on...

POPStarter and ExFAT is an entirely different issue.

...and I consider OPL DB kind of redundant, now that we have AthenaEnv and Enceladus and can have WAY better and more flexible GUIs/Launchers/Frontends...!

: If OPL DB looks for VCD files which are only compatible with POPS, then there we have legal issues. See what I mean?
I disagree on that one. The mere lookup of these files is not illegal.
The usage of copyrighted stuff and additionally linking an project with another license to it, is at the very least "questionable".
Which is a legal problem and you already have the APPS page in OPL for that matter.
Nah, the page itself is not a legal problem. Other things like it's implementation (how) as well as the theme's usage of copyrighted items IS a legal issue in some countries.
Oh, there's also POPSY-X for XEB+ if you want alternatives...
Yes. That one seems to keep everything legal as well as supports more than only POPS! If I am wrong, someone should correct me on that.
 
Last edited:
Any help is appreciated.
The current state is still the same as written in the first post, haven't changed anything since then.

I will neither start a promo campaign nor a new forum. Promise. Jay-Jay seems to have lost interest anyway, and ps2-home looks pretty much dead. I also even imagine to rename the fork to something less confusing - if that's still a thing today.

I figured out very late that it only works on pscx2 and not on a real PS2, and newer OPL commits require newer ps2sdks. Bisecting is no fun here. I'm pretty sure someone who has some clue of PS2 programming and knows how to debug stuff can figure out easier what's going wrong here. Elfldr code is pretty small.
 

Similar threads

Back
Top