I tested this with Hitman 2 Silent Assassin and got the same results where SetTexture() is called with a nullptr so it seems to be the same issue. Stage = 1 is always a D3DRTYPE_CUBETEXTURE, whereas all the other stages are always D3DRTYPE_TEXTURE.Stage = 1, 2 and 3 seem to fail for the first 10 to 14 times each loop, then they start working for the rest of the loop.Stage = 0, 1, 2, 3 are always called in order.So somehow Direct3DTexture8 is getting deleted between the time it is created and the time indy.exe calls the SetTexture() API.Ī few things to note about the SetTexture() API calls: However the issue is that around 42 of the times each loop SetTexture() is called with a nullptr. From what I can tell it is looping and calling SetTexture() around 192 times or so each loop. After that it tries calling SetTexture(). It seems that Indiana Jones and the Emperor's Tomb (indy.exe) is calling CreateTexture() 468 times when the game first starts. Ok, I figured out why the textures are missing.