summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author 0kmg <9137159+0kmg@users.noreply.github.com>2021-08-19 07:09:06 -0800
committer GitHub <noreply@github.com>2021-08-19 11:09:06 -0400
commitcef3a78e7254b6334d7c045d6e9c83daf73653d2 (patch)
tree2d828d2770ba01e1c08a3ba0bfd262461cb8b46d
parent0154c068f6643c54abf05f32cfd15635bfb237d5 (diff)
bus/nes: Added support for a Mortal Kombat 6/7 cart. (#8466)
- Removed MK6 and MK7 sets that were listed as extracts from this cart. - Marked all Yu Yu Hakusho Final bootlegs (what MK7 really is) as partially supported since they all have significant background graphics issues. New working software list additions ----------------------------------- 2 in 1 - Mortal Kombat 6 & Mortal Kombat 7
-rw-r--r--hash/nes.xml53
-rw-r--r--src/devices/bus/nes/mmc3_clones.cpp41
-rw-r--r--src/devices/bus/nes/mmc3_clones.h15
-rw-r--r--src/devices/bus/nes/nes_carts.cpp1
-rw-r--r--src/devices/bus/nes/nes_ines.hxx2
-rw-r--r--src/devices/bus/nes/nes_pcb.hxx1
-rw-r--r--src/devices/bus/nes/nes_slot.h2
7 files changed, 78 insertions, 37 deletions
diff --git a/hash/nes.xml b/hash/nes.xml
index 0d8a8d6c70e..b9e96892c00 100644
--- a/hash/nes.xml
+++ b/hash/nes.xml
@@ -61530,6 +61530,21 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
+ <software name="2mk67" supported="partial">
+ <description>2 in 1 - Mortal Kombat 6 &amp; Mortal Kombat 7</description>
+ <year>199?</year>
+ <publisher>Kasheng</publisher>
+ <part name="cart" interface="nes_cart">
+ <feature name="slot" value="nt639" />
+ <dataarea name="prg" size="262144">
+ <rom name="2-in-1 - mortal kombat 6 + 7 (nt-639).prg" size="262144" crc="e1e81430" sha1="4478cd97d34a1e5b7e0498851b36d6afa8172a76" status="baddump" />
+ </dataarea>
+ <dataarea name="chr" size="524288">
+ <rom name="2-in-1 - mortal kombat 6 + 7 (nt-639).chr" size="524288" crc="de87a98e" sha1="35ad99a2a3964be112d5a449f7208b52e6f476a3" status="baddump" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="2s5ej3" supported="no">
<description>2 in 1 - Sonic 5 + Earthworm Jim 3 (Asia)</description>
<year>19??</year>
@@ -76444,38 +76459,6 @@ be better to redump them properly. -->
</part>
</software>
- <software name="mk6u1" cloneof="mk6">
- <description>Mortal Kombat 6 (Asia, Unprotected, Ripped from multicart)</description>
- <year>1996</year>
- <publisher>N.T</publisher>
- <part name="cart" interface="nes_cart">
- <feature name="slot" value="txrom" />
- <feature name="pcb" value="NES-TLROM" />
- <dataarea name="chr" size="262144">
- <rom name="mortal kombat 6 (unprotected)(unl).chr" size="262144" crc="93c43dc7" sha1="5828c8d83ef5d70e935312f64d47bcc06e059fac" offset="00000" status="baddump" />
- </dataarea>
- <dataarea name="prg" size="131072">
- <rom name="mortal kombat 6 (unprotected)(unl).prg" size="131072" crc="fa1a7d21" sha1="2ddfe7490716b960074b48c9e37f2ecf69975e7f" offset="00000" status="baddump" />
- </dataarea>
- </part>
- </software>
-
- <software name="mk7" supported="no">
- <description>Mortal Kombat 7 (Asia, Unprotected, Ripped from multicart)</description>
- <year>1996</year>
- <publisher>N.T</publisher>
- <part name="cart" interface="nes_cart">
- <feature name="slot" value="txrom" />
- <feature name="pcb" value="NES-TLROM" />
- <dataarea name="chr" size="262144">
- <rom name="mortal kombat 7 (unprotected)(unl).chr" size="262144" crc="991f0081" sha1="578c2ef7c90fd1397b3a5e82bafd4f0a16abd01f" offset="00000" status="baddump" />
- </dataarea>
- <dataarea name="prg" size="131072">
- <rom name="mortal kombat 7 (unprotected)(unl).prg" size="131072" crc="11dff499" sha1="7f059f45d194559ac40a9c0f6097a88e0b5a76a1" offset="00000" status="baddump" />
- </dataarea>
- </part>
- </software>
-
<software name="mk2blue" supported="partial">
<description>Mortal Kombat II (Asia, Blue Version)</description>
<year>19??</year>
@@ -77458,7 +77441,7 @@ be better to redump them properly. -->
</part>
</software>
- <software name="yuyu97">
+ <software name="yuyu97" supported="partial">
<description>Yu Yu Hakusho 97 V (Asia)</description>
<year>1997</year>
<publisher>N.T</publisher>
@@ -77477,7 +77460,7 @@ be better to redump them properly. -->
</part>
</software>
- <software name="yuyufinc" cloneof="yuyufin">
+ <software name="yuyufinc" cloneof="yuyufin" supported="partial">
<description>Yu Yu Hakusho Final - Makai Saikyou Retsuden (Asia, Chinese, Hacked)</description>
<year>1996</year>
<publisher>N.T</publisher>
@@ -77494,7 +77477,7 @@ be better to redump them properly. -->
</part>
</software>
- <software name="yuyufin">
+ <software name="yuyufin" supported="partial">
<description>Yu Yu Hakusho Final - Makai Saikyou Retsuden (Asia, English)</description>
<year>1996</year>
<publisher>N.T</publisher>
diff --git a/src/devices/bus/nes/mmc3_clones.cpp b/src/devices/bus/nes/mmc3_clones.cpp
index e9bd7de2e22..328efb0837e 100644
--- a/src/devices/bus/nes/mmc3_clones.cpp
+++ b/src/devices/bus/nes/mmc3_clones.cpp
@@ -53,6 +53,7 @@ DEFINE_DEVICE_TYPE(NES_SACHEN_SHERO, nes_sachen_shero_device, "nes_shero",
DEFINE_DEVICE_TYPE(NES_FCGJ8IN1, nes_fcgj8in1_device, "nes_fcgj8in1", "NES Cart BMC FC Genjin 8 in 1 PCB")
DEFINE_DEVICE_TYPE(NES_FK23C, nes_fk23c_device, "nes_fk23c", "NES Cart FK23C PCB")
DEFINE_DEVICE_TYPE(NES_FK23CA, nes_fk23ca_device, "nes_fk23ca", "NES Cart FK23CA PCB")
+DEFINE_DEVICE_TYPE(NES_NT639, nes_nt639_device, "nes_nt639", "NES Cart NT-639 PCB")
DEFINE_DEVICE_TYPE(NES_S24IN1SC03, nes_s24in1sc03_device, "nes_s24in1c03", "NES Cart Super 24 in 1 SC-03 PCB")
DEFINE_DEVICE_TYPE(NES_BMC_8IN1, nes_bmc_8in1_device, "nes_bmc_8in1", "NES Cart BMC GRM070 8 in 1 PCB")
DEFINE_DEVICE_TYPE(NES_BMC_15IN1, nes_bmc_15in1_device, "nes_bmc_15in1", "NES Cart BMC 15 in 1 PCB")
@@ -198,6 +199,11 @@ nes_fk23ca_device::nes_fk23ca_device(const machine_config &mconfig, const char *
{
}
+nes_nt639_device::nes_nt639_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : nes_txrom_device(mconfig, NES_NT639, tag, owner, clock)
+{
+}
+
nes_s24in1sc03_device::nes_s24in1sc03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: nes_txrom_device(mconfig, NES_S24IN1SC03, tag, owner, clock)
{
@@ -520,6 +526,12 @@ void nes_fk23ca_device::pcb_reset()
fk23c_set_chr();
}
+void nes_nt639_device::pcb_reset()
+{
+ m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
+ mmc3_common_initialize(0x0f, 0xff, 0);
+}
+
void nes_s24in1sc03_device::device_start()
{
mmc3_start();
@@ -2044,6 +2056,35 @@ void nes_fk23c_device::write_h(offs_t offset, uint8_t data)
/*-------------------------------------------------
+ BMC-NT-639
+
+ Unknown Bootleg Multigame Board
+ Games: 2 in 1 Mortal Kombat VI/VII
+
+ NES 2.0: mapper 291
+
+ In MAME: Supported.
+
+ -------------------------------------------------*/
+
+void nes_nt639_device::write_m(offs_t offset, u8 data)
+{
+ LOG_MMC(("nt639 write_m, offset: %04x, data: %02x\n", offset, data));
+
+ if (BIT(data, 5))
+ prg32(bitswap<3>(data, 6, 2, 1));
+ else
+ {
+ m_prg_base = (data & 0x40) >> 2;
+ set_prg(m_prg_base, m_prg_mask);
+ }
+
+ m_chr_base = (data & 0x40) << 2;
+ set_chr(m_chr_source, m_chr_base, m_chr_mask);
+}
+
+/*-------------------------------------------------
+
Board BMC-SUPER24IN1SC03
Games: Super 24-in-1
diff --git a/src/devices/bus/nes/mmc3_clones.h b/src/devices/bus/nes/mmc3_clones.h
index 65ae5ede1ec..5e0f926543c 100644
--- a/src/devices/bus/nes/mmc3_clones.h
+++ b/src/devices/bus/nes/mmc3_clones.h
@@ -487,6 +487,20 @@ public:
};
+// ======================> nes_nt639_device
+
+class nes_nt639_device : public nes_txrom_device
+{
+public:
+ // construction/destruction
+ nes_nt639_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+
+ virtual void write_m(offs_t offset, u8 data) override;
+
+ virtual void pcb_reset() override;
+};
+
+
// ======================> nes_s24in1sc03_device
class nes_s24in1sc03_device : public nes_txrom_device
@@ -849,6 +863,7 @@ DECLARE_DEVICE_TYPE(NES_A9746, nes_a9746_device)
DECLARE_DEVICE_TYPE(NES_FCGJ8IN1, nes_fcgj8in1_device)
DECLARE_DEVICE_TYPE(NES_FK23C, nes_fk23c_device)
DECLARE_DEVICE_TYPE(NES_FK23CA, nes_fk23ca_device)
+DECLARE_DEVICE_TYPE(NES_NT639, nes_nt639_device)
DECLARE_DEVICE_TYPE(NES_S24IN1SC03, nes_s24in1sc03_device)
DECLARE_DEVICE_TYPE(NES_BMC_8IN1, nes_bmc_8in1_device)
DECLARE_DEVICE_TYPE(NES_BMC_15IN1, nes_bmc_15in1_device)
diff --git a/src/devices/bus/nes/nes_carts.cpp b/src/devices/bus/nes/nes_carts.cpp
index 118bf667da9..08ae42d4b63 100644
--- a/src/devices/bus/nes/nes_carts.cpp
+++ b/src/devices/bus/nes/nes_carts.cpp
@@ -422,6 +422,7 @@ void nes_cart(device_slot_interface &device)
device.option_add_internal("fcgj8in1", NES_FCGJ8IN1);
device.option_add_internal("fk23c", NES_FK23C);
device.option_add_internal("fk23ca", NES_FK23CA);
+ device.option_add_internal("nt639", NES_NT639);
device.option_add_internal("s24in1c03", NES_S24IN1SC03);
device.option_add_internal("bmc_8in1", NES_BMC_8IN1);
device.option_add_internal("bmc_15in1", NES_BMC_15IN1);
diff --git a/src/devices/bus/nes/nes_ines.hxx b/src/devices/bus/nes/nes_ines.hxx
index 65cd60caca0..e8446e2fd0e 100644
--- a/src/devices/bus/nes/nes_ines.hxx
+++ b/src/devices/bus/nes/nes_ines.hxx
@@ -326,7 +326,7 @@ static const nes_mmc mmc_list[] =
{ 288, BMC_GKCXIN1 },
{ 289, BMC_60311C },
{ 290, BMC_NTD_03 },
- // 291 Kasheng 2-in-1 multicarts not yet in nes.xml?
+ { 291, BMC_NT639 },
// { 292, UNL_DRAGONFIGHTER }, in nes.xml, not emulated yet
// 293 NewStar multicarts, do we have these in nes.xml?
// 294 variant of mapper 134?
diff --git a/src/devices/bus/nes/nes_pcb.hxx b/src/devices/bus/nes/nes_pcb.hxx
index 0bc0023b60b..22a09d3b5c4 100644
--- a/src/devices/bus/nes/nes_pcb.hxx
+++ b/src/devices/bus/nes/nes_pcb.hxx
@@ -299,6 +299,7 @@ static const nes_pcb pcb_list[] =
{ "fcgj8in1", BMC_FCGENJIN_8IN1 },
{ "fk23c", BMC_FK23C },
{ "fk23ca", BMC_FK23CA },
+ { "nt639", BMC_NT639 },
{ "s24in1c03", BMC_S24IN1SC03 },
{ "bmc_8in1", BMC_8IN1 },
{ "bmc_15in1", BMC_15IN1 },
diff --git a/src/devices/bus/nes/nes_slot.h b/src/devices/bus/nes/nes_slot.h
index 49f634080d9..d59b39d28c9 100644
--- a/src/devices/bus/nes/nes_slot.h
+++ b/src/devices/bus/nes/nes_slot.h
@@ -97,7 +97,7 @@ enum
BMC_70IN1, BMC_500IN1, BMC_800IN1, BMC_1200IN1,
BMC_GKA, BMC_GKB, BMC_GKCXIN1, BMC_VT5201, BMC_BENSHIENG,
BMC_60311C, BMC_80013B, BMC_810544C, BMC_830425C, BMC_850437C,
- BMC_NTD_03, BMC_G63IN1, BMC_FCGENJIN_8IN1, BMC_FK23C, BMC_FK23CA,
+ BMC_NT639, BMC_NTD_03, BMC_G63IN1, BMC_FCGENJIN_8IN1, BMC_FK23C, BMC_FK23CA,
BMC_PJOY84, BMC_TH22913, BMC_11160, BMC_G146,
BMC_2751, BMC_8157, BMC_830118C, BMC_830832C, BMC_841101C,
BMC_411120C, BMC_GOLD150, BMC_GOLD260, BMC_SUPER22,