Skip to content

Instantly share code, notes, and snippets.

@nloomans
Last active Aug 20, 2018
Embed
What would you like to do?
Decoupling Flashpoint and LaunchBox

Decoupling Flashpoint and LaunchBox

The goal of flashpoint is to archive Flash applications so that they can still be played, used, and researched years after Adobe Flashplayer has reached it's End Of Life. Unfortunately, LaunchBox is a closed-source application which only works on Windows. People who run Linux or MacOS will be left out. This is a proposal to decouple the Flashpoint project from LaunchBox, while still allowing people to keep using LaunchBox is they so choose.

Right now, a flashpoint application is made by creating a file structure as defined here, and then sending it to BlueMaxima. BlueMaxima will then use his auto-curator tool to convert it to a LaunchBox format and add the files to the giant Flashpoint folder.

Current Pain Points

At the moment, the Flashpoint project has a few pain points which this proposal attempts to address.

First, users who do not wish to download the entire 31GB Flashpoint can use Flashpoint Infinity. Flashpoint Infinity will automatically download files from archive.org as soon as the game in question sends a network request requesting a specific file. Unfortunately, this means that it's impossible to provide accurate progress information during the download, and the game often has to be restarted a couple of times to prevent and timeout errors before it starts working.

Secondly, other projects such as LunchBox, which attempt to provide an open-source and cross-platform experience when using Flashpoint, currently attempt to parse the LaunchBox format and implement it themselves. While this works nicely on Windows, it needs to convert some values in the Flash.xml files to their Linux/MacOS equivalents. This process can be error-prone.

The Proposal

My proposal is that instead of directly converting the Curation Format to LaunchBox, we simply put the created file structure into one giant git repo. This has the following advantages:

First, this git repo can then be exported to many formats, for example, the LaunchBox format. Other exporters can easily be written which allows the Flashpoint project to support many catalog applications at the same time. For example, someone could write a script to automatically add these games to a Steam library. This git repo can also be read directly by other applications like LunchBox, which have been designed with Flashpoint in mind.

Secondly, because games and all of their resources are all nicely separated in their own folders, it gets easier for someone to download one specific game, and projects like LunchBox could add custom progress bars to indicate when the downloading is finished.

Thirdly, having everything in one git repo can make collaboration easier. It can be easier for one to finish someone else's work this way. The curation format can also be extended to support entering more information, and existing games can be easily modified to contain this new information.

Closing words

This ends my proposal for the Flashpoint project, comments and feedback would be highly appreciated. You can find me as @mrCyborg in the Flashpoint discord.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment