From 942f1028e21f4bca45e3729640b32364a06a9362 Mon Sep 17 00:00:00 2001 From: DavidHaywood <28625134+DavidHaywood@users.noreply.github.com> Date: Fri, 22 Mar 2019 10:44:25 +0000 Subject: new NOT WORKING machines --- Mega Drive 4 / Guitar Idol (set 1) [Alexandre Souza] --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/titan_soc.cpp | 121 +++++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 4 ++ src/mame/mess.flt | 1 + 4 files changed, 127 insertions(+) create mode 100644 src/mame/drivers/titan_soc.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 4451b161e13..e6188730795 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3552,6 +3552,7 @@ files { MAME_DIR .. "src/mame/machine/xavix2002_io.cpp", MAME_DIR .. "src/mame/machine/xavix2002_io.h", MAME_DIR .. "src/mame/drivers/xavix2.cpp", + MAME_DIR .. "src/mame/drivers/titan_soc.cpp", } createMESSProjects(_target, _subtarget, "ultimachine") diff --git a/src/mame/drivers/titan_soc.cpp b/src/mame/drivers/titan_soc.cpp new file mode 100644 index 00000000000..67d38d6f719 --- /dev/null +++ b/src/mame/drivers/titan_soc.cpp @@ -0,0 +1,121 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +/************************************************************************ + + Titan 1.0C (System on a Chip - ARM based processor) + + used by + + Atari / Colecovision / Intellivision Flashback (not dumped) + TecToy Mega Drive 4 + + + Notes: + + It is possible to connect a debug terminal + Has a USB port for user to plug in a flash drive etc. + 4MB RAM + + Emulators run on the ARM, games don't use some modes 100% correctly compared to original + hardware, only correct for the included emulator. Some games are not emulation based. + +*/ + +#include "emu.h" +#include "cpu/arm7/arm7.h" +#include "cpu/arm7/arm7core.h" +#include "emupal.h" +#include "screen.h" + +class titan_soc_state : public driver_device +{ +public: + titan_soc_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_mainram(*this, "mainram"), + m_maincpu(*this, "maincpu") + { } + + void titan_soc(machine_config &config); + + void init_titan_soc(); + +private: + required_shared_ptr m_mainram; + required_device m_maincpu; + + virtual void machine_reset() override; + virtual void video_start() override; + uint32_t screen_update_titan_soc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + void map(address_map &map); +}; + + + +void titan_soc_state::map(address_map &map) +{ + map(0x00000000, 0x0007ffff).ram().share("mainram"); +} + +static INPUT_PORTS_START( titan_soc ) + +INPUT_PORTS_END + + +void titan_soc_state::video_start() +{ +} + +uint32_t titan_soc_state::screen_update_titan_soc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void titan_soc_state::machine_reset() +{ +} + +void titan_soc_state::titan_soc(machine_config &config) +{ + /* basic machine hardware */ + ARM920T(config, m_maincpu, 200000000); // type + clock unknown + m_maincpu->set_addrmap(AS_PROGRAM, &titan_soc_state::map); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(320, 256); + screen.set_visarea(0, 320-1, 0, 256-1); + screen.set_screen_update(FUNC(titan_soc_state::screen_update_titan_soc)); + + PALETTE(config, "palette").set_entries(256); +} + + + +ROM_START( megadri4 ) + ROM_REGION( 0x80000, "serial", 0 ) // this was only dumped from one of the PCBS, not sure which one, might not be correct for both + ROM_LOAD( "25l4005a - rom de boot megadrive4.bin", 0x000000, 0x80000, CRC(1b5c3c31) SHA1(97f301ae441ca23d3c52a901319e375654920867) ) + + ROM_REGION( 0x08400000, "flash", 0 ) + ROM_LOAD( "ic9 megadrive4 titan.bin", 0x000000, 0x08400000, CRC(ed92b81a) SHA1(a3d51a2febf670820d6df009660b96ff6407f475) ) +ROM_END + +ROM_START( megadri4a ) + ROM_REGION( 0x80000, "serial", 0 ) // this was only dumped from one of the PCBS, not sure which one, might not be correct for both + ROM_LOAD( "25l4005a - rom de boot megadrive4.bin", 0x000000, 0x80000, CRC(1b5c3c31) SHA1(97f301ae441ca23d3c52a901319e375654920867) ) + + ROM_REGION( 0x08400000, "flash", 0 ) + ROM_LOAD( "ic9 megadrive4 titan segunda placa.bin", 0x000000, 0x08400000, CRC(4b423898) SHA1(293127d2f6169717a7fbfcf18f13e4b1735236f7) ) +ROM_END + + + +void titan_soc_state::init_titan_soc() +{ + // can either run directly from serial ROM, or copies it to RAM on startup + memcpy(m_mainram, memregion("serial")->base(), 0x80000); +} + +GAME( 2009, megadri4, 0, titan_soc, titan_soc, titan_soc_state, init_titan_soc, ROT0, "Tec Toy (licensed from Sega)", "Mega Drive 4 / Guitar Idol (set 1)", MACHINE_IS_SKELETON ) +GAME( 2009, megadri4a, megadri4, titan_soc, titan_soc, titan_soc_state, init_titan_soc, ROT0, "Tec Toy (licensed from Sega)", "Mega Drive 4 / Guitar Idol (set 2)", MACHINE_IS_SKELETON ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 872d39e9189..0e2698541ce 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -37685,6 +37685,10 @@ timepltc // GX393 (c) 1982 + Centuri license timetrv // (c) 1991.10 Virtual Image Productions timetrv2 // (c) 1991.10 Virtual Image Productions +@source:titan_soc.cpp +megadri4 +megadri4a + @source:timex.cpp tc2048 // 198? TC2048 ts2068 // 1983 TS2068 diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 4e62ad727fa..826d6d8c3f7 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -785,6 +785,7 @@ ti990_10.cpp ti990_4.cpp ticalc1x.cpp tiki100.cpp +titan_soc.cpp tim011.cpp tim100.cpp timex.cpp -- cgit v1.2.3 From a4a27efc7883969e16e66c68ea0dca595a4265f3 Mon Sep 17 00:00:00 2001 From: DavidHaywood <28625134+DavidHaywood@users.noreply.github.com> Date: Fri, 22 Mar 2019 10:47:04 +0000 Subject: 1 word (nw) --- src/mame/drivers/titan_soc.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mame/drivers/titan_soc.cpp b/src/mame/drivers/titan_soc.cpp index 67d38d6f719..7183521f708 100644 --- a/src/mame/drivers/titan_soc.cpp +++ b/src/mame/drivers/titan_soc.cpp @@ -117,5 +117,5 @@ void titan_soc_state::init_titan_soc() memcpy(m_mainram, memregion("serial")->base(), 0x80000); } -GAME( 2009, megadri4, 0, titan_soc, titan_soc, titan_soc_state, init_titan_soc, ROT0, "Tec Toy (licensed from Sega)", "Mega Drive 4 / Guitar Idol (set 1)", MACHINE_IS_SKELETON ) -GAME( 2009, megadri4a, megadri4, titan_soc, titan_soc, titan_soc_state, init_titan_soc, ROT0, "Tec Toy (licensed from Sega)", "Mega Drive 4 / Guitar Idol (set 2)", MACHINE_IS_SKELETON ) +GAME( 2009, megadri4, 0, titan_soc, titan_soc, titan_soc_state, init_titan_soc, ROT0, "Tectoy (licensed from Sega)", "Mega Drive 4 / Guitar Idol (set 1)", MACHINE_IS_SKELETON ) +GAME( 2009, megadri4a, megadri4, titan_soc, titan_soc, titan_soc_state, init_titan_soc, ROT0, "Tectoy (licensed from Sega)", "Mega Drive 4 / Guitar Idol (set 2)", MACHINE_IS_SKELETON ) -- cgit v1.2.3