Technical discussion for those interested in Supermodel development and Model 3 reverse engineering. Prospective contributors welcome. Not for end-user support.
I'm not sure whether this is a known issue, but since Commit: 628eeebbc3eae08de86989329fed1f3cb7426a88 (Nov 3, 2023) the draw distance for fences in the Daytona USA 2 games has been quite low (noticeable pop-in of fences).
Using Commit: 8dda8e9105a2cd08aafcbb7d9149c05db3a3f59e resolves the issue.
Can confirm, it's just much less noticeable when running at 496x384 which is the Model 3's native resolution.
Model 3 automatically culls objects based on size and distance, optionally fading them out gradually, according to parameters specified by the programmer. This is used primarily as a performance-saving measure, but a couple of games (Emergency Call Ambulance and The Ocean Hunter) use it to implement translucency effects. Here's ECA using it to implement a trail effect during the attract sequence:
Eliminating the fence pop-in would unfortunately also mean breaking these translucency effects.
Interesting indeed! Never noticed the pop-ins back in the days in the arcade, must be a combination of CRT displays, low resolution and even lower expectations in general.
Tried Emergency Call Ambulance with both commits and with 8dda8e9 the trail effect definitely looks wrong.
Though for me the pop-ins with 628eeeb+ look much worse. The knowledge that this is the original design and intentional does not change the fact that it feels wrong to me and I cannot really get used to it after being spoiled by Supermodel for many years .
An option for modifying LOD/draw distance in general would be great, but this is probably not feasible. Maybe a command-line option to revert to commit 8dda8e9 behavior ?!
It should be possible to add a command line option that forces LOD to one of the 4 levels (IIRC, there were 4 right?). But I think this would be somewhat non-trivial to implement. I assume there is a lot of logic sprinkled throughout the new renderer to handle these cases and there isn't a single point where this behavior can be disabled easily and a fixed LOD selected?