mirror of
https://github.com/holub/mame
synced 2025-04-20 15:32:45 +03:00
bus/nes: Added support of a pair of 4-in-1 multicarts. (#8441)
New working software list additions (nes.xml) ----------------------------------- 4 in 1 (K-3131GS) [anonymous] 4 in 1 (K-3131SS) [anonymous]
This commit is contained in:
parent
ee07073837
commit
caf6dd6b24
36
hash/nes.xml
36
hash/nes.xml
@ -79233,6 +79233,42 @@ be better to redump them properly. -->
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_4k1gs">
|
||||
<description>4 in 1 (K-3131GS)</description>
|
||||
<year>199?</year>
|
||||
<publisher><pirate></publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_gn45" />
|
||||
<dataarea name="prg" size="524288">
|
||||
<rom name="4-in-1 (k-3131gs, gn-45).prg" size="524288" crc="dc835c48" sha1="ef17c86e521110637b443437fca269f2e3f2385f" status="baddump" />
|
||||
</dataarea>
|
||||
<dataarea name="chr" size="524288">
|
||||
<rom name="4-in-1 (k-3131gs, gn-45).chr" size="524288" crc="b551ccdb" sha1="fc17c81a23bd55b9195d8f166aad313f29067ed1" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k WRAM on cartridge -->
|
||||
<dataarea name="wram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_4k1ss">
|
||||
<description>4 in 1 (K-3131SS)</description>
|
||||
<year>199?</year>
|
||||
<publisher><pirate></publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_gn45" />
|
||||
<dataarea name="prg" size="524288">
|
||||
<rom name="4-in-1 (k-3131ss, gn-45).prg" size="524288" crc="466bdb58" sha1="354116730efa2131172ccca3793a065abee6026e" status="baddump" />
|
||||
</dataarea>
|
||||
<dataarea name="chr" size="524288">
|
||||
<rom name="4-in-1 (k-3131ss, gn-45).chr" size="524288" crc="08d7aa1b" sha1="f78aa3ff4345a31ece3b26cacdb86d437c5c0e17" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k WRAM on cartridge -->
|
||||
<dataarea name="wram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_4kt34" supported="no">
|
||||
<description>4 in 1 (KT-3445AB)</description>
|
||||
<year>19??</year>
|
||||
|
@ -61,6 +61,7 @@ DEFINE_DEVICE_TYPE(NES_BMC_HIK8, nes_bmc_hik8_device, "nes_bmc_hik8",
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_HIK4, nes_bmc_hik4_device, "nes_bmc_hik4", "NES Cart BMC HIK 4 in 1 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_MARIO7IN1, nes_bmc_mario7in1_device, "nes_bmc_mario7in1", "NES Cart BMC Mario 7 in 1 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_F15, nes_bmc_f15_device, "nes_bmc_f15", "NES Cart BMC F-15 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_GN45, nes_bmc_gn45_device, "nes_bmc_gn45", "NES Cart BMC GN-45 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_GOLD7IN1, nes_bmc_gold7in1_device, "nes_bmc_gold7in1", "NES Cart BMC Golden 7 in 1 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_GC6IN1, nes_bmc_gc6in1_device, "nes_bmc_gc6in1", "NES Cart BMC Golden Card 6 in 1 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_K3006, nes_bmc_k3006_device, "nes_bmc_k3006", "NES Cart BMC K-3006 PCB")
|
||||
@ -236,6 +237,11 @@ nes_bmc_f15_device::nes_bmc_f15_device(const machine_config &mconfig, const char
|
||||
{
|
||||
}
|
||||
|
||||
nes_bmc_gn45_device::nes_bmc_gn45_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_txrom_device(mconfig, NES_BMC_GN45, tag, owner, clock), m_lock(false)
|
||||
{
|
||||
}
|
||||
|
||||
nes_bmc_gold7in1_device::nes_bmc_gold7in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: nes_txrom_device(mconfig, NES_BMC_GOLD7IN1, tag, owner, clock), m_reg_written(0)
|
||||
{
|
||||
@ -590,6 +596,20 @@ void nes_bmc_f15_device::pcb_reset()
|
||||
prg16_cdef(0);
|
||||
}
|
||||
|
||||
void nes_bmc_gn45_device::device_start()
|
||||
{
|
||||
mmc3_start();
|
||||
save_item(NAME(m_lock));
|
||||
}
|
||||
|
||||
void nes_bmc_gn45_device::pcb_reset()
|
||||
{
|
||||
m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
|
||||
|
||||
m_lock = false;
|
||||
mmc3_common_initialize(0x0f, 0x7f, 0);
|
||||
}
|
||||
|
||||
void nes_bmc_gold7in1_device::device_start()
|
||||
{
|
||||
mmc3_start();
|
||||
@ -2348,6 +2368,37 @@ void nes_fcgj8in1_device::write_m(offs_t offset, u8 data)
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
BMC-GN-45
|
||||
|
||||
Games: 4 in 1 (K-3131GS and K-3131SS)
|
||||
|
||||
MMC3 clone with banking for multigame menu.
|
||||
|
||||
NES 2.0: mapper 366
|
||||
|
||||
In MAME: Supported.
|
||||
|
||||
-------------------------------------------------*/
|
||||
|
||||
void nes_bmc_gn45_device::write_m(offs_t offset, u8 data)
|
||||
{
|
||||
LOG_MMC(("bmc_gn45 write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
nes_txrom_device::write_m(offset, data); // write to overlapping WRAM
|
||||
|
||||
if (!m_lock)
|
||||
{
|
||||
m_prg_base = offset & 0x70;
|
||||
set_prg(m_prg_base, m_prg_mask);
|
||||
m_chr_base = m_prg_base << 3;
|
||||
set_chr(m_chr_source, m_chr_base, m_chr_mask);
|
||||
|
||||
m_lock = BIT(offset, 7);
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
BMC-GOLD-7IN1
|
||||
|
@ -627,6 +627,27 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// ======================> nes_bmc_gn45_device
|
||||
|
||||
class nes_bmc_gn45_device : public nes_txrom_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
nes_bmc_gn45_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;
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
|
||||
private:
|
||||
bool m_lock;
|
||||
};
|
||||
|
||||
|
||||
// ======================> nes_bmc_gold7in1_device
|
||||
|
||||
class nes_bmc_gold7in1_device : public nes_txrom_device
|
||||
@ -822,6 +843,7 @@ DECLARE_DEVICE_TYPE(NES_BMC_HIK8, nes_bmc_hik8_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_HIK4, nes_bmc_hik4_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_MARIO7IN1, nes_bmc_mario7in1_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_F15, nes_bmc_f15_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_GN45, nes_bmc_gn45_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_GOLD7IN1, nes_bmc_gold7in1_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_GC6IN1, nes_bmc_gc6in1_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_K3006, nes_bmc_k3006_device)
|
||||
|
@ -429,6 +429,7 @@ void nes_cart(device_slot_interface &device)
|
||||
device.option_add_internal("bmc_hik4in1", NES_BMC_HIK4);
|
||||
device.option_add_internal("bmc_mario7in1", NES_BMC_MARIO7IN1);
|
||||
device.option_add_internal("bmc_f15", NES_BMC_F15);
|
||||
device.option_add_internal("bmc_gn45", NES_BMC_GN45);
|
||||
device.option_add_internal("bmc_gold7in1", NES_BMC_GOLD7IN1);
|
||||
device.option_add_internal("bmc_gc6in1", NES_BMC_GC6IN1);
|
||||
device.option_add_internal("bmc_411120c", NES_BMC_411120C);
|
||||
|
@ -401,7 +401,7 @@ static const nes_mmc mmc_list[] =
|
||||
// 363 variant of mapper 358?
|
||||
// 364 JY-007, is this ttoons6 in nes.xml?
|
||||
// 365 is this asderp95 in nes.xml?
|
||||
// 366 K-3131GS and K-3131SS 4-in-1 carts
|
||||
{ 366, BMC_GN45 },
|
||||
// 367 7-in-1 cart that is a close variant of mapper 205
|
||||
{ 368, BTL_YUNG08 }, // SMB2 FDS conversion
|
||||
// 369 Super Mario Bros Party multicart
|
||||
|
@ -306,6 +306,7 @@ static const nes_pcb pcb_list[] =
|
||||
{ "bmc_hik4in1", BMC_SUPERHIK_4IN1 },
|
||||
{ "bmc_mario7in1", BMC_MARIOPARTY_7IN1 },
|
||||
{ "bmc_f15", BMC_F15 },
|
||||
{ "bmc_gn45", BMC_GN45 },
|
||||
{ "bmc_gold7in1", BMC_GOLD_7IN1 },
|
||||
{ "bmc_gc6in1", BMC_GOLDENCARD_6IN1 },
|
||||
{ "bmc_411120c", BMC_411120C },
|
||||
|
@ -86,7 +86,7 @@ enum
|
||||
TXC_22211, TXC_DUMARACING, TXC_MJBLOCK,
|
||||
TXC_COMMANDOS, TXC_TW, TXC_STRIKEW,
|
||||
// Multigame Carts
|
||||
BMC_64IN1NR, BMC_190IN1, BMC_A65AS, BMC_F15,
|
||||
BMC_64IN1NR, BMC_190IN1, BMC_A65AS, BMC_F15, BMC_GN45,
|
||||
BMC_HIK8IN1, BMC_NOVEL1, BMC_NOVEL2, BMC_S24IN1SC03, BMC_T262,
|
||||
BMC_WS, BMC_SUPERBIG_7IN1, BMC_SUPERHIK_4IN1, BMC_BALLGAMES_11IN1,
|
||||
BMC_MARIOPARTY_7IN1, BMC_GOLD_7IN1, BMC_SUPER_700IN1, BMC_FAMILY_4646,
|
||||
|
Loading…
Reference in New Issue
Block a user