diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp index b74f5afa98b..526d214073b 100644 --- a/src/mame/drivers/fidel_elite.cpp +++ b/src/mame/drivers/fidel_elite.cpp @@ -6,6 +6,14 @@ Fidelity Elite A/S series hardware (EAS, EAG, PC) see fidel_eag68k.cpp for 68000-based EAG hardware +TODO: +- add feas (original program) + +BTANB: +- feasglaa locks up at boot if it was powered off in the middle of the game. + To resolve this, hold the Game Control button while booting to clear nvram. + The ROM dump was verified from 2 chesscomputers. + ******************************************************************************* Elite A/S Challenger (EAS) @@ -28,7 +36,7 @@ hardware overview: *In West Germany, some distributors released it with overclocked CPUs, advertised as 3.2, 3.6, or 4MHz. Unmodified EAS PCB photos show only a 3MHz XTAL. -A condensator keeps RAM contents alive for a few hours when powered off. +A condensator/battery keeps RAM contents alive for a while when powered off. Note that EAS doesn't have a "new game" button, it is done through game options: Press GAME CONTROL, then place/lift a piece on D6 to restart, or D8 to reset with default settings, then press CL. @@ -40,9 +48,11 @@ included by default, this module is the same as CB16 but at different form facto Elite Avant Garde (models 6081,6088,6089) is on the same hardware as EAS. -Fidelity Private Line is a modified EAS Glasgow. They took out the motherboard -and leds and placed them a little box separate from a (ledless) magnetic chessboard. -It was probably only released in Germany. +Fidelity Elite Private Line were EAS/EAG conversions released by Fidelity Deutschland. +The "Elite Privat" was probably for the local market and the "Private Line" for export. +They took out the motherboard and leds and placed them inside a little box separate +from a (ledless) magnetic chessboard. The ROMs were unmodified, that makes them +uninteresting to emulate as separate drivers. ******************************************************************************/ @@ -68,7 +78,6 @@ It was probably only released in Germany. // internal artwork #include "fidel_eag.lh" // clickable #include "fidel_eas.lh" // clickable -#include "fidel_eas_priv.lh" // clickable #include "fidel_pc.lh" // clickable @@ -99,7 +108,6 @@ public: // machine configs void pc(machine_config &config); void eas(machine_config &config); - void eas_priv(machine_config &config); protected: virtual void machine_start() override; @@ -320,7 +328,8 @@ void elite_state::pc_map(address_map &map) void elite_state::eas_map(address_map &map) { map.unmap_value_high(); - map(0x0000, 0x0fff).ram().share("nvram"); + map(0x0000, 0x07ff).ram().share("nvram"); + map(0x0800, 0x0fff).ram(); map(0x2000, 0x5fff).r("cartslot", FUNC(generic_slot_device::read_rom)); map(0x7000, 0x7003).rw(m_ppi8255, FUNC(i8255_device::read), FUNC(i8255_device::write)); map(0x7020, 0x7027).w(FUNC(elite_state::segment_w)).nopr(); @@ -461,17 +470,6 @@ void elite_state::eas(machine_config &config) config.set_default_layout(layout_fidel_eas); } -void elite_state::eas_priv(machine_config &config) -{ - eas(config); - - /* basic machine hardware */ - M65C02(config.replace(), m_maincpu, 3.579545_MHz_XTAL); // UM6502C - m_maincpu->set_addrmap(AS_PROGRAM, &elite_state::div_trampoline); - - config.set_default_layout(layout_fidel_eas_priv); -} - void eag_state::eag(machine_config &config) { eas(config); @@ -534,42 +532,6 @@ ROM_START( feasbu ) ROM_END ROM_START( feasgla ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("eli_gla.6", 0x8000, 0x0800, CRC(2fdddb4f) SHA1(6da0a328a45462f285ae6a0756f97c5a43148f97) ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_LOAD("eli_gla.5", 0xc000, 0x0800, CRC(f094e625) SHA1(fef84c6a3da504aac15988ec9af94417e5fedfbd) ) - ROM_CONTINUE( 0xd000, 0x0800 ) - ROM_CONTINUE( 0xc800, 0x0800 ) - ROM_CONTINUE( 0xd800, 0x0800 ) - ROM_LOAD("eli_gla.4", 0xe000, 0x0800, CRC(5f6845d1) SHA1(684eb16faf36a49560e5a73b55fd0022dc090e35) ) - ROM_CONTINUE( 0xf000, 0x0800 ) - ROM_CONTINUE( 0xe800, 0x0800 ) - ROM_CONTINUE( 0xf800, 0x0800 ) - - // speech ROM - ROM_DEFAULT_BIOS("en") - ROM_SYSTEM_BIOS(0, "en", "English") - ROM_SYSTEM_BIOS(1, "de", "German") - ROM_SYSTEM_BIOS(2, "fr", "French") - ROM_SYSTEM_BIOS(3, "sp", "Spanish") - - ROM_REGION( 1, "language", 0 ) - ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) - ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) - ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) - ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) // NEC D2332C - ROM_RELOAD( 0x1000, 0x1000) - ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) - ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) - ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) -ROM_END - -ROM_START( fepriv ) ROM_REGION( 0x10000, "mainmap", 0 ) ROM_LOAD("4,0_8.6", 0x8000, 0x0800, CRC(32784e2d) SHA1(dae060a5c49cc1993a78db293cd80464adfd892d) ) ROM_CONTINUE( 0x9000, 0x0800 ) @@ -605,6 +567,42 @@ ROM_START( fepriv ) ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END +ROM_START( feasglaa ) + ROM_REGION( 0x10000, "mainmap", 0 ) + ROM_LOAD("eli_gla.6", 0x8000, 0x0800, CRC(2fdddb4f) SHA1(6da0a328a45462f285ae6a0756f97c5a43148f97) ) + ROM_CONTINUE( 0x9000, 0x0800 ) + ROM_CONTINUE( 0x8800, 0x0800 ) + ROM_CONTINUE( 0x9800, 0x0800 ) + ROM_LOAD("eli_gla.5", 0xc000, 0x0800, CRC(f094e625) SHA1(fef84c6a3da504aac15988ec9af94417e5fedfbd) ) + ROM_CONTINUE( 0xd000, 0x0800 ) + ROM_CONTINUE( 0xc800, 0x0800 ) + ROM_CONTINUE( 0xd800, 0x0800 ) + ROM_LOAD("eli_gla.4", 0xe000, 0x0800, CRC(5f6845d1) SHA1(684eb16faf36a49560e5a73b55fd0022dc090e35) ) + ROM_CONTINUE( 0xf000, 0x0800 ) + ROM_CONTINUE( 0xe800, 0x0800 ) + ROM_CONTINUE( 0xf800, 0x0800 ) + + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") + + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) + + ROM_REGION( 0x2000, "speech", 0 ) + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) // NEC D2332C + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) +ROM_END + ROM_START( fpres ) ROM_REGION( 0x10000, "mainmap", 0 ) @@ -760,8 +758,8 @@ ROM_END // YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS CONS( 1983, feasbu, 0, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Budapest program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) -CONS( 1984, feasgla, feasbu, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) -CONS( 1984, fepriv, feasbu, 0, eas_priv, eas, elite_state, empty_init, "Fidelity Deutschland", "Elite Private Line (red version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) +CONS( 1984, feasgla, feasbu, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) +CONS( 1984, feasglaa, feasbu, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) CONS( 1982, fpres, 0, 0, pc, pc, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (original program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) CONS( 1983, fpresbu, fpres, 0, pc, pc, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (Budapest program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) diff --git a/src/mame/layout/fidel_eas_priv.lay b/src/mame/layout/fidel_eas_priv.lay deleted file mode 100644 index 873bdb3eb54..00000000000 --- a/src/mame/layout/fidel_eas_priv.lay +++ /dev/null @@ -1,592 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 0994a54ea2b..15b530508e5 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -13478,10 +13478,10 @@ fex68km4 // @source:fidel_elite.cpp feasbu // feasgla // +feasglaa // feag // feag2100 // feag2100a // -fepriv // fpres // fpresbu //