summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <salese_corp_ltd@email.it>2018-02-03 12:52:48 +0100
committer angelosa <salese_corp_ltd@email.it>2018-02-03 12:55:20 +0100
commit1199a6716b636912de8e46ce8c572a00be619a9a (patch)
treefcff12400deba93004015de1debda10e6fbd465a
parentf753b434650b19bef611bf9cafacf7e285dafc4b (diff)
namcona1.cpp: Added msm6242 RTC and fixed eeprom type to X-Day 2 [Angelo Salese]
-rw-r--r--src/mame/drivers/namcona1.cpp43
-rw-r--r--src/mame/includes/namcona1.h10
2 files changed, 43 insertions, 10 deletions
diff --git a/src/mame/drivers/namcona1.cpp b/src/mame/drivers/namcona1.cpp
index 6186eb5d4e4..107c34a0c08 100644
--- a/src/mame/drivers/namcona1.cpp
+++ b/src/mame/drivers/namcona1.cpp
@@ -567,14 +567,28 @@ static ADDRESS_MAP_START( namcona1_main_map, AS_PROGRAM, 16, namcona1_state )
AM_RANGE(0xfff000, 0xffffff) AM_RAM AM_SHARE("spriteram") /* spriteram */
ADDRESS_MAP_END
+READ8_MEMBER(xday2_namcona2_state::printer_r)
+{
+ // --xx ---- printer status related, if bit 5 held 1 long enough causes printer error
+ // ---- --11 battery ok, any other setting causes ng
+ return 3;
+}
+
+WRITE8_MEMBER(xday2_namcona2_state::printer_w)
+{
+ // ...
+}
-static ADDRESS_MAP_START( namcona2_main_map, AS_PROGRAM, 16, namcona1_state )
+static ADDRESS_MAP_START( xday2_main_map, AS_PROGRAM, 16, xday2_namcona2_state )
AM_IMPORT_FROM(namcona1_main_map)
- AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP /* xday: serial out? */
- AM_RANGE(0xd40000, 0xd40001) AM_WRITENOP /* xday: serial out? */
- AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP /* xday: serial out? */
- AM_RANGE(0xdc0000, 0xdc001f) AM_WRITENOP /* xday: serial config? */
- /* xday: additional battery-backed ram at 00E024FA? */
+ // these two seems lamps and flash related (mux too?)
+ AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP
+ AM_RANGE(0xd40000, 0xd40001) AM_WRITENOP
+ AM_RANGE(0xd80000, 0xd80001) AM_READWRITE8(printer_r,printer_w,0x00ff) /* xday: serial out? */
+ AM_RANGE(0xdc0000, 0xdc001f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff) /* RTC device */
+
+ // seems bigger than standard na1 (otherwise you won't get proper ranking defaults)
+ AM_RANGE(0xe00000, 0xe03fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff)
ADDRESS_MAP_END
@@ -981,14 +995,25 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED(namcona2_state::namcona2, namcona1)
/* basic machine hardware */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_PROGRAM_MAP(namcona2_main_map)
+// MCFG_CPU_MODIFY("maincpu")
+// MCFG_CPU_PROGRAM_MAP(namcona2_main_map)
MCFG_CPU_REPLACE("mcu", NAMCO_C70, MASTER_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(namcona1_mcu_map)
MCFG_CPU_IO_MAP( namcona1_mcu_io_map)
MACHINE_CONFIG_END
+MACHINE_CONFIG_DERIVED(xday2_namcona2_state::xday2, namcona2)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(xday2_main_map)
+
+ MCFG_DEVICE_REMOVE("eeprom")
+ MCFG_EEPROM_2864_ADD("eeprom")
+
+ // TODO: unknown sub type
+ MCFG_DEVICE_ADD("rtc", MSM6242, XTAL(32'768))
+MACHINE_CONFIG_END
+
/* NA-1 Hardware */
DRIVER_INIT_MEMBER(namcona1_state,bkrtmaq) { m_gametype = NAMCO_BKRTMAQ; }
DRIVER_INIT_MEMBER(namcona1_state,cgangpzl) { m_gametype = NAMCO_CGANGPZL; }
@@ -1369,4 +1394,4 @@ GAME( 1993, emeralda, 0, namcona2, namcona1_joy, namcona2_state, emer
GAME( 1993, numanath, 0, namcona2, namcona1_joy, namcona2_state, numanath, ROT0, "Namco", "Numan Athletics (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 1993, numanathj, numanath, namcona2, namcona1_joy, namcona2_state, numanath, ROT0, "Namco", "Numan Athletics (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 1993, quiztou, 0, namcona2, namcona1_quiz, namcona2_state, quiztou, ROT0, "Namco", "Nettou! Gekitou! Quiztou!! (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
-GAME( 1995, xday2, 0, namcona2, namcona1_joy, xday2_namcona2_state, xday2, ROT0, "Namco", "X-Day 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1995, xday2, 0, xday2, namcona1_joy, xday2_namcona2_state, xday2, ROT0, "Namco", "X-Day 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
diff --git a/src/mame/includes/namcona1.h b/src/mame/includes/namcona1.h
index 36f45622073..d013b988cd9 100644
--- a/src/mame/includes/namcona1.h
+++ b/src/mame/includes/namcona1.h
@@ -8,6 +8,7 @@
#include "machine/eeprompar.h"
#include "machine/timer.h"
+#include "machine/msm6242.h"
#include "sound/c140.h"
#include "screen.h"
@@ -179,10 +180,17 @@ class xday2_namcona2_state : public namcona2_state
{
public:
xday2_namcona2_state(const machine_config &mconfig, device_type type, const char *tag)
- : namcona2_state(mconfig, type, tag)
+ : namcona2_state(mconfig, type, tag),
+ m_rtc(*this, "rtc")
{}
static constexpr feature_type unemulated_features() { return feature::PRINTER; }
+ required_device <msm6242_device> m_rtc;
+
+ DECLARE_READ8_MEMBER(printer_r);
+ DECLARE_WRITE8_MEMBER(printer_w);
+
DECLARE_DRIVER_INIT(xday2);
+ void xday2(machine_config &config);
};