====== Type 0x4: Options file ====== All settings the user selects in the options menu are stored in a file called "options.m4o" located inside the save game folder after the game is closed. There is no complex variable name and value system like in the savegame files. All numerical values are just stored next to each other in a specific order. As every value is present at the very start, the file size never changes. For all options available in the options menu the correspondig values could be identified. That leaves some bytes with a static value that cannot be changed via the options menu. Changing these manually seems to have no effect on the game. So the meaning of these bytes are unknown. Please note that this seems to be the only file, where the internal file type is stored as INT+8 rather than an INT+32 for reasons unknown. ==== File Format Description ==== === File Structure === * Format Type: Data * Endian Order: Little Endian * File Extension: .m4o == FILE == ^ Header ^^^^ | CHAR8 | 0x8 | Identifier | "ubi/b0-l" | | INT+8 | 0x1 | Internal file type | 0x4 | ^ Cursor Options ^^^^ | FLOAT32 | 0x1 | Cursor speed | 0.00009(0) to 0.003(100); **0.0018(58)** | | FLOAT32 | 0x1 | Camera speed | 0.1(0) to 2.0(100); **0.5(21)** | | FLOAT32 | 0x1 | Cursor transparency | 0.25(0) to 1.0(100); **0.85(80)** | | INT+32 | 0x1 | Right or left handed cursor | **0x0 = right handed**, 0x1 = left handed | | INT+32 | 0x1 | Cursor color | **0x0** to 0x8 | ^ Audio Options ^^^^ | FLOAT32 | 0x1 | Overall volume | -96.0(0%) to **0.0(100%)**, //most likley dB value// | | FLOAT32 | 0x1 | Music volume | -96.0(0%) to **0.0(100%)**, //most likley dB value// | | FLOAT32 | 0x1 | Music frequency | 0.1(10%) to **1.0(100%)** | | INT+8 | 0x1 | Toggle music and SFX sounds | 0x0 = off, **0x1 = on** | | INT+8 | 0x1 | Toggle music | 0x0 = off, **0x1 = on** | ^ Game Options ^^^^ | INT+8 | 0x1 | Toggle zip mode | 0x0 = off, **0x1 = on** | | INT+8 | 0x1 | Toggle subtitles | **0x0 = off**, 0x1 = on | ^ Graphic Options ^^^^ | INT+8 | 0x1 | Toggle depth of field effect | 0x0 = off, **0x1 = on** | | INT+8 | 0x1 | Toggle water effect | 0x0 = off, **0x1 = on** | | INT+8 | 0x1 | //unknown// | **0x1** | | INT+32 | 0x1 | Game resolution | 0x0 = 640x400, **0x1 = 800x600**, 0x2 = 1024x768 | | INT+32 | 0x1 | Toggle special immersive effects | 0x1 = off, **0x3 = on** | | INT+32 | 0x1 | //unknown// | **0x3** | | FLOAT32 | 0x1 | Gamma correction | 0.5 to 2.0; **1.0** | | FLOAT32 | 0x1 | Contrast | 0.4(0%) to 1.6(100%); **1.0(50%)** | | FLOAT32 | 0x1 | Brightness | -0.3(0%) to 0.3(100%); **0.0(50%)** | | INT+8 | 0x1 | //unknown// | **0x1** | | INT+8 | 0x1 | //unknwon// | **0x1** | | INT+32 | 0x1 | //unknwon// | **0x0** | | INT+32 | 0x1 | //unknwon// | **0x0** | ^ Trailer ^^^^ | INT+32 | 0x1 | Checksum | [[wp>List_of_checksum_algorithms#Checksums|Sum32]] |