A post was split to a new topic: How to initialize FX Game Data
What is the system required to run this program?
I use Windows 7
I run the .exe file but it stops with an error
Maybe your Windows is 32-bit windows?
The exe is for 64-bit windows only. If you run it on 32-bit Windows you get an error.
Would be nice if 32-bit was supported though.
What does the error say?
@Mr.Blinky The Windows I use is 64-bit
This is super awesome! Thanks for making this! This is something I’ve been wanting for a while and wished I had when I was making arduboy games when I was in college.
I’ve been busy with other stuff for quite a while but I’d like to get back on this.
I’m not sure, but I think it might be Windows 10+, I’m sorry. I’m using qt6 in order to support MacOS (qt5 does support it but it didn’t support m1/etc) which I guess drops support for windows 7: Supported Platforms | Qt 6.6. I’m really sorry
Thank you very much! I’m glad it’s been useful!
So, currently I’m working on a kind of updater for carts, but I get the feeling it will need some real “field” testing before it will actually be useful. There’s so many different cart configurations that I’m sure to come across a lot of stuff I didn’t expect. As such, I’m going to release the next version with the updater included, with a disclaimer that it may not work in every scenario and that you should use it with caution. Then hopefully people will report any weird bugs and edge cases and it can slowly get more reliable.
The updater will work as such:
- You must have SOME cart loaded into the cart editor. Doesn’t matter where it came from
- The program connects to the cart builder website and requests a list of all the programs
- The list is compared against the current cart. Some special rules are used because of all the unique configurations out in the wild:
– First, the title + author are compared against those stored in your cart. However, some carts do not have these fields filled (mostly the default cart)
– If no title/author is matched, I look for exact title image matches. I’ve found this works in nearly all cases, and should be good enough for the “I’m updating from a default cart”.
– If a match is found, the version is compared against the one on the website. You’ll get an updated version if the website version is higher. If there’s no version field on your cart game, it is assumed to be ‘0.0’. This will cause unnecessary updates only once (and is just safer anyway, and you’ll get a real version stamped into your cart upon update)
- You will be presented with a list of updated games, as well as a separate list of “new” games not found on your cart
- You will be able to select which games to update or add. Thus, if you’re really concerned about replacing certain things on your cart for some reason, you’ll be able to meticulously scan and catch them. But for most people, they can just click through this screen.
- Games which are on your cart but not on the website (such as custom stuff) will not be touched
Using this system is of course voluntary and must be requested through the menu (no auto-updating). This should make it easier to get updates from the cart builder website without losing your FX saves.
ALTERNATIVELY, if you think this update system is bad, I was planning on doing another kind of system, but it’s a lot more “manual” (which might be better?). I was going to make an “FX Save Backup” option, which would create a specially formatted backup file which you can reapply to your cart. This way, you can do whatever you want to your cart (such as get the latest from the cart builder website) and just reapply your saves afterwards. I think the updater is “more useful” but perhaps a little more “dangerous” (though the “danger” is just like… at most a false positive match (currently NO games use the same title/author combo and NO games use the same title screen) or if you have some extremely custom version of a game on the cart website that you don’t want overwritten, in which case change the version to like 999.99 or just don’t use the updater), but the FX Save Backup gives you more control.
Consider the following situations:
- You just bought an Arduboy FX and want to get the latest games. Your cart has absolutely no contextual data because that’s just how it is (so no author, title, version, etc). You would just fire up the cart builder and click “Update”. It should “just work”, saying “every” game needs to be updated (fine) and that you’ll get a bunch of new games. After the update, your cart should be nearly identical to the cart builder website’s “whole enchilada”
- You’ve been keeping your arduboy FX up to date from the cart builder website and just want some updates. Your cart nearly matches the cart builder “whole enchilada” already. You fire up the cart builder and click “Update”, and it should “just work”. You get a couple updates and a couple new games, because your cart already has the contextual information required.
- You have mostly the same cart as the website, but you’ve added custom things. So long as you based your cart off the official cart before adding stuff, this is fine. The updater will keep the ‘official’ parts of the cart up to date, and not touch your random extras (assuming your custom entries haven’t used the same title/author combo as something else in the cart, don’t do this!).
- You’ve built a custom cart with a mix of community games and other things. You can still use the updater in cases, just have to be careful. If you’ve at LEAST used the ‘official’ title screens for the games, then you’ll be able to get updates for them. If you have not, the updater will list all those games as “new”, and thus you might get duplicates if you decide to mix your cart with all the stuff from the website.
Interesting. Must be newer macs then. I’m using Qt5 and have mac support. Granted the latest Mac I can test on is Catalina.
I think it’s great you’re thinking of so many use cases!
The one that will get the most use is people just wanting to update to everything, especially people who just bought one. But the easier it is to modify and edit the better!
I think everyone understands that you built this as a side project, I don’t think you should feel any extra pressure for development. I think you have the highest expectations for yourself out of all of us, which is why you’ve made such a good program!
Also bump for midi conversion
Right, I figure that’ll be the case as well, and that’s the use case I want to support the most. I know some people might get concerned over the “potential” for messing up the cart but like… that’d only really happen if you’re doing something very nonstandard with your cart, in which case idk, update it manually!
I haven’t forgotten! I’m pretty sure it’s on my list somewhere…
Right, I think it’s just newer Macs (I think specifically just M1). Though, since I’m not (currently) supplying an M1-specific release, I guess that conversion was rather useless lol
That’s interesting. In the past I’ve used Qt5 (PyQt5) on my M1 machine and it worked fine. Maybe it was just running Rosetta 2 though.
I want to do a lot more testing but here’s a video showcasing an update from a “stock” Arduboy FX image, which:
- Doesn’t have the information stored for each game, like title/author/etc
- Doesn’t have all the categories in the latest cart
- Is missing over a hundred games
You can see in the beginning, I start with the stock cart. You can see the number of games and categories at the bottom. Then, I run the updater. It shows an “update” for most of the games within the cart, because it couldn’t figure out what version it was supposed to be, so they all defaulted to 0. It also shows all the new games. After it downloads all the programs (in one big glob using the CSV endpoint, don’t worry @filmote), it applies the update. Afterwards, you can see that the order of the games and categories doesn’t change, it’s just that you got all new data. It also preserves all the FX saves, though I need to thoroughly test that. I scroll to the bottom so you can see that it added the new categories as needed, and I forgot to show that it adds all the new games to the appropriate existing categories where applicable.
It’s almost done, I just want to do some more testing. It was kinda thrown together. I don’t plan on fancying it up just yet, I know there’s a lot of rough edges but that’s kind of the modus operandi for this app lol
That’s OK … I cannot imagine 100 people doing this simultaneously.
But its looking good!
Oh but see, if I hadn’t used the bin endpoint, I’d have one person sending 400 requests to your server. That’s both way slower and also kinda bad for you lol
Well . not me per se. Its a hosted environment but I see your point.