mirror of
https://github.com/holub/mame
synced 2025-04-23 17:00:53 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
e2f8eed5b6
@ -159,9 +159,9 @@ void slapshot_state::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
}
|
||||
|
||||
|
||||
INTERRUPT_GEN_MEMBER(slapshot_state::slapshot_interrupt)
|
||||
INTERRUPT_GEN_MEMBER(slapshot_state::interrupt)
|
||||
{
|
||||
timer_set(downcast<cpu_device *>(&device)->cycles_to_attotime(200000 - 500), TIMER_SLAPSHOT_INTERRUPT6);
|
||||
m_int6_timer->adjust(m_maincpu->cycles_to_attotime(200000 - 500));
|
||||
device.execute().set_input_line(5, HOLD_LINE);
|
||||
}
|
||||
|
||||
@ -170,7 +170,7 @@ INTERRUPT_GEN_MEMBER(slapshot_state::slapshot_interrupt)
|
||||
GAME INPUTS
|
||||
**********************************************************/
|
||||
|
||||
READ16_MEMBER(slapshot_state::slapshot_service_input_r)
|
||||
READ16_MEMBER(slapshot_state::service_input_r)
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
@ -225,7 +225,7 @@ WRITE8_MEMBER(slapshot_state::sound_bankswitch_w)
|
||||
membank("z80bank")->set_entry(data & 3);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(slapshot_state::slapshot_msb_sound_w)
|
||||
WRITE16_MEMBER(slapshot_state::msb_sound_w)
|
||||
{
|
||||
if (offset == 0)
|
||||
m_tc0140syt->master_port_w(space, 0, (data >> 8) & 0xff);
|
||||
@ -238,7 +238,7 @@ WRITE16_MEMBER(slapshot_state::slapshot_msb_sound_w)
|
||||
#endif
|
||||
}
|
||||
|
||||
READ16_MEMBER(slapshot_state::slapshot_msb_sound_r)
|
||||
READ16_MEMBER(slapshot_state::msb_sound_r)
|
||||
{
|
||||
if (offset == 1)
|
||||
return ((m_tc0140syt->master_comm_r(space, 0) & 0xff) << 8);
|
||||
@ -262,8 +262,8 @@ static ADDRESS_MAP_START( slapshot_map, AS_PROGRAM, 16, slapshot_state )
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE8("mk48t08", timekeeper_device, read, write, 0xff00) /* nvram (only low bytes used) */
|
||||
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0xff00) /* priority chip */
|
||||
AM_RANGE(0xc00000, 0xc0000f) AM_DEVREADWRITE("tc0640fio", tc0640fio_device, halfword_byteswap_r, halfword_byteswap_w)
|
||||
AM_RANGE(0xc00020, 0xc0002f) AM_READ(slapshot_service_input_r) /* service mirror */
|
||||
AM_RANGE(0xd00000, 0xd00003) AM_READWRITE(slapshot_msb_sound_r, slapshot_msb_sound_w)
|
||||
AM_RANGE(0xc00020, 0xc0002f) AM_READ(service_input_r) /* service mirror */
|
||||
AM_RANGE(0xd00000, 0xd00003) AM_READWRITE(msb_sound_r, msb_sound_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( opwolf3_map, AS_PROGRAM, 16, slapshot_state )
|
||||
@ -277,8 +277,8 @@ static ADDRESS_MAP_START( opwolf3_map, AS_PROGRAM, 16, slapshot_state )
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE8("mk48t08", timekeeper_device, read, write, 0xff00) /* nvram (only low bytes used) */
|
||||
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0xff00) /* priority chip */
|
||||
AM_RANGE(0xc00000, 0xc0000f) AM_DEVREADWRITE("tc0640fio", tc0640fio_device, halfword_byteswap_r, halfword_byteswap_w)
|
||||
AM_RANGE(0xc00020, 0xc0002f) AM_READ(slapshot_service_input_r) /* service mirror */
|
||||
AM_RANGE(0xd00000, 0xd00003) AM_READWRITE(slapshot_msb_sound_r, slapshot_msb_sound_w)
|
||||
AM_RANGE(0xc00020, 0xc0002f) AM_READ(service_input_r) /* service mirror */
|
||||
AM_RANGE(0xd00000, 0xd00003) AM_READWRITE(msb_sound_r, msb_sound_w)
|
||||
AM_RANGE(0xe00000, 0xe00007) AM_READWRITE(opwolf3_adc_r, opwolf3_adc_req_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -446,18 +446,6 @@ static GFXDECODE_START( slapshot )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
|
||||
/**************************************************************
|
||||
YM2610B (SOUND)
|
||||
**************************************************************/
|
||||
|
||||
/* handler called by the YM2610 emulator when the internal timers cause an IRQ */
|
||||
WRITE_LINE_MEMBER(slapshot_state::irqhandler)
|
||||
{
|
||||
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************
|
||||
MACHINE DRIVERS
|
||||
***********************************************************/
|
||||
@ -465,6 +453,8 @@ WRITE_LINE_MEMBER(slapshot_state::irqhandler)
|
||||
void slapshot_state::machine_start()
|
||||
{
|
||||
membank("z80bank")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000);
|
||||
|
||||
m_int6_timer = timer_alloc(TIMER_SLAPSHOT_INTERRUPT6);
|
||||
}
|
||||
|
||||
|
||||
@ -473,7 +463,7 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, 14346000) /* 28.6860 MHz / 2 ??? */
|
||||
MCFG_CPU_PROGRAM_MAP(slapshot_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", slapshot_state, slapshot_interrupt)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", slapshot_state, interrupt)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80,32000000/8) /* 4 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(opwolf3_z80_sound_map)
|
||||
@ -492,7 +482,7 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(40*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update_slapshot)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
@ -516,7 +506,7 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state )
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_SOUND_ADD("ymsnd", YM2610B, 16000000/2)
|
||||
MCFG_YM2610_IRQ_HANDLER(WRITELINE(slapshot_state, irqhandler))
|
||||
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
|
||||
@ -534,7 +524,7 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, 14346000) /* 28.6860 MHz / 2 ??? */
|
||||
MCFG_CPU_PROGRAM_MAP(opwolf3_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", slapshot_state, slapshot_interrupt)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", slapshot_state, interrupt)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80,32000000/8) /* 4 MHz */
|
||||
MCFG_CPU_PROGRAM_MAP(opwolf3_z80_sound_map)
|
||||
@ -553,7 +543,7 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(40*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update_slapshot)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
@ -577,7 +567,7 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state )
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_SOUND_ADD("ymsnd", YM2610B, 16000000/2)
|
||||
MCFG_YM2610_IRQ_HANDLER(WRITELINE(slapshot_state, irqhandler))
|
||||
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
|
||||
@ -706,6 +696,6 @@ DRIVER_INIT_MEMBER(slapshot_state,slapshot)
|
||||
}
|
||||
}
|
||||
|
||||
GAME( 1994, slapshot, 0, slapshot, slapshot, slapshot_state, slapshot, ROT0, "Taito Corporation", "Slap Shot (Japan)", 0 )
|
||||
GAME( 1994, opwolf3, 0, opwolf3, opwolf3, slapshot_state, slapshot, ROT0, "Taito Corporation Japan", "Operation Wolf 3 (World)", 0 )
|
||||
GAME( 1994, opwolf3u, opwolf3, opwolf3, opwolf3, slapshot_state, slapshot, ROT0, "Taito America Corporation", "Operation Wolf 3 (US)", 0 )
|
||||
GAME( 1994, slapshot, 0, slapshot, slapshot, slapshot_state, slapshot, ROT0, "Taito Corporation", "Slap Shot (Japan)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1994, opwolf3, 0, opwolf3, opwolf3, slapshot_state, slapshot, ROT0, "Taito Corporation Japan", "Operation Wolf 3 (World)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1994, opwolf3u, opwolf3, opwolf3, opwolf3, slapshot_state, slapshot, ROT0, "Taito America Corporation", "Operation Wolf 3 (US)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -149,9 +149,7 @@ Colscroll effects?
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "rendlay.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "audio/taitosnd.h"
|
||||
#include "sound/2610intf.h"
|
||||
#include "sound/flt_vol.h"
|
||||
#include "includes/warriorb.h"
|
||||
#include "includes/taitoipt.h"
|
||||
|
||||
@ -166,7 +164,7 @@ WRITE8_MEMBER(warriorb_state::sound_bankswitch_w)
|
||||
membank("z80bank")->set_entry(data & 7);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(warriorb_state::warriorb_sound_w)
|
||||
WRITE16_MEMBER(warriorb_state::sound_w)
|
||||
{
|
||||
if (offset == 0)
|
||||
m_tc0140syt->master_port_w(space, 0, data & 0xff);
|
||||
@ -174,7 +172,7 @@ WRITE16_MEMBER(warriorb_state::warriorb_sound_w)
|
||||
m_tc0140syt->master_comm_w(space, 0, data & 0xff);
|
||||
}
|
||||
|
||||
READ16_MEMBER(warriorb_state::warriorb_sound_r)
|
||||
READ16_MEMBER(warriorb_state::sound_r)
|
||||
{
|
||||
if (offset == 1)
|
||||
return ((m_tc0140syt->master_comm_r(space, 0) & 0xff));
|
||||
@ -183,7 +181,7 @@ READ16_MEMBER(warriorb_state::warriorb_sound_r)
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(warriorb_state::warriorb_pancontrol)
|
||||
WRITE8_MEMBER(warriorb_state::pancontrol)
|
||||
{
|
||||
filter_volume_device *flt = NULL;
|
||||
offset &= 3;
|
||||
@ -225,7 +223,7 @@ static ADDRESS_MAP_START( darius2d_map, AS_PROGRAM, 16, warriorb_state )
|
||||
AM_RANGE(0x600000, 0x6013ff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff)
|
||||
// AM_RANGE(0x820000, 0x820001) AM_WRITENOP // ???
|
||||
AM_RANGE(0x830000, 0x830003) AM_READWRITE(warriorb_sound_r, warriorb_sound_w)
|
||||
AM_RANGE(0x830000, 0x830003) AM_READWRITE(sound_r, sound_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( warriorb_map, AS_PROGRAM, 16, warriorb_state )
|
||||
@ -240,7 +238,7 @@ static ADDRESS_MAP_START( warriorb_map, AS_PROGRAM, 16, warriorb_state )
|
||||
AM_RANGE(0x600000, 0x6013ff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_r, halfword_w)
|
||||
// AM_RANGE(0x820000, 0x820001) AM_WRITENOP // ? uses bits 0,2,3
|
||||
AM_RANGE(0x830000, 0x830003) AM_READWRITE(warriorb_sound_r, warriorb_sound_w)
|
||||
AM_RANGE(0x830000, 0x830003) AM_READWRITE(sound_r, sound_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/***************************************************************************/
|
||||
@ -252,7 +250,7 @@ static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, warriorb_state )
|
||||
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
|
||||
AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, slave_port_w)
|
||||
AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, slave_comm_r, slave_comm_w)
|
||||
AM_RANGE(0xe400, 0xe403) AM_WRITE(warriorb_pancontrol) /* pan */
|
||||
AM_RANGE(0xe400, 0xe403) AM_WRITE(pancontrol) /* pan */
|
||||
AM_RANGE(0xea00, 0xea00) AM_READNOP
|
||||
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
|
||||
@ -404,17 +402,6 @@ static GFXDECODE_START( warriorb )
|
||||
GFXDECODE_ENTRY( "gfx3", 0, charlayout, 0, 256 ) /* scr tiles (screen 2) */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
/**************************************************************
|
||||
YM2610 (SOUND)
|
||||
**************************************************************/
|
||||
|
||||
/* handler called by the YM2610 emulator when the internal timers cause an IRQ */
|
||||
WRITE_LINE_MEMBER(warriorb_state::irqhandler)
|
||||
{
|
||||
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
/***********************************************************
|
||||
MACHINE DRIVERS
|
||||
***********************************************************/
|
||||
@ -461,7 +448,7 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(40*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_left)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_left)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_DEVICE_ADD("tc0100scn_1", TC0100SCN, 0)
|
||||
@ -479,7 +466,7 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(40*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_right)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_right)
|
||||
MCFG_SCREEN_PALETTE("palette2")
|
||||
|
||||
MCFG_DEVICE_ADD("tc0100scn_2", TC0100SCN, 0)
|
||||
@ -497,7 +484,7 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state )
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
|
||||
MCFG_YM2610_IRQ_HANDLER(WRITELINE(warriorb_state, irqhandler))
|
||||
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0)
|
||||
@ -549,7 +536,7 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(40*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_left)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_left)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_DEVICE_ADD("tc0100scn_1", TC0100SCN, 0)
|
||||
@ -567,7 +554,7 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(40*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_right)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_right)
|
||||
MCFG_SCREEN_PALETTE("palette2")
|
||||
|
||||
MCFG_DEVICE_ADD("tc0100scn_2", TC0100SCN, 0)
|
||||
@ -586,7 +573,7 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state )
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
|
||||
MCFG_YM2610_IRQ_HANDLER(WRITELINE(warriorb_state, irqhandler))
|
||||
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
|
||||
MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0)
|
||||
@ -789,7 +776,7 @@ ROM_END
|
||||
/* Working Games */
|
||||
|
||||
// YEAR, NAME, PARENT, MACHINE, INPUT, INIT,MONITOR,COMPANY,FULLNAME,FLAGS
|
||||
GAME( 1989, sagaia, darius2, darius2d, sagaia, driver_device, 0, ROT0, "Taito Corporation Japan", "Sagaia (dual screen) (World)", 0 )
|
||||
GAME( 1989, darius2d, darius2, darius2d, darius2d, driver_device, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 2)", 0 )
|
||||
GAME( 1989, darius2do, darius2, darius2d, darius2d, driver_device, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 1)", 0 )
|
||||
GAME( 1991, warriorb, 0, warriorb, warriorb, driver_device, 0, ROT0, "Taito Corporation", "Warrior Blade - Rastan Saga Episode III (Japan)", 0 )
|
||||
GAME( 1989, sagaia, darius2, darius2d, sagaia, driver_device, 0, ROT0, "Taito Corporation Japan", "Sagaia (dual screen) (World)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1989, darius2d, darius2, darius2d, darius2d, driver_device, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 2)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1989, darius2do, darius2, darius2d, darius2d, driver_device, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 1)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, warriorb, 0, warriorb, warriorb, driver_device, 0, ROT0, "Taito Corporation", "Warrior Blade - Rastan Saga Episode III (Japan)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -19,7 +19,6 @@ public:
|
||||
ninjaw_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_subcpu(*this, "sub"),
|
||||
m_tc0140syt(*this, "tc0140syt"),
|
||||
m_tc0100scn_1(*this, "tc0100scn_1"),
|
||||
@ -39,7 +38,6 @@ public:
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<cpu_device> m_subcpu;
|
||||
required_device<tc0140syt_device> m_tc0140syt;
|
||||
required_device<tc0100scn_device> m_tc0100scn_1;
|
||||
|
@ -31,17 +31,25 @@ public:
|
||||
|
||||
slapshot_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_spriteram(*this,"spriteram"),
|
||||
m_spriteext(*this,"spriteext"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_tc0140syt(*this, "tc0140syt"),
|
||||
m_tc0480scp(*this, "tc0480scp"),
|
||||
m_tc0360pri(*this, "tc0360pri"),
|
||||
m_tc0640fio(*this, "tc0640fio"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette") { }
|
||||
m_palette(*this, "palette"),
|
||||
m_spriteram(*this,"spriteram"),
|
||||
m_spriteext(*this,"spriteext") { }
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<tc0140syt_device> m_tc0140syt;
|
||||
required_device<tc0480scp_device> m_tc0480scp;
|
||||
required_device<tc0360pri_device> m_tc0360pri;
|
||||
required_device<tc0640fio_device> m_tc0640fio;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<UINT16> m_spriteram;
|
||||
required_shared_ptr<UINT16> m_spriteext;
|
||||
@ -58,34 +66,29 @@ public:
|
||||
int m_prepare_sprites;
|
||||
int m_dislayer[5];
|
||||
|
||||
UINT16 m_spritebank[8];
|
||||
emu_timer *m_int6_timer;
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<tc0140syt_device> m_tc0140syt;
|
||||
required_device<tc0480scp_device> m_tc0480scp;
|
||||
required_device<tc0360pri_device> m_tc0360pri;
|
||||
required_device<tc0640fio_device> m_tc0640fio;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
// generic
|
||||
DECLARE_READ16_MEMBER(service_input_r);
|
||||
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
|
||||
DECLARE_WRITE16_MEMBER(msb_sound_w);
|
||||
DECLARE_READ16_MEMBER(msb_sound_r);
|
||||
|
||||
DECLARE_READ16_MEMBER(slapshot_service_input_r);
|
||||
// opwolf specific
|
||||
DECLARE_READ16_MEMBER(opwolf3_adc_r);
|
||||
DECLARE_WRITE16_MEMBER(opwolf3_adc_req_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
|
||||
DECLARE_WRITE16_MEMBER(slapshot_msb_sound_w);
|
||||
DECLARE_READ16_MEMBER(slapshot_msb_sound_r);
|
||||
|
||||
DECLARE_DRIVER_INIT(slapshot);
|
||||
virtual void machine_start();
|
||||
virtual void video_start();
|
||||
UINT32 screen_update_slapshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void screen_eof_taito_no_buffer(screen_device &screen, bool state);
|
||||
INTERRUPT_GEN_MEMBER(slapshot_interrupt);
|
||||
void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks, int y_offset );
|
||||
void taito_handle_sprite_buffering( );
|
||||
void taito_update_sprites_active_area( );
|
||||
DECLARE_WRITE_LINE_MEMBER(irqhandler);
|
||||
|
||||
INTERRUPT_GEN_MEMBER(interrupt);
|
||||
|
||||
protected:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
|
@ -18,9 +18,7 @@ class warriorb_state : public driver_device
|
||||
public:
|
||||
warriorb_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_tc0140syt(*this, "tc0140syt"),
|
||||
m_tc0100scn_1(*this, "tc0100scn_1"),
|
||||
m_tc0100scn_2(*this, "tc0100scn_2"),
|
||||
@ -33,17 +31,11 @@ public:
|
||||
m_2610_2l(*this, "2610.2.l"),
|
||||
m_2610_2r(*this, "2610.2.r"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette") { }
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<UINT16> m_spriteram;
|
||||
|
||||
/* misc */
|
||||
int m_pandata[4];
|
||||
m_palette(*this, "palette"),
|
||||
m_spriteram(*this, "spriteram") { }
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<tc0140syt_device> m_tc0140syt;
|
||||
required_device<tc0100scn_device> m_tc0100scn_1;
|
||||
required_device<tc0100scn_device> m_tc0100scn_2;
|
||||
@ -58,16 +50,23 @@ public:
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<UINT16> m_spriteram;
|
||||
|
||||
/* misc */
|
||||
int m_pandata[4];
|
||||
|
||||
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
|
||||
DECLARE_WRITE16_MEMBER(warriorb_sound_w);
|
||||
DECLARE_READ16_MEMBER(warriorb_sound_r);
|
||||
DECLARE_WRITE8_MEMBER(warriorb_pancontrol);
|
||||
DECLARE_WRITE16_MEMBER(sound_w);
|
||||
DECLARE_READ16_MEMBER(sound_r);
|
||||
DECLARE_WRITE8_MEMBER(pancontrol);
|
||||
DECLARE_WRITE16_MEMBER(tc0100scn_dual_screen_w);
|
||||
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
UINT32 screen_update_warriorb_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_warriorb_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
UINT32 screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs );
|
||||
UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, tc0100scn_device *tc0100scn);
|
||||
DECLARE_WRITE_LINE_MEMBER(irqhandler);
|
||||
};
|
||||
|
@ -7,19 +7,13 @@
|
||||
|
||||
void slapshot_state::video_start()
|
||||
{
|
||||
int i;
|
||||
|
||||
m_spriteram_delayed = auto_alloc_array(machine(), UINT16, m_spriteram.bytes() / 2);
|
||||
m_spriteram_buffered = auto_alloc_array(machine(), UINT16, m_spriteram.bytes() / 2);
|
||||
m_spritelist = auto_alloc_array(machine(), struct slapshot_tempsprite, 0x400);
|
||||
|
||||
for (i = 0; i < 8; i ++)
|
||||
m_spritebank[i] = 0x400 * i;
|
||||
|
||||
m_sprites_disabled = 1;
|
||||
m_sprites_active_area = 0;
|
||||
|
||||
save_item(NAME(m_spritebank));
|
||||
save_item(NAME(m_sprites_disabled));
|
||||
save_item(NAME(m_sprites_active_area));
|
||||
save_item(NAME(m_sprites_master_scrollx));
|
||||
@ -452,7 +446,7 @@ One exception is the "puck" in early attract which is
|
||||
a bg layer given priority over some sprites.
|
||||
********************************************************************/
|
||||
|
||||
UINT32 slapshot_state::screen_update_slapshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
UINT32 slapshot_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
address_space &space = machine().driver_data()->generic_space();
|
||||
UINT8 layer[5];
|
||||
|
@ -48,17 +48,6 @@ const device_type TC0360PRI = &device_creator<tc0360pri_device>;
|
||||
|
||||
tc0360pri_device::tc0360pri_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, TC0360PRI, "Taito TC0360PRI", tag, owner, clock, "tc0360pri", __FILE__)
|
||||
// m_regs[16](0),
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_config_complete - perform any
|
||||
// operations now that the configuration is
|
||||
// complete
|
||||
//-------------------------------------------------
|
||||
|
||||
void tc0360pri_device::device_config_complete()
|
||||
{
|
||||
}
|
||||
|
||||
@ -77,9 +66,7 @@ void tc0360pri_device::device_start()
|
||||
|
||||
void tc0360pri_device::device_reset()
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
for (int i = 0; i < 16; i++)
|
||||
m_regs[i] = 0;
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,6 @@ public:
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_config_complete();
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
|
||||
|
@ -9,7 +9,6 @@
|
||||
|
||||
void warriorb_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs )
|
||||
{
|
||||
UINT16 *spriteram = m_spriteram;
|
||||
int offs, data, data2, tilenum, color, flipx, flipy;
|
||||
int x, y, priority, pri_mask;
|
||||
|
||||
@ -20,14 +19,14 @@ void warriorb_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap,
|
||||
/* pdrawgfx() needs us to draw sprites front to back */
|
||||
for (offs = 0; offs < m_spriteram.bytes() / 2; offs += 4)
|
||||
{
|
||||
data = spriteram[offs + 1];
|
||||
data = m_spriteram[offs + 1];
|
||||
tilenum = data & 0x7fff;
|
||||
|
||||
data = spriteram[offs + 0];
|
||||
data = m_spriteram[offs + 0];
|
||||
y = (-(data & 0x1ff) - 24) & 0x1ff; /* (inverted y adjusted for vis area) */
|
||||
flipy = (data & 0x200) >> 9;
|
||||
|
||||
data2 = spriteram[offs + 2];
|
||||
data2 = m_spriteram[offs + 2];
|
||||
/* 8,4 also seen in msbyte */
|
||||
priority = (data2 & 0x0100) >> 8; // 1 = low
|
||||
|
||||
@ -38,7 +37,7 @@ void warriorb_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap,
|
||||
|
||||
color = (data2 & 0x7f);
|
||||
|
||||
data = spriteram[offs + 3];
|
||||
data = m_spriteram[offs + 3];
|
||||
x = (data & 0x3ff);
|
||||
flipx = (data & 0x400) >> 10;
|
||||
|
||||
@ -105,5 +104,5 @@ UINT32 warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap
|
||||
return 0;
|
||||
}
|
||||
|
||||
UINT32 warriorb_state::screen_update_warriorb_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 0, m_tc0100scn_1); }
|
||||
UINT32 warriorb_state::screen_update_warriorb_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 1, m_tc0100scn_2); }
|
||||
UINT32 warriorb_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 0, m_tc0100scn_1); }
|
||||
UINT32 warriorb_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 1, m_tc0100scn_2); }
|
||||
|
Loading…
Reference in New Issue
Block a user