From Trickstart wiki

Binary config file is described in Okteta structures directory

Everything is in little endian

Offset Size Description
0x0 0xC8 (200) Path, read from registry
0xC8 0x4 Screen height
0xCC 0x4 Screen width
0xD0 0x4 Colour depth (16/32)
0xD4 0x4 Sound quality
0xD8 0x4 Initial master volume
0xDC 0x4 Initial SFX volume
0xE0 0x4 Initial music volume
0xE4 0x4 Graphics API (0 - DirectX, 1- Glide)
0xE8 0x4 Graphics quality (0-100)
0xEC 0x4 GPU index (for D3D)
0xF0 0x4 UV fix (for D3D) (0/1)
0xF4 0x4 Disable framerate correction (0/1)
  • music volume is always set to 100 on save, other volumes just gets copied from config.cfg file
    • if save file exists, then audio volumes are taken from that file
  • place for path is 200 bytes long, it's ASCII string terminated by "\0".
    • Windows reads PATH from registry in UTF-16 and writes it to this field and later converts it in-place to ASCII, leaving some garbage after string terminator
      • Considering that, if path is longer than 99 then is will probably overwrite the rest of the file, this shouldn't matter in original config.exe, but please take it into account when reading from registry