Separating the GUI from the ee-/iop-core #553
Replies: 3 comments 5 replies
-
This still sounds like a lot of work for any choice, so I think that this should only depend on the actual developer's decision. The only thing: I think that in any case there should be something like a "failsafe" configuration. So, we can just tell the user: "just remove all modules from the folder and check again". I mean that modular modules should be more optional or extendable, not the necessary part, or at least the main opl.elf should contain a default set of all necessary modules. |
Beta Was this translation helpful? Give feedback.
-
Yea I’m not sure tbh, I have a poc here KrahJohlito@90b998d for idea2 if you guys wanna take a quick look, readded modes 7 & 8 to GUI if core version is 093. But so many questions.. using this method we could remove compile option for pademu in GUI and just have it core dependant but what happens with debug modules? Do we default to compiled in modules and that is where development continues for the core or separate repo? Or do we just go with idea1.. I have questions relating to that also lol.. or maybe it’s best to just stick with status quo and don’t split? It would be good if we could come to a general conscientious @ps2homebrew |
Beta Was this translation helpful? Give feedback.
-
If idea 2 is used, I think it would be a good idea to use some sort of archive file like zip to group the elf/irx together (in addition to loose files on the filesystem). I'll throw in another idea in the mix: This would allow a separate "backwards compatible" loader elf while newer loader elf could change the EE core interface in backwards incompatible ways. The interface that just needs to stay stable is the config file interface, and that could use an extensible format like BSON, JSON, or XML. This infrastructure could also be partially reused for homebrew that rely on the environment prepared by uLaunchELF. |
Beta Was this translation helpful? Give feedback.
-
I would like to discuss what would be the best approach to doing this, since it can be done in many ways. But first, what parts does loading a game consists of:
Idea 1: 'mini-OPL'
Separate both the eecore and the iopcore into a separate "OPL-core" (just like "mini-OPL"). And leave the rest as "OPL-gui". The OPL-core would be started using command line arguments. The same core can be used for launching games from OPL-gui, RetroArch, wLaunchELF and another (coverflow?) launcher. Also this core would be very suitable for launching games from HDDOSD. Also for testing over ps2client/ps2link, the OPL-core would be very easy to test.
There's a few downsides however:
The OPL folder structure could look something like:
Idea 2: 'modular core'
Instead of embedding the EECORE and all needed IRX files into OPL, we could also load them from a folder inside the OPL folder. Allowing the user full control over what specific versions of what modules to load. For instance an old version of smstcpip.irx that was faster, or a custom version of usbd.irx that is more compatible. The folder structure could look something like:
Both idea 1 and 2 could also be combined. Making a very small oplcore.elf, that loads modules from a specified location.
@KrahJohlito has already started working on something that looks like Idea2. So let me know what you think of the idea. Any other/better/more simple ideas? Don't split them? All ideas / comments welcome.
EDIT: Debug modules added
Beta Was this translation helpful? Give feedback.
All reactions