summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2022-09-14 17:26:53 +0200
committer hap <happppp@users.noreply.github.com>2022-09-14 17:26:53 +0200
commit81e5abf05222ce96c70ea29e9ffed3922afcc811 (patch)
tree573e1539a52a4978676c0a414b0ba7341f0ed0d1 /src
parent689aeea1ab1662f784061cb74dbde24187785de2 (diff)
New working clones
------------------ Elegance Chess Challenger (model AS12, set 1) [Berger]
Diffstat (limited to 'src')
-rw-r--r--src/mame/fidelity/as12.cpp61
-rw-r--r--src/mame/fidelity/sc12.cpp63
-rw-r--r--src/mame/hegenerglaser/mm2.cpp2
-rw-r--r--src/mame/mame.lst3
4 files changed, 91 insertions, 38 deletions
diff --git a/src/mame/fidelity/as12.cpp b/src/mame/fidelity/as12.cpp
index 765ef049460..4cebb49c9a2 100644
--- a/src/mame/fidelity/as12.cpp
+++ b/src/mame/fidelity/as12.cpp
@@ -5,14 +5,23 @@
Fidelity Elegance Chess Challenger (AS12/6085)
-Hardware notes:
-- R65C02P4 CPU @ 3/3.57/4MHz
-- 3*8KB ROM(TMM2764), 2*2KB RAM(HM6116)
+Hardware notes (AS12):
+- PCB label 510-1083A01
+- R65C02P3 @ 3/3.57MHz (apparently the first few had a 3MHz CPU)
+- 2*8KB ROM + 1*4KB ROM, 2*2KB RAM(HM6116)
+
+Hardware notes (6085):
- PCB label 510-1084B01
+- R65C02P4 @ 4MHz
+- 3*8KB ROM(TMM2764), 2*2KB RAM(HM6116)
This is on the SC12B board, with enough modifications to support more leds and
magnetic chess board sensors. See sc12.cpp for a more technical description.
+TODO:
+- is the initial AS12 3MHz version the same ROM as felega1? When it's configured
+ at 3MHz and the CPU divider set to 2, the pace is the same as fscc12a.
+
******************************************************************************/
#include "emu.h"
@@ -194,9 +203,9 @@ static INPUT_PORTS_START( feleg )
PORT_START("FAKE")
PORT_CONFNAME( 0x03, 0x02, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, as12_state, switch_cpu_freq, 0) // factory set
- PORT_CONFSETTING( 0x00, "3MHz" )
- PORT_CONFSETTING( 0x01, "3.57MHz" )
- PORT_CONFSETTING( 0x02, "4MHz" )
+ PORT_CONFSETTING( 0x00, "3MHz (original)" )
+ PORT_CONFSETTING( 0x01, "3.57MHz (AS12)" )
+ PORT_CONFSETTING( 0x02, "4MHz (6085)" )
INPUT_PORTS_END
static INPUT_PORTS_START( felega )
@@ -204,9 +213,9 @@ static INPUT_PORTS_START( felega )
PORT_MODIFY("FAKE") // default to 3.57MHz
PORT_CONFNAME( 0x03, 0x01, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, as12_state, switch_cpu_freq, 0) // factory set
- PORT_CONFSETTING( 0x00, "3MHz" )
- PORT_CONFSETTING( 0x01, "3.57MHz" )
- PORT_CONFSETTING( 0x02, "4MHz" )
+ PORT_CONFSETTING( 0x00, "3MHz (original)" )
+ PORT_CONFSETTING( 0x01, "3.57MHz (AS12)" )
+ PORT_CONFSETTING( 0x02, "4MHz (6085)" )
INPUT_PORTS_END
@@ -217,7 +226,7 @@ INPUT_PORTS_END
void as12_state::feleg(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
R65C02(config, m_maincpu, 4_MHz_XTAL); // R65C02P4
m_maincpu->set_addrmap(AS_PROGRAM, &as12_state::main_map);
@@ -229,15 +238,15 @@ void as12_state::feleg(machine_config &config)
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
m_board->set_delay(attotime::from_msec(150));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(9, 8);
config.set_default_layout(layout_fidel_as12);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
- /* cartridge */
+ // cartridge
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_scc");
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
@@ -246,8 +255,8 @@ void as12_state::felega(machine_config &config)
{
feleg(config);
- /* basic machine hardware */
- m_maincpu->set_clock(3.579545_MHz_XTAL);
+ // basic machine hardware
+ m_maincpu->set_clock(3.579545_MHz_XTAL); // R65C02P3
}
@@ -264,11 +273,18 @@ ROM_START( feleg ) // model 6085
ROM_LOAD("feleg.e000", 0xe000, 0x2000, CRC(b1fb49aa) SHA1(d8c9687dd564f0fa603e6d684effb1d113ac64b4) ) // "
ROM_END
-ROM_START( felega ) // model AS12
+ROM_START( felega ) // model AS12, serial 427921xx
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD("blue.8000", 0x8000, 0x2000, CRC(2e07e657) SHA1(3238f21bdbf2277851e5a32e18c043e654123f00) ) // M5L2764K-2
+ ROM_LOAD("green.c000", 0xc000, 0x1000, CRC(fcc48302) SHA1(f60d34229721e8659e9f81c267177daec7723d8f) ) // TMS2732AJL-45
+ ROM_LOAD("black.e000", 0xe000, 0x2000, CRC(b7c55d19) SHA1(45df961c2c3a1e9c8ec79efb7a1a82500425df2f) ) // TMS2764JL-25
+ROM_END
+
+ROM_START( felega1 ) // model AS12, serial 427917xx
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("blue.8000", 0x8000, 0x2000, CRC(2e07e657) SHA1(3238f21bdbf2277851e5a32e18c043e654123f00) ) // M5L2764K-2
- ROM_LOAD("yellow.c000", 0xc000, 0x1000, CRC(fcc48302) SHA1(f60d34229721e8659e9f81c267177daec7723d8f) ) // TMS2732AJL-45
- ROM_LOAD("black.e000", 0xe000, 0x2000, CRC(9142121b) SHA1(264380e7ad36b7b1867658e1af387624d2a72630) ) // TMS2764JL-25
+ ROM_LOAD("blue.8000", 0x8000, 0x2000, CRC(2e07e657) SHA1(3238f21bdbf2277851e5a32e18c043e654123f00) ) // M5L2764K-2
+ ROM_LOAD("green.c000", 0xc000, 0x1000, CRC(fcc48302) SHA1(f60d34229721e8659e9f81c267177daec7723d8f) ) // TMS2732AJL-45
+ ROM_LOAD("black.e000", 0xe000, 0x2000, CRC(9142121b) SHA1(264380e7ad36b7b1867658e1af387624d2a72630) ) // TMS2764JL-25
ROM_END
} // anonymous namespace
@@ -279,6 +295,7 @@ ROM_END
Drivers
******************************************************************************/
-// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-CONS( 1986, feleg, 0, 0, feleg, feleg, as12_state, empty_init, "Fidelity Electronics", "Elegance Chess Challenger (model 6085)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
-CONS( 1985, felega, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Electronics", "Elegance Chess Challenger (model AS12)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
+// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
+CONS( 1986, feleg, 0, 0, feleg, feleg, as12_state, empty_init, "Fidelity Electronics", "Elegance Chess Challenger (model 6085)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
+CONS( 1984, felega, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Electronics", "Elegance Chess Challenger (model AS12, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
+CONS( 1984, felega1, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Electronics", "Elegance Chess Challenger (model AS12, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
diff --git a/src/mame/fidelity/sc12.cpp b/src/mame/fidelity/sc12.cpp
index ef0bbafc1bc..1ca19647edf 100644
--- a/src/mame/fidelity/sc12.cpp
+++ b/src/mame/fidelity/sc12.cpp
@@ -3,7 +3,7 @@
// thanks-to:Berger, yoyo_chessboard
/******************************************************************************
-Fidelity Sensory 12 Chess Challenger (SC12, 6086)
+Fidelity Sensory 12 Chess Challenger (SC12, SE12, 6086)
------------------------------------
RE information from netlist by Berger
@@ -12,6 +12,8 @@ DIN 41524C printer port
36-pin edge connector
CPU is a R65C02P4, running at 4MHz*
+Model SC12 is 3MHz, model SE12 3.57MHz, model 6086 4MHz.
+
*By default, the CPU frequency is lowered on A13/A14 access, with a factory-set jumper:
/2 on model SC12(1.5MHz), /4 on model 6086(1MHz)
@@ -42,6 +44,9 @@ Q6,Q7: LEDs common anode
The keypad is read through a 74HC251, where S0,1,2 is from CPU A0,1,2, Y is connected to CPU D7.
If control Q4 is set, printer data can be read from I0.
+TODO:
+- is SE12 program the same as SC12? just a faster CPU, and probably /4 divider?
+
******************************************************************************/
#include "emu.h"
@@ -81,8 +86,12 @@ public:
void sc12(machine_config &config);
void sc12b(machine_config &config);
+ DECLARE_INPUT_CHANGED_MEMBER(switch_cpu_freq) { set_cpu_freq(); }
+
protected:
virtual void machine_start() override;
+ virtual void machine_reset() override;
+ void set_cpu_freq();
private:
// devices/pointers
@@ -109,6 +118,20 @@ void sc12_state::machine_start()
save_item(NAME(m_inp_mux));
}
+void sc12_state::machine_reset()
+{
+ set_cpu_freq();
+ fidel_clockdiv_state::machine_reset();
+}
+
+void sc12_state::set_cpu_freq()
+{
+ // known official CPU speeds: 3MHz, 3.57MHz, 4MHz
+ static const XTAL xtal[3] = { 3_MHz_XTAL, 3.579545_MHz_XTAL, 4_MHz_XTAL };
+ m_maincpu->set_unscaled_clock(xtal[ioport("FAKE")->read() % 3]);
+ div_refresh();
+}
+
/******************************************************************************
@@ -187,11 +210,23 @@ INPUT_PORTS_END
static INPUT_PORTS_START( sc12 )
PORT_INCLUDE( fidel_clockdiv_2 )
PORT_INCLUDE( sc12_base )
+
+ PORT_START("FAKE")
+ PORT_CONFNAME( 0x03, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, sc12_state, switch_cpu_freq, 0) // factory set
+ PORT_CONFSETTING( 0x00, "3MHz (SC12)" )
+ PORT_CONFSETTING( 0x01, "3.57MHz (SE12)" )
+ PORT_CONFSETTING( 0x02, "4MHz (6086)" )
INPUT_PORTS_END
static INPUT_PORTS_START( sc12b )
PORT_INCLUDE( fidel_clockdiv_4 )
PORT_INCLUDE( sc12_base )
+
+ PORT_START("FAKE")
+ PORT_CONFNAME( 0x03, 0x02, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, sc12_state, switch_cpu_freq, 0) // factory set
+ PORT_CONFSETTING( 0x00, "3MHz (SC12)" )
+ PORT_CONFSETTING( 0x01, "3.57MHz (SE12)" )
+ PORT_CONFSETTING( 0x02, "4MHz (6086)" )
INPUT_PORTS_END
@@ -202,7 +237,7 @@ INPUT_PORTS_END
void sc12_state::sc12(machine_config &config)
{
- /* basic machine hardware */
+ // basic machine hardware
R65C02(config, m_maincpu, 3_MHz_XTAL); // R65C02P3
m_maincpu->set_addrmap(AS_PROGRAM, &sc12_state::main_map);
@@ -214,15 +249,15 @@ void sc12_state::sc12(machine_config &config)
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
m_board->set_delay(attotime::from_msec(200));
- /* video hardware */
+ // video hardware
PWM_DISPLAY(config, m_display).set_size(2, 9);
config.set_default_layout(layout_fidel_sc12);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
- /* cartridge */
+ // cartridge
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_scc");
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
@@ -231,7 +266,7 @@ void sc12_state::sc12b(machine_config &config)
{
sc12(config);
- /* basic machine hardware */
+ // basic machine hardware
m_maincpu->set_clock(4_MHz_XTAL); // R65C02P4
}
@@ -241,18 +276,18 @@ void sc12_state::sc12b(machine_config &config)
ROM Definitions
******************************************************************************/
-ROM_START( fscc12 ) // model SC12, PCB label 510-1084B01
+ROM_START( fscc12 ) // model 6086, PCB label 510-1084B01
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("101-1068a01.ic15", 0x8000, 0x2000, CRC(63c76cdd) SHA1(e0771c98d4483a6b1620791cb99a7e46b0db95c4) ) // SSS SCM23C65E4
- ROM_LOAD("orange.ic13", 0xc000, 0x1000, CRC(ed5289b2) SHA1(9b0c7f9ae4102d4a66eb8c91d4e84b9eec2ffb3d) ) // TI TMS2732AJL-45, no label, orange sticker
- ROM_LOAD("red.ic14", 0xe000, 0x2000, CRC(0c4968c4) SHA1(965a66870b0f8ce9549418cbda09d2ff262a1504) ) // TI TMS2764JL-25, no label, red sticker
+ ROM_LOAD("orange.ic13", 0xc000, 0x1000, CRC(45070a71) SHA1(8aeecff828f26fb7081902c757559903be272649) ) // TI TMS2732AJL-45, no label, orange sticker
+ ROM_LOAD("red.ic14", 0xe000, 0x2000, CRC(183d3edc) SHA1(3296a4c3bce5209587d4a1694fce153558544e63) ) // Toshiba TMM2764D-2, no label, red sticker
ROM_END
-ROM_START( fscc12b ) // model 6086, PCB label 510-1084B01
+ROM_START( fscc12a ) // model SC12, PCB label 510-1084B01
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("101-1068a01.ic15", 0x8000, 0x2000, CRC(63c76cdd) SHA1(e0771c98d4483a6b1620791cb99a7e46b0db95c4) ) // SSS SCM23C65E4
- ROM_LOAD("orange.ic13", 0xc000, 0x1000, CRC(45070a71) SHA1(8aeecff828f26fb7081902c757559903be272649) ) // TI TMS2732AJL-45, no label, orange sticker
- ROM_LOAD("red.ic14", 0xe000, 0x2000, CRC(183d3edc) SHA1(3296a4c3bce5209587d4a1694fce153558544e63) ) // Toshiba TMM2764D-2, no label, red sticker
+ ROM_LOAD("orange.ic13", 0xc000, 0x1000, CRC(ed5289b2) SHA1(9b0c7f9ae4102d4a66eb8c91d4e84b9eec2ffb3d) ) // TI TMS2732AJL-45, no label, orange sticker
+ ROM_LOAD("red.ic14", 0xe000, 0x2000, CRC(0c4968c4) SHA1(965a66870b0f8ce9549418cbda09d2ff262a1504) ) // TI TMS2764JL-25, no label, red sticker
ROM_END
} // anonymous namespace
@@ -264,5 +299,5 @@ ROM_END
******************************************************************************/
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-CONS( 1984, fscc12, 0, 0, sc12, sc12, sc12_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger \"12\" (model SC12)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
-CONS( 1984, fscc12b, fscc12, 0, sc12b, sc12b, sc12_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger \"12 B\" (model 6086)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
+CONS( 1986, fscc12, 0, 0, sc12b, sc12b, sc12_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger \"12 B\" (model 6086)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
+CONS( 1984, fscc12a, fscc12, 0, sc12, sc12, sc12_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger \"12\" (model SC12)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
diff --git a/src/mame/hegenerglaser/mm2.cpp b/src/mame/hegenerglaser/mm2.cpp
index cddeea56d24..8f1b5a7be7f 100644
--- a/src/mame/hegenerglaser/mm2.cpp
+++ b/src/mame/hegenerglaser/mm2.cpp
@@ -498,7 +498,7 @@ ROM_START( mm4b )
ROM_LOAD("600", 0x8000, 0x8000, CRC(837d49b9) SHA1(9fb2dfaaeca2559ce582211137635c069180e95f) )
ROM_END
-ROM_START( mm4tk )
+ROM_START( mm4tk ) // hack of 710
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("mm4tk.bin", 0x8000, 0x8000, CRC(51cb36a4) SHA1(9e184b4e85bb721e794b88d8657ae8d2ff5a24af) )
ROM_END
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 0f240d941bf..0e8bbe4561c 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -14006,6 +14006,7 @@ fgoala // MF (c) 1979 Taito Corporation
@source:fidelity/as12.cpp
feleg
felega
+felega1
@source:fidelity/card.cpp
bridgec
@@ -14113,7 +14114,7 @@ fphantom //
@source:fidelity/sc12.cpp
fscc12 //
-fscc12b //
+fscc12a //
@source:fidelity/sc6.cpp
fscc6 //