As promised I'll detail my mods starting with MicroTextures. It's based upon some speculation of mine and observation/comparison of actual arcade footage.
Observing the texture memory dump we can see there're 6 LODs for mip-mapped textures:
'0' (base, biggest, nearest to camera) -> '5' (last, smallest, farthest from camera).
The 'MicroTextureMinLOD' seems to be related to the LOD of the underlying texture at which MicroTextures fades away. It's actually the "minmum" size / "maximum" LOD that can be "detailed". That's because details, if used, should be logically visible at short distance from the camera and fade away as we start to go further from it.
An example: in Scud Race MicroTextures are used to alterate the grading of the road texture to exaggerate the "speed" sensation (as in OutRun). They work beautifully at near distance but if used everywhere, especially at long distances, the effect would be "neutralized".
So, for example, if I set 'MicroTextureMinLOD' to '2', the detail texture should be visible on LODs 0,1,2 of the underlying texture, then starts to fade away and disappear at the beginning of LOD '3'.
In my implementation I do:
1) clamp the OpenGL sampler to LOD 0-5
2) in the fragment shader I fetch (with some approximation) the LOD of the current fragment of the underlying texture and make the appropriate decision.
I also disabled anisotropic filtering as it seems that on Model3 (maybe also Real3D) anisotropic filtering is never used, probably is not even capable of. In mid-late 90s it was a very "expensive" feature in terms of GPU power, so filtering is now limited to tri-linear.
As stated in the 'devguide.pdf' there's a 'SetNPScale' function that changes the LOD bias of the texture. That was an old trick to display higher detail textures at longer distance although with little "scintillating" pixels effect. You can see such effect here: https://www.youtube.com/watch?v=wl6tCbnLl7M (look at the road texture from 00:28 to 00:38, and from 00:48). Maybe it has something to do with polygon header 0x05, first 24 bits.
Anyway I'm almost sure it's used, so in my private build I've set GL_TEXTURE_LOD_BIAS to '-3.5' (a dirty hack really, and just for testing), that value gives almost arcade-perfect road textures, but obviously alters too much many other ones. So won't post it.
Here are some screenshots (I've tried to match the gamma/color temperatures/blurriness of both the source and my screen grabs):
Notice the white central stripe on the road going from gray/dirt color to white. Also note the two lateral and distant darker road skids, these are just the road texture without the "detail" tile applied.
Continues....
---
Edit: I've updated the patch to include the fragment shader mods, also is attached here for easier access.








