Announcement

Collapse
No announcement yet.

Need help locating hardcoded values in Age of Wonders 1 (PC)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Need help locating hardcoded values in Age of Wonders 1 (PC)

    (I know how to search game data for hex tables and how to change values at runtime with Cheat Engine, but that's about it. I'm comfortable with OOP (Ada, C++, JavaScript) and regex but assembly language is beyond me.)

    With that out of the way, I am in need of some help with changing a few hardcoded values in the old PC classic Age of Wonders from 1999. I'm fairly confident that those are located in a file called AoWEPACK.dpl (which looks like a .dll file to me) since they are unaffected by changes made with the primary modding tool DevEdit, and AoWEPACK.dpl is also where other general values (ability stats etc.) are stored. I've uploaded this file here (3MB) if you want to take a look.

    First of all, I'm looking to modify the colour of each player/race. These colours are used for text messages amongst other things so they're definitely not just external images, but actual colours that must be defined somewhere. I extracted the RGB codes from screenshots but have been unable to find those values in the mentioned AoWEPACK.dpl file (or any other file for that matter, including AoW.exe). I know there's a lot of different ways to store colours including palettes, so I did a Google search for hacking colour values in games, found this thread, and decided to give up since I don't even have any idea how the colours are stored in the first place.

    Also, I'm looking to modify the default relations between races/players. There are 12 races, each of which has a default relation with every other race as well as itself. In the game, relations are "percentage" values that can go above 100 and below 0 and are stored as integers. However, the default relations are always either 10%, 30%, 50%, 70%, or 90%, which corresponds to the five relation ranges (hostile, wary, neutral, polite, and friendly), so I'm not sure the default relations are really stored the same way as in the runtime memory. Since there are 12 races and the default relations are symmetrical, there should be a list somewhere with 78 entries, or 66 entries if the relations a race has with itself are excluded (those are always 90%). Of course it might also be possible that the relation symmetry is actually done manually and there is a 12 by 12 table somewhere. In AoWEPACK.dpl I found entries called TDiplomaticRelationList, TDiplomaticRelationHistoryItem, TDiplomaticRelationHistoryList and TPlayerDiplomaticRelations, and the following code looked like table format at first glance, but is too short to contain all the relations, and any changes there resulted in runtime errors immediately upon starting AoW.exe.

    So... I'm pretty much lost here. I'd be happy to supply any sort of additional info but at this point I don't even know what's relevant. Can anyone tell me how to proceed from here?
Working...
X