GP2X Filesystem 'Standards'
Although no standard is followed in the GP2X's filesystem other than the Filesystem Hierarchy Standard, a common way to store and retrieve common data (i.e. savegames) would be pretty nice and allow for development of backup/restore utilities and the like.
The GP2X's internal (NAND) memory is mounted as the root filesystem. The SD card, if present, is mounted at boot as /mnt/sd.
The following could be a standard way to store a savegame suitable to be graphically represented to the user (through a dedicated utility on the GP2X or on the owner's computer):
- A root game data folder exists on the device and/or the SD card. It has a common name, i.e. /SavedGames or /mnt/sd/SavedGames.
- Inside the root game data folder, subfolders are created for each game that have a unique name, for example in reverse DNS notation, i.e. "com.example.ExampleRacingGame" for an example racing game made by example.com.
- Inside each subfolders, the following files are stored:
- 'Game.ini', a UTF-8 text file that should contain the name of the game. A nice format for it would be the regular INI format as in the following example:
[game] name = The Example Racing Game manufacturer = Example.com
- 'GameIcon32.png' and 'GameIcon64.png' are optional images; if present, they may be used to graphically represent the game to the user. The first should be at a size of 32x32, the second at a size of 64x64. They should be clipped at this size if unused.
- 'GameDataIcon32.png' and 'GameDataIcon64.png' are optional images that, if present, may be used to graphically represent a single game data item (i.e. savegame) to the user. Size constraints are as for 'GameIconXX.png' files.
- One or more subfolders whose names are ASCII renditions of (base 10) numbers; for example "0", "1", "2", "3", "4" and so on, up to infinity. Each of these subfolder represents a single game data item (i.e. savegame). Each of these subfolders may contain the follow:
- A UTF-8 text file named 'GameData.ini' that should contain information about the saved game, such as a user-visible name. It could be in the regular INI file format as in the following example:
[gamedata] name = Saved Career 12 - Gold Cup Championship date = 2005-12-01 15:30 GMT
- Optional 'GameDataIcon32.png' and 'GameDataIcon64.png' image files. If present, these files are used to represent the game data item. If absent, the corresponding files in the game folder are used instead.
- Any other file, containing saved game data in a format proprietary to the game.