mirror of
https://github.com/holub/mame
synced 2025-05-29 00:53:09 +03:00
optimized tecmosys.c a bit after testing it on a lower end system ;-)
This commit is contained in:
parent
4c4a9c1278
commit
df5d09299d
@ -2,6 +2,14 @@
|
||||
Driver by Farfetch, David Haywood & Tomasz Slanina
|
||||
Protection simulation by nuapete
|
||||
|
||||
ToDo:
|
||||
Tilemap scroll regs (protection related?, they don't seem to get written with valid values)
|
||||
Sprite Zoom
|
||||
Priorities
|
||||
Redump GFX rom for Deroon Dero Dero
|
||||
Fix Sound (are the sound roms good?)
|
||||
|
||||
|
||||
T.Slanina 20040530 :
|
||||
- preliminary gfx decode,
|
||||
- Angel Eyes - patched interrupt level1 vector
|
||||
@ -217,6 +225,12 @@ static TILE_GET_INFO( get_bg0tile_info )
|
||||
TILE_FLIPYX((bg0tilemap_ram[2*tile_index]&0xc0)>>6));
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( bg0_tilemap_w )
|
||||
{
|
||||
COMBINE_DATA(&bg0tilemap_ram[offset]);
|
||||
tilemap_mark_tile_dirty(bg0tilemap,offset/2);
|
||||
}
|
||||
|
||||
static tilemap *bg1tilemap;
|
||||
static TILE_GET_INFO( get_bg1tile_info )
|
||||
{
|
||||
@ -228,6 +242,12 @@ static TILE_GET_INFO( get_bg1tile_info )
|
||||
TILE_FLIPYX((bg1tilemap_ram[2*tile_index]&0xc0)>>6));
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( bg1_tilemap_w )
|
||||
{
|
||||
COMBINE_DATA(&bg1tilemap_ram[offset]);
|
||||
tilemap_mark_tile_dirty(bg1tilemap,offset/2);
|
||||
}
|
||||
|
||||
static tilemap *bg2tilemap;
|
||||
static TILE_GET_INFO( get_bg2tile_info )
|
||||
{
|
||||
@ -239,6 +259,11 @@ static TILE_GET_INFO( get_bg2tile_info )
|
||||
TILE_FLIPYX((bg2tilemap_ram[2*tile_index]&0xc0)>>6));
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( bg2_tilemap_w )
|
||||
{
|
||||
COMBINE_DATA(&bg2tilemap_ram[offset]);
|
||||
tilemap_mark_tile_dirty(bg2tilemap,offset/2);
|
||||
}
|
||||
|
||||
static tilemap *txt_tilemap;
|
||||
static TILE_GET_INFO( get_tile_info )
|
||||
@ -251,6 +276,12 @@ static TILE_GET_INFO( get_tile_info )
|
||||
TILE_FLIPYX((fgtilemap_ram[2*tile_index]&0xc0)>>6));
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( fg_tilemap_w )
|
||||
{
|
||||
COMBINE_DATA(&fgtilemap_ram[offset]);
|
||||
tilemap_mark_tile_dirty(txt_tilemap,offset/2);
|
||||
}
|
||||
|
||||
|
||||
// It looks like this needs a synch between z80 and 68k ??? See z80:006A-0091
|
||||
static READ16_HANDLER( sound_r )
|
||||
@ -321,7 +352,7 @@ static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM) // work ram
|
||||
AM_RANGE(0x210000, 0x210001) AM_READ(SMH_NOP) // single byte overflow on stack defined as 0x210000
|
||||
AM_RANGE(0x300000, 0x3013ff) AM_READ(SMH_RAM) // bg0 ram
|
||||
AM_RANGE(0x300000, 0x3013ff) AM_READ(SMH_RAM) // bg0 ram
|
||||
AM_RANGE(0x400000, 0x4013ff) AM_READ(SMH_RAM) // bg1 ram
|
||||
AM_RANGE(0x500000, 0x5013ff) AM_READ(SMH_RAM) // bg2 ram
|
||||
AM_RANGE(0x700000, 0x703fff) AM_READ(SMH_RAM) // fix ram (all these names from test screen)
|
||||
@ -365,10 +396,16 @@ WRITE16_HANDLER( tilemap_paletteram16_xGGGGGRRRRRBBBBB_word_w )
|
||||
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM) // work ram
|
||||
AM_RANGE(0x300000, 0x3013ff) AM_WRITE(SMH_RAM) AM_BASE(&bg0tilemap_ram) // bg0 ram
|
||||
AM_RANGE(0x400000, 0x4013ff) AM_WRITE(SMH_RAM) AM_BASE(&bg1tilemap_ram) // bg1 ram
|
||||
AM_RANGE(0x500000, 0x5013ff) AM_WRITE(SMH_RAM) AM_BASE(&bg2tilemap_ram) // bg2 ram
|
||||
AM_RANGE(0x700000, 0x703fff) AM_WRITE(SMH_RAM) AM_BASE(&fgtilemap_ram) // fix ram
|
||||
AM_RANGE(0x300000, 0x300fff) AM_WRITE(bg0_tilemap_w) AM_BASE(&bg0tilemap_ram) // bg0 ram
|
||||
AM_RANGE(0x301000, 0x3013ff) AM_WRITE(SMH_RAM) // bg0 linescroll? (guess)
|
||||
|
||||
AM_RANGE(0x400000, 0x400fff) AM_WRITE(bg1_tilemap_w) AM_BASE(&bg1tilemap_ram) // bg1 ram
|
||||
AM_RANGE(0x401000, 0x4013ff) AM_WRITE(SMH_RAM) // bg1 linescroll? (guess)
|
||||
|
||||
AM_RANGE(0x500000, 0x500fff) AM_WRITE(bg2_tilemap_w) AM_BASE(&bg2tilemap_ram) // bg2 ram
|
||||
AM_RANGE(0x501000, 0x5013ff) AM_WRITE(SMH_RAM) // bg2 linescroll? (guess)
|
||||
|
||||
AM_RANGE(0x700000, 0x703fff) AM_WRITE(fg_tilemap_w) AM_BASE(&fgtilemap_ram) // fix ram
|
||||
AM_RANGE(0x800000, 0x80ffff) AM_WRITE(SMH_RAM) AM_BASE(&tecmosys_spriteram) // obj ram
|
||||
AM_RANGE(0x900000, 0x907fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // AM_WRITE(SMH_RAM) // obj pal
|
||||
|
||||
@ -534,10 +571,10 @@ static VIDEO_UPDATE(deroon)
|
||||
fillbitmap(bitmap,0x000,cliprect);
|
||||
|
||||
|
||||
tilemap_mark_all_tiles_dirty(bg1tilemap);
|
||||
// tilemap_mark_all_tiles_dirty(bg1tilemap);
|
||||
tilemap_draw(bitmap,cliprect,bg1tilemap,0,0);
|
||||
|
||||
tilemap_mark_all_tiles_dirty(bg0tilemap);
|
||||
// tilemap_mark_all_tiles_dirty(bg0tilemap);
|
||||
tilemap_draw(bitmap,cliprect,bg0tilemap,0,0);
|
||||
|
||||
/* there are multiple spritelists in here, to allow for buffering */
|
||||
@ -620,11 +657,11 @@ static VIDEO_UPDATE(deroon)
|
||||
|
||||
}
|
||||
|
||||
tilemap_mark_all_tiles_dirty(bg2tilemap);
|
||||
// tilemap_mark_all_tiles_dirty(bg2tilemap);
|
||||
tilemap_draw(bitmap,cliprect,bg2tilemap,0,0);
|
||||
|
||||
|
||||
tilemap_mark_all_tiles_dirty(txt_tilemap);
|
||||
// tilemap_mark_all_tiles_dirty(txt_tilemap);
|
||||
tilemap_draw(bitmap,cliprect,txt_tilemap,0,0);
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user