summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author MooglyGuy <therealmogminer@gmail.com>2017-09-02 03:49:55 +0200
committer MooglyGuy <therealmogminer@gmail.com>2017-09-02 03:49:55 +0200
commit68a33b336db3c390dd32ff0a12a56dabe078e9dc (patch)
tree41cc6337b8d888331c358dbbb4c4a998d1c51e66
parent21d7b418a8f35baad0613b087753b935622d635d (diff)
-nds: Skeleton driver. [Ryan Holtz]
-rw-r--r--scripts/target/mame/mess.lua2
-rw-r--r--src/mame/drivers/nds.cpp74
-rw-r--r--src/mame/includes/nds.h29
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
5 files changed, 109 insertions, 0 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 188d91ab023..659981f32fb 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -2466,6 +2466,8 @@ files {
MAME_DIR .. "src/mame/includes/gba.h",
MAME_DIR .. "src/mame/drivers/n64.cpp",
MAME_DIR .. "src/mame/includes/n64.h",
+ MAME_DIR .. "src/mame/drivers/nds.cpp",
+ MAME_DIR .. "src/mame/includes/nds.h",
MAME_DIR .. "src/mame/drivers/nes.cpp",
MAME_DIR .. "src/mame/includes/nes.h",
MAME_DIR .. "src/mame/machine/nes.cpp",
diff --git a/src/mame/drivers/nds.cpp b/src/mame/drivers/nds.cpp
new file mode 100644
index 00000000000..e806677e976
--- /dev/null
+++ b/src/mame/drivers/nds.cpp
@@ -0,0 +1,74 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+/***************************************************************************
+
+ ds.cpp
+
+ Skeleton driver for first-generation Nintendo DS.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "includes/nds.h"
+
+#define VERBOSE_LEVEL (0)
+
+static inline void ATTR_PRINTF(3,4) verboselog(device_t &device, int n_level, const char *s_fmt, ...)
+{
+ if( VERBOSE_LEVEL >= n_level )
+ {
+ va_list v;
+ char buf[ 32768 ];
+ va_start( v, s_fmt );
+ vsprintf( buf, s_fmt, v );
+ va_end( v );
+ device.logerror( "%08x: %s", device.machine().describe_context(), buf );
+ }
+}
+
+static ADDRESS_MAP_START( nds_arm9_map, AS_PROGRAM, 32, nds_state )
+ AM_RANGE(0x00000000, 0x00000fff) AM_ROM
+ AM_RANGE(0x02000000, 0x023fffff) AM_RAM AM_SHARE("mainram")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( nds_arm7_map, AS_PROGRAM, 32, nds_state )
+ AM_RANGE(0x00000000, 0x00003fff) AM_ROM
+ AM_RANGE(0x02000000, 0x023fffff) AM_RAM AM_SHARE("mainram")
+ AM_RANGE(0x03800000, 0x0380ffff) AM_RAM
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( nds )
+INPUT_PORTS_END
+
+
+void nds_state::machine_reset()
+{
+}
+
+void nds_state::machine_start()
+{
+}
+
+static MACHINE_CONFIG_START( nds )
+
+ MCFG_CPU_ADD("arm9", ARM946ES, XTAL_66_6667MHz)
+ MCFG_CPU_PROGRAM_MAP(nds_arm9_map)
+
+ MCFG_CPU_ADD("arm7", ARM7, XTAL_33_333MHz)
+ MCFG_CPU_PROGRAM_MAP(nds_arm7_map)
+MACHINE_CONFIG_END
+
+/* Help identifying the region and revisions of the set would be greatly appreciated! */
+ROM_START( nds )
+ ROM_REGION( 0x1000, "arm9", 0 )
+ ROM_LOAD( "biosnds9.rom", 0x0000, 0x1000, CRC(12345678) SHA1(1234567812345678123456781234567812345678) )
+
+ ROM_REGION( 0x4000, "arm7", 0 )
+ ROM_LOAD( "biosnds7.rom", 0x0000, 0x4000, CRC(87654321) SHA1(8765432187654321876543218765432187654321) )
+
+ ROM_REGION32_LE( 0x40000, "firmware", 0 )
+ ROM_LOAD( "firmware.bin", 0x0000, 0x40000, CRC(55aa6699) SHA1(55aa669955aa669955aa669955aa669955aa6699) )
+ROM_END
+
+// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
+CONS(2004, nds, 0, 0, nds, nds, nds_state, 0, "Nintendo", "DS", MACHINE_IS_SKELETON)
diff --git a/src/mame/includes/nds.h b/src/mame/includes/nds.h
new file mode 100644
index 00000000000..8614a4eea3b
--- /dev/null
+++ b/src/mame/includes/nds.h
@@ -0,0 +1,29 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+#ifndef INCLUDES_NDS_H
+#define INCLUDES_NDS_H
+
+#include "cpu/arm7/arm7.h"
+#include "cpu/arm7/arm7core.h"
+
+class nds_state : public driver_device
+{
+public:
+ nds_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_arm9(*this, "arm9"),
+ m_arm7(*this, "arm7"),
+ m_firmware(*this, "firmware")
+ { }
+
+ required_device<arm946es_cpu_device> m_arm9;
+ required_device<arm7_cpu_device> m_arm7;
+
+ void machine_start() override;
+ void machine_reset() override;
+
+protected:
+ required_region_ptr<uint32_t> m_firmware;
+};
+
+#endif // INCLUDES_NDS_H
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 71db2f03d23..59a37c9dfb8 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -29146,6 +29146,9 @@ nc100 // 1992 NC100
nc150 // 1992 NC150
nc200 // 1993 NC200
+@source:nds.cpp
+nds // 2004 Nintendp
+
@source:nemesis.cpp
blkpnthr // GX604 (c) 1987 (Japan)
bubsys //
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 086851887dc..1a36b138160 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -414,6 +414,7 @@ nakajies.cpp
nanos.cpp
nascom1.cpp
nc.cpp
+nds.cpp
neogeocd.cpp
nes.cpp
nes_vt.cpp