GAMEDAT Format (Fury of the Furries)
Jump to navigation
Jump to search
GAMEDAT Format (Fury of the Furries)
Format type | Configuration |
---|---|
Storing | Save points and preferences |
Games |
Fury of the Furries gamedat.bin files contain save-points and preferences.
The file consists of 10 2-byte values. Each is hidden by an XOR bitmask and a logical shift.
To decode a byte, xor it with 0xE9 and apply a 'shift left with bit rotation' twice. To encode a byte, apply a 'shift right with bit rotation' twice and then xor it with 0xE9
Format
Data type | Name | Description |
---|---|---|
UINT16LE | resetSelection | Which item was most recently highlighted on the reset menu. |
UINT16LE | savePointSlotA | Which game level has been reached in game slot A. |
UINT16LE | savePointSlotB | Which game level has been reached in game slot B. |
UINT16LE | savePointSlotC | Which game level has been reached in game slot C. |
UINT16LE | savePointSlotD | Which game level has been reached in game slot D. |
UINT16LE | sound | Preference for sound is the game. 0 = off, 1 = on. |
UINT16LE | music | Preferred suite of music tracks. 0 = fun, 1 = classical. |
UINT16LE | menuSelection | Which item was most recently highlighted on the main menu. |
UINT16LE | unknown | |
UINT16LE | unknown |
Source code example in C:
void decode(unsigned char *gameDat) {
for (unsigned int i = 0; i < 20; i++) {
gameDat[i] ^= 0xE9;
gameDat[i] = (gameDat[i] << 2) | (gameDat[i] >> 6);
}
}
void encode(unsigned char *gameDat) {
for (unsigned int i = 0; i < 20; i++) {
gameDat[i] = (gameDat[i] >> 2) | (gameDat[i] << 6);
gameDat[i] ^= 0xE9;
}
}
Notes
Credits
This file format was reverse engineered by carbon14. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)