mirror of
https://github.com/holub/mame
synced 2025-05-07 23:02:33 +03:00
spacecom , darthvdr : fixed cocktail mode (nw)
This commit is contained in:
parent
1e85e1c45a
commit
10e73ffbdb
@ -1252,7 +1252,7 @@ WRITE8_MEMBER(_8080bw_state::shuttlei_sh_port_2_w)
|
||||
|
||||
WRITE8_MEMBER( _8080bw_state::darthvdr_00_w )
|
||||
{
|
||||
m_c8080bw_flip_screen = BIT(data, 0) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
|
||||
m_invaders_flip_screen = BIT(data, 0) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( _8080bw_state::darthvdr_08_w )
|
||||
|
@ -688,7 +688,7 @@ static INPUT_PORTS_START( spacecom )
|
||||
PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // unused?
|
||||
|
||||
PORT_START(CABINET_PORT_TAG) /* Dummy port for cocktail mode */
|
||||
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -707,6 +707,10 @@ MACHINE_CONFIG_DERIVED_CLASS( spacecom, invaders, _8080bw_state )
|
||||
// assume there is no watchdog
|
||||
MCFG_WATCHDOG_VBLANK_INIT(0)
|
||||
MCFG_WATCHDOG_TIME_INIT(attotime::from_usec(0))
|
||||
|
||||
// video
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_spacecom)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
DRIVER_INIT_MEMBER(_8080bw_state, spacecom)
|
||||
@ -2271,6 +2275,10 @@ static MACHINE_CONFIG_DERIVED_CLASS( darthvdr, mw8080bw_root, _8080bw_state )
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_FRAGMENT_ADD(invaders_samples_audio)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invaders)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -113,6 +113,7 @@ public:
|
||||
UINT32 screen_update_polaris(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_ballbomb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_shuttlei(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_spacecom(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
INTERRUPT_GEN_MEMBER(polaris_interrupt);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(claybust_gun_callback);
|
||||
|
@ -430,11 +430,8 @@ UINT32 _8080bw_state::screen_update_shuttlei(screen_device &screen, bitmap_rgb32
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
pen_t pen = (data & 0x80) ? RGB_WHITE : RGB_BLACK;
|
||||
bitmap.pix32(y, x) = pen;
|
||||
|
||||
x = x + 1;
|
||||
data = data << 1;
|
||||
bitmap.pix32(y, x|i) = pens[BIT(data, 7)];
|
||||
data <<= 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -466,3 +463,43 @@ UINT32 _8080bw_state::screen_update_sflush(screen_device &screen, bitmap_rgb32 &
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
UINT32 _8080bw_state::screen_update_spacecom(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
pen_t pens[2] = { RGB_BLACK, RGB_WHITE };
|
||||
offs_t offs;
|
||||
UINT8 x,y,data;
|
||||
|
||||
for (offs = 0; offs < 0x1c00; offs++)
|
||||
{
|
||||
y = offs >> 5;
|
||||
x = (offs << 3)+4; //((m_invaders_flip_screen) ? 8 : 4);
|
||||
|
||||
data = m_main_ram[offs+0x400];
|
||||
|
||||
if (m_invaders_flip_screen)
|
||||
{
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 7)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 6)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 5)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 4)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 3)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 2)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 1)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 0)];
|
||||
}
|
||||
else
|
||||
{
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 0)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 1)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 2)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 3)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 4)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 5)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 6)];
|
||||
bitmap.pix32(y, x++) = pens[BIT(data, 7)];
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user