summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2017-06-01 22:59:10 +0200
committer hap <happppp@users.noreply.github.com>2017-06-01 22:59:34 +0200
commit22ee1f4c35bef84c0633d1e1235af83af1152215 (patch)
tree84c0cb53c9f3171ec48573da6c6e71bd2955edf5
parentf94f97270d408a02c3d6ce26d5ad7f539fde5e77 (diff)
New working clone added
------------ Fidelity Sensory Chess Challenger 9 (rev. B) [yoyo_chessboard] ----- FYI renames: fscc9 -> fscc9c fscc9b -> fscc9 this added clone -> fscc9b
-rw-r--r--src/mame/drivers/fidel6502.cpp69
-rw-r--r--src/mame/mame.lst1
2 files changed, 41 insertions, 29 deletions
diff --git a/src/mame/drivers/fidel6502.cpp b/src/mame/drivers/fidel6502.cpp
index 073aa43cfa5..6f17ba0f7a3 100644
--- a/src/mame/drivers/fidel6502.cpp
+++ b/src/mame/drivers/fidel6502.cpp
@@ -209,7 +209,7 @@ Elite Avant Garde (models 6081,6088,6089) is on the same hardware.
******************************************************************************
Sensory Chess Challenger "9" (SC9)
-2 versions were available, the newer "B" version was 2MHz and included the Budapest program.
+3 versions were available, the newest "B" version was 2MHz and included the Budapest program.
The Playmatic S was only released in Germany, it's basically a 'deluxe' version of SC9
with magnet sensors and came with CB9 and CB16.
---------------------------------
@@ -221,7 +221,7 @@ R6502-13, 1.4MHz from resonator, another pcb with the same resonator was measure
PCB label 510-1046C01 2-1-82
*: 2 other boards were measured 1.60MHz and 1.88MHz(newest serial). Online references
-suggest 3 versions of SC9(A) total: 1.5MHz, 1.6MHz, and 1.9MHz.
+suggest 3 versions of SC9(C01) total: 1.5MHz, 1.6MHz, and 1.9MHz.
I/O is via TTL, not further documented here
@@ -478,9 +478,9 @@ public:
DECLARE_WRITE8_MEMBER(sc9_control_w);
DECLARE_WRITE8_MEMBER(sc9_led_w);
DECLARE_READ8_MEMBER(sc9_input_r);
- DECLARE_MACHINE_RESET(sc9);
- DECLARE_INPUT_CHANGED_MEMBER(sc9_cpu_freq);
- void sc9_set_cpu_freq();
+ DECLARE_MACHINE_RESET(sc9c);
+ DECLARE_INPUT_CHANGED_MEMBER(sc9c_cpu_freq);
+ void sc9c_set_cpu_freq();
// SC12
DECLARE_WRITE8_MEMBER(sc12_control_w);
@@ -768,17 +768,17 @@ READ8_MEMBER(fidel6502_state::sc9_input_r)
return read_inputs(9) ^ 0xff;
}
-void fidel6502_state::sc9_set_cpu_freq()
+void fidel6502_state::sc9c_set_cpu_freq()
{
- // SC9(A) was released with 1.5MHz, 1.6MHz, or 1.9MHz CPU
+ // SC9(C01) was released with 1.5MHz, 1.6MHz, or 1.9MHz CPU
u8 inp = ioport("FAKE")->read();
m_maincpu->set_unscaled_clock((inp & 2) ? 1900000 : ((inp & 1) ? 1600000 : 1500000));
}
-MACHINE_RESET_MEMBER(fidel6502_state, sc9)
+MACHINE_RESET_MEMBER(fidel6502_state, sc9c)
{
fidelbase_state::machine_reset();
- sc9_set_cpu_freq();
+ sc9c_set_cpu_freq();
}
@@ -1111,7 +1111,7 @@ static ADDRESS_MAP_START( sc9_map, AS_PROGRAM, 8, fidel6502_state )
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sc9b_map, AS_PROGRAM, 8, fidel6502_state )
+static ADDRESS_MAP_START( sc9d_map, AS_PROGRAM, 8, fidel6502_state )
AM_RANGE(0xa000, 0xa007) AM_MIRROR(0x1ff8) AM_READ(sc12_input_r)
AM_IMPORT_FROM( sc9_map )
ADDRESS_MAP_END
@@ -1379,19 +1379,19 @@ static INPUT_PORTS_START( playmatic )
PORT_INCLUDE( sc12_base )
INPUT_PORTS_END
-static INPUT_PORTS_START( sc9 )
+static INPUT_PORTS_START( sc9c )
PORT_INCLUDE( sc12 )
PORT_START("FAKE")
- PORT_CONFNAME( 0x03, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, fidel6502_state, sc9_cpu_freq, nullptr) // factory set
+ PORT_CONFNAME( 0x03, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, fidel6502_state, sc9c_cpu_freq, nullptr) // factory set
PORT_CONFSETTING( 0x00, "1.5MHz" )
PORT_CONFSETTING( 0x01, "1.6MHz" )
PORT_CONFSETTING( 0x02, "1.9MHz" )
INPUT_PORTS_END
-INPUT_CHANGED_MEMBER(fidel6502_state::sc9_cpu_freq)
+INPUT_CHANGED_MEMBER(fidel6502_state::sc9c_cpu_freq)
{
- sc9_set_cpu_freq();
+ sc9c_set_cpu_freq();
}
@@ -1591,11 +1591,11 @@ static MACHINE_CONFIG_DERIVED( eag, eas )
MCFG_DEFAULT_LAYOUT(layout_fidel_eag)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_START( sc9b )
+static MACHINE_CONFIG_START( sc9d )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, XTAL_3_9MHz/2) // R6502AP, 3.9MHz resonator
- MCFG_CPU_PROGRAM_MAP(sc9b_map)
+ MCFG_CPU_PROGRAM_MAP(sc9d_map)
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(610)) // from 555 timer (22nF, 102K, 2.7K)
MCFG_TIMER_START_DELAY(attotime::from_hz(610) - attotime::from_usec(41)) // active for 41us
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(610))
@@ -1616,20 +1616,24 @@ static MACHINE_CONFIG_START( sc9b )
MCFG_SOFTWARE_LIST_ADD("cart_list", "fidel_scc")
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( sc9, sc9b )
+static MACHINE_CONFIG_DERIVED( sc9b, sc9d )
/* basic machine hardware */
- MCFG_CPU_REPLACE("maincpu", M6502, 1500000) // from ceramic resonator "681 JSA", measured, see sc9_set_cpu_freq
+ MCFG_CPU_REPLACE("maincpu", M6502, 1500000) // from ceramic resonator "681 JSA", measured
MCFG_CPU_PROGRAM_MAP(sc9_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sc9c, sc9b )
- MCFG_MACHINE_RESET_OVERRIDE(fidel6502_state, sc9)
+ /* basic machine hardware */
+ MCFG_MACHINE_RESET_OVERRIDE(fidel6502_state, sc9c)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( playmatic, sc9b )
/* basic machine hardware */
- MCFG_CPU_REPLACE("maincpu", M6502, 3100000) // approximation
- MCFG_CPU_PROGRAM_MAP(sc9_map)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_DEVICE_CLOCK(3100000) // approximation
MCFG_DEFAULT_LAYOUT(layout_fidel_playmatic)
MACHINE_CONFIG_END
@@ -2097,16 +2101,22 @@ ROM_START( feag2100fr )
ROM_END
-ROM_START( fscc9 ) // PCB label 510-1046C01
+ROM_START( fscc9 ) // PCB label 510-1046D01
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-1034a01", 0xc000, 0x2000, CRC(b845c458) SHA1(d3fda65dbd9fae44fa4b93f8207839d8fa0c367a) ) // HN48364P
- ROM_LOAD("101-1034b02", 0xe000, 0x2000, CRC(cbaf97d7) SHA1(7ed8e68bb74713d9e2ff1d9c037012320b7bfcbf) ) // "
+ ROM_LOAD("101-1034b01", 0xc000, 0x2000, CRC(65288753) SHA1(651f5ca5969ddd72a20cbebdec2de83c4bf10650) )
+ ROM_LOAD("101-1034c02", 0xe000, 0x2000, CRC(238b092f) SHA1(7ddffc6dba822aee9d8ad6815b23024ed5cdfd26) )
ROM_END
-ROM_START( fscc9b ) // PCB label 510-1046D01
+ROM_START( fscc9b ) // PCB label 510-1046B01
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("101-1034b01", 0xc000, 0x2000, CRC(65288753) SHA1(651f5ca5969ddd72a20cbebdec2de83c4bf10650) )
- ROM_LOAD("101-1034c02", 0xe000, 0x2000, CRC(238b092f) SHA1(7ddffc6dba822aee9d8ad6815b23024ed5cdfd26) )
+ ROM_LOAD("101-1034a01", 0xc000, 0x2000, CRC(b845c458) SHA1(d3fda65dbd9fae44fa4b93f8207839d8fa0c367a) )
+ ROM_LOAD("101-1034a02", 0xe000, 0x2000, CRC(ecfa0a4c) SHA1(738df99a250fad0b1da5ebeb8c92a9ad1461417b) )
+ROM_END
+
+ROM_START( fscc9c ) // PCB label 510-1046C01
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD("101-1034a01", 0xc000, 0x2000, CRC(b845c458) SHA1(d3fda65dbd9fae44fa4b93f8207839d8fa0c367a) ) // HN48364P
+ ROM_LOAD("101-1034b02", 0xe000, 0x2000, CRC(cbaf97d7) SHA1(7ed8e68bb74713d9e2ff1d9c037012320b7bfcbf) ) // "
ROM_END
ROM_START( fscc9ps )
@@ -2266,8 +2276,9 @@ CONS( 1986, feag2100sp, feag2100, 0, eag, eagg, fidel6502_state, 0,
CONS( 1986, feag2100g, feag2100, 0, eag, eagg, fidel6502_state, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1986, feag2100fr, feag2100, 0, eag, eagg, fidel6502_state, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1982, fscc9, 0, 0, sc9, sc9, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. C01)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1982, fscc9b, fscc9, 0, sc9b, sc12, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. D01)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1982, fscc9, 0, 0, sc9d, sc12, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. D)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // aka version "B"
+CONS( 1982, fscc9b, fscc9, 0, sc9b, sc12, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1982, fscc9c, fscc9, 0, sc9c, sc9c, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. C)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1983, fscc9ps, fscc9, 0, playmatic, playmatic, fidel6502_state, 0, "Fidelity Electronics", "Sensory 9 Playmatic 'S'", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // Fidelity West Germany
CONS( 1984, fscc12, 0, 0, sc12, sc12, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 12-B", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index fe2f632457f..d5fcd36b108 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -12454,6 +12454,7 @@ fexcelv //
fphantom //
fscc9 //
fscc9b //
+fscc9c //
fscc9ps //
fscc12 //
granits // RCS