This commit is contained in:
couriersud 2015-05-01 17:25:31 +02:00
commit 6688996c44
3 changed files with 40 additions and 37 deletions

View File

@ -23,7 +23,7 @@
/******************************************************************************/
WRITE16_MEMBER(darkseal_state::darkseal_control_w)
WRITE16_MEMBER(darkseal_state::control_w)
{
switch (offset<<1) {
case 6: /* DMA flag */
@ -38,7 +38,7 @@ WRITE16_MEMBER(darkseal_state::darkseal_control_w)
}
}
READ16_MEMBER(darkseal_state::darkseal_control_r)
READ16_MEMBER(darkseal_state::control_r)
{
switch (offset<<1)
{
@ -61,9 +61,9 @@ static ADDRESS_MAP_START( darkseal_map, AS_PROGRAM, 16, darkseal_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("ram")
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(darkseal_palette_24bit_rg_w) AM_SHARE("paletteram")
AM_RANGE(0x141000, 0x141fff) AM_RAM_WRITE(darkseal_palette_24bit_b_w) AM_SHARE("paletteram2")
AM_RANGE(0x180000, 0x18000f) AM_READWRITE(darkseal_control_r, darkseal_control_w)
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(palette_24bit_rg_w) AM_SHARE("paletteram")
AM_RANGE(0x141000, 0x141fff) AM_RAM_WRITE(palette_24bit_b_w) AM_SHARE("paletteram2")
AM_RANGE(0x180000, 0x18000f) AM_READWRITE(control_r, control_w)
AM_RANGE(0x200000, 0x201fff) AM_DEVREADWRITE("tilegen2", deco16ic_device, pf1_data_r, pf1_data_w)
AM_RANGE(0x202000, 0x203fff) AM_DEVREADWRITE("tilegen2", deco16ic_device, pf2_data_r, pf2_data_w)
@ -236,7 +236,7 @@ static MACHINE_CONFIG_START( darkseal, darkseal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE_DRIVER(darkseal_state, screen_update_darkseal)
MCFG_SCREEN_UPDATE_DRIVER(darkseal_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", darkseal)
@ -467,8 +467,8 @@ DRIVER_INIT_MEMBER(darkseal_state,darkseal)
/******************************************************************************/
GAME( 1990, darkseal, 0, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (World revision 3)", 0 )
GAME( 1990, darkseal1, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (World revision 1)", 0 )
GAME( 1990, darksealj, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (Japan revision 4)", 0 )
GAME( 1990, gatedoom, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Gate of Doom (US revision 4)", 0 )
GAME( 1990, gatedoom1, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Gate of Doom (US revision 1)", 0 )
GAME( 1990, darkseal, 0, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (World revision 3)", GAME_SUPPORTS_SAVE )
GAME( 1990, darkseal1, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (World revision 1)", GAME_SUPPORTS_SAVE )
GAME( 1990, darksealj, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (Japan revision 4)", GAME_SUPPORTS_SAVE )
GAME( 1990, gatedoom, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Gate of Doom (US revision 4)", GAME_SUPPORTS_SAVE )
GAME( 1990, gatedoom1, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Gate of Doom (US revision 1)", GAME_SUPPORTS_SAVE )

View File

@ -7,42 +7,43 @@ class darkseal_state : public driver_device
public:
darkseal_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_deco_tilegen1(*this, "tilegen1"),
m_deco_tilegen2(*this, "tilegen2"),
m_spriteram(*this, "spriteram") ,
m_ram(*this, "ram"),
m_pf1_rowscroll(*this, "pf1_rowscroll"),
m_pf3_rowscroll(*this, "pf3_rowscroll"),
m_sprgen(*this, "spritegen"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_palette(*this, "palette"),
m_deco_tilegen1(*this, "tilegen1"),
m_deco_tilegen2(*this, "tilegen2"),
m_sprgen(*this, "spritegen"),
m_spriteram(*this, "spriteram"),
m_ram(*this, "ram"),
m_pf1_rowscroll(*this, "pf1_rowscroll"),
m_pf3_rowscroll(*this, "pf3_rowscroll"),
m_generic_paletteram_16(*this, "paletteram"),
m_generic_paletteram2_16(*this, "paletteram2") { }
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<palette_device> m_palette;
required_device<deco16ic_device> m_deco_tilegen1;
required_device<deco16ic_device> m_deco_tilegen2;
required_device<decospr_device> m_sprgen;
required_device<buffered_spriteram16_device> m_spriteram;
required_shared_ptr<UINT16> m_ram;
required_shared_ptr<UINT16> m_pf1_rowscroll;
//UINT16 *m_pf2_rowscroll;
required_shared_ptr<UINT16> m_pf3_rowscroll;
//UINT16 *m_pf4_rowscroll;
optional_device<decospr_device> m_sprgen;
int m_flipscreen;
DECLARE_WRITE16_MEMBER(darkseal_control_w);
DECLARE_READ16_MEMBER(darkseal_control_r);
DECLARE_WRITE16_MEMBER(darkseal_palette_24bit_rg_w);
DECLARE_WRITE16_MEMBER(darkseal_palette_24bit_b_w);
DECLARE_DRIVER_INIT(darkseal);
virtual void video_start();
UINT32 screen_update_darkseal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void update_24bitcol(int offset);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<palette_device> m_palette;
required_shared_ptr<UINT16> m_generic_paletteram_16;
required_shared_ptr<UINT16> m_generic_paletteram2_16;
DECLARE_WRITE16_MEMBER(control_w);
DECLARE_READ16_MEMBER(control_r);
DECLARE_WRITE16_MEMBER(palette_24bit_rg_w);
DECLARE_WRITE16_MEMBER(palette_24bit_b_w);
DECLARE_DRIVER_INIT(darkseal);
virtual void video_start();
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void update_24bitcol(int offset);
};

View File

@ -36,13 +36,13 @@ void darkseal_state::update_24bitcol(int offset)
m_palette->set_pen_color(offset,rgb_t(r,g,b));
}
WRITE16_MEMBER(darkseal_state::darkseal_palette_24bit_rg_w)
WRITE16_MEMBER(darkseal_state::palette_24bit_rg_w)
{
COMBINE_DATA(&m_generic_paletteram_16[offset]);
update_24bitcol(offset);
}
WRITE16_MEMBER(darkseal_state::darkseal_palette_24bit_b_w)
WRITE16_MEMBER(darkseal_state::palette_24bit_b_w)
{
COMBINE_DATA(&m_generic_paletteram2_16[offset]);
update_24bitcol(offset);
@ -56,9 +56,11 @@ void darkseal_state::video_start()
/******************************************************************************/
UINT32 darkseal_state::screen_update_darkseal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
UINT32 darkseal_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
address_space &space = machine().driver_data()->generic_space();
UINT16 flip = m_deco_tilegen2->pf_control_r(space, 0, 0xffff);
flip_screen_set(!BIT(flip, 7));
bitmap.fill(m_palette->black_pen(), cliprect);