summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author etabeta78 <doge.fabio@gmail.com>2016-06-27 18:32:36 +0200
committer etabeta78 <doge.fabio@gmail.com>2016-06-27 18:32:36 +0200
commitfb781994a4d3de868f175d32d3e8df5a027d8914 (patch)
treef4d3e3ad6333637cfdadef92619b6e49b71df97f
parentb730796b8f4517cb56ebb760acdb37b01f72e139 (diff)
checkpoint. nw.
-rw-r--r--hash/nes.xml25
-rw-r--r--src/devices/bus/nes/bootleg.cpp64
-rw-r--r--src/devices/bus/nes/bootleg.h17
-rw-r--r--src/devices/bus/nes/kaiser.cpp159
-rw-r--r--src/devices/bus/nes/kaiser.h46
-rw-r--r--src/devices/bus/nes/nes_carts.cpp6
-rw-r--r--src/devices/bus/nes/nes_pcb.hxx6
-rw-r--r--src/devices/bus/nes/nes_slot.h3
-rw-r--r--src/mame/machine/nes.cpp4
9 files changed, 311 insertions, 19 deletions
diff --git a/hash/nes.xml b/hash/nes.xml
index 6bd8909bfef..24c76874707 100644
--- a/hash/nes.xml
+++ b/hash/nes.xml
@@ -66006,7 +66006,7 @@ Also notice that VRAM & WRAM are probably incorrect for some of these sets, at t
</part>
</software>
- <software name="metroidk" supported="no">
+ <software name="metroidk" supported="partial">
<description>Metroid - Jin Ji Zhi Ling (Asia, FDS conversion)</description>
<year>19??</year>
<publisher>Kaiser</publisher>
@@ -66019,6 +66019,9 @@ Also notice that VRAM & WRAM are probably incorrect for some of these sets, at t
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
+ <!-- 8k WRAM on cartridge -->
+ <dataarea name="wram" size="8192">
+ </dataarea>
</part>
</software>
@@ -71122,8 +71125,12 @@ Other
<part name="cart" interface="nes_cart">
<feature name="slot" value="rt01" />
<feature name="pcb" value="UNL-RT-01" />
+ <feature name="mirroring" value="vertical" />
<dataarea name="chr" size="8192">
<rom name="test ver. 1.01 dlya proverki tv pristavok (rt-01, by ss aka snake)(unl)[u][!].chr" size="2048" crc="76d0de59" sha1="e3832e8d7c65b79fb813a5e35493113efa0272b4" offset="0" />
+ <rom size="2048" offset="0x0800" loadflag="reload" />
+ <rom size="2048" offset="0x1000" loadflag="reload" />
+ <rom size="2048" offset="0x1800" loadflag="reload" />
</dataarea>
<dataarea name="prg" size="32768">
<rom name="test ver. 1.01 dlya proverki tv pristavok (rt-01, by ss aka snake)(unl)[u][!].prg" size="16384" crc="cea5abf3" sha1="d30b9f3711e318d699dba8468ff10df44c754df7" offset="0" />
@@ -81056,6 +81063,22 @@ that the real dumps might surface -->
</part>
</software>
+ <software name="dcat8" supported="no">
+ <description>D-Cat 8</description>
+ <year>19??</year>
+ <publisher>&lt;unknown&gt;</publisher>
+ <part name="cart" interface="nes_cart">
+ <feature name="slot" value="onebus" />
+ <feature name="pcb" value="UNL-OneBus" />
+ <dataarea name="prg" size="8388608">
+ <rom name="s29gl064.u6" size="8388608" crc="e28b1ef8" sha1="4a6f107d2189cbe1bb0b86b3738d0af58e24e0f7" offset="0" />
+ </dataarea>
+ <!-- 8k VRAM on cartridge -->
+ <dataarea name="vram" size="8192">
+ </dataarea>
+ </part>
+ </software>
+
<!-- TO SORT AND RENAME PROPERLY!!! -->
diff --git a/src/devices/bus/nes/bootleg.cpp b/src/devices/bus/nes/bootleg.cpp
index 5ae9729db14..fbd00b7fadf 100644
--- a/src/devices/bus/nes/bootleg.cpp
+++ b/src/devices/bus/nes/bootleg.cpp
@@ -58,6 +58,7 @@ const device_type NES_AC08 = &device_creator<nes_ac08_device>;
const device_type NES_UNL_BB = &device_creator<nes_unl_bb_device>;
const device_type NES_MMALEE = &device_creator<nes_mmalee_device>;
const device_type NES_SHUIGUAN = &device_creator<nes_shuiguan_device>;
+const device_type NES_RT01 = &device_creator<nes_rt01_device>;
nes_ax5705_device::nes_ax5705_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
@@ -157,7 +158,12 @@ nes_mmalee_device::nes_mmalee_device(const machine_config &mconfig, const char *
nes_shuiguan_device::nes_shuiguan_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: nes_nrom_device(mconfig, NES_SHUIGUAN, "NES Cart Shui Guan Pipe Pirate PCB", tag, owner, clock, "nes_shuiguan", __FILE__), m_irq_count(0), m_irq_enable(0), irq_timer(nullptr)
- {
+{
+}
+
+nes_rt01_device::nes_rt01_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : nes_nrom_device(mconfig, NES_RT01, "NES Cart RT-01 PCB", tag, owner, clock, "nes_rt01", __FILE__)
+{
}
@@ -528,6 +534,21 @@ void nes_shuiguan_device::pcb_reset()
}
+void nes_rt01_device::device_start()
+{
+ common_start();
+}
+
+void nes_rt01_device::pcb_reset()
+{
+ chr2_0(0, CHRROM);
+ chr2_2(0, CHRROM);
+ chr2_4(0, CHRROM);
+ chr2_6(0, CHRROM);
+ prg16_89ab(0);
+ prg16_cdef(0);
+}
+
/*-------------------------------------------------
mapper specific handlers
@@ -1217,7 +1238,7 @@ READ8_MEMBER(nes_lh32_device::read_m)
READ8_MEMBER(nes_lh32_device::read_h)
{
- LOG_MMC(("lh32 read_h, offset: %04x\n", offset));
+// LOG_MMC(("lh32 read_h, offset: %04x\n", offset));
if (offset >= 0x4000 && offset < 0x6000)
return m_prgram[offset & 0x1fff];
@@ -1251,8 +1272,7 @@ WRITE8_MEMBER(nes_lh32_device::write_h)
Games: Fuuun Shaolin Kyo (FDS conversion)
This PCB maps WRAM in 0xc000-0xdfff and PRG in 0x6000-0x7fff
- This is very similar to KS7037 (not sure which conversion
- uses that one)
+ This is very similar to KS7037 (see kaiser.cpp)
iNES:
@@ -1274,7 +1294,7 @@ READ8_MEMBER(nes_lh10_device::read_m)
READ8_MEMBER(nes_lh10_device::read_h)
{
- LOG_MMC(("lh10 read_h, offset: %04x\n", offset));
+// LOG_MMC(("lh10 read_h, offset: %04x\n", offset));
if (offset >= 0x4000 && offset < 0x6000)
return m_prgram[offset & 0x1fff];
@@ -1343,7 +1363,7 @@ READ8_MEMBER(nes_lh53_device::read_m)
READ8_MEMBER(nes_lh53_device::read_h)
{
- LOG_MMC(("lh53 read_h, offset: %04x\n", offset));
+// LOG_MMC(("lh53 read_h, offset: %04x\n", offset));
if (offset >= 0x3800 && offset < 0x5800)
return m_battery[offset & 0x1fff];
@@ -1411,7 +1431,7 @@ WRITE8_MEMBER(nes_2708_device::write_m)
READ8_MEMBER(nes_2708_device::read_h)
{
- LOG_MMC(("btl-2708 read_h, offset: %04x\n", offset));
+// LOG_MMC(("btl-2708 read_h, offset: %04x\n", offset));
if (offset >= 0x3800 && offset < 0x5800 && !m_reg[1])
return m_prgram[0x2000 + ((offset - 0x3800) & 0x1fff)]; // higher 8K of WRAM
@@ -1633,3 +1653,33 @@ READ8_MEMBER(nes_shuiguan_device::read_m)
LOG_MMC(("shuiguan read_m, offset: %04x\n", offset));
return m_prg[offset & 0x1fff];
}
+
+
+/*-------------------------------------------------
+
+ RT-01
+
+ Games: Russian test cart
+
+ The PRG EPROM has copy protected areas with
+ "weak bits", which is tested at some points (info
+ from Cah4e3).
+
+ iNES:
+
+ In MESS:
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(nes_rt01_device::read_h)
+{
+// LOG_MMC(("rt01 read_h, offset: %04x\n", offset));
+
+ if ((offset >= 0x4e80) && (offset < 0x4f00))
+ return 0xf2 | (machine().rand() & 0x0d);
+ if ((offset >= 0x7e80) && (offset < 0x7f00))
+ return 0xf2 | (machine().rand() & 0x0d);
+
+ return hi_access_rom(offset);
+}
+
diff --git a/src/devices/bus/nes/bootleg.h b/src/devices/bus/nes/bootleg.h
index 013a6a22b70..30b40b589a4 100644
--- a/src/devices/bus/nes/bootleg.h
+++ b/src/devices/bus/nes/bootleg.h
@@ -453,6 +453,22 @@ private:
};
+// ======================> nes_rt01_device
+
+class nes_rt01_device : public nes_nrom_device
+{
+public:
+ // construction/destruction
+ nes_rt01_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+
+ virtual void pcb_reset() override;
+};
+
+
// device type definition
extern const device_type NES_AX5705;
@@ -475,6 +491,7 @@ extern const device_type NES_AC08;
extern const device_type NES_UNL_BB;
extern const device_type NES_MMALEE;
extern const device_type NES_SHUIGUAN;
+extern const device_type NES_RT01;
#endif
diff --git a/src/devices/bus/nes/kaiser.cpp b/src/devices/bus/nes/kaiser.cpp
index 911099d71b4..340aca500cc 100644
--- a/src/devices/bus/nes/kaiser.cpp
+++ b/src/devices/bus/nes/kaiser.cpp
@@ -15,14 +15,15 @@
* Kaiser KS7022
* Kaiser KS7032
* Kaiser KS7058
+ * Kaiser KS7016
+ * Kaiser KS7037
- The Kaiser KS7057 bootleg board is emulated in nes_mmc3_clones.c
+ The Kaiser KS7057 bootleg board is emulated in nes_mmc3_clones.cpp
TODO:
- FCEUmm lists more Kaiser PCBs:
* KS7030 (for Yume Koujou Doki Doki Panic by Kaiser?)
- * KS7037
but there seem to be no available dumps...
***********************************************************************************************************/
@@ -55,6 +56,8 @@ const device_type NES_KS7017 = &device_creator<nes_ks7017_device>;
const device_type NES_KS7012 = &device_creator<nes_ks7012_device>;
const device_type NES_KS7013B = &device_creator<nes_ks7013b_device>;
const device_type NES_KS7031 = &device_creator<nes_ks7031_device>;
+const device_type NES_KS7016 = &device_creator<nes_ks7016_device>;
+const device_type NES_KS7037 = &device_creator<nes_ks7037_device>;
nes_ks7058_device::nes_ks7058_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
@@ -102,6 +105,16 @@ nes_ks7031_device::nes_ks7031_device(const machine_config &mconfig, const char *
{
}
+nes_ks7016_device::nes_ks7016_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : nes_nrom_device(mconfig, NES_KS7031, "NES Cart Kaiser KS-7016 PCB", tag, owner, clock, "nes_ks7016", __FILE__)
+{
+}
+
+nes_ks7037_device::nes_ks7037_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : nes_nrom_device(mconfig, NES_KS7037, "NES Cart Kaiser KS-7037 PCB", tag, owner, clock, "nes_ks7037", __FILE__)
+{
+}
+
@@ -226,7 +239,41 @@ void nes_ks7031_device::pcb_reset()
m_reg[3] = 0;
}
+void nes_ks7016_device::device_start()
+{
+ common_start();
+ save_item(NAME(m_reg));
+}
+
+void nes_ks7016_device::pcb_reset()
+{
+ prg8_89(0xc);
+ prg8_ab(0xd);
+ prg8_cd(0xe);
+ prg8_ef(0xf);
+ chr8(0, CHRRAM);
+
+ m_reg = 4;
+}
+
+void nes_ks7037_device::device_start()
+{
+ common_start();
+ save_item(NAME(m_latch));
+ save_item(NAME(m_reg));
+}
+void nes_ks7037_device::pcb_reset()
+{
+ prg8_89(0);
+ prg8_ab(0x1e);
+ prg8_cd(0);
+ prg8_ef(0x1f);
+ chr8(0, CHRRAM);
+
+ memset(m_reg, 0, sizeof(m_reg));
+ m_latch = 0;
+}
@@ -586,3 +633,111 @@ WRITE8_MEMBER(nes_ks7031_device::write_h)
LOG_MMC(("ks7031 write_h, offset: %04x, data: %02x\n", offset, data));
m_reg[(offset >> 11) & 3] = data & 0x3f;
}
+
+
+
+/*-------------------------------------------------
+
+ Kaiser Board KS7016
+
+ Games: Exciting Basket FDS Conversion
+
+ iNES:
+
+ In MESS: Unsupported.
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(nes_ks7016_device::read_m)
+{
+// LOG_MMC(("ks7016 read_m, offset: %04x\n", offset));
+ return m_prg[((m_reg * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)];
+}
+
+WRITE8_MEMBER(nes_ks7016_device::write_h)
+{
+ LOG_MMC(("ks7016 write_h, offset: %04x, data: %02x\n", offset, data));
+ UINT8 mask = offset & 0x30;
+ if ((offset & 0x5943) == 0x5943)
+ m_reg = (mask == 0x30) ? 0xb : (((offset >> 2) & 0x0f) << 1);
+ if ((offset & 0x5943) == 0x5903)
+ m_reg = (mask != 0x30) ? 0xb : (((offset >> 2) & 0x0f) << 1);
+}
+
+
+/*-------------------------------------------------
+
+ Kaiser Board KS7037
+
+ Games: Metroid (FDS conversion)
+
+ This PCB maps PRG in 0x7000-0x7fff in a very
+ similar fashion to LH10 (see bootleg.cpp)
+ but with WRAM split between 0x6000-0x6fff
+ and 0xb000-0xbfff.
+
+ iNES:
+
+ In MESS: Unsupported.
+
+ -------------------------------------------------*/
+
+void nes_ks7037_device::update_prg()
+{
+ prg8_89(m_reg[6]);
+ prg8_ab(0xfe);
+ prg8_cd(m_reg[7]);
+ prg8_ef(0xff);
+ set_nt_page(0, CIRAM, m_reg[2] & 1, 1);
+ set_nt_page(1, CIRAM, m_reg[3] & 1, 1);
+ set_nt_page(2, CIRAM, m_reg[4] & 1, 1);
+ set_nt_page(3, CIRAM, m_reg[5] & 1, 1);
+}
+
+READ8_MEMBER(nes_ks7037_device::read_m)
+{
+// LOG_MMC(("ks7037 read_m, offset: %04x\n", offset));
+ if (offset < 0x1000)
+ return m_prgram[offset & 0x0fff];
+ else
+ return m_prg[(0x1e * 0x1000) + (offset & 0x0fff)];
+}
+
+WRITE8_MEMBER(nes_ks7037_device::write_m)
+{
+ LOG_MMC(("ks7037 write_m, offset: %04x, data: %02x\n", offset, data));
+ if (offset < 0x1000)
+ m_prgram[offset & 0x0fff] = data;
+}
+
+READ8_MEMBER(nes_ks7037_device::read_h)
+{
+// LOG_MMC(("ks7037 read_h, offset: %04x\n", offset));
+
+ if (offset >= 0x3000 && offset < 0x4000)
+ return m_prgram[0x1000 + (offset & 0x0fff)];
+
+ return hi_access_rom(offset);
+}
+
+WRITE8_MEMBER(nes_ks7037_device::write_h)
+{
+ LOG_MMC(("ks7037 write_h, offset: %04x, data: %02x\n", offset, data));
+
+ if (offset >= 0x3000 && offset < 0x4000)
+ m_prgram[0x1000 + (offset & 0x0fff)] = data;
+ else
+ {
+ switch (offset & 0x6001)
+ {
+ case 0x0000:
+ m_latch = data & 7;
+ break;
+ case 0x0001:
+ m_reg[m_latch] = data;
+ update_prg();
+ break;
+ }
+ }
+}
+
diff --git a/src/devices/bus/nes/kaiser.h b/src/devices/bus/nes/kaiser.h
index c38731216a9..e5ad8628436 100644
--- a/src/devices/bus/nes/kaiser.h
+++ b/src/devices/bus/nes/kaiser.h
@@ -170,6 +170,50 @@ private:
};
+// ======================> nes_ks7016_device
+
+class nes_ks7016_device : public nes_nrom_device
+{
+public:
+ // construction/destruction
+ nes_ks7016_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
+
+ virtual void pcb_reset() override;
+
+private:
+ UINT8 m_reg;
+};
+
+// ======================> nes_ks7037_device
+
+class nes_ks7037_device : public nes_nrom_device
+{
+public:
+ // construction/destruction
+ nes_ks7037_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual DECLARE_READ8_MEMBER(read_m) override;
+ virtual DECLARE_READ8_MEMBER(read_h) override;
+ virtual DECLARE_WRITE8_MEMBER(write_m) override;
+ virtual DECLARE_WRITE8_MEMBER(write_h) override;
+
+ virtual void pcb_reset() override;
+
+private:
+ void update_prg();
+ UINT8 m_latch;
+ UINT8 m_reg[8];
+};
+
+
+
// device type definition
extern const device_type NES_KS7058;
@@ -180,5 +224,7 @@ extern const device_type NES_KS7017;
extern const device_type NES_KS7012;
extern const device_type NES_KS7013B;
extern const device_type NES_KS7031;
+extern const device_type NES_KS7016;
+extern const device_type NES_KS7037;
#endif
diff --git a/src/devices/bus/nes/nes_carts.cpp b/src/devices/bus/nes/nes_carts.cpp
index af37e8919ba..5ff59c73339 100644
--- a/src/devices/bus/nes/nes_carts.cpp
+++ b/src/devices/bus/nes/nes_carts.cpp
@@ -199,6 +199,8 @@ SLOT_INTERFACE_START(nes_cart)
SLOT_INTERFACE_INTERNAL("ks7012", NES_KS7012) // used in Zanac (FDS Conversion)
SLOT_INTERFACE_INTERNAL("ks7013b", NES_KS7013B) // used in Highway Star (FDS Conversion)
SLOT_INTERFACE_INTERNAL("ks7031", NES_KS7031) // used in Dracula II (FDS Conversion)
+ SLOT_INTERFACE_INTERNAL("ks7016", NES_KS7016) // used in Exciting Basket (FDS Conversion)
+ SLOT_INTERFACE_INTERNAL("ks7037", NES_KS7037) // used in Metroid (FDS Conversion)
SLOT_INTERFACE_INTERNAL("gs2015", NES_GS2015)
SLOT_INTERFACE_INTERNAL("gs2004", NES_GS2004)
SLOT_INTERFACE_INTERNAL("gs2013", NES_GS2013)
@@ -243,6 +245,7 @@ SLOT_INTERFACE_START(nes_cart)
SLOT_INTERFACE_INTERNAL("unl_ac08", NES_AC08) // used by Green Beret FDS conversion
SLOT_INTERFACE_INTERNAL("unl_bb", NES_UNL_BB) // used by a few FDS conversions
SLOT_INTERFACE_INTERNAL("sgpipe", NES_SHUIGUAN) // mapper 183
+ SLOT_INTERFACE_INTERNAL("rt01", NES_RT01)
// misc MMC3 clone boards
SLOT_INTERFACE_INTERNAL("dbz5", NES_REX_DBZ5)
SLOT_INTERFACE_INTERNAL("sl1632", NES_REX_SL1632)
@@ -350,9 +353,6 @@ SLOT_INTERFACE_START(nes_cart)
SLOT_INTERFACE_INTERNAL("unl_eh8813a", NES_NROM) // UNSUPPORTED
SLOT_INTERFACE_INTERNAL("unl_158b", NES_NROM) // UNSUPPORTED
SLOT_INTERFACE_INTERNAL("unl_drgnfgt", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("ks7016", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("ks7037", NES_NROM) // UNSUPPORTED
- SLOT_INTERFACE_INTERNAL("rt01", NES_NROM) // UNSUPPORTED
// are there dumps of games with these boards?
SLOT_INTERFACE_INTERNAL("bmc_hik_kof", NES_NROM) // mapper 251 - UNSUPPORTED
SLOT_INTERFACE_INTERNAL("bmc_13in1jy110", NES_NROM) // [mentioned in FCEUMM source - we need more info] - UNSUPPORTED
diff --git a/src/devices/bus/nes/nes_pcb.hxx b/src/devices/bus/nes/nes_pcb.hxx
index 292330ccc4f..10a3d35be33 100644
--- a/src/devices/bus/nes/nes_pcb.hxx
+++ b/src/devices/bus/nes/nes_pcb.hxx
@@ -169,6 +169,8 @@ static const nes_pcb pcb_list[] =
{ "ks7031", KAISER_KS7031 }, // used in Dracula II (FDS Conversion)
{ "ks7012", KAISER_KS7012 }, // used in Zanac (FDS Conversion)
{ "ks7013b", KAISER_KS7013B }, // used in Highway Star (FDS Conversion)
+ { "ks7016", KAISER_KS7016 }, // used in Exciting Basketball (FDS Conversion)
+ { "ks7037", KAISER_KS7037 }, // Metroid FDS Chinese
{ "gs2015", RCM_GS2015 },
{ "gs2004", RCM_GS2004 },
{ "gs2013", RCM_GS2013 },
@@ -299,6 +301,7 @@ static const nes_pcb pcb_list[] =
{ "unl_bb", UNL_BB },
{ "unl_malisb", UNL_MALISB },
{ "sgpipe", BTL_SHUIGUAN },
+ { "rt01", UNL_RT01 }, // Russian Test Cart
{ "unl_whero", UNL_WORLDHERO },
{ "unl_43272", UNL_43272 },
{ "tf1201", UNL_TF1201 },
@@ -325,9 +328,6 @@ static const nes_pcb pcb_list[] =
{ "unl_eh8813a", UNSUPPORTED_BOARD }, // Dr. Mario II
{ "unl_158b", UNSUPPORTED_BOARD }, // Blood of Jurassic
{ "unl_drgnfgt", UNSUPPORTED_BOARD }, // Dragon Fighter by Flying Star
- { "ks7016", UNSUPPORTED_BOARD }, // Exciting Basketball FDS
- { "ks7037", UNSUPPORTED_BOARD }, // Metroid FDS Chinese
- { "rt01", UNSUPPORTED_BOARD }, // Russian Test Cart
{ "test", TEST_BOARD },
{ "unknown", UNKNOWN_BOARD } // a few pirate dumps uses the wrong mapper...
};
diff --git a/src/devices/bus/nes/nes_slot.h b/src/devices/bus/nes/nes_slot.h
index ad2a1b1c28a..65b43e7fb5d 100644
--- a/src/devices/bus/nes/nes_slot.h
+++ b/src/devices/bus/nes/nes_slot.h
@@ -102,7 +102,7 @@ enum
UNL_SF3, UNL_RACERMATE, UNL_EDU2K, UNL_LH53, UNL_LH32, UNL_LH10,
UNL_STUDYNGAME, UNL_603_5052, UNL_H2288, UNL_2708,
UNL_MALISB, UNL_BB, UNL_AC08, UNL_A9746, UNL_WORLDHERO,
- UNL_43272, UNL_TF1201, UNL_CITYFIGHT,
+ UNL_43272, UNL_TF1201, UNL_CITYFIGHT, UNL_RT01,
/* Bootleg boards */
BTL_SMB2JA, BTL_MARIOBABY, BTL_AISENSHINICOL, BTL_TOBIDASE,
BTL_SMB2JB, BTL_09034A, BTL_SMB3, BTL_SBROS11, BTL_DRAGONNINJA,
@@ -113,6 +113,7 @@ enum
HENGG_SRICH, HENGG_XHZS, HENGG_SHJY3, SUBOR_TYPE0, SUBOR_TYPE1,
KAISER_KS7058, KAISER_KS7032, KAISER_KS7022, KAISER_KS7017,
KAISER_KS7012, KAISER_KS7013B, KAISER_KS202, KAISER_KS7031,
+ KAISER_KS7016, KAISER_KS7037,
CNE_DECATHLON, CNE_FSB, CNE_SHLZ, CONY_BOARD, YOKO_BOARD,
RCM_GS2015, RCM_GS2004, RCM_GS2013, RCM_TF9IN1, RCM_3DBLOCK,
WAIXING_TYPE_A, WAIXING_TYPE_A1, WAIXING_TYPE_B, WAIXING_TYPE_C, WAIXING_TYPE_D,
diff --git a/src/mame/machine/nes.cpp b/src/mame/machine/nes.cpp
index e2975f35f68..65479795398 100644
--- a/src/mame/machine/nes.cpp
+++ b/src/mame/machine/nes.cpp
@@ -75,8 +75,8 @@ void nes_state::machine_start()
if (m_cartslot->get_pcb_id() == STD_EXROM || m_cartslot->get_pcb_id() == STD_NROM368 || m_cartslot->get_pcb_id() == STD_DISKSYS
|| m_cartslot->get_pcb_id() == GG_NROM || m_cartslot->get_pcb_id() == CAMERICA_ALADDIN || m_cartslot->get_pcb_id() == SUNSOFT_DCS
|| m_cartslot->get_pcb_id() == BANDAI_DATACH || m_cartslot->get_pcb_id() == BANDAI_KARAOKE || m_cartslot->get_pcb_id() == BTL_2A03_PURITANS || m_cartslot->get_pcb_id() == AVE_MAXI15
- || m_cartslot->get_pcb_id() == KAISER_KS7022 || m_cartslot->get_pcb_id() == KAISER_KS7031 || m_cartslot->get_pcb_id() == BMC_VT5201
- || m_cartslot->get_pcb_id() == UNL_LH32 || m_cartslot->get_pcb_id() == UNL_LH10 || m_cartslot->get_pcb_id() == UNL_2708
+ || m_cartslot->get_pcb_id() == KAISER_KS7022 || m_cartslot->get_pcb_id() == KAISER_KS7031 || m_cartslot->get_pcb_id() == KAISER_KS7037 || m_cartslot->get_pcb_id() == BMC_VT5201
+ || m_cartslot->get_pcb_id() == UNL_LH32 || m_cartslot->get_pcb_id() == UNL_LH10 || m_cartslot->get_pcb_id() == UNL_2708 || m_cartslot->get_pcb_id() == UNL_RT01
|| m_cartslot->get_pcb_id() == UNL_43272 || m_cartslot->get_pcb_id() == BMC_G63IN1 || m_cartslot->get_pcb_id() == BMC_8157
|| m_cartslot->get_pcb_id() == BMC_GOLD150 || m_cartslot->get_pcb_id() == BMC_CH001
|| m_cartslot->get_pcb_id() == BMC_70IN1 || m_cartslot->get_pcb_id() == BMC_800IN1)