I've been looking at the Dolphin 5.0 release trailer. They made a big deal about "zfreeze" fixes, and proceeded to show a few comparisons between the old and new versions. They keep mentioning how it was previously thought to be impossible to implement zfreeze in the emulator.

My question is, what is zfreeze, why's it used, and why's it so special in that it was almost thought impossible to implement in an emulator?

  • 1
    I'll try to write a bit about it tomorrow if I can, and if no one else does first. For now I'll leave you with this quote from one of the Dolphin developers who lead the zfreeze work, a mere year and a half ago: "we have a rough idea of what zfreeze is and how it works." This for one of the basic graphics primitives of the system. Experienced graphics devs had "a rough idea of what it is" :) – hobbs Jul 2 '16 at 9:29

The Introduction from the Dolphin Progress Report: January 2015 answers your question at least partially:

zfreeze is a notable feature of the GameCube/Wii GPU with no real equivalent on modern PC GPUs. It can "freeze" the depth value for pixels in a polygon to an arbitrary reference plane. The intended use for this was to combat z-fighting, that ended up being used in a variety of ways by different games. While this sounds like something that should be fairly easy to emulate, it definitely isn't. Limited ability to understand the feature on top of limitations within what Dolphin can do with OpenGL and D3D made it a nightmare to even comprehend how to tackle the feature.

  • This is a great read. It was hidden in a progress report and that explains why I couldn't find it. Thanks! – 9a3eedi Jul 10 '16 at 19:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.