Is there memory separate from programming memory?

So my Dev kit came with Araknoid installed, so I played it a couple of times which left a couple of score saves on the device. I then made some tweaks to the code and uploaded it to my Arduboy. When I played it again to check out my changes I noticed that the previous high scores were still there.

This suggests to me that there is memory where some game state data is stored separate from program memory. Is that correct? If so when putting different games on the Arduboy does this memory need to be cleared? If it’s not cleared will it impact other games that are uploaded?

Thanks in advance. Sorry if this is an obvious question. I just started playing with hardware.

The memory used to save the high scores is the EEPROM, and IIRC there is 1kb available. It is separate from the 16kb program memory. Ideally it should be cleared when loading another game, but the worst that could happen is invalid saves/high scores.

I believe there was some discussion on making a way to save the EEPROM state when changing games so your high scores wouldn’t be lost, but I don’t know if anything came of it.

2 Likes

EEPROMS are a neat little flash style memory that used to use UV light to erase held bits (20 years ago), and that’s what the Arduboy/Arduino uses to store information from the user. It’s like the harddisk in a way. The system uses a block of SRAM to exectute programs stored in the flash memory which can then write to the EEPROM as needed.

For some details…
Arduino Memory:
https://www.arduino.cc/en/Tutorial/Memory

Here’s Arduino’s EEPROM link: https://www.arduino.cc/en/Reference/EEPROM

1 Like