mirror of
https://github.com/holub/mame
synced 2025-07-03 09:06:08 +03:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
48a36e5241
@ -38,8 +38,8 @@
|
|||||||
<publisher>Texas Instruments</publisher>
|
<publisher>Texas Instruments</publisher>
|
||||||
<part name="cart" interface="lantutor">
|
<part name="cart" interface="lantutor">
|
||||||
<dataarea name="rom" size="0x10000">
|
<dataarea name="rom" size="0x10000">
|
||||||
<!-- <rom name="cd2315.vsm" size="0x4000" crc="" sha1="" offset="0x0000" /> -->
|
<!-- <rom name="cd2315.vsm" size="0x4000" crc="" sha1="" offset="0x0000" /> -->
|
||||||
<!-- <rom name="cd2316.vsm" size="0x4000" crc="" sha1="" offset="0x4000" /> -->
|
<!-- <rom name="cd2316.vsm" size="0x4000" crc="" sha1="" offset="0x4000" /> -->
|
||||||
<rom name="cd2317.vsm" size="0x4000" crc="53231c0b" sha1="472117c3d0e28437fa8faa054f98088e06efc2a1" offset="0x8000" />
|
<rom name="cd2317.vsm" size="0x4000" crc="53231c0b" sha1="472117c3d0e28437fa8faa054f98088e06efc2a1" offset="0x8000" />
|
||||||
<rom name="cd2318.vsm" size="0x4000" crc="6c0727bc" sha1="132e39755b122f2cbec6f3e767f5d256a9c1e7ae" offset="0xc000" />
|
<rom name="cd2318.vsm" size="0x4000" crc="6c0727bc" sha1="132e39755b122f2cbec6f3e767f5d256a9c1e7ae" offset="0xc000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
|
2
makefile
2
makefile
@ -931,7 +931,7 @@ $(EMULATOR): $(EMUINFOOBJ) $(DRIVLISTOBJ) $(DRVLIBS) $(LIBOSD) $(LIBBUS) $(LIBOP
|
|||||||
$(CC) $(CDEFS) $(CFLAGS) -c $(SRC)/version.c -o $(VERSIONOBJ)
|
$(CC) $(CDEFS) $(CFLAGS) -c $(SRC)/version.c -o $(VERSIONOBJ)
|
||||||
@echo Linking $@...
|
@echo Linking $@...
|
||||||
ifeq ($(TARGETOS),emscripten)
|
ifeq ($(TARGETOS),emscripten)
|
||||||
# Emscripten's linker seems to be stricter about the ordering of .a files
|
# Emscripten's linker seems to be stricter about the ordering of .a files
|
||||||
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) -Wl,--start-group $^ -Wl,--end-group $(LIBS) -o $@
|
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) -Wl,--start-group $^ -Wl,--end-group $(LIBS) -o $@
|
||||||
else
|
else
|
||||||
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) $^ $(LIBS) -o $@
|
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) $^ $(LIBS) -o $@
|
||||||
|
@ -217,4 +217,3 @@ WRITE_LINE_MEMBER( device_a8sio_card_interface::motor_w )
|
|||||||
SLOT_INTERFACE_START(a8sio_cards)
|
SLOT_INTERFACE_START(a8sio_cards)
|
||||||
SLOT_INTERFACE("cassette", A8SIO_CASSETTE)
|
SLOT_INTERFACE("cassette", A8SIO_CASSETTE)
|
||||||
SLOT_INTERFACE_END
|
SLOT_INTERFACE_END
|
||||||
|
|
||||||
|
@ -115,4 +115,3 @@ void a8sio_cassette_device::device_timer(emu_timer &timer, device_timer_id id, i
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,9 +105,9 @@ UINT8 nes_vaus_device::read_bit34()
|
|||||||
UINT8 nes_vausfc_device::read_exp(offs_t offset)
|
UINT8 nes_vausfc_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (offset == 0) //$4016
|
if (offset == 0) //$4016
|
||||||
ret = m_button->read() << 1;
|
ret = m_button->read() << 1;
|
||||||
else //$4017
|
else //$4017
|
||||||
{
|
{
|
||||||
ret = (m_latch & 0x80) >> 6;
|
ret = (m_latch & 0x80) >> 6;
|
||||||
m_latch <<= 1;
|
m_latch <<= 1;
|
||||||
|
@ -184,7 +184,7 @@ int nes_bcbattle_device::read_current_bit()
|
|||||||
UINT8 nes_bcbattle_device::read_exp(offs_t offset)
|
UINT8 nes_bcbattle_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (offset == 1) //$4017
|
if (offset == 1) //$4017
|
||||||
{
|
{
|
||||||
ret |= read_current_bit() << 2;
|
ret |= read_current_bit() << 2;
|
||||||
}
|
}
|
||||||
|
@ -168,7 +168,7 @@ SLOT_INTERFACE_START( nes_control_port1_devices )
|
|||||||
SLOT_INTERFACE("joypad", NES_JOYPAD)
|
SLOT_INTERFACE("joypad", NES_JOYPAD)
|
||||||
SLOT_INTERFACE("zapper", NES_ZAPPER)
|
SLOT_INTERFACE("zapper", NES_ZAPPER)
|
||||||
SLOT_INTERFACE("4score_p1p3", NES_4SCORE_P1P3)
|
SLOT_INTERFACE("4score_p1p3", NES_4SCORE_P1P3)
|
||||||
// SLOT_INTERFACE("miracle_piano", NES_MIRACLE)
|
// SLOT_INTERFACE("miracle_piano", NES_MIRACLE)
|
||||||
SLOT_INTERFACE_END
|
SLOT_INTERFACE_END
|
||||||
|
|
||||||
SLOT_INTERFACE_START( nes_control_port2_devices )
|
SLOT_INTERFACE_START( nes_control_port2_devices )
|
||||||
|
@ -183,7 +183,7 @@ void nes_fckeybrd_device::device_reset()
|
|||||||
UINT8 nes_fckeybrd_device::read_exp(offs_t offset)
|
UINT8 nes_fckeybrd_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (offset == 0) //$4016
|
if (offset == 0) //$4016
|
||||||
{
|
{
|
||||||
// FC Keyboard: tape input
|
// FC Keyboard: tape input
|
||||||
if ((m_cassette->get_state() & CASSETTE_MASK_UISTATE) == CASSETTE_PLAY)
|
if ((m_cassette->get_state() & CASSETTE_MASK_UISTATE) == CASSETTE_PLAY)
|
||||||
@ -195,7 +195,7 @@ UINT8 nes_fckeybrd_device::read_exp(offs_t offset)
|
|||||||
ret |= 0x02;
|
ret |= 0x02;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else //$4017
|
else //$4017
|
||||||
{
|
{
|
||||||
// FC Keyboard: rows of the keyboard matrix are read 4-bits at time and returned as bit1->bit4
|
// FC Keyboard: rows of the keyboard matrix are read 4-bits at time and returned as bit1->bit4
|
||||||
if (m_fck_scan < 9)
|
if (m_fck_scan < 9)
|
||||||
|
@ -119,7 +119,7 @@ void nes_ftrainer_device::device_reset()
|
|||||||
UINT8 nes_ftrainer_device::read_exp(offs_t offset)
|
UINT8 nes_ftrainer_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (offset == 1) //$4017
|
if (offset == 1) //$4017
|
||||||
{
|
{
|
||||||
if (!BIT(m_row_scan, 0))
|
if (!BIT(m_row_scan, 0))
|
||||||
{
|
{
|
||||||
|
@ -117,9 +117,9 @@ nes_hori4p_device::nes_hori4p_device(const machine_config &mconfig, const char *
|
|||||||
UINT8 nes_horitwin_device::read_exp(offs_t offset)
|
UINT8 nes_horitwin_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (offset == 0) //$4016
|
if (offset == 0) //$4016
|
||||||
ret |= (m_port1->read_bit0() << 1);
|
ret |= (m_port1->read_bit0() << 1);
|
||||||
else //$4017
|
else //$4017
|
||||||
ret |= (m_port2->read_bit0() << 1);
|
ret |= (m_port2->read_bit0() << 1);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -127,21 +127,21 @@ UINT8 nes_horitwin_device::read_exp(offs_t offset)
|
|||||||
UINT8 nes_hori4p_device::read_exp(offs_t offset)
|
UINT8 nes_hori4p_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (m_cfg->read() == 0) // 2P
|
if (m_cfg->read() == 0) // 2P
|
||||||
{
|
{
|
||||||
if (offset == 0) //$4016
|
if (offset == 0) //$4016
|
||||||
ret |= (m_port1->read_bit0() << 1);
|
ret |= (m_port1->read_bit0() << 1);
|
||||||
else //$4017
|
else //$4017
|
||||||
ret |= (m_port2->read_bit0() << 1);
|
ret |= (m_port2->read_bit0() << 1);
|
||||||
}
|
}
|
||||||
else // 4P
|
else // 4P
|
||||||
{
|
{
|
||||||
if (offset == 0) //$4016
|
if (offset == 0) //$4016
|
||||||
{
|
{
|
||||||
ret |= (m_port1->read_bit0() << 0);
|
ret |= (m_port1->read_bit0() << 0);
|
||||||
ret |= (m_port3->read_bit0() << 1);
|
ret |= (m_port3->read_bit0() << 1);
|
||||||
}
|
}
|
||||||
else //$4017
|
else //$4017
|
||||||
{
|
{
|
||||||
ret |= (m_port2->read_bit0() << 0);
|
ret |= (m_port2->read_bit0() << 0);
|
||||||
ret |= (m_port4->read_bit0() << 1);
|
ret |= (m_port4->read_bit0() << 1);
|
||||||
|
@ -103,14 +103,14 @@ static INPUT_PORTS_START( nes_arcstick )
|
|||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("B")
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("B")
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT )
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT )
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START )
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START )
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x01)
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x01)
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x01)
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x01)
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x01)
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x01)
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x01)
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x01)
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x00)
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x00)
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x00)
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x00)
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x00)
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x00)
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x00)
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_CONDITION("CONFIG", 0x01, EQUALS, 0x00)
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
@ -245,7 +245,7 @@ UINT8 nes_joypad_device::read_bit0()
|
|||||||
UINT8 nes_fcpad2_device::read_exp(offs_t offset)
|
UINT8 nes_fcpad2_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (!offset) // microphone input
|
if (!offset) // microphone input
|
||||||
ret |= m_joypad->read() & 0x04;
|
ret |= m_joypad->read() & 0x04;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -260,9 +260,9 @@ UINT8 nes_fcpad2_device::read_exp(offs_t offset)
|
|||||||
UINT8 nes_arcstick_device::read_exp(offs_t offset)
|
UINT8 nes_arcstick_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (offset == 0) //$4016
|
if (offset == 0) //$4016
|
||||||
{
|
{
|
||||||
if ((m_cfg->read() & 2) == 0) // we are P1 input
|
if ((m_cfg->read() & 2) == 0) // we are P1 input
|
||||||
{
|
{
|
||||||
ret |= (m_latch & 1) << 1;
|
ret |= (m_latch & 1) << 1;
|
||||||
m_latch >>= 1;
|
m_latch >>= 1;
|
||||||
@ -270,9 +270,9 @@ UINT8 nes_arcstick_device::read_exp(offs_t offset)
|
|||||||
else
|
else
|
||||||
ret |= m_daisychain->read_exp(0);
|
ret |= m_daisychain->read_exp(0);
|
||||||
}
|
}
|
||||||
else //$4017
|
else //$4017
|
||||||
{
|
{
|
||||||
if ((m_cfg->read() & 2) == 2) // we are P2 input
|
if ((m_cfg->read() & 2) == 2) // we are P2 input
|
||||||
{
|
{
|
||||||
ret |= (m_latch & 1) << 1;
|
ret |= (m_latch & 1) << 1;
|
||||||
m_latch >>= 1;
|
m_latch >>= 1;
|
||||||
@ -314,4 +314,3 @@ void nes_arcstick_device::write(UINT8 data)
|
|||||||
|
|
||||||
m_latch = m_joypad->read();
|
m_latch = m_joypad->read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ void nes_konamihs_device::device_reset()
|
|||||||
UINT8 nes_konamihs_device::read_exp(offs_t offset)
|
UINT8 nes_konamihs_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (offset == 1) //$4017
|
if (offset == 1) //$4017
|
||||||
{
|
{
|
||||||
ret |= m_latch_p1 << 1;
|
ret |= m_latch_p1 << 1;
|
||||||
ret |= m_latch_p2 << 3;
|
ret |= m_latch_p2 << 3;
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
Nintendo Entertainment System - Miracle Piano Keyboard
|
Nintendo Entertainment System - Miracle Piano Keyboard
|
||||||
|
|
||||||
TODO: basically everything, this is just a skeleton with no
|
TODO: MIDI input, output is now working.
|
||||||
real MIDI handling at the moment.
|
|
||||||
|
|
||||||
Copyright MESS Team.
|
Copyright MESS Team.
|
||||||
Visit http://mamedev.org for licensing and usage restrictions.
|
Visit http://mamedev.org for licensing and usage restrictions.
|
||||||
@ -44,6 +43,10 @@ void nes_miracle_device::device_timer(emu_timer &timer, device_timer_id id, int
|
|||||||
{
|
{
|
||||||
m_strobe_clock++;
|
m_strobe_clock++;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
device_serial_interface::device_timer(timer, id, param, ptr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -204,7 +207,6 @@ void nes_miracle_device::rcv_complete() // Rx completed receiving byte
|
|||||||
|
|
||||||
void nes_miracle_device::tra_complete() // Tx completed sending byte
|
void nes_miracle_device::tra_complete() // Tx completed sending byte
|
||||||
{
|
{
|
||||||
// printf("Tx complete\n");
|
|
||||||
// is there more waiting to send?
|
// is there more waiting to send?
|
||||||
if (m_xmit_read != m_xmit_write)
|
if (m_xmit_read != m_xmit_write)
|
||||||
{
|
{
|
||||||
@ -222,14 +224,14 @@ void nes_miracle_device::tra_complete() // Tx completed sending byte
|
|||||||
|
|
||||||
void nes_miracle_device::tra_callback() // Tx send bit
|
void nes_miracle_device::tra_callback() // Tx send bit
|
||||||
{
|
{
|
||||||
|
UINT8 bit = transmit_register_get_data_bit();
|
||||||
|
|
||||||
// send this to midi out
|
// send this to midi out
|
||||||
m_midiout->write_txd(transmit_register_get_data_bit());
|
m_midiout->write_txd(bit);
|
||||||
}
|
}
|
||||||
|
|
||||||
void nes_miracle_device::xmit_char(UINT8 data)
|
void nes_miracle_device::xmit_char(UINT8 data)
|
||||||
{
|
{
|
||||||
// printf("xmit %02x\n", data);
|
|
||||||
|
|
||||||
// if tx is busy it'll pick this up automatically when it completes
|
// if tx is busy it'll pick this up automatically when it completes
|
||||||
// if not, send now!
|
// if not, send now!
|
||||||
if (!m_tx_busy)
|
if (!m_tx_busy)
|
||||||
|
@ -28,7 +28,7 @@ class nes_miracle_device : public device_t,
|
|||||||
public device_nes_control_port_interface
|
public device_nes_control_port_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static const int XMIT_RING_SIZE = 16;
|
static const int XMIT_RING_SIZE = 64;
|
||||||
|
|
||||||
// construction/destruction
|
// construction/destruction
|
||||||
nes_miracle_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
nes_miracle_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
@ -85,7 +85,7 @@ UINT8 nes_pachinko_device::read_exp(offs_t offset)
|
|||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
// this controller behaves like a standard P3 joypad, with longer stream of inputs
|
// this controller behaves like a standard P3 joypad, with longer stream of inputs
|
||||||
if (offset == 0) //$4016
|
if (offset == 0) //$4016
|
||||||
{
|
{
|
||||||
ret |= (m_latch & 1) << 1;
|
ret |= (m_latch & 1) << 1;
|
||||||
m_latch >>= 1;
|
m_latch >>= 1;
|
||||||
|
@ -81,7 +81,7 @@ void nes_partytap_device::device_reset()
|
|||||||
UINT8 nes_partytap_device::read_exp(offs_t offset)
|
UINT8 nes_partytap_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (offset == 1) //$4017
|
if (offset == 1) //$4017
|
||||||
{
|
{
|
||||||
ret |= m_latch & 0x1c;
|
ret |= m_latch & 0x1c;
|
||||||
m_latch >>= 3;
|
m_latch >>= 3;
|
||||||
|
@ -198,7 +198,7 @@ void nes_suborkey_device::device_reset()
|
|||||||
UINT8 nes_suborkey_device::read_exp(offs_t offset)
|
UINT8 nes_suborkey_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (offset == 1) //$4017
|
if (offset == 1) //$4017
|
||||||
{
|
{
|
||||||
// Subor Keyboard: rows of the keyboard matrix are read 4-bits at time and returned as bit1->bit4
|
// Subor Keyboard: rows of the keyboard matrix are read 4-bits at time and returned as bit1->bit4
|
||||||
if (m_fck_scan < 13)
|
if (m_fck_scan < 13)
|
||||||
|
@ -91,7 +91,7 @@ UINT8 nes_zapper_device::read_bit34()
|
|||||||
UINT8 nes_zapper_device::read_exp(offs_t offset)
|
UINT8 nes_zapper_device::read_exp(offs_t offset)
|
||||||
{
|
{
|
||||||
UINT8 ret = 0;
|
UINT8 ret = 0;
|
||||||
if (offset == 1) // $4017
|
if (offset == 1) // $4017
|
||||||
ret |= nes_zapper_device::read_bit34();
|
ret |= nes_zapper_device::read_bit34();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -36,27 +36,27 @@
|
|||||||
class media_identifier
|
class media_identifier
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction/destruction
|
// construction/destruction
|
||||||
media_identifier(cli_options &options);
|
media_identifier(cli_options &options);
|
||||||
|
|
||||||
// getters
|
// getters
|
||||||
int total() const { return m_total; }
|
int total() const { return m_total; }
|
||||||
int matches() const { return m_matches; }
|
int matches() const { return m_matches; }
|
||||||
int nonroms() const { return m_nonroms; }
|
int nonroms() const { return m_nonroms; }
|
||||||
|
|
||||||
// operations
|
// operations
|
||||||
void reset() { m_total = m_matches = m_nonroms = 0; }
|
void reset() { m_total = m_matches = m_nonroms = 0; }
|
||||||
void identify(const char *name);
|
void identify(const char *name);
|
||||||
void identify_file(const char *name);
|
void identify_file(const char *name);
|
||||||
void identify_data(const char *name, const UINT8 *data, int length);
|
void identify_data(const char *name, const UINT8 *data, int length);
|
||||||
int find_by_hash(const hash_collection &hashes, int length);
|
int find_by_hash(const hash_collection &hashes, int length);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// internal state
|
// internal state
|
||||||
driver_enumerator m_drivlist;
|
driver_enumerator m_drivlist;
|
||||||
int m_total;
|
int m_total;
|
||||||
int m_matches;
|
int m_matches;
|
||||||
int m_nonroms;
|
int m_nonroms;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1619,8 +1619,8 @@ void cli_frontend::execute_commands(const char *exename)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!m_osd.execute_command(m_options.command()))
|
if (!m_osd.execute_command(m_options.command()))
|
||||||
// if we get here, we don't know what has been requested
|
// if we get here, we don't know what has been requested
|
||||||
throw emu_fatalerror(MAMERR_INVALID_CONFIG, "Unknown command '%s' specified", m_options.command());
|
throw emu_fatalerror(MAMERR_INVALID_CONFIG, "Unknown command '%s' specified", m_options.command());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,6 +60,5 @@ const options_entry cli_options::s_option_entries[] =
|
|||||||
cli_options::cli_options()
|
cli_options::cli_options()
|
||||||
: emu_options()
|
: emu_options()
|
||||||
{
|
{
|
||||||
add_entries(cli_options::s_option_entries);
|
add_entries(cli_options::s_option_entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,17 +184,17 @@ protected:
|
|||||||
ARCOMPACT_RETTYPE arcompact_handle04_1c(OPS_32);
|
ARCOMPACT_RETTYPE arcompact_handle04_1c(OPS_32);
|
||||||
ARCOMPACT_RETTYPE arcompact_handle04_1d(OPS_32);
|
ARCOMPACT_RETTYPE arcompact_handle04_1d(OPS_32);
|
||||||
// ARCOMPACT_RETTYPE arcompact_handle04_20(OPS_32);
|
// ARCOMPACT_RETTYPE arcompact_handle04_20(OPS_32);
|
||||||
// ARCOMPACT_RETTYPE arcompact_handle04_21(OPS_32);
|
// ARCOMPACT_RETTYPE arcompact_handle04_21(OPS_32);
|
||||||
ARCOMPACT_RETTYPE arcompact_handle04_22(OPS_32);
|
ARCOMPACT_RETTYPE arcompact_handle04_22(OPS_32);
|
||||||
ARCOMPACT_RETTYPE arcompact_handle04_23(OPS_32);
|
ARCOMPACT_RETTYPE arcompact_handle04_23(OPS_32);
|
||||||
ARCOMPACT_RETTYPE arcompact_handle04_28(OPS_32);
|
ARCOMPACT_RETTYPE arcompact_handle04_28(OPS_32);
|
||||||
ARCOMPACT_RETTYPE arcompact_handle04_29(OPS_32);
|
ARCOMPACT_RETTYPE arcompact_handle04_29(OPS_32);
|
||||||
// ARCOMPACT_RETTYPE arcompact_handle04_2a(OPS_32);
|
// ARCOMPACT_RETTYPE arcompact_handle04_2a(OPS_32);
|
||||||
// ARCOMPACT_RETTYPE arcompact_handle04_2b(OPS_32);
|
// ARCOMPACT_RETTYPE arcompact_handle04_2b(OPS_32);
|
||||||
ARCOMPACT_RETTYPE arcompact_handle04_2f_00(OPS_32);
|
ARCOMPACT_RETTYPE arcompact_handle04_2f_00(OPS_32);
|
||||||
ARCOMPACT_RETTYPE arcompact_handle04_2f_01(OPS_32);
|
ARCOMPACT_RETTYPE arcompact_handle04_2f_01(OPS_32);
|
||||||
// ARCOMPACT_RETTYPE arcompact_handle04_2f_02(OPS_32);
|
// ARCOMPACT_RETTYPE arcompact_handle04_2f_02(OPS_32);
|
||||||
// ARCOMPACT_RETTYPE arcompact_handle04_2f_03(OPS_32);
|
// ARCOMPACT_RETTYPE arcompact_handle04_2f_03(OPS_32);
|
||||||
ARCOMPACT_RETTYPE arcompact_handle04_2f_04(OPS_32);
|
ARCOMPACT_RETTYPE arcompact_handle04_2f_04(OPS_32);
|
||||||
ARCOMPACT_RETTYPE arcompact_handle04_2f_05(OPS_32);
|
ARCOMPACT_RETTYPE arcompact_handle04_2f_05(OPS_32);
|
||||||
ARCOMPACT_RETTYPE arcompact_handle04_2f_06(OPS_32);
|
ARCOMPACT_RETTYPE arcompact_handle04_2f_06(OPS_32);
|
||||||
|
@ -2142,7 +2142,7 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_21_p11_m0(OPS_32) // Jcc.
|
|||||||
size = 8;
|
size = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
// c = limm;
|
// c = limm;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2151,7 +2151,7 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_21_p11_m0(OPS_32) // Jcc.
|
|||||||
// Jcc [c] 0010 0RRR 1110 0000 0RRR CCCC CC0Q QQQQ
|
// Jcc [c] 0010 0RRR 1110 0000 0RRR CCCC CC0Q QQQQ
|
||||||
// no conditional links to ILINK1, ILINK2?
|
// no conditional links to ILINK1, ILINK2?
|
||||||
|
|
||||||
// c = m_regs[creg];
|
// c = m_regs[creg];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!check_condition(condition))
|
if (!check_condition(condition))
|
||||||
|
@ -114,8 +114,14 @@ void h8_device::device_start()
|
|||||||
save_item(NAME(EXR));
|
save_item(NAME(EXR));
|
||||||
save_item(NAME(CCR));
|
save_item(NAME(CCR));
|
||||||
save_item(NAME(TMP1));
|
save_item(NAME(TMP1));
|
||||||
|
save_item(NAME(TMP2));
|
||||||
save_item(NAME(inst_state));
|
save_item(NAME(inst_state));
|
||||||
save_item(NAME(inst_substate));
|
save_item(NAME(inst_substate));
|
||||||
|
save_item(NAME(irq_vector));
|
||||||
|
save_item(NAME(taken_irq_vector));
|
||||||
|
save_item(NAME(irq_level));
|
||||||
|
save_item(NAME(taken_irq_level));
|
||||||
|
save_item(NAME(irq_nmi));
|
||||||
|
|
||||||
m_icountptr = &icount;
|
m_icountptr = &icount;
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ enum
|
|||||||
#define ALWAYS64 0x400
|
#define ALWAYS64 0x400
|
||||||
#define SPECIAL64 0x800
|
#define SPECIAL64 0x800
|
||||||
#define SPECIAL64_ENT(x) (SPECIAL64 | ((x) << 24))
|
#define SPECIAL64_ENT(x) (SPECIAL64 | ((x) << 24))
|
||||||
#define GROUP_MOD 0x1000
|
#define GROUP_MOD 0x1000
|
||||||
|
|
||||||
struct I386_OPCODE {
|
struct I386_OPCODE {
|
||||||
const char *mnemonic;
|
const char *mnemonic;
|
||||||
@ -1953,7 +1953,7 @@ static const GROUP_OP group_op_table[] =
|
|||||||
{ "group0F0D", group0F0D_table },
|
{ "group0F0D", group0F0D_table },
|
||||||
{ "group0F12", group0F12_table },
|
{ "group0F12", group0F12_table },
|
||||||
{ "group0F16", group0F16_table },
|
{ "group0F16", group0F16_table },
|
||||||
{ "group0F18", group0F18_table },
|
{ "group0F18", group0F18_table },
|
||||||
{ "group0F71", group0F71_table },
|
{ "group0F71", group0F71_table },
|
||||||
{ "group0F72", group0F72_table },
|
{ "group0F72", group0F72_table },
|
||||||
{ "group0F73", group0F73_table },
|
{ "group0F73", group0F73_table },
|
||||||
|
@ -75,8 +75,8 @@ void m4510_device::device_reset()
|
|||||||
nomap = true;
|
nomap = true;
|
||||||
|
|
||||||
// Wild guess, this setting makes the cpu start executing some code in the c65 driver
|
// Wild guess, this setting makes the cpu start executing some code in the c65 driver
|
||||||
map_offset[1] = 0x30000;
|
//map_offset[1] = 0x2e000;
|
||||||
map_enable = 0x80;
|
//map_enable = 0x80;
|
||||||
m65ce02_device::device_reset();
|
m65ce02_device::device_reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -579,7 +579,7 @@ offs_t m6502_device::disassemble_generic(char *buffer, offs_t pc, const UINT8 *o
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case DASM_rw2:
|
case DASM_rw2:
|
||||||
sprintf(buffer, " $%04x", (pc & 0xf0000) | UINT16(pc + 3 + INT16((opram[2] << 8) | opram[1])));
|
sprintf(buffer, " $%04x", (pc & 0xf0000) | UINT16(pc + 2 + INT16((opram[2] << 8) | opram[1])));
|
||||||
flags |= 3;
|
flags |= 3;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -220,8 +220,8 @@ protected:
|
|||||||
|
|
||||||
// inline helpers
|
// inline helpers
|
||||||
static inline bool page_changing(UINT16 base, int delta) { return ((base + delta) ^ base) & 0xff00; }
|
static inline bool page_changing(UINT16 base, int delta) { return ((base + delta) ^ base) & 0xff00; }
|
||||||
static inline UINT16 set_l(UINT16 base, UINT8 val) { return (base & 0xff00) | val; }
|
static inline UINT16 set_l(UINT16 base, UINT16 val) { return (base & 0xff00) | val; }
|
||||||
static inline UINT16 set_h(UINT16 base, UINT8 val) { return (base & 0x00ff) | (val << 8); }
|
static inline UINT16 set_h(UINT16 base, UINT16 val) { return (base & 0x00ff) | (val << 8); }
|
||||||
|
|
||||||
inline void dec_SP() { SP = set_l(SP, SP-1); }
|
inline void dec_SP() { SP = set_l(SP, SP-1); }
|
||||||
inline void inc_SP() { SP = set_l(SP, SP+1); }
|
inline void inc_SP() { SP = set_l(SP, SP+1); }
|
||||||
|
@ -9,4 +9,13 @@ map_imp
|
|||||||
map_offset[0] = (A<<8) | ((X & 0xf) << 16);
|
map_offset[0] = (A<<8) | ((X & 0xf) << 16);
|
||||||
map_offset[1] = (Y<<8) | ((Z & 0xf) << 16);
|
map_offset[1] = (Y<<8) | ((Z & 0xf) << 16);
|
||||||
map_enable = ((X & 0xf0) >> 4) | (Z & 0xf0);
|
map_enable = ((X & 0xf0) >> 4) | (Z & 0xf0);
|
||||||
|
logerror("MAP execute\n");
|
||||||
|
logerror("0x0000 - 0x1fff = %08x\n",map_enable & 1 ? map_offset[0]+0x0000 : 0x0000);
|
||||||
|
logerror("0x2000 - 0x3fff = %08x\n",map_enable & 2 ? map_offset[0]+0x2000 : 0x2000);
|
||||||
|
logerror("0x4000 - 0x5fff = %08x\n",map_enable & 4 ? map_offset[0]+0x4000 : 0x4000);
|
||||||
|
logerror("0x6000 - 0x7fff = %08x\n",map_enable & 8 ? map_offset[0]+0x6000 : 0x6000);
|
||||||
|
logerror("0x8000 - 0x9fff = %08x\n",map_enable & 16 ? map_offset[1]+0x8000 : 0x8000);
|
||||||
|
logerror("0xa000 - 0xbfff = %08x\n",map_enable & 32 ? map_offset[1]+0xa000 : 0xa000);
|
||||||
|
logerror("0xc000 - 0xdfff = %08x\n",map_enable & 64 ? map_offset[1]+0xc000 : 0xc000);
|
||||||
|
logerror("0xe000 - 0xffff = %08x\n",map_enable & 128 ? map_offset[1]+0xe000 : 0xe000);
|
||||||
prefetch();
|
prefetch();
|
||||||
|
@ -245,7 +245,7 @@ bcc_rw2
|
|||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP = set_h(TMP, read_pc());
|
TMP = set_h(TMP, read_pc());
|
||||||
if(!(P & F_C))
|
if(!(P & F_C))
|
||||||
PC += TMP;
|
PC += TMP-1;
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
bcs_ce_rel
|
bcs_ce_rel
|
||||||
@ -258,7 +258,7 @@ bcs_rw2
|
|||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP = set_h(TMP, read_pc());
|
TMP = set_h(TMP, read_pc());
|
||||||
if(P & F_C)
|
if(P & F_C)
|
||||||
PC += TMP;
|
PC += TMP-1;
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
beq_ce_rel
|
beq_ce_rel
|
||||||
@ -271,7 +271,7 @@ beq_rw2
|
|||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP = set_h(TMP, read_pc());
|
TMP = set_h(TMP, read_pc());
|
||||||
if(P & F_Z)
|
if(P & F_Z)
|
||||||
PC += TMP;
|
PC += TMP-1;
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
bit_ce_abx
|
bit_ce_abx
|
||||||
@ -307,7 +307,7 @@ bmi_rw2
|
|||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP = set_h(TMP, read_pc());
|
TMP = set_h(TMP, read_pc());
|
||||||
if(P & F_N)
|
if(P & F_N)
|
||||||
PC += TMP;
|
PC += TMP-1;
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
bne_ce_rel
|
bne_ce_rel
|
||||||
@ -320,7 +320,7 @@ bne_rw2
|
|||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP = set_h(TMP, read_pc());
|
TMP = set_h(TMP, read_pc());
|
||||||
if(!(P & F_Z))
|
if(!(P & F_Z))
|
||||||
PC += TMP;
|
PC += TMP-1;
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
bpl_ce_rel
|
bpl_ce_rel
|
||||||
@ -333,7 +333,7 @@ bpl_rw2
|
|||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP = set_h(TMP, read_pc());
|
TMP = set_h(TMP, read_pc());
|
||||||
if(!(P & F_N))
|
if(!(P & F_N))
|
||||||
PC += TMP;
|
PC += TMP-1;
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
bra_ce_rel
|
bra_ce_rel
|
||||||
@ -344,7 +344,7 @@ bra_ce_rel
|
|||||||
bra_rw2
|
bra_rw2
|
||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP = set_h(TMP, read_pc());
|
TMP = set_h(TMP, read_pc());
|
||||||
PC += TMP;
|
PC += TMP - 1;
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
brk_ce_imp
|
brk_ce_imp
|
||||||
@ -379,7 +379,7 @@ bsr_rw2
|
|||||||
write(SP, PC);
|
write(SP, PC);
|
||||||
dec_SP_ce();
|
dec_SP_ce();
|
||||||
TMP = set_h(TMP, read_pc());
|
TMP = set_h(TMP, read_pc());
|
||||||
PC += TMP;
|
PC += TMP-1;
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
bvc_ce_rel
|
bvc_ce_rel
|
||||||
@ -392,7 +392,7 @@ bvc_rw2
|
|||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP = set_h(TMP, read_pc());
|
TMP = set_h(TMP, read_pc());
|
||||||
if(!(P & F_V))
|
if(!(P & F_V))
|
||||||
PC += TMP;
|
PC += TMP-1;
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
bvs_ce_rel
|
bvs_ce_rel
|
||||||
@ -405,7 +405,7 @@ bvs_rw2
|
|||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP = set_h(TMP, read_pc());
|
TMP = set_h(TMP, read_pc());
|
||||||
if(P & F_V)
|
if(P & F_V)
|
||||||
PC += TMP;
|
PC += TMP-1;
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
clc_ce_imp
|
clc_ce_imp
|
||||||
@ -419,6 +419,7 @@ cld_ce_imp
|
|||||||
cle_imp
|
cle_imp
|
||||||
read_pc_noinc();
|
read_pc_noinc();
|
||||||
P &= ~F_E;
|
P &= ~F_E;
|
||||||
|
logerror("CLE\n");
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
cli_ce_imp
|
cli_ce_imp
|
||||||
|
@ -2177,11 +2177,11 @@ void m68881_ftrap(m68000_base_device *m68k)
|
|||||||
// trap here
|
// trap here
|
||||||
m68ki_exception_trap(m68k, EXCEPTION_TRAPV);
|
m68ki_exception_trap(m68k, EXCEPTION_TRAPV);
|
||||||
}
|
}
|
||||||
else // fall through, requires eating the operand
|
else // fall through, requires eating the operand
|
||||||
{
|
{
|
||||||
switch (m68k->ir & 0x7)
|
switch (m68k->ir & 0x7)
|
||||||
{
|
{
|
||||||
case 2: // word operand
|
case 2: // word operand
|
||||||
OPER_I_16(m68k);
|
OPER_I_16(m68k);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -2189,9 +2189,8 @@ void m68881_ftrap(m68000_base_device *m68k)
|
|||||||
OPER_I_32(m68k);
|
OPER_I_32(m68k);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4: // no operand
|
case 4: // no operand
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,12 +114,12 @@ bool finder_base::report_missing(bool found, const char *objname, bool required)
|
|||||||
|
|
||||||
void finder_base::printf_warning(const char *format, ...)
|
void finder_base::printf_warning(const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
|
|
||||||
/* do the output */
|
/* do the output */
|
||||||
va_start(argptr, format);
|
va_start(argptr, format);
|
||||||
vsnprintf(buffer, 1024, format, argptr);
|
vsnprintf(buffer, 1024, format, argptr);
|
||||||
osd_printf_warning("%s", buffer);
|
osd_printf_warning("%s", buffer);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ protected:
|
|||||||
void *find_memshare(UINT8 width, size_t &bytes, bool required);
|
void *find_memshare(UINT8 width, size_t &bytes, bool required);
|
||||||
bool report_missing(bool found, const char *objname, bool required);
|
bool report_missing(bool found, const char *objname, bool required);
|
||||||
|
|
||||||
void printf_warning(const char *format, ...) ATTR_PRINTF(2,3);
|
void printf_warning(const char *format, ...) ATTR_PRINTF(2,3);
|
||||||
|
|
||||||
// internal state
|
// internal state
|
||||||
finder_base *m_next;
|
finder_base *m_next;
|
||||||
|
@ -89,7 +89,7 @@ device_state_entry::device_state_entry(int index, const char *symbol, void *data
|
|||||||
|
|
||||||
device_state_entry::device_state_entry(int index, device_state_interface *dev)
|
device_state_entry::device_state_entry(int index, device_state_interface *dev)
|
||||||
: m_device_state(dev),
|
: m_device_state(dev),
|
||||||
m_next(NULL),
|
m_next(NULL),
|
||||||
m_index(index),
|
m_index(index),
|
||||||
m_dataptr(NULL),
|
m_dataptr(NULL),
|
||||||
m_datamask(0),
|
m_datamask(0),
|
||||||
|
@ -57,6 +57,7 @@ enum
|
|||||||
XTAL_2_5MHz = 2500000, /* Janken Man units */
|
XTAL_2_5MHz = 2500000, /* Janken Man units */
|
||||||
XTAL_3MHz = 3000000, /* Probably only used to drive 68705 or similar MCUs on 80's Taito PCBs */
|
XTAL_3MHz = 3000000, /* Probably only used to drive 68705 or similar MCUs on 80's Taito PCBs */
|
||||||
XTAL_3_12MHz = 3120000, /* SP0250 clock on Gottlieb games */
|
XTAL_3_12MHz = 3120000, /* SP0250 clock on Gottlieb games */
|
||||||
|
XTAL_3_5MHz = 3500000, /* Reported by Commodore 65 document, true xtal unchecked on PCB */
|
||||||
XTAL_3_52128MHz = 3521280, /* RCA COSMAC VIP */
|
XTAL_3_52128MHz = 3521280, /* RCA COSMAC VIP */
|
||||||
XTAL_3_579545MHz = 3579545, /* NTSC color subcarrier, extremely common, used on 100's of PCBs (Keytronic custom part #48-300-010 is equivalent) */
|
XTAL_3_579545MHz = 3579545, /* NTSC color subcarrier, extremely common, used on 100's of PCBs (Keytronic custom part #48-300-010 is equivalent) */
|
||||||
XTAL_3_6864MHz = 3686400, /* CPS3 */
|
XTAL_3_6864MHz = 3686400, /* CPS3 */
|
||||||
|
@ -17,61 +17,61 @@
|
|||||||
emu_fatalerror::emu_fatalerror(const char *format, ...)
|
emu_fatalerror::emu_fatalerror(const char *format, ...)
|
||||||
: code(0)
|
: code(0)
|
||||||
{
|
{
|
||||||
if (format == NULL)
|
if (format == NULL)
|
||||||
{
|
{
|
||||||
text[0] = '\0';
|
text[0] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
vsprintf(text, format, ap);
|
vsprintf(text, format, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
osd_break_into_debugger(text);
|
osd_break_into_debugger(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
emu_fatalerror::emu_fatalerror(const char *format, va_list ap)
|
emu_fatalerror::emu_fatalerror(const char *format, va_list ap)
|
||||||
: code(0)
|
: code(0)
|
||||||
{
|
{
|
||||||
if (format == NULL)
|
if (format == NULL)
|
||||||
{
|
{
|
||||||
text[0] = '\0';
|
text[0] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vsprintf(text, format, ap);
|
vsprintf(text, format, ap);
|
||||||
}
|
}
|
||||||
osd_break_into_debugger(text);
|
osd_break_into_debugger(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
emu_fatalerror::emu_fatalerror(int _exitcode, const char *format, ...)
|
emu_fatalerror::emu_fatalerror(int _exitcode, const char *format, ...)
|
||||||
: code(_exitcode)
|
: code(_exitcode)
|
||||||
{
|
{
|
||||||
if (format == NULL)
|
if (format == NULL)
|
||||||
{
|
{
|
||||||
text[0] = '\0';
|
text[0] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
vsprintf(text, format, ap);
|
vsprintf(text, format, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
emu_fatalerror::emu_fatalerror(int _exitcode, const char *format, va_list ap)
|
emu_fatalerror::emu_fatalerror(int _exitcode, const char *format, va_list ap)
|
||||||
: code(_exitcode)
|
: code(_exitcode)
|
||||||
{
|
{
|
||||||
if (format == NULL)
|
if (format == NULL)
|
||||||
{
|
{
|
||||||
text[0] = '\0';
|
text[0] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vsprintf(text, format, ap);
|
vsprintf(text, format, ap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -89,18 +89,18 @@ void report_bad_device_cast(const device_t *dev, const std::type_info &src_type,
|
|||||||
|
|
||||||
void fatalerror(const char *format, ...)
|
void fatalerror(const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
emu_fatalerror error(format, ap);
|
emu_fatalerror error(format, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fatalerror_exitcode(running_machine &machine, int exitcode, const char *format, ...)
|
void fatalerror_exitcode(running_machine &machine, int exitcode, const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
emu_fatalerror error(exitcode, format, ap);
|
emu_fatalerror error(exitcode, format, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
@ -150,10 +150,10 @@ const options_entry emu_options::s_option_entries[] =
|
|||||||
|
|
||||||
// debugging options
|
// debugging options
|
||||||
{ NULL, NULL, OPTION_HEADER, "CORE DEBUGGING OPTIONS" },
|
{ NULL, NULL, OPTION_HEADER, "CORE DEBUGGING OPTIONS" },
|
||||||
{ OPTION_VERBOSE ";v", "0", OPTION_BOOLEAN, "display additional diagnostic information" },
|
{ OPTION_VERBOSE ";v", "0", OPTION_BOOLEAN, "display additional diagnostic information" },
|
||||||
{ OPTION_LOG, "0", OPTION_BOOLEAN, "generate an error.log file" },
|
{ OPTION_LOG, "0", OPTION_BOOLEAN, "generate an error.log file" },
|
||||||
{ OPTION_OSLOG, "0", OPTION_BOOLEAN, "output error.log data to the system debugger" },
|
{ OPTION_OSLOG, "0", OPTION_BOOLEAN, "output error.log data to the system debugger" },
|
||||||
{ OPTION_DEBUG ";d", "0", OPTION_BOOLEAN, "enable/disable debugger" },
|
{ OPTION_DEBUG ";d", "0", OPTION_BOOLEAN, "enable/disable debugger" },
|
||||||
{ OPTION_UPDATEINPAUSE, "0", OPTION_BOOLEAN, "keep calling video updates while in pause" },
|
{ OPTION_UPDATEINPAUSE, "0", OPTION_BOOLEAN, "keep calling video updates while in pause" },
|
||||||
{ OPTION_DEBUGSCRIPT, NULL, OPTION_STRING, "script for debugger" },
|
{ OPTION_DEBUGSCRIPT, NULL, OPTION_STRING, "script for debugger" },
|
||||||
|
|
||||||
|
@ -318,11 +318,11 @@ public:
|
|||||||
bool joystick_contradictory() const { return bool_value(OPTION_JOYSTICK_CONTRADICTORY); }
|
bool joystick_contradictory() const { return bool_value(OPTION_JOYSTICK_CONTRADICTORY); }
|
||||||
int coin_impulse() const { return int_value(OPTION_COIN_IMPULSE); }
|
int coin_impulse() const { return int_value(OPTION_COIN_IMPULSE); }
|
||||||
|
|
||||||
// core debugging options
|
// core debugging options
|
||||||
bool log() const { return bool_value(OPTION_LOG); }
|
bool log() const { return bool_value(OPTION_LOG); }
|
||||||
bool debug() const { return bool_value(OPTION_DEBUG); }
|
bool debug() const { return bool_value(OPTION_DEBUG); }
|
||||||
bool verbose() const { return bool_value(OPTION_VERBOSE); }
|
bool verbose() const { return bool_value(OPTION_VERBOSE); }
|
||||||
bool oslog() const { return bool_value(OPTION_OSLOG); }
|
bool oslog() const { return bool_value(OPTION_OSLOG); }
|
||||||
const char *debug_script() const { return value(OPTION_DEBUGSCRIPT); }
|
const char *debug_script() const { return value(OPTION_DEBUGSCRIPT); }
|
||||||
bool update_in_pause() const { return bool_value(OPTION_UPDATEINPAUSE); }
|
bool update_in_pause() const { return bool_value(OPTION_UPDATEINPAUSE); }
|
||||||
|
|
||||||
|
@ -714,8 +714,8 @@ int lua_engine::lua_screen::l_draw_text(lua_State *L)
|
|||||||
render_container &rc = sc->container();
|
render_container &rc = sc->container();
|
||||||
ui_manager &ui = sc->machine().ui();
|
ui_manager &ui = sc->machine().ui();
|
||||||
ui.draw_text_full(&rc, msg, x, y , (1.0f - x),
|
ui.draw_text_full(&rc, msg, x, y , (1.0f - x),
|
||||||
JUSTIFY_LEFT, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR,
|
JUSTIFY_LEFT, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR,
|
||||||
UI_TEXT_BG_COLOR, NULL, NULL);
|
UI_TEXT_BG_COLOR, NULL, NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ static char giant_string_buffer[65536] = { 0 };
|
|||||||
|
|
||||||
osd_interface &running_machine::osd() const
|
osd_interface &running_machine::osd() const
|
||||||
{
|
{
|
||||||
return m_manager.osd();
|
return m_manager.osd();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
@ -253,7 +253,7 @@ intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type
|
|||||||
m_size = 0x400000;
|
m_size = 0x400000;
|
||||||
m_maker_id = MFG_INTEL;
|
m_maker_id = MFG_INTEL;
|
||||||
m_device_id = 0x14;
|
m_device_id = 0x14;
|
||||||
// m_sector_is_4k = true; 128kb?
|
// m_sector_is_4k = true; 128kb?
|
||||||
map = ADDRESS_MAP_NAME( memory_map16_32Mb );
|
map = ADDRESS_MAP_NAME( memory_map16_32Mb );
|
||||||
break;
|
break;
|
||||||
case FLASH_SST_39VF020:
|
case FLASH_SST_39VF020:
|
||||||
|
@ -48,17 +48,13 @@ void jvs_host::commit_raw()
|
|||||||
// - have the message length without the two header bytes but with the checksum byte in the second byte
|
// - have the message length without the two header bytes but with the checksum byte in the second byte
|
||||||
// - have at least one command byte
|
// - have at least one command byte
|
||||||
if(send_size < 3 || send_buffer[0] == 0x00 || send_buffer[1] != send_size-1) {
|
if(send_size < 3 || send_buffer[0] == 0x00 || send_buffer[1] != send_size-1) {
|
||||||
logerror("JVS checksum error\n");
|
logerror("JVS checksum error\n");
|
||||||
} /*
|
// "This message is crap" doesn't exist so call it checksum error
|
||||||
Naomi suchie3 have bad working controls with this
|
recv_buffer[0] = 0x00;
|
||||||
|
recv_buffer[1] = 0x02;
|
||||||
// "This message is crap" doesn't exist so call it checksum error
|
recv_buffer[2] = 0x03;
|
||||||
recv_buffer[0] = 0x00;
|
recv_size = 3;
|
||||||
recv_buffer[1] = 0x02;
|
} else {
|
||||||
recv_buffer[2] = 0x03;
|
|
||||||
recv_size = 3;
|
|
||||||
|
|
||||||
} else */ {
|
|
||||||
if(first_device) {
|
if(first_device) {
|
||||||
first_device->message(send_buffer[0], send_buffer+2, send_size-2, recv_buffer+2, recv_size);
|
first_device->message(send_buffer[0], send_buffer+2, send_size-2, recv_buffer+2, recv_size);
|
||||||
recv_is_encoded = false;
|
recv_is_encoded = false;
|
||||||
@ -120,10 +116,13 @@ void jvs_host::encode(UINT8 *buffer, UINT32 &size)
|
|||||||
if(!size)
|
if(!size)
|
||||||
return;
|
return;
|
||||||
UINT32 add = 1;
|
UINT32 add = 1;
|
||||||
|
UINT8 sum = 0;
|
||||||
|
for(UINT32 i=0; i<size; i++)
|
||||||
|
sum += buffer[i];
|
||||||
|
buffer[size++] = sum;
|
||||||
for(UINT32 i=0; i<size; i++)
|
for(UINT32 i=0; i<size; i++)
|
||||||
if(buffer[i] == 0xd0 || buffer[i] == 0xe0)
|
if(buffer[i] == 0xd0 || buffer[i] == 0xe0)
|
||||||
add++;
|
add++;
|
||||||
UINT32 nsize = size+add;
|
|
||||||
for(UINT32 i=size; i; i--) {
|
for(UINT32 i=size; i; i--) {
|
||||||
UINT8 t = buffer[i-1];
|
UINT8 t = buffer[i-1];
|
||||||
if(t == 0xd0 || t == 0xe0) {
|
if(t == 0xd0 || t == 0xe0) {
|
||||||
@ -134,11 +133,7 @@ void jvs_host::encode(UINT8 *buffer, UINT32 &size)
|
|||||||
buffer[i+add-1] = t;
|
buffer[i+add-1] = t;
|
||||||
}
|
}
|
||||||
buffer[0] = 0xe0;
|
buffer[0] = 0xe0;
|
||||||
UINT8 sum = 0;
|
size += add;
|
||||||
for(UINT32 i=1; i<nsize; i++)
|
|
||||||
sum += buffer[i];
|
|
||||||
buffer[nsize++] = sum;
|
|
||||||
size = nsize;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void jvs_host::decode(UINT8 *buffer, UINT32 &size)
|
void jvs_host::decode(UINT8 *buffer, UINT32 &size)
|
||||||
@ -146,7 +141,7 @@ void jvs_host::decode(UINT8 *buffer, UINT32 &size)
|
|||||||
if(!size)
|
if(!size)
|
||||||
return;
|
return;
|
||||||
UINT32 pos = 0;
|
UINT32 pos = 0;
|
||||||
for(UINT32 i=0; i<size-1; i++) {
|
for(UINT32 i=0; i<size; i++) {
|
||||||
UINT8 t = buffer[i];
|
UINT8 t = buffer[i];
|
||||||
if(!i && t == 0xe0)
|
if(!i && t == 0xe0)
|
||||||
continue;
|
continue;
|
||||||
@ -156,5 +151,5 @@ void jvs_host::decode(UINT8 *buffer, UINT32 &size)
|
|||||||
}
|
}
|
||||||
buffer[pos++] = t;
|
buffer[pos++] = t;
|
||||||
}
|
}
|
||||||
size = pos;
|
size = pos ? pos - 1 : 0;
|
||||||
}
|
}
|
||||||
|
@ -440,12 +440,12 @@ ATTR_COLD void netlist_mame_device_t::save_state()
|
|||||||
if (td != NULL) save_pointer(td, s->m_name, s->m_count);
|
if (td != NULL) save_pointer(td, s->m_name, s->m_count);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DT_FLOAT:
|
case DT_FLOAT:
|
||||||
{
|
{
|
||||||
float *td = s->resolved<float>();
|
float *td = s->resolved<float>();
|
||||||
if (td != NULL) save_pointer(td, s->m_name, s->m_count);
|
if (td != NULL) save_pointer(td, s->m_name, s->m_count);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DT_INT64:
|
case DT_INT64:
|
||||||
save_pointer((INT64 *) s->m_ptr, s->m_name, s->m_count);
|
save_pointer((INT64 *) s->m_ptr, s->m_name, s->m_count);
|
||||||
break;
|
break;
|
||||||
|
@ -94,7 +94,7 @@ machine_manager* machine_manager::m_manager = NULL;
|
|||||||
|
|
||||||
osd_interface &machine_manager::osd() const
|
osd_interface &machine_manager::osd() const
|
||||||
{
|
{
|
||||||
return m_osd;
|
return m_osd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ class netlist_matrix_solver_direct_t: public netlist_matrix_solver_t
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
netlist_matrix_solver_direct_t(const netlist_solver_parameters_t ¶ms, int size);
|
netlist_matrix_solver_direct_t(const netlist_solver_parameters_t ¶ms, int size);
|
||||||
netlist_matrix_solver_direct_t(const eSolverType type, const netlist_solver_parameters_t ¶ms, int size);
|
netlist_matrix_solver_direct_t(const eSolverType type, const netlist_solver_parameters_t ¶ms, int size);
|
||||||
|
|
||||||
virtual ~netlist_matrix_solver_direct_t();
|
virtual ~netlist_matrix_solver_direct_t();
|
||||||
|
|
||||||
@ -69,13 +69,13 @@ netlist_matrix_solver_direct_t<m_N, _storage_N>::~netlist_matrix_solver_direct_t
|
|||||||
{
|
{
|
||||||
//delete[] m_A[k];
|
//delete[] m_A[k];
|
||||||
}
|
}
|
||||||
for (int k = 0; k < N(); k++)
|
for (int k = 0; k < N(); k++)
|
||||||
{
|
{
|
||||||
nl_free(m_terms[k]);
|
nl_free(m_terms[k]);
|
||||||
nl_free(m_row_ops[k]);
|
nl_free(m_row_ops[k]);
|
||||||
}
|
}
|
||||||
nl_free(m_row_ops[N()]);
|
nl_free(m_row_ops[N()]);
|
||||||
//delete[] m_last_RHS;
|
//delete[] m_last_RHS;
|
||||||
//delete[] m_RHS;
|
//delete[] m_RHS;
|
||||||
nl_free_array(m_terms);
|
nl_free_array(m_terms);
|
||||||
nl_free_array(m_rails_temp);
|
nl_free_array(m_rails_temp);
|
||||||
@ -193,17 +193,17 @@ ATTR_COLD void netlist_matrix_solver_direct_t<m_N, _storage_N>::vsetup(netlist_a
|
|||||||
* Sorting as a general matrix pre-conditioning is mentioned in
|
* Sorting as a general matrix pre-conditioning is mentioned in
|
||||||
* literature but I have found no articles about Gauss Seidel.
|
* literature but I have found no articles about Gauss Seidel.
|
||||||
*
|
*
|
||||||
* For Gaussian Elimination however increasing order is better suited.
|
* For Gaussian Elimination however increasing order is better suited.
|
||||||
* FIXME: Even better would be to sort on elements right of the matrix diagonal.
|
* FIXME: Even better would be to sort on elements right of the matrix diagonal.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int sort_order = (type() == GAUSS_SEIDEL ? 1 : -1);
|
int sort_order = (type() == GAUSS_SEIDEL ? 1 : -1);
|
||||||
|
|
||||||
for (int k = 0; k < N() / 2; k++)
|
for (int k = 0; k < N() / 2; k++)
|
||||||
for (int i = 0; i < N() - 1; i++)
|
for (int i = 0; i < N() - 1; i++)
|
||||||
{
|
{
|
||||||
if ((m_terms[i]->m_railstart - m_terms[i+1]->m_railstart) * sort_order < 0)
|
if ((m_terms[i]->m_railstart - m_terms[i+1]->m_railstart) * sort_order < 0)
|
||||||
{
|
{
|
||||||
std::swap(m_terms[i],m_terms[i+1]);
|
std::swap(m_terms[i],m_terms[i+1]);
|
||||||
m_nets.swap(i, i+1);
|
m_nets.swap(i, i+1);
|
||||||
@ -475,15 +475,15 @@ netlist_matrix_solver_direct_t<m_N, _storage_N>::netlist_matrix_solver_direct_t(
|
|||||||
, m_dim(size)
|
, m_dim(size)
|
||||||
, m_lp_fact(0)
|
, m_lp_fact(0)
|
||||||
{
|
{
|
||||||
m_terms = nl_alloc_array(terms_t *, N());
|
m_terms = nl_alloc_array(terms_t *, N());
|
||||||
m_rails_temp = nl_alloc_array(terms_t, N());
|
m_rails_temp = nl_alloc_array(terms_t, N());
|
||||||
|
|
||||||
for (int k = 0; k < N(); k++)
|
for (int k = 0; k < N(); k++)
|
||||||
{
|
{
|
||||||
m_terms[k] = nl_alloc(terms_t);
|
m_terms[k] = nl_alloc(terms_t);
|
||||||
m_row_ops[k] = vector_ops_t::create_ops(k);
|
m_row_ops[k] = vector_ops_t::create_ops(k);
|
||||||
}
|
}
|
||||||
m_row_ops[N()] = vector_ops_t::create_ops(N());
|
m_row_ops[N()] = vector_ops_t::create_ops(N());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,16 +17,16 @@ class ATTR_ALIGNED(64) netlist_matrix_solver_gauss_seidel_t: public netlist_matr
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
netlist_matrix_solver_gauss_seidel_t(const netlist_solver_parameters_t ¶ms, int size)
|
netlist_matrix_solver_gauss_seidel_t(const netlist_solver_parameters_t ¶ms, int size)
|
||||||
: netlist_matrix_solver_direct_t<m_N, _storage_N>(netlist_matrix_solver_t::GAUSS_SEIDEL, params, size)
|
: netlist_matrix_solver_direct_t<m_N, _storage_N>(netlist_matrix_solver_t::GAUSS_SEIDEL, params, size)
|
||||||
, m_lp_fact(0)
|
, m_lp_fact(0)
|
||||||
, m_gs_fail(0)
|
, m_gs_fail(0)
|
||||||
, m_gs_total(0)
|
, m_gs_total(0)
|
||||||
{
|
{
|
||||||
const char *p = osd_getenv("NETLIST_STATS");
|
const char *p = osd_getenv("NETLIST_STATS");
|
||||||
if (p != NULL)
|
if (p != NULL)
|
||||||
m_log_stats = (bool) atoi(p);
|
m_log_stats = (bool) atoi(p);
|
||||||
else
|
else
|
||||||
m_log_stats = false;
|
m_log_stats = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~netlist_matrix_solver_gauss_seidel_t() {}
|
virtual ~netlist_matrix_solver_gauss_seidel_t() {}
|
||||||
@ -52,21 +52,21 @@ private:
|
|||||||
template <int m_N, int _storage_N>
|
template <int m_N, int _storage_N>
|
||||||
void netlist_matrix_solver_gauss_seidel_t<m_N, _storage_N>::log_stats()
|
void netlist_matrix_solver_gauss_seidel_t<m_N, _storage_N>::log_stats()
|
||||||
{
|
{
|
||||||
if (this->m_stat_calculations != 0 && m_log_stats)
|
if (this->m_stat_calculations != 0 && m_log_stats)
|
||||||
{
|
{
|
||||||
printf("==============================================\n");
|
printf("==============================================\n");
|
||||||
printf("Solver %s\n", this->name().cstr());
|
printf("Solver %s\n", this->name().cstr());
|
||||||
printf(" ==> %d nets\n", this->N()); //, (*(*groups[i].first())->m_core_terms.first())->name().cstr());
|
printf(" ==> %d nets\n", this->N()); //, (*(*groups[i].first())->m_core_terms.first())->name().cstr());
|
||||||
printf(" has %s elements\n", this->is_dynamic() ? "dynamic" : "no dynamic");
|
printf(" has %s elements\n", this->is_dynamic() ? "dynamic" : "no dynamic");
|
||||||
printf(" has %s elements\n", this->is_timestep() ? "timestep" : "no timestep");
|
printf(" has %s elements\n", this->is_timestep() ? "timestep" : "no timestep");
|
||||||
printf(" %6.3f average newton raphson loops\n", (double) this->m_stat_newton_raphson / (double) this->m_stat_vsolver_calls);
|
printf(" %6.3f average newton raphson loops\n", (double) this->m_stat_newton_raphson / (double) this->m_stat_vsolver_calls);
|
||||||
printf(" %10d invocations (%6d Hz) %10d gs fails (%6.2f%%) %6.3f average\n",
|
printf(" %10d invocations (%6d Hz) %10d gs fails (%6.2f%%) %6.3f average\n",
|
||||||
this->m_stat_calculations,
|
this->m_stat_calculations,
|
||||||
this->m_stat_calculations * 10 / (int) (this->netlist().time().as_double() * 10.0),
|
this->m_stat_calculations * 10 / (int) (this->netlist().time().as_double() * 10.0),
|
||||||
this->m_gs_fail,
|
this->m_gs_fail,
|
||||||
100.0 * (double) this->m_gs_fail / (double) this->m_stat_calculations,
|
100.0 * (double) this->m_gs_fail / (double) this->m_stat_calculations,
|
||||||
(double) this->m_gs_total / (double) this->m_stat_calculations);
|
(double) this->m_gs_total / (double) this->m_stat_calculations);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <int m_N, int _storage_N>
|
template <int m_N, int _storage_N>
|
||||||
@ -299,7 +299,7 @@ ATTR_HOT inline int netlist_matrix_solver_gauss_seidel_t<m_N, _storage_N>::vsolv
|
|||||||
//if (fabs(gabs_t - fabs(gtot_t)) > 1e-20)
|
//if (fabs(gabs_t - fabs(gtot_t)) > 1e-20)
|
||||||
// printf("%d %e abs: %f tot: %f\n",k, gabs_t / gtot_t -1.0, gabs_t, gtot_t);
|
// printf("%d %e abs: %f tot: %f\n",k, gabs_t / gtot_t -1.0, gabs_t, gtot_t);
|
||||||
|
|
||||||
gabs_t *= 0.95; // avoid rounding issues
|
gabs_t *= 0.95; // avoid rounding issues
|
||||||
if (!USE_GABS || gabs_t <= gtot_t)
|
if (!USE_GABS || gabs_t <= gtot_t)
|
||||||
{
|
{
|
||||||
w[k] = ws / gtot_t;
|
w[k] = ws / gtot_t;
|
||||||
@ -343,7 +343,7 @@ ATTR_HOT inline int netlist_matrix_solver_gauss_seidel_t<m_N, _storage_N>::vsolv
|
|||||||
this->m_nets[k]->m_cur_Analog = new_V[k];
|
this->m_nets[k]->m_cur_Analog = new_V[k];
|
||||||
|
|
||||||
this->m_gs_total += resched_cnt;
|
this->m_gs_total += resched_cnt;
|
||||||
this->m_stat_calculations++;
|
this->m_stat_calculations++;
|
||||||
|
|
||||||
if (resched)
|
if (resched)
|
||||||
{
|
{
|
||||||
|
@ -31,7 +31,7 @@ NETLIST_START(opamp_lm3900)
|
|||||||
NET_C(R1.2, R2.2, G1.ON)
|
NET_C(R1.2, R2.2, G1.ON)
|
||||||
VCVS(G1)
|
VCVS(G1)
|
||||||
PARAM(G1.G, 10000000)
|
PARAM(G1.G, 10000000)
|
||||||
//PARAM(G1.RI, 1)
|
//PARAM(G1.RI, 1)
|
||||||
PARAM(G1.RO, RES_K(8))
|
PARAM(G1.RO, RES_K(8))
|
||||||
|
|
||||||
NETLIST_END()
|
NETLIST_END()
|
||||||
|
@ -99,11 +99,11 @@ ATTR_COLD void terms_t::set_pointers()
|
|||||||
|
|
||||||
ATTR_COLD netlist_matrix_solver_t::netlist_matrix_solver_t(const eSolverType type, const netlist_solver_parameters_t ¶ms)
|
ATTR_COLD netlist_matrix_solver_t::netlist_matrix_solver_t(const eSolverType type, const netlist_solver_parameters_t ¶ms)
|
||||||
: m_stat_calculations(0),
|
: m_stat_calculations(0),
|
||||||
m_stat_newton_raphson(0),
|
m_stat_newton_raphson(0),
|
||||||
m_stat_vsolver_calls(0),
|
m_stat_vsolver_calls(0),
|
||||||
m_params(params),
|
m_params(params),
|
||||||
m_cur_ts(0),
|
m_cur_ts(0),
|
||||||
m_type(type)
|
m_type(type)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,7 +257,7 @@ ATTR_HOT void netlist_matrix_solver_t::step(const netlist_time delta)
|
|||||||
template<class C >
|
template<class C >
|
||||||
void netlist_matrix_solver_t::solve_base(C *p)
|
void netlist_matrix_solver_t::solve_base(C *p)
|
||||||
{
|
{
|
||||||
m_stat_vsolver_calls++;
|
m_stat_vsolver_calls++;
|
||||||
if (is_dynamic())
|
if (is_dynamic())
|
||||||
{
|
{
|
||||||
int this_resched;
|
int this_resched;
|
||||||
@ -270,7 +270,7 @@ void netlist_matrix_solver_t::solve_base(C *p)
|
|||||||
newton_loops++;
|
newton_loops++;
|
||||||
} while (this_resched > 1 && newton_loops < m_params.m_nr_loops);
|
} while (this_resched > 1 && newton_loops < m_params.m_nr_loops);
|
||||||
|
|
||||||
m_stat_newton_raphson += newton_loops;
|
m_stat_newton_raphson += newton_loops;
|
||||||
// reschedule ....
|
// reschedule ....
|
||||||
if (this_resched > 1 && !m_Q_sync.net().is_queued())
|
if (this_resched > 1 && !m_Q_sync.net().is_queued())
|
||||||
{
|
{
|
||||||
@ -438,7 +438,7 @@ netlist_matrix_solver_t * NETLIB_NAME(solver)::create_solver(int size, const int
|
|||||||
return nl_alloc(netlist_matrix_solver_direct2_t, m_params);
|
return nl_alloc(netlist_matrix_solver_direct2_t, m_params);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
typedef netlist_matrix_solver_gauss_seidel_t<m_N,_storage_N> solver_N;
|
typedef netlist_matrix_solver_gauss_seidel_t<m_N,_storage_N> solver_N;
|
||||||
if (size >= gs_threshold)
|
if (size >= gs_threshold)
|
||||||
return nl_alloc(solver_N, m_params, size);
|
return nl_alloc(solver_N, m_params, size);
|
||||||
else
|
else
|
||||||
|
@ -197,8 +197,8 @@ public:
|
|||||||
|
|
||||||
enum eSolverType
|
enum eSolverType
|
||||||
{
|
{
|
||||||
GAUSSIAN_ELIMINATION,
|
GAUSSIAN_ELIMINATION,
|
||||||
GAUSS_SEIDEL
|
GAUSS_SEIDEL
|
||||||
};
|
};
|
||||||
|
|
||||||
ATTR_COLD netlist_matrix_solver_t(const eSolverType type, const netlist_solver_parameters_t ¶ms);
|
ATTR_COLD netlist_matrix_solver_t(const eSolverType type, const netlist_solver_parameters_t ¶ms);
|
||||||
@ -243,9 +243,9 @@ protected:
|
|||||||
plinearlist_t<netlist_analog_net_t *> m_nets;
|
plinearlist_t<netlist_analog_net_t *> m_nets;
|
||||||
plinearlist_t<netlist_analog_output_t *> m_inps;
|
plinearlist_t<netlist_analog_output_t *> m_inps;
|
||||||
|
|
||||||
int m_stat_calculations;
|
int m_stat_calculations;
|
||||||
int m_stat_newton_raphson;
|
int m_stat_newton_raphson;
|
||||||
int m_stat_vsolver_calls;
|
int m_stat_vsolver_calls;
|
||||||
|
|
||||||
const netlist_solver_parameters_t &m_params;
|
const netlist_solver_parameters_t &m_params;
|
||||||
|
|
||||||
@ -264,7 +264,7 @@ private:
|
|||||||
|
|
||||||
ATTR_HOT void update_inputs();
|
ATTR_HOT void update_inputs();
|
||||||
|
|
||||||
const eSolverType m_type;
|
const eSolverType m_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ void nl_initialize_factory(netlist_factory_t &factory)
|
|||||||
ENTRY(VCCS, VCCS, "-")
|
ENTRY(VCCS, VCCS, "-")
|
||||||
ENTRY(CCCS, CCCS, "-")
|
ENTRY(CCCS, CCCS, "-")
|
||||||
ENTRY(dummy_input, DUMMY_INPUT, "-")
|
ENTRY(dummy_input, DUMMY_INPUT, "-")
|
||||||
ENTRY(frontier, FRONTIER, "+I,Q")
|
ENTRY(frontier, FRONTIER, "+I,Q")
|
||||||
ENTRY(QBJT_EB, QBJT_EB, "model")
|
ENTRY(QBJT_EB, QBJT_EB, "model")
|
||||||
ENTRY(QBJT_switch, QBJT_SW, "model")
|
ENTRY(QBJT_switch, QBJT_SW, "model")
|
||||||
ENTRY(ttl_input, TTL_INPUT, "IN")
|
ENTRY(ttl_input, TTL_INPUT, "IN")
|
||||||
@ -148,4 +148,3 @@ void nl_initialize_factory(netlist_factory_t &factory)
|
|||||||
ENTRY(SN74LS629_dip, SN74LS629_DIP, "1.CAP1,2.CAP2")
|
ENTRY(SN74LS629_dip, SN74LS629_DIP, "1.CAP1,2.CAP2")
|
||||||
ENTRY(NE555_dip, NE555_DIP, "-")
|
ENTRY(NE555_dip, NE555_DIP, "-")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ NETLIB_START(4020_sub)
|
|||||||
register_output("Q5", m_Q[4]);
|
register_output("Q5", m_Q[4]);
|
||||||
register_output("Q6", m_Q[5]);
|
register_output("Q6", m_Q[5]);
|
||||||
register_output("Q7", m_Q[6]);
|
register_output("Q7", m_Q[6]);
|
||||||
register_output("Q8", m_Q[7]);
|
register_output("Q8", m_Q[7]);
|
||||||
register_output("Q9", m_Q[8]);
|
register_output("Q9", m_Q[8]);
|
||||||
register_output("Q10", m_Q[9]);
|
register_output("Q10", m_Q[9]);
|
||||||
register_output("Q11", m_Q[10]);
|
register_output("Q11", m_Q[10]);
|
||||||
|
@ -21,11 +21,11 @@ class nld_vdd_vss : public netlist_device_t
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
ATTR_HOT void update() {};
|
ATTR_HOT void update() {};
|
||||||
ATTR_HOT void start()
|
ATTR_HOT void start()
|
||||||
{
|
{
|
||||||
register_input("VDD,", m_vdd);
|
register_input("VDD,", m_vdd);
|
||||||
register_input("VSS,", m_vss);
|
register_input("VSS,", m_vss);
|
||||||
};
|
};
|
||||||
ATTR_HOT void reset() {};
|
ATTR_HOT void reset() {};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -40,10 +40,9 @@
|
|||||||
NET_REGISTER_DEV(dummy_input, _name)
|
NET_REGISTER_DEV(dummy_input, _name)
|
||||||
|
|
||||||
#define FRONTIER(_name, _IN, _OUT) \
|
#define FRONTIER(_name, _IN, _OUT) \
|
||||||
NET_REGISTER_DEV(frontier, _name) \
|
NET_REGISTER_DEV(frontier, _name) \
|
||||||
NET_C(_IN, _name.I) \
|
NET_C(_IN, _name.I) \
|
||||||
NET_C(_OUT, _name.Q) \
|
NET_C(_OUT, _name.Q)
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// mainclock
|
// mainclock
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
@ -159,31 +158,31 @@ private:
|
|||||||
class NETLIB_NAME(frontier) : public netlist_device_t
|
class NETLIB_NAME(frontier) : public netlist_device_t
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ATTR_COLD NETLIB_NAME(frontier)()
|
ATTR_COLD NETLIB_NAME(frontier)()
|
||||||
: netlist_device_t(DUMMY) { }
|
: netlist_device_t(DUMMY) { }
|
||||||
|
|
||||||
ATTR_COLD virtual ~NETLIB_NAME(frontier)() {}
|
ATTR_COLD virtual ~NETLIB_NAME(frontier)() {}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
ATTR_COLD void start()
|
ATTR_COLD void start()
|
||||||
{
|
{
|
||||||
register_input("I", m_I);
|
register_input("I", m_I);
|
||||||
register_output("Q", m_Q);
|
register_output("Q", m_Q);
|
||||||
}
|
}
|
||||||
|
|
||||||
ATTR_COLD void reset()
|
ATTR_COLD void reset()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ATTR_HOT ATTR_ALIGN void update()
|
ATTR_HOT ATTR_ALIGN void update()
|
||||||
{
|
{
|
||||||
OUTANALOG(m_Q, INPANALOG(m_I));
|
OUTANALOG(m_Q, INPANALOG(m_I));
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
netlist_analog_input_t m_I;
|
netlist_analog_input_t m_I;
|
||||||
netlist_analog_output_t m_Q;
|
netlist_analog_output_t m_Q;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1001,4 +1001,3 @@ NETLIB_UPDATE(mainclock)
|
|||||||
net.toggle_new_Q();
|
net.toggle_new_Q();
|
||||||
net.set_time(netlist().time() + m_inc);
|
net.set_time(netlist().time() + m_inc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -337,7 +337,7 @@ public:
|
|||||||
CAPACITOR, // Capacitor
|
CAPACITOR, // Capacitor
|
||||||
DIODE, // Diode
|
DIODE, // Diode
|
||||||
DUMMY, // DUMMY device without function
|
DUMMY, // DUMMY device without function
|
||||||
FRONTIER, // Net frontier
|
FRONTIER, // Net frontier
|
||||||
BJT_EB, // BJT(Ebers-Moll)
|
BJT_EB, // BJT(Ebers-Moll)
|
||||||
BJT_SWITCH, // BJT(Switch)
|
BJT_SWITCH, // BJT(Switch)
|
||||||
VCVS, // Voltage controlled voltage source
|
VCVS, // Voltage controlled voltage source
|
||||||
@ -1268,13 +1268,13 @@ ATTR_HOT inline netlist_logic_net_t & RESTRICT netlist_net_t::as_logic()
|
|||||||
|
|
||||||
ATTR_HOT inline const netlist_logic_net_t & RESTRICT netlist_net_t::as_logic() const
|
ATTR_HOT inline const netlist_logic_net_t & RESTRICT netlist_net_t::as_logic() const
|
||||||
{
|
{
|
||||||
nl_assert(family() == LOGIC);
|
nl_assert(family() == LOGIC);
|
||||||
return static_cast<const netlist_logic_net_t &>(*this);
|
return static_cast<const netlist_logic_net_t &>(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
ATTR_HOT inline netlist_analog_net_t & RESTRICT netlist_net_t::as_analog()
|
ATTR_HOT inline netlist_analog_net_t & RESTRICT netlist_net_t::as_analog()
|
||||||
{
|
{
|
||||||
nl_assert(family() == ANALOG);
|
nl_assert(family() == ANALOG);
|
||||||
return static_cast<netlist_analog_net_t &>(*this);
|
return static_cast<netlist_analog_net_t &>(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,21 +121,21 @@
|
|||||||
class nl_fatalerror : public std::exception
|
class nl_fatalerror : public std::exception
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
nl_fatalerror(const char *format, ...) ATTR_PRINTF(2,3)
|
nl_fatalerror(const char *format, ...) ATTR_PRINTF(2,3)
|
||||||
{
|
{
|
||||||
char text[1024];
|
char text[1024];
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
vsprintf(text, format, ap);
|
vsprintf(text, format, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
osd_printf_error("%s\n", text);
|
osd_printf_error("%s\n", text);
|
||||||
}
|
}
|
||||||
nl_fatalerror(const char *format, va_list ap)
|
nl_fatalerror(const char *format, va_list ap)
|
||||||
{
|
{
|
||||||
char text[1024];
|
char text[1024];
|
||||||
vsprintf(text, format, ap);
|
vsprintf(text, format, ap);
|
||||||
osd_printf_error("%s\n", text);
|
osd_printf_error("%s\n", text);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//============================================================
|
//============================================================
|
||||||
|
@ -56,18 +56,18 @@
|
|||||||
|
|
||||||
ATTR_COLD const nl_util::pstring_list net_device_t_base_factory::term_param_list()
|
ATTR_COLD const nl_util::pstring_list net_device_t_base_factory::term_param_list()
|
||||||
{
|
{
|
||||||
if (m_def_param.startsWith("+"))
|
if (m_def_param.startsWith("+"))
|
||||||
return nl_util::split(m_def_param.substr(1), ",");
|
return nl_util::split(m_def_param.substr(1), ",");
|
||||||
else
|
else
|
||||||
return nl_util::pstring_list();
|
return nl_util::pstring_list();
|
||||||
}
|
}
|
||||||
|
|
||||||
ATTR_COLD const nl_util::pstring_list net_device_t_base_factory::def_params()
|
ATTR_COLD const nl_util::pstring_list net_device_t_base_factory::def_params()
|
||||||
{
|
{
|
||||||
if (m_def_param.startsWith("+") || m_def_param.equals("-"))
|
if (m_def_param.startsWith("+") || m_def_param.equals("-"))
|
||||||
return nl_util::pstring_list();
|
return nl_util::pstring_list();
|
||||||
else
|
else
|
||||||
return nl_util::split(m_def_param, ",");
|
return nl_util::split(m_def_param, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -97,10 +97,10 @@ netlist_device_t *netlist_setup_t::register_dev(netlist_device_t *dev, const pst
|
|||||||
|
|
||||||
netlist_device_t *netlist_setup_t::register_dev(const pstring &classname, const pstring &name)
|
netlist_device_t *netlist_setup_t::register_dev(const pstring &classname, const pstring &name)
|
||||||
{
|
{
|
||||||
netlist_device_t *dev = factory().new_device_by_classname(classname);
|
netlist_device_t *dev = factory().new_device_by_classname(classname);
|
||||||
if (dev == NULL)
|
if (dev == NULL)
|
||||||
netlist().error("Class %s not found!\n", classname.cstr());
|
netlist().error("Class %s not found!\n", classname.cstr());
|
||||||
return register_dev(dev, name);
|
return register_dev(dev, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
@ -697,7 +697,7 @@ void netlist_setup_t::resolve_inputs()
|
|||||||
|
|
||||||
void netlist_setup_t::start_devices()
|
void netlist_setup_t::start_devices()
|
||||||
{
|
{
|
||||||
//FIXME: we need a nl_getenv
|
//FIXME: we need a nl_getenv
|
||||||
if (getenv("NL_LOGS"))
|
if (getenv("NL_LOGS"))
|
||||||
{
|
{
|
||||||
NL_VERBOSE_OUT(("Creating dynamic logs ...\n"));
|
NL_VERBOSE_OUT(("Creating dynamic logs ...\n"));
|
||||||
|
@ -146,13 +146,13 @@ public:
|
|||||||
void namespace_push(const pstring &aname);
|
void namespace_push(const pstring &aname);
|
||||||
void namespace_pop();
|
void namespace_pop();
|
||||||
|
|
||||||
netlist_factory_t &factory() { return *m_factory; }
|
netlist_factory_t &factory() { return *m_factory; }
|
||||||
const netlist_factory_t &factory() const { return *m_factory; }
|
const netlist_factory_t &factory() const { return *m_factory; }
|
||||||
|
|
||||||
/* not ideal, but needed for save_state */
|
/* not ideal, but needed for save_state */
|
||||||
tagmap_terminal_t m_terminals;
|
tagmap_terminal_t m_terminals;
|
||||||
|
|
||||||
void print_stats() const;
|
void print_stats() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ public:
|
|||||||
ATTR_COLD ~plinearlist_t()
|
ATTR_COLD ~plinearlist_t()
|
||||||
{
|
{
|
||||||
if (m_list != NULL)
|
if (m_list != NULL)
|
||||||
nl_free_array(m_list);
|
nl_free_array(m_list);
|
||||||
m_list = NULL;
|
m_list = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ private:
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (m_list != NULL)
|
if (m_list != NULL)
|
||||||
nl_free_array(m_list);
|
nl_free_array(m_list);
|
||||||
m_list = NULL;
|
m_list = NULL;
|
||||||
m_count = 0;
|
m_count = 0;
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ ATTR_COLD void pstate_manager_t::save_state_ptr(const pstring &stname, const pst
|
|||||||
"DT_INT8",
|
"DT_INT8",
|
||||||
"DT_INT",
|
"DT_INT",
|
||||||
"DT_BOOLEAN",
|
"DT_BOOLEAN",
|
||||||
"DT_FLOAT"
|
"DT_FLOAT"
|
||||||
};
|
};
|
||||||
|
|
||||||
NL_VERBOSE_OUT(("SAVE: <%s> %s(%d) %p\n", fullname.cstr(), ts[dt].cstr(), size, ptr));
|
NL_VERBOSE_OUT(("SAVE: <%s> %s(%d) %p\n", fullname.cstr(), ts[dt].cstr(), size, ptr));
|
||||||
@ -64,8 +64,8 @@ ATTR_COLD void pstate_manager_t::post_load()
|
|||||||
|
|
||||||
template<> ATTR_COLD void pstate_manager_t::save_item(pstate_callback_t &state, const void *owner, const pstring &stname)
|
template<> ATTR_COLD void pstate_manager_t::save_item(pstate_callback_t &state, const void *owner, const pstring &stname)
|
||||||
{
|
{
|
||||||
//save_state_ptr(stname, DT_CUSTOM, 0, 1, &state);
|
//save_state_ptr(stname, DT_CUSTOM, 0, 1, &state);
|
||||||
pstate_entry_t *p = nl_alloc(pstate_entry_t, stname, owner, &state);
|
pstate_entry_t *p = nl_alloc(pstate_entry_t, stname, owner, &state);
|
||||||
m_save.add(p);
|
m_save.add(p);
|
||||||
state.register_state(*this, stname);
|
state.register_state(*this, stname);
|
||||||
}
|
}
|
||||||
|
@ -24,4 +24,3 @@ void parameters_manager::add(astring tag, astring value)
|
|||||||
{
|
{
|
||||||
m_parameters.add(tag, value);
|
m_parameters.add(tag, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
288
src/emu/render.c
288
src/emu/render.c
@ -207,62 +207,62 @@ inline item_layer get_layer_and_blendmode(const layout_view &view, int index, in
|
|||||||
|
|
||||||
render_texinfo &render_texinfo::operator=(const render_texinfo &src)
|
render_texinfo &render_texinfo::operator=(const render_texinfo &src)
|
||||||
{
|
{
|
||||||
free_palette();
|
free_palette();
|
||||||
base = src.base;
|
base = src.base;
|
||||||
rowpixels = src.rowpixels;
|
rowpixels = src.rowpixels;
|
||||||
width = src.width;
|
width = src.width;
|
||||||
height = src.height;
|
height = src.height;
|
||||||
seqid = src.seqid;
|
seqid = src.seqid;
|
||||||
osddata = src.osddata;
|
osddata = src.osddata;
|
||||||
m_palette = src.m_palette;
|
m_palette = src.m_palette;
|
||||||
if (m_palette != NULL)
|
if (m_palette != NULL)
|
||||||
{
|
{
|
||||||
m_palette->ref_count++;
|
m_palette->ref_count++;
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
render_texinfo::render_texinfo(const render_texinfo &src)
|
render_texinfo::render_texinfo(const render_texinfo &src)
|
||||||
{
|
{
|
||||||
base = src.base;
|
base = src.base;
|
||||||
rowpixels = src.rowpixels;
|
rowpixels = src.rowpixels;
|
||||||
width = src.width;
|
width = src.width;
|
||||||
height = src.height;
|
height = src.height;
|
||||||
seqid = src.seqid;
|
seqid = src.seqid;
|
||||||
osddata = src.osddata;
|
osddata = src.osddata;
|
||||||
m_palette = src.m_palette;
|
m_palette = src.m_palette;
|
||||||
if (m_palette != NULL)
|
if (m_palette != NULL)
|
||||||
{
|
{
|
||||||
m_palette->ref_count++;
|
m_palette->ref_count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void render_texinfo::set_palette(const dynamic_array<rgb_t> *source)
|
void render_texinfo::set_palette(const dynamic_array<rgb_t> *source)
|
||||||
{
|
{
|
||||||
free_palette();
|
free_palette();
|
||||||
if (source != NULL)
|
if (source != NULL)
|
||||||
{
|
{
|
||||||
m_palette = global_alloc(render_palette_copy);
|
m_palette = global_alloc(render_palette_copy);
|
||||||
m_palette->palette.copyfrom(*source);
|
m_palette->palette.copyfrom(*source);
|
||||||
m_palette->ref_count = 1;
|
m_palette->ref_count = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_palette = NULL;
|
m_palette = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void render_texinfo::free_palette()
|
void render_texinfo::free_palette()
|
||||||
{
|
{
|
||||||
if (m_palette != NULL)
|
if (m_palette != NULL)
|
||||||
{
|
{
|
||||||
m_palette->ref_count--;
|
m_palette->ref_count--;
|
||||||
if (m_palette->ref_count == 0)
|
if (m_palette->ref_count == 0)
|
||||||
{
|
{
|
||||||
global_free(m_palette);
|
global_free(m_palette);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_palette = NULL;
|
m_palette = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -277,31 +277,31 @@ void render_texinfo::free_palette()
|
|||||||
|
|
||||||
void render_primitive::reset()
|
void render_primitive::reset()
|
||||||
{
|
{
|
||||||
// public state
|
// public state
|
||||||
type = INVALID;
|
type = INVALID;
|
||||||
bounds.x0 = 0;
|
bounds.x0 = 0;
|
||||||
bounds.y0 = 0;
|
bounds.y0 = 0;
|
||||||
bounds.x1 = 0;
|
bounds.x1 = 0;
|
||||||
bounds.y1 = 0;
|
bounds.y1 = 0;
|
||||||
color.a = 0;
|
color.a = 0;
|
||||||
color.r = 0;
|
color.r = 0;
|
||||||
color.g = 0;
|
color.g = 0;
|
||||||
color.b = 0;
|
color.b = 0;
|
||||||
flags = 0;
|
flags = 0;
|
||||||
width = 0.0f;
|
width = 0.0f;
|
||||||
texture.set_palette(NULL);
|
texture.set_palette(NULL);
|
||||||
texture = render_texinfo();
|
texture = render_texinfo();
|
||||||
texcoords.bl.u = 0.0f;
|
texcoords.bl.u = 0.0f;
|
||||||
texcoords.bl.v = 0.0f;
|
texcoords.bl.v = 0.0f;
|
||||||
texcoords.br.u = 0.0f;
|
texcoords.br.u = 0.0f;
|
||||||
texcoords.br.v = 0.0f;
|
texcoords.br.v = 0.0f;
|
||||||
texcoords.tl.u = 0.0f;
|
texcoords.tl.u = 0.0f;
|
||||||
texcoords.tl.v = 0.0f;
|
texcoords.tl.v = 0.0f;
|
||||||
texcoords.tr.u = 0.0f;
|
texcoords.tr.u = 0.0f;
|
||||||
texcoords.tr.v = 0.0f;
|
texcoords.tr.v = 0.0f;
|
||||||
|
|
||||||
// do not clear m_next!
|
// do not clear m_next!
|
||||||
// memset(&type, 0, FPTR(&texcoords + 1) - FPTR(&type));
|
// memset(&type, 0, FPTR(&texcoords + 1) - FPTR(&type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -556,63 +556,63 @@ void render_texture::get_scaled(UINT32 dwidth, UINT32 dheight, render_texinfo &t
|
|||||||
texinfo.width = swidth;
|
texinfo.width = swidth;
|
||||||
texinfo.height = sheight;
|
texinfo.height = sheight;
|
||||||
// will be set later
|
// will be set later
|
||||||
texinfo.set_palette(NULL);
|
texinfo.set_palette(NULL);
|
||||||
texinfo.seqid = ++m_curseq;
|
texinfo.seqid = ++m_curseq;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// make sure we can recover the original argb32 bitmap
|
// make sure we can recover the original argb32 bitmap
|
||||||
bitmap_argb32 dummy;
|
bitmap_argb32 dummy;
|
||||||
bitmap_argb32 &srcbitmap = (m_bitmap != NULL) ? downcast<bitmap_argb32 &>(*m_bitmap) : dummy;
|
bitmap_argb32 &srcbitmap = (m_bitmap != NULL) ? downcast<bitmap_argb32 &>(*m_bitmap) : dummy;
|
||||||
|
|
||||||
// is it a size we already have?
|
// is it a size we already have?
|
||||||
scaled_texture *scaled = NULL;
|
scaled_texture *scaled = NULL;
|
||||||
int scalenum;
|
int scalenum;
|
||||||
for (scalenum = 0; scalenum < ARRAY_LENGTH(m_scaled); scalenum++)
|
for (scalenum = 0; scalenum < ARRAY_LENGTH(m_scaled); scalenum++)
|
||||||
{
|
{
|
||||||
scaled = &m_scaled[scalenum];
|
scaled = &m_scaled[scalenum];
|
||||||
|
|
||||||
// we need a non-NULL bitmap with matching dest size
|
// we need a non-NULL bitmap with matching dest size
|
||||||
if (scaled->bitmap != NULL && dwidth == scaled->bitmap->width() && dheight == scaled->bitmap->height())
|
if (scaled->bitmap != NULL && dwidth == scaled->bitmap->width() && dheight == scaled->bitmap->height())
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// did we get one?
|
// did we get one?
|
||||||
if (scalenum == ARRAY_LENGTH(m_scaled))
|
if (scalenum == ARRAY_LENGTH(m_scaled))
|
||||||
{
|
{
|
||||||
int lowest = -1;
|
int lowest = -1;
|
||||||
|
|
||||||
// didn't find one -- take the entry with the lowest seqnum
|
// didn't find one -- take the entry with the lowest seqnum
|
||||||
for (scalenum = 0; scalenum < ARRAY_LENGTH(m_scaled); scalenum++)
|
for (scalenum = 0; scalenum < ARRAY_LENGTH(m_scaled); scalenum++)
|
||||||
if ((lowest == -1 || m_scaled[scalenum].seqid < m_scaled[lowest].seqid) && !primlist.has_reference(m_scaled[scalenum].bitmap))
|
if ((lowest == -1 || m_scaled[scalenum].seqid < m_scaled[lowest].seqid) && !primlist.has_reference(m_scaled[scalenum].bitmap))
|
||||||
lowest = scalenum;
|
lowest = scalenum;
|
||||||
assert_always(lowest != -1, "Too many live texture instances!");
|
assert_always(lowest != -1, "Too many live texture instances!");
|
||||||
|
|
||||||
// throw out any existing entries
|
// throw out any existing entries
|
||||||
scaled = &m_scaled[lowest];
|
scaled = &m_scaled[lowest];
|
||||||
if (scaled->bitmap != NULL)
|
if (scaled->bitmap != NULL)
|
||||||
{
|
{
|
||||||
m_manager->invalidate_all(scaled->bitmap);
|
m_manager->invalidate_all(scaled->bitmap);
|
||||||
global_free(scaled->bitmap);
|
global_free(scaled->bitmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
// allocate a new bitmap
|
// allocate a new bitmap
|
||||||
scaled->bitmap = global_alloc(bitmap_argb32(dwidth, dheight));
|
scaled->bitmap = global_alloc(bitmap_argb32(dwidth, dheight));
|
||||||
scaled->seqid = ++m_curseq;
|
scaled->seqid = ++m_curseq;
|
||||||
|
|
||||||
// let the scaler do the work
|
// let the scaler do the work
|
||||||
(*m_scaler)(*scaled->bitmap, srcbitmap, m_sbounds, m_param);
|
(*m_scaler)(*scaled->bitmap, srcbitmap, m_sbounds, m_param);
|
||||||
}
|
}
|
||||||
|
|
||||||
// finally fill out the new info
|
// finally fill out the new info
|
||||||
primlist.add_reference(scaled->bitmap);
|
primlist.add_reference(scaled->bitmap);
|
||||||
texinfo.base = &scaled->bitmap->pix32(0);
|
texinfo.base = &scaled->bitmap->pix32(0);
|
||||||
texinfo.rowpixels = scaled->bitmap->rowpixels();
|
texinfo.rowpixels = scaled->bitmap->rowpixels();
|
||||||
texinfo.width = dwidth;
|
texinfo.width = dwidth;
|
||||||
texinfo.height = dheight;
|
texinfo.height = dheight;
|
||||||
// will be set later
|
// will be set later
|
||||||
texinfo.set_palette(NULL);
|
texinfo.set_palette(NULL);
|
||||||
texinfo.seqid = scaled->seqid;
|
texinfo.seqid = scaled->seqid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1817,26 +1817,26 @@ void render_target::add_container_primitives(render_primitive_list &list, const
|
|||||||
height = MIN(height, m_maxtexheight);
|
height = MIN(height, m_maxtexheight);
|
||||||
|
|
||||||
curitem->texture()->get_scaled(width, height, prim->texture, list);
|
curitem->texture()->get_scaled(width, height, prim->texture, list);
|
||||||
// set the palette
|
// set the palette
|
||||||
#if 1
|
#if 1
|
||||||
const dynamic_array<rgb_t> *adjusted_pal = curitem->texture()->get_adjusted_palette(container);
|
const dynamic_array<rgb_t> *adjusted_pal = curitem->texture()->get_adjusted_palette(container);
|
||||||
prim->texture.set_palette(adjusted_pal);
|
prim->texture.set_palette(adjusted_pal);
|
||||||
#else
|
#else
|
||||||
prim->texture.palette = curitem->texture()->get_adjusted_palette(container);
|
prim->texture.palette = curitem->texture()->get_adjusted_palette(container);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// determine UV coordinates and apply clipping
|
// determine UV coordinates and apply clipping
|
||||||
prim->texcoords = oriented_texcoords[finalorient];
|
prim->texcoords = oriented_texcoords[finalorient];
|
||||||
clipped = render_clip_quad(&prim->bounds, &cliprect, &prim->texcoords);
|
clipped = render_clip_quad(&prim->bounds, &cliprect, &prim->texcoords);
|
||||||
|
|
||||||
// apply the final orientation from the quad flags and then build up the final flags
|
// apply the final orientation from the quad flags and then build up the final flags
|
||||||
prim->flags = (curitem->flags() & ~(PRIMFLAG_TEXORIENT_MASK | PRIMFLAG_BLENDMODE_MASK | PRIMFLAG_TEXFORMAT_MASK)) |
|
prim->flags = (curitem->flags() & ~(PRIMFLAG_TEXORIENT_MASK | PRIMFLAG_BLENDMODE_MASK | PRIMFLAG_TEXFORMAT_MASK)) |
|
||||||
PRIMFLAG_TEXORIENT(finalorient) |
|
PRIMFLAG_TEXORIENT(finalorient) |
|
||||||
PRIMFLAG_TEXFORMAT(curitem->texture()->format());
|
PRIMFLAG_TEXFORMAT(curitem->texture()->format());
|
||||||
if (blendmode != -1)
|
if (blendmode != -1)
|
||||||
prim->flags |= PRIMFLAG_BLENDMODE(blendmode);
|
prim->flags |= PRIMFLAG_BLENDMODE(blendmode);
|
||||||
else
|
else
|
||||||
prim->flags |= PRIMFLAG_BLENDMODE(PRIMFLAG_GET_BLENDMODE(curitem->flags()));
|
prim->flags |= PRIMFLAG_BLENDMODE(PRIMFLAG_GET_BLENDMODE(curitem->flags()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1876,15 +1876,15 @@ void render_target::add_container_primitives(render_primitive_list &list, const
|
|||||||
(container_xform.orientation & ORIENTATION_SWAP_XY) ? width : height, prim->texture, list);
|
(container_xform.orientation & ORIENTATION_SWAP_XY) ? width : height, prim->texture, list);
|
||||||
|
|
||||||
// determine UV coordinates
|
// determine UV coordinates
|
||||||
prim->texcoords = oriented_texcoords[container_xform.orientation];
|
prim->texcoords = oriented_texcoords[container_xform.orientation];
|
||||||
|
|
||||||
// set the flags and add it to the list
|
// set the flags and add it to the list
|
||||||
prim->flags = PRIMFLAG_TEXORIENT(container_xform.orientation) |
|
prim->flags = PRIMFLAG_TEXORIENT(container_xform.orientation) |
|
||||||
PRIMFLAG_BLENDMODE(BLENDMODE_RGB_MULTIPLY) |
|
PRIMFLAG_BLENDMODE(BLENDMODE_RGB_MULTIPLY) |
|
||||||
PRIMFLAG_TEXFORMAT(container.overlay()->format()) |
|
PRIMFLAG_TEXFORMAT(container.overlay()->format()) |
|
||||||
PRIMFLAG_TEXSHADE(1);
|
PRIMFLAG_TEXSHADE(1);
|
||||||
|
|
||||||
list.append_or_return(*prim, false);
|
list.append_or_return(*prim, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1925,17 +1925,17 @@ void render_target::add_element_primitives(render_primitive_list &list, const ob
|
|||||||
|
|
||||||
texture->get_scaled(width, height, prim->texture, list);
|
texture->get_scaled(width, height, prim->texture, list);
|
||||||
|
|
||||||
// compute the clip rect
|
// compute the clip rect
|
||||||
render_bounds cliprect;
|
render_bounds cliprect;
|
||||||
cliprect.x0 = render_round_nearest(xform.xoffs);
|
cliprect.x0 = render_round_nearest(xform.xoffs);
|
||||||
cliprect.y0 = render_round_nearest(xform.yoffs);
|
cliprect.y0 = render_round_nearest(xform.yoffs);
|
||||||
cliprect.x1 = render_round_nearest(xform.xoffs + xform.xscale);
|
cliprect.x1 = render_round_nearest(xform.xoffs + xform.xscale);
|
||||||
cliprect.y1 = render_round_nearest(xform.yoffs + xform.yscale);
|
cliprect.y1 = render_round_nearest(xform.yoffs + xform.yscale);
|
||||||
sect_render_bounds(&cliprect, &m_bounds);
|
sect_render_bounds(&cliprect, &m_bounds);
|
||||||
|
|
||||||
// determine UV coordinates and apply clipping
|
// determine UV coordinates and apply clipping
|
||||||
prim->texcoords = oriented_texcoords[xform.orientation];
|
prim->texcoords = oriented_texcoords[xform.orientation];
|
||||||
bool clipped = render_clip_quad(&prim->bounds, &cliprect, &prim->texcoords);
|
bool clipped = render_clip_quad(&prim->bounds, &cliprect, &prim->texcoords);
|
||||||
|
|
||||||
// add to the list or free if we're clipped out
|
// add to the list or free if we're clipped out
|
||||||
list.append_or_return(*prim, clipped);
|
list.append_or_return(*prim, clipped);
|
||||||
|
@ -213,26 +213,26 @@ struct render_quad_texuv
|
|||||||
|
|
||||||
struct render_palette_copy
|
struct render_palette_copy
|
||||||
{
|
{
|
||||||
int ref_count;
|
int ref_count;
|
||||||
dynamic_array<rgb_t> palette;
|
dynamic_array<rgb_t> palette;
|
||||||
};
|
};
|
||||||
|
|
||||||
class render_texinfo
|
class render_texinfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
render_texinfo()
|
render_texinfo()
|
||||||
: base(NULL), rowpixels(0), width(0), height(0),
|
: base(NULL), rowpixels(0), width(0), height(0),
|
||||||
seqid(0), osddata(0), m_palette(NULL)
|
seqid(0), osddata(0), m_palette(NULL)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
render_texinfo(const render_texinfo &src);
|
render_texinfo(const render_texinfo &src);
|
||||||
|
|
||||||
~render_texinfo()
|
~render_texinfo()
|
||||||
{
|
{
|
||||||
free_palette();
|
free_palette();
|
||||||
}
|
}
|
||||||
|
|
||||||
render_texinfo &operator=(const render_texinfo &src);
|
render_texinfo &operator=(const render_texinfo &src);
|
||||||
|
|
||||||
void * base; // base of the data
|
void * base; // base of the data
|
||||||
UINT32 rowpixels; // pixels per row
|
UINT32 rowpixels; // pixels per row
|
||||||
@ -241,14 +241,14 @@ public:
|
|||||||
UINT32 seqid; // sequence ID
|
UINT32 seqid; // sequence ID
|
||||||
UINT64 osddata; // aux data to pass to osd
|
UINT64 osddata; // aux data to pass to osd
|
||||||
|
|
||||||
const rgb_t * palette() const { return ((m_palette == NULL) ? NULL : &m_palette->palette[0]); }
|
const rgb_t * palette() const { return ((m_palette == NULL) ? NULL : &m_palette->palette[0]); }
|
||||||
|
|
||||||
void set_palette(const dynamic_array<rgb_t> *source);
|
void set_palette(const dynamic_array<rgb_t> *source);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void free_palette();
|
void free_palette();
|
||||||
|
|
||||||
render_palette_copy *m_palette; // palette for PALETTE16 textures, LUTs for RGB15/RGB32
|
render_palette_copy *m_palette; // palette for PALETTE16 textures, LUTs for RGB15/RGB32
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -92,14 +92,14 @@ render_font::render_font(render_manager &manager, const char *filename)
|
|||||||
m_osdfont = manager.machine().osd().font_alloc();
|
m_osdfont = manager.machine().osd().font_alloc();
|
||||||
if (m_osdfont != NULL)
|
if (m_osdfont != NULL)
|
||||||
{
|
{
|
||||||
if (m_osdfont->open(manager.machine().options().font_path(), filename, m_height))
|
if (m_osdfont->open(manager.machine().options().font_path(), filename, m_height))
|
||||||
{
|
{
|
||||||
m_scale = 1.0f / (float)m_height;
|
m_scale = 1.0f / (float)m_height;
|
||||||
m_format = FF_OSD;
|
m_format = FF_OSD;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
global_free(m_osdfont);
|
global_free(m_osdfont);
|
||||||
m_osdfont = NULL;
|
m_osdfont = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,8 +136,8 @@ render_font::~render_font()
|
|||||||
// release the OSD font
|
// release the OSD font
|
||||||
if (m_osdfont != NULL)
|
if (m_osdfont != NULL)
|
||||||
{
|
{
|
||||||
m_osdfont->close();
|
m_osdfont->close();
|
||||||
global_free(m_osdfont);
|
global_free(m_osdfont);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,9 +109,9 @@ void ui_menu_device_config::populate()
|
|||||||
const rectangle &visarea = screen->visible_area();
|
const rectangle &visarea = screen->visible_area();
|
||||||
|
|
||||||
string.catprintf("%d " UTF8_MULTIPLY " %d (%s) %f" UTF8_NBSP "Hz\n",
|
string.catprintf("%d " UTF8_MULTIPLY " %d (%s) %f" UTF8_NBSP "Hz\n",
|
||||||
visarea.width(), visarea.height(),
|
visarea.width(), visarea.height(),
|
||||||
(machine().system().flags & ORIENTATION_SWAP_XY) ? "V" : "H",
|
(machine().system().flags & ORIENTATION_SWAP_XY) ? "V" : "H",
|
||||||
ATTOSECONDS_TO_HZ(screen->frame_period().attoseconds));
|
ATTOSECONDS_TO_HZ(screen->frame_period().attoseconds));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -275,7 +275,7 @@ void ui_menu_device_config::populate()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((execiter.count() + scriter.count() + snditer.count() + imgiter.count() + slotiter.count() + bios + dips + confs
|
if ((execiter.count() + scriter.count() + snditer.count() + imgiter.count() + slotiter.count() + bios + dips + confs
|
||||||
+ input + input_mj + input_hana + input_gamble + input_analog + input_adjust + input_keypad + input_keyboard) == 0)
|
+ input + input_mj + input_hana + input_gamble + input_analog + input_adjust + input_keypad + input_keyboard) == 0)
|
||||||
string.cat("[None]\n");
|
string.cat("[None]\n");
|
||||||
|
|
||||||
const_cast<machine_config &>(machine().config()).device_remove(&machine().config().root_device(), m_option->name());
|
const_cast<machine_config &>(machine().config()).device_remove(&machine().config().root_device(), m_option->name());
|
||||||
|
@ -83,9 +83,9 @@ void ui_menu_tape_control::populate()
|
|||||||
(state & CASSETTE_MASK_UISTATE) == CASSETTE_STOPPED
|
(state & CASSETTE_MASK_UISTATE) == CASSETTE_STOPPED
|
||||||
? "stopped"
|
? "stopped"
|
||||||
: ((state & CASSETTE_MASK_UISTATE) == CASSETTE_PLAY
|
: ((state & CASSETTE_MASK_UISTATE) == CASSETTE_PLAY
|
||||||
? ((state & CASSETTE_MASK_MOTOR) == CASSETTE_MOTOR_ENABLED ? "playing" : "(playing)")
|
? ((state & CASSETTE_MASK_MOTOR) == CASSETTE_MOTOR_ENABLED ? "playing" : "(playing)")
|
||||||
: ((state & CASSETTE_MASK_MOTOR) == CASSETTE_MOTOR_ENABLED ? "recording" : "(recording)")
|
: ((state & CASSETTE_MASK_MOTOR) == CASSETTE_MOTOR_ENABLED ? "recording" : "(recording)")
|
||||||
),
|
),
|
||||||
timepos,
|
timepos,
|
||||||
tapeflags,
|
tapeflags,
|
||||||
TAPECMD_SLIDER);
|
TAPECMD_SLIDER);
|
||||||
|
@ -100,12 +100,12 @@ public:
|
|||||||
void resize_keep_and_clear_new(int count, UINT8 data = 0) { int oldcount = m_count; resize_keep(count); if (oldcount < m_count) clear_internal(oldcount, m_count - oldcount, data); }
|
void resize_keep_and_clear_new(int count, UINT8 data = 0) { int oldcount = m_count; resize_keep(count); if (oldcount < m_count) clear_internal(oldcount, m_count - oldcount, data); }
|
||||||
|
|
||||||
// batch operations
|
// batch operations
|
||||||
void copyfrom(const dynamic_array<_ElementType> &source)
|
void copyfrom(const dynamic_array<_ElementType> &source)
|
||||||
{
|
{
|
||||||
resize(source.count());
|
resize(source.count());
|
||||||
for (int i=0; i < source.count(); i++)
|
for (int i=0; i < source.count(); i++)
|
||||||
m_array[i] = source[i];
|
m_array[i] = source[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// internal helpers
|
// internal helpers
|
||||||
|
@ -171,7 +171,7 @@ public:
|
|||||||
// entry list getters
|
// entry list getters
|
||||||
const rgb_t *entry_list_raw() const { return m_entry_color; }
|
const rgb_t *entry_list_raw() const { return m_entry_color; }
|
||||||
const dynamic_array<rgb_t> *entry_list_adjusted_darray() const { return &m_adjusted_color; }
|
const dynamic_array<rgb_t> *entry_list_adjusted_darray() const { return &m_adjusted_color; }
|
||||||
const rgb_t *entry_list_adjusted() const { return m_adjusted_color; }
|
const rgb_t *entry_list_adjusted() const { return m_adjusted_color; }
|
||||||
const rgb_t *entry_list_adjusted_rgb15() const { return m_adjusted_rgb15; }
|
const rgb_t *entry_list_adjusted_rgb15() const { return m_adjusted_rgb15; }
|
||||||
|
|
||||||
// group adjustments
|
// group adjustments
|
||||||
|
@ -46,47 +46,47 @@
|
|||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
static NETLIST_START(nl_mario_snd0)
|
static NETLIST_START(nl_mario_snd0)
|
||||||
|
|
||||||
RES(R17, RES_K(27)) /* 20 according to parts list */
|
RES(R17, RES_K(27)) /* 20 according to parts list */
|
||||||
/* 27 verified, 30K in schematics */
|
/* 27 verified, 30K in schematics */
|
||||||
CAP(C14, CAP_U(4.7)) /* verified */
|
CAP(C14, CAP_U(4.7)) /* verified */
|
||||||
|
|
||||||
TTL_74123(2H_A)
|
TTL_74123(2H_A)
|
||||||
NET_C(2H_A.VCC, V5)
|
NET_C(2H_A.VCC, V5)
|
||||||
NET_C(2H_A.GND, GND)
|
NET_C(2H_A.GND, GND)
|
||||||
NET_C(SOUND0.Q, 2H_A.B)
|
NET_C(SOUND0.Q, 2H_A.B)
|
||||||
NET_C(GND, 2H_A.A)
|
NET_C(GND, 2H_A.A)
|
||||||
NET_C(2H_A.CLRQ, ttlhigh) /* NOT IN SCHEMATICS */
|
NET_C(2H_A.CLRQ, ttlhigh) /* NOT IN SCHEMATICS */
|
||||||
DIODE(D1, "1N4148") /* FIXME: try to identify */
|
DIODE(D1, "1N4148") /* FIXME: try to identify */
|
||||||
TTL_7404_INVERT(1H_A, 2H_A.QQ)
|
TTL_7404_INVERT(1H_A, 2H_A.QQ)
|
||||||
NET_C(R17.1, V5)
|
NET_C(R17.1, V5)
|
||||||
NET_C(R17.2, D1.A, C14.1)
|
NET_C(R17.2, D1.A, C14.1)
|
||||||
NET_C(D1.K, 2H_A.RC)
|
NET_C(D1.K, 2H_A.RC)
|
||||||
NET_C(C14.2, 2H_A.C)
|
NET_C(C14.2, 2H_A.C)
|
||||||
|
|
||||||
RES(R6, RES_K(4.7)) /* verified */
|
RES(R6, RES_K(4.7)) /* verified */
|
||||||
CAP(C3, CAP_U(10)) /* verified */
|
CAP(C3, CAP_U(10)) /* verified */
|
||||||
|
|
||||||
NET_C(1H_A.Q, R6.1)
|
NET_C(1H_A.Q, R6.1)
|
||||||
NET_C(R6.2, C3.1, 1J_A.FC)
|
NET_C(R6.2, C3.1, 1J_A.FC)
|
||||||
NET_C(R6.2, 2J_A.FC)
|
NET_C(R6.2, 2J_A.FC)
|
||||||
NET_C(C3.2, GND)
|
NET_C(C3.2, GND)
|
||||||
|
|
||||||
//#define MR_C6 CAP_N(3.9) /* verified */
|
//#define MR_C6 CAP_N(3.9) /* verified */
|
||||||
|
|
||||||
SN74LS629(1J_A, CAP_N(3.9))
|
SN74LS629(1J_A, CAP_N(3.9))
|
||||||
NET_C(1J_A.RNG, V5)
|
NET_C(1J_A.RNG, V5)
|
||||||
NET_C(1J_A.ENQ, ttllow)
|
NET_C(1J_A.ENQ, ttllow)
|
||||||
NET_C(GND, 1J_A.GND)
|
NET_C(GND, 1J_A.GND)
|
||||||
|
|
||||||
//#define MR_C17 CAP_N(22) /* verified */
|
//#define MR_C17 CAP_N(22) /* verified */
|
||||||
|
|
||||||
SN74LS629(2J_A, CAP_N(22))
|
SN74LS629(2J_A, CAP_N(22))
|
||||||
NET_C(2J_A.RNG, V5)
|
NET_C(2J_A.RNG, V5)
|
||||||
NET_C(2J_A.ENQ, ttllow)
|
NET_C(2J_A.ENQ, ttllow)
|
||||||
NET_C(GND, 2J_A.GND)
|
NET_C(GND, 2J_A.GND)
|
||||||
|
|
||||||
TTL_7486_XOR(1K_A, 1J_A.Y, 2J_A.Y)
|
TTL_7486_XOR(1K_A, 1J_A.Y, 2J_A.Y)
|
||||||
TTL_7408_AND(2K_A, 2H_A.Q, 1K_A)
|
TTL_7408_AND(2K_A, 2H_A.Q, 1K_A)
|
||||||
NETLIST_END()
|
NETLIST_END()
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
@ -96,49 +96,49 @@ NETLIST_END()
|
|||||||
// FIXME: Diodes are 1S953
|
// FIXME: Diodes are 1S953
|
||||||
static NETLIST_START(nl_mario_snd7)
|
static NETLIST_START(nl_mario_snd7)
|
||||||
|
|
||||||
RES(R61, RES_K(47))
|
RES(R61, RES_K(47))
|
||||||
CAP(C41, CAP_U(4.7)) /* verified */
|
CAP(C41, CAP_U(4.7)) /* verified */
|
||||||
|
|
||||||
TTL_74123(4L_A)
|
TTL_74123(4L_A)
|
||||||
NET_C(4L_A.VCC, V5)
|
NET_C(4L_A.VCC, V5)
|
||||||
NET_C(4L_A.GND, GND)
|
NET_C(4L_A.GND, GND)
|
||||||
NET_C(SOUND7.Q, 4L_A.B)
|
NET_C(SOUND7.Q, 4L_A.B)
|
||||||
NET_C(GND, 4L_A.A)
|
NET_C(GND, 4L_A.A)
|
||||||
NET_C(4L_A.CLRQ, ttlhigh) /* NOT IN SCHEMATICS */
|
NET_C(4L_A.CLRQ, ttlhigh) /* NOT IN SCHEMATICS */
|
||||||
DIODE(D10, "1N4148") /* FIXME: try to identify */
|
DIODE(D10, "1N4148") /* FIXME: try to identify */
|
||||||
TTL_7404_INVERT(4J_A, 4L_A.Q)
|
TTL_7404_INVERT(4J_A, 4L_A.Q)
|
||||||
NET_C(R61.1, V5)
|
NET_C(R61.1, V5)
|
||||||
NET_C(R61.2, D10.A, C41.1)
|
NET_C(R61.2, D10.A, C41.1)
|
||||||
NET_C(D10.K, 4L_A.RC)
|
NET_C(D10.K, 4L_A.RC)
|
||||||
NET_C(C41.2, 4L_A.C)
|
NET_C(C41.2, 4L_A.C)
|
||||||
|
|
||||||
RES(R65, RES_K(10))
|
RES(R65, RES_K(10))
|
||||||
CAP(C44, CAP_U(3.3)) /* verified */
|
CAP(C44, CAP_U(3.3)) /* verified */
|
||||||
|
|
||||||
SN74LS629(4K_A, CAP_U(0.022))
|
SN74LS629(4K_A, CAP_U(0.022))
|
||||||
NET_C(4K_A.RNG, V5)
|
NET_C(4K_A.RNG, V5)
|
||||||
NET_C(4K_A.ENQ, ttllow)
|
NET_C(4K_A.ENQ, ttllow)
|
||||||
NET_C(GND, 4K_A.GND)
|
NET_C(GND, 4K_A.GND)
|
||||||
NET_C(R65.1, 4J_A.Q)
|
NET_C(R65.1, 4J_A.Q)
|
||||||
NET_C(R65.2, 4K_A.FC, C44.1)
|
NET_C(R65.2, 4K_A.FC, C44.1)
|
||||||
NET_C(C44.2, GND)
|
NET_C(C44.2, GND)
|
||||||
|
|
||||||
CD_4020(3H, 4K_B.Y, ttllow, V5, GND)
|
CD_4020(3H, 4K_B.Y, ttllow, V5, GND)
|
||||||
TTL_7404_INVERT(4J_B, 3H.Q12)
|
TTL_7404_INVERT(4J_B, 3H.Q12)
|
||||||
|
|
||||||
RES(R64, RES_K(20))
|
RES(R64, RES_K(20))
|
||||||
CAP(C43, CAP_U(3.3)) /* verified */
|
CAP(C43, CAP_U(3.3)) /* verified */
|
||||||
|
|
||||||
SN74LS629(4K_B, CAP_U(0.0047))
|
SN74LS629(4K_B, CAP_U(0.0047))
|
||||||
NET_C(4K_B.RNG, V5)
|
NET_C(4K_B.RNG, V5)
|
||||||
NET_C(4K_B.ENQ, ttllow)
|
NET_C(4K_B.ENQ, ttllow)
|
||||||
NET_C(GND, 4K_B.GND)
|
NET_C(GND, 4K_B.GND)
|
||||||
NET_C(R64.1, 4J_B.Q)
|
NET_C(R64.1, 4J_B.Q)
|
||||||
NET_C(R64.2, 4K_B.FC, C43.1)
|
NET_C(R64.2, 4K_B.FC, C43.1)
|
||||||
NET_C(C43.2, GND)
|
NET_C(C43.2, GND)
|
||||||
|
|
||||||
TTL_7486_XOR(1K_C, 3H.Q4, 4K_A.Y)
|
TTL_7486_XOR(1K_C, 3H.Q4, 4K_A.Y)
|
||||||
TTL_7408_AND(2K_C, 4L_A.Q, 1K_C)
|
TTL_7408_AND(2K_C, 4L_A.Q, 1K_C)
|
||||||
|
|
||||||
NETLIST_END()
|
NETLIST_END()
|
||||||
|
|
||||||
@ -146,140 +146,140 @@ NETLIST_END()
|
|||||||
/* DAC sound */
|
/* DAC sound */
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
static NETLIST_START(nl_mario_dac)
|
static NETLIST_START(nl_mario_dac)
|
||||||
RES(R34, RES_M(2))
|
RES(R34, RES_M(2))
|
||||||
RES(R35, RES_M(1))
|
RES(R35, RES_M(1))
|
||||||
RES(R36, RES_M(1.8))
|
RES(R36, RES_M(1.8))
|
||||||
LM3900(3M_1)
|
LM3900(3M_1)
|
||||||
NET_C(3M_1.VM, GND)
|
NET_C(3M_1.VM, GND)
|
||||||
NET_C(3M_1.VP, V5)
|
NET_C(3M_1.VP, V5)
|
||||||
|
|
||||||
NET_C(DAC.VOUT, R34.1)
|
NET_C(DAC.VOUT, R34.1)
|
||||||
NET_C(3M_1.MINUS, R34.2, R35.2)
|
NET_C(3M_1.MINUS, R34.2, R35.2)
|
||||||
NET_C(3M_1.OUT, R35.1)
|
NET_C(3M_1.OUT, R35.1)
|
||||||
NET_C(3M_1.PLUS, R36.1)
|
NET_C(3M_1.PLUS, R36.1)
|
||||||
NET_C(R36.2, GND)
|
NET_C(R36.2, GND)
|
||||||
|
|
||||||
RES(R21, RES_M(1.8))
|
RES(R21, RES_M(1.8))
|
||||||
RES(R23, RES_K(10))
|
RES(R23, RES_K(10))
|
||||||
RES(R25, RES_K(10))
|
RES(R25, RES_K(10))
|
||||||
RES(R37, RES_K(750))
|
RES(R37, RES_K(750))
|
||||||
RES(R38, RES_K(360))
|
RES(R38, RES_K(360))
|
||||||
RES(R39, RES_K(750))
|
RES(R39, RES_K(750))
|
||||||
|
|
||||||
CAP(C18, CAP_P(100))
|
CAP(C18, CAP_P(100))
|
||||||
CAP(C19, CAP_U(10))
|
CAP(C19, CAP_U(10))
|
||||||
CAP(C20, CAP_U(1))
|
CAP(C20, CAP_U(1))
|
||||||
CAP(C30, CAP_P(100))
|
CAP(C30, CAP_P(100))
|
||||||
|
|
||||||
LM3900(3M_2)
|
LM3900(3M_2)
|
||||||
NET_C(3M_2.VM, GND)
|
NET_C(3M_2.VM, GND)
|
||||||
NET_C(3M_2.VP, V5)
|
NET_C(3M_2.VP, V5)
|
||||||
|
|
||||||
NET_C(R35.1, C20.1)
|
NET_C(R35.1, C20.1)
|
||||||
NET_C(C20.2, R37.1)
|
NET_C(C20.2, R37.1)
|
||||||
NET_C(R37.2, R38.2, C18.1, R39.2)
|
NET_C(R37.2, R38.2, C18.1, R39.2)
|
||||||
|
|
||||||
NET_C(C18.2, GND)
|
NET_C(C18.2, GND)
|
||||||
NET_C(R38.1, C30.2, 3M_2.MINUS)
|
NET_C(R38.1, C30.2, 3M_2.MINUS)
|
||||||
NET_C(3M_2.OUT, R39.1, C30.1)
|
NET_C(3M_2.OUT, R39.1, C30.1)
|
||||||
|
|
||||||
NET_C(R21.1, 3M_2.PLUS)
|
NET_C(R21.1, 3M_2.PLUS)
|
||||||
NET_C(R21.2, C19.1, R25.2, R23.1)
|
NET_C(R21.2, C19.1, R25.2, R23.1)
|
||||||
NET_C(C19.2, R23.2, GND)
|
NET_C(C19.2, R23.2, GND)
|
||||||
NET_C(R25.1, V5)
|
NET_C(R25.1, V5)
|
||||||
NETLIST_END()
|
NETLIST_END()
|
||||||
|
|
||||||
static NETLIST_START(nl_mario)
|
static NETLIST_START(nl_mario)
|
||||||
|
|
||||||
/* Standard stuff */
|
/* Standard stuff */
|
||||||
|
|
||||||
SOLVER(Solver, 48000)
|
SOLVER(Solver, 48000)
|
||||||
PARAM(Solver.ACCURACY, 1e-8)
|
PARAM(Solver.ACCURACY, 1e-8)
|
||||||
PARAM(Solver.SOR_FACTOR, 1.0)
|
PARAM(Solver.SOR_FACTOR, 1.0)
|
||||||
PARAM(Solver.GS_THRESHOLD, 5)
|
PARAM(Solver.GS_THRESHOLD, 5)
|
||||||
PARAM(Solver.GS_LOOPS, 4)
|
PARAM(Solver.GS_LOOPS, 4)
|
||||||
//PARAM(Solver.LTE, 5e-2) // Default is not enough for paddle control
|
//PARAM(Solver.LTE, 5e-2) // Default is not enough for paddle control
|
||||||
PARAM(Solver.DYNAMIC_TS, 0)
|
PARAM(Solver.DYNAMIC_TS, 0)
|
||||||
ANALOG_INPUT(V5, 5)
|
ANALOG_INPUT(V5, 5)
|
||||||
|
|
||||||
TTL_INPUT(SOUND0, 1)
|
TTL_INPUT(SOUND0, 1)
|
||||||
INCLUDE(nl_mario_snd0)
|
INCLUDE(nl_mario_snd0)
|
||||||
|
|
||||||
TTL_INPUT(SOUND7, 1)
|
TTL_INPUT(SOUND7, 1)
|
||||||
INCLUDE(nl_mario_snd7)
|
INCLUDE(nl_mario_snd7)
|
||||||
|
|
||||||
R2R_DAC(DAC, 3.4, 10000.0, 8)
|
R2R_DAC(DAC, 3.4, 10000.0, 8)
|
||||||
NET_C(DAC.VGND, GND)
|
NET_C(DAC.VGND, GND)
|
||||||
|
|
||||||
INCLUDE(nl_mario_dac)
|
INCLUDE(nl_mario_dac)
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
/* mixing */
|
/* mixing */
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
RES(R20, RES_K(22)) /* verified */
|
RES(R20, RES_K(22)) /* verified */
|
||||||
RES(R19, RES_K(22)) /* verified */
|
RES(R19, RES_K(22)) /* verified */
|
||||||
RES(R40, RES_K(22)) /* verified */
|
RES(R40, RES_K(22)) /* verified */
|
||||||
RES(R41, RES_K(100)) /* verified */
|
RES(R41, RES_K(100)) /* verified */
|
||||||
CAP(C31, CAP_U(0.022)) /* */
|
CAP(C31, CAP_U(0.022)) /* */
|
||||||
|
|
||||||
NET_C(2K_A.Q, R20.1)
|
NET_C(2K_A.Q, R20.1)
|
||||||
NET_C(GND, R19.1) //FIXME
|
NET_C(GND, R19.1) //FIXME
|
||||||
NET_C(2K_C.Q, R41.1)
|
NET_C(2K_C.Q, R41.1)
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
RES(DUM, RES_K(22))
|
RES(DUM, RES_K(22))
|
||||||
NET_C(R39.1, DUM.1)
|
NET_C(R39.1, DUM.1)
|
||||||
NET_C(DUM.2, GND)
|
NET_C(DUM.2, GND)
|
||||||
FRONTIER(front1, R39.1, R40.1)
|
FRONTIER(front1, R39.1, R40.1)
|
||||||
#else
|
#else
|
||||||
NET_C(R39.1, R40.1)
|
NET_C(R39.1, R40.1)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
NET_C(R20.2, R19.2, R40.2, R41.2, C31.1)
|
NET_C(R20.2, R19.2, R40.2, R41.2, C31.1)
|
||||||
NET_C(C31.2, GND)
|
NET_C(C31.2, GND)
|
||||||
|
|
||||||
CAP(C32, CAP_U(1)) /* verified */
|
CAP(C32, CAP_U(1)) /* verified */
|
||||||
RES(R42, RES_K(43)) /* verified */
|
RES(R42, RES_K(43)) /* verified */
|
||||||
RES(R43, RES_K(100)) /* verified */
|
RES(R43, RES_K(100)) /* verified */
|
||||||
|
|
||||||
NET_C(C31.1, C32.1)
|
NET_C(C31.1, C32.1)
|
||||||
NET_C(C32.2, R42.1, R43.2, Q10.B)
|
NET_C(C32.2, R42.1, R43.2, Q10.B)
|
||||||
//NET_C(C32.2, R42.1, R43.2)
|
//NET_C(C32.2, R42.1, R43.2)
|
||||||
NET_C(R43.1, V5)
|
NET_C(R43.1, V5)
|
||||||
NET_C(R42.2, GND)
|
NET_C(R42.2, GND)
|
||||||
#if 1
|
#if 1
|
||||||
RES(R63, RES_K(1)) /* */
|
RES(R63, RES_K(1)) /* */
|
||||||
RES(R62, 150) /* */
|
RES(R62, 150) /* */
|
||||||
|
|
||||||
QBJT_EB(Q10, "2SC1815")
|
QBJT_EB(Q10, "2SC1815")
|
||||||
|
|
||||||
NET_C(R62.2, GND)
|
NET_C(R62.2, GND)
|
||||||
NET_C(R62.1, Q10.E)
|
NET_C(R62.1, Q10.E)
|
||||||
|
|
||||||
NET_C(R63.1, V5)
|
NET_C(R63.1, V5)
|
||||||
NET_C(R63.2, Q10.C)
|
NET_C(R63.2, Q10.C)
|
||||||
|
|
||||||
CAP(C42, CAP_U(0.1))
|
CAP(C42, CAP_U(0.1))
|
||||||
CAP(C47, CAP_U(4.7))
|
CAP(C47, CAP_U(4.7))
|
||||||
RES(VR1, RES_K(10))
|
RES(VR1, RES_K(10))
|
||||||
|
|
||||||
NET_C(C42.1, C47.1, R62.1)
|
NET_C(C42.1, C47.1, R62.1)
|
||||||
NET_C(C42.2, GND)
|
NET_C(C42.2, GND)
|
||||||
NET_C(C47.2, VR1.1)
|
NET_C(C47.2, VR1.1)
|
||||||
NET_C(VR1.2, GND)
|
NET_C(VR1.2, GND)
|
||||||
#endif
|
#endif
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
/* Output */
|
/* Output */
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
RES(ROUT, 1000000)
|
RES(ROUT, 1000000)
|
||||||
|
|
||||||
//NET_C(Q10.C, ROUT.1)
|
//NET_C(Q10.C, ROUT.1)
|
||||||
//NET_C(R43.2, ROUT.1)
|
//NET_C(R43.2, ROUT.1)
|
||||||
NET_C(VR1.1, ROUT.1)
|
NET_C(VR1.1, ROUT.1)
|
||||||
|
|
||||||
NET_C(GND, ROUT.2)
|
NET_C(GND, ROUT.2)
|
||||||
|
|
||||||
NETLIST_END()
|
NETLIST_END()
|
||||||
|
|
||||||
@ -790,7 +790,7 @@ WRITE8_MEMBER(mario_state::mario_sh1_w)
|
|||||||
#if OLD_SOUND
|
#if OLD_SOUND
|
||||||
m_discrete->write(space, DS_SOUND0_INP, 0);
|
m_discrete->write(space, DS_SOUND0_INP, 0);
|
||||||
#else
|
#else
|
||||||
m_audio_snd0->write(data);
|
m_audio_snd0->write(data);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -835,7 +835,7 @@ WRITE8_MEMBER(mario_state::mario_sh3_w)
|
|||||||
#if OLD_SOUND
|
#if OLD_SOUND
|
||||||
machine().device<discrete_device>("discrete")->write(space, DS_SOUND7_INP, data & 1);
|
machine().device<discrete_device>("discrete")->write(space, DS_SOUND7_INP, data & 1);
|
||||||
#else
|
#else
|
||||||
m_audio_snd7->write((data & 1) ^ 1);
|
m_audio_snd7->write((data & 1) ^ 1);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -891,16 +891,16 @@ MACHINE_CONFIG_FRAGMENT( mario_audio )
|
|||||||
MCFG_DISCRETE_INTF(mario)
|
MCFG_DISCRETE_INTF(mario)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1)
|
||||||
#else
|
#else
|
||||||
MCFG_SOUND_ADD("snd_nl", NETLIST_SOUND, 48000)
|
MCFG_SOUND_ADD("snd_nl", NETLIST_SOUND, 48000)
|
||||||
MCFG_NETLIST_SETUP(nl_mario)
|
MCFG_NETLIST_SETUP(nl_mario)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||||
|
|
||||||
MCFG_NETLIST_LOGIC_INPUT("snd_nl", "snd0", "SOUND0.IN", 0, 1)
|
MCFG_NETLIST_LOGIC_INPUT("snd_nl", "snd0", "SOUND0.IN", 0, 1)
|
||||||
MCFG_NETLIST_LOGIC_INPUT("snd_nl", "snd7", "SOUND7.IN", 0, 1)
|
MCFG_NETLIST_LOGIC_INPUT("snd_nl", "snd7", "SOUND7.IN", 0, 1)
|
||||||
MCFG_NETLIST_LOGIC_INPUT("snd_nl", "dac", "DAC.VAL", 0, 255)
|
MCFG_NETLIST_LOGIC_INPUT("snd_nl", "dac", "DAC.VAL", 0, 255)
|
||||||
|
|
||||||
MCFG_NETLIST_STREAM_OUTPUT("snd_nl", 0, "ROUT.1")
|
MCFG_NETLIST_STREAM_OUTPUT("snd_nl", 0, "ROUT.1")
|
||||||
MCFG_NETLIST_ANALOG_MULT_OFFSET(150000.0, 0.0)
|
MCFG_NETLIST_ANALOG_MULT_OFFSET(150000.0, 0.0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
@ -229,21 +229,11 @@ WRITE8_MEMBER( seibu_sound_device::rst18_ack_w )
|
|||||||
update_irq_lines(RST18_CLEAR);
|
update_irq_lines(RST18_CLEAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
void seibu_sound_device::ym3812_irqhandler(int linestate)
|
WRITE_LINE_MEMBER( seibu_sound_device::fm_irqhandler )
|
||||||
{
|
|
||||||
update_irq_lines(linestate ? RST10_ASSERT : RST10_CLEAR);
|
|
||||||
}
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER( seibu_sound_device::ym2151_irqhandler )
|
|
||||||
{
|
{
|
||||||
update_irq_lines(state ? RST10_ASSERT : RST10_CLEAR);
|
update_irq_lines(state ? RST10_ASSERT : RST10_CLEAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
void seibu_sound_device::ym2203_irqhandler(int linestate)
|
|
||||||
{
|
|
||||||
update_irq_lines(linestate ? RST10_ASSERT : RST10_CLEAR);
|
|
||||||
}
|
|
||||||
|
|
||||||
WRITE8_MEMBER( seibu_sound_device::bank_w )
|
WRITE8_MEMBER( seibu_sound_device::bank_w )
|
||||||
{
|
{
|
||||||
space.machine().root_device().membank("bank1")->set_entry(data & 1);
|
space.machine().root_device().membank("bank1")->set_entry(data & 1);
|
||||||
|
@ -45,17 +45,13 @@ public:
|
|||||||
|
|
||||||
DECLARE_READ16_MEMBER( main_word_r );
|
DECLARE_READ16_MEMBER( main_word_r );
|
||||||
DECLARE_WRITE16_MEMBER( main_word_w );
|
DECLARE_WRITE16_MEMBER( main_word_w );
|
||||||
|
|
||||||
DECLARE_WRITE16_MEMBER( main_mustb_w );
|
DECLARE_WRITE16_MEMBER( main_mustb_w );
|
||||||
|
|
||||||
DECLARE_WRITE8_MEMBER( irq_clear_w );
|
DECLARE_WRITE8_MEMBER( irq_clear_w );
|
||||||
DECLARE_WRITE8_MEMBER( rst10_ack_w );
|
DECLARE_WRITE8_MEMBER( rst10_ack_w );
|
||||||
DECLARE_WRITE8_MEMBER( rst18_ack_w );
|
DECLARE_WRITE8_MEMBER( rst18_ack_w );
|
||||||
DECLARE_WRITE8_MEMBER( bank_w );
|
DECLARE_WRITE8_MEMBER( bank_w );
|
||||||
DECLARE_WRITE8_MEMBER( coin_w );
|
DECLARE_WRITE8_MEMBER( coin_w );
|
||||||
void ym3812_irqhandler(int linestate);
|
WRITE_LINE_MEMBER( fm_irqhandler );
|
||||||
WRITE_LINE_MEMBER(ym2151_irqhandler);
|
|
||||||
void ym2203_irqhandler(int linestate);
|
|
||||||
DECLARE_READ8_MEMBER( soundlatch_r );
|
DECLARE_READ8_MEMBER( soundlatch_r );
|
||||||
DECLARE_READ8_MEMBER( main_data_pending_r );
|
DECLARE_READ8_MEMBER( main_data_pending_r );
|
||||||
DECLARE_WRITE8_MEMBER( main_data_w );
|
DECLARE_WRITE8_MEMBER( main_data_w );
|
||||||
@ -193,8 +189,8 @@ extern const device_type SEIBU_ADPCM;
|
|||||||
#define SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(freq1,freq2) \
|
#define SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(freq1,freq2) \
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
||||||
\
|
\
|
||||||
MCFG_SOUND_ADD("ymsnd", YM3812, freq1) \
|
MCFG_SOUND_ADD("ymsnd", YM3812, freq1) \
|
||||||
MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, ym3812_irqhandler)) \
|
MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) \
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) \
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) \
|
||||||
\
|
\
|
||||||
MCFG_OKIM6295_ADD("oki", freq2, OKIM6295_PIN7_LOW) \
|
MCFG_OKIM6295_ADD("oki", freq2, OKIM6295_PIN7_LOW) \
|
||||||
@ -203,8 +199,8 @@ extern const device_type SEIBU_ADPCM;
|
|||||||
#define SEIBU_SOUND_SYSTEM_YM3812_RAIDEN_INTERFACE(freq1,freq2) \
|
#define SEIBU_SOUND_SYSTEM_YM3812_RAIDEN_INTERFACE(freq1,freq2) \
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
||||||
\
|
\
|
||||||
MCFG_SOUND_ADD("ymsnd", YM3812, freq1) \
|
MCFG_SOUND_ADD("ymsnd", YM3812, freq1) \
|
||||||
MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, ym3812_irqhandler)) \
|
MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) \
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) \
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) \
|
||||||
\
|
\
|
||||||
MCFG_OKIM6295_ADD("oki", freq2, OKIM6295_PIN7_HIGH) \
|
MCFG_OKIM6295_ADD("oki", freq2, OKIM6295_PIN7_HIGH) \
|
||||||
@ -213,8 +209,8 @@ extern const device_type SEIBU_ADPCM;
|
|||||||
#define SEIBU_SOUND_SYSTEM_YM2151_INTERFACE(freq1,freq2) \
|
#define SEIBU_SOUND_SYSTEM_YM2151_INTERFACE(freq1,freq2) \
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
||||||
\
|
\
|
||||||
MCFG_YM2151_ADD("ymsnd", freq1) \
|
MCFG_YM2151_ADD("ymsnd", freq1) \
|
||||||
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, ym2151_irqhandler)) \
|
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) \
|
||||||
MCFG_SOUND_ROUTE(0, "mono", 0.50) \
|
MCFG_SOUND_ROUTE(0, "mono", 0.50) \
|
||||||
MCFG_SOUND_ROUTE(1, "mono", 0.50) \
|
MCFG_SOUND_ROUTE(1, "mono", 0.50) \
|
||||||
\
|
\
|
||||||
@ -224,16 +220,16 @@ extern const device_type SEIBU_ADPCM;
|
|||||||
#define SEIBU_AIRRAID_SOUND_SYSTEM_YM2151_INTERFACE(freq1) \
|
#define SEIBU_AIRRAID_SOUND_SYSTEM_YM2151_INTERFACE(freq1) \
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
||||||
\
|
\
|
||||||
MCFG_YM2151_ADD("ymsnd", freq1) \
|
MCFG_YM2151_ADD("ymsnd", freq1) \
|
||||||
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, ym2151_irqhandler)) \
|
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) \
|
||||||
MCFG_SOUND_ROUTE(0, "mono", 0.50) \
|
MCFG_SOUND_ROUTE(0, "mono", 0.50) \
|
||||||
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
||||||
|
|
||||||
#define SEIBU_SOUND_SYSTEM_YM2151_RAIDEN2_INTERFACE(freq1,freq2,regiona, regionb) \
|
#define SEIBU_SOUND_SYSTEM_YM2151_RAIDEN2_INTERFACE(freq1, freq2, regiona, regionb) \
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
||||||
\
|
\
|
||||||
MCFG_YM2151_ADD("ymsnd", freq1) \
|
MCFG_YM2151_ADD("ymsnd", freq1) \
|
||||||
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, ym2151_irqhandler)) \
|
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) \
|
||||||
MCFG_SOUND_ROUTE(0, "mono", 0.50) \
|
MCFG_SOUND_ROUTE(0, "mono", 0.50) \
|
||||||
MCFG_SOUND_ROUTE(1, "mono", 0.50) \
|
MCFG_SOUND_ROUTE(1, "mono", 0.50) \
|
||||||
\
|
\
|
||||||
@ -247,7 +243,7 @@ extern const device_type SEIBU_ADPCM;
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
MCFG_SPEAKER_STANDARD_MONO("mono") \
|
||||||
\
|
\
|
||||||
MCFG_SOUND_ADD("ym1", YM2203, freq) \
|
MCFG_SOUND_ADD("ym1", YM2203, freq) \
|
||||||
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, ym2203_irqhandler)) \
|
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) \
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) \
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) \
|
||||||
\
|
\
|
||||||
MCFG_SOUND_ADD("ym2", YM2203, freq) \
|
MCFG_SOUND_ADD("ym2", YM2203, freq) \
|
||||||
@ -255,11 +251,11 @@ extern const device_type SEIBU_ADPCM;
|
|||||||
|
|
||||||
#define SEIBU_SOUND_SYSTEM_ADPCM_INTERFACE \
|
#define SEIBU_SOUND_SYSTEM_ADPCM_INTERFACE \
|
||||||
MCFG_SOUND_ADD("adpcm1", SEIBU_ADPCM, 8000) \
|
MCFG_SOUND_ADD("adpcm1", SEIBU_ADPCM, 8000) \
|
||||||
MCFG_SEIBU_ADPCM_ROMREGION("adpcm1") \
|
MCFG_SEIBU_ADPCM_ROMREGION("adpcm1") \
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) \
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) \
|
||||||
\
|
\
|
||||||
MCFG_SOUND_ADD("adpcm2", SEIBU_ADPCM, 8000) \
|
MCFG_SOUND_ADD("adpcm2", SEIBU_ADPCM, 8000) \
|
||||||
MCFG_SEIBU_ADPCM_ROMREGION("adpcm2") \
|
MCFG_SEIBU_ADPCM_ROMREGION("adpcm2") \
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
@ -178,8 +178,8 @@ class aleck64_state : public n64_state
|
|||||||
public:
|
public:
|
||||||
aleck64_state(const machine_config &mconfig, device_type type, const char *tag)
|
aleck64_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: n64_state(mconfig, type, tag),
|
: n64_state(mconfig, type, tag),
|
||||||
m_e90_vram(*this,"e90vram"),
|
m_e90_vram(*this,"e90vram"),
|
||||||
m_e90_pal(*this,"e90pal"),
|
m_e90_pal(*this,"e90pal"),
|
||||||
m_dip_read_offset(0) { }
|
m_dip_read_offset(0) { }
|
||||||
|
|
||||||
optional_shared_ptr<UINT32> m_e90_vram;
|
optional_shared_ptr<UINT32> m_e90_vram;
|
||||||
@ -342,7 +342,7 @@ WRITE16_MEMBER(aleck64_state::e90_prot_w)
|
|||||||
if(data & 1) // 0 -> 1 transition
|
if(data & 1) // 0 -> 1 transition
|
||||||
{
|
{
|
||||||
//for(int i=0;i<0x1000;i+=4)
|
//for(int i=0;i<0x1000;i+=4)
|
||||||
// space.write_dword(0x007502f4+i,space.read_dword(0xd0000000+i));
|
// space.write_dword(0x007502f4+i,space.read_dword(0xd0000000+i));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
//0x1e bit 0 probably enables the chip
|
//0x1e bit 0 probably enables the chip
|
||||||
|
@ -106,7 +106,6 @@ public:
|
|||||||
required_ioport m_io_in3;
|
required_ioport m_io_in3;
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
required_shared_ptr<UINT32> m_generic_paletteram_32;
|
required_shared_ptr<UINT32> m_generic_paletteram_32;
|
||||||
DECLARE_WRITE_LINE_MEMBER(sound_irq_gen);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//UINT32 *backfire_180010, *backfire_188010;
|
//UINT32 *backfire_180010, *backfire_188010;
|
||||||
@ -439,11 +438,6 @@ static GFXDECODE_START( backfire )
|
|||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(backfire_state::sound_irq_gen)
|
|
||||||
{
|
|
||||||
logerror("sound irq\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
INTERRUPT_GEN_MEMBER(backfire_state::deco32_vbl_interrupt)
|
INTERRUPT_GEN_MEMBER(backfire_state::deco32_vbl_interrupt)
|
||||||
{
|
{
|
||||||
device.execute().set_input_line(ARM_IRQ_LINE, HOLD_LINE);
|
device.execute().set_input_line(ARM_IRQ_LINE, HOLD_LINE);
|
||||||
@ -559,7 +553,6 @@ static MACHINE_CONFIG_START( backfire, backfire_state )
|
|||||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, 28000000 / 2)
|
MCFG_SOUND_ADD("ymz", YMZ280B, 28000000 / 2)
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(backfire_state, sound_irq_gen))
|
|
||||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
@ -610,13 +610,6 @@ MACHINE_START_MEMBER(sc4_state,sc4)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(sc4_state::bfm_sc4_irqhandler)
|
|
||||||
{
|
|
||||||
logerror("YMZ280 is generating an interrupt. State=%08x\n",state);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(sc4_state::bfm_sc4_duart_irq_handler)
|
WRITE_LINE_MEMBER(sc4_state::bfm_sc4_duart_irq_handler)
|
||||||
{
|
{
|
||||||
// triggers after reel tests on luckb, at the start on dnd...
|
// triggers after reel tests on luckb, at the start on dnd...
|
||||||
@ -709,7 +702,6 @@ MACHINE_CONFIG_FRAGMENT( sc4_common )
|
|||||||
// MCFG_DEFAULT_LAYOUT(layout_bfm_sc4)
|
// MCFG_DEFAULT_LAYOUT(layout_bfm_sc4)
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, 16000000) // ?? Mhz
|
MCFG_SOUND_ADD("ymz", YMZ280B, 16000000) // ?? Mhz
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(sc4_state, bfm_sc4_irqhandler))
|
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
@ -186,14 +186,6 @@ WRITE8_MEMBER( bfm_sc5_state::sc5_10202F0_w )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(bfm_sc5_state::bfm_sc5_ym_irqhandler)
|
|
||||||
{
|
|
||||||
logerror("YMZ280 is generating an interrupt. State=%08x\n",state);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(bfm_sc5_state::bfm_sc5_duart_irq_handler)
|
WRITE_LINE_MEMBER(bfm_sc5_state::bfm_sc5_duart_irq_handler)
|
||||||
{
|
{
|
||||||
printf("bfm_sc5_duart_irq_handler\n");
|
printf("bfm_sc5_duart_irq_handler\n");
|
||||||
@ -235,6 +227,5 @@ MACHINE_CONFIG_START( bfm_sc5, bfm_sc5_state )
|
|||||||
MCFG_DEFAULT_LAYOUT(layout_bfm_sc5)
|
MCFG_DEFAULT_LAYOUT(layout_bfm_sc5)
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, 16000000) // ?? Mhz
|
MCFG_SOUND_ADD("ymz", YMZ280B, 16000000) // ?? Mhz
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(bfm_sc5_state, bfm_sc5_ym_irqhandler))
|
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
@ -122,7 +122,6 @@ public:
|
|||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
DECLARE_WRITE_LINE_MEMBER(irqhandler);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
@ -132,12 +131,6 @@ protected:
|
|||||||
virtual void machine_start();
|
virtual void machine_start();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(bfm_swp_state::irqhandler)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
READ32_MEMBER(bfm_swp_state::bfm_swp_mem_r)
|
READ32_MEMBER(bfm_swp_state::bfm_swp_mem_r)
|
||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
@ -218,7 +211,6 @@ static MACHINE_CONFIG_START( bfm_swp, bfm_swp_state )
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, 10000000 )
|
MCFG_SOUND_ADD("ymz", YMZ280B, 10000000 )
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(bfm_swp_state, irqhandler))
|
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
@ -357,12 +357,6 @@ static INPUT_PORTS_START( bishi2p )
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(bishi_state::sound_irq_gen)
|
|
||||||
{
|
|
||||||
m_maincpu->set_input_line(M68K_IRQ_1, (state) ? ASSERT_LINE : CLEAR_LINE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void bishi_state::machine_start()
|
void bishi_state::machine_start()
|
||||||
{
|
{
|
||||||
save_item(NAME(m_cur_control));
|
save_item(NAME(m_cur_control));
|
||||||
@ -413,7 +407,7 @@ static MACHINE_CONFIG_START( bishi, bishi_state )
|
|||||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, SOUND_CLOCK) /* 16.9344MHz */
|
MCFG_SOUND_ADD("ymz", YMZ280B, SOUND_CLOCK) /* 16.9344MHz */
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(bishi_state, sound_irq_gen))
|
MCFG_YMZ280B_IRQ_HANDLER(INPUTLINE("maincpu", M68K_IRQ_1))
|
||||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
@ -1940,7 +1940,7 @@ ROM_START( discof )
|
|||||||
ROM_LOAD( "w3-f.4a", 0xc000, 0x1000, CRC(9aadd252) SHA1(c6da7ef46333d525e676c59f03ccc908108b41ba) )
|
ROM_LOAD( "w3-f.4a", 0xc000, 0x1000, CRC(9aadd252) SHA1(c6da7ef46333d525e676c59f03ccc908108b41ba) )
|
||||||
ROM_LOAD( "w2-f.6a", 0xd000, 0x1000, CRC(f131a5bb) SHA1(84b7dea112dce12e5cb235a13f6dc4edcfb18c06) )
|
ROM_LOAD( "w2-f.6a", 0xd000, 0x1000, CRC(f131a5bb) SHA1(84b7dea112dce12e5cb235a13f6dc4edcfb18c06) )
|
||||||
ROM_LOAD( "w1-f.9a", 0xe000, 0x1000, CRC(a6ce9a19) SHA1(e8f380e17a21fb33504d6efe9d01d0f903fa25e1) )
|
ROM_LOAD( "w1-f.9a", 0xe000, 0x1000, CRC(a6ce9a19) SHA1(e8f380e17a21fb33504d6efe9d01d0f903fa25e1) )
|
||||||
// ROM_LOAD( "w1-f", 0xe000, 0x1000, CRC(c8ec57c5) SHA1(904a9ed0a7f1230c611bf473b9bc52e63eb56dbe) ) // 0x7d3 is 0x10 instead of 0x00, 1 bit different, looks out of place, bad?
|
// ROM_LOAD( "w1-f", 0xe000, 0x1000, CRC(c8ec57c5) SHA1(904a9ed0a7f1230c611bf473b9bc52e63eb56dbe) ) // 0x7d3 is 0x10 instead of 0x00, 1 bit different, looks out of place, bad?
|
||||||
ROM_LOAD( "w0-f.9a", 0xf000, 0x1000, CRC(b3787a92) SHA1(7f40621dc739c1108a5df43142ab04709a380219) )
|
ROM_LOAD( "w0-f.9a", 0xf000, 0x1000, CRC(b3787a92) SHA1(7f40621dc739c1108a5df43142ab04709a380219) )
|
||||||
|
|
||||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||||
|
@ -484,7 +484,7 @@ static MACHINE_CONFIG_START( cabal, cabal_state )
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz) /* verified on pcb */
|
MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz) /* verified on pcb */
|
||||||
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, ym2151_irqhandler))
|
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler))
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.80)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.80)
|
||||||
|
|
||||||
MCFG_SOUND_ADD("adpcm1", SEIBU_ADPCM, 8000) /* it should use the msm5205 */
|
MCFG_SOUND_ADD("adpcm1", SEIBU_ADPCM, 8000) /* it should use the msm5205 */
|
||||||
|
@ -154,7 +154,7 @@ public:
|
|||||||
: dynax_state(mconfig, type, tag),
|
: dynax_state(mconfig, type, tag),
|
||||||
m_dsw_sel16(*this, "dsw_sel16"),
|
m_dsw_sel16(*this, "dsw_sel16"),
|
||||||
m_protection1(*this, "protection1"),
|
m_protection1(*this, "protection1"),
|
||||||
m_protection2(*this, "protection2") { }
|
m_protection2(*this, "protection2") { }
|
||||||
|
|
||||||
|
|
||||||
optional_shared_ptr<UINT16> m_dsw_sel16;
|
optional_shared_ptr<UINT16> m_dsw_sel16;
|
||||||
|
@ -66,7 +66,6 @@ public:
|
|||||||
UINT32 screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||||
INTERRUPT_GEN_MEMBER(deco32_vbl_interrupt);
|
INTERRUPT_GEN_MEMBER(deco32_vbl_interrupt);
|
||||||
void descramble_sound( const char *tag );
|
void descramble_sound( const char *tag );
|
||||||
DECLARE_WRITE_LINE_MEMBER(sound_irq_gen);
|
|
||||||
DECO16IC_BANK_CB_MEMBER(bank_callback);
|
DECO16IC_BANK_CB_MEMBER(bank_callback);
|
||||||
DECOSPR_PRIORITY_CB_MEMBER(pri_callback);
|
DECOSPR_PRIORITY_CB_MEMBER(pri_callback);
|
||||||
};
|
};
|
||||||
@ -315,11 +314,6 @@ GFXDECODE_END
|
|||||||
|
|
||||||
/**********************************************************************************/
|
/**********************************************************************************/
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(deco156_state::sound_irq_gen)
|
|
||||||
{
|
|
||||||
logerror("sound irq\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
INTERRUPT_GEN_MEMBER(deco156_state::deco32_vbl_interrupt)
|
INTERRUPT_GEN_MEMBER(deco156_state::deco32_vbl_interrupt)
|
||||||
{
|
{
|
||||||
device.execute().set_input_line(ARM_IRQ_LINE, HOLD_LINE);
|
device.execute().set_input_line(ARM_IRQ_LINE, HOLD_LINE);
|
||||||
@ -441,7 +435,6 @@ static MACHINE_CONFIG_START( wcvol95, deco156_state )
|
|||||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, 28000000 / 2)
|
MCFG_SOUND_ADD("ymz", YMZ280B, 28000000 / 2)
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(deco156_state, sound_irq_gen))
|
|
||||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
@ -356,7 +356,7 @@ ADDRESS_MAP_END
|
|||||||
static ADDRESS_MAP_START( flashbank_map, AS_PROGRAM, 32, funkball_state )
|
static ADDRESS_MAP_START( flashbank_map, AS_PROGRAM, 32, funkball_state )
|
||||||
AM_RANGE(0x00000000, 0x003fffff) AM_DEVREADWRITE16("u29", intel_28f320j5_device, read, write, 0xffffffff ) // needed to boot
|
AM_RANGE(0x00000000, 0x003fffff) AM_DEVREADWRITE16("u29", intel_28f320j5_device, read, write, 0xffffffff ) // needed to boot
|
||||||
AM_RANGE(0x00400000, 0x007fffff) AM_DEVREADWRITE16("u30", intel_28f320j5_device, read, write, 0xffffffff ) // i assume it maps directly after
|
AM_RANGE(0x00400000, 0x007fffff) AM_DEVREADWRITE16("u30", intel_28f320j5_device, read, write, 0xffffffff ) // i assume it maps directly after
|
||||||
// AM_RANGE(0x02000000, 0x023fffff) AM_DEVREADWRITE16("u3", intel_28f320j5_device, read, write, 0xffffffff ) // sound program, don't think it matters where we map it, might not even be visible in this space
|
// AM_RANGE(0x02000000, 0x023fffff) AM_DEVREADWRITE16("u3", intel_28f320j5_device, read, write, 0xffffffff ) // sound program, don't think it matters where we map it, might not even be visible in this space
|
||||||
/* it checks for 64MBit chips at 0x80000000 the way things are set up, they must return an intel Flash ID of 0x15 */
|
/* it checks for 64MBit chips at 0x80000000 the way things are set up, they must return an intel Flash ID of 0x15 */
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
@ -1499,8 +1499,8 @@ static ADDRESS_MAP_START( spactrai_map, AS_PROGRAM, 8, galaxian_state )
|
|||||||
AM_RANGE(0x1200, 0x12ff) AM_MIRROR(0x0100) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram")
|
AM_RANGE(0x1200, 0x12ff) AM_MIRROR(0x0100) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram")
|
||||||
AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x03ff) AM_READ(watchdog_reset_r)
|
AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x03ff) AM_READ(watchdog_reset_r)
|
||||||
AM_RANGE(0x4000, 0xbfff) AM_ROM
|
AM_RANGE(0x4000, 0xbfff) AM_ROM
|
||||||
// AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x3efc) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
|
// AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x3efc) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
|
||||||
// AM_RANGE(0xc100, 0xc103) AM_MIRROR(0x3efc) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
|
// AM_RANGE(0xc100, 0xc103) AM_MIRROR(0x3efc) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( anteaterg_map, AS_PROGRAM, 8, galaxian_state )
|
static ADDRESS_MAP_START( anteaterg_map, AS_PROGRAM, 8, galaxian_state )
|
||||||
|
@ -427,13 +427,13 @@ static ADDRESS_MAP_START( video_map, AS_PROGRAM, 8, caveman_state )
|
|||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( video_io_map, AS_IO, 8, caveman_state )
|
static ADDRESS_MAP_START( video_io_map, AS_IO, 8, caveman_state )
|
||||||
// AM_RANGE(0x000, 0x002) AM_READWRITE() // 8259 irq controller
|
// AM_RANGE(0x000, 0x002) AM_READWRITE() // 8259 irq controller
|
||||||
// AM_RANGE(0x100, 0x102) AM_READWRITE() // HD46505
|
// AM_RANGE(0x100, 0x102) AM_READWRITE() // HD46505
|
||||||
// AM_RANGE(0x200, 0x200) AM_READWRITE() // 8212 in, ?? out
|
// AM_RANGE(0x200, 0x200) AM_READWRITE() // 8212 in, ?? out
|
||||||
// AM_RANGE(0x300, 0x300) AM_READWRITE() // soundlatch (command?) in, ?? out
|
// AM_RANGE(0x300, 0x300) AM_READWRITE() // soundlatch (command?) in, ?? out
|
||||||
|
|
||||||
// AM_RANGE(0x400, 0x400) AM_READ() // joystick inputs
|
// AM_RANGE(0x400, 0x400) AM_READ() // joystick inputs
|
||||||
// AM_RANGE(0x500, 0x506) AM_WRITE() // palette
|
// AM_RANGE(0x500, 0x506) AM_WRITE() // palette
|
||||||
|
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
@ -263,8 +263,6 @@ public:
|
|||||||
|
|
||||||
int write_dest_byte(UINT8 usedata);
|
int write_dest_byte(UINT8 usedata);
|
||||||
//UINT16 main_m_vram[0x800][0x800];
|
//UINT16 main_m_vram[0x800][0x800];
|
||||||
|
|
||||||
DECLARE_WRITE_LINE_MEMBER(sound_irq_gen);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1314,15 +1312,6 @@ static ADDRESS_MAP_START( io_map, AS_IO, 16, gunpey_state )
|
|||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(gunpey_state::sound_irq_gen)
|
|
||||||
{
|
|
||||||
logerror("sound irq\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************************/
|
/***************************************************************************************/
|
||||||
|
|
||||||
static INPUT_PORTS_START( gunpey )
|
static INPUT_PORTS_START( gunpey )
|
||||||
@ -1467,7 +1456,6 @@ static MACHINE_CONFIG_START( gunpey, gunpey_state )
|
|||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25)
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
|
MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(gunpey_state, sound_irq_gen))
|
|
||||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
|
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
|
||||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.25)
|
MCFG_SOUND_ROUTE(1, "rspeaker", 0.25)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
@ -50,7 +50,6 @@ protected:
|
|||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
public:
|
public:
|
||||||
DECLARE_DRIVER_INIT(maygayep);
|
DECLARE_DRIVER_INIT(maygayep);
|
||||||
DECLARE_WRITE_LINE_MEMBER(irqhandler);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// bp 29e58 in ep_simp reads the 'INITIALISE . . .' string
|
// bp 29e58 in ep_simp reads the 'INITIALISE . . .' string
|
||||||
@ -101,11 +100,6 @@ DRIVER_INIT_MEMBER(maygayep_state,maygayep)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(maygayep_state::irqhandler)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( maygayep, maygayep_state )
|
static MACHINE_CONFIG_START( maygayep, maygayep_state )
|
||||||
MCFG_CPU_ADD("maincpu", H83002, 16000000 )
|
MCFG_CPU_ADD("maincpu", H83002, 16000000 )
|
||||||
MCFG_CPU_PROGRAM_MAP( maygayep_map )
|
MCFG_CPU_PROGRAM_MAP( maygayep_map )
|
||||||
@ -113,7 +107,6 @@ static MACHINE_CONFIG_START( maygayep, maygayep_state )
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, 10000000 )
|
MCFG_SOUND_ADD("ymz", YMZ280B, 10000000 )
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(maygayep_state, irqhandler))
|
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
@ -85,7 +85,6 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
UINT32 screen_update_midas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update_midas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||||
DECLARE_WRITE_LINE_MEMBER(livequiz_irqhandler);
|
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<eeprom_serial_93cxx_device> m_eeprom;
|
required_device<eeprom_serial_93cxx_device> m_eeprom;
|
||||||
required_device<gfxdecode_device> m_gfxdecode;
|
required_device<gfxdecode_device> m_gfxdecode;
|
||||||
@ -607,15 +606,6 @@ void midas_state::machine_reset()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(midas_state::livequiz_irqhandler)
|
|
||||||
{
|
|
||||||
logerror("YMZ280 is generating an interrupt. State=%08x\n",state);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void midas_state::screen_eof_midas(screen_device &screen, bool state)
|
void midas_state::screen_eof_midas(screen_device &screen, bool state)
|
||||||
{
|
{
|
||||||
if (state) m_sprgen->buffer_vram();
|
if (state) m_sprgen->buffer_vram();
|
||||||
@ -647,7 +637,6 @@ static MACHINE_CONFIG_START( livequiz, midas_state )
|
|||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
|
MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(midas_state, livequiz_irqhandler))
|
|
||||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.80)
|
MCFG_SOUND_ROUTE(0, "lspeaker", 0.80)
|
||||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
|
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
@ -681,7 +670,6 @@ static MACHINE_CONFIG_START( hammer, midas_state )
|
|||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
|
MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(midas_state, livequiz_irqhandler))
|
|
||||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.80)
|
MCFG_SOUND_ROUTE(0, "lspeaker", 0.80)
|
||||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
|
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
@ -2491,7 +2491,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( model2a_0229, model2a )
|
static MACHINE_CONFIG_DERIVED( model2a_0229, model2a )
|
||||||
MCFG_DEVICE_ADD("317_0229", SEGA315_5838_COMP, 0)
|
MCFG_DEVICE_ADD("317_0229", SEGA315_5838_COMP, 0)
|
||||||
// MCFG_SET_5838_READ_CALLBACK(model2_state, crypt_read_callback)
|
// MCFG_SET_5838_READ_CALLBACK(model2_state, crypt_read_callback)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
READ8_MEMBER(model2_state::driveio_port_r)
|
READ8_MEMBER(model2_state::driveio_port_r)
|
||||||
@ -2599,7 +2599,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( model2b_0229, model2b )
|
static MACHINE_CONFIG_DERIVED( model2b_0229, model2b )
|
||||||
MCFG_DEVICE_ADD("317_0229", SEGA315_5838_COMP, 0)
|
MCFG_DEVICE_ADD("317_0229", SEGA315_5838_COMP, 0)
|
||||||
// MCFG_SET_5838_READ_CALLBACK(model2_state, crypt_read_callback)
|
// MCFG_SET_5838_READ_CALLBACK(model2_state, crypt_read_callback)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -5947,7 +5947,7 @@ WRITE32_MEMBER(model2_state::jaleco_network_w)
|
|||||||
|
|
||||||
DRIVER_INIT_MEMBER(model2_state,sgt24h)
|
DRIVER_INIT_MEMBER(model2_state,sgt24h)
|
||||||
{
|
{
|
||||||
// DRIVER_INIT_CALL(genprot);
|
// DRIVER_INIT_CALL(genprot);
|
||||||
|
|
||||||
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x01a10000, 0x01a1ffff, read32_delegate(FUNC(model2_state::jaleco_network_r),this), write32_delegate(FUNC(model2_state::jaleco_network_w),this));
|
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x01a10000, 0x01a1ffff, read32_delegate(FUNC(model2_state::jaleco_network_r),this), write32_delegate(FUNC(model2_state::jaleco_network_w),this));
|
||||||
|
|
||||||
|
@ -1696,11 +1696,11 @@ READ64_MEMBER(model3_state::model3_5881prot_r)
|
|||||||
{
|
{
|
||||||
UINT8* base;
|
UINT8* base;
|
||||||
retvalue = m_cryptdevice->do_decrypt(base);
|
retvalue = m_cryptdevice->do_decrypt(base);
|
||||||
// retvalue = ((retvalue & 0xff00) >> 8) | ((retvalue & 0x00ff) << 8); // don't endian swap the return value on this hardware
|
// retvalue = ((retvalue & 0xff00) >> 8) | ((retvalue & 0x00ff) << 8); // don't endian swap the return value on this hardware
|
||||||
retvalue <<= 16;
|
retvalue <<= 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
// printf("model3_5881prot_r offset %08x : %08x%08x (%08x%08x)\n", offset * 8, (UINT32)(retvalue >> 32), (UINT32)(retvalue & 0xffffffff), (UINT32)(mem_mask >> 32), (UINT32)(mem_mask & 0xffffffff));
|
// printf("model3_5881prot_r offset %08x : %08x%08x (%08x%08x)\n", offset * 8, (UINT32)(retvalue >> 32), (UINT32)(retvalue & 0xffffffff), (UINT32)(mem_mask >> 32), (UINT32)(mem_mask & 0xffffffff));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -5584,8 +5584,8 @@ UINT16 model3_state::crypt_read_callback(UINT32 addr)
|
|||||||
dat = m_maincpu->space().read_word((0xf0180000 + 4 * addr)); // every other word is unused in this RAM, probably 32-bit ram on 64-bit bus?
|
dat = m_maincpu->space().read_word((0xf0180000 + 4 * addr)); // every other word is unused in this RAM, probably 32-bit ram on 64-bit bus?
|
||||||
}
|
}
|
||||||
|
|
||||||
// dat = ((dat & 0xff00) >> 8) | ((dat & 0x00ff) << 8);
|
// dat = ((dat & 0xff00) >> 8) | ((dat & 0x00ff) << 8);
|
||||||
// printf("reading %04x\n", dat);
|
// printf("reading %04x\n", dat);
|
||||||
|
|
||||||
return dat;
|
return dat;
|
||||||
}
|
}
|
||||||
@ -5629,7 +5629,7 @@ static void interleave_vroms(running_machine &machine)
|
|||||||
|
|
||||||
DRIVER_INIT_MEMBER(model3_state, genprot)
|
DRIVER_INIT_MEMBER(model3_state, genprot)
|
||||||
{
|
{
|
||||||
// astring key = parameter(":315_5881:key");
|
// astring key = parameter(":315_5881:key");
|
||||||
|
|
||||||
m_maincpu->space(AS_PROGRAM).install_ram(0xf0180000, 0xf019ffff, 0, 0x0e000000);
|
m_maincpu->space(AS_PROGRAM).install_ram(0xf0180000, 0xf019ffff, 0, 0x0e000000);
|
||||||
|
|
||||||
@ -5846,7 +5846,6 @@ DRIVER_INIT_MEMBER(model3_state,srally2)
|
|||||||
|
|
||||||
DRIVER_INIT_MEMBER(model3_state,swtrilgy)
|
DRIVER_INIT_MEMBER(model3_state,swtrilgy)
|
||||||
{
|
{
|
||||||
|
|
||||||
UINT32 *rom = (UINT32*)memregion("user1")->base();
|
UINT32 *rom = (UINT32*)memregion("user1")->base();
|
||||||
DRIVER_INIT_CALL(model3_20);
|
DRIVER_INIT_CALL(model3_20);
|
||||||
|
|
||||||
@ -5890,7 +5889,7 @@ DRIVER_INIT_MEMBER(model3_state,dirtdvls)
|
|||||||
|
|
||||||
DRIVER_INIT_MEMBER(model3_state,daytona2)
|
DRIVER_INIT_MEMBER(model3_state,daytona2)
|
||||||
{
|
{
|
||||||
// UINT32 *rom = (UINT32*)memregion("user1")->base();
|
// UINT32 *rom = (UINT32*)memregion("user1")->base();
|
||||||
DRIVER_INIT_CALL(model3_20);
|
DRIVER_INIT_CALL(model3_20);
|
||||||
|
|
||||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(FUNC(model3_state::daytona2_rombank_w),this));
|
m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(FUNC(model3_state::daytona2_rombank_w),this));
|
||||||
@ -5906,17 +5905,17 @@ DRIVER_INIT_MEMBER(model3_state,daytona2)
|
|||||||
|
|
||||||
DRIVER_INIT_MEMBER(model3_state,dayto2pe)
|
DRIVER_INIT_MEMBER(model3_state,dayto2pe)
|
||||||
{
|
{
|
||||||
// UINT32 *rom = (UINT32*)memregion("user1")->base();
|
// UINT32 *rom = (UINT32*)memregion("user1")->base();
|
||||||
DRIVER_INIT_CALL(model3_20);
|
DRIVER_INIT_CALL(model3_20);
|
||||||
|
|
||||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(FUNC(model3_state::daytona2_rombank_w),this));
|
m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(FUNC(model3_state::daytona2_rombank_w),this));
|
||||||
m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2" );
|
m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2" );
|
||||||
|
|
||||||
// rom[(0x606784^4)/4] = 0x60000000;
|
// rom[(0x606784^4)/4] = 0x60000000;
|
||||||
// rom[(0x69a3fc^4)/4] = 0x60000000; // jump to encrypted code
|
// rom[(0x69a3fc^4)/4] = 0x60000000; // jump to encrypted code
|
||||||
// rom[(0x618b28^4)/4] = 0x60000000; // jump to encrypted code
|
// rom[(0x618b28^4)/4] = 0x60000000; // jump to encrypted code
|
||||||
|
|
||||||
// rom[(0x64ca34^4)/4] = 0x60000000; // dec
|
// rom[(0x64ca34^4)/4] = 0x60000000; // dec
|
||||||
|
|
||||||
DRIVER_INIT_CALL(genprot);
|
DRIVER_INIT_CALL(genprot);
|
||||||
}
|
}
|
||||||
|
@ -3780,12 +3780,6 @@ static GFXDECODE_START( atombjt )
|
|||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(nmk16_state::ym2203_irqhandler)
|
|
||||||
{
|
|
||||||
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
----
|
----
|
||||||
|
|
||||||
@ -3894,7 +3888,7 @@ static MACHINE_CONFIG_START( tharrier, nmk16_state )
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
|
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
|
||||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(nmk16_state, ym2203_irqhandler))
|
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||||
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
||||||
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
||||||
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
||||||
@ -4421,7 +4415,7 @@ static MACHINE_CONFIG_START( macross2, nmk16_state )
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
|
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
|
||||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(nmk16_state, ym2203_irqhandler))
|
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||||
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
||||||
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
||||||
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
||||||
@ -4464,7 +4458,7 @@ static MACHINE_CONFIG_START( tdragon2, nmk16_state )
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
|
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
|
||||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(nmk16_state, ym2203_irqhandler))
|
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||||
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
||||||
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
||||||
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
||||||
@ -4506,7 +4500,7 @@ static MACHINE_CONFIG_START( raphero, nmk16_state )
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
|
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
|
||||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(nmk16_state, ym2203_irqhandler))
|
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||||
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
||||||
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
||||||
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
||||||
@ -4636,7 +4630,7 @@ static MACHINE_CONFIG_START( manybloc, nmk16_state )
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
|
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
|
||||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(nmk16_state, ym2203_irqhandler))
|
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||||
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
||||||
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
||||||
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
||||||
|
@ -947,4 +947,3 @@ ROM_END
|
|||||||
GAME( 1987, psychic5, 0, psychic5, psychic5, driver_device, 0, ROT270, "Jaleco / NMK", "Psychic 5 (World)", 0 ) // "Oversea's version V2.00 CHANGED BY TAMIO NAKASATO" text present in ROM, various modifications (English names, more complete attract demo etc.)
|
GAME( 1987, psychic5, 0, psychic5, psychic5, driver_device, 0, ROT270, "Jaleco / NMK", "Psychic 5 (World)", 0 ) // "Oversea's version V2.00 CHANGED BY TAMIO NAKASATO" text present in ROM, various modifications (English names, more complete attract demo etc.)
|
||||||
GAME( 1987, psychic5j, psychic5, psychic5, psychic5, driver_device, 0, ROT270, "Jaleco / NMK", "Psychic 5 (Japan)", 0 )
|
GAME( 1987, psychic5j, psychic5, psychic5, psychic5, driver_device, 0, ROT270, "Jaleco / NMK", "Psychic 5 (Japan)", 0 )
|
||||||
GAME( 1988, bombsa, 0, bombsa, bombsa, driver_device, 0, ROT270, "Jaleco", "Bombs Away", GAME_NOT_WORKING )
|
GAME( 1988, bombsa, 0, bombsa, bombsa, driver_device, 0, ROT270, "Jaleco", "Bombs Away", GAME_NOT_WORKING )
|
||||||
|
|
||||||
|
@ -1584,7 +1584,7 @@ static INPUT_PORTS_START( reelquak )
|
|||||||
PORT_DIPSETTING( 0x0040, DEF_STR( 1C_5C ) )
|
PORT_DIPSETTING( 0x0040, DEF_STR( 1C_5C ) )
|
||||||
PORT_DIPSETTING( 0x0000, "1 Coin/10 Credits" )
|
PORT_DIPSETTING( 0x0000, "1 Coin/10 Credits" )
|
||||||
|
|
||||||
PORT_START("DSW2") // $400302.w PORT_START("DSW2") // $400302.w
|
PORT_START("DSW2") // $400302.w PORT_START("DSW2") // $400302.w
|
||||||
PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1") // used
|
PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1") // used
|
||||||
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
@ -514,7 +514,7 @@ static MACHINE_CONFIG_START( kothello, shanghai_state )
|
|||||||
|
|
||||||
/* same as standard seibu ym2203, but "ym1" also reads "DSW" */
|
/* same as standard seibu ym2203, but "ym1" also reads "DSW" */
|
||||||
MCFG_SOUND_ADD("ym1", YM2203, XTAL_16MHz/4)
|
MCFG_SOUND_ADD("ym1", YM2203, XTAL_16MHz/4)
|
||||||
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, ym2203_irqhandler))
|
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler))
|
||||||
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW"))
|
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW"))
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
|
||||||
|
|
||||||
|
@ -388,5 +388,5 @@ ROM_START( silkroada )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
GAME( 1999, silkroad, 0, silkroad, silkroad, driver_device, 0, ROT0, "Unico", "The Legend of Silkroad", 0 )
|
GAME( 1999, silkroad, 0, silkroad, silkroad, driver_device, 0, ROT0, "Unico", "The Legend of Silkroad", GAME_SUPPORTS_SAVE )
|
||||||
GAME( 1999, silkroada, silkroad, silkroad, silkroad, driver_device, 0, ROT0, "Unico", "The Legend of Silkroad (larger ROMs)", 0 ) // same content but fewer GFX roms of a larger size
|
GAME( 1999, silkroada, silkroad, silkroad, silkroad, driver_device, 0, ROT0, "Unico", "The Legend of Silkroad (larger ROMs)", GAME_SUPPORTS_SAVE ) // same content but fewer GFX roms of a larger size
|
||||||
|
@ -226,7 +226,7 @@ ROM_END
|
|||||||
MS06 M8 74s287 missile animated graphics
|
MS06 M8 74s287 missile animated graphics
|
||||||
MS05 11F IM5610 200pt tank R->L graphic
|
MS05 11F IM5610 200pt tank R->L graphic
|
||||||
MS05 11E IM5610 200pt tank L->R graphic
|
MS05 11E IM5610 200pt tank L->R graphic
|
||||||
MS04 N7 IM5610 player missile trajectory pattern
|
MS04 N7 IM5610 player missile trajectory pattern
|
||||||
MS03 F3 IM5610 anti-missile ack-ack graphics
|
MS03 F3 IM5610 anti-missile ack-ack graphics
|
||||||
MS02 L12 IM5610 missile left/right position
|
MS02 L12 IM5610 missile left/right position
|
||||||
MS01 D8 IM5610 100pt tanks graphics
|
MS01 D8 IM5610 100pt tanks graphics
|
||||||
|
@ -3049,13 +3049,6 @@ static GFXDECODE_START( fixeightbl )
|
|||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(toaplan2_state::bbakraid_irqhandler)
|
|
||||||
{
|
|
||||||
// Not used ??? Connected to a test pin (TP082)
|
|
||||||
logerror("YMZ280 is generating an interrupt. State=%08x\n",state);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( tekipaki, toaplan2_state )
|
static MACHINE_CONFIG_START( tekipaki, toaplan2_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
@ -4003,7 +3996,7 @@ static MACHINE_CONFIG_START( bbakraid, toaplan2_state )
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
|
MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(toaplan2_state, bbakraid_irqhandler))
|
// IRQ not used ??? Connected to a test pin (TP082)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
@ -669,13 +669,13 @@ WRITE16_MEMBER(twinkle_state::serial_w)
|
|||||||
|
|
||||||
WRITE8_MEMBER(twinkle_state::shared_psx_w)
|
WRITE8_MEMBER(twinkle_state::shared_psx_w)
|
||||||
{
|
{
|
||||||
// printf("shared_psx_w: %04x, %04x, %04x\n", offset, data, mem_mask);
|
// printf("shared_psx_w: %04x, %04x, %04x\n", offset, data, mem_mask);
|
||||||
|
|
||||||
m_spu_shared[offset] = data;
|
m_spu_shared[offset] = data;
|
||||||
|
|
||||||
if (offset == 0x03fe && data == 0xff)
|
if (offset == 0x03fe && data == 0xff)
|
||||||
{
|
{
|
||||||
// printf("spu command %02x %02x\n", m_spu_shared[1], m_spu_shared[3]);
|
// printf("spu command %02x %02x\n", m_spu_shared[1], m_spu_shared[3]);
|
||||||
|
|
||||||
m_audiocpu->set_input_line(M68K_IRQ_4, HOLD_LINE);
|
m_audiocpu->set_input_line(M68K_IRQ_4, HOLD_LINE);
|
||||||
}
|
}
|
||||||
@ -808,21 +808,21 @@ READ16_MEMBER(twinkle_state::shared_68k_r)
|
|||||||
{
|
{
|
||||||
UINT16 result = m_spu_shared[offset];
|
UINT16 result = m_spu_shared[offset];
|
||||||
|
|
||||||
// printf("shared_68k_r: %04x, %04x, %04x\n", offset, result, mem_mask);
|
// printf("shared_68k_r: %04x, %04x, %04x\n", offset, result, mem_mask);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_MEMBER(twinkle_state::shared_68k_w)
|
WRITE16_MEMBER(twinkle_state::shared_68k_w)
|
||||||
{
|
{
|
||||||
// printf("shared_68k_w: %04x, %04x, %04x\n", offset, data, mem_mask);
|
// printf("shared_68k_w: %04x, %04x, %04x\n", offset, data, mem_mask);
|
||||||
|
|
||||||
m_spu_shared[offset] = data & 0xff;
|
m_spu_shared[offset] = data & 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
READ16_MEMBER(twinkle_state::unk_68k_r)
|
READ16_MEMBER(twinkle_state::unk_68k_r)
|
||||||
{
|
{
|
||||||
return 0xffff; // must return 0xff for 68000 POST to complete properly
|
return 0xffff; // must return 0xff for 68000 POST to complete properly
|
||||||
}
|
}
|
||||||
|
|
||||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, twinkle_state )
|
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, twinkle_state )
|
||||||
@ -840,7 +840,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, twinkle_state )
|
|||||||
AM_RANGE(0x34000e, 0x34000f) AM_WRITENOP
|
AM_RANGE(0x34000e, 0x34000f) AM_WRITENOP
|
||||||
AM_RANGE(0x400000, 0x400fff) AM_DEVREADWRITE("rfsnd", rf5c400_device, rf5c400_r, rf5c400_w)
|
AM_RANGE(0x400000, 0x400fff) AM_DEVREADWRITE("rfsnd", rf5c400_device, rf5c400_r, rf5c400_w)
|
||||||
AM_RANGE(0x800000, 0xbfffff) AM_READWRITE(twinkle_waveram_r, twinkle_waveram_w )
|
AM_RANGE(0x800000, 0xbfffff) AM_READWRITE(twinkle_waveram_r, twinkle_waveram_w )
|
||||||
AM_RANGE(0xfe0000, 0xffffff) AM_RAM // ...and the RAM test checks this last 128k (mirror of the work RAM at 0x100000?)
|
AM_RANGE(0xfe0000, 0xffffff) AM_RAM // ...and the RAM test checks this last 128k (mirror of the work RAM at 0x100000?)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
/* SCSI */
|
/* SCSI */
|
||||||
|
@ -795,17 +795,17 @@ ROM_START( tx1 )
|
|||||||
ROM_REGION( 0x10000, "audio_cpu", 0 )
|
ROM_REGION( 0x10000, "audio_cpu", 0 )
|
||||||
ROM_LOAD( "8411-136027-157.11", 0x00000, 0x2000, CRC(10ae3075) SHA1(69c5f62f2473aba848383eed3cecf15e273d86ca) )
|
ROM_LOAD( "8411-136027-157.11", 0x00000, 0x2000, CRC(10ae3075) SHA1(69c5f62f2473aba848383eed3cecf15e273d86ca) )
|
||||||
|
|
||||||
ROM_REGION( 0x20000, "char_tiles", 0 )
|
ROM_REGION( 0x8000, "char_tiles", 0 )
|
||||||
ROM_LOAD( "8411-136027-156.204", 0x0000, 0x4000, CRC(60f3c616) SHA1(59c4361891e4274e27e6279c919e8fd6803af7cf) )
|
ROM_LOAD( "8411-136027-156.204", 0x0000, 0x4000, CRC(60f3c616) SHA1(59c4361891e4274e27e6279c919e8fd6803af7cf) )
|
||||||
ROM_LOAD( "8411-136027-155.174", 0x4000, 0x4000, CRC(e59a6b72) SHA1(c10efa77ab421ac60b97227a8d547f50f8415670) )
|
ROM_LOAD( "8411-136027-155.174", 0x4000, 0x4000, CRC(e59a6b72) SHA1(c10efa77ab421ac60b97227a8d547f50f8415670) )
|
||||||
|
|
||||||
ROM_REGION( 0x40000, "obj_tiles", 0 )
|
ROM_REGION( 0x10000, "obj_tiles", 0 )
|
||||||
ROM_LOAD( "8411-136027-114.203", 0x0000, 0x4000, CRC(fc91328b) SHA1(e57fd2056b65d37cf2e1f0af56616c6555df3006) )
|
ROM_LOAD( "8411-136027-114.203", 0x0000, 0x4000, CRC(fc91328b) SHA1(e57fd2056b65d37cf2e1f0af56616c6555df3006) )
|
||||||
ROM_LOAD( "8411-136027-116.258", 0x4000, 0x4000, CRC(5745f671) SHA1(6e471633cd6de9926b3361a84430c088e1f6a097) )
|
ROM_LOAD( "8411-136027-116.258", 0x4000, 0x4000, CRC(5745f671) SHA1(6e471633cd6de9926b3361a84430c088e1f6a097) )
|
||||||
ROM_LOAD( "8411-136027-115.173", 0x8000, 0x4000, CRC(720e5873) SHA1(151d9063c35b26f5876cf94bdf0c2665ec701bbd) )
|
ROM_LOAD( "8411-136027-115.173", 0x8000, 0x4000, CRC(720e5873) SHA1(151d9063c35b26f5876cf94bdf0c2665ec701bbd) )
|
||||||
ROM_LOAD( "8411-136027-117.232", 0xc000, 0x4000, CRC(3c68d0bc) SHA1(2dbaf2a268b90214fd61c016ac945d4371057826) )
|
ROM_LOAD( "8411-136027-117.232", 0xc000, 0x4000, CRC(3c68d0bc) SHA1(2dbaf2a268b90214fd61c016ac945d4371057826) )
|
||||||
|
|
||||||
ROM_REGION( 0x40000, "gfx3", 0 )
|
ROM_REGION( 0x6000, "road", 0 )
|
||||||
ROM_LOAD( "8411-136027-146.56", 0x0000, 0x2000, CRC(5635b8c1) SHA1(5cc9437a2ff0843f1917f2451852d4561c240b24) )
|
ROM_LOAD( "8411-136027-146.56", 0x0000, 0x2000, CRC(5635b8c1) SHA1(5cc9437a2ff0843f1917f2451852d4561c240b24) )
|
||||||
ROM_LOAD( "8411-136027-147.66", 0x2000, 0x2000, CRC(03d83cf8) SHA1(5c0cfc6bf02ad2b3f37e1ceb493f69eb9829ab1e) )
|
ROM_LOAD( "8411-136027-147.66", 0x2000, 0x2000, CRC(03d83cf8) SHA1(5c0cfc6bf02ad2b3f37e1ceb493f69eb9829ab1e) )
|
||||||
ROM_LOAD( "8411-136027-148.76", 0x4000, 0x2000, CRC(ad56013a) SHA1(ae3a91f58f30daff334754476db33ad1d12569fc) )
|
ROM_LOAD( "8411-136027-148.76", 0x4000, 0x2000, CRC(ad56013a) SHA1(ae3a91f58f30daff334754476db33ad1d12569fc) )
|
||||||
@ -816,11 +816,11 @@ ROM_START( tx1 )
|
|||||||
ROM_LOAD16_BYTE( "136027-143.ic223", 0x8000, 0x0200, CRC(22c77af6) SHA1(1be8585b95316b4fc5712cdaef699e676320cd4d) )
|
ROM_LOAD16_BYTE( "136027-143.ic223", 0x8000, 0x0200, CRC(22c77af6) SHA1(1be8585b95316b4fc5712cdaef699e676320cd4d) )
|
||||||
ROM_LOAD16_BYTE( "136027-142.ic213", 0x8001, 0x0200, CRC(f6b8b70b) SHA1(b79374acf11d71db1e4ad3c494ac5f500a52677b) )
|
ROM_LOAD16_BYTE( "136027-142.ic213", 0x8001, 0x0200, CRC(f6b8b70b) SHA1(b79374acf11d71db1e4ad3c494ac5f500a52677b) )
|
||||||
|
|
||||||
ROM_REGION( 0x50000, "obj_map", 0 )
|
ROM_REGION( 0x8000, "obj_map", 0 )
|
||||||
ROM_LOAD( "8411-136027-119.106", 0x0000, 0x4000, CRC(88eec0fb) SHA1(81d7a69dc1a4b3b81d7f28d97a3f80697cdcc6eb) )
|
ROM_LOAD( "8411-136027-119.106", 0x0000, 0x4000, CRC(88eec0fb) SHA1(81d7a69dc1a4b3b81d7f28d97a3f80697cdcc6eb) )
|
||||||
ROM_LOAD( "8411-136027-120.73", 0x4000, 0x4000, CRC(407cbe65) SHA1(e1c11b65f3c6abde6d55afeaffdb39cdd6d66377) )
|
ROM_LOAD( "8411-136027-120.73", 0x4000, 0x4000, CRC(407cbe65) SHA1(e1c11b65f3c6abde6d55afeaffdb39cdd6d66377) )
|
||||||
|
|
||||||
ROM_REGION( 0x50000, "user3", 0 )
|
ROM_REGION( 0x6000, "obj_luts", 0 )
|
||||||
ROM_LOAD( "8411-136027-113.48", 0x0000, 0x2000, CRC(4b3d7956) SHA1(fc2432dd69f3be7007d4fd6f7c86c7c19453b1ba) )
|
ROM_LOAD( "8411-136027-113.48", 0x0000, 0x2000, CRC(4b3d7956) SHA1(fc2432dd69f3be7007d4fd6f7c86c7c19453b1ba) )
|
||||||
ROM_LOAD( "8411-136027-118.281", 0x2000, 0x4000, CRC(de418dc7) SHA1(1233e2f7499ec5a73a40ee336d3fe26c06187784) )
|
ROM_LOAD( "8411-136027-118.281", 0x2000, 0x4000, CRC(de418dc7) SHA1(1233e2f7499ec5a73a40ee336d3fe26c06187784) )
|
||||||
|
|
||||||
@ -882,17 +882,17 @@ ROM_START( tx1jb )
|
|||||||
ROM_REGION( 0x10000, "audio_cpu", 0 )
|
ROM_REGION( 0x10000, "audio_cpu", 0 )
|
||||||
ROM_LOAD( "tx1_22h.ic9", 0x00000, 0x2000, CRC(66376232) SHA1(b8a026dae47173e7760eea4f52e67e525ad1b70b) )
|
ROM_LOAD( "tx1_22h.ic9", 0x00000, 0x2000, CRC(66376232) SHA1(b8a026dae47173e7760eea4f52e67e525ad1b70b) )
|
||||||
|
|
||||||
ROM_REGION( 0x20000, "char_tiles", 0 )
|
ROM_REGION( 0x8000, "char_tiles", 0 )
|
||||||
ROM_LOAD( "tx1_21a.ic204", 0x0000, 0x4000, CRC(cd3441ad) SHA1(8e6597b3177b8aaa34ed3373d85fc4b6231e1333) )
|
ROM_LOAD( "tx1_21a.ic204", 0x0000, 0x4000, CRC(cd3441ad) SHA1(8e6597b3177b8aaa34ed3373d85fc4b6231e1333) )
|
||||||
ROM_LOAD( "tx1_20a.ic174", 0x4000, 0x4000, CRC(dbe595fc) SHA1(1ed2f775f0a1b46a2ffbc056eb4ef732ed546d3c) )
|
ROM_LOAD( "tx1_20a.ic174", 0x4000, 0x4000, CRC(dbe595fc) SHA1(1ed2f775f0a1b46a2ffbc056eb4ef732ed546d3c) )
|
||||||
|
|
||||||
ROM_REGION( 0x40000, "obj_tiles", 0 )
|
ROM_REGION( 0x10000, "obj_tiles", 0 )
|
||||||
ROM_LOAD( "tx1_16b.ic203", 0x0000, 0x4000, CRC(1141c965) SHA1(4b90c1428bcbd72d0449c064856a5596269b3fc6) )
|
ROM_LOAD( "tx1_16b.ic203", 0x0000, 0x4000, CRC(1141c965) SHA1(4b90c1428bcbd72d0449c064856a5596269b3fc6) )
|
||||||
ROM_LOAD( "tx1_18b.ic258", 0x4000, 0x4000, CRC(0ad36d68) SHA1(fd5a65c56557c1bc9c0f3916f15f62500b52bfe0) )
|
ROM_LOAD( "tx1_18b.ic258", 0x4000, 0x4000, CRC(0ad36d68) SHA1(fd5a65c56557c1bc9c0f3916f15f62500b52bfe0) )
|
||||||
ROM_LOAD( "tx1_15b.ic173", 0x8000, 0x4000, CRC(30d1a8d5) SHA1(b4c585b7b8a8920bb3949d643e9e10c17d4009a0) )
|
ROM_LOAD( "tx1_15b.ic173", 0x8000, 0x4000, CRC(30d1a8d5) SHA1(b4c585b7b8a8920bb3949d643e9e10c17d4009a0) )
|
||||||
ROM_LOAD( "tx1_17b.ic232", 0xc000, 0x4000, CRC(364bb354) SHA1(a26581ca1088b979285471e2c6595048df84d75e) )
|
ROM_LOAD( "tx1_17b.ic232", 0xc000, 0x4000, CRC(364bb354) SHA1(a26581ca1088b979285471e2c6595048df84d75e) )
|
||||||
|
|
||||||
ROM_REGION( 0x40000, "gfx3", 0 )
|
ROM_REGION( 0x6000, "road", 0 )
|
||||||
ROM_LOAD( "tx1_5a.ic56", 0x0000, 0x2000, CRC(5635b8c1) SHA1(5cc9437a2ff0843f1917f2451852d4561c240b24) )
|
ROM_LOAD( "tx1_5a.ic56", 0x0000, 0x2000, CRC(5635b8c1) SHA1(5cc9437a2ff0843f1917f2451852d4561c240b24) )
|
||||||
ROM_LOAD( "tx1_6a.ic66", 0x2000, 0x2000, CRC(03d83cf8) SHA1(5c0cfc6bf02ad2b3f37e1ceb493f69eb9829ab1e) )
|
ROM_LOAD( "tx1_6a.ic66", 0x2000, 0x2000, CRC(03d83cf8) SHA1(5c0cfc6bf02ad2b3f37e1ceb493f69eb9829ab1e) )
|
||||||
ROM_LOAD( "tx1_7a.ic76", 0x4000, 0x2000, CRC(ad56013a) SHA1(ae3a91f58f30daff334754476db33ad1d12569fc) )
|
ROM_LOAD( "tx1_7a.ic76", 0x4000, 0x2000, CRC(ad56013a) SHA1(ae3a91f58f30daff334754476db33ad1d12569fc) )
|
||||||
@ -903,11 +903,11 @@ ROM_START( tx1jb )
|
|||||||
ROM_LOAD16_BYTE( "xb02b.ic223", 0x8000, 0x0200, CRC(22c77af6) SHA1(1be8585b95316b4fc5712cdaef699e676320cd4d) )
|
ROM_LOAD16_BYTE( "xb02b.ic223", 0x8000, 0x0200, CRC(22c77af6) SHA1(1be8585b95316b4fc5712cdaef699e676320cd4d) )
|
||||||
ROM_LOAD16_BYTE( "xb01b.ic213", 0x8001, 0x0200, CRC(f6b8b70b) SHA1(b79374acf11d71db1e4ad3c494ac5f500a52677b) )
|
ROM_LOAD16_BYTE( "xb01b.ic213", 0x8001, 0x0200, CRC(f6b8b70b) SHA1(b79374acf11d71db1e4ad3c494ac5f500a52677b) )
|
||||||
|
|
||||||
ROM_REGION( 0x50000, "obj_map", 0 )
|
ROM_REGION( 0x8000, "obj_map", 0 )
|
||||||
ROM_LOAD( "tx1_14b.ic106", 0x0000, 0x4000, CRC(68c63d6e) SHA1(110e02b99c44d31041be588bd14642e26890ecbd) )
|
ROM_LOAD( "tx1_14b.ic106", 0x0000, 0x4000, CRC(68c63d6e) SHA1(110e02b99c44d31041be588bd14642e26890ecbd) )
|
||||||
ROM_LOAD( "tx1_13b.ic73", 0x4000, 0x4000, CRC(b0c581b2) SHA1(20926bc15e7c97045b219b828acfcdd99b8712a6) )
|
ROM_LOAD( "tx1_13b.ic73", 0x4000, 0x4000, CRC(b0c581b2) SHA1(20926bc15e7c97045b219b828acfcdd99b8712a6) )
|
||||||
|
|
||||||
ROM_REGION( 0x50000, "user3", 0 )
|
ROM_REGION( 0x6000, "obj_luts", 0 )
|
||||||
ROM_LOAD( "tx1_12b.ic48", 0x0000, 0x2000, CRC(4b3d7956) SHA1(fc2432dd69f3be7007d4fd6f7c86c7c19453b1ba) )
|
ROM_LOAD( "tx1_12b.ic48", 0x0000, 0x2000, CRC(4b3d7956) SHA1(fc2432dd69f3be7007d4fd6f7c86c7c19453b1ba) )
|
||||||
ROM_LOAD( "tx1_19b.ic281", 0x2000, 0x4000, CRC(cb250de6) SHA1(4bf3006986fb8cbb3dd4fa988e6471633614e4bb) )
|
ROM_LOAD( "tx1_19b.ic281", 0x2000, 0x4000, CRC(cb250de6) SHA1(4bf3006986fb8cbb3dd4fa988e6471633614e4bb) )
|
||||||
|
|
||||||
@ -963,17 +963,17 @@ ROM_START( tx1jc )
|
|||||||
ROM_REGION( 0x10000, "audio_cpu", 0 ) /* Label was missing */
|
ROM_REGION( 0x10000, "audio_cpu", 0 ) /* Label was missing */
|
||||||
ROM_LOAD( "8411-136027-157.11", 0x00000, 0x2000, CRC(10ae3075) SHA1(69c5f62f2473aba848383eed3cecf15e273d86ca) ) /* Unconfirmed TC013A or the later TC013B */
|
ROM_LOAD( "8411-136027-157.11", 0x00000, 0x2000, CRC(10ae3075) SHA1(69c5f62f2473aba848383eed3cecf15e273d86ca) ) /* Unconfirmed TC013A or the later TC013B */
|
||||||
|
|
||||||
ROM_REGION( 0x20000, "char_tiles", 0 )
|
ROM_REGION( 0x8000, "char_tiles", 0 )
|
||||||
ROM_LOAD( "tx1_21a.ic204", 0x0000, 0x4000, CRC(cd3441ad) SHA1(8e6597b3177b8aaa34ed3373d85fc4b6231e1333) )
|
ROM_LOAD( "tx1_21a.ic204", 0x0000, 0x4000, CRC(cd3441ad) SHA1(8e6597b3177b8aaa34ed3373d85fc4b6231e1333) )
|
||||||
ROM_LOAD( "tx1_20a.ic174", 0x4000, 0x4000, CRC(dbe595fc) SHA1(1ed2f775f0a1b46a2ffbc056eb4ef732ed546d3c) )
|
ROM_LOAD( "tx1_20a.ic174", 0x4000, 0x4000, CRC(dbe595fc) SHA1(1ed2f775f0a1b46a2ffbc056eb4ef732ed546d3c) )
|
||||||
|
|
||||||
ROM_REGION( 0x40000, "obj_tiles", 0 )
|
ROM_REGION( 0x10000, "obj_tiles", 0 )
|
||||||
ROM_LOAD( "tx1_16b.ic203", 0x0000, 0x4000, CRC(1141c965) SHA1(4b90c1428bcbd72d0449c064856a5596269b3fc6) )
|
ROM_LOAD( "tx1_16b.ic203", 0x0000, 0x4000, CRC(1141c965) SHA1(4b90c1428bcbd72d0449c064856a5596269b3fc6) )
|
||||||
ROM_LOAD( "tx1_18b.ic258", 0x4000, 0x4000, CRC(0ad36d68) SHA1(fd5a65c56557c1bc9c0f3916f15f62500b52bfe0) )
|
ROM_LOAD( "tx1_18b.ic258", 0x4000, 0x4000, CRC(0ad36d68) SHA1(fd5a65c56557c1bc9c0f3916f15f62500b52bfe0) )
|
||||||
ROM_LOAD( "tx1_15b.ic173", 0x8000, 0x4000, CRC(30d1a8d5) SHA1(b4c585b7b8a8920bb3949d643e9e10c17d4009a0) )
|
ROM_LOAD( "tx1_15b.ic173", 0x8000, 0x4000, CRC(30d1a8d5) SHA1(b4c585b7b8a8920bb3949d643e9e10c17d4009a0) )
|
||||||
ROM_LOAD( "tx1_17b.ic232", 0xc000, 0x4000, CRC(364bb354) SHA1(a26581ca1088b979285471e2c6595048df84d75e) )
|
ROM_LOAD( "tx1_17b.ic232", 0xc000, 0x4000, CRC(364bb354) SHA1(a26581ca1088b979285471e2c6595048df84d75e) )
|
||||||
|
|
||||||
ROM_REGION( 0x40000, "gfx3", 0 )
|
ROM_REGION( 0x6000, "road", 0 )
|
||||||
ROM_LOAD( "tx1_5a.ic56", 0x0000, 0x2000, CRC(5635b8c1) SHA1(5cc9437a2ff0843f1917f2451852d4561c240b24) )
|
ROM_LOAD( "tx1_5a.ic56", 0x0000, 0x2000, CRC(5635b8c1) SHA1(5cc9437a2ff0843f1917f2451852d4561c240b24) )
|
||||||
ROM_LOAD( "tx1_6a.ic66", 0x2000, 0x2000, CRC(03d83cf8) SHA1(5c0cfc6bf02ad2b3f37e1ceb493f69eb9829ab1e) )
|
ROM_LOAD( "tx1_6a.ic66", 0x2000, 0x2000, CRC(03d83cf8) SHA1(5c0cfc6bf02ad2b3f37e1ceb493f69eb9829ab1e) )
|
||||||
ROM_LOAD( "tx1_7a.ic76", 0x4000, 0x2000, CRC(ad56013a) SHA1(ae3a91f58f30daff334754476db33ad1d12569fc) )
|
ROM_LOAD( "tx1_7a.ic76", 0x4000, 0x2000, CRC(ad56013a) SHA1(ae3a91f58f30daff334754476db33ad1d12569fc) )
|
||||||
@ -984,11 +984,11 @@ ROM_START( tx1jc )
|
|||||||
ROM_LOAD16_BYTE( "xb02b.ic223", 0x8000, 0x0200, CRC(22c77af6) SHA1(1be8585b95316b4fc5712cdaef699e676320cd4d) )
|
ROM_LOAD16_BYTE( "xb02b.ic223", 0x8000, 0x0200, CRC(22c77af6) SHA1(1be8585b95316b4fc5712cdaef699e676320cd4d) )
|
||||||
ROM_LOAD16_BYTE( "xb01b.ic213", 0x8001, 0x0200, CRC(f6b8b70b) SHA1(b79374acf11d71db1e4ad3c494ac5f500a52677b) )
|
ROM_LOAD16_BYTE( "xb01b.ic213", 0x8001, 0x0200, CRC(f6b8b70b) SHA1(b79374acf11d71db1e4ad3c494ac5f500a52677b) )
|
||||||
|
|
||||||
ROM_REGION( 0x50000, "obj_map", 0 )
|
ROM_REGION( 0x8000, "obj_map", 0 )
|
||||||
ROM_LOAD( "tx1_14b.ic106", 0x0000, 0x4000, CRC(68c63d6e) SHA1(110e02b99c44d31041be588bd14642e26890ecbd) )
|
ROM_LOAD( "tx1_14b.ic106", 0x0000, 0x4000, CRC(68c63d6e) SHA1(110e02b99c44d31041be588bd14642e26890ecbd) )
|
||||||
ROM_LOAD( "tx1_13b.ic73", 0x4000, 0x4000, CRC(b0c581b2) SHA1(20926bc15e7c97045b219b828acfcdd99b8712a6) )
|
ROM_LOAD( "tx1_13b.ic73", 0x4000, 0x4000, CRC(b0c581b2) SHA1(20926bc15e7c97045b219b828acfcdd99b8712a6) )
|
||||||
|
|
||||||
ROM_REGION( 0x50000, "user3", 0 )
|
ROM_REGION( 0x6000, "obj_luts", 0 )
|
||||||
ROM_LOAD( "tx1_12b.ic48", 0x0000, 0x2000, CRC(4b3d7956) SHA1(fc2432dd69f3be7007d4fd6f7c86c7c19453b1ba) )
|
ROM_LOAD( "tx1_12b.ic48", 0x0000, 0x2000, CRC(4b3d7956) SHA1(fc2432dd69f3be7007d4fd6f7c86c7c19453b1ba) )
|
||||||
ROM_LOAD( "tx1_19b.ic281", 0x2000, 0x4000, CRC(cb250de6) SHA1(4bf3006986fb8cbb3dd4fa988e6471633614e4bb) )
|
ROM_LOAD( "tx1_19b.ic281", 0x2000, 0x4000, CRC(cb250de6) SHA1(4bf3006986fb8cbb3dd4fa988e6471633614e4bb) )
|
||||||
|
|
||||||
@ -1072,7 +1072,7 @@ ROM_START( buggyboy )
|
|||||||
ROM_LOAD( "bug25.157", 0x2c000, 0x4000, CRC(80c4e045) SHA1(be3b537d3ed3ee74fc51059aa744dca4d63431f6) )
|
ROM_LOAD( "bug25.157", 0x2c000, 0x4000, CRC(80c4e045) SHA1(be3b537d3ed3ee74fc51059aa744dca4d63431f6) )
|
||||||
ROM_RELOAD( 0x38000, 0x4000 )
|
ROM_RELOAD( 0x38000, 0x4000 )
|
||||||
|
|
||||||
ROM_REGION( 0x40000, "road", 0 )
|
ROM_REGION( 0x8000, "road", 0 )
|
||||||
ROM_LOAD( "bug12.58", 0x0000, 0x2000, CRC(bd34d55c) SHA1(05a719a6eff5af3aaaa1e0ee783b18597582ed64) )
|
ROM_LOAD( "bug12.58", 0x0000, 0x2000, CRC(bd34d55c) SHA1(05a719a6eff5af3aaaa1e0ee783b18597582ed64) )
|
||||||
ROM_LOAD( "bug11.57", 0x2000, 0x2000, CRC(a44d43eb) SHA1(c4d68c7e123506acaa6adc353579cac19ecb3a9d) )
|
ROM_LOAD( "bug11.57", 0x2000, 0x2000, CRC(a44d43eb) SHA1(c4d68c7e123506acaa6adc353579cac19ecb3a9d) )
|
||||||
ROM_LOAD( "bb3.137", 0x4000, 0x0200, CRC(ad76f3fb) SHA1(bf96f903b32e009a2592df0f28cc3e20b039f4d4) )
|
ROM_LOAD( "bb3.137", 0x4000, 0x0200, CRC(ad76f3fb) SHA1(bf96f903b32e009a2592df0f28cc3e20b039f4d4) )
|
||||||
@ -1086,13 +1086,13 @@ ROM_START( buggyboy )
|
|||||||
ROM_LOAD16_BYTE( "bb1.245", 0x8000, 0x0200, CRC(0ddbd36d) SHA1(7a08901a350c315d46ab8d0aa881db384b9f37d2) )
|
ROM_LOAD16_BYTE( "bb1.245", 0x8000, 0x0200, CRC(0ddbd36d) SHA1(7a08901a350c315d46ab8d0aa881db384b9f37d2) )
|
||||||
ROM_LOAD16_BYTE( "bb2.220", 0x8001, 0x0200, CRC(71d47de1) SHA1(2da9aeb3f2ebb1114631c8042a37c4f4c18e741b) )
|
ROM_LOAD16_BYTE( "bb2.220", 0x8001, 0x0200, CRC(71d47de1) SHA1(2da9aeb3f2ebb1114631c8042a37c4f4c18e741b) )
|
||||||
|
|
||||||
ROM_REGION( 0x100000, "obj_map", 0 )
|
ROM_REGION( 0x10000, "obj_map", 0 )
|
||||||
ROM_LOAD( "bug16.210", 0x0000, 0x4000, CRC(8b64409e) SHA1(1fb4c6923e6a9e1f2a63a2c335b63e2bdc44b61f) )
|
ROM_LOAD( "bug16.210", 0x0000, 0x4000, CRC(8b64409e) SHA1(1fb4c6923e6a9e1f2a63a2c335b63e2bdc44b61f) )
|
||||||
ROM_LOAD( "bug14.209", 0x4000, 0x4000, CRC(4e765282) SHA1(f7d69d39823a8b33bd0e5b1bd78a5d68a293e221) )
|
ROM_LOAD( "bug14.209", 0x4000, 0x4000, CRC(4e765282) SHA1(f7d69d39823a8b33bd0e5b1bd78a5d68a293e221) )
|
||||||
ROM_LOAD( "bug17.182", 0x8000, 0x4000, CRC(a5d84df6) SHA1(4e33ef0bee383e0d47b0c679cd2a54edb7ca0e3e) )
|
ROM_LOAD( "bug17.182", 0x8000, 0x4000, CRC(a5d84df6) SHA1(4e33ef0bee383e0d47b0c679cd2a54edb7ca0e3e) )
|
||||||
ROM_LOAD( "bug15.181", 0xc000, 0x4000, CRC(d519de10) SHA1(535d05e11af65be65f3d9924b0c48faf8dcfd1bf) )
|
ROM_LOAD( "bug15.181", 0xc000, 0x4000, CRC(d519de10) SHA1(535d05e11af65be65f3d9924b0c48faf8dcfd1bf) )
|
||||||
|
|
||||||
ROM_REGION( 0x10000, "obj_luts", 0 )
|
ROM_REGION( 0x6000, "obj_luts", 0 )
|
||||||
ROM_LOAD( "bug13.124", 0x0000, 0x2000, CRC(53604d7a) SHA1(bfa304cd885162ece7a5f54988d9880fc541eb3a) )
|
ROM_LOAD( "bug13.124", 0x0000, 0x2000, CRC(53604d7a) SHA1(bfa304cd885162ece7a5f54988d9880fc541eb3a) )
|
||||||
ROM_LOAD( "bug18.156", 0x2000, 0x4000, CRC(e58321a6) SHA1(81be87d3c6046bb375c74362dc940f0269b39d1d) )
|
ROM_LOAD( "bug18.156", 0x2000, 0x4000, CRC(e58321a6) SHA1(81be87d3c6046bb375c74362dc940f0269b39d1d) )
|
||||||
|
|
||||||
@ -1161,7 +1161,7 @@ ROM_START( buggyboyjr )
|
|||||||
ROM_LOAD( "bug30s.145", 0x20000, 0x8000, CRC(11d8e2a8) SHA1(9bf198229a12d331e8e7352b7ee3f39f6891f517) )
|
ROM_LOAD( "bug30s.145", 0x20000, 0x8000, CRC(11d8e2a8) SHA1(9bf198229a12d331e8e7352b7ee3f39f6891f517) )
|
||||||
ROM_LOAD( "bug23s.142", 0x28000, 0x8000, CRC(015db5d8) SHA1(39ef8b44f2eb9399fb1555cffa6763e06d59c181) )
|
ROM_LOAD( "bug23s.142", 0x28000, 0x8000, CRC(015db5d8) SHA1(39ef8b44f2eb9399fb1555cffa6763e06d59c181) )
|
||||||
|
|
||||||
ROM_REGION( 0x40000, "road", 0 )
|
ROM_REGION( 0x8000, "road", 0 )
|
||||||
ROM_LOAD( "bug11s.225",0x0000, 0x4000, CRC(771af4e1) SHA1(a42b164dd0567c78c0d308ee48d63e5a284897bb) )
|
ROM_LOAD( "bug11s.225",0x0000, 0x4000, CRC(771af4e1) SHA1(a42b164dd0567c78c0d308ee48d63e5a284897bb) )
|
||||||
ROM_LOAD( "bb3s.195", 0x4000, 0x0200, CRC(2ab3d5ff) SHA1(9f8359cb4ba2e7d15dbb9dc21cd71c0902cd2153) )
|
ROM_LOAD( "bb3s.195", 0x4000, 0x0200, CRC(2ab3d5ff) SHA1(9f8359cb4ba2e7d15dbb9dc21cd71c0902cd2153) )
|
||||||
ROM_LOAD( "bb4s.193", 0x4200, 0x0200, CRC(630f68a4) SHA1(d730f050353c688f81d090e33e00cd35e7b7b6fa) )
|
ROM_LOAD( "bb4s.193", 0x4200, 0x0200, CRC(630f68a4) SHA1(d730f050353c688f81d090e33e00cd35e7b7b6fa) )
|
||||||
@ -1174,11 +1174,11 @@ ROM_START( buggyboyjr )
|
|||||||
ROM_LOAD16_BYTE( "bb1.163", 0x8000, 0x0200, CRC(0ddbd36d) SHA1(7a08901a350c315d46ab8d0aa881db384b9f37d2) )
|
ROM_LOAD16_BYTE( "bb1.163", 0x8000, 0x0200, CRC(0ddbd36d) SHA1(7a08901a350c315d46ab8d0aa881db384b9f37d2) )
|
||||||
ROM_LOAD16_BYTE( "bb2.162", 0x8001, 0x0200, CRC(71d47de1) SHA1(2da9aeb3f2ebb1114631c8042a37c4f4c18e741b) )
|
ROM_LOAD16_BYTE( "bb2.162", 0x8001, 0x0200, CRC(71d47de1) SHA1(2da9aeb3f2ebb1114631c8042a37c4f4c18e741b) )
|
||||||
|
|
||||||
ROM_REGION( 0x100000, "obj_map", 0 )
|
ROM_REGION( 0x10000, "obj_map", 0 )
|
||||||
ROM_LOAD( "bug16s.139", 0x0000, 0x8000, CRC(1903a9ad) SHA1(526c404c15e3f04b4afb27dee66e9deb0a6b9704) )
|
ROM_LOAD( "bug16s.139", 0x0000, 0x8000, CRC(1903a9ad) SHA1(526c404c15e3f04b4afb27dee66e9deb0a6b9704) )
|
||||||
ROM_LOAD( "bug17s.140", 0x8000, 0x8000, CRC(82cabdd4) SHA1(94324fcf83c373621fc40553473ae3cb552ab704) )
|
ROM_LOAD( "bug17s.140", 0x8000, 0x8000, CRC(82cabdd4) SHA1(94324fcf83c373621fc40553473ae3cb552ab704) )
|
||||||
|
|
||||||
ROM_REGION( 0x10000, "obj_luts", 0 )
|
ROM_REGION( 0x6000, "obj_luts", 0 )
|
||||||
ROM_LOAD( "bug13.32", 0x0000, 0x2000, CRC(53604d7a) SHA1(bfa304cd885162ece7a5f54988d9880fc541eb3a) )
|
ROM_LOAD( "bug13.32", 0x0000, 0x2000, CRC(53604d7a) SHA1(bfa304cd885162ece7a5f54988d9880fc541eb3a) )
|
||||||
ROM_LOAD( "bug18s.141", 0x2000, 0x4000, CRC(67786327) SHA1(32cc1f5bc654497c968ddcd4af29720c6d659482) )
|
ROM_LOAD( "bug18s.141", 0x2000, 0x4000, CRC(67786327) SHA1(32cc1f5bc654497c968ddcd4af29720c6d659482) )
|
||||||
|
|
||||||
|
@ -3535,4 +3535,3 @@ GAME( 1980, digger, 0, digger, digger, driver_device, 0, ROT270
|
|||||||
GAME( 1981, pulsar, 0, pulsar, pulsar, driver_device, 0, ROT270, "Sega", "Pulsar", GAME_IMPERFECT_SOUND )
|
GAME( 1981, pulsar, 0, pulsar, pulsar, driver_device, 0, ROT270, "Sega", "Pulsar", GAME_IMPERFECT_SOUND )
|
||||||
GAME( 1979, heiankyo, 0, heiankyo, heiankyo, driver_device, 0, ROT270, "Denki Onkyo", "Heiankyo Alien", GAME_NO_SOUND )
|
GAME( 1979, heiankyo, 0, heiankyo, heiankyo, driver_device, 0, ROT270, "Denki Onkyo", "Heiankyo Alien", GAME_NO_SOUND )
|
||||||
GAME( 19??, alphaho, 0, alphaho, alphaho, driver_device, 0, ROT270, "Data East Corporation", "Alpha Fighter / Head On", GAME_WRONG_COLORS | GAME_NO_SOUND )
|
GAME( 19??, alphaho, 0, alphaho, alphaho, driver_device, 0, ROT270, "Data East Corporation", "Alpha Fighter / Head On", GAME_WRONG_COLORS | GAME_NO_SOUND )
|
||||||
|
|
||||||
|
@ -90,7 +90,6 @@ public:
|
|||||||
DECLARE_WRITE8_MEMBER(coh1001l_bank_w);
|
DECLARE_WRITE8_MEMBER(coh1001l_bank_w);
|
||||||
DECLARE_WRITE16_MEMBER(coh1001l_latch_w);
|
DECLARE_WRITE16_MEMBER(coh1001l_latch_w);
|
||||||
DECLARE_WRITE16_MEMBER(coh1001l_sound_unk_w);
|
DECLARE_WRITE16_MEMBER(coh1001l_sound_unk_w);
|
||||||
DECLARE_WRITE_LINE_MEMBER(coh1001l_ymz_irq);
|
|
||||||
DECLARE_WRITE8_MEMBER(coh1002v_bank_w);
|
DECLARE_WRITE8_MEMBER(coh1002v_bank_w);
|
||||||
DECLARE_WRITE8_MEMBER(coh1002m_bank_w);
|
DECLARE_WRITE8_MEMBER(coh1002m_bank_w);
|
||||||
DECLARE_READ8_MEMBER(cbaj_sound_main_status_r);
|
DECLARE_READ8_MEMBER(cbaj_sound_main_status_r);
|
||||||
@ -2273,11 +2272,6 @@ Notes:
|
|||||||
VSync - 60Hz
|
VSync - 60Hz
|
||||||
*/
|
*/
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(zn_state::coh1001l_ymz_irq)
|
|
||||||
{
|
|
||||||
m_audiocpu->set_input_line(2, state ? ASSERT_LINE : CLEAR_LINE);
|
|
||||||
}
|
|
||||||
|
|
||||||
WRITE16_MEMBER(zn_state::coh1001l_sound_unk_w)
|
WRITE16_MEMBER(zn_state::coh1001l_sound_unk_w)
|
||||||
{
|
{
|
||||||
// irq ack maybe?
|
// irq ack maybe?
|
||||||
@ -2326,7 +2320,7 @@ static MACHINE_CONFIG_DERIVED(coh1001l, zn1_2mb_vram)
|
|||||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1001l)
|
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1001l)
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
|
MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
|
||||||
MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(zn_state, coh1001l_ymz_irq))
|
MCFG_YMZ280B_IRQ_HANDLER(INPUTLINE("audiocpu", 2))
|
||||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
|
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
|
||||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.35)
|
MCFG_SOUND_ROUTE(1, "rspeaker", 0.35)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user