Jump to content

bg1 save game compatibility: creature names


zelazko

Recommended Posts

About using Shadowkeeper and using GemRB saves - save (assertion) failed to load in vanilla engine issue. There is possible workaround. I only tested that workaround without leaving Candlekeep so this is not bullet proof workaround in any way.

 

1) I started new game in vanilla engine saved.

2) Loaded save in Shadowkeeper so I can be sure it is not broken

3) Loaded save in GemRB engine then made a new save

4) Loaded GemRB save in Shadowkeeper all loaded correctly no assertion failed or missing cre signatures

5) Loaded GemRB save in GemRB engine made another new save

6) Loaded that in both vanilla engine and shadowkeeper without any errors.

 

I think it would be wise to start a new game in vanilla engine and then contioune in GemRB to avoid missing cre signature (when loading GemRB save in shadowkeeper) or assertion failed (when loading GemRB save in vanilla engine).

Edited by zelazko
Link to comment

I finally found mod that causes ShadowKeeper unable to open GemRB save Error (1025): Missing CRE signature. It happened after I installed The Drizzt Saga.

I am 100% positive because I was making new game and saved it after adding each mod then checked if I can load the save with ShadowKeeper. After installing Drizzt Saga v3 you will be unable to load your GemRB save in Shadowkeeper and vanilla engine.

I inspected .cre files with NearInfinity and couldn't find any .cre from Drizzt Saga v3 file that was missing signature.

Edited by zelazko
Link to comment

I finally found mod that causes ShadowKeeper unable to open GemRB save Error (1025): Missing CRE signature. It happened after I installed The Drizzt Saga.

I am 100% positive because I was making new game and saved it after adding each mod then checked if I can load the save with ShadowKeeper. After installing Drizzt Saga v3 you will be unable to load your GemRB save in Shadowkeeper and vanilla engine.

I inspected .cre files with NearInfinity and couldn't find any .cre from Drizzt Saga v3 file that was missing signature.

I installed drizzt saga and indeed the gemrb save cannot be opened by shadowkeeper but i could load it in vanilla engine fine.

baldurgam.png

 

When i open the baldur.gam file from the save folder in dltcep, i get the above picture.

 

The characters in the vanilla-engine save have *name in their "creature" field. The characters in the gemrb save have empty "creature" field and their proper name is being shown. I also opened the game files in NearInfinity and i get "*name" for the vanilla engine save but in the gemrb case i get "null (none)".

 

I can't tell if there is a problem with the way gemrb saves the creatures but i noticed the following things:

 

a) Different from zelazko, I can always open the save (i am in candlekeep in case it matters) in the vanilla engine with or without drizzsaga installed.

 

b) If i click the "null" characters produced by gemrb, NearInfinity correctly shows the character with their portrait and stats and everything so nothing important is missing from the save file.

 

c) If i delete the 5-6 "drizzsaga" characters from baldur.gam then ShadowKeeper can correctly open the save file. However, every character produced by gemrb have the "creature" field empty and SK doesn't barf on the vanilla characters, so it must be the combination of gemrb and something in the drizztsaga characters.

 

Edit: I think i found the cause. When i tried to open the f_*.cre files in dltcep, i got a message "creature will be reordered. harmless inconsistency". I then proceeded to save each .cre file. I then made a new save from within gemrb and voila SK can open it fine.

 

@lynx I haven't tested it but my guess is that gemrb saves the characters in the save file as it reads them and that confuses SK while the vanilla engine reorders them before it saves them.

 

Edit2: The problematic cre files are f_{artemi, brueno, cattib, jarlax, regis2, wulfga}.cre

 

--- z2/drizzt   2018-11-11 21:33:16.000786421 +0200
+++ z2/dltcep   2018-11-11 21:33:20.792704859 +0200
@@ -218,7 +218,7 @@
 0x02A4 DWORD    4 Count of known spells: 0
 0x02A8 DWORD    4 Offset of spell memorization infos: 724
 0x02AC DWORD    4 Count of spell memorization infos: 17
-0x02B0 DWORD    4 Offset of memorized spells: 1236 
+0x02B0 DWORD    4 Offset of memorized spells: 996 
 0x02B4 DWORD    4 Count of memorized spells: 0
 0x02B8 DWORD    4 Offset of items slots: 1356
 0x02BC DWORD    4 Offset of items: 1236
I ran ieparse and diffed the two files. As you read, the one provided by the mod has 1236 offset both for memorized spells and items. After dltcep changes it to 996, then SK works correctly. This is the only wrong thing with them except regis2 which has some more wrong offsets.

@@ -2050,11 +2050,11 @@
 0x027C WORD     2 Global actor enumeration value: 65535
 0x027E WORD     2 Local (area) actor enumeration value: 65535
 0x0280 STR32   32 Death variable: F_REGIS2^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
-0x02A0 DWORD    4 Offset of known spells: 988 
+0x02A0 DWORD    4 Offset of known spells: 724 
 0x02A4 DWORD    4 Count of known spells: 0
-0x02A8 DWORD    4 Offset of spell memorization infos: 988 
+0x02A8 DWORD    4 Offset of spell memorization infos: 724 
 0x02AC DWORD    4 Count of spell memorization infos: 0
-0x02B0 DWORD    4 Offset of memorized spells: 988 
+0x02B0 DWORD    4 Offset of memorized spells: 724 
 0x02B4 DWORD    4 Count of memorized spells: 0
 0x02B8 DWORD    4 Offset of items slots: 1048
 0x02BC DWORD    4 Offset of items: 988
Edited by khelban12
Link to comment

Thanks for digging in, so it turns out to indeed be a mod bug. pro5 seems to be the current maintainer, so zelazko, please bring it up to them — it's hosted on BWL.

 

I find this kind of stuff highly annoying, so big thanks! Currently in the middle of fixing the remaining gcc8 warnings on master.

Link to comment

Lynx, are you sure it is a mod error? It works in the original, and the only difference is the engine.

 

This might be the problem: The characters in the vanilla-engine save have *name in their "creature" field. The characters in the gemrb save have empty "creature" field and their proper name is being shown. I also opened the game files in NearInfinity and i get "*name" for the vanilla engine save but in the gemrb case i get "null (none)".

 

 

This one, is a mod error. though: Edit: I think i found the cause. When i tried to open the f_*.cre files in dltcep, i got a message "creature will be reordered. harmless inconsistency". I then proceeded to save each .cre file. I then made a new save from within gemrb and voila SK can open it fine.

 

If they resaved only a mod-supplied file by dltcep. The solution is just that, resave in dltcep before release. (Or fix the weidu script).

Edited by Avenger
Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...