mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +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.5 - selection jumper input (see below)
|
||||
PB.6 - TSI start line
|
||||
PB.7 - TSI ROM D0 line
|
||||
PB.7 - TSI ROM A12 line
|
||||
|
||||
|
||||
selection jumpers:
|
||||
@ -1070,7 +1070,7 @@ WRITE8_MEMBER(fidelz80_state::vsc_ppi_portc_w)
|
||||
{
|
||||
// d0-d3: select digits
|
||||
// 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;
|
||||
vsc_prepare_display();
|
||||
}
|
||||
@ -1081,7 +1081,8 @@ WRITE8_MEMBER(fidelz80_state::vsc_ppi_portc_w)
|
||||
READ8_MEMBER(fidelz80_state::vsc_pio_porta_r)
|
||||
{
|
||||
// d0-d7: multiplexed inputs
|
||||
return read_inputs(10);
|
||||
return read_inputs(11);
|
||||
|
||||
}
|
||||
|
||||
READ8_MEMBER(fidelz80_state::vsc_pio_portb_r)
|
||||
@ -1090,18 +1091,26 @@ READ8_MEMBER(fidelz80_state::vsc_pio_portb_r)
|
||||
|
||||
// d4: TSI BUSY line
|
||||
ret |= (m_speech->busy_r()) ? 0 : 0x10;
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(fidelz80_state::vsc_pio_portb_w)
|
||||
{
|
||||
// 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
|
||||
m_speech->start_w(data >> 6 & 1);
|
||||
|
||||
|
||||
// d2: lower TSI volume
|
||||
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_BIT(0x0f, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("LEVEL") // factory setting
|
||||
PORT_CONFNAME( 0x80, 0x00, "PPI.B.7: Maximum Levels" )
|
||||
PORT_CONFSETTING( 0x00, "10" )
|
||||
PORT_START("LEVEL") // hardwired (VCC/GND?)
|
||||
PORT_CONFNAME( 0x80, 0x00, "Maximum Levels" )
|
||||
PORT_CONFSETTING( 0x00, "10" ) // factory setting
|
||||
PORT_CONFSETTING( 0x80, "3" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( vcc )
|
||||
PORT_INCLUDE( vcc_base )
|
||||
|
||||
PORT_START("IN.4") // not consumer accessible
|
||||
PORT_CONFNAME( 0x01, 0x00, "PCB Jumper: French" )
|
||||
PORT_START("IN.4") // PCB jumpers, not consumer accessible
|
||||
PORT_CONFNAME( 0x01, 0x00, "Language: French" )
|
||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||
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( 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( 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( 0x08, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
@ -1326,7 +1335,7 @@ static INPUT_PORTS_START( vccfr )
|
||||
PORT_INCLUDE( vcc )
|
||||
|
||||
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( 0x01, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
@ -1335,7 +1344,7 @@ static INPUT_PORTS_START( vccsp )
|
||||
PORT_INCLUDE( vcc )
|
||||
|
||||
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( 0x02, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
@ -1344,7 +1353,7 @@ static INPUT_PORTS_START( vccg )
|
||||
PORT_INCLUDE( vcc )
|
||||
|
||||
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( 0x04, DEF_STR( On ) )
|
||||
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(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ST") PORT_CODE(KEYCODE_S)
|
||||
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
|
||||
|
||||
static INPUT_PORTS_START( vbrc )
|
||||
@ -1582,6 +1598,7 @@ static MACHINE_CONFIG_START( vsc, fidelz80_state )
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
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)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1705,8 +1722,39 @@ ROM_START( vsc )
|
||||
ROM_LOAD("101-64109.bin", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) )
|
||||
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_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
|
||||
|
||||
|
||||
@ -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, 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( 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
|
||||
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_region_ptr<UINT8> m_speech_rom;
|
||||
|
||||
|
@ -2153,6 +2153,9 @@ uvcsp
|
||||
bridgec3
|
||||
vbrc
|
||||
vsc
|
||||
vscg
|
||||
vscfr
|
||||
vscsp
|
||||
csc
|
||||
fscc12
|
||||
fexcelv
|
||||
|
Loading…
Reference in New Issue
Block a user