Whoa, you’re right. There seems to be a conflict! The progress location seems to be stored somewhere in the custom level data! However, in practice, I can’t seem to actually change the progress with the editor and can’t change a custom location with completing a level??
What are the chances of not being able to support all the games’ use of EEPROM, considering we have games like MicroCity that uses all of it? (From my understanding.) Or my game, that uses like 420 bytes? What’s our plan for dealing with this?
Well what we already can tell from the unfinished list is that there are quite a few games that corrupt the system settings and those have to be fixed (preferable) or excluded (doesn’t solve corruption on manual upload). Then there a quite a few programs that use a lot of EEPROM and easily cause a collision
Since we’re recompiling everything, could we have different EEPROM banks? At the start of each sketch, we could add a line of code in setup() that would dictate the EEPROM bank being used, then swap it in/out of memory as part of the load/boot process? I know there was some discussion, but it seemed like the discussion was about saving EEPROM to a different memory space every time. This way would be only once a game loads.
In the library, it could look something like this…
@crait After seeing the large number of programs (and their sources) it would be very time consuming to add some kind of management system to games. besides that games that use a large portion of EEPROM would still have collision issues.
So I’ll be focusing on my backup/restore idea for the bootloader again.
Relocating games is still recommended though to reduce the wear on the same EEPROM locations and a backup / restore will also use the EEPROM location size info for a partial backup / restore to reduce wear
I guess @obono was misled by his own remarks in the source. Which do not match the actual record sizes used. He probaby forgot to update them.
I’m working with an offline excelsheet which works better for me and I’m not done with the list yet.
I think this is where it would be helpful to have my sorting done, because in practice you could focus work on just the top few on that category with the understanding that carts below a certain point are “not optimized and may corrupt EEPROM (save games)”.
This kind of flag, or sorting would be helpful for certain games like microcity that take up most of it anyways.
Are you trying to understand what each is using in order to alter games to avoid collisions? If so, you will obviously have to decide which games to focus on as you will not be able to cater for all the games in the limited EEPROM available - especially if some use a lot of EEPROM.
Are you looking to change some of the games to ‘even’ out EEPROM usage? Again, what games are you / we focusing on?
Are you / we looking to change the FX cart system to back up the EEPROM before switching games? In this case, you probably want to move all of the data to the same spots in the EEPROM so that the backup / restore routine can be simplified. (I assume backing up the entire EEPROM is inefficient but I know little of the FX mod to comment).
One great outcome of this exercise is to identify the games that overwrite the reserved EEPROM or sections of it.
Thats what I mentioned, creating a sort order for the categories so that the “favorites” are picked, and we try to make a best effort to prevent the EEPROM collisions from the “greatest hits”.
Developers will also be encouraged to make edits as well.
I mean, I’m pretty sure we can do this tens of thousands of times without issue, but in general I think if the top 50ish games don’t cause collisions I will say we have done a good job. Anything more than that I think will be really amazing. None of it is that “necessary” I don’t think, because I don’t get a lot of complaints of people going “oh my save game is corrupted”… however the likelihood of that goes up when people are encouraged to swap between games in rapid order.