diff options
Diffstat (limited to 'src/mame/drivers/ramtek.cpp')
-rw-r--r-- | src/mame/drivers/ramtek.cpp | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/src/mame/drivers/ramtek.cpp b/src/mame/drivers/ramtek.cpp new file mode 100644 index 00000000000..4b874a420c7 --- /dev/null +++ b/src/mame/drivers/ramtek.cpp @@ -0,0 +1,251 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +/********************************************************************************* + + Ramtek Discrete Games List + + Game Name DATA ASSY # P/N + ------------------------------------------------------------------- + Baseball (1974/10) YES 550185/550186 0550228/0550229 + Clean Sweep (1974/06) YES 501082A/B/C/D 501083A/B/C/D + Deluxe Baseball (1975/06) YES 550188 + Hockey (1973/11) YES 500699 500629 + Horoscope (1976) UNKNOWN + Knock Out (1974/09) YES 550300 + Lie Detector (1976) UNKNOWN Unreleased Unreleased + Sea Battle (1976/04) UNKNOWN + Soccer (1973/11) YES 500880 500889 + Trivia (1975/11) YES 550436 + Volly (1973/03?) YES 500378A 500322A + Wipe Out (1974/01) YES 500986B/C 500963B/? + + Volly Industries Discrete Games List + (Volly was Ramtek's Canada-based affiliate and distributor.) + + Game Name Clone Of + --------------------------------------------------------------------------------- + Batter Up (1974/??) Baseball (1974/10) + Countdown (1974/02) Wipe Out (Ramtek, 1974/01) + Crossfire (1974/01) (registered trademark?) Knock Out (Ramtek, 1974/09)? + Elimination (1973/12?) (registered trademark?) unused name for Countdown (1974/02) + Flip-Out (1974/05?) Clean Sweep (Ramtek, 1974/06) + Hockey (1973/??) Hockey (Ramtek, 1973/11) + Hockey (Cocktail) (1973/??) Soccer (Ramtek, 1973/11) + Scoring (1973/11?) Soccer (Ramtek, 1973/11)? + Tennis (1973/??) Volly (Ramtek, 1973/03?) + + *********************************************************************************/ + + +#include "emu.h" + +#include "machine/netlist.h" +#include "netlist/devices/net_lib.h" +#include "video/fixfreq.h" + +// copied from Pong, not accurate for this driver! +// start +#define MASTER_CLOCK 7159000 +#define V_TOTAL (0x105+1) // 262 +#define H_TOTAL (0x1C6+1) // 454 + +#define HBSTART (H_TOTAL) +#define HBEND (80) +#define VBSTART (V_TOTAL) +#define VBEND (16) + +#define HRES_MULT (1) +// end + + +class ramtek_state : public driver_device +{ +public: + ramtek_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_video(*this, "fixfreq") + { + } + + // devices + required_device<netlist_mame_device_t> m_maincpu; + required_device<fixedfreq_device> m_video; + +protected: + + // driver_device overrides + virtual void machine_start(); + virtual void machine_reset(); + + virtual void video_start(); + +private: + +}; + + +static NETLIST_START(ramtek) + SOLVER(Solver, 48000) +// PARAM(Solver.FREQ, 48000) + PARAM(Solver.ACCURACY, 1e-4) // works and is sufficient + + // schematics + //... + +// NETDEV_ANALOG_CALLBACK(sound_cb, sound, exidyttl_state, sound_cb, "") +// NETDEV_ANALOG_CALLBACK(video_cb, videomix, fixedfreq_device, update_vid, "fixfreq") +NETLIST_END() + + + +void ramtek_state::machine_start() +{ +} + +void ramtek_state::machine_reset() +{ +} + + +void ramtek_state::video_start() +{ +} + +static MACHINE_CONFIG_START( ramtek, ramtek_state ) + + /* basic machine hardware */ + MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) + MCFG_NETLIST_SETUP(ramtek) + + /* video hardware */ + MCFG_FIXFREQ_ADD("fixfreq", "screen") + MCFG_FIXFREQ_MONITOR_CLOCK(MASTER_CLOCK) + MCFG_FIXFREQ_HORZ_PARAMS(H_TOTAL-67,H_TOTAL-40,H_TOTAL-8,H_TOTAL) + MCFG_FIXFREQ_VERT_PARAMS(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL) + MCFG_FIXFREQ_FIELDCOUNT(1) + MCFG_FIXFREQ_SYNC_THRESHOLD(0.30) +MACHINE_CONFIG_END + + +/*************************************************************************** + + Game driver(s) + + ***************************************************************************/ + + +ROM_START( vollyrmt ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) + + ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 ) + ROM_LOAD( "ramtek2.e0", 0x0000, 0x0020, CRC(205bf9a1) SHA1(3014d226d8afebc6a52e5adb84f1846dd1c0b01c) ) +ROM_END + +ROM_START( hockyrmt ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) + + ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 ) + ROM_LOAD( "ramtek5.g9", 0x0000, 0x0020, CRC(205bf9a1) SHA1(3014d226d8afebc6a52e5adb84f1846dd1c0b01c) ) +ROM_END + +ROM_START( soccrrmt ) // Soccer, missing a ROM + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) + + ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 ) + ROM_LOAD( "ramtek3.g8", 0x0000, 0x0020, CRC(f14416f8) SHA1(413f051c73f05c3c5c2ec1dd8620e03c43835e10) ) + ROM_LOAD( "ramtek3.b3", 0x0000, 0x0020, NO_DUMP) +ROM_END + +ROM_START( wipeormt ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) + + ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 ) + ROM_LOAD( "ramtek6.a4", 0x0000, 0x0020, CRC(205bf9a1) SHA1(3014d226d8afebc6a52e5adb84f1846dd1c0b01c) ) + ROM_LOAD( "ramtek6.g7", 0x0000, 0x0020, CRC(215437e1) SHA1(635f98d8a890b3ddb72a2f764ef007b5f40fcd7f) ) +ROM_END + +// The board number for Clean Sweep is 501082, and the letter to the right would be the revision letter (A, B, C, D). +// Ramtek had revisions A, B, C, D, noted with a sticker that shows the letter for each specific revision. +// Revisions A,B,C have been dumped and rom content is the same (only diff is the location of some chips on the rev B pcb) +ROM_START( cleanswp ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) + + ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 ) + ROM_LOAD( "501075.c6", 0x0000, 0x0020, CRC(be02b5f5) SHA1(f1c616a73c6c2915ea3d0252543b0806704ab2e9) ) // shape of paddle + ROM_LOAD( "501076.d7", 0x0000, 0x0020, CRC(be40b153) SHA1(07fb64ea8caee601e3e3bd6c69beea619dd0489d) ) // ball control memory + ROM_LOAD( "501074.k3", 0x0000, 0x0020, CRC(515a34ba) SHA1(471ca9d99851591ff11a87d18b88871edd7fd268) ) // number character generation +ROM_END + +ROM_START( bballrmt ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) + + ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 ) + ROM_LOAD( "ramtek.a1", 0x0000, 0x0020, CRC(3d505672) SHA1(aba7d80f97f2a1584ffee4e3bde2501b267e071b) ) + ROM_LOAD( "ramtek.a3", 0x0000, 0x0020, CRC(bb2c75a0) SHA1(809d48dfdc966c3aff7498b0c866707796dc646b) ) + ROM_LOAD( "ramtek.a4", 0x0000, 0x0020, CRC(3e449889) SHA1(ddba70b0e9721b60f4846397517b59e900be9dc6) ) + ROM_LOAD( "ramtek.f8", 0x0000, 0x0020, CRC(205bf9a1) SHA1(3014d226d8afebc6a52e5adb84f1846dd1c0b01c) ) + ROM_LOAD( "ramtek.h1", 0x0000, 0x0020, CRC(5d13db19) SHA1(384822aaf55423c7c8736d86c6376f3eab44a5a3) ) + ROM_LOAD( "ramtek.h2", 0x0000, 0x0020, CRC(24d8716c) SHA1(152dae056ced91723059f2debfd0e132383a80c6) ) + ROM_LOAD( "ramtek.h6", 0x0000, 0x0020, CRC(0ead8f9f) SHA1(d84a203221e3bd669ed301643450c6f86bf0f790) ) + ROM_LOAD( "ramtek.h7", 0x0000, 0x0020, CRC(cd19c9ff) SHA1(d9867db0b1b1023d9fb6440b9d20f8417e1da6a7) ) + ROM_LOAD( "ramtek.j9", 0x0000, 0x0020, CRC(4b86eb32) SHA1(07823d59d658911ba4b96ceb87e1f8dc7b27180d) ) + ROM_LOAD( "ramtek.j10", 0x0000, 0x0020, CRC(9e825d0c) SHA1(20c18d152d0b9135cd1fefd62b8bf58d03023529) ) +ROM_END + +// Knockout - believed to be Knockout - XTAL is 10.733 MHz +/* contains 4 proms (soldered in) labelled : +5H - 55030604 +9C - 500399 +4B - 550306-02 +3B - 550306-03 +2B - 550306-01 */ + +/*************************************************************************** + +Ramtek Trivia + +Board is discrete logic. Reads questions from 8-track tapes. + +Contains the following PROMS: + +550549-1.A4 MMI 6301-1 256x4 +550549-2.B4 MMI 6301-1 256x4 +550549-3.C4 MMI 6301-1 256x4 +550549-4.D4 MMI 6301-1 256x4 +550548.E3 Intersil IM5610 32x8 + +Other components of note: + +1 10.7330Mhz crystal +1 AY-5-1013A UART +1 Signetics 2513 character generator +2 2101 Static RAMs (256x4) + +My guess is that this is essentially a special purpose terminal. +Together, 550549-3 and 550549-4 contain character data. + +On the PCB: + 550549-2.B4 has data bits 0 and 1 not connected. + 550549-4.D4 has data bit 3 not connected + +***************************************************************************/ + +ROM_START( trivia ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) + + ROM_REGION( 0x0100, "roms", ROMREGION_ERASE00 ) + ROM_LOAD( "550549-1.a4", 0x0000, 0x0100, CRC(89a2dcc8) SHA1(688f8d916d6ade0ffeeaf8d2900db45eb27abe8c) ) + ROM_LOAD( "550549-2.b4", 0x0000, 0x0100, CRC(2405b7a5) SHA1(1e9e658815ae2e31f97cd41861d0fcf415c12963) ) + ROM_LOAD( "550549-3.c4", 0x0000, 0x0100, CRC(496d5e6a) SHA1(fca17f1710169dff98536d13d80f76060860caf5) ) + ROM_LOAD( "550549-4.d4", 0x0000, 0x0100, CRC(6dbc83e9) SHA1(8a4f211cb12e5a5244d213c20a4e2df6288abcab) ) + ROM_LOAD( "550548.e3", 0x0000, 0x0020, CRC(2b7c6a5e) SHA1(943cc3901c651bfe5bf11a40c27801952731b6de) ) +ROM_END + +GAME( 1973, vollyrmt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Volly (Ramtek) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1973, hockyrmt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Hockey (Ramtek) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1973, soccrrmt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Soccer (Ramtek) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1974, wipeormt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Wipeout (Ramtek) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1974, cleanswp, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Clean Sweep [TTL]", MACHINE_IS_SKELETON ) +GAME( 1974, bballrmt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Baseball (Ramtek) [TTL]", MACHINE_IS_SKELETON ) +GAME( 1975, trivia, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Trivia (Rev B) [TTL]", MACHINE_IS_SKELETON ) |