I think I've had a breakthrough.
Following on from finding that alpha textures work without fog
(video link), I wanted to try converting a solid texture into an alpha one in hex. Looking at
this thread, here seemed like a good place to start:
Originally posted by cpuHacka1010xFC G_SETCOMBINE
Performs combining operations (ex. multi-texturing)
Syntax: Unknown
Examples:
FC 12 7F FF FF FF F8 38 - Standard usage for solid RGBA textures
FC 12 18 24 FF 33 FF FF - Standard usage for alpha RGBA textures
I wanted to isolate and change that one solid textured block in mostlytrans.out.z64 (seen in the video above), by replacing “FC 12 7Fs...” with “FC 12 18s..”, semi at random, but I wasn't getting anywhere. So I thought, “alright, let's just try replacing all the “FC 12 7Fs” in the rom, it'll probably break everything, but whatever, let's see how it goes”.
So...
CodeFind All: FC 12 7F FF FF FF F8 38
Replace With: FC 12 18 24 FF 33 FF FF
And... it actually worked really well! Where we once had flickering between black and white, we now have textures! It also works with other hacks too. That being said, one side effect I've noticed, is that it basically breaks levels with fog effects – everything turns black and blue.
Video:
https://www.youtube.com/watch?v=ROgEQHsqSRM
As an aside, this also seems to fix custom title screens. My guess is that the title screen objects would also flicker between black and white depending on the viewing angle, and that the angle the title screens were viewed at always showed them as being black. A black title screen object on a black background made it look like the object was missing altogether.
This probably isn't the correct way to go about fixing the textures, but hey, it works! It's a starting point, at least.