Just in time for Christmas, I think I've finally fixed some issues with back-face culling, allowing mirrored tracks to work in Daytona 2 and Scud Race Plus. This also fixes the inverted wheels in Dirt Devils.

I still have more testing to do before making a formal WIP post on the news page. Assuming I've really fixed the problem (and haven't introduced new bugs), the code desperately needs to be optimized. A relatively expensive 3x3 matrix inversion and a few matrix multiplications have to be performed for each model instance in order to determine the forward-facing direction. But still, it's a start! The inverted geometry problem has been bugging me for a long time so to have finally figured out where the problem was is a nice little Christmas present for me.

What do you mean? Can you post before/after screenshots? I'm assuming you've tried out the SVN build.

The lightsabers are still blackish in color tho.

I believe this is a rendering order problem. It's not understood how Model 3 sorts polygons, if at all, or whether that information is implicit in the way the scene graph is laid out. MAME solves the problem by sorting every single polygon by Z distance and rendering back-to-front. This will virtually always look correct (and is even better than what the actual Model 3 hardware actually does). Per-polygon sorting is not an option in Supermodel because I accelerate rendering by batching up entire models into vertex buffer objects to be decoded once and rendered each time they are referenced.

When the renderer is rewritten some point in the future, I will look into some sort of rudimentary sorting on a per-model basis, but the bigger reason for redesigning it is to fix the remaining texture formats. We're not yet ready to go there.

Bart wrote:Just in time for Christmas, I think I've finally fixed some issues with back-face culling, allowing mirrored tracks to work in Daytona 2 and Scud Race Plus. This also fixes the inverted wheels in Dirt Devils.

I still have more testing to do before making a formal WIP post on the news page. Assuming I've really fixed the problem (and haven't introduced new bugs), the code desperately needs to be optimized. A relatively expensive 3x3 matrix inversion and a few matrix multiplications have to be performed for each model instance in order to determine the forward-facing direction. But still, it's a start! The inverted geometry problem has been bugging me for a long time so to have finally figured out where the problem was is a nice little Christmas present for me.

Merry Christmas to all and to all a good night!

Stupid question, but does this fix the severe geometry problems with the malfunctioning games?

For Christmas I got an Asus desktop with a GeForce GT 220 and a Core2 Quad. It runs Supermodel with no lag, but Scud Race and Daytona USA 2 are running at about 40 FPS average. I've increased the framerate with the PowerPC frequency on the front-end to 50Hz, but that doesn't seem to help. I run Windows Vista Home Premium 64-bit, for your concerns about OS. Anyways, I'm done complaining about this!

Anyway, are we expecting to see the PowerPC and the IRQ timers clocked properly in the next version of Supermodel? And as well as a full-tuned SCSP core?