Warlords Battlecry III

Warlords Battlecry III

mindtrick 2016 年 1 月 25 日 上午 5:46
Hero progress not saving
Really getting pissed, i put in almost 8 hrs between two heroes and they both were deleted, my hero info is not saving when i exit the game. Any suggestions or help?
< >
正在显示第 16 - 28 条,共 28 条留言
Badam 2024 年 7 月 23 日 下午 9:19 
Ironman hero mode does not work at all (tried quite a few online workarounds). However I also found it unable save or load scenarios nor save more than one campaign hero either so lost progress and game data in Normal hero mode is a problem also! This includes blank screen and crashing to desktop in some instances. Scenario editor no longer saves either but it was never very good anyway!

It's very odd that something as basic as file I/O was trashed so badly since this game came out for Windows XP originally and WIN32/NTFS from that era is usually very compatible with wine and modern systems. I'm going to try some more tricks tonight and see if I can attach winspy or debugger to the process to get some better info!

UPDATE: not a single file gets any update in the Steam install for any save game data (working normal heros or broken ironman, editor, etc) which led me to find it under compatdata instead:

e.g. Heros end up here?
<SteamInstallPath>/steamapps/compatdata/433280/pfx/drive_c/users/steamuser/Documents/Warlords Battlecry III/HeroData.xcr

Launch with Proton 9 spawns the following processes:

sh (shell to launch reaper?)
reaper (steam shell to cleanup orphans on exiting)
srt-bwrap (part of Steam Runtime Tools, binary wrapper maybe?)
pressure-vessel (part of SRT, specifically for containers/packages/etc)
python3 (python to launch SRT?)
steam.exe (steam analytics inside wine maybe?)
wineserver (wine serve)
services.exe (windows services)
winedevice.exe (wine wrap)
winedevice.exe (wine wrap)
plugplay.exe (windows pnp)
svchost.exe (windows kernel)
explorer.exe (windows desktop)
rpcss.exe (windows RPC service, allows exe to talk to each other basically)
tabtip.exe (no idea, some windows tablet touchscreen nonsense maybe?)
Battlecry III.e (the actual game process!)

Did not have much luck digging event log, WM_*, etc but now I am thinking winetricks might let me access the prefix used and adjust compatibility for Windows XP, putz around with regedit keys, or just force it to use an older version of Proton and Steam compatibility maybe?
最后由 Badam 编辑于; 2024 年 7 月 24 日 上午 2:48
Badam 2024 年 7 月 24 日 下午 10:04 
Debug Day 3: Ironman IS Working!

TL;DR: Add these missing DWORD values to this registry key!

[HKEY_CURRENT_USER\Software\Enlight\Warlords Battlecry III]
"LIMHK0_A"=dword:00000000
"LIMHK0_N"=dword:00000000
"LIMHK0_X"=dword:00000000
"LIMHK1_A"=dword:00000000
"LIMHK1_N"=dword:00000000
"LIMHK1_X"=dword:00000000
"PreselectedHero"="TestIron"

The devil in the details:

There are some missing registry keys that are needed for Ironman Heros to be saved and tracked properly. Most likely a old-school vestige of trying to prevent people from making backups of save games to cheat death before everyone was basically required to get smart with computers.

You can use Dragon unpacker and other SSG tools from Warlords as well as any hex editor to get into XCR archives and poke around. I nuked everything again and did a fresh install to make a clean test after I noticed the hero bitmap, hroo export path, and other hero data were in fact getting saved into the files!

wine regedit to the rescue! I made a new wineprefix to have a workspace then copied the steam registry files out of game compatibility files noted above from yesterday over there so I could import the keys and search around for weirdness.

I searched through everything valve, wine, or game related but you only need to edit HKEY_CURRENT_USER to get this feature working which is separated into user.reg in the Steam compatibility location here <SteamInstallPath>/steamapps/compatdata/433280/pfx/user.reg. Where SteamInstallPath is wherever Steam lives on your OS and 433280 is the WBC3 identifier apparently.

Once you add the missing keys then export back out and use your favorite text editor to add them to the original Steam user.reg. The registry is just a flat text file in wine because reasons. You can always make a backup first before copying stuff back over if you're paranoid.

Steam uses a version of wine that adds timestamps and other things so make sure you correctly add the missing entries before launching Proton or have anything running. It's OK to have the steam client app up though.

Native Windows users don't need all this extra wine nonsense. Just open the registry editor from the start menu, Edit menu (or Ctrl+F) to find Warlords, then add the DWORD values from the Edit menu and you're done. Might require admin permission these days? Still crazy the game can only create some of it's own keys and entries so maybe mods and patches did break stuff?

