Self Bootloading Mod-Chip

@bateske has spoken (PM). When powering on with the menu or the last burned game is no longer decided by an EEPROM flag. Instead the startup method is hardcoded into the bootloader.

The activation sketch now will let you choose which startup method you want and flashes the modchip firmware accordingly.

afbeelding

5 Likes

Cool - but why? Because of an abundance of caution over byte 0 in EEPROM?
Just curious :slight_smile:

There are quite a bunch of games that corrupt the EEPROM setting. After playing one of those games Arduboy suddenly won’t power up into the menu again. This is very confusing to the user.

By hardcoding the option. It is more reliable and saves a lot of work (adapting the games and customer support for example.)

1 Like

You still have the problem with library system EEPROM settings, so it’s best not to run those sketches until they’re fixed, even with this change.

1 Like

Is that happening? I’ve given up on EEPROM management, nobody wants to take it seriously.

But the impact of of that is less severe then a non starting menu. Still it would be nice if those problematic games were adapted. I’ll leave it to other community members to look into that.

I don’t know, but until they are, I wouldn’t include any of them on the Goldcart.

I’ve tried to further dissuade people from doing this by changing the heading in the Arduboy2 library README:
https://mlxxxp.github.io/documents/Arduino/libraries/Arduboy2/Doxygen/html/index.html#autotoc_md8

Maybe we could also create a topic in this forum (in addition to the spreadsheet) with a list of all known sketches that need EEPROM fixing. If anyone wanted to tackle fixing some (licence allowing) and did so, we could mark them as fixed and either get the original updated or provide a link to the fixed version. Even if none get fixed, at least we have a reference if someone complains of symptoms that are indicative of this.

2 Likes

I’ll still leave address 0 as “reserved for bootloader”. Who knows, you may find it useful for flags for other not-so-critical features in the future.

:cricket: :cricket: :cricket:

Maybe the next game jam should be fix the EEPROM on your old games.

Do you have any examples?

I genuinely can’t remember the last time I saw a game that was overwriting the Arduboy2 reserved area of EEPROM.
(Not counting the one included with the Arduboy2 library that’s actually supposed to be doing it, of course.)

What about all the people who actually bother to pick a randomish offset into EEPROM to assist with wear levelling?
And those spreadsheets that @Mr.Blinky and @acedent created?
I wouldn’t call that ‘nobody’.

If there’s that many games overwriting the settings that it’s an active problem, just offer up an incentive for helping to fix the problem - nobody wants to throw themselves at a thankless menial task.

Make a badge for it or something, everyone likes badges, especially badges awarded for being helpful.

I’d give it a go myself, but like I say,
I can’t even remember the last time I saw a game overwriting the reserved part of EEPROM.
(I don’t tend to actually get around to playing that many games,
I mainly just skim the code and get back to what I was doing.)

There are quite a few listed in the spreadsheet. Many appear to be ports of Gamebuino games, which I assume must start at address 0 by default.

When not putting them on they will easily get out of sight again (these games have been around for a while) and be forgotten. Putting them on the cart keeps them in sight with a better chance they get fixed eventually.

They’re colored red in this spreadsheet

Hence my suggestion they be put in a forum topic.

Nice got linked on Hackaday! Thanks @Mr.Blinky for all your hard work and help on this!

6 Likes

Is it possible to upload new games to the external flash chip?

Yes you can put together your own compilation of games and flash them.

How is it done? Is it with a program, or do I need to do something custom?

Well at the moment it is little bit to do:

put together the games and images in according folders, write the csv file and then start the python script to have the games uploaded.

But i am not sure if there will be a better solution provided. I saw some discussions around that if i remember correct.

But anyway you can be sure that even without any knowledge you will be able to compile your own cart. The community is that helpful and genius to for sure provide either the most easiest way or at least an extended user guide on what to do :wink: I already have a homemade FX and the process already today is very simple but an initial work. But maybe it just feeled a bit of a work because i have created the gold cart with all the games on it. :joy:

Right now you’ll have to create a .csv file with links to your games you want to include. This tool will compile the bin file that forms a cart to go on the flash chip:

We are hoping to make it more streamlined so you can just drag and drop your favorite games to create your own cart.

Also, I expect I will be making, and hopefully others, remix carts of their favorite selection of games so you can try them out bespoke. Like, I would like to do a “Developer” cart, where all of the games are sorted by developer for people who have made 2 or more games.

Maybe I’ll buy one when they come out. I was playing games and writing small programs on a DIY Arduboy. It should be possible to add those chips to my DIY arduboy and try it out.