diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 651a65473cc..bfc7b1a738a 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3141,6 +3141,7 @@ files { MAME_DIR .. "src/mame/drivers/novag_micro2.cpp", MAME_DIR .. "src/mame/drivers/novag_savant.cpp", MAME_DIR .. "src/mame/drivers/novag_sexpert.cpp", + MAME_DIR .. "src/mame/drivers/novag_snova.cpp", MAME_DIR .. "src/mame/drivers/novag_supremo.cpp", } diff --git a/src/mame/drivers/gp_2.cpp b/src/mame/drivers/gp_2.cpp index a5d2bbf4c91..88ab532f6ef 100644 --- a/src/mame/drivers/gp_2.cpp +++ b/src/mame/drivers/gp_2.cpp @@ -833,11 +833,11 @@ ROM_START(suprnova) ROM_END // GP1 dips -GAME( 1979, sshootep, 0, gp_2, gp_1, gp_2_state, empty_init, ROT0, "Game Plan", "Sharpshooter", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 1979, coneyis, 0, gp_2, gp_1, gp_2_state, empty_init, ROT0, "Game Plan", "Old Coney Island!", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 1980, lizard, 0, gp_2, gp_1, gp_2_state, empty_init, ROT0, "Game Plan", "Pinball Lizard", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 1982, suprnova, 0, gp_2, gp_1, gp_2_state, empty_init, ROT0, "Game Plan", "Super Nova", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 1983, sshootr2, 0, gp_2, gp_1, gp_2_state, empty_init, ROT0, "Game Plan", "Sharp Shooter II", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1979, sshootep, 0, gp_2, gp_1, gp_2_state, empty_init, ROT0, "Game Plan", "Sharpshooter (Game Plan)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1979, coneyis, 0, gp_2, gp_1, gp_2_state, empty_init, ROT0, "Game Plan", "Old Coney Island!", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1980, lizard, 0, gp_2, gp_1, gp_2_state, empty_init, ROT0, "Game Plan", "Pinball Lizard", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1982, suprnova, 0, gp_2, gp_1, gp_2_state, empty_init, ROT0, "Game Plan", "Super Nova (Game Plan)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 1983, sshootr2, 0, gp_2, gp_1, gp_2_state, empty_init, ROT0, "Game Plan", "Sharp Shooter II", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // GP2 dips GAME( 1981, gwarfare, 0, gp_2, gp_2, gp_2_state, empty_init, ROT0, "Game Plan", "Global Warfare", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp index 102111824bc..5629275bbc6 100644 --- a/src/mame/drivers/hh_pic16.cpp +++ b/src/mame/drivers/hh_pic16.cpp @@ -22,6 +22,7 @@ @061 1655A 1980, Lakeside Le Boom @078 1655A 1980, Ideal Flash *081 1655A 1981, Ramtex Space Invaders/Block Buster + *085 1655A 1980, VTech Soccer 2/Grandstand Match of the Day Soccer @094 1655A 1980, GAF Melody Madness @110 1650A 1979, Tiger/Tandy Rocket Pinball *123 1655A? 1980, Kingsford Match Me/Mini Match Me diff --git a/src/mame/drivers/novag_sexpert.cpp b/src/mame/drivers/novag_sexpert.cpp index 7f67865fbc7..2e59c4763fe 100644 --- a/src/mame/drivers/novag_sexpert.cpp +++ b/src/mame/drivers/novag_sexpert.cpp @@ -609,12 +609,12 @@ CONS( 1988, sexperta, 0, 0, sexpert, sexpert, sexpert_state, init_sexp CONS( 1987, sexperta1, sexperta, 0, sexpert, sexpert, sexpert_state, init_sexpert, "Novag", "Super Expert (version A, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // 878 CONS( 1987, sexperta2, sexperta, 0, sexpert, sexpert, sexpert_state, init_sexpert, "Novag", "Super Expert (version A, set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // 878 CONS( 1988, sexpertb, sexperta, 0, sexpertb, sexpertb, sexpert_state, init_sexpert, "Novag", "Super Expert (version B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // 887 -CONS( 1990, sexpertc, sexperta, 0, sexpertb, sexpertb, sexpert_state, init_sexpert, "Novag", "Super Expert (version C, V3.6)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, sexpertc1, sexperta, 0, sexpertb, sexpertb, sexpert_state, init_sexpert, "Novag", "Super Expert (version C, V3.0)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // 902 +CONS( 1990, sexpertc, sexperta, 0, sexpertb, sexpertb, sexpert_state, init_sexpert, "Novag", "Super Expert (version C, v3.6)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, sexpertc1, sexperta, 0, sexpertb, sexpertb, sexpert_state, init_sexpert, "Novag", "Super Expert (version C, v3.0)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // 902 CONS( 1987, sfortea, 0, 0, sforte, sexpert, sforte_state, init_sexpert, "Novag", "Super Forte (version A, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1987, sfortea1, sfortea, 0, sforte, sexpert, sforte_state, init_sexpert, "Novag", "Super Forte (version A, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1987, sfortea2, sfortea, 0, sforte, sexpert, sforte_state, init_sexpert, "Novag", "Super Forte (version A, set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1988, sforteb, sfortea, 0, sforteb, sexpertb, sforte_state, init_sexpert, "Novag", "Super Forte (version B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, sfortec, sfortea, 0, sforteb, sexpertb, sforte_state, init_sexpert, "Novag", "Super Forte (version C, V3.6)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, sfortec1, sfortea, 0, sforteb, sexpertb, sforte_state, init_sexpert, "Novag", "Super Forte (version C, V1.2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, sfortec, sfortea, 0, sforteb, sexpertb, sforte_state, init_sexpert, "Novag", "Super Forte (version C, v3.6)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, sfortec1, sfortea, 0, sforteb, sexpertb, sforte_state, init_sexpert, "Novag", "Super Forte (version C, v1.2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/novag_snova.cpp b/src/mame/drivers/novag_snova.cpp new file mode 100644 index 00000000000..28bc437972f --- /dev/null +++ b/src/mame/drivers/novag_snova.cpp @@ -0,0 +1,133 @@ +// license:BSD-3-Clause +// copyright-holders:hap +// thanks-to:Berger +/****************************************************************************** + +Novag Super Nova (model 904) + +Hardware notes: +- Hitachi HD63A03YP MCU @ 16MHz (4MHz internal) +- 32KB ROM(TC57256AD-12), 8KB RAM(CXK58648P-10L) +- LCD with 4 digits and custom segments, no LCD chip +- buzzer, 16 LEDs, 8*8 chessboard buttons + +TODO: +- everything +- if it turns out that the hardware is similar enough to supremo, merge drivers? + +******************************************************************************/ + +#include "emu.h" + +#include "cpu/m6800/m6801.h" +#include "machine/sensorboard.h" +#include "sound/dac.h" + +#include "speaker.h" + + +namespace { + +class snova_state : public driver_device +{ +public: + snova_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_board(*this, "board"), + m_dac(*this, "dac") + { } + + // machine configs + void snova(machine_config &config); + +protected: + virtual void machine_start() override; + +private: + // devices/pointers + required_device m_maincpu; + required_device m_board; + required_device m_dac; + + void main_map(address_map &map); +}; + +void snova_state::machine_start() +{ +} + + + +/****************************************************************************** + I/O +******************************************************************************/ + +// ... + + + +/****************************************************************************** + Address Maps +******************************************************************************/ + +void snova_state::main_map(address_map &map) +{ + map(0x0000, 0x0027).m(m_maincpu, FUNC(hd6303y_cpu_device::hd6301y_io)); + map(0x0040, 0x013f).ram(); // internal + map(0x4000, 0x5fff).ram(); + map(0x8000, 0xffff).rom(); +} + + + +/****************************************************************************** + Input Ports +******************************************************************************/ + +static INPUT_PORTS_START( snova ) +INPUT_PORTS_END + + + +/****************************************************************************** + Machine Configs +******************************************************************************/ + +void snova_state::snova(machine_config &config) +{ + /* basic machine hardware */ + HD6303Y(config, m_maincpu, 16_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &snova_state::main_map); + + SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS); + m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess)); + m_board->set_delay(attotime::from_msec(150)); + + /* sound hardware */ + SPEAKER(config, "speaker").front_center(); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); +} + + + +/****************************************************************************** + ROM Definitions +******************************************************************************/ + +ROM_START( nsnova ) // ID = N1.05 + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("n_530.u5", 0x8000, 0x8000, CRC(727a0ada) SHA1(129c1edc5c1d2e12ce97ebef81c6d5555464a11d) ) +ROM_END + +} // anonymous namespace + + + +/****************************************************************************** + Drivers +******************************************************************************/ + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS +CONS( 1990, nsnova, 0, 0, snova, snova, snova_state, empty_init, "Novag", "Super Nova (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) + diff --git a/src/mame/drivers/novag_supremo.cpp b/src/mame/drivers/novag_supremo.cpp index b1c7cdf5257..3154a83aa96 100644 --- a/src/mame/drivers/novag_supremo.cpp +++ b/src/mame/drivers/novag_supremo.cpp @@ -54,7 +54,7 @@ private: // devices/pointers required_device m_maincpu; required_device m_board; - optional_device m_dac; + required_device m_dac; void main_map(address_map &map); }; diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 3568f530143..d87ac5b1dfb 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -32788,6 +32788,9 @@ sforteb // sfortec // sfortec1 // +@source:novag_snova.cpp +nsnova + @source:novag_supremo.cpp supremo diff --git a/src/mame/mess.flt b/src/mame/mess.flt index dedab313bb9..299d9388dde 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -685,6 +685,7 @@ novag_micro.cpp novag_micro2.cpp novag_savant.cpp novag_sexpert.cpp +novag_snova.cpp novag_supremo.cpp ns5652.cpp o2.cpp