Note that it might be too late for your existing heroes if they were unable to read the keys and validate after you relaunched the game. It should be possible to hex edit back too good standing in XCR files. I have not figured that out yet as I nuked everything for this test. Make a backup of your Warlords directory if you want as I am going to try that next!

By the way all the uninstall & reinstall I did was mostly to compare diffs when making changes. You can just delete your Documents/Warlords Battlecry III/ directory to get a clean slate rather than completely reinstalling everything though! Just make sure to edit the registry and add the missing entries FIRST before launching the game or creating an Ironman Hero this time!
最后由 Badam 编辑于; 2024 年 7 月 25 日 下午 3:29
Edelward 2024 年 7 月 25 日 上午 2:41 
Is that the adress or name of the file to modify

[HKEY_CURRENT_USER\Software\Enlight\Warlords Battlecry III]

and these lines what I have to paste into it ? :-

"LIMHK0_A"=dword:00000000
"LIMHK0_N"=dword:00000000
"LIMHK0_X"=dword:00000000
"LIMHK1_A"=dword:00000000
"LIMHK1_N"=dword:00000000
"LIMHK1_X"=dword:00000000
"PreselectedHero"="TestIron"




P.S. I can't locate it - [HKEY_CURRENT_USER\Software\Enlight\Warlords Battlecry III]

dragonunPACker 5.7 . It is only for great minds to figure out whats to do .
I see there are -' hero saves files' in
Users>Admin>Documents>Warlords Battlecry III>HeroData .


Now I am in registry editor enlight > warlordsbattlecry3
and frankly has no idea whats do next
最后由 Edelward 编辑于; 2024 年 7 月 25 日 上午 3:55
Badam 2024 年 7 月 25 日 上午 9:12 
I might have been taking some knowledge for granted on that last one. Here is a step by step guide of how to edit the registry key for the game to fix IronMan Hero saves:

0. WARNING! Do NOT touch or change anything else in registry or you could severely break Windows! This is mostly for people using Windows because if you are on Mac or something else like me you will need "extra steps" to update the wine registry key in Steam Proton compatibility files ... this is just about using regedit ;-)

1. Open Registry Editor. Either use Start Menu -> Run -> and type "regedit" before pressing Enter key or Search for "registry" in the taskbar and click the Registry Editor desktop app that gets found. You may need to run regedit as Adminstrator in newer versions of Windows!

2. Navigate to Game Key. Either use menu Edit -> Find -> and type "warlords" before pressing Enter key or use click to expand the keys to the left in this order HKEY_CURRENT_USER -> Software -> Enlight -> Warlords Battlecry III

3. Make a Backup! This is an optional step depending how confident you are. Use menu Registry -> Export Registry File... and choose a name and easy to find location like the Desktop. If you mess up the next steps you can use Registry -> Import Registry File... to restore the original and try again!

4. Modify the Entries. Make sure you have Warlords Battlecry III key selected. Then use menu Edit -> New -> DWORD Value. Copy and paste first variable name LIMHK0_A (or type it in) and press enter. We want the default value of 0 so leave that alone.

5. Repeat Step 4. Do this again until you have all 6 missing entries created and set to zero. You definitely do not need to set your PreselectedHero to "TestIron" that was just the name of the Knight Warrior I made to try this out ;-)

6. Verify! Double check you have all the entries without any typos and that all values are set to 0x00000000! This is a hexadecimal notation and the extra zeros are just because of the size of that type of variable in Windows code. These entries need to exist for the game to use with XCR archives extracted at startup!

7. Delete HeroData.xcr. Or move it, rename it, etc so the game will create a brand new one for you. This is located in the Documents -> Warlords Battlecry III of your installation. You can delete the entire folder if you want to be absolutely sure or do not care about your data.

8. Now you are ready to launch the game and make a new Ironman Hero that will actually get saved and stick around for multiple plays! I will do more testing and see if there are other breaking issues!

References: If you are curious and want to learn more ...

https://support.microsoft.com/en-us/windows/how-to-open-registry-editor-in-windows-10-deab38e6-91d6-e0aa-4b7c-8878d9e07b11
https://en.wikipedia.org/wiki/Windows_Registry
https://learn.microsoft.com/en-us/cpp/assembler/masm/dword?view=msvc-170
https://www.winehq.org/
https://etheria.fandom.com/wiki/Warlords_Battlecry_III
最后由 Badam 编辑于; 2024 年 7 月 26 日 上午 12:25
Badam 2024 年 7 月 25 日 下午 3:53 
Things I tested so far that worked:
- Create Ironman Hero, quit and return
- Run first campaign mission, quit after first kill then return
- Run first campaign mission and complete (gaining a few levels) then quit and return
- Make a second Ironman Hero, quit and return
- Run a Skirmish, get the new hero killed, quit and return
- Run a Skirmish with the first hero that is still around, save, quit and return.

Things I need to test before moving on to the next bug
- Complete a Skirmish?
- Make a mix of normal and ironman heroes?
- Complete a mix of campaign and skirmish?
- Save & Load a mix of Skirmish and Campaign? (I suspect this is still broken)
- Delete everything and make a Normal hero first then Ironman?
- Get past level 25 on at least one of each Ironman and Normal?

Played this game to death when I was younger so probably having more fun trying to fix it in my more limited free time now.
最后由 Badam 编辑于; 2024 年 7 月 25 日 下午 3:53
Badam 2024 年 7 月 26 日 下午 6:32 
Debug Day 4: WOWZER!

Yeah it is safe to say there is no easy way to recover your HeroData.xcr after it fails validation if the registry keys are missing.

It seems like not only are offsets and values changed throughout the headers for extraction but also the blob locations and values or the entire file data set are shifted around too. There might be some form of encryption cipher being used based on a combination of algorithm in game code and the LIMHK* values in registry ...

It's not worth the weeks or months it might take to reverse engineer the combination of changes! On the plus side after adding those missing keys it seems like you can make as many Ironman and Normal mode heroes as you want without issues.
最后由 Badam 编辑于; 2024 年 7 月 26 日 下午 6:32
Edelward 2024 年 7 月 26 日 下午 9:04 
There is a theory that GoG's and perhaps Steam's version were not plain vanilla WBC3 but were downloaded from a modded version . Think I have read it somewhere .
最后由 Edelward 编辑于; 2024 年 7 月 26 日 下午 11:41
Badam 2024 年 7 月 27 日 上午 9:47 
Yeah it includes a ton of community mods and additions. The last official patch was 1.0.3 so assuming semantic versioning was actually used then there are 24 additional mods, updates, bugs, etc that did not come from the game developers more or less ;-)
Badam 2024 年 7 月 27 日 下午 4:33 
Debug Day 5: Restoration?

I was able to revert most of the patches and mods to restore some of the original game functionality but even after entirely too many hours trying I have not figured out a way to get Save/Load for scenarios to work yet. That's really the last thing I wanted to get working.

The game seems to detect associated save data but other than the popup you just get a blank screen whether the save was for a campaign or skirmish scenario. Being able to play in short intervals is kind of a requirement for casual gamer that do not always have 30-180 minutes to complete a level in one sitting.

I poked around looking for the source code and it seems like I totally missed out on the opportunity back in 2006 when anyone could just fill out a PHP form and sign an NDA and code away to their hearts content! I guess I will try to get in touch with The Protectors or some of the modding community and see if I can help out next.

At this point, it is probably easier to patch forward rather than revert anyway! So maybe I can fix some stuff for the next version and see if Steam will push an update?
Mashadaar 2024 年 10 月 2 日 下午 10:12 
Ironman hero is now being saved properly, thanks so much Badam!
Jiggy007 2024 年 12 月 4 日 下午 5:43 
Anyone knows a similar fix for WBC 2?
引用自 Mashadaar
Ironman hero is now being saved properly, thanks so much Badam!
Can anyone make a proper guide?

Including win11 and 4k settings?
引用自 Badam
Debug Day 5: Restoration?

I was able to revert most of the patches and mods to restore some of the original game functionality but even after entirely too many hours trying I have not figured out a way to get Save/Load for scenarios to work yet. That's really the last thing I wanted to get working.

The game seems to detect associated save data but other than the popup you just get a blank screen whether the save was for a campaign or skirmish scenario. Being able to play in short intervals is kind of a requirement for casual gamer that do not always have 30-180 minutes to complete a level in one sitting.

I poked around looking for the source code and it seems like I totally missed out on the opportunity back in 2006 when anyone could just fill out a PHP form and sign an NDA and code away to their hearts content! I guess I will try to get in touch with The Protectors or some of the modding community and see if I can help out next.

At this point, it is probably easier to patch forward rather than revert anyway! So maybe I can fix some stuff for the next version and see if Steam will push an update?


Well - that could be perfect to just play original campaign in Protectors.

Same way as M&M678 works.
< >
正在显示第 16 - 28 条,共 28 条留言
每页显示数: 1530 50