(12-06-2015, 02:17 AM)Jhonn Wrote: As far as I remember from the Hyrule Field Slowdown thread, Zelda TP does something fancy to draw the base map and this operation is very heavy, even on a real GC/Wii, bringing them to its knees. The difference is that this operation is executed only once (during the transition to the new area -- so you can't notice) and then the game "flag" this somewhere.Hm, maybe, but as I haven't heared anything about such an issue, I doubt it. This would be a huge CPU issue to be honest.
(12-06-2015, 02:17 AM)Jhonn Wrote: Then it enters the speed hack. In its initial version it introduced a threshold somewhere in Dolphin code, when a specific operation used to generate the minimap was called more than that threshold, Dolphin assumed we were on Hyrule Field and would skip those further calls.No. The old speedhack did skip some GPU commands required for the minimap. Fun fact, the border was also broken with the old speed hack. But the minimap was always redrawn on *every* frame.
(12-06-2015, 02:17 AM)Jhonn Wrote: However, this could also cause issues in other games if the option was enabled, and so, during some cleanups/accuracy improvements the hack was completely removed from Dolphin's source.I think here we need why this minimap is so hard for dolphin. For each border part, it draws a triangle, a line, a triangle again, and a point. As we can't merge different primitive types, we end in ten thousends of draw call on our real hardware. We had a bug in dolphin which merges such draw calls and reorder them based on the primitive type (which is not allowed). As there is also a state change within this loop, those primitives were still not merged. So the old speedhack did just ignore this state changes. As we've fixed those primitive merging, the old speedhack wasn't functional any more (through the speedhack removal was merged 3 days earlier...).
Edit:
old speedhack removal: https://github.com/dolphin-emu/dolphin/commit/b49c09c36b67efc95abe29894620b36547b69d3b
primitive merging bux fix: https://github.com/dolphin-emu/dolphin/commit/6b0183952564a11cd4eee42715e61ea2962caff3
