安装 Steam
登录
|
语言
繁體中文(繁体中文)
日本語(日语)
한국어(韩语)
ไทย(泰语)
български(保加利亚语)
Čeština(捷克语)
Dansk(丹麦语)
Deutsch(德语)
English(英语)
Español-España(西班牙语 - 西班牙)
Español - Latinoamérica(西班牙语 - 拉丁美洲)
Ελληνικά(希腊语)
Français(法语)
Italiano(意大利语)
Bahasa Indonesia(印度尼西亚语)
Magyar(匈牙利语)
Nederlands(荷兰语)
Norsk(挪威语)
Polski(波兰语)
Português(葡萄牙语 - 葡萄牙)
Português-Brasil(葡萄牙语 - 巴西)
Română(罗马尼亚语)
Русский(俄语)
Suomi(芬兰语)
Svenska(瑞典语)
Türkçe(土耳其语)
Tiếng Việt(越南语)
Українська(乌克兰语)
报告翻译问题
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?
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!
[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
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
- 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.
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.
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?
Including win11 and 4k settings?
Well - that could be perfect to just play original campaign in Protectors.
Same way as M&M678 works.