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?
What is zfreeze and what made it so hard to emulate?
graphics
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.