Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Support for Kahvibreak and InstanceArchive (based off Flashpoint Launcher but modified) #42

Open
kaddisemu opened this issue Nov 18, 2023 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@kaddisemu
Copy link

Kahvibreak is a preservation project for all the J2ME/Mophun/Nokia 3410 games (instead of web games). It uses a modified version of Flashpoint Launcher and is a side project of BlueMaxima. I have tried importing it with FIL into LaunchBox but it does not work.
There is also Instance Archive which is also based on the Flashpoint launcher but is for early Game Maker games. FIL does not support this one as well.

I would love it if FIL supported these as I have a pretty huge collection of games and would like to add Java J2ME phone games (adding the standalone KEmulator and FreeJ2ME does not work) as well as early Game Maker games.

Here are the links for these projects:
https://bluemaxima.org/kahvibreak/
https://bluemaxima.org/instance_archive/

They aren't as updated as Flashpoint but I would still like to add them to my Launchbox collection.

@kaddisemu kaddisemu added the bug Something isn't working label Nov 18, 2023
@oblivioncth oblivioncth added enhancement New feature or request and removed bug Something isn't working labels Nov 23, 2023
@oblivioncth
Copy link
Owner

You're the third person to ask for this within a relatively short timespan XD.

This is something that I am interesting is trying to achieve, but it's not as simple to pull off as it may appear at first just because the other projects are based on Flashpoint's launcher and data layout. I would need to significantly rewrite libfp, as well as make major changes to CLIFp to allow for recognizing and seamlessly handling more than just FP dynamically at runtime (if I'm going to do this for Kahvikbreak, I'm going to consider the other Flashpoint spinoffs as well.

The major question is how much overlap is there actually in their innerworkings? Hopefully there should be a lot as I imagine they all use a database and JSON configuration files in the same way that FP does, but there is a lot of FP behavior that is semi-hard-coded and likely is specific to it. The more instances of exceptions and less following the rule that the other BlueMaxima projects have the more challenging this becomes. This could get especially annoying if the other projects usually do follow the tooling changes of FP, but lag behind release wise so my tools would need to support multiple revisions of the setup simultaneously.

Additionally, as soon as I accomplish this I then gain the maintenance burden of having to make sure any changes I made to any of the 3 involved projects not only don't break functionality with FP, but also with any of the other projects I start supporting. FP's development is already fairly active and consistently requires me to make breaking changes when they push updates so having to deal with that for multiple's of these could be a nightmare.

Of course, FP is orders of magnitude more popular than the other ones so hopefully they're not nearly as annoying to keep up with on their own.

So... this is something I want to look into, starting with downloading the couple other projects (I've never really messed with them) and inspecting them to see how much in common they share with FP at a technical level, but it would take a significant amount of dedicated effort that I can't currently say when I'll have the time for. At the very least this issue is good to have in order to track the request for when I can eventually get around to it.

Assuming I deem it feasible, after reworking the tools to allow for more than just FP support, I'll likely start with adding Kahvikbreak since it seems to be the most popular after FP.

@kaddisemu
Copy link
Author

The major question is how much overlap is there actually in their innerworkings?

This is a question you may want to ask Flashpoint and Kahvibreak's developers, They both have individual Discord servers if you want to check them out:
Flashpoint: https://discord.gg/qhvAkhWXU5
Kahvibreak: https://discord.gg/8TgbHAG
It could help you get a better idea of FP and Kahvibreak's differences

@oblivioncth
Copy link
Owner

What I more so specifically meant by posing that question was that once I have the time, I'll personally need to root through the files of each Flashpoint-based project to see what the overlap is like while keeping the specific context of my existing implementations in mind in order to fully determine how feasible doing this is in a reasonable amount of time.

While of course I'll reach out to the various project members if I have a specific question, making the overall assessment is something that will largely require direct investigative work from my end.

I've been on the FP discords for a few years at this point and am loosely friendly with the devs XD. Haven't had a chance to stop in the Kahvibreak one though.

@Fespinoza831
Copy link

I too would love to see support for this to be added.

@oblivioncth
Copy link
Owner

oblivioncth commented Jul 24, 2024

Took a quick 5 second peak at Kahvibreak as a random example, and one immediate huge issue is that it's still using LaunchBox XML, which my tools haven't worked with (on the import side) in a long time, since Flashpoint has long since moved to using an SQL database, along with many other huge changes.

Ultimately, this is kind of just a note to myself but...

Maintaining multiple CLIFp/FIL-like applications, one set for each BlueMaxima project is out of the question. I could add multiple layers of abstraction to genericize the concepts involved more than they already are (i.e. there are 'Games', 'AdditionalApps', 'Services', etc) and implement multiple backends so that any given "Blue" collection can be handled, by having an LB XML backend, SQL database backend, etc, and also account for the various other states these projects seem to have been left at in terms of techniques that Flashpoint has transitioned through over the years (do they have execs.json? Do they use QEMU? How is their linux support?); however, it goes without saying, this is a ton of work to account for every variable in a cohesive way.

Honestly, I'm thinking that if I ever have time to get around to this request, it might actually be easier to ask Blue, or whoever the current maintainer of each project is, if I can help them update the setup for each of these projects to be much closer to how Flashpoint is now, just so that I can make much smaller tweaks to CLIFp/FIL to make them work with said projects. Likely very little would change for the user perspective, and, not all of the features that FP has currently have to be migrated over, but primarily just the use of a database, along with a few other things. Probably can just use an older build of the Launcher too.

IIRC, unlike Flashpoint, all of these other Blue project's don't have "Infinity" and instead all game's are included by default (like FP Ultimate), which makes things a little easier.

Hmm, it seems that Voyager has been updated more recently and uses a database, so that's good, though the database format also keeps getting changed, so having CLIFp/FIL work with all of them would be a bit tricky still...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants