mirror of
https://github.com/holub/mame
synced 2025-05-17 11:15:06 +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)
|
||||
{
|
||||
flip_screen_x_set(machine, on);
|
||||
flip_screen_y_set(machine, on);
|
||||
generic_video_private *state = machine->generic_video_data;
|
||||
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
|
||||
*/
|
||||
generic_video_private *state = machine->generic_video_data;
|
||||
if (on) on = ~0;
|
||||
state->flip_screen_x = on;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user