diff options
author | Angelo Salese <angelosa@users.noreply.github.com> | 2009-04-22 15:24:08 +0000 |
---|---|---|
committer | Angelo Salese <angelosa@users.noreply.github.com> | 2009-04-22 15:24:08 +0000 |
commit | 2dcc2acb2915444aeeb20ca0d1f11c491990677e (patch) | |
tree | 87149e79408242da51cfd052ae20b1e9729ded76 | |
parent | 568a36961790b62b85a68a989413b46cb7fb1897 (diff) |
03115: nss_smw: Tilemap issue when displaying game map
-rw-r--r-- | src/mame/video/snes.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/mame/video/snes.c b/src/mame/video/snes.c index 099bfe64f13..6c9e49b8abe 100644 --- a/src/mame/video/snes.c +++ b/src/mame/video/snes.c @@ -663,7 +663,7 @@ static void snes_update_line_2(UINT8 screen, UINT8 layer, UINT16 curline ) /* Remember this position */ basevmap = tmap; /* Offset horizontally */ - tmap += table_hscroll[snes_ppu.layer[layer].map_size][hscroll >> 5]; + tmap += table_hscroll[snes_ppu.layer[layer].map_size & 3][(hscroll >> 5) & 3]; /* Scroll horizontally */ tmap += (hscroll & 0x1f) << 1; @@ -672,7 +672,7 @@ static void snes_update_line_2(UINT8 screen, UINT8 layer, UINT16 curline ) /* Have we scrolled into the next map? */ if( hscroll && ((ii >> 1) >= 32 - (hscroll & 0x1f)) ) { - tmap = basevmap + table_hscroll[snes_ppu.layer[layer].map_size][(hscroll >> 5) + 1]; + tmap = basevmap + table_hscroll[snes_ppu.layer[layer].map_size & 3][((hscroll >> 5) + 1) & 3]; tmap -= ii; hscroll = 0; /* Make sure we don't do this again */ } @@ -791,7 +791,7 @@ static void snes_update_line_2_hi(UINT8 screen, UINT8 layer, UINT16 curline ) /* Remember this position */ basevmap = tmap; /* Offset horizontally */ - tmap += table_hscroll[snes_ppu.layer[layer].map_size][hscroll >> 5]; + tmap += table_hscroll[snes_ppu.layer[layer].map_size & 3][(hscroll >> 5) & 3]; /* Scroll horizontally */ tmap += (hscroll & 0x1f) << 1; @@ -800,7 +800,7 @@ static void snes_update_line_2_hi(UINT8 screen, UINT8 layer, UINT16 curline ) /* Have we scrolled into the next map? */ if( hscroll && ((ii >> 1) >= 32 - (hscroll & 0x1f)) ) { - tmap = basevmap + table_hscroll[snes_ppu.layer[layer].map_size][(hscroll >> 5) + 1]; + tmap = basevmap + table_hscroll[snes_ppu.layer[layer].map_size & 3][((hscroll >> 5) + 1) & 3]; tmap -= ii; hscroll = 0; /* Make sure we don't do this again */ } @@ -923,7 +923,7 @@ static void snes_update_line_4(UINT8 screen, UINT8 layer, UINT16 curline ) /* Remember this position */ basevmap = tmap; /* Offset horizontally */ - tmap += table_hscroll[snes_ppu.layer[layer].map_size][hscroll >> 5]; + tmap += table_hscroll[snes_ppu.layer[layer].map_size & 3][(hscroll >> 5) & 3]; /* Scroll horizontally */ tmap += (hscroll & 0x1f) << 1; @@ -932,7 +932,7 @@ static void snes_update_line_4(UINT8 screen, UINT8 layer, UINT16 curline ) /* Have we scrolled into the next map? */ if( hscroll && ((ii >> 1) >= 32 - (hscroll & 0x1f)) ) { - tmap = basevmap + table_hscroll[snes_ppu.layer[layer].map_size][(hscroll >> 5) + 1]; + tmap = basevmap + table_hscroll[snes_ppu.layer[layer].map_size & 3][((hscroll >> 5) + 1) & 3]; tmap -= ii; hscroll = 0; /* Make sure we don't do this again */ } @@ -1036,7 +1036,7 @@ static void snes_update_line_4_hi(UINT8 screen, UINT8 layer, UINT16 curline ) /* Remember this position */ basevmap = tmap; /* Offset horizontally */ - tmap += table_hscroll[snes_ppu.layer[layer].map_size][hscroll >> 5]; + tmap += table_hscroll[snes_ppu.layer[layer].map_size & 3][(hscroll >> 5) & 3]; /* Scroll horizontally */ tmap += (hscroll & 0x1f) << 1; @@ -1045,7 +1045,7 @@ static void snes_update_line_4_hi(UINT8 screen, UINT8 layer, UINT16 curline ) /* Have we scrolled into the next map? */ if( hscroll && ((ii >> 1) >= 32 - (hscroll & 0x1f)) ) { - tmap = basevmap + table_hscroll[snes_ppu.layer[layer].map_size][(hscroll >> 5) + 1]; + tmap = basevmap + table_hscroll[snes_ppu.layer[layer].map_size & 3][((hscroll >> 5) + 1) & 3]; tmap -= ii; hscroll = 0; /* Make sure we don't do this again */ } @@ -1159,7 +1159,7 @@ static void snes_update_line_8(UINT8 screen, UINT8 layer, UINT16 curline ) /* Remember this position */ basevmap = tmap; /* Offset horizontally */ - tmap += table_hscroll[snes_ppu.layer[layer].map_size][hscroll >> 5]; + tmap += table_hscroll[snes_ppu.layer[layer].map_size & 3][(hscroll >> 5) & 3]; /* Scroll horizontally */ tmap += (hscroll & 0x1f) << 1; @@ -1168,7 +1168,7 @@ static void snes_update_line_8(UINT8 screen, UINT8 layer, UINT16 curline ) /* Have we scrolled into the next map? */ if( hscroll && ((ii >> 1) >= 32 - (hscroll & 0x1f)) ) { - tmap = basevmap + table_hscroll[snes_ppu.layer[layer].map_size][(hscroll >> 5) + 1]; + tmap = basevmap + table_hscroll[snes_ppu.layer[layer].map_size & 3][((hscroll >> 5) + 1) & 3]; tmap -= ii; hscroll = 0; /* Make sure we don't do this again */ } |