-----Messaggio originale-----

Da: David Haywood [mailto:neohaze@nildram.co.uk]
Inviato: venerdì 13 novembre 2009 15.45
Cc: Angelo Salese
Oggetto: Re: Soccer Superstars tilemaps

slightly better fix.

David Haywood wrote:
> this allows the full width tilemaps to be shown without wrapping 
> problems..  probably not an ideal fix, but it works until I find 
> something better.
>
This commit is contained in:
Angelo Salese 2009-11-13 20:09:56 +00:00
parent 8255c65387
commit e456ca90cc
2 changed files with 11 additions and 4 deletions

View File

@ -1591,7 +1591,7 @@ void konamigx_mixer(running_machine *machine, bitmap_t *bitmap, const rectangle
{
UINT16* src = BITMAP_ADDR16(extra_bitmap,yy,0);
UINT32* dst = BITMAP_ADDR32(bitmap,yy,0);
int shiftpos = 30;
int shiftpos = 0;
for (xx=0;xx<width;xx+=2)
{
UINT16 dat = src[(((xx/2)+shiftpos))%width];
@ -2078,7 +2078,7 @@ VIDEO_START(konamigx_type3)
int height = video_screen_get_height(machine->primary_screen);
K056832_vh_start(machine, "gfx1", K056832_BPP_6, 0, NULL, konamigx_type2_tile_callback, 1);
K055673_vh_start(machine, "gfx2", K055673_LAYOUT_GX6, -132, -24, konamigx_type2_sprite_callback);
K055673_vh_start(machine, "gfx2", K055673_LAYOUT_GX6, -132, -23, konamigx_type2_sprite_callback);
_gxcommoninitnosprites(machine);
@ -2094,9 +2094,10 @@ VIDEO_START(konamigx_type3)
//tilemap_set_flip(gx_psac_tilemap, TILEMAP_FLIPX| TILEMAP_FLIPY);
K053936_wraparound_enable(0, 1);
K053936GP_set_offset(0, 0, 0);
// K053936GP_set_offset(0, -30, -1);
K053936_set_offset(0, -30, +1);
K056832_set_LayerOffset(0, -48, 0);
K056832_set_LayerOffset(0, -52, 0);
K056832_set_LayerOffset(1, -48, 0);
K056832_set_LayerOffset(2, -48, 0);
K056832_set_LayerOffset(3, -48, 0);

View File

@ -6821,6 +6821,12 @@ void K056832_tilemap_draw(running_machine *machine, bitmap_t *bitmap, const rect
drawrect.min_x = (dminx < cminx ) ? cminx : dminx;
drawrect.max_x = (dmaxx > cmaxx ) ? cmaxx : dmaxx;
// soccer superstars visible area is >512 pixels, this causes problems with the logic because
// the tilemaps are 512 pixels across. Assume that if the limits were set as below that we
// want the tilemap to be drawn on the right hand side.. this is probably not the correct
// logic, but it works.
if ((drawrect.min_x>0) && (drawrect.max_x==511)) drawrect.max_x=cliprect->max_x;
tilemap_set_scrollx(tmap, 0, dx);