To make sure I didn't miss any obvious issues, I reinstalled all mods with latest installer and run UE integrity checks.
Here is what I found:
1. In AAM and AAML stbof.res, UE reports:
Code: Select all
Warning: in cbboom.hob: Unknown data detected that is exceeding the expected TotalSize: 11472 bytes
Warning: in cgboom.hob: Unknown data detected that is exceeding the expected TotalSize: 6256 bytes
Warning: in csboom.hob: Unknown data detected that is exceeding the expected TotalSize: 5336 bytes
Warning: in fbboom.hob: Unknown data detected that is exceeding the expected TotalSize: 11472 bytes
Warning: in fgboom.hob: Unknown data detected that is exceeding the expected TotalSize: 6256 bytes
Warning: in fsboom.hob: Unknown data detected that is exceeding the expected TotalSize: 5336 bytes
Warning: in hbboom.hob: Unknown data detected that is exceeding the expected TotalSize: 11472 bytes
Warning: in hgboom.hob: Unknown data detected that is exceeding the expected TotalSize: 6256 bytes
Warning: in hsboom.hob: Unknown data detected that is exceeding the expected TotalSize: 5336 bytes
Checking the hex code, I found that the whole data got duplicated.
The first four bytes is a dword value, that tells on file size.
At least for fbboom.hob data is identical. The others I didn't check.
2. In AAM, BOP, Vanilla and stbof.res of most other mods, there is some SwitchList overlapping detected:
Code: Select all
Warning: in hs_a.hob: SwitchList overlapping detected: 4 bytes.
Warning: in hs_b.hob: SwitchList overlapping detected: 4 bytes.
Warning: in hs_c.hob: SwitchList overlapping detected: 4 bytes.
Warning: in ks_a.hob: SwitchList overlapping detected: 4 bytes.
Warning: in ks_b.hob: SwitchList overlapping detected: 4 bytes.
Warning: in ks_c.hob: SwitchList overlapping detected: 4 bytes.
It might not have much relevance to BotF. To BotF that very same value however is read for two different uses.
It likely got messed by hex-editing the texture count.
see
viewtopic.php?p=61387#p61387
3. BOP trek.exe reports a few minor race end building issues that are fixed:
Code: Select all
Error at segment 0x0018DDAC: Minor race end building id [96] doesn't match detected main building end [91]. (fixed)
Error at segment 0x0018DDAC: Minor race end building id [106] doesn't match detected main building end [98]. (fixed)
...
This is about trek.exe segment 0x0018DDAC, which was missed by BOP.
See
viewtopic.php?p=57327#p57327
Flocke wrote: ↑Wed Sep 21, 2022 1:28 am
As I found, BOP did not change any of the trek.exe MinorRaceBldUpgradeIDs starting at 0x0018EDE8 ( asm_590FE8,
viewtopic.php?f=264&t=2299 ), they are still set to vanilla values.
When UE saves any Edifice changes, it overwrites these ids and fills any missing values repeating the last upgrade ID.
Spocks-cuddly-tribble wrote: ↑Wed Sep 21, 2022 12:48 pm
Flocke wrote: ↑Wed Sep 21, 2022 5:09 amthe minor race EL table 0x0018EDE8 (asm_590FE8) and the building limits at 0x0018DDAC (asm_58FFAC)?
As told: 0x0018EDE8 (asm_590FE8) -> shared main building code (not minor)
building limits at 0x0018DDAC (asm_58FFAC) -> minor fake upgrade -> main buildings min-max IDs -> yes looks like a BoP bug (not analysed at the time)
MinorRaceBldUpgradeIDs got relabeled to MinorRaceMainBldIDLimits by the way.
Not sure on what actual effect it has, but to implement a special BOP exception here, is no good option.
So far none of the code checks are actually mod dependent. There is not even a mod detection implemented with UE.
Given that for type 5 buildings, the upgrades got disabled, this change should have no effect or at best fix some faulty minor race evolution upgrades.
Therefore, unless any issues are reported, best simply patch BOP to resolve this issue.
4. BOP trek.exe reports fixed ship numbers - only check if segments are loaded:
Code: Select all
Error at segment 0x0006EC08: Number of registered ships is 148, but should be 168. (fixed)
Error at segment 0x0006EC66: Number of registered ships is 148, but should be 168. (fixed)
When you check stbof.res, there indeed are 168 ships. Missing are the minor race ships and monsters.
By forum search I found Gowron nopped the code. Adding back the limit check however shouldn't cause any issues.
viewtopic.php?p=5261#p5261
For 0x6EC66 he missed to update the limit.
Spocks-cuddly-tribble wrote: ↑Fri Apr 02, 2010 7:08 am
Number of ships:
0x
6EC0A (sub_46F7D0) -> redundant
replace at 0x6EC08 -> 83 F8 7D 7D 5E with 90 90 90 90 90
0x
6EC68 (loc_46F85D) -> also redundant (at least in my tests, due to shiprace check)
replace at 0x6EC66 -> 83 FA 7D 7C with 90 90 90 EB
0x
6EF89 (loc_46FB6A) -> redundant
replace at 0x6EF87 -> 66 3D 7D 00 74 with 90 90 90 90 EB
0x
6F02F (loc_46FC0A) -> redundant
replace at 0x6F02D -> 66 3D 7D 00 74 with 90 90 90 90 EB
EDIT:
47983C cmp edi, 7Dh -> number of ships (unused) - See
combat.bin.
Well, DCER opted to update instead of nopping the limits. If preferred I can change to nop the code or accept both.
Since updating the UE code also means additional work, I however see little reason not to add the updated limit back.
0x6EF87 and 0x6F02D (UE shipNum1&2) aren't nopped by Gowron either.
5. UCW trek.exe errors:
Code: Select all
Warning at segment 0x0018E880: House of Gowron ship map range 'Short' (2) at level 5 is lower than at level 4 (7).
Warning at segment 0x0018E880: House of Gowron ship map range 'Medium' (4) at level 5 is lower than at level 4 (8).
Warning at segment 0x0018E880: House of Gowron ship map range 'Long' (6) at level 5 is lower than at level 4 (9).
Warning at segment 0x0018E880: Romulan ship map range 'Short' (1) at level 9 is lower than at level 8 (10).
Warning at segment 0x0018E880: Romulan ship map range 'Medium' (2) at level 9 is lower than at level 8 (12).
Warning at segment 0x0018E880: Romulan ship map range 'Long' (3) at level 9 is lower than at level 8 (15).
This looks to be misaligned by some unsupported code extension. I'll have to take a closer look and likely update UE code to support trek.exe ship range settings for extended tech levels.
6. UCW stbof.res errors:
Code: Select all
Warning: in converse.bin: Duplicate reference to voice list 15160 detected by voice group 10.
Warning: in converse.bin: Duplicate reference to voice list 15128 detected by voice group 16.
...
Info: in converse.bin: The following voice lists aren't mapped by any voice group:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ...
Usually each voice entry has it's own recordings. For UCW however the House of Gowron and Duras share same recordings. Therefore, when you check english.snd or german.snd, there are many unused entries. I might look into reducing the warnings and just tell the number of duplicates and missing entries. In addition I think it should be info only, no need to warn on integrity.
7. Duplicate ship model name trek.exe errors (MUM,...):
Code: Select all
Warning at segment 0x0018F7FC: Duplicate ship model name 'OPN' detected. Renaming to 'NBT'. (fixed)
Warning at segment 0x0018F7FC: Duplicate ship model name 'OPN' detected. Renaming to 'BMF'. (fixed)
Even vanialla trek.exe still has a duplicate HM1 ship model entry of same model name. Given that the ship models are identified by the slot name, the names should be unique. There is no reason to keep the bug.
-------------------------------------------------------------------
8. GALM 0.4.0 trek.exe issues:
Code: Select all
Validation error at segment 0x00074827 [ shipNameCode ]: ♦ Read unknown code modification
The 0x00074827 shipNameCode segment validation fails due to some unsupported changes I need to check.
Code: Select all
Error at segment 0x0018DDAC: Minor race start building id [217] doesn't match detected main building start [199]. (fixed)
Error at segment 0x0018DDAC: Minor race end building id [217] doesn't match detected main building end [199]. (fixed)
first data complex is classified as research group, see below
9. GALM 0.4.0 stbof.res issues:
to just list a few more important ones...
Code: Select all
Error: in edifice.bst: The industry [89-89] and food [97-98] buildings must have no intermediates but disabled non-buildable structures.
Error: in edifice.bst: The industry [134-134] and food [143-144] buildings must have no intermediates but disabled non-buildable structures.
The slots in between are reused for energy structures. Trek.exe however doesn't support this, because sub_486550 increments the ecx register, to loop through both the industry and food building ids.
DCER wrote: ↑Sat Jan 03, 2009 10:08 am
Main industry and food buildings of a race also need to be grouped together (industry first, food second).
Code: Select all
Error: in edifice.bst: For empire 2 there is another main research building [217] found.
The previous one is first data complex, erronously set to main research group.
Code: Select all
Error: in edifice.bst: The technology map must be increased to support the max assigned tech level 15.
It currently is limited to 11 technology levels at maximum.
Edifice has a tech level mapping, used for the tech database and possibly AI upgrades?
It must be increased to support additional tech levels. Can be fixed with UE building stats tools.
Code: Select all
Error: in edifice.bst: The Upgrade id 334 of building 290 exceeds the building number 334. (unset)
The Interspatial Power Matrix is set to upgrade building 334, which doesn't exist.
Code: Select all
Exception:
java.io.IOException: No main builings found for filter group main intel building
I'll need to add some check to disable intel stucture updates. Not sure what problems occure ingame when there are no intelligence buildings.
Not as many issues I expected.