I was winding you up about your lecture on old versions of DirectX. <=> Random news item.
Anyway, I've been sifting through a couple of files. Tried the tiny .cfg files first, but of course no luck there. So, I went right through RT3.exe (1.05 version) and have learned a few things.
First thing I learned is that hex files are horrible.
Second thing I learned is that I need a more powerful and flexible hex editor. That means one that will spit out the dump columns as a separate text file or, alternatively, is capable of running a search on the dump columns independently of the hex columns. Even better if it does both. I don't care if the sucker is a 25 meg download and chews 3 gig of RAM, as long as it does what I want it to do.
Third thing I learned is that, not suprisingly, the vast majority of RT3.exe consists of the various equations that are required to run the gfx engine and other aspects of the game. Most of it is stuff I'd never want to edit, because it already does the job well. This is good in one respect (most of the file can be ignored) and bad in another (have to find the bits that can't be ignored).
Fourth thing is that I'd kill for a decent roadmap to the syntax used for the variables, etc. The file is not written in standard mathematical notation, even in the dump columns. If anyone has managed to map some sections of the .exe, even if their notes are as rough as guts, I'd very much like to see such notes (got any, Ned?).
Fifth thing is the good bit.
I think I found the culprits.
Haven't had time to dig any further, and I know I can't just shove extra bytes into the .exe any old how, but this is looking very much like the stuff I was hunting. So, I assume the next step is to track down where those variables are coming from, and head them off at the pass.
------------------------------------------------------
Also found a variety of other interesting stuff.
In the range 00168300 to 0017b6b0, there are several mentions of DXT1 through to DXT5. These are outdated lossy image compression algorithms:
http://en.wikipedia.org/wiki/S3_Texture_Compression
My suspicion is that these are the algorithms responsible for map degradation on saving. That opens up the possibility that
maybe, at some point, another non-lossy algorithm could be called for the editor. That's probably not nearly as easy as it sounds, but I assume it would be possible.
Selection of A, B, C and D skins appears to be controlled by the code from 001de130 to 001de1c0.
001df530 to 001df560 call an outdated version: Direct3D/D3DX8 Shader Assembler Version 0.91. This could well be the faulty shader that Thietavu mentioned earlier. If the call was updated, that might be useful.
A pile of .dll files are called from 001ebeb0 to 001ec070.
Day/night cycling appears to be controlled around 00233930 and on. Not sure if anything can be done with that.
Also, the single track wooden bridge is called at 001cafa0. It looks like it shouldn't be too hard to add code for double tracked wooden bridges, if anyone ever wanted to do it.
Now I need a break from $^#&! hex files.
![cheers (0!!0)](./images/smilies/cheers.gif)