From eab60bb37ec90d76c4992718b6aa5bbbb5e88ad2 Mon Sep 17 00:00:00 2001 From: hap Date: Fri, 12 Apr 2019 11:17:20 +0200 Subject: [PATCH] New working machine added -------- Chess Challenger 3 [hap, Berger, Sean Riddle] --- src/mame/drivers/fidel_cc1.cpp | 61 ++++++++++---- src/mame/drivers/hh_tms1k.cpp | 4 +- src/mame/drivers/lockon.cpp | 11 --- src/mame/layout/fidel_cc1.lay | 22 ++--- src/mame/layout/fidel_cc3.lay | 145 +++++++++++++++++++++++++++++++++ src/mame/mame.lst | 1 + 6 files changed, 202 insertions(+), 42 deletions(-) create mode 100644 src/mame/layout/fidel_cc3.lay diff --git a/src/mame/drivers/fidel_cc1.cpp b/src/mame/drivers/fidel_cc1.cpp index b52763562d2..8bd68cf38b8 100644 --- a/src/mame/drivers/fidel_cc1.cpp +++ b/src/mame/drivers/fidel_cc1.cpp @@ -7,15 +7,11 @@ Fidelity's 1st generation chess computers: - *Chess Challenger -- *Chess Challenger 3 +- Chess Challenger 3 - *Chess Challenger 10 (UCC10) * denotes not dumped (actually CC1 is dumped, but with half of the contents missing) -TODO: -- driver is untested, but it should be easy to get working when a good dump - shows up (or a rom of CC3, even) - ******************************************************************************* Chess Challenger (1) @@ -32,9 +28,10 @@ NEC 2316A ROM(2KB), 4*2101AL RAM(0.5KB total) Chess Challenger 3 is on the same hardware, but with double ROM size, and they corrected the reversed chess notation. It was also offered as an upgrade to CC1. +PCB label P179 C-3 9.77. Chess Challenger 10 version 'C'(model UCC10) is on (nearly) the same PCB too, -label P179 C-3 9.77, with a small daughterboard for 8KB ROM. Again, it was also +same label as CC3, with a small daughterboard for 8KB ROM. Again, it was also offered as an upgrade to CC1, or CC3. ******************************************************************************/ @@ -47,6 +44,7 @@ offered as an upgrade to CC1, or CC3. // internal artwork #include "fidel_cc1.lh" // clickable +#include "fidel_cc3.lh" // clickable namespace { @@ -62,6 +60,7 @@ public: // machine drivers void cc1(machine_config &config); + void cc3(machine_config &config); private: // devices/pointers @@ -155,24 +154,38 @@ void cc1_state::main_io(address_map &map) static INPUT_PORTS_START( cc1 ) PORT_START("IN.0") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("8") PORT_CODE(KEYCODE_8) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("8H") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("7G") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("6F") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("5E") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_CODE(KEYCODE_E) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("4D") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("3C") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("2B") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_B) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("1A") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CODE(KEYCODE_A) PORT_START("IN.1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("DM") PORT_CODE(KEYCODE_M) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_START("RESET") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, cc1_state, reset_button, nullptr) INPUT_PORTS_END +static INPUT_PORTS_START( cc3 ) + PORT_INCLUDE( cc1 ) + + PORT_MODIFY("IN.0") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_CODE(KEYCODE_E) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_B) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CODE(KEYCODE_A) +INPUT_PORTS_END + /****************************************************************************** @@ -199,6 +212,12 @@ void cc1_state::cc1(machine_config &config) config.set_default_layout(layout_fidel_cc1); } +void cc1_state::cc3(machine_config &config) +{ + cc1(config); + config.set_default_layout(layout_fidel_cc3); +} + /****************************************************************************** @@ -210,6 +229,12 @@ ROM_START( cc1 ) ROM_LOAD( "d2316ac_011", 0x0000, 0x0800, BAD_DUMP CRC(e27f9816) SHA1(ad9881b3bf8341829a27e86de27805fc2ccb5f7d) ) // A4 line was broken ROM_END + +ROM_START( cc3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "d2332c_011", 0x0000, 0x1000, CRC(51cf4682) SHA1(197374c633a0bf1a9b7ea51a72dc2b89a6c9c508) ) +ROM_END + } // anonymous namespace @@ -220,3 +245,5 @@ ROM_END // YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS CONS( 1977, cc1, 0, 0, cc1, cc1, cc1_state, empty_init, "Fidelity Electronics", "Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING ) + +CONS( 1977, cc3, 0, 0, cc3, cc3, cc1_state, empty_init, "Fidelity Electronics", "Chess Challenger 3", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index 4e5a80146a0..0c41d78c179 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -138,8 +138,6 @@ - some of the games rely on the fact that faster/longer strobed leds appear brighter, eg. tc4/h2hfootb(offense), bankshot(cue ball), f3in1(ball), ... - 7in1ss: in 2-player mode, game select and skill select can be configured after selecting a game? - - arrball: shot button is unresponsive sometimes, maybe BTANB? no video of game on Youtube - ROM is good, PLAs are good, input mux is good - bship discrete sound, netlist is documented - finish bshipb SN76477 sound - improve elecbowl driver @@ -652,7 +650,7 @@ READ8_MEMBER(arrball_state::read_k) static INPUT_PORTS_START( arrball ) PORT_START("IN.0") // R8 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Shot") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Shot") // pressed when START lights up PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Stop") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_CONFNAME( 0x08, 0x00, "Speed" ) diff --git a/src/mame/drivers/lockon.cpp b/src/mame/drivers/lockon.cpp index abbf57e6855..abedbe9ead4 100644 --- a/src/mame/drivers/lockon.cpp +++ b/src/mame/drivers/lockon.cpp @@ -27,17 +27,6 @@ #define V30_GND_ADDR ((m_ctrl_reg & 0x3) << 16) #define V30_OBJ_ADDR ((m_ctrl_reg & 0x18) << 13) - -/************************************* - * - * Holy Space for The 5 Wise Enters - * - *************************************/ - - - - - /************************************* * * Machine functions diff --git a/src/mame/layout/fidel_cc1.lay b/src/mame/layout/fidel_cc1.lay index 718cbd3da8a..58db8259295 100644 --- a/src/mame/layout/fidel_cc1.lay +++ b/src/mame/layout/fidel_cc1.lay @@ -129,17 +129,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/src/mame/layout/fidel_cc3.lay b/src/mame/layout/fidel_cc3.lay new file mode 100644 index 00000000000..011dc3bffb5 --- /dev/null +++ b/src/mame/layout/fidel_cc3.lay @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/mame.lst b/src/mame/mame.lst index b6bacf23668..e7dc2604e6b 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12884,6 +12884,7 @@ vbrc // @source:fidel_cc1.cpp cc1 // +cc3 // @source:fidel_cc10.cpp cc10 //