mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
bus/nes: Added support for 4 multicarts on 2 board types.
New working software list additions (nes.xml) ----------------------------------- 1994 Super HiK 3 in 1 (JY-007) [famiac, NewRisingSun] 1995 Super 8-in-1 (JY-050) [Consolethinks, NewRisingSun] Super 8-in-1 Gold Card Series (JY-085) [Consolethinks, NewRisingSun] Super 8-in-1 Gold Card Series (JY-086) [Consolethinks, NewRisingSun]
This commit is contained in:
parent
6a1ba6ed10
commit
80cca64ddc
64
hash/nes.xml
64
hash/nes.xml
@ -51671,6 +51671,21 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
|
||||
|
||||
<!-- J.Y. Company -->
|
||||
|
||||
<software name="mc_3jy7">
|
||||
<description>1994 Super HiK 3 in 1 (JY-007)</description>
|
||||
<year>1994</year>
|
||||
<publisher>J.Y. Company</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_830832c" />
|
||||
<dataarea name="prg" size="524288">
|
||||
<rom name="1994 super hik 3-in-1 (jy-007).prg" size="524288" crc="f1e99930" sha1="7851a79f96af1849837bb53af5c07e00d737bf6b" status="baddump" />
|
||||
</dataarea>
|
||||
<dataarea name="chr" size="524288">
|
||||
<rom name="1994 super hik 3-in-1 (jy-007).chr" size="524288" crc="cfd16e34" sha1="b35b97d3858de0ce02a85768dcfd82effba21210" status="baddump" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_4jy9">
|
||||
<description>1994 Ball 4 in 1 Series (JY-009)</description>
|
||||
<year>1994</year>
|
||||
@ -51731,6 +51746,51 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_8jy50">
|
||||
<description>1995 Super 8 in 1 (JY-050)</description>
|
||||
<year>1995</year>
|
||||
<publisher>J.Y. Company</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_850437c" />
|
||||
<dataarea name="prg" size="1048576">
|
||||
<rom name="1995 super 8-in-1 (jy-050 rev0).prg" size="1048576" crc="626f9183" sha1="777416ba5fc2a535c30fb04ee27b65bdbb8d6ef7" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_8jy85">
|
||||
<description>Super 8 in 1 Gold Card Series (JY-085)</description>
|
||||
<year>1995</year>
|
||||
<publisher>J.Y. Company</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_850437c" />
|
||||
<dataarea name="prg" size="1048576">
|
||||
<rom name="super 8-in-1 gold card series (jy-085).prg" size="1048576" crc="62ffe7d4" sha1="022728e75e1d76a1ae9053ff7a8e605824960709" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_8jy86">
|
||||
<description>Super 8 in 1 Gold Card Series (JY-086)</description>
|
||||
<year>1995</year>
|
||||
<publisher>J.Y. Company</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_850437c" />
|
||||
<dataarea name="prg" size="1048576">
|
||||
<rom name="super 8-in-1 gold card series (jy-086).prg" size="1048576" crc="a7e12742" sha1="30747477bfc17e84917cd84ea90be7ac7910f2c7" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_8j119">
|
||||
<description>FC Genjin 8 in 1 (JY-119)</description>
|
||||
<year>199?</year>
|
||||
@ -63417,7 +63477,7 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
|
||||
<description>Mickey Mania 7</description>
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<info name="serial" value="JY-001"/>
|
||||
<info name="serial" value="JY001"/>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="jyc_a" />
|
||||
<feature name="pcb" value="JYCOMPANY-A" />
|
||||
@ -64281,7 +64341,7 @@ We don't include these hacks because they were not burned into real carts nor so
|
||||
<description>Tiny Toon Adventures 6 (Asia)</description>
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<info name="serial" value="JY-007"/>
|
||||
<info name="serial" value="JY007"/>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="jyc_b" />
|
||||
<feature name="pcb" value="JYCOMPANY-B" />
|
||||
|
@ -67,6 +67,7 @@ DEFINE_DEVICE_TYPE(NES_BMC_GC6IN1, nes_bmc_gc6in1_device, "nes_bmc_gc6in1"
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_K3006, nes_bmc_k3006_device, "nes_bmc_k3006", "NES Cart BMC K-3006 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_411120C, nes_bmc_411120c_device, "nes_bmc_411120c", "NES Cart BMC 411120C PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_830118C, nes_bmc_830118c_device, "nes_bmc_830118c", "NES Cart BMC 830118C PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_830832C, nes_bmc_830832c_device, "nes_bmc_830832c", "NES Cart BMC 830832C PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_841101C, nes_bmc_841101c_device, "nes_bmc_841101c", "NES Cart BMC 841101C PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_PJOY84, nes_pjoy84_device, "nes_pjoy84", "NES Cart Powerjoy 84 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_COOLBOY, nes_coolboy_device, "nes_coolboy", "NES Cart CoolBoy PCB")
|
||||
@ -267,6 +268,11 @@ nes_bmc_830118c_device::nes_bmc_830118c_device(const machine_config &mconfig, co
|
||||
{
|
||||
}
|
||||
|
||||
nes_bmc_830832c_device::nes_bmc_830832c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_txrom_device(mconfig, NES_BMC_830832C, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
nes_bmc_841101c_device::nes_bmc_841101c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_txrom_device(mconfig, NES_BMC_841101C, tag, owner, clock)
|
||||
{
|
||||
@ -679,6 +685,12 @@ void nes_bmc_830118c_device::pcb_reset()
|
||||
mmc3_common_initialize(0x7f, 0x7f, 0);
|
||||
}
|
||||
|
||||
void nes_bmc_830832c_device::pcb_reset()
|
||||
{
|
||||
m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
|
||||
mmc3_common_initialize(0x1f, 0xff, 0);
|
||||
}
|
||||
|
||||
void nes_bmc_841101c_device::pcb_reset()
|
||||
{
|
||||
m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
|
||||
@ -2686,6 +2698,35 @@ void nes_bmc_830118c_device::write_m(offs_t offset, uint8_t data)
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
BMC-830832C
|
||||
|
||||
Games: 1994 Super HiK 3 in 1 (JY-007)
|
||||
|
||||
MMC3 clone with banking for multigame menu.
|
||||
|
||||
NES 2.0: mapper 364
|
||||
|
||||
In MAME: Supported.
|
||||
|
||||
-------------------------------------------------*/
|
||||
|
||||
void nes_bmc_830832c_device::write_m(offs_t offset, u8 data)
|
||||
{
|
||||
LOG_MMC(("bmc_830832c write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
if (offset & 0x1000) // game only writes 0x7000, this mask is a guess
|
||||
{
|
||||
m_prg_base = (data & 0x40) >> 1;
|
||||
m_prg_mask = 0x1f >> BIT(data, 5);
|
||||
set_prg(m_prg_base, m_prg_mask);
|
||||
|
||||
m_chr_base = (data & 0x10) << 4;
|
||||
m_chr_mask = 0xff >> BIT(data, 5);
|
||||
set_chr(m_chr_source, m_chr_base, m_chr_mask);
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
BMC-841101C
|
||||
|
@ -752,6 +752,20 @@ private:
|
||||
};
|
||||
|
||||
|
||||
// ======================> nes_bmc_830832c_device
|
||||
|
||||
class nes_bmc_830832c_device : public nes_txrom_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
nes_bmc_830832c_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_bmc_841101c_device
|
||||
|
||||
class nes_bmc_841101c_device : public nes_txrom_device
|
||||
@ -849,6 +863,7 @@ DECLARE_DEVICE_TYPE(NES_BMC_GC6IN1, nes_bmc_gc6in1_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_K3006, nes_bmc_k3006_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_411120C, nes_bmc_411120c_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_830118C, nes_bmc_830118c_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_830832C, nes_bmc_830832c_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_841101C, nes_bmc_841101c_device)
|
||||
DECLARE_DEVICE_TYPE(NES_PJOY84, nes_pjoy84_device)
|
||||
DECLARE_DEVICE_TYPE(NES_COOLBOY, nes_coolboy_device)
|
||||
|
@ -46,6 +46,7 @@ DEFINE_DEVICE_TYPE(NES_BMC_60311C, nes_bmc_60311c_device, "nes_bmc_60311
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_80013B, nes_bmc_80013b_device, "nes_bmc_80013b", "NES Cart BMC 80013-B PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_810544C, nes_bmc_810544c_device, "nes_bmc_810544c", "NES Cart BMC 810544-C-A1 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_830425C, nes_bmc_830425c_device, "nes_bmc_830425c", "NES Cart BMC 830425C-4391T PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_850437C, nes_bmc_850437c_device, "nes_bmc_850437c", "NES Cart BMC 850437C PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_NTD03, nes_ntd03_device, "nes_ntd03", "NES Cart NTD-03 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_CTC09, nes_bmc_ctc09_device, "nes_bmc_ctc09", "NES Cart BMC CTC-09 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_GB63, nes_bmc_gb63_device, "nes_bmc_gb63", "NES Cart BMC Ghostbusters 63 in 1 PCB")
|
||||
@ -209,6 +210,11 @@ nes_bmc_830425c_device::nes_bmc_830425c_device(const machine_config &mconfig, co
|
||||
{
|
||||
}
|
||||
|
||||
nes_bmc_850437c_device::nes_bmc_850437c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_nrom_device(mconfig, NES_BMC_850437C, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
nes_ntd03_device::nes_ntd03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: nes_nrom_device(mconfig, NES_NTD03, tag, owner, clock)
|
||||
{
|
||||
@ -680,6 +686,21 @@ void nes_bmc_830425c_device::pcb_reset()
|
||||
m_latch = 0;
|
||||
}
|
||||
|
||||
void nes_bmc_850437c_device::device_start()
|
||||
{
|
||||
common_start();
|
||||
save_item(NAME(m_reg));
|
||||
}
|
||||
|
||||
void nes_bmc_850437c_device::pcb_reset()
|
||||
{
|
||||
prg16_89ab(0);
|
||||
prg16_cdef(7);
|
||||
chr8(0, CHRRAM);
|
||||
|
||||
m_reg[0] = m_reg[1] = 0;
|
||||
}
|
||||
|
||||
void nes_ntd03_device::device_start()
|
||||
{
|
||||
common_start();
|
||||
@ -1718,7 +1739,7 @@ void nes_bmc_810544c_device::write_h(offs_t offset, u8 data)
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
BMC-820425C-4391T
|
||||
BMC-830425C-4391T
|
||||
|
||||
Games: Super HiK 6-in-1 (A-030)
|
||||
|
||||
@ -1741,6 +1762,31 @@ void nes_bmc_830425c_device::write_h(offs_t offset, u8 data)
|
||||
prg16_cdef(outer | mode);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
BMC-850437C
|
||||
|
||||
Games: Super 8-in-1 (JY-050 rev0, JY-085, JY-086)
|
||||
|
||||
NES 2.0: mapper 396
|
||||
|
||||
In MAME: Supported.
|
||||
|
||||
-------------------------------------------------*/
|
||||
|
||||
void nes_bmc_850437c_device::write_h(offs_t offset, u8 data)
|
||||
{
|
||||
LOG_MMC(("bmc_850437c write_h, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
m_reg[(offset & 0x6000) == 0x2000] = data; // outer banking is always at 0xa000, mask is a guess
|
||||
|
||||
u8 bank = (m_reg[1] & 0x07) << 3 | (m_reg[0] & 0x07);
|
||||
prg16_89ab(bank);
|
||||
prg16_cdef(bank | 0x07);
|
||||
|
||||
set_nt_mirroring(BIT(m_reg[1], 6) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
BMC-NTD-03
|
||||
|
@ -364,6 +364,27 @@ private:
|
||||
};
|
||||
|
||||
|
||||
// ======================> nes_bmc_850437c_device
|
||||
|
||||
class nes_bmc_850437c_device : public nes_nrom_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
nes_bmc_850437c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||
|
||||
virtual void write_h(offs_t offset, u8 data) override;
|
||||
|
||||
virtual void pcb_reset() override;
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
|
||||
private:
|
||||
u8 m_reg[2];
|
||||
};
|
||||
|
||||
|
||||
// ======================> nes_ntd03_device
|
||||
|
||||
class nes_ntd03_device : public nes_nrom_device
|
||||
@ -1179,6 +1200,7 @@ DECLARE_DEVICE_TYPE(NES_BMC_60311C, nes_bmc_60311c_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_80013B, nes_bmc_80013b_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_810544C, nes_bmc_810544c_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_830425C, nes_bmc_830425c_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_850437C, nes_bmc_850437c_device)
|
||||
DECLARE_DEVICE_TYPE(NES_NTD03, nes_ntd03_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_CTC09, nes_bmc_ctc09_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_GB63, nes_bmc_gb63_device)
|
||||
|
@ -372,6 +372,7 @@ void nes_cart(device_slot_interface &device)
|
||||
device.option_add_internal("bmc_80013b", NES_BMC_80013B);
|
||||
device.option_add_internal("bmc_810544c", NES_BMC_810544C);
|
||||
device.option_add_internal("bmc_830425c", NES_BMC_830425C);
|
||||
device.option_add_internal("bmc_850437c", NES_BMC_850437C);
|
||||
device.option_add_internal("ntd03", NES_NTD03);
|
||||
device.option_add_internal("bmc_ctc09", NES_BMC_CTC09);
|
||||
device.option_add_internal("bmc_gb63", NES_BMC_GB63);
|
||||
@ -434,6 +435,7 @@ void nes_cart(device_slot_interface &device)
|
||||
device.option_add_internal("bmc_gc6in1", NES_BMC_GC6IN1);
|
||||
device.option_add_internal("bmc_411120c", NES_BMC_411120C);
|
||||
device.option_add_internal("bmc_830118c", NES_BMC_830118C);
|
||||
device.option_add_internal("bmc_830832c", NES_BMC_830832C);
|
||||
device.option_add_internal("bmc_841101c", NES_BMC_841101C);
|
||||
device.option_add_internal("pjoy84", NES_PJOY84);
|
||||
device.option_add_internal("nocash_nochr", NES_NOCHR);
|
||||
|
@ -399,7 +399,7 @@ static const nes_mmc mmc_list[] =
|
||||
{ 361, BMC_841101C },
|
||||
// 362 JY-005 multicart
|
||||
// 363 variant of mapper 358?
|
||||
// 364 JY-007, is this ttoons6 in nes.xml?
|
||||
{ 364, BMC_830832C },
|
||||
// 365 is this asderp95 in nes.xml?
|
||||
{ 366, BMC_GN45 },
|
||||
// 367 7-in-1 cart that is a close variant of mapper 205
|
||||
@ -431,7 +431,7 @@ static const nes_mmc mmc_list[] =
|
||||
// 393 820720C multicart
|
||||
// 394 Realtec HSK007 multicart
|
||||
// 395 Realtec 8210 multicarts
|
||||
// 396 various JY multicarts
|
||||
{ 396, BMC_850437C },
|
||||
// 397 JY-082 multicart, not in nes.xml?
|
||||
// 398 JY-048 multicart, not in nes.xml?
|
||||
// 399 homebrew game Star Versus
|
||||
|
@ -257,6 +257,7 @@ static const nes_pcb pcb_list[] =
|
||||
{ "bmc_80013b", BMC_80013B },
|
||||
{ "bmc_810544c", BMC_810544C },
|
||||
{ "bmc_830425c", BMC_830425C },
|
||||
{ "bmc_850437c", BMC_850437C },
|
||||
{ "ntd03", BMC_NTD_03 },
|
||||
{ "bmc_ctc09", BMC_CTC09 },
|
||||
{ "bmc_gb63", BMC_G63IN1 },
|
||||
@ -311,6 +312,7 @@ static const nes_pcb pcb_list[] =
|
||||
{ "bmc_gc6in1", BMC_GOLDENCARD_6IN1 },
|
||||
{ "bmc_411120c", BMC_411120C },
|
||||
{ "bmc_830118c", BMC_830118C },
|
||||
{ "bmc_830832c", BMC_830832C },
|
||||
{ "bmc_841101c", BMC_841101C },
|
||||
{ "pjoy84", BMC_PJOY84 },
|
||||
{ "bmc_gold150", BMC_GOLD150 },
|
||||
|
@ -96,10 +96,10 @@ enum
|
||||
BMC_31IN1, BMC_22GAMES, BMC_20IN1, BMC_110IN1,
|
||||
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_60311C, BMC_80013B, BMC_810544C, BMC_830425C, BMC_850437C,
|
||||
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_841101C,
|
||||
BMC_2751, BMC_8157, BMC_830118C, BMC_830832C, BMC_841101C,
|
||||
BMC_411120C, BMC_GOLD150, BMC_GOLD260, BMC_SUPER22,
|
||||
BMC_12IN1, BMC_4IN1RESET, BMC_42IN1RESET, BMC_LITTLECOM160,
|
||||
BMC_CTC09, BMC_K3006, BMC_K3036, BMC_K3046, BMC_SA005A, BMC_TJ03,
|
||||
|
Loading…
Reference in New Issue
Block a user