mirror of
https://github.com/holub/mame
synced 2025-05-30 09:33:05 +03:00
tecmosys: added sprite buffering / list select so that sprites render properly at 60fps, without 'trails'
(yes I know this is a lot of submits, but maybe some of the new additions will be interested in seeing how a driver develops..)
This commit is contained in:
parent
e73cabb6ad
commit
33da405e0e
@ -194,6 +194,7 @@ static UINT16* bg2tilemap_ram;
|
|||||||
static UINT16* bg1tilemap_ram;
|
static UINT16* bg1tilemap_ram;
|
||||||
static UINT16* bg0tilemap_ram;
|
static UINT16* bg0tilemap_ram;
|
||||||
static UINT16* fgtilemap_ram;
|
static UINT16* fgtilemap_ram;
|
||||||
|
static int tecmosys_spritelist;
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_RESET( deroon );
|
static MACHINE_RESET( deroon );
|
||||||
@ -276,12 +277,17 @@ static WRITE16_HANDLER( unk880000_w )
|
|||||||
{
|
{
|
||||||
switch( offset )
|
switch( offset )
|
||||||
{
|
{
|
||||||
|
case 0x08/2:
|
||||||
|
tecmosys_spritelist = data & 0x3; // which of the 4 spritelists to use (buffering)
|
||||||
|
break;
|
||||||
|
|
||||||
case 0x22/2:
|
case 0x22/2:
|
||||||
watchdog_reset( machine );
|
watchdog_reset( machine );
|
||||||
|
//logerror( "watchdog_w( %06x, %04x ) @ %06x\n", (offset * 2)+0x880000, data, activecpu_get_pc() );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
//logerror( "unk880000_w( %06x, %04x ) @ %06x\n", (offset * 2)+0x880000, data, activecpu_get_pc() );
|
logerror( "unk880000_w( %06x, %04x ) @ %06x\n", (offset * 2)+0x880000, data, activecpu_get_pc() );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -521,9 +527,11 @@ static VIDEO_UPDATE(deroon)
|
|||||||
tilemap_mark_all_tiles_dirty(bg0tilemap);
|
tilemap_mark_all_tiles_dirty(bg0tilemap);
|
||||||
tilemap_draw(bitmap,cliprect,bg0tilemap,0,0);
|
tilemap_draw(bitmap,cliprect,bg0tilemap,0,0);
|
||||||
|
|
||||||
|
/* there are multiple spritelists in here, to allow for buffering */
|
||||||
|
|
||||||
|
|
||||||
for (i=0;i<0x10000/2;i+=8)
|
|
||||||
|
for (i=(tecmosys_spritelist*0x4000)/2;i<((tecmosys_spritelist+1)*0x4000)/2;i+=8)
|
||||||
{
|
{
|
||||||
int xcnt,ycnt;
|
int xcnt,ycnt;
|
||||||
int drawx, drawy;
|
int drawx, drawy;
|
||||||
|
Loading…
Reference in New Issue
Block a user