Config.cfg
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
- 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