CrazyMLC / UFO-TTS-Editor

Edits various values within UFO TTS. Find the game here: https://www.moddb.com/games/drraduncev
MIT License
2 stars 0 forks source link

MC vs DrLoco Observations #1

Open mclang opened 3 years ago

mclang commented 3 years ago

Hello

I have been watching how DrLoco as X-COM fares against MetalCanyon, and although the changes you have made possible already make game more balanced, there is lot to do to make it even. The worst problems currently seems to be:

From those I thing easiest to fix would be X-COM reactions and experience, provided the right memory locations can be found. I might have some time to help with this, but I haven't done any HEX editing or debugging in ages, so I need some help to get started. Could you e.g list some basic tools in the README and possibly links which I could check out?

Do you have any plan to continue with this editor any time soon?

mclang commented 3 years ago

Hello again.

As I understand, UFO-TTS-Editor changes only the main exe. How easy or hard would it be to change save games? My reasoning being, finding the right memory addresses could be easier when working with save games because you might be able to test things faster :thinking:

CrazyMLC commented 3 years ago

Hey there, just saw this.

Work has slowed on this tremendously compared to when I initially picked the project up, but it's back on my radar recently. Progress will vary as I have a couple plates spinning at the moment, such as helping to translate a game. If you wanted to give editing a shot, that would be a tremendous help.

Updating the README is a good idea, but for now, I'd like to point you to the Manual Patching Guide. I wrote it when I was still neck deep in this. All the information I knew is in there, expressed as clearly as possible.

Something you'll notice if you look at BYTE_LOCATIONS.ini, is that similar items tend to be defined in the same regions of the EXE. So, there are kind of "sectors" to the EXE, split into research, equipment, aliens, craft, etc. Using that information can make finding new values a lot easier.

I've tried pretty hard to find out where the soldier min/max stat values are, but it doesn't seem to be stored as simple 4 byte integers. Might need some out of the box thinking to find where their stats are stored, on the same level that finding the FoW took. (part of finding that was decompiling the EXE in IDA.)

I haven't investigated editing the saves at all. They're plaintext though, so the main roadblock is patience. They seem to start with the name of the object being defined, and then a bunch of numbers afterwards. Simplest way to figure them out is just brute force changing the values to see what's different.

CrazyMLC commented 3 years ago

By the way, in the guide, I mention a tool called MadEdit. You can use any hex editor, I just happen to like this one. You can find MadEdit here.

As a quick TL;DR example of the guide: Let's say that if you see a number, like maybe a weapon's mag size is "16" in the game, you can search for the hexstring "f0 00 00 00" in the EXE. There'll be less than a few dozen of those hexstrings, and only a handful will be in the range where weapons are defined. From there, you just change them one by one until you find the one that does what you want. (Or, if you want to go a bit faster, edit them all to different values and see which value the 16 turns into.) Just keep in mind that this won't modify saves, so loading into a battlescape to check if it worked won't help. You have to enter a new battlescape mission.

Some edits require both sides to be playing in order to test. You can actually run two instances of the game no problem by connecting to, as you might already suspect, '127.0.0.1'. Just launch them from separate folders so they don't overwrite each others saves.