mirror of
https://github.com/holub/mame
synced 2025-06-29 23:48:56 +03:00
fidelz80: added VSC foreign language sets
This commit is contained in:
parent
681a5e48fe
commit
b0cc7ab9e0
@ -598,7 +598,7 @@ PB.3 - violet wire
|
|||||||
PB.4 - white wire (and TSI BUSY line)
|
PB.4 - white wire (and TSI BUSY line)
|
||||||
PB.5 - selection jumper input (see below)
|
PB.5 - selection jumper input (see below)
|
||||||
PB.6 - TSI start line
|
PB.6 - TSI start line
|
||||||
PB.7 - TSI ROM D0 line
|
PB.7 - TSI ROM A12 line
|
||||||
|
|
||||||
|
|
||||||
selection jumpers:
|
selection jumpers:
|
||||||
@ -1070,7 +1070,7 @@ WRITE8_MEMBER(fidelz80_state::vsc_ppi_portc_w)
|
|||||||
{
|
{
|
||||||
// d0-d3: select digits
|
// d0-d3: select digits
|
||||||
// d0-d7: select leds, input mux low bits
|
// d0-d7: select leds, input mux low bits
|
||||||
m_inp_mux = (m_inp_mux & 0x300) | data;
|
m_inp_mux = (m_inp_mux & ~0xff) | data;
|
||||||
m_led_select = data;
|
m_led_select = data;
|
||||||
vsc_prepare_display();
|
vsc_prepare_display();
|
||||||
}
|
}
|
||||||
@ -1081,7 +1081,8 @@ WRITE8_MEMBER(fidelz80_state::vsc_ppi_portc_w)
|
|||||||
READ8_MEMBER(fidelz80_state::vsc_pio_porta_r)
|
READ8_MEMBER(fidelz80_state::vsc_pio_porta_r)
|
||||||
{
|
{
|
||||||
// d0-d7: multiplexed inputs
|
// d0-d7: multiplexed inputs
|
||||||
return read_inputs(10);
|
return read_inputs(11);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
READ8_MEMBER(fidelz80_state::vsc_pio_portb_r)
|
READ8_MEMBER(fidelz80_state::vsc_pio_portb_r)
|
||||||
@ -1090,18 +1091,26 @@ READ8_MEMBER(fidelz80_state::vsc_pio_portb_r)
|
|||||||
|
|
||||||
// d4: TSI BUSY line
|
// d4: TSI BUSY line
|
||||||
ret |= (m_speech->busy_r()) ? 0 : 0x10;
|
ret |= (m_speech->busy_r()) ? 0 : 0x10;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(fidelz80_state::vsc_pio_portb_w)
|
WRITE8_MEMBER(fidelz80_state::vsc_pio_portb_w)
|
||||||
{
|
{
|
||||||
// d0,d1: input mux highest bits
|
// d0,d1: input mux highest bits
|
||||||
m_inp_mux = (m_inp_mux & 0xff) | (data << 8 & 0x300);
|
// d5: enable language switch
|
||||||
|
m_inp_mux = (m_inp_mux & ~0x700) | (data << 8 & 0x300) | (data << 5 & 0x400);
|
||||||
|
|
||||||
|
//if (m_inp_mux & 0x400) debugger_break(machine());
|
||||||
|
|
||||||
|
// d7: TSI ROM A12
|
||||||
|
|
||||||
|
m_speech->force_update(); // update stream to now
|
||||||
|
m_speech_bank = data >> 7 & 1;
|
||||||
|
|
||||||
// d6: TSI START line
|
// d6: TSI START line
|
||||||
m_speech->start_w(data >> 6 & 1);
|
m_speech->start_w(data >> 6 & 1);
|
||||||
|
|
||||||
// d2: lower TSI volume
|
// d2: lower TSI volume
|
||||||
m_speech->set_output_gain(0, (data & 4) ? 0.5 : 1.0);
|
m_speech->set_output_gain(0, (data & 4) ? 0.5 : 1.0);
|
||||||
}
|
}
|
||||||
@ -1298,26 +1307,26 @@ static INPUT_PORTS_START( cc10 )
|
|||||||
PORT_START("IN.4")
|
PORT_START("IN.4")
|
||||||
PORT_BIT(0x0f, IP_ACTIVE_HIGH, IPT_UNUSED)
|
PORT_BIT(0x0f, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||||
|
|
||||||
PORT_START("LEVEL") // factory setting
|
PORT_START("LEVEL") // hardwired (VCC/GND?)
|
||||||
PORT_CONFNAME( 0x80, 0x00, "PPI.B.7: Maximum Levels" )
|
PORT_CONFNAME( 0x80, 0x00, "Maximum Levels" )
|
||||||
PORT_CONFSETTING( 0x00, "10" )
|
PORT_CONFSETTING( 0x00, "10" ) // factory setting
|
||||||
PORT_CONFSETTING( 0x80, "3" )
|
PORT_CONFSETTING( 0x80, "3" )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( vcc )
|
static INPUT_PORTS_START( vcc )
|
||||||
PORT_INCLUDE( vcc_base )
|
PORT_INCLUDE( vcc_base )
|
||||||
|
|
||||||
PORT_START("IN.4") // not consumer accessible
|
PORT_START("IN.4") // PCB jumpers, not consumer accessible
|
||||||
PORT_CONFNAME( 0x01, 0x00, "PCB Jumper: French" )
|
PORT_CONFNAME( 0x01, 0x00, "Language: French" )
|
||||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||||
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
|
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
|
||||||
PORT_CONFNAME( 0x02, 0x00, "PCB Jumper: Spanish" )
|
PORT_CONFNAME( 0x02, 0x00, "Language: Spanish" )
|
||||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||||
PORT_CONFSETTING( 0x02, DEF_STR( On ) )
|
PORT_CONFSETTING( 0x02, DEF_STR( On ) )
|
||||||
PORT_CONFNAME( 0x04, 0x00, "PCB Jumper: German" )
|
PORT_CONFNAME( 0x04, 0x00, "Language: German" )
|
||||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||||
PORT_CONFSETTING( 0x04, DEF_STR( On ) )
|
PORT_CONFSETTING( 0x04, DEF_STR( On ) )
|
||||||
PORT_CONFNAME( 0x08, 0x00, "PCB Jumper: Special" )
|
PORT_CONFNAME( 0x08, 0x00, "Language: Special" )
|
||||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||||
PORT_CONFSETTING( 0x08, DEF_STR( On ) )
|
PORT_CONFSETTING( 0x08, DEF_STR( On ) )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
@ -1326,7 +1335,7 @@ static INPUT_PORTS_START( vccfr )
|
|||||||
PORT_INCLUDE( vcc )
|
PORT_INCLUDE( vcc )
|
||||||
|
|
||||||
PORT_MODIFY("IN.4")
|
PORT_MODIFY("IN.4")
|
||||||
PORT_CONFNAME( 0x01, 0x01, "PCB Jumper: French" )
|
PORT_CONFNAME( 0x01, 0x01, "Language: French" )
|
||||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||||
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
|
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
@ -1335,7 +1344,7 @@ static INPUT_PORTS_START( vccsp )
|
|||||||
PORT_INCLUDE( vcc )
|
PORT_INCLUDE( vcc )
|
||||||
|
|
||||||
PORT_MODIFY("IN.4")
|
PORT_MODIFY("IN.4")
|
||||||
PORT_CONFNAME( 0x02, 0x02, "PCB Jumper: Spanish" )
|
PORT_CONFNAME( 0x02, 0x02, "Language: Spanish" )
|
||||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||||
PORT_CONFSETTING( 0x02, DEF_STR( On ) )
|
PORT_CONFSETTING( 0x02, DEF_STR( On ) )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
@ -1344,7 +1353,7 @@ static INPUT_PORTS_START( vccg )
|
|||||||
PORT_INCLUDE( vcc )
|
PORT_INCLUDE( vcc )
|
||||||
|
|
||||||
PORT_MODIFY("IN.4")
|
PORT_MODIFY("IN.4")
|
||||||
PORT_CONFNAME( 0x04, 0x04, "PCB Jumper: German" )
|
PORT_CONFNAME( 0x04, 0x04, "Language: German" )
|
||||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||||
PORT_CONFSETTING( 0x04, DEF_STR( On ) )
|
PORT_CONFSETTING( 0x04, DEF_STR( On ) )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
@ -1449,6 +1458,13 @@ static INPUT_PORTS_START( vsc )
|
|||||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("DM") PORT_CODE(KEYCODE_M)
|
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("DM") PORT_CODE(KEYCODE_M)
|
||||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ST") PORT_CODE(KEYCODE_S)
|
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ST") PORT_CODE(KEYCODE_S)
|
||||||
PORT_BIT(0xc0, IP_ACTIVE_HIGH, IPT_UNUSED)
|
PORT_BIT(0xc0, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||||
|
|
||||||
|
PORT_START("IN.10") // hardwired (2 diodes)
|
||||||
|
PORT_CONFNAME( 0x03, 0x00, "Language" )
|
||||||
|
PORT_CONFSETTING( 0x00, "English" )
|
||||||
|
PORT_CONFSETTING( 0x01, "1" ) // todo: game dasm says it checks against 0/not0, 2, 3.. which language is which?
|
||||||
|
PORT_CONFSETTING( 0x02, "2" )
|
||||||
|
PORT_CONFSETTING( 0x03, "3" )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( vbrc )
|
static INPUT_PORTS_START( vbrc )
|
||||||
@ -1582,6 +1598,7 @@ static MACHINE_CONFIG_START( vsc, fidelz80_state )
|
|||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
MCFG_SOUND_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
|
MCFG_SOUND_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
|
||||||
|
MCFG_S14001A_EXT_READ_HANDLER(READ8(fidelz80_state, vcc_speech_r))
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
@ -1705,8 +1722,39 @@ ROM_START( vsc )
|
|||||||
ROM_LOAD("101-64109.bin", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
|
ROM_LOAD("101-64109.bin", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
|
||||||
ROM_LOAD("101-32024.bin", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) )
|
ROM_LOAD("101-32024.bin", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) )
|
||||||
|
|
||||||
ROM_REGION( 0x1000, "speech", 0 )
|
ROM_REGION( 0x2000, "speech", 0 )
|
||||||
ROM_LOAD("101-32107.bin", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) )
|
ROM_LOAD("101-32107.bin", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) )
|
||||||
|
ROM_RELOAD( 0x1000, 0x1000)
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
ROM_START( vscsp )
|
||||||
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
|
ROM_LOAD("101-64108.bin", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) )
|
||||||
|
ROM_LOAD("101-64109.bin", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
|
||||||
|
ROM_LOAD("101-32024.bin", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x2000, "speech", 0 )
|
||||||
|
ROM_LOAD("vcc-spanish.bin", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
ROM_START( vscg )
|
||||||
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
|
ROM_LOAD("101-64108.bin", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) )
|
||||||
|
ROM_LOAD("101-64109.bin", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
|
||||||
|
ROM_LOAD("101-32024.bin", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x2000, "speech", 0 )
|
||||||
|
ROM_LOAD("vcc-german.bin", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
ROM_START( vscfr )
|
||||||
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
|
ROM_LOAD("101-64108.bin", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) )
|
||||||
|
ROM_LOAD("101-64109.bin", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
|
||||||
|
ROM_LOAD("101-32024.bin", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x2000, "speech", 0 )
|
||||||
|
ROM_LOAD("vcc-french.bin", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
@ -1757,7 +1805,10 @@ COMP( 1980, uvcsp, vcc, 0, vcc, vccsp, driver_device, 0, "Fideli
|
|||||||
COMP( 1980, uvcg, vcc, 0, vcc, vccg, driver_device, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
|
COMP( 1980, uvcg, vcc, 0, vcc, vccg, driver_device, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
|
||||||
COMP( 1980, uvcfr, vcc, 0, vcc, vccfr, driver_device, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
|
COMP( 1980, uvcfr, vcc, 0, vcc, vccfr, driver_device, 0, "Fidelity Electronics", "Advanced Voice Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
|
||||||
|
|
||||||
COMP( 1980, vsc, 0, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
COMP( 1980, vsc, 0, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
COMP( 1980, vscsp, vsc, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
COMP( 1980, vscg, vsc, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
COMP( 1980, vscfr, vsc, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
|
||||||
COMP( 1979, vbrc, 0, 0, vbrc, vbrc, driver_device, 0, "Fidelity Electronics", "Voice Bridge Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
|
COMP( 1979, vbrc, 0, 0, vbrc, vbrc, driver_device, 0, "Fidelity Electronics", "Voice Bridge Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
|
||||||
COMP( 1980, bridgec3, vbrc, 0, vbrc, vbrc, driver_device, 0, "Fidelity Electronics", "Voice Bridge Challenger III", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
|
COMP( 1980, bridgec3, vbrc, 0, vbrc, vbrc, driver_device, 0, "Fidelity Electronics", "Voice Bridge Challenger III", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
|
|
||||||
// devices/pointers
|
// devices/pointers
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
optional_ioport_array<10> m_inp_matrix; // max 10
|
optional_ioport_array<11> m_inp_matrix; // max 11
|
||||||
optional_device<s14001a_device> m_speech;
|
optional_device<s14001a_device> m_speech;
|
||||||
optional_region_ptr<UINT8> m_speech_rom;
|
optional_region_ptr<UINT8> m_speech_rom;
|
||||||
|
|
||||||
|
@ -2153,6 +2153,9 @@ uvcsp
|
|||||||
bridgec3
|
bridgec3
|
||||||
vbrc
|
vbrc
|
||||||
vsc
|
vsc
|
||||||
|
vscg
|
||||||
|
vscfr
|
||||||
|
vscsp
|
||||||
csc
|
csc
|
||||||
fscc12
|
fscc12
|
||||||
fexcelv
|
fexcelv
|
||||||
|
Loading…
Reference in New Issue
Block a user