Arduboy FX: Pre-built game packs?

Hi There,

So I just recently received my Arduboy FX and it’s great! However, I was rather unsure about how I could add more software to the loader menu, or if anyone already produced an updated image that contains more games that were missing from the original image used?

Does anyone know if such a possibility exists? Or if any alternate images exists for game libraries?

The tools are here:

An easier version is here, I haven’t tested it yet though:

The best guide for doing this is probably here:

We’re working on making it easier, @tuxinator2009 had started an application here:

Might be a good time to check in with him if he got the FX and how we can get the utility finished.

3 Likes

Had a couple major projects under my belt while I waited. Now I have the FX mod and have mostly finished the hard part of my other projects.

Really looking forward to finishing this one, especially since I have an idea for an FX based game.

1 Like

Your project is pretty impressive, I must admit! I know it says read/write is not implemented yet, but assuming you just want to export images, I assume it mostly still works?

Edit: I guess another question! Does the source files for the original flash-cart image exists somewhere? It would be nice if we could re-compile the original *.BIN production image ourselves, so that we could add more games to it.

1 Like

One of the feature ideas was to read the compiled fx data from the Arduboy and add new games to the end. That way it doesn’t waste write cycles.

I think the bootloader has checks for this, but if the order of the games change then that would only help so much.

It would be neat if there was a way to read a BIN back from an Arduboy into the source files. That way, people could fully modify the image without having the originals, as in some cases (Like the production gold image), I have no idea where the non BIN files are.

Interestingly the read/write of HEX/BIN and compiling CSV carts to BINs is all fully implemented. The methods are currently hidden behind a debug interface. I wanted to make sure I had the routines setup properly before trying to tie them into the main UI (more complex internally, but simpler to the end user). Main problem with at least allowing access to those functions temporarily is I had no FX to test with. I have a mod chip and a homebrew Arduboy, but sadly both sit on a shelf because turns out I’m more of a software kind of guy.

The only main part that’s needs to be implemented for the core functionality is the drag-drop interface for adding games from the repo. I also want to be able to have a list of games the user has downloaded that aren’t in the repo (like a local repo to browse). I do already have the ability to detect Arduino builds and optionally choose a BIN for FX dev testing.

I think I figured out a way that doesn’t require recompiling the HEX with a specific offset for the BIN. The way normal HEX’s and BIN’s are uploaded without needing recompiling is a specific vector is modified with the BIN’s offset. So I’ve got a “Upload Dev App” feature that grabs a HEX and optionally a BIN (if a BIN is provided then it puts it as far towards the end of the FX chip as possible and updates the HEX accordingly).

That sounds interesting! I was wondering why all my “Drag and Drop” operations did nothing (^_^); Hopefully there will be an option to add “Everything” from the repo in one shot, so you can remove the ones you don’t want rather than having to add each game manually. Does the repo actually have metadata on which categories a game or app belongs under (Somewhat like how Linux programs get catagorized)? Or for that matter, is any of that repo information cached locally so you don’t need to re-download information each time the app starts?

Edit: FYI - I’d be more than happy to help you test your program if you don’t already have an Arduboy FX in hand. I don’t know if that’s still the case, but I figured I’d offer just in case you were still blocked by this. :smiley:

I could easily do an “Add Everything” from the repo (ArduManFX specific cart saves could indicate which games have been specifically removed so games can be updated and new games added with a single button click).

Actually yes it does. In fact the “Categories” filter’s list is populated based on the “genre” tag of each game in the json file. With that it wouldn’t be terribly difficult to automatically add a game to a specific category. Might make the functionality implementation a lot easier to just click to add a game and if you really want to change the category it’s in then a simple right-click on it in the list would be far easier to implement than the drag-and-drop interface. I don’t generally consider alternative options simply because it’s easier to code (for GUI’s I always prioritize easier interface vs more complex code).

Yes actually everything is cached locally. The repo’s json file is cached locally along with it’s ETag (web method for checking if a source is newer than the cached copy). All of the games (HEX’s, BIN’s, and images) are also cached locally. Main downside is the games aren’t always hosted within the repo itself. If the repo were able to contain the appropriate ETag for each HEX, BIN, and image (plus any other files included with a game) then I could check those ETag’s with the locally cached copy instead of sending out a download request for each and every file (actual download only happens if the file is newer than the cached copy).

EDIT:

I do have an official FX mod chip now (ordered it blank and used the debug functions to build and write a cart).

Ah sweet. Being able to add all the games at once would be a total time saver. Normally people just want everything and remove only the demos/prototypes/unfinished games I think.

In regards to catagories, that’s pretty cool that the JSON file already has this. I personally have no need to re-categorize anything, but I could reasonbly foresee someone wanting to do it. I would agree with you that a simple right-click would be easier for users. Or maybe if there are enough customizable fields to warrent such a dialog, a “properties” window that has a radio button you just change the categories for.

In regards to your FX hardware situation, I’m glad it’s resolved. I understand it must be strange writing code with no actual way to verify if it works correctly on real hardware or not (^_^);

1 Like