I'm pleased to announce that c4lib is available for download on GitHub. c4edit is a command line program that was built using c4lib which allows users to view and change Civilization 4, Beyond the Sword, binary save game files (.CivBeyondSwordSave) using a text editor. c4edit is part of the c4lib distribution.
c4lib understands the compressed data format used in BTS saves and is able to decompress saves. c4lib also understands the checksum format used in BTS saves, enabling programs to change saves.
One of the nice features of c4edit, is that it can output human-readable text file representations of a save called "translations." Translations are similar in appearance to the view shown in a debugger. The beginning of a tranlsation is shown below:
Savegame: Tiny-Map-BC-4000.CivBeyondSwordSave
Schema: BTS.schema
Date: 01-13-2025 02:12:27.160872 UTC
c4lib version: 01.00.00
You can download c4lib and c4edit on GitHub by clicking here https://github.com/hankinsohl/c4lib (on the GitHub page the actual download link is the button to the right called "Latest").
c4lib understands the compressed data format used in BTS saves and is able to decompress saves. c4lib also understands the checksum format used in BTS saves, enabling programs to change saves.
One of the nice features of c4edit, is that it can output human-readable text file representations of a save called "translations." Translations are similar in appearance to the view shown in a debugger. The beginning of a tranlsation is shown below:
Savegame: Tiny-Map-BC-4000.CivBeyondSwordSave
Schema: BTS.schema
Date: 01-13-2025 02:12:27.160872 UTC
c4lib version: 01.00.00
Code:
Offset Hex ASCII Translation 0x00000000 | -- -- -- -- | -- -- -- -- | -- -- -- -- | -- -- -- -- | ---------------- | Begin Savegame 0x00000000 | -- -- -- -- | -- -- -- -- | -- -- -- -- | -- -- -- -- | ---------------- | Begin GameHeader 0x00000000 | 2e 01 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | GameVersion=302 0x00000004 | 00 00 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | RequiredMod="" 0x00000008 | 00 00 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | ModMd5="" 0x0000000c | 00 00 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | ChecksumDWord=0 0x00000010 | 00 00 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | LockModifiedAssetsText="" 0x00000014 | 00 00 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | LmaMd5_1="" 0x00000018 | 00 00 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | LmaMd5_2="" 0x0000001c | 00 00 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | LmaMd5_3="" 0x00000020 | 00 00 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | LmaMd5_4="" 0x00000024 | bf 05 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | CvInitCoreMd5Size=1471 0x00000028 | -- -- -- -- | -- -- -- -- | -- -- -- -- | -- -- -- -- | ---------------- | End GameHeader 0x00000028 | -- -- -- -- | -- -- -- -- | -- -- -- -- | -- -- -- -- | ---------------- | Begin CvInitCore 0x00000028 | 01 00 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | SaveFlag=1 0x0000002c | 00 00 00 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | ....------------ | Type=GAME_SP_NEW 0x00000030 | 10 00 00 00 | 50 00 61 00 | 73 00 73 00 | 65 00 6e 00 | ....P.a.s.s.e.n. | GameName="Passenger's Game" 0x00000040 | 67 00 65 00 | 72 00 27 00 | 73 00 20 00 | 47 00 61 00 | g.e.r.'.s. .G.a. | ... 0x00000050 | 6d 00 65 00 | -- -- -- -- | -- -- -- -- | -- -- -- -- | m.e.------------ | ...​
You can download c4lib and c4edit on GitHub by clicking here https://github.com/hankinsohl/c4lib (on the GitHub page the actual download link is the button to the right called "Latest").