OBD talk:Oni2AS: Difference between revisions
(to whom it may be of use to) |
m (typo) |
||
Line 54: | Line 54: | ||
and replacing 4720 bytes of '''RB.DAT''' starting at 0x27C8800 with the byte-for-byte contents of [http://geyser.oni2.net/rb.gamedata THIS] file. | and replacing 4720 bytes of '''RB.DAT''' starting at 0x27C8800 with the byte-for-byte contents of [http://geyser.oni2.net/rb.gamedata THIS] file. | ||
Actually, as it happens, '''Settings/rb.gamedata''' is the file whose data, at | Actually, as it happens, '''Settings/rb.gamedata''' is the file whose data, at 0xE5000, 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. |
Revision as of 17:46, 8 February 2018
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 0xE5000, 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.