diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index ddb353afa80..cd31c3f9740 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -5153,6 +5153,7 @@ files { MAME_DIR .. "src/mame/drivers/trucocl.cpp", MAME_DIR .. "src/mame/includes/trucocl.h", MAME_DIR .. "src/mame/video/trucocl.cpp", + MAME_DIR .. "src/mame/drivers/truesys.cpp", MAME_DIR .. "src/mame/drivers/trvmadns.cpp", MAME_DIR .. "src/mame/drivers/trvquest.cpp", MAME_DIR .. "src/mame/drivers/ttchamp.cpp", diff --git a/src/devices/sound/namco.cpp b/src/devices/sound/namco.cpp index e42632e1fdd..a83f0ccbb65 100644 --- a/src/devices/sound/namco.cpp +++ b/src/devices/sound/namco.cpp @@ -23,7 +23,7 @@ CUS30 also uses the 99XX DAC, or two 99XX in the optional 16-channel stereo configuration, but it uses no PROM and delivers its own samples. - The CUS30 has been decapped and verified to be an ULA. + The CUS30 has been decapped and verified to be a ULA. ***************************************************************************/ diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt index 0fcc26e5eda..587f4a9f3c9 100644 --- a/src/mame/arcade.flt +++ b/src/mame/arcade.flt @@ -1390,6 +1390,7 @@ triviaquiz.cpp trivrus.cpp truco.cpp trucocl.cpp +truesys.cpp trvmadns.cpp trvquest.cpp tryout.cpp diff --git a/src/mame/drivers/funworld.cpp b/src/mame/drivers/funworld.cpp index 6af3d2d1b7a..2629e7e6abf 100644 --- a/src/mame/drivers/funworld.cpp +++ b/src/mame/drivers/funworld.cpp @@ -7700,7 +7700,7 @@ ROM_END // http://www.citylan.it/wiki/images/6/69/1189_PCB_component_side.jpg ROM_START( royalcrd_nes ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "me2.bin", 0x0000, 0x10000, CRC(2144efab) SHA1(47fef8e0d2b05869e667731fdaf535722b9a8f19)) // this is one (or more?) Royal Card programs, with (c)1991 TAB Austria in them + ROM_LOAD( "me2.bin", 0x0000, 0x10000, CRC(2144efab) SHA1(47fef8e0d2b05869e667731fdaf535722b9a8f19) ) // this is one (or more?) Royal Card programs, with (c)1991 TAB Austria in them ROM_REGION( 0x2000, "pic16c57", 0 ) ROM_LOAD( "pic.bin", 0x0000, 0x2000, NO_DUMP ) @@ -7721,6 +7721,29 @@ ROM_START( royalcrd_nes ) ROM_LOAD( "me1.bin", 0x0000, 0x80000, CRC(7114b404) SHA1(0f5a206af25725b2e97c404a616e341f15925431) ) // == 64 in 1 [a1][p1].chr nes:mc_64a 64 in 1 (Alt Games) ROM_END +ROM_START( royalcrd_nesa ) // same as royalcrd_nes but for different main CPU ROM (mostly some routines appear to have been removed in royalcrd_nes but present here) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "me2.bin", 0x0000, 0x10000, CRC(04b16c53) SHA1(b0fcf8e2049b6065b95990c3a597166a83d7c7e6) ) // SLDH, this is one (or more?) Royal Card programs, with (c)1991 TAB Austria in them + + ROM_REGION( 0x2000, "pic16c55", 0 ) + ROM_LOAD( "pic.bin", 0x0000, 0x2000, NO_DUMP ) + + ROM_REGION( 0x20000, "gfx1", 0 ) // these are (encrypted?) GFX ROMS + ROM_LOAD( "me3.bin", 0x00000, 0x10000, CRC(398a6f7c) SHA1(126048c75ab5df421f9dd2e39c6b68e15bf54f38) ) + ROM_LOAD( "me4.bin", 0x10000, 0x10000, CRC(6f84222a) SHA1(eee8e46d464211914cb99d15fd9f7dd4aa009664) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "24c04.bin", 0x0000, 0x0200, CRC(e349687c) SHA1(1e6da87ba771baacc7687524158a1db8b789b673) ) + ROM_REGION( 0x0200, "proms2", 0 ) + ROM_LOAD( "82s147.bin", 0x0000, 0x0200, CRC(5377c680) SHA1(33857bbbfebfce28b8a68c69e030bf560a701e83) ) + + // and this is just an untouched NES multigame.. + ROM_REGION( 0x0100000, "nes_prg", 0 ) + ROM_LOAD( "me0.bin", 0x0000, 0x0100000, CRC(83a4e841) SHA1(280e1a26737fe0b90dd19be706df89e09ef84c77) ) // == 64 in 1 [a1][p1].prg nes:mc_64a 64 in 1 (Alt Games) + ROM_REGION( 0x80000, "nes_chr", 0 ) + ROM_LOAD( "me1.bin", 0x0000, 0x80000, CRC(7114b404) SHA1(0f5a206af25725b2e97c404a616e341f15925431) ) // == 64 in 1 [a1][p1].chr nes:mc_64a 64 in 1 (Alt Games) +ROM_END + // http://www.citylan.it/wiki/images/5/54/1188_PCB_component_side.jpg ROM_START( royalcrd_msx ) ROM_REGION( 0x20000, "maincpu", 0 ) @@ -8811,5 +8834,6 @@ GAMEL( 1999, reflexcrd, royalcrd, royalcd1, royalcrd, funworld_state, empt GAMEL( 199?, clubcard, 0, clubcard, clubcard, funworld_state, empty_init, ROT0, "Impera / Mega Tech", "Club Card (ver. 1.1 English)", MACHINE_IMPERFECT_COLORS, layout_jollycrd ) // use fw1stpal machine for green background // These are 2-in-1 stealth boards, they can run the Poker game, or, using completely separate hardware on the same PCB, a NES / MSX Multigames! -GAMEL( 1991, royalcrd_nes, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "bootleg", "Royal Card (stealth with NES multigame)", MACHINE_NOT_WORKING, layout_jollycrd ) +GAMEL( 1991, royalcrd_nes, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "bootleg", "Royal Card (stealth with NES multigame, set 1)", MACHINE_NOT_WORKING, layout_jollycrd ) +GAMEL( 1991, royalcrd_nesa, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "bootleg", "Royal Card (stealth with NES multigame, set 2)", MACHINE_NOT_WORKING, layout_jollycrd ) GAMEL( 1991, royalcrd_msx, royalcrd, royalcd2, royalcrd, funworld_state, empty_init, ROT0, "bootleg", "Royal Card (stealth with MSX multigame)", MACHINE_NOT_WORKING, layout_jollycrd ) diff --git a/src/mame/drivers/truesys.cpp b/src/mame/drivers/truesys.cpp new file mode 100644 index 00000000000..d0833f67556 --- /dev/null +++ b/src/mame/drivers/truesys.cpp @@ -0,0 +1,109 @@ +// license:BSD-3-Clause +// copyright-holders: + +/* +Hardware notes: +PCB named TRUESYSV1.3 with a logo and LAB on the right of it. Under the logo there's 26-06 + +main components: +Altera Cyclone EP1C60240C8N FPGA +unreadable OSC (near the FPGA) +AM29LV400BT-70ED flash ROM +PIC16F874 (chip scratched off, but marked on PCB) +XTAL 18.XXX MHz (near the PIC) +M4T28 TimeKeeper +IS42S16 SDRAM +2x RAMs (type not readable) + +It seems the game is run by a soft CPU core programmed in the FPGA. +The main CPU ROMs contains strings in English (system stuff) and Spanish (game strings). +Manufacturer is unknown. There is an Azkoyen string in ROM, but it's probably the bill validator manufacturer. +*/ + +#include "emu.h" + +#include "cpu/h8/h8s2320.h" + +#include "screen.h" +#include "speaker.h" + + +namespace { + +class truesys_state : public driver_device +{ +public: + truesys_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") + { } + + void unkts(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 truesys_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void truesys_state::main_map(address_map &map) +{ +} + + +static INPUT_PORTS_START( unkts ) // no DIPs on PCB + 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 ) +INPUT_PORTS_END + + +void truesys_state::unkts(machine_config &config) +{ + // basic machine hardware + H8S2328(config, m_maincpu, 32_MHz_XTAL); // TODO: there's no actual CPU, it appears to be run from the FPGA + m_maincpu->set_addrmap(AS_PROGRAM, &truesys_state::main_map); + + // PIC16F874. TODO: not emulated + + // 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(truesys_state::screen_update)); + + // sound hardware + // TODO: no sound chip? is the FPGA doing everything? + SPEAKER(config, "mono").front_center(); +} + + +ROM_START( unkts ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "am29lv400bt.u23", 0x00000, 0x80000, CRC(455af44a) SHA1(9420259e3b953674318109d6c2bae4b69283996a) ) // external FPGA ROM? + // a second dump from a different PCB only has a 2 bytes difference: At 0x70000 0xaa 0x55 instead of 0x00 0x00. + + ROM_REGION( 0x2100, "pic", 0 ) // TODO: sizes may be wrong + ROM_LOAD( "pic_flash.bin", 0x0000, 0x2000, NO_DUMP ) + ROM_LOAD( "pic_eeprom.bin", 0x2000, 0x0100, NO_DUMP ) +ROM_END + +} // anonymous namespace + + +GAME( 200?, unkts, 0, unkts, unkts, truesys_state, empty_init, ROT0, "", "unknown game on TrueSys hardware", MACHINE_IS_SKELETON ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index e8c002b1b8b..79e9d13147c 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -14370,6 +14370,7 @@ royalcdfr // (c) 1991 TAB-Austria royalcrd // (c) 1991 TAB-Austria royalcrd_msx // royalcrd_nes // +royalcrd_nesa // royalcrda // (c) 1991 TAB-Austria royalcrdb // (c) 1991 TAB-Austria royalcrdc // (c) 1991 TAB-Austria @@ -41954,6 +41955,9 @@ truco // (c) 198? Playtronic SRL @source:trucocl.cpp trucocl // (c) 1991 Miky SRL +@source:truesys.cpp +unkts // + @source:trvmadns.cpp trvmadns // (c) 1985 Thunderhead Inc. trvmadnsa // (c) 1985 Thunderhead Inc.