mirror of
https://github.com/holub/mame
synced 2025-05-18 11:39:29 +03:00
fix global flipscreen.
-- Due to updateflip _always_ flipping visarea when flip is set (confusing!), visarea X was flipped twice when globally going from off->on, causing broken cocktail mode in a bunch of drivers (galaga, digdug, warpwarp, ..). This symptom turned up when these drivers were updated with 'raw' screen params, causing visarea-1 != screen width/height due to blanking area info inside width/height.
This commit is contained in:
parent
0e7cc87274
commit
14953bd050
@ -445,8 +445,14 @@ static void updateflip(running_machine *machine)
|
|||||||
|
|
||||||
void flip_screen_set(running_machine *machine, int on)
|
void flip_screen_set(running_machine *machine, int on)
|
||||||
{
|
{
|
||||||
flip_screen_x_set(machine, on);
|
generic_video_private *state = machine->generic_video_data;
|
||||||
flip_screen_y_set(machine, on);
|
if (on) on = ~0;
|
||||||
|
if (state->flip_screen_x != on || state->flip_screen_y != on)
|
||||||
|
{
|
||||||
|
if (!on) updateflip(machine); // flip visarea back
|
||||||
|
state->flip_screen_x = state->flip_screen_y = on;
|
||||||
|
updateflip(machine);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -463,6 +469,7 @@ void flip_screen_set_no_update(running_machine *machine, int on)
|
|||||||
* bypass update_flip
|
* bypass update_flip
|
||||||
*/
|
*/
|
||||||
generic_video_private *state = machine->generic_video_data;
|
generic_video_private *state = machine->generic_video_data;
|
||||||
|
if (on) on = ~0;
|
||||||
state->flip_screen_x = on;
|
state->flip_screen_x = on;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user