http://bugs.winehq.org/show_bug.cgi?id=21708
--- Comment #34 from Rafał Mużyło galtgendo@o2.pl 2013-02-08 17:35:35 CST --- I'm a bit late again. There has been regression in wine 1.5.23, that's sort of, but not quite is related to this bug, in the way, that most likely it can happen only on cards as old as r200.
I've bisected it to 3f21757702239f1c254cdc860d71e76e9929d409.
The problem happens to be if (wined3d_settings.vs_mode == VS_NONE && wined3d_settings.ps_mode == PS_NONE) return &none_shader_backend;
It seems that on an r200 only one of those conditions is false, leading to select_shader_backend returning arb_program_shader_backend instead of none_shader_backend. That in turn leads to completely corrupted display.
Alternatively, if (gl_info->supported[ARB_VERTEX_PROGRAM] && gl_info->supported[ARB_FRAGMENT_PROGRAM]) &arb_program_shader_backend;
could be the problem/solution, as toggling the condition && <-> || in *either* seems to fix the problem.