summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/cischeat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/cischeat.cpp')
-rw-r--r--src/mame/video/cischeat.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/mame/video/cischeat.cpp b/src/mame/video/cischeat.cpp
index d686d65220a..350e70d3bb3 100644
--- a/src/mame/video/cischeat.cpp
+++ b/src/mame/video/cischeat.cpp
@@ -582,9 +582,16 @@ void cischeat_state::cischeat_draw_sprites(bitmap_ind16 &bitmap , const rectangl
sx = source[ 3 ];
sy = source[ 4 ];
- sx = (sx & 0x1ff) - (sx & 0x200);
- sy = (sy & 0x1ff) - (sy & 0x200);
-
+ // TODO: was & 0x1ff with 0x200 as sprite wrap sign, looks incorrect with Grand Prix Star
+ // during big car on side view in attract mode (a tyre gets stuck on the right of the screen)
+ // this arrangement works with both games (otherwise Part 2 gets misaligned bleachers sprites)
+ sx = (sx & 0x7ff);
+ sy = (sy & 0x7ff);
+ if(sx & 0x400)
+ sx -= 0x800;
+ if(sy & 0x400)
+ sy -= 0x800;
+
/* use fixed point values (16.16), for accuracy */
sx <<= 16;
sy <<= 16;