GAMEDAT Format (Fury of the Furries)

From ModdingWiki
Jump to navigation Jump to search
GAMEDAT Format (Fury of the Furries)
Format typeConfiguration
StoringSave 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!)