From 22ee1f4c35bef84c0633d1e1235af83af1152215 Mon Sep 17 00:00:00 2001 From: hap Date: Thu, 1 Jun 2017 22:59:10 +0200 Subject: New working clone added ------------ Fidelity Sensory Chess Challenger 9 (rev. B) [yoyo_chessboard] ----- FYI renames: fscc9 -> fscc9c fscc9b -> fscc9 this added clone -> fscc9b --- src/mame/drivers/fidel6502.cpp | 69 ++++++++++++++++++++++++------------------ src/mame/mame.lst | 1 + 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 -- cgit v1.2.3