diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 6059c2c7504..ece5ab8a4f4 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -5041,6 +5041,7 @@ files { MAME_DIR .. "src/mame/includes/norautp.h", MAME_DIR .. "src/mame/audio/norautp.cpp", MAME_DIR .. "src/mame/drivers/notechan.cpp", + MAME_DIR .. "src/mame/drivers/novadesitec.cpp", MAME_DIR .. "src/mame/drivers/nsg6809.cpp", MAME_DIR .. "src/mame/drivers/nsmpoker.cpp", MAME_DIR .. "src/mame/drivers/odyssey.cpp", diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt index 2a11adcdf3f..26257b3b556 100644 --- a/src/mame/arcade.flt +++ b/src/mame/arcade.flt @@ -921,6 +921,7 @@ nmkmedal.cpp norautp.cpp notechan.cpp nova2001.cpp +novadesitec.cpp nsg6809.cpp nsm.cpp nsmpoker.cpp diff --git a/src/mame/drivers/39in1.cpp b/src/mame/drivers/39in1.cpp index c3fabcd766b..b757d4bf248 100644 --- a/src/mame/drivers/39in1.cpp +++ b/src/mame/drivers/39in1.cpp @@ -394,7 +394,7 @@ ROM_START( 39in1 ) // data ROM - contains a filesystem with ROMs, fonts, graphics, etc. in an unknown compressed format ROM_REGION32_LE( 0x200000, "data", 0 ) - ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) + ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) // CGC-NP203 string // EEPROM - contains security data ROM_REGION16_BE( 0x200, "eeprom", 0 ) @@ -408,7 +408,7 @@ ROM_START( 48in1 ) // data ROM - contains a filesystem with ROMs, fonts, graphics, etc. in an unknown compressed format ROM_REGION32_LE( 0x200000, "data", 0 ) - ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) + ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) // CGC-NP203 string // EEPROM - contains security data ROM_REGION16_BE( 0x200, "eeprom", 0 ) @@ -423,7 +423,7 @@ ROM_START( 48in1b ) // data ROM - contains a filesystem with ROMs, fonts, graphics, etc. in an unknown compressed format ROM_REGION32_LE( 0x400000, "data", 0 ) - ROM_LOAD( "48_flash.u19", 0x000000, 0x400000, CRC(a975db44) SHA1(5be6520b2ba7728e9e2de3c62ae7c3b88b25172a) ) + ROM_LOAD( "48_flash.u19", 0x000000, 0x400000, CRC(a975db44) SHA1(5be6520b2ba7728e9e2de3c62ae7c3b88b25172a) ) // CGC-NP205 string // EEPROM - contains security data ROM_REGION16_BE( 0x200, "eeprom", 0 ) @@ -438,7 +438,7 @@ ROM_START( 48in1a ) // data ROM - contains a filesystem with ROMs, fonts, graphics, etc. in an unknown compressed format ROM_REGION32_LE( 0x200000, "data", 0 ) - ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) + ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) // CGC-NP203 string // EEPROM - contains security data ROM_REGION16_BE( 0x200, "eeprom", 0 ) @@ -453,7 +453,7 @@ ROM_START( 48in1c ) // data ROM - contains a filesystem with ROMs, fonts, graphics, etc. in an unknown compressed format ROM_REGION32_LE( 0x200000, "data", 0 ) - ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) + ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) // CGC-NP203 string // EEPROM - contains security data ROM_REGION16_BE( 0x200, "eeprom", 0 ) @@ -468,7 +468,7 @@ ROM_START( 60in1 ) // data ROM - contains a filesystem with ROMs, fonts, graphics, etc. in an unknown compressed format ROM_REGION32_LE( 0x400000, "data", 0 ) - ROM_LOAD( "flash.u19", 0x000000, 0x400000, CRC(0cfed2a0) SHA1(9aac23f5267af56255e6f8aefade9f00bc106325) ) + ROM_LOAD( "flash.u19", 0x000000, 0x400000, CRC(0cfed2a0) SHA1(9aac23f5267af56255e6f8aefade9f00bc106325) ) // CGC-NP206 string // EEPROM - contains security data ROM_REGION16_BE( 0x200, "eeprom", 0 ) @@ -482,7 +482,7 @@ ROM_START( 4in1a ) // data ROM - contains a filesystem with ROMs, fonts, graphics, etc. in an unknown compressed format ROM_REGION32_LE( 0x200000, "data", 0 ) - ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) // confirmed same flash rom as 39 in 1 + ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) // confirmed same flash rom as 39 in 1, CGC-NP203 string // EEPROM - contains security data ROM_REGION16_BE( 0x200, "eeprom", 0 ) @@ -496,7 +496,7 @@ ROM_START( 4in1b ) // data ROM - contains a filesystem with ROMs, fonts, graphics, etc. in an unknown compressed format ROM_REGION32_LE( 0x200000, "data", 0 ) - ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) + ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) // CGC-NP203 string // EEPROM - contains security data ROM_REGION16_BE( 0x200, "eeprom", 0 ) @@ -512,7 +512,7 @@ ROM_START( 19in1 ) // data ROM - contains a filesystem with ROMs, fonts, graphics, etc. in an unknown compressed format ROM_REGION32_LE( 0x200000, "data", 0 ) - ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) // assuming same flash rom + ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) ) // assuming same flash rom, CGC-NP203 string // EEPROM - contains security data ROM_REGION16_BE( 0x200, "eeprom", 0 ) @@ -581,11 +581,11 @@ ROM_START( pokrwild ) // PCB451 - POKER'S WILD FP102 sticker on PCB outside the ROM_REGION( 0x80000, "maincpu", 0 ) ROM_LOAD( "pokers wild v117.u2", 0x00000, 0x80000, CRC(96e18540) SHA1(b8fbf0a78a496e4ebea3e4603f4e3a52823c1f31) ) - ROM_REGION32_LE( 0x200000, "data", 0 ) - ROM_LOAD( "flash.u19", 0x000000, 0x200000, NO_DUMP ) + ROM_REGION32_LE( 0x400000, "data", 0 ) + ROM_LOAD( "m5m29gt320.u19", 0x000000, 0x400000, CRC(824fd188) SHA1(38517a78e853a600abcb6256ff77482a250c6ee6) ) // 11xxxxxxxxxxxxxxxxxxxx = 0xFF, PKWILD-FP103 string ROM_REGION16_BE( 0x200, "eeprom", 0 ) - ROM_LOAD( "93c66.u32", 0x000, 0x200, NO_DUMP ) + ROM_LOAD( "at93c66a.u32", 0x000, 0x200, CRC(27c7a209) SHA1(4d8e0ab18adb882362d800e2c247b3e27e6949e1) ) ROM_END } // anonymous namespace diff --git a/src/mame/drivers/novadesitec.cpp b/src/mame/drivers/novadesitec.cpp new file mode 100644 index 00000000000..2bfec19de14 --- /dev/null +++ b/src/mame/drivers/novadesitec.cpp @@ -0,0 +1,143 @@ +// license:BSD-3-Clause +// copyright-holders: + +/* +Hardware notes: +PCB named FR002-E + +MB90F533A MCU (with 128Kbytes internal ROM) +16.000 MHz XTAL (near MCU) +Lattice ispLSI 1032E High Density Programmable Logic +ADV476KP50 RAM-DAC +Oki M6376 sound chip +2x 8-dip banks + +Not much can be done until the MCU is somehow dumped. +*/ + +#include "emu.h" + +#include "cpu/f2mc16/f2mc16.h" +#include "sound/okim6376.h" + +#include "screen.h" +#include "speaker.h" + + +namespace { + +class novadesitec_state : public driver_device +{ +public: + novadesitec_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") + { } + + void novadesitec(machine_config &config); + +private: + required_device m_maincpu; + + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + void main_map(address_map &map); +}; + +uint32_t novadesitec_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void novadesitec_state::main_map(address_map &map) +{ +} + + +static INPUT_PORTS_START( novadesitec ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSW1") + PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "DSW1:1") + PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW1:2") + PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW1:3") + PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW1:4") + PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW1:5") + PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW1:6") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW1:7") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW1:8") + + PORT_START("DSW2") + PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "DSW2:1") + PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW2:2") + PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW2:3") + PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW2:4") + PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW2:5") + PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW2:6") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW2:7") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW2:8") +INPUT_PORTS_END + + +void novadesitec_state::novadesitec(machine_config &config) +{ + // basic machine hardware + F2MC16(config, m_maincpu, 16_MHz_XTAL); // actually MB90F533A + m_maincpu->set_addrmap(AS_PROGRAM, &novadesitec_state::main_map); + + // video hardware + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); // TODO: all wrong + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(novadesitec_state::screen_update)); + + // sound hardware + SPEAKER(config, "mono").front_center(); // TODO: verify if stereo + + OKIM6376(config, "oki", 16_MHz_XTAL / 16).add_route(ALL_OUTPUTS, "mono", 0.75); // clock unknown +} + + +ROM_START( clrmatch ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "cm v.1.9p.u5", 0x00000, 0x20000, NO_DUMP ) + + ROM_REGION( 0x200000, "gfx", 0 ) // TODO: verify ROM loading + ROM_LOAD( "color match 1.u13", 0x000000, 0x080000, CRC(8f3978f6) SHA1(0a1b19c2df2a5b6d4875dce2809181d08dcf48c2) ) + ROM_LOAD( "color match 2.u14", 0x080000, 0x080000, CRC(42e35ca7) SHA1(cd4e2e34055d7fb71765e6dd0cecaca0f3e54ead) ) // u location not readable, guessed + ROM_LOAD( "color match 3.u16", 0x100000, 0x080000, CRC(88b3241e) SHA1(5636addb04c5a9a94ecfd6c72b9d91a5935ba6b0) ) + ROM_LOAD( "color match 4.u15", 0x180000, 0x080000, CRC(aa9e1764) SHA1(757a175dda53f3a6ad74cf2203c24443b77e8949) ) // u location not readable, guessed + + ROM_REGION( 0x80000, "oki", 0 ) + ROM_LOAD( "color match 5.u29", 0x00000, 0x80000, CRC(ad9778c9) SHA1(43bd016e8bdb43772159f088a465c5e5df9505fe) ) +ROM_END + +ROM_START( sportmem ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "sm ver.3.1.u5", 0x00000, 0x20000, NO_DUMP ) + + ROM_REGION( 0x200000, "gfx", 0 ) // TODO: verify ROM loading + ROM_LOAD( "sport memory 1.u13", 0x000000, 0x080000, CRC(937b4e3d) SHA1(2f8a6b5639cc1558428ce27ee42be81e389e8748) ) + ROM_LOAD( "sport memory 2.u14", 0x080000, 0x080000, CRC(e5201108) SHA1(767eae3fbc761cdf4233693863f52b1a5eceddeb) ) // u location not readable, guessed + ROM_LOAD( "sport memory 3.u16", 0x100000, 0x080000, CRC(92798401) SHA1(99445aeb990e585c22a12ddb48137699ff6a147e) ) + ROM_LOAD( "sport memory 4.u15", 0x180000, 0x080000, CRC(0950af57) SHA1(743b592a87a7dd11cf6835ec9415386250e99783) ) // u location not readable, guessed + + ROM_REGION( 0x80000, "oki", 0 ) + ROM_LOAD( "sport memory 5.u29", 0x00000, 0x80000, CRC(b840682c) SHA1(7f2bda09f209fa72732a08fc05767219e13777ce) ) +ROM_END + +} // anonymous namespace + + +GAME( 200?, clrmatch, 0, novadesitec, novadesitec, novadesitec_state, empty_init, ROT0, "Nova Desitec", "Color Match", MACHINE_IS_SKELETON ) +GAME( 200?, sportmem, 0, novadesitec, novadesitec, novadesitec_state, empty_init, ROT0, "Nova Desitec", "Sport Memory", MACHINE_IS_SKELETON ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index a2ea0efd80e..0859be45b9a 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -33545,6 +33545,10 @@ raiders5 // UPL-85004 (c) 1985 raiders5t // UPL-85004 (c) 1985 Taito license raiders5ta // +@source:novadesitec.cpp +clrmatch +sportmem + @source:novag_cexpert.cpp cexpert