slapfght.cpp: Hooked up flip screen output to MCU for alcon and slapfigh (#9748)
* slapfght.cpp: Hooked up flip screen output to MCU for alcon and slapfigh. * machine/taito68705interface.cpp: Removed some copy/pasted copyright holders. The copyright holders were copied across from the drivers that the device was factored out of. There's no content from the original drivers left.
This commit is contained in:
parent
f1910d5938
commit
0a6deb312c
@ -14,8 +14,6 @@
|
||||
|
||||
TODO:
|
||||
- proper MCU emulation (mame/machine/slapfght.cpp)
|
||||
- alcon cocktail/flipscreen, it doesn't write to the flipscreen reg
|
||||
|
||||
|
||||
****************************************************************************
|
||||
|
||||
@ -1021,7 +1019,6 @@ void slapfght_state::slapfigh(machine_config &config)
|
||||
|
||||
ls259_device &mainlatch(LS259(config, "mainlatch"));
|
||||
mainlatch.q_out_cb<0>().set(FUNC(slapfght_state::sound_reset_w));
|
||||
mainlatch.q_out_cb<1>().set(FUNC(slapfght_state::flipscreen_w));
|
||||
mainlatch.q_out_cb<3>().set(FUNC(slapfght_state::irq_enable_w));
|
||||
mainlatch.q_out_cb<4>().set_membank("bank1");
|
||||
|
||||
@ -1030,6 +1027,7 @@ void slapfght_state::slapfigh(machine_config &config)
|
||||
m_audiocpu->set_periodic_int(FUNC(slapfght_state::sound_nmi), attotime::from_hz(180));
|
||||
|
||||
TAITO68705_MCU(config, m_bmcu, 36_MHz_XTAL/12); // 3MHz
|
||||
m_bmcu->aux_out_cb<5>().set(FUNC(slapfght_state::flipscreen_w));
|
||||
m_bmcu->aux_strobe_cb().set(FUNC(slapfght_state::scroll_from_mcu_w));
|
||||
|
||||
config.set_perfect_quantum(m_maincpu);
|
||||
@ -1059,6 +1057,15 @@ void slapfght_state::slapfigh(machine_config &config)
|
||||
ay2.add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
}
|
||||
|
||||
void slapfght_state::slapfigha(machine_config &config)
|
||||
{
|
||||
slapfigh(config);
|
||||
|
||||
subdevice<ls259_device>("mainlatch")->q_out_cb<1>().set(FUNC(slapfght_state::flipscreen_w));
|
||||
|
||||
m_bmcu->aux_out_cb<5>().set_nop();
|
||||
}
|
||||
|
||||
void slapfght_state::slapfighb1(machine_config &config)
|
||||
{
|
||||
slapfigh(config);
|
||||
@ -2083,9 +2090,9 @@ GAME( 1985, tigerhb2, tigerh, tigerhb2, tigerh, slapfght_state, empty_i
|
||||
GAME( 1985, tigerhb3, tigerh, tigerhb2, tigerh, slapfght_state, empty_init, ROT270, "bootleg", "Tiger-Heli (bootleg set 3)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, tigerhb4, tigerh, tigerhb4, tigerh, slapfght_state, empty_init, ROT270, "bootleg", "Tiger-Heli (bootleg set 4)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // MCU not hooked up
|
||||
|
||||
GAME( 1986, alcon, 0, slapfigh, slapfigh, slapfght_state, init_slapfigh, ROT270, "Toaplan / Taito America Corp.", "Alcon (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1986, slapfigh, alcon, slapfigh, slapfigh, slapfght_state, init_slapfigh, ROT270, "Toaplan / Taito", "Slap Fight (A77 set, 8606M PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1986, slapfigha, alcon, slapfigh, slapfigh, slapfght_state, init_slapfigh, ROT270, "Toaplan / Taito", "Slap Fight (A76 set, GX-006-A PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1986, alcon, 0, slapfigh, slapfigh, slapfght_state, init_slapfigh, ROT270, "Toaplan / Taito America Corp.", "Alcon (US)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, slapfigh, alcon, slapfigh, slapfigh, slapfght_state, init_slapfigh, ROT270, "Toaplan / Taito", "Slap Fight (A77 set, 8606M PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, slapfigha, alcon, slapfigha, slapfigh, slapfght_state, init_slapfigh, ROT270, "Toaplan / Taito", "Slap Fight (A76 set, GX-006-A PCB)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, slapfighb1, alcon, slapfighb1, slapfigh, slapfght_state, init_slapfigh, ROT270, "bootleg", "Slap Fight (bootleg set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1986, slapfighb2, alcon, slapfighb2, slapfigh, slapfght_state, init_slapfigh, ROT270, "bootleg", "Slap Fight (bootleg set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // England?
|
||||
GAME( 1986, slapfighb3, alcon, slapfighb2, slapfigh, slapfght_state, init_slapfigh, ROT270, "bootleg", "Slap Fight (bootleg set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // PCB labeled 'slap fighter'
|
||||
|
@ -40,11 +40,12 @@ public:
|
||||
void tigerhb2(machine_config &config);
|
||||
void tigerhb4(machine_config &config);
|
||||
void getstarb2(machine_config &config);
|
||||
void slapfighb2(machine_config &config);
|
||||
void getstarb1(machine_config &config);
|
||||
void perfrman(machine_config &config);
|
||||
void slapfigh(machine_config &config);
|
||||
void slapfigha(machine_config &config);
|
||||
void slapfighb1(machine_config &config);
|
||||
void slapfighb2(machine_config &config);
|
||||
|
||||
void init_banks();
|
||||
void init_getstarb1();
|
||||
|
@ -1,5 +1,5 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ernesto Corvi, Nicola Salmoria, David Haywood, Vas Crabb
|
||||
// copyright-holders:David Haywood, Vas Crabb
|
||||
#include "emu.h"
|
||||
#include "machine/taito68705interface.h"
|
||||
|
||||
@ -184,6 +184,7 @@ taito68705_mcu_device::taito68705_mcu_device(const machine_config &mconfig, cons
|
||||
|
||||
taito68705_mcu_device::taito68705_mcu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
|
||||
: taito68705_mcu_device_base(mconfig, type, tag, owner, clock)
|
||||
, m_aux_out_cb(*this)
|
||||
, m_aux_strobe_cb(*this)
|
||||
, m_pb_output(0xff)
|
||||
{
|
||||
@ -201,6 +202,7 @@ void taito68705_mcu_device::device_start()
|
||||
{
|
||||
taito68705_mcu_device_base::device_start();
|
||||
|
||||
m_aux_out_cb.resolve_all_safe();
|
||||
m_aux_strobe_cb.resolve_safe();
|
||||
|
||||
save_item(NAME(m_pb_output));
|
||||
@ -239,6 +241,7 @@ void taito68705_mcu_device::mcu_portb_w(offs_t offset, u8 data, u8 mem_mask)
|
||||
{
|
||||
// some games have additional peripherals strobed on falling edge
|
||||
u8 const old_pa_value(pa_value());
|
||||
u8 const aux_changed((data ^ m_pb_output) >> 2);
|
||||
u8 const aux_strobes((mem_mask & ~data & m_pb_output) >> 2);
|
||||
|
||||
// rising edge on PB1 clears the host semaphore flag
|
||||
@ -248,6 +251,8 @@ void taito68705_mcu_device::mcu_portb_w(offs_t offset, u8 data, u8 mem_mask)
|
||||
// callbacks for other peripherals
|
||||
for (unsigned i = 0; i < 6; ++i)
|
||||
{
|
||||
if (BIT(aux_changed, i))
|
||||
m_aux_out_cb[i](BIT(data, i + 2));
|
||||
if (BIT(aux_strobes, i))
|
||||
m_aux_strobe_cb(i, old_pa_value, 0xff);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ernesto Corvi, Nicola Salmoria, David Haywood, Vas Crabb
|
||||
// copyright-holders:David Haywood, Vas Crabb
|
||||
#ifndef MAME_MACHINE_TAITO68705INTERFACE_H
|
||||
#define MAME_MACHINE_TAITO68705INTERFACE_H
|
||||
|
||||
@ -63,6 +63,7 @@ private:
|
||||
class taito68705_mcu_device : public taito68705_mcu_device_base
|
||||
{
|
||||
public:
|
||||
template <unsigned N> auto aux_out_cb() { return m_aux_out_cb[N].bind(); }
|
||||
auto aux_strobe_cb() { return m_aux_strobe_cb.bind(); }
|
||||
|
||||
taito68705_mcu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
@ -76,7 +77,8 @@ protected:
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual void device_start() override;
|
||||
|
||||
devcb_write8 m_aux_strobe_cb;
|
||||
devcb_write_line::array<6> m_aux_out_cb;
|
||||
devcb_write8 m_aux_strobe_cb;
|
||||
|
||||
u8 m_pb_output;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user