RevEng Posted April 26, 2015 Share Posted April 26, 2015 Traditionally 7800 programmers have had 2 very different devices they could use for storing data offline - the HSC cart, and the AtariVox/SaveKey. The HSC cart (built into the upcoming XM module) uses RAM mapped into the 7800's address space, and the Atarivox has an EEPROM that you issue commands to. The HSC uses a unique game identifier to distinguish between game saves, while the AtariVox uses areas that are handed out by Al. A while back I set out to write a unified driver for these devices in 7800basic, so games could use either device equally (if present) for saving high scores or game data. As part of this work, I requested a section of the AtariVox eeprom to be set aside for self-serve high score tables, to be used similarly to the HSC model. This post is meant to document this area, in case any other developers want to play along with the new scheme. The new area is located in the EEPROM at $6000-$7FFF. The game data is stored in 32-byte game entry records: [game ID hi][game ID lo][game difficulty][29 bytes game data] To use this area, a game should scan for records with game ID bytes matching it's own ID. If the game has multiple difficulty levels, it can use the difficulty level byte to distinguish between multiple records. Since the EEPROM is finite, the game should only reserve records for difficulty levels the player actually plays, and it should not expect the different difficulty records to be consecutive on the EEPROM. A game ID of $FFFF is considered to be free, and if the game doesn't find it's own ID before running across a free entry, the game should understand that it doesn't have a record yet and should use this first free record for storage. To reserve a specific game ID, please check that it's not in use in the HSC ID thread and announce its usage there. Lastly, 7800basic has a working implementation that's been run through a fair bit of testing. If anybody wants to borrow from it, you're more than welcome. More info: HSC cart breakdown, 7800 AtariVox EEPROM driver and info 4 Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.