summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2019-03-23 08:55:51 -0400
committer GitHub <noreply@github.com>2019-03-23 08:55:51 -0400
commitde34548eb142c17629dbc2124d121179ca959221 (patch)
tree5adc5305de20cb7124e28d84115a81c7225cd9b5
parente3cc7488125090ce0b7e890aef90a8d6a425f9ee (diff)
parenta4a27efc7883969e16e66c68ea0dca595a4265f3 (diff)
Merge pull request #4794 from DavidHaywood/200319_2
new NOT WORKING machines
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/titan_soc.cpp121
-rw-r--r--src/mame/mame.lst4
-rw-r--r--src/mame/mess.flt1
4 files changed, 127 insertions, 0 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index d957b76c9b9..9d42bd1aa43 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -3555,6 +3555,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..7183521f708
--- /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<uint32_t> m_mainram;
+ required_device<cpu_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, "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 )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 22dde44843a..7e020a09024 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -37695,6 +37695,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 6707beb357e..675f1b05dc3 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -787,6 +787,7 @@ ti990_10.cpp
ti990_4.cpp
ticalc1x.cpp
tiki100.cpp
+titan_soc.cpp
tim011.cpp
tim100.cpp
timex.cpp