PrismaticFlower / shaderpatch

Improved shaders (and fun stuff for modders) for Star Wars Battlefront II (2005) - Incompatible with Classic Collection
MIT License
39 stars 2 forks source link

static_water.specular has an unknown crashing error #112

Closed DoctorAnsem closed 4 years ago

DoctorAnsem commented 4 years ago

As I noted in #104, there is a crashing element and I've traced it back to a material. I didn't catch anything out of the ordinary with the material (it was directly copied from a working static_water material on a different map) or the mesh, so maybe it's somehow conflicting with real water? Nevertheless it crashes the game the moment it's supposed to be drawn. There's no real 'error' to name either, as far as the interface editor is concerned, the material is a fully working one... offscreen, that is.

PrismaticFlower commented 4 years ago

I just posted a new release with logging for when a shader can't be found that a custom material is asking for. If that is the cause of the crash it'll still (appear to) crash but in shader patch.log there should be a final entry detailing the shader that was being asked for and was missing.

Whenever you get the time if you could grab the new release, get the game to crash from this issue and then report back with the shader patch.log, that'd be great. Hopefully this will help give us a solid idea as to what the problem is.

DoctorAnsem commented 4 years ago

[ERROR] 09:30:45 Failed to find shader state 'unlit transparent' for material shader 'static_water.specular'!

That's what it's saying. Strange, to say the least - I'd have expected something like that to be a universal issue and not just one map.

PrismaticFlower commented 4 years ago

I've added a possible fix for this to the latest stable release. Let me know how it goes or if you encounter any similar crashes.

DoctorAnsem commented 4 years ago

Yeah it doesn't crash anymore. I suppose the original conflict might have been that the stock material had the emissive flag (which I don't understand why but ok) but nevertheless that problem is gone.