From 457df1ad82d537ecd68ce5255d673cea97f78e5a Mon Sep 17 00:00:00 2001 From: Couriersud Date: Fri, 18 Jan 2008 19:30:05 +0000 Subject: [PATCH] asterix.c * fixes asterix_1055gre - flip issue --- src/mame/video/asterix.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/mame/video/asterix.c b/src/mame/video/asterix.c index 96d662b9967..6110751d0c6 100644 --- a/src/mame/video/asterix.c +++ b/src/mame/video/asterix.c @@ -48,11 +48,6 @@ VIDEO_START( asterix ) K056832_vh_start(machine, REGION_GFX1, K056832_BPP_4, 1, NULL, asterix_tile_callback, 1); K053245_vh_start(machine,0, REGION_GFX2,NORMAL_PLANE_ORDER, asterix_sprite_callback); - K056832_set_LayerOffset(0, 89, 0); - K056832_set_LayerOffset(1, 91, 0); - K056832_set_LayerOffset(2, 89, 0); - K056832_set_LayerOffset(3, 95, 0); - K053245_set_SpriteOffset(0,-3,-1); } @@ -77,6 +72,23 @@ VIDEO_UPDATE( asterix ) static const int K053251_CI[4] = { K053251_CI0, K053251_CI2, K053251_CI3, K053251_CI4 }; int layer[3], plane, new_colorbase; + /* Layer offsets are different if horizontally flipped */ + if (K056832_read_register(0x0) & 0x10) + { + K056832_set_LayerOffset(0, 89-176, 0); + K056832_set_LayerOffset(1, 91-176, 0); + K056832_set_LayerOffset(2, 89-176, 0); + K056832_set_LayerOffset(3, 95-176, 0); + } + else + { + K056832_set_LayerOffset(0, 89, 0); + K056832_set_LayerOffset(1, 91, 0); + K056832_set_LayerOffset(2, 89, 0); + K056832_set_LayerOffset(3, 95, 0); + } + + tilebanks[0] = (K056832_get_lookup(0) << 10); tilebanks[1] = (K056832_get_lookup(1) << 10); tilebanks[2] = (K056832_get_lookup(2) << 10);