Sunday, January 8, 2012

Texture Mapping Round #2

It's the weekend, I have a bit more free time to look at this. I don't like feeling like an idiot so I was determined to figure out why my textures weren't loading. The deleting of game files and having it not crash was a pretty big sign that something was going on. I assumed it might be caching. To determine what files are actually opened by the game process I reloaded the game and looked at the file list in Process Monitor.

(procmon.exe) The original asset file was still being loaded, d'oh!

As you can see in the above image, it turned out when I 'renamed' the original asset file I left the '.bin' extension. Clearly the application is just looking at any .bin file in that directory, extracting and loading it. It wasn't a caching problem, it was just continuing to load the original files! So this time I renamed the original data_10_char.bin file to data_10_char.bxx and in the same directory created the modified data_10_char.bin asset archive with the replaced DDS files. I gave it a red body and yellow legs so it should be pretty easy to tell if it worked.

The original asset (left) and my modified version (right).

It totally worked. One thing you may notice is that the surface still looks 'glossy'. There's a number of other DDS files that I think have to do with mapping and reflection which I didn't modify. I don't really know just yet how to disable those effects simply by modifying the texture, but I'll look into it later. At least now I know I can change the textures! Now, back to learning more DirectX.