From a9ed015bdb58550bb1876904da6f8a6f29a70fe7 Mon Sep 17 00:00:00 2001 From: hap Date: Wed, 22 Feb 2023 16:30:51 +0100 Subject: New working systems ------------------- Conchess Princhess Glasgow [Mr. Lars] --- hash/arb.xml | 2 +- hash/conchess.xml | 35 +++++++++++ hash/conchess_plymate.xml | 21 ------- hash/conchess_standard.xml | 21 ------- hash/fidel_msc.xml | 2 +- hash/fidel_sc6.xml | 2 +- hash/fidel_scc.xml | 2 +- hash/ggm.xml | 2 +- hash/mephisto_mm1.xml | 2 +- hash/mephisto_mm2.xml | 2 +- hash/mephisto_mm4.xml | 2 +- hash/mephisto_mm5.xml | 2 +- hash/mephisto_smondial2.xml | 2 +- hash/saitek_schess.xml | 2 +- src/mame/chess/conchess.cpp | 146 ++++++++++++++++++++++++++------------------ src/mame/fidelity/csc.cpp | 6 +- src/mame/mame.lst | 9 +-- src/mame/sega/segac2.cpp | 2 +- 18 files changed, 139 insertions(+), 123 deletions(-) create mode 100644 hash/conchess.xml delete mode 100644 hash/conchess_plymate.xml delete mode 100644 hash/conchess_standard.xml diff --git a/hash/arb.xml b/hash/arb.xml index 291727c2d1f..e5e7eddfb34 100644 --- a/hash/arb.xml +++ b/hash/arb.xml @@ -4,7 +4,7 @@ license:CC0-1.0 --> - + diff --git a/hash/conchess.xml b/hash/conchess.xml new file mode 100644 index 00000000000..0e627eceb1b --- /dev/null +++ b/hash/conchess.xml @@ -0,0 +1,35 @@ + + + + + + + + Conchess L + 1983 + Consumenta Computer / Loproc + + + + + + + + + + + Conchess L16 + 1985 + Systemhuset / Loproc + + + + + + + + + + diff --git a/hash/conchess_plymate.xml b/hash/conchess_plymate.xml deleted file mode 100644 index 6fb80903927..00000000000 --- a/hash/conchess_plymate.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - Conchess L16 - 1985 - Systemhuset / Loproc - - - - - - - - - diff --git a/hash/conchess_standard.xml b/hash/conchess_standard.xml deleted file mode 100644 index bf0f0045f26..00000000000 --- a/hash/conchess_standard.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - Conchess L - 1983 - Consumenta Computer / Loproc - - - - - - - - - diff --git a/hash/fidel_msc.xml b/hash/fidel_msc.xml index ecf6861bdb5..7c53c44b280 100644 --- a/hash/fidel_msc.xml +++ b/hash/fidel_msc.xml @@ -11,7 +11,7 @@ The 1st half is for Z8, 2nd half is for MCS48. A12 is forced high or low. --> - + Challenger Advanced Chess diff --git a/hash/fidel_sc6.xml b/hash/fidel_sc6.xml index be80d146c3c..bf3cc32e095 100644 --- a/hash/fidel_sc6.xml +++ b/hash/fidel_sc6.xml @@ -4,7 +4,7 @@ license:CC0-1.0 --> - + SC6: original program diff --git a/hash/fidel_scc.xml b/hash/fidel_scc.xml index 6dd41b1a600..bc22ddf592c 100644 --- a/hash/fidel_scc.xml +++ b/hash/fidel_scc.xml @@ -6,7 +6,7 @@ license:CC0-1.0 - + Challenger Book Openings 1 diff --git a/hash/ggm.xml b/hash/ggm.xml index e60312356f0..e10a0b115e0 100644 --- a/hash/ggm.xml +++ b/hash/ggm.xml @@ -4,7 +4,7 @@ license:CC0-1.0 --> - + diff --git a/hash/mephisto_mm1.xml b/hash/mephisto_mm1.xml index 015d98b4ed1..cc79fc19fbf 100644 --- a/hash/mephisto_mm1.xml +++ b/hash/mephisto_mm1.xml @@ -4,7 +4,7 @@ license:CC0-1.0 --> - + diff --git a/hash/mephisto_mm2.xml b/hash/mephisto_mm2.xml index cc1bd76b6ba..7c162075db0 100644 --- a/hash/mephisto_mm2.xml +++ b/hash/mephisto_mm2.xml @@ -4,7 +4,7 @@ license:CC0-1.0 --> - + diff --git a/hash/mephisto_mm4.xml b/hash/mephisto_mm4.xml index a590a9e2690..abac2531331 100644 --- a/hash/mephisto_mm4.xml +++ b/hash/mephisto_mm4.xml @@ -4,7 +4,7 @@ license:CC0-1.0 --> - + diff --git a/hash/mephisto_mm5.xml b/hash/mephisto_mm5.xml index 3f4c224170e..1adc6ad9218 100644 --- a/hash/mephisto_mm5.xml +++ b/hash/mephisto_mm5.xml @@ -4,7 +4,7 @@ license:CC0-1.0 --> - + diff --git a/hash/mephisto_smondial2.xml b/hash/mephisto_smondial2.xml index b5a71fa7c79..d6007dae68e 100644 --- a/hash/mephisto_smondial2.xml +++ b/hash/mephisto_smondial2.xml @@ -4,7 +4,7 @@ license:CC0-1.0 --> - + College Module diff --git a/hash/saitek_schess.xml b/hash/saitek_schess.xml index 127129e8cde..47bd47cd6f1 100644 --- a/hash/saitek_schess.xml +++ b/hash/saitek_schess.xml @@ -4,7 +4,7 @@ license:CC0-1.0 --> - + Strong Play Module diff --git a/src/mame/chess/conchess.cpp b/src/mame/chess/conchess.cpp index 28ee8801c89..9dd46cecc2e 100644 --- a/src/mame/chess/conchess.cpp +++ b/src/mame/chess/conchess.cpp @@ -1,23 +1,24 @@ // license:BSD-3-Clause // copyright-holders:hap -// thanks-to:Berger -/****************************************************************************** +// thanks-to:Berger, Mr. Lars +/******************************************************************************* Conchess, a series of modular chess computers by Consumenta Computer. + Hardware development by Loproc (Germany), manufactured at Wallharn Electronics (Ireland). The core people involved were Ulf Rathsman for the chess engine, and Johan Enroth. After Consumenta went under in 1983, the Conchess brand was continued by Systemhuset. TODO: -- dump/add princhess module -- dump/add plymate original 2MHz module -- dump/add concplyv library module (L/L16 don't work, manual says it has its own add-on) -- concplyv unmapped reads/writes -- verify irq/beeper for concplyv, though it is probably correct -- official rom labels for concply5, concply8 +- dump/add original Plymate Amsterdam module +- dump/add Plymate Glasgow Plus version +- dump/add concvicp library module (L/L16 don't work, manual says it has its own add-on) +- concvicp unmapped reads/writes +- verify irq/beeper for concvicp, though it is probably correct +- official rom labels for concams5, concams8 -------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- Hardware notes: @@ -42,9 +43,8 @@ note: XTAL goes to 4020, 4020 /2 goes to CPU clock, and other dividers to IRQ and beeper. On A0, IRQ is active for ~31.2us. A1(P) + A0(M) (Princhess, aka Glasgow) -- dual-module, each module has its own 6502 - need verification, more likely - 2nd module has no CPU (according to the manual, A0 is modified and won't - work stand-alone) +- dual-module, 2nd module has no CPU (according to the manual, A0 is modified and + won't work stand-alone) A2(C) (Plymate, aka Amsterdam) - R65C02P4 @ 5.5MHz (11MHz XTAL) (5.5MHz version) @@ -58,7 +58,7 @@ Library modules: - L: small PCB, PCB label: CCL L-2, 8KB EPROM no label - L16: 2*8KB EPROM (have no photo of PCB) -******************************************************************************/ +*******************************************************************************/ #include "emu.h" @@ -93,10 +93,11 @@ public: { } // machine configs - void concstd(machine_config &config); - void concply5(machine_config &config); - void concply8(machine_config &config); - void concplyv(machine_config &config); + void conc(machine_config &config); + void concgla(machine_config &config); + void concams5(machine_config &config); + void concams8(machine_config &config); + void concvicp(machine_config &config); protected: virtual void machine_start() override; @@ -128,9 +129,9 @@ void conchess_state::machine_start() -/****************************************************************************** +/******************************************************************************* I/O -******************************************************************************/ +*******************************************************************************/ void conchess_state::clear_irq() { @@ -175,9 +176,9 @@ void conchess_state::sound_w(u8 data) -/****************************************************************************** +/******************************************************************************* Address Maps -******************************************************************************/ +*******************************************************************************/ void conchess_state::main_map(address_map &map) { @@ -191,9 +192,9 @@ void conchess_state::main_map(address_map &map) -/****************************************************************************** +/******************************************************************************* Input Ports -******************************************************************************/ +*******************************************************************************/ static INPUT_PORTS_START( conchess ) PORT_START("IN.0") @@ -219,13 +220,13 @@ INPUT_PORTS_END -/****************************************************************************** +/******************************************************************************* Machine Configs -******************************************************************************/ +*******************************************************************************/ -void conchess_state::concstd(machine_config &config) +void conchess_state::conc(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware M6502(config, m_maincpu, 4_MHz_XTAL/2); m_maincpu->set_addrmap(AS_PROGRAM, &conchess_state::main_map); @@ -237,94 +238,116 @@ void conchess_state::concstd(machine_config &config) m_board->set_delay(attotime::from_msec(150)); GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "conchess_cart"); - SOFTWARE_LIST(config, "cart_list").set_original("conchess_standard"); + SOFTWARE_LIST(config, "cart_list").set_original("conchess").set_filter("l"); - /* video hardware */ + // video hardware PWM_DISPLAY(config, m_display).set_size(10, 8); config.set_default_layout(layout_conchess); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); BEEP(config, m_beeper, 4_MHz_XTAL / 0x400); m_beeper->add_route(ALL_OUTPUTS, "mono", 0.25); } -void conchess_state::concply5(machine_config &config) +void conchess_state::concgla(machine_config &config) { - concstd(config); + conc(config); - /* basic machine hardware */ - R65C02(config.replace(), m_maincpu, 11_MHz_XTAL/2); + // basic machine hardware + R65C02(config.replace(), m_maincpu, 4_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &conchess_state::main_map); + const attotime irq_period = attotime::from_hz(4_MHz_XTAL / 0x2000); + m_maincpu->set_periodic_int(FUNC(conchess_state::irq0_line_assert), irq_period); + + subdevice("cart_list")->set_filter("none"); + + // sound hardware + BEEP(config.replace(), m_beeper, 4_MHz_XTAL / 0x400); + m_beeper->add_route(ALL_OUTPUTS, "mono", 0.25); +} + +void conchess_state::concams5(machine_config &config) +{ + concgla(config); + + // basic machine hardware + m_maincpu->set_clock(11_MHz_XTAL/2); + const attotime irq_period = attotime::from_hz(11_MHz_XTAL / 0x4000); m_maincpu->set_periodic_int(FUNC(conchess_state::irq0_line_assert), irq_period); - SOFTWARE_LIST(config.replace(), "cart_list").set_original("conchess_plymate"); + subdevice("cart_list")->set_filter("l16"); - /* sound hardware */ + // sound hardware BEEP(config.replace(), m_beeper, 11_MHz_XTAL / 0x800); m_beeper->add_route(ALL_OUTPUTS, "mono", 0.25); } -void conchess_state::concply8(machine_config &config) +void conchess_state::concams8(machine_config &config) { - concply5(config); + concams5(config); - /* basic machine hardware */ - R65C02(config.replace(), m_maincpu, 16_MHz_XTAL/2); - m_maincpu->set_addrmap(AS_PROGRAM, &conchess_state::main_map); + // basic machine hardware + m_maincpu->set_clock(16_MHz_XTAL/2); const attotime irq_period = attotime::from_hz(16_MHz_XTAL / 0x4000); m_maincpu->set_periodic_int(FUNC(conchess_state::irq0_line_assert), irq_period); - /* sound hardware */ + // sound hardware BEEP(config.replace(), m_beeper, 16_MHz_XTAL / 0x1000); m_beeper->add_route(ALL_OUTPUTS, "mono", 0.25); } -void conchess_state::concplyv(machine_config &config) +void conchess_state::concvicp(machine_config &config) { - concstd(config); + concams5(config); - /* basic machine hardware */ + // basic machine hardware M65C02(config.replace(), m_maincpu, 12.288_MHz_XTAL/2); m_maincpu->set_addrmap(AS_PROGRAM, &conchess_state::main_map); const attotime irq_period = attotime::from_hz(12.288_MHz_XTAL / 0x4000); m_maincpu->set_periodic_int(FUNC(conchess_state::irq0_line_assert), irq_period); - SOFTWARE_LIST(config.replace(), "cart_list").set_original("conchess_victoria"); + subdevice("cart_list")->set_filter("l1024"); - /* sound hardware */ + // sound hardware BEEP(config.replace(), m_beeper, 12.288_MHz_XTAL / 0x1000); m_beeper->add_route(ALL_OUTPUTS, "mono", 0.25); } -/****************************************************************************** +/******************************************************************************* ROM Definitions -******************************************************************************/ +*******************************************************************************/ -ROM_START( concstd ) +ROM_START( conc ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD("c87011.b3", 0xa000, 0x2000, CRC(915e414c) SHA1(80c94712d1c79fa469576c37b80ab66f77c77cc4) ) ROM_LOAD("c87010.b2", 0xc000, 0x2000, CRC(088c8737) SHA1(9f841b3c47de9ef1da8ce98c0a33a919cba873c6) ) ROM_LOAD("c87009.b1", 0xe000, 0x2000, CRC(e1c648e2) SHA1(725a6ac1c69f788a7bba0573e5609b55b12899ac) ) ROM_END -ROM_START( concply5 ) +ROM_START( concgla ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("9128c-0133", 0x8000, 0x4000, CRC(a6ac88eb) SHA1(d1fcd990e5196c00210d380e0e04155a5ea19824) ) // GI 9128C + ROM_LOAD("9128c-0134", 0xc000, 0x4000, CRC(b694a275) SHA1(e4e49379b4eb45402ca8bb82c20d0169db62ed7a) ) // " +ROM_END + +ROM_START( concams5 ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("plymate_5.5mhz.bin", 0x8000, 0x8000, CRC(9a9d1ec1) SHA1(75dbd1f96502775ed304f6b085d958f1b07d08f9) ) + ROM_LOAD("amsterdam_5.5mhz.bin", 0x8000, 0x8000, CRC(9a9d1ec1) SHA1(75dbd1f96502775ed304f6b085d958f1b07d08f9) ) ROM_END -ROM_START( concply8 ) +ROM_START( concams8 ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("plymate_8mhz.bin", 0x8000, 0x8000, CRC(85005b73) SHA1(edbc18d07552cab5951d8a6b738b2eacd73331c1) ) + ROM_LOAD("amsterdam_8mhz.bin", 0x8000, 0x8000, CRC(85005b73) SHA1(edbc18d07552cab5951d8a6b738b2eacd73331c1) ) ROM_END -ROM_START( concplyv ) +ROM_START( concvicp ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD("cc8-f.a2", 0x8000, 0x8000, CRC(5b0a1d09) SHA1(07cbc970a8dfbca386396ce5d5cc8ce77ad4ee1b) ) ROM_END @@ -333,12 +356,13 @@ ROM_END -/****************************************************************************** +/******************************************************************************* Drivers -******************************************************************************/ +*******************************************************************************/ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1982, concstd, 0, 0, concstd, conchess, conchess_state, empty_init, "Consumenta Computer / Loproc", "Conchess (standard)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1985, concply5, 0, 0, concply5, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Plymate 5.5MHz", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1985, concply8, concply5, 0, concply8, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Plymate 8.0MHz", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, concplyv, 0, 0, concplyv, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Plymate Victoria (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1982, conc, 0, 0, conc, conchess, conchess_state, empty_init, "Consumenta Computer / Loproc", "Conchess (standard)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1984, concgla, 0, 0, concgla, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Princhess Glasgow", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1985, concams5, 0, 0, concams5, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Plymate Amsterdam 5.5MHz", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1985, concams8, concams5, 0, concams8, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Plymate Amsterdam 8.0MHz", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, concvicp, 0, 0, concvicp, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Plymate Victoria (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/fidelity/csc.cpp b/src/mame/fidelity/csc.cpp index c2fd0f2fd1b..b1090de60e8 100644 --- a/src/mame/fidelity/csc.cpp +++ b/src/mame/fidelity/csc.cpp @@ -410,10 +410,8 @@ u8 csc_state::pia0_read(offs_t offset) // CA1/CB1: button row 6/7 if (!machine().side_effects_disabled()) { - if (offset == 1) - m_pia[0]->ca1_w(BIT(read_inputs(), 6)); - else if (offset == 3) - m_pia[0]->cb1_w(BIT(read_inputs(), 7)); + m_pia[0]->ca1_w(BIT(read_inputs(), 6)); + m_pia[0]->cb1_w(BIT(read_inputs(), 7)); } return m_pia[0]->read(offset); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index e96687b3eda..bcbad2d9912 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15793,10 +15793,11 @@ cmpchess2 cncchess @source:chess/conchess.cpp -concply5 -concply8 -concplyv -concstd +conc +concams5 +concams8 +concgla +concvicp @source:chess/conic_cchess2.cpp cncchess2 diff --git a/src/mame/sega/segac2.cpp b/src/mame/sega/segac2.cpp index 594684132bd..369961485bb 100644 --- a/src/mame/sega/segac2.cpp +++ b/src/mame/sega/segac2.cpp @@ -2910,7 +2910,7 @@ GAME( 1992, wwmarine, 0, segac2, wwmarine, wwmarine_state, init_no // not really sure how this should hook up, things like the 'sold out' flags could be mechanical sensors, or from another MCU / CPU board in the actual popcorn part of the machine? GAME( 1992, anpanman, 0, segac2, anpanman, segac2_state, init_noprot, ROT0, "Sega", "Soreike! Anpanman Popcorn Koujou (Rev B)", MACHINE_MECHANICAL ) // 'Mechanical' part isn't emulated -GAME( 1993, sonicpop, 0, segac2, sonicpop, segac2_state, init_noprot, ROT0, "Sega", "SegaSonic Popcorn Shop (Rev B)", MACHINE_MECHANICAL ) // region DSW for USA / Export / Japan, still speaks Japanese tho. English voice version is known to exist. 'Mechanical' part isn't emulated +GAME( 1993, sonicpop, 0, segac2, sonicpop, segac2_state, init_noprot, ROT0, "Sega", "SegaSonic Popcorn Shop (Rev B)", MACHINE_MECHANICAL ) // region DSW for USA / Export / Japan, still speaks Japanese tho. 'Mechanical' part isn't emulated GAME( 1993, sonicfgt, 0, segac2, sonicfgt, segac2_state, init_noprot, ROT0, "Sega", "SegaSonic Cosmo Fighter (World)", 0 ) GAME( 1993, sonicfgtj, sonicfgt, segac2, sonicfgt, segac2_state, init_noprot, ROT0, "Sega", "SegaSonic Cosmo Fighter (Japan)", 0 ) -- cgit v1.2.3