OBD talk:Oni2AS
Using this page to write up instructions for a straightforward patch allowing one to specify alternative/additional layouts in Settings/rb.gamedata
The file table entries for Settings/rb.gamedata and fonts/rbstrings.xlslook like this:
Offset | Type | Raw Hex | Value | Description |
---|---|---|---|---|
File table, 8881st entry | ||||
0x23300 | offset | 26 BC 04 00 | 0x4BC26 | offset to file name, from start of file name block, in bytes
|
0x23304 | offset | 00 88 7C 02 | 0x27C8800 | absolute offset to file data, from start of DAT file, in bytes |
0x23308 | int32 | 00 52 00 00 | 20992 | uncompressed file size, in bytes |
0x2330C | int32 | 12 15 00 00 | 5394 | compressed file size, in bytes |
File table, 16456th entry | ||||
0x40C70 | offset | 98 10 0A 00 | 0xA1098 | offset to file name, from start of file name block, in bytes
|
0x40C74 | offset | 00 50 0E 00 | 0xE5000 | absolute offset to file data, from start of DAT file, in bytes |
0x40C78 | int32 | C7 02 00 00 | 711 | uncompressed file size, in bytes |
0x40C7C | int32 | 29 01 00 00 | 297 | compressed file size, in bytes |
Adding all layouts to Settings/rb.gamedata is as simple as making the following value changes to RB.DAT (after making a backup)
Address | Old value | New value |
---|---|---|
0x23304 | 00 88 7C 02 | 22 D3 1D 02 |
0x23308 | 00 52 00 00 | 00 00 00 00 |
0x2330C | 12 15 00 00 | 00 00 00 00 |
0x40C74 | 00 50 0E 00 | 00 50 0E 00 |
0x40C78 | C7 02 00 00 | 70 12 00 00 |
0x40C7C | 29 01 00 00 | 70 12 00 00 |
and replacing 4720 bytes of RB.DAT starting at 0x27C8800 with the byte-for-byte contents of THIS file.
Actually, as it happens, Settings/rb.gamedata is the file whose data, at 0xE500, is the one that comes first, and between it and the preceding string data there are 1866 bytes of unneeded space. Together with the 297 bytes of the file itself, that allows for 2153 bytes of plain text, which is enough to list a lot of the layouts, if not all of them.