summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--scripts/target/mame/arcade.lua1
-rw-r--r--src/mame/arcade.flt1
-rw-r--r--src/mame/drivers/hapyfish.cpp85
-rw-r--r--src/mame/mame.lst3
4 files changed, 90 insertions, 0 deletions
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index 790b13fab19..3b36402f618 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -4450,6 +4450,7 @@ files {
MAME_DIR .. "src/mame/includes/gumbo.h",
MAME_DIR .. "src/mame/video/gumbo.cpp",
MAME_DIR .. "src/mame/drivers/gunpey.cpp",
+ MAME_DIR .. "src/mame/drivers/hapyfish.cpp",
MAME_DIR .. "src/mame/drivers/hideseek.cpp",
MAME_DIR .. "src/mame/drivers/hazelgr.cpp",
MAME_DIR .. "src/mame/drivers/headonb.cpp",
diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt
index 5fdab2a318f..d1a207b97e0 100644
--- a/src/mame/arcade.flt
+++ b/src/mame/arcade.flt
@@ -479,6 +479,7 @@ gyruss.cpp
halleys.cpp
hanaawas.cpp
hankin.cpp
+hapyfish.cpp
harddriv.cpp
hazelgr.cpp
hcastle.cpp
diff --git a/src/mame/drivers/hapyfish.cpp b/src/mame/drivers/hapyfish.cpp
new file mode 100644
index 00000000000..1d57c35c35a
--- /dev/null
+++ b/src/mame/drivers/hapyfish.cpp
@@ -0,0 +1,85 @@
+// license:BSD-3-Clause
+// copyright-holders:David Haywood
+
+/* Happy Fish (xxx-in-1 multigame)
+
+ Primary system components
+
+ SAMSUNG ARM-based Soc
+ 2x SAMSUNG Flash ROMs
+ + a bunch of RAM
+
+ (todo, fill in exact details)
+
+ progress was previously shown with this, booting to the menu at least
+ using (I believe) ghosteo.cpp as a base, but the contributor is no
+ longer active, and that driver was never submitted.
+
+*/
+
+#include "emu.h"
+#include "cpu/arm7/arm7.h"
+#include "cpu/arm7/arm7core.h"
+
+
+class hapyfish_state : public driver_device
+{
+public:
+ hapyfish_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu") { }
+
+ virtual void video_start() override;
+ uint32_t screen_update_hapyfish(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ required_device<cpu_device> m_maincpu;
+};
+
+static ADDRESS_MAP_START( hapyfish_map, AS_PROGRAM, 32, hapyfish_state )
+ AM_RANGE(0x00000000, 0x00003fff) AM_ROM
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( hapyfish )
+INPUT_PORTS_END
+
+uint32_t hapyfish_state::screen_update_hapyfish(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
+void hapyfish_state::video_start()
+{
+}
+
+
+
+static MACHINE_CONFIG_START( hapyfish, hapyfish_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", ARM9, 20000000) // ?? ARM baesd CPU
+ MCFG_CPU_PROGRAM_MAP(hapyfish_map)
+ MCFG_DEVICE_DISABLE()
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(64*8, 64*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 0*8, 28*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(hapyfish_state, screen_update_hapyfish)
+MACHINE_CONFIG_END
+
+
+
+ROM_START( hapyfsh2 )
+ ROM_REGION( 0x04000, "maincpu", ROMREGION_ERASE00 )
+ // the SoC copies some data from the flash in order to boot
+
+ ROM_REGION( 0x84000000, "flash1", 0 )
+ ROM_LOAD( "flash.u6", 0x00000000, 0x84000000, CRC(3aa364a2) SHA1(fe09f549a937ecaf8f7a859522a6635e272fe714) )
+
+ ROM_REGION( 0x84000000, "flash2", 0 )
+ ROM_LOAD( "flash.u28", 0x00000000, 0x84000000, CRC(f00a25cd) SHA1(9c33f8e26b84cea957d9c37fb83a686b948c6834) )
+ROM_END
+
+ GAME( 201?, hapyfsh2, 0, hapyfish, hapyfish, driver_device, 0, ROT0, "bootleg", "Happy Fish (V2 PCB, 302-in-1)", MACHINE_IS_SKELETON )
+
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 7c7db655643..e277c0d20f2 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -14106,6 +14106,9 @@ howzat //
orbit1 //
shark //
+@source:hapyfish.cpp
+hapyfsh2 // bootleg
+
@source:harddriv.cpp
harddriv // 136052 (c) 1988
harddriv1 // 136052 (c) 1988