mirror of
https://github.com/holub/mame
synced 2025-06-06 04:43:45 +03:00
coleco: add m1 and soundchip waitstates
This commit is contained in:
parent
3e84f5b071
commit
a9699a223f
@ -345,7 +345,6 @@ static INPUT_PORTS_START( bit90 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("FCTN") PORT_CODE(KEYCODE_RCONTROL)
|
||||
|
||||
INPUT_PORTS_END
|
||||
|
||||
/* Interrupts */
|
||||
@ -575,6 +574,7 @@ void coleco_state::coleco(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, XTAL(7'159'090)/2); // 3.579545 MHz
|
||||
m_maincpu->z80_set_m1_cycles(4+1); // 1 WAIT CLK per M1
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &coleco_state::coleco_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &coleco_state::coleco_io_map);
|
||||
|
||||
@ -589,8 +589,7 @@ void coleco_state::coleco(machine_config &config)
|
||||
SPEAKER(config, "mono").front_center();
|
||||
sn76489a_device &psg(SN76489A(config, "sn76489a", XTAL(7'159'090)/2)); // 3.579545 MHz
|
||||
psg.add_route(ALL_OUTPUTS, "mono", 1.00);
|
||||
// TODO: enable when Z80 has better WAIT pin emulation, this currently breaks pitfall2 for example
|
||||
//psg.ready_cb().set_inputline("maincpu", Z80_INPUT_LINE_WAIT).invert();
|
||||
psg.ready_cb().set_inputline("maincpu", Z80_INPUT_LINE_WAIT).invert();
|
||||
|
||||
/* cartridge */
|
||||
COLECOVISION_CARTRIDGE_SLOT(config, m_cart, colecovision_cartridges, nullptr);
|
||||
@ -624,6 +623,7 @@ void bit90_state::bit90(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, XTAL(7'159'090)/2); // 3.579545 MHz
|
||||
m_maincpu->z80_set_m1_cycles(4+1); // 1 WAIT CLK per M1
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &bit90_state::bit90_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &bit90_state::bit90_io_map);
|
||||
|
||||
@ -638,8 +638,7 @@ void bit90_state::bit90(machine_config &config)
|
||||
SPEAKER(config, "mono").front_center();
|
||||
sn76489a_device &psg(SN76489A(config, "sn76489a", XTAL(7'159'090)/2)); // 3.579545 MHz
|
||||
psg.add_route(ALL_OUTPUTS, "mono", 1.00);
|
||||
// TODO: enable when Z80 has better WAIT pin emulation, this currently breaks pitfall2 for example
|
||||
//psg.ready_cb().set_inputline("maincpu", Z80_INPUT_LINE_WAIT).invert();
|
||||
psg.ready_cb().set_inputline("maincpu", Z80_INPUT_LINE_WAIT).invert();
|
||||
|
||||
/* cartridge */
|
||||
COLECOVISION_CARTRIDGE_SLOT(config, m_cart, colecovision_cartridges, nullptr);
|
||||
|
@ -17,27 +17,27 @@
|
||||
class coleco_state : public driver_device
|
||||
{
|
||||
public:
|
||||
coleco_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_cart(*this, COLECOVISION_CARTRIDGE_SLOT_TAG),
|
||||
m_ctrlsel(*this, "CTRLSEL"),
|
||||
m_std_keypad1(*this, "STD_KEYPAD1"),
|
||||
m_std_joy1(*this, "STD_JOY1"),
|
||||
m_std_keypad2(*this, "STD_KEYPAD2"),
|
||||
m_std_joy2(*this, "STD_JOY2"),
|
||||
m_sac_keypad1(*this, "SAC_KEYPAD1"),
|
||||
m_sac_joy1(*this, "SAC_JOY1"),
|
||||
m_sac_slide1(*this, "SAC_SLIDE1"),
|
||||
m_sac_keypad2(*this, "SAC_KEYPAD2"),
|
||||
m_sac_joy2(*this, "SAC_JOY2"),
|
||||
m_sac_slide2(*this, "SAC_SLIDE2"),
|
||||
m_driv_wheel1(*this, "DRIV_WHEEL1"),
|
||||
m_driv_pedal1(*this, "DRIV_PEDAL1"),
|
||||
m_driv_wheel2(*this, "DRIV_WHEEL2"),
|
||||
m_driv_pedal2(*this, "DRIV_PEDAL2"),
|
||||
m_roller_x(*this, "ROLLER_X"),
|
||||
m_roller_y(*this, "ROLLER_Y")
|
||||
coleco_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_cart(*this, COLECOVISION_CARTRIDGE_SLOT_TAG),
|
||||
m_ctrlsel(*this, "CTRLSEL"),
|
||||
m_std_keypad1(*this, "STD_KEYPAD1"),
|
||||
m_std_joy1(*this, "STD_JOY1"),
|
||||
m_std_keypad2(*this, "STD_KEYPAD2"),
|
||||
m_std_joy2(*this, "STD_JOY2"),
|
||||
m_sac_keypad1(*this, "SAC_KEYPAD1"),
|
||||
m_sac_joy1(*this, "SAC_JOY1"),
|
||||
m_sac_slide1(*this, "SAC_SLIDE1"),
|
||||
m_sac_keypad2(*this, "SAC_KEYPAD2"),
|
||||
m_sac_joy2(*this, "SAC_JOY2"),
|
||||
m_sac_slide2(*this, "SAC_SLIDE2"),
|
||||
m_driv_wheel1(*this, "DRIV_WHEEL1"),
|
||||
m_driv_pedal1(*this, "DRIV_PEDAL1"),
|
||||
m_driv_wheel2(*this, "DRIV_WHEEL2"),
|
||||
m_driv_pedal2(*this, "DRIV_PEDAL2"),
|
||||
m_roller_x(*this, "ROLLER_X"),
|
||||
m_roller_y(*this, "ROLLER_Y")
|
||||
{ }
|
||||
|
||||
virtual void machine_start() override ATTR_COLD;
|
||||
@ -67,8 +67,9 @@ public:
|
||||
void coleco_io_map(address_map &map) ATTR_COLD;
|
||||
void coleco_map(address_map &map) ATTR_COLD;
|
||||
void czz50_map(address_map &map) ATTR_COLD;
|
||||
|
||||
protected:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<z80_device> m_maincpu;
|
||||
required_device<colecovision_cartridge_slot_device> m_cart;
|
||||
|
||||
int m_joy_mode = 0;
|
||||
@ -106,12 +107,12 @@ protected:
|
||||
class bit90_state : public coleco_state
|
||||
{
|
||||
public:
|
||||
bit90_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: coleco_state(mconfig, type, tag),
|
||||
m_bank(*this, "bank"),
|
||||
m_ram(*this, RAM_TAG),
|
||||
m_io_keyboard(*this, {"ROW0", "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7"})
|
||||
{}
|
||||
bit90_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
coleco_state(mconfig, type, tag),
|
||||
m_bank(*this, "bank"),
|
||||
m_ram(*this, RAM_TAG),
|
||||
m_io_keyboard(*this, {"ROW0", "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7"})
|
||||
{ }
|
||||
|
||||
virtual void machine_start() override ATTR_COLD;
|
||||
virtual void machine_reset() override ATTR_COLD;
|
||||
|
@ -235,7 +235,7 @@ ROM_START( sjunior )
|
||||
ROM_LOAD("1988_newcrest_614140ha27", 0x0000, 0x2000, CRC(9eb77d94) SHA1(84306ee39986847f9ae82a1117dc6fb8bd309bab) )
|
||||
|
||||
ROM_REGION( 57412, "screen", 0 )
|
||||
ROM_LOAD("cpchess.svg", 0, 57412, CRC(7859b1ac) SHA1(518c5cd08fa8562628345e8e28048c01c9e4edd6) )
|
||||
ROM_LOAD("pchess.svg", 0, 57412, CRC(7859b1ac) SHA1(518c5cd08fa8562628345e8e28048c01c9e4edd6) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
Loading…
Reference in New Issue
Block a user