bus/nes: Added support for a 21-in-1 multicart. (#8435)

New working software list additions (nes.xml)
-----------------------------------
21 in 1 (GA-003) [Consolethinks]
This commit is contained in:
0kmg 2021-08-13 16:33:38 -08:00 committed by GitHub
parent 10262d869b
commit 14c82e93d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 60 additions and 2 deletions

View File

@ -78430,6 +78430,22 @@ be better to redump them properly. -->
</part>
</software>
<software name="mc_21ga3">
<description>21 in 1 (GA-003)</description>
<year>19??</year>
<publisher>&lt;pirate&gt;</publisher>
<part name="cart" interface="nes_cart">
<feature name="slot" value="bmc_gkcxin1" />
<feature name="mirroring" value="vertical" />
<dataarea name="prg" size="131072">
<rom name="21-in-1 (ga-003).prg" size="131072" crc="c6a91589" sha1="d49788201ddc21f23cf33009e1bd72b51bf7e238" status="baddump" />
</dataarea>
<dataarea name="chr" size="65536">
<rom name="21-in-1 (ga-003).chr" size="65536" crc="0c6f5a24" sha1="04ce852a20e8e5ddfbfe00d7633a6a50873ba8cb" status="baddump" />
</dataarea>
</part>
</software>
<software name="mc_21k6">
<description>21 in 1 (K-3006)</description>
<year>199?</year>

View File

@ -51,6 +51,7 @@ DEFINE_DEVICE_TYPE(NES_BMC_CTC09, nes_bmc_ctc09_device, "nes_bmc_ctc09
DEFINE_DEVICE_TYPE(NES_BMC_GB63, nes_bmc_gb63_device, "nes_bmc_gb63", "NES Cart BMC Ghostbusters 63 in 1 PCB")
DEFINE_DEVICE_TYPE(NES_BMC_GKA, nes_bmc_gka_device, "nes_bmc_gka", "NES Cart BMC GK-A PCB")
DEFINE_DEVICE_TYPE(NES_BMC_GKB, nes_bmc_gkb_device, "nes_bmc_gkb", "NES Cart BMC GK-B PCB")
DEFINE_DEVICE_TYPE(NES_BMC_GKCXIN1, nes_bmc_gkcxin1_device, "nes_bmc_gkcxin1", "NES Cart BMC GKCXIN1 PCB")
DEFINE_DEVICE_TYPE(NES_BMC_K3036, nes_bmc_k3036_device, "nes_bmc_k3036", "NES Cart BMC K-3036 PCB")
DEFINE_DEVICE_TYPE(NES_BMC_K3046, nes_bmc_k3046_device, "nes_bmc_k3046", "NES Cart BMC K-3046 PCB")
DEFINE_DEVICE_TYPE(NES_BMC_SA005A, nes_bmc_sa005a_device, "nes_bmc_sa005a", "NES Cart BMC SA005-A PCB")
@ -233,6 +234,11 @@ nes_bmc_gkb_device::nes_bmc_gkb_device(const machine_config &mconfig, const char
{
}
nes_bmc_gkcxin1_device::nes_bmc_gkcxin1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: nes_nrom_device(mconfig, NES_BMC_GKCXIN1, tag, owner, clock)
{
}
nes_bmc_k3036_device::nes_bmc_k3036_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: nes_nrom_device(mconfig, NES_BMC_K3036, tag, owner, clock)
{
@ -1893,6 +1899,27 @@ void nes_bmc_gkb_device::write_h(offs_t offset, uint8_t data)
set_nt_mirroring(BIT(data, 7) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
/*-------------------------------------------------
Board BMC-GKCXIN1
Unknown Bootleg Multigame Board
Games: 21 in 1
NES 2.0: mapper 288
In MAME: Supported.
-------------------------------------------------*/
void nes_bmc_gkcxin1_device::write_h(offs_t offset, u8 data)
{
LOG_MMC(("bmc_gkcxin1 write_h, offset: %04x, data: %02x\n", offset, data));
prg32((offset >> 3) & 0x03);
chr8(offset & 0x07, CHRROM);
}
/*-------------------------------------------------
BMC-K-3036

View File

@ -462,6 +462,18 @@ protected:
};
// ======================> nes_bmc_gkcxin1_device
class nes_bmc_gkcxin1_device : public nes_nrom_device
{
public:
// construction/destruction
nes_bmc_gkcxin1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
virtual void write_h(offs_t offset, u8 data) override;
};
// ======================> nes_bmc_k3036_device
class nes_bmc_k3036_device : public nes_nrom_device
@ -1169,6 +1181,7 @@ DECLARE_DEVICE_TYPE(NES_BMC_CTC09, nes_bmc_ctc09_device)
DECLARE_DEVICE_TYPE(NES_BMC_GB63, nes_bmc_gb63_device)
DECLARE_DEVICE_TYPE(NES_BMC_GKA, nes_bmc_gka_device)
DECLARE_DEVICE_TYPE(NES_BMC_GKB, nes_bmc_gkb_device)
DECLARE_DEVICE_TYPE(NES_BMC_GKCXIN1, nes_bmc_gkcxin1_device)
DECLARE_DEVICE_TYPE(NES_BMC_K3036, nes_bmc_k3036_device)
DECLARE_DEVICE_TYPE(NES_BMC_K3046, nes_bmc_k3046_device)
DECLARE_DEVICE_TYPE(NES_BMC_SA005A, nes_bmc_sa005a_device)

View File

@ -377,6 +377,7 @@ void nes_cart(device_slot_interface &device)
device.option_add_internal("bmc_gb63", NES_BMC_GB63);
device.option_add_internal("bmc_gka", NES_BMC_GKA);
device.option_add_internal("bmc_gkb", NES_BMC_GKB);
device.option_add_internal("bmc_gkcxin1", NES_BMC_GKCXIN1);
device.option_add_internal("bmc_k3006", NES_BMC_K3006);
device.option_add_internal("bmc_k3036", NES_BMC_K3036);
device.option_add_internal("bmc_k3046", NES_BMC_K3046);

View File

@ -323,7 +323,7 @@ static const nes_mmc mmc_list[] =
{ 285, BMC_A65AS },
{ 286, BMC_BENSHIENG },
{ 287, BMC_411120C },
// 288 GKCX1 21 in 1 multicarts, not in nes.xml?
{ 288, BMC_GKCXIN1 },
{ 289, BMC_60311C },
{ 290, BMC_NTD_03 },
// 291 Kasheng 2-in-1 multicarts not yet in nes.xml?

View File

@ -262,6 +262,7 @@ static const nes_pcb pcb_list[] =
{ "bmc_gb63", BMC_G63IN1 },
{ "bmc_gka", BMC_GKA },
{ "bmc_gkb", BMC_GKB },
{ "bmc_gkcxin1", BMC_GKCXIN1 },
{ "bmc_k3006", BMC_K3006 },
{ "bmc_k3036", BMC_K3036 },
{ "bmc_k3046", BMC_K3046 },

View File

@ -95,7 +95,7 @@ enum
BMC_GOLDENCARD_6IN1, BMC_72IN1, BMC_SUPER_42IN1, BMC_76IN1,
BMC_31IN1, BMC_22GAMES, BMC_20IN1, BMC_110IN1,
BMC_70IN1, BMC_500IN1, BMC_800IN1, BMC_1200IN1,
BMC_GKA, BMC_GKB, BMC_VT5201, BMC_BENSHIENG,
BMC_GKA, BMC_GKB, BMC_GKCXIN1, BMC_VT5201, BMC_BENSHIENG,
BMC_60311C, BMC_80013B, BMC_810544C, BMC_830425C,
BMC_NTD_03, BMC_G63IN1, BMC_FCGENJIN_8IN1, BMC_FK23C, BMC_FK23CA,
BMC_PJOY84, BMC_TH22913, BMC_11160, BMC_G146,