mirror of
https://github.com/holub/mame
synced 2025-05-27 16:21:34 +03:00
Also aligned plain tilemaps too, apparently there are some huge clip issues as well...
-----Messaggio originale----- Da: David Haywood [mailto:neohaze@nildram.co.uk] Inviato: lunedì 9 novembre 2009 19.06 A: Angelo Salese Oggetto: Further improvements note, eyes may hurt, but it proves the roz / sprites work. check in please.
This commit is contained in:
parent
63c78cd01c
commit
c4ad0d37e3
@ -1513,7 +1513,9 @@ static MACHINE_DRIVER_START( gxtype3 )
|
||||
MDRV_PALETTE_LENGTH(16384)
|
||||
MDRV_SCREEN_MODIFY("screen")
|
||||
MDRV_SCREEN_SIZE(128*8, 32*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
|
||||
// MDRV_SCREEN_VISIBLE_AREA(0, 128*8-1, 0, 32*8-1)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16)
|
||||
|
||||
MDRV_GFXDECODE(type34)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
@ -15,6 +15,7 @@ static int gx_tilemode, gx_rozenable, psac_colorbase, last_psac_colorbase;
|
||||
static int gx_specialrozenable; // type 1 roz, with voxel height-map, rendered from 2 source tilemaps (which include height data) to temp bitmap for further processing
|
||||
static tilemap *gx_psac_tilemap, *gx_psac_tilemap2;
|
||||
extern UINT32 *gx_psacram, *gx_subpaletteram32;
|
||||
static bitmap_t* type3_roz_temp_bitmap;
|
||||
|
||||
/* On Type-1 the K053936 output is rendered to these temporary bitmaps as raw data
|
||||
the 'voxel' effect to give the pixels height is a post-process operation on the
|
||||
@ -328,8 +329,11 @@ VIDEO_START(konamigx_6bpp)
|
||||
|
||||
VIDEO_START(konamigx_type3)
|
||||
{
|
||||
K056832_vh_start(machine, "gfx1", K056832_BPP_6, 0, NULL, konamigx_type2_tile_callback, 0);
|
||||
K055673_vh_start(machine, "gfx2", K055673_LAYOUT_GX6, -53, -23, konamigx_type2_sprite_callback);
|
||||
int width = video_screen_get_width(machine->primary_screen);
|
||||
int height = video_screen_get_height(machine->primary_screen);
|
||||
|
||||
K056832_vh_start(machine, "gfx1", K056832_BPP_6, 1, NULL, konamigx_type2_tile_callback, 0);
|
||||
K055673_vh_start(machine, "gfx2", K055673_LAYOUT_GX6, -132, -24, konamigx_type2_sprite_callback);
|
||||
|
||||
_gxcommoninitnosprites(machine);
|
||||
|
||||
@ -338,10 +342,19 @@ VIDEO_START(konamigx_type3)
|
||||
gx_specialrozenable = 2;
|
||||
|
||||
|
||||
/* set up tile layers */
|
||||
type3_roz_temp_bitmap = auto_bitmap_alloc(machine, width, height, BITMAP_FORMAT_INDEXED16);
|
||||
|
||||
|
||||
//tilemap_set_flip(gx_psac_tilemap, TILEMAP_FLIPX| TILEMAP_FLIPY);
|
||||
|
||||
K053936_wraparound_enable(0, 1);
|
||||
K053936GP_set_offset(0, 0, 0);
|
||||
|
||||
K056832_set_LayerOffset(0, -48, 0);
|
||||
K056832_set_LayerOffset(1, -48, 0);
|
||||
K056832_set_LayerOffset(2, -48, 0);
|
||||
K056832_set_LayerOffset(3, -48, 0);
|
||||
}
|
||||
|
||||
VIDEO_START(konamigx_type4)
|
||||
@ -526,10 +539,33 @@ VIDEO_UPDATE(konamigx)
|
||||
// todo: fix so that it works with the mixer without crashing(!)
|
||||
if (gx_specialrozenable == 2)
|
||||
{
|
||||
if ( input_code_pressed(screen->machine, KEYCODE_W) )
|
||||
int xx,yy;
|
||||
int width = video_screen_get_width(screen);
|
||||
int height = video_screen_get_height(screen);
|
||||
const pen_t *paldata = screen->machine->pens;
|
||||
|
||||
//if ( input_code_pressed(screen->machine, KEYCODE_W) )
|
||||
// flicker between game and roz tilemap - warning, may hurt eyes
|
||||
if(video_screen_get_frame_number(screen->machine->primary_screen) & 1)
|
||||
{
|
||||
K053936_0_zoom_draw(bitmap, cliprect,gx_psac_tilemap, 0,0,0); // soccerss playfield
|
||||
K053936_0_zoom_draw(type3_roz_temp_bitmap, cliprect,gx_psac_tilemap, 0,0,0); // soccerss playfield
|
||||
|
||||
// the output size of the roz layer has to be doubled horizontally
|
||||
// so that it aligns with the sprites and normal tilemaps. This appears
|
||||
// to be done as a post-processing / mixing step effect
|
||||
for (yy=0;yy<height;yy++)
|
||||
{
|
||||
UINT16* src = BITMAP_ADDR16(type3_roz_temp_bitmap,yy,0);
|
||||
UINT32* dst = BITMAP_ADDR32(bitmap,yy,0);
|
||||
int shiftpos = 30;
|
||||
for (xx=0;xx<width;xx+=2)
|
||||
{
|
||||
dst[xx] = paldata[src[(((xx/2)+shiftpos))%width]];
|
||||
dst[xx+1] = paldata[src[(((xx/2)+shiftpos))%width]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user