mirror of
https://github.com/holub/mame
synced 2025-04-20 15:32:45 +03:00
bus/nes: Added support for KC885 and JY-302 boards. (#9191)
New working software list additions (nes.xml) ----------------------------------- Heros 8 in 1 (JY-207) [MLX] Super 8 in 1 (JY-301) [MLX] King 8 in 1 (JY-302) [MLX] Super 19 in 1 (VIP19) [NewRisingSun]
This commit is contained in:
parent
f8605ad8ee
commit
3a1eea0cb1
64
hash/nes.xml
64
hash/nes.xml
@ -52727,6 +52727,21 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_8j207">
|
||||
<description>Heros 8 in 1 (JY-207)</description>
|
||||
<year>19??</year>
|
||||
<publisher>J.Y. Company</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_hik8in1" />
|
||||
<dataarea name="prg" size="1048576">
|
||||
<rom name="heros 8-in-1 (jy-207).prg" size="1048576" crc="8ad3f063" sha1="3fc05f0999df1ea2b6dcb50d79fb52403346b802" status="baddump" />
|
||||
</dataarea>
|
||||
<dataarea name="chr" size="1048576">
|
||||
<rom name="heros 8-in-1 (jy-207).chr" size="1048576" crc="60577fb5" sha1="7d679df5f18d84d456e8ecbe6bd5256ef5a6abce" status="baddump" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_7j208">
|
||||
<description>Rockman 7 in 1 (JY-208)</description>
|
||||
<year>199?</year>
|
||||
@ -52746,6 +52761,39 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_8j301">
|
||||
<description>Super 8 in 1 (JY-301)</description>
|
||||
<year>19??</year>
|
||||
<publisher>J.Y. Company</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_hik8in1" />
|
||||
<dataarea name="prg" size="1048576">
|
||||
<rom name="super 8-in-1 (jy-301).prg" size="1048576" crc="573f2af9" sha1="94801052a82772e98baffa12cd5a44449c172e8e" status="baddump" />
|
||||
</dataarea>
|
||||
<dataarea name="chr" size="1048576">
|
||||
<rom name="super 8-in-1 (jy-301).chr" size="1048576" crc="7b4ea60f" sha1="f26adbcdeecafa9be1ea1da6bfde87beaa3d4e56" status="baddump" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_8j302">
|
||||
<description>King 8 in 1 (JY-302)</description>
|
||||
<year>19??</year>
|
||||
<publisher>J.Y. Company</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_jy302" />
|
||||
<dataarea name="prg" size="1048576">
|
||||
<rom name="king 8-in-1 (jy-302).prg" size="1048576" crc="0b030660" sha1="07cb6b564cf8776c5eba0efcb8c786d0ec0acd6a" status="baddump" />
|
||||
</dataarea>
|
||||
<dataarea name="chr" size="1048576">
|
||||
<rom name="king 8-in-1 (jy-302).chr" size="1048576" crc="67bffbc6" sha1="1cf285030a26c7856121b989de207cad8d02227c" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<!-- Sachen / Thin Chen (and clones) -->
|
||||
|
||||
@ -80316,6 +80364,22 @@ be better to redump them properly. -->
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_19vip">
|
||||
<description>Super 19 in 1 (VIP19)</description>
|
||||
<year>19??</year>
|
||||
<publisher><pirate></publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_kc885" />
|
||||
<feature name="pcb_model" value="KC885" />
|
||||
<dataarea name="prg" size="1048576">
|
||||
<rom name="super 19-in-1 (vip19).prg" size="1048576" crc="c4ebed19" sha1="059f3be8f10660008000e5eee7061498808afb7a" status="baddump" />
|
||||
</dataarea>
|
||||
<dataarea name="chr" size="1048576">
|
||||
<rom name="super 19-in-1 (vip19).chr" size="1048576" crc="86ab5220" sha1="b7a594429dd5fb851ad3c883cf2e901476fcdc27" status="baddump" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_190">
|
||||
<description>Golden 190 in 1</description>
|
||||
<year>19??</year>
|
||||
|
@ -68,6 +68,8 @@ DEFINE_DEVICE_TYPE(NES_BMC_15IN1, nes_bmc_15in1_device, "nes_bmc_15in1",
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_SBIG7, nes_bmc_sbig7_device, "nes_bmc_sbig7", "NES Cart BMC Super BIG 7 in 1 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_HIK8, nes_bmc_hik8_device, "nes_bmc_hik8", "NES Cart BMC HIK 8 in 1 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_JY208, nes_bmc_jy208_device, "nes_bmc_jy208", "NES Cart BMC JY-208 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_JY302, nes_bmc_jy302_device, "nes_bmc_jy302", "NES Cart BMC JY-302 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_KC885, nes_bmc_kc885_device, "nes_bmc_kc885", "NES Cart BMC KC885 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_BMC_SFC12, nes_bmc_sfc12_device, "nes_bmc_sfc12", "NES Cart BMC SFC-12 PCB")
|
||||
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")
|
||||
@ -111,6 +113,19 @@ INPUT_PORTS_START( bmc_f600 )
|
||||
PORT_CONFSETTING( 0x80, "Mario Party II (6 in 1)" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START( bmc_kc885 )
|
||||
PORT_START("JUMPER")
|
||||
PORT_CONFNAME( 0x07, 0x07, "Menu Type" )
|
||||
PORT_CONFSETTING( 0x00, "6000 in 1" )
|
||||
PORT_CONFSETTING( 0x01, "400 in 1" )
|
||||
PORT_CONFSETTING( 0x02, "800 in 1" )
|
||||
PORT_CONFSETTING( 0x03, "5000 in 1" )
|
||||
PORT_CONFSETTING( 0x04, "190 in 1" )
|
||||
PORT_CONFSETTING( 0x05, "1000 in 1" )
|
||||
PORT_CONFSETTING( 0x06, "2000 in 1" )
|
||||
PORT_CONFSETTING( 0x07, "19 in 1" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// input_ports - device-specific input ports
|
||||
@ -131,6 +146,11 @@ ioport_constructor nes_bmc_f600_device::device_input_ports() const
|
||||
return INPUT_PORTS_NAME( bmc_f600 );
|
||||
}
|
||||
|
||||
ioport_constructor nes_bmc_kc885_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME( bmc_kc885 );
|
||||
}
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -360,6 +380,17 @@ nes_bmc_jy208_device::nes_bmc_jy208_device(const machine_config &mconfig, const
|
||||
{
|
||||
}
|
||||
|
||||
nes_bmc_jy302_device::nes_bmc_jy302_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_bmc_hik8_device(mconfig, NES_BMC_JY302, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
nes_bmc_kc885_device::nes_bmc_kc885_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_bmc_hik8_device(mconfig, NES_BMC_KC885, tag, owner, clock)
|
||||
, m_jumper(*this, "JUMPER")
|
||||
{
|
||||
}
|
||||
|
||||
nes_bmc_sfc12_device::nes_bmc_sfc12_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_bmc_hik8_device(mconfig, NES_BMC_SFC12, tag, owner, clock)
|
||||
{
|
||||
@ -828,6 +859,13 @@ void nes_bmc_hik8_device::pcb_reset()
|
||||
mmc3_common_initialize(0x3f, 0xff, 0);
|
||||
}
|
||||
|
||||
void nes_bmc_kc885_device::pcb_reset()
|
||||
{
|
||||
nes_bmc_hik8_device::pcb_reset();
|
||||
m_prg_mask = 0x1f;
|
||||
set_prg(m_prg_base, m_prg_mask);
|
||||
}
|
||||
|
||||
void nes_bmc_hik4_device::device_start()
|
||||
{
|
||||
mmc3_start();
|
||||
@ -2648,6 +2686,79 @@ void nes_bmc_jy208_device::write_m(offs_t offset, u8 data)
|
||||
m_mirroring = PPU_MIRROR_NONE; // allow MMC3 mirror switching
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
BMC-JY-302
|
||||
|
||||
Games: Super 8 in 1
|
||||
|
||||
Variant of the HIK8IN1 boards that adds 8K of VRAM
|
||||
which seems the same as the SFC-12 board below,
|
||||
other than the line which selects VRAM/VROM.
|
||||
|
||||
NES 2.0: mapper 410
|
||||
|
||||
In MAME: Supported.
|
||||
|
||||
-------------------------------------------------*/
|
||||
|
||||
void nes_bmc_jy302_device::set_chr(u8 chr, int chr_base, int chr_mask)
|
||||
{
|
||||
if (BIT(m_reg[2], 6))
|
||||
chr8(0, CHRRAM);
|
||||
else
|
||||
nes_txrom_device::set_chr(chr, chr_base, chr_mask);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
BMC-KC885
|
||||
|
||||
Games: Super 8 in 1 VIP19
|
||||
|
||||
Variant of the HIK8IN1 boards that has different
|
||||
upper address lines for PRG banking. Exactly how
|
||||
these lines are selected is determined by three
|
||||
jumper/solder pads.
|
||||
|
||||
NES 2.0: mapper 401
|
||||
|
||||
In MAME: Supported.
|
||||
|
||||
-------------------------------------------------*/
|
||||
|
||||
u8 nes_bmc_kc885_device::read_h(offs_t offset)
|
||||
{
|
||||
// LOG_MMC(("bmc_kc885 read_h, offset: %04x\n", offset));
|
||||
|
||||
if (BIT(m_reg[1], 7) & BIT(m_jumper->read(), 2))
|
||||
return get_open_bus();
|
||||
else
|
||||
return hi_access_rom(offset);
|
||||
}
|
||||
|
||||
void nes_bmc_kc885_device::write_m(offs_t offset, u8 data)
|
||||
{
|
||||
LOG_MMC(("bmc_kc885 write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
if (!BIT(m_reg[3], 6)) // outer register lock bit
|
||||
{
|
||||
if (m_count == 1)
|
||||
data = (data & ~0x60) | bitswap<2>(data, 5, 6) << 5;
|
||||
m_reg[m_count] = data;
|
||||
m_count = (m_count + 1) & 0x03;
|
||||
|
||||
u8 mask = 0x80 | (m_jumper->read() & 0x03) << 5;
|
||||
m_prg_base = (m_reg[2] & mask) | (m_reg[1] & ~mask);
|
||||
m_prg_mask = ~m_reg[3] & 0x1f;
|
||||
set_prg(m_prg_base, m_prg_mask);
|
||||
|
||||
m_chr_base = (m_reg[2] & 0xf0) << 4 | m_reg[0];
|
||||
m_chr_mask = 0xff >> (~m_reg[2] & 0x0f);
|
||||
set_chr(m_chr_source, m_chr_base, m_chr_mask);
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
BMC-SFC-12
|
||||
|
@ -741,8 +741,6 @@ protected:
|
||||
virtual void device_start() override;
|
||||
|
||||
u8 m_reg[4];
|
||||
|
||||
private:
|
||||
u8 m_count;
|
||||
};
|
||||
|
||||
@ -762,6 +760,41 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
// ======================> nes_bmc_jy302_device
|
||||
|
||||
class nes_bmc_jy302_device : public nes_bmc_hik8_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
nes_bmc_jy302_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||
|
||||
protected:
|
||||
virtual void set_chr(u8 chr, int chr_base, int chr_mask) override;
|
||||
};
|
||||
|
||||
|
||||
// ======================> nes_bmc_kc885_device
|
||||
|
||||
class nes_bmc_kc885_device : public nes_bmc_hik8_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
nes_bmc_kc885_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||
|
||||
virtual u8 read_h(offs_t offset) override;
|
||||
virtual void write_m(offs_t offset, u8 data) override;
|
||||
|
||||
virtual void pcb_reset() override;
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual ioport_constructor device_input_ports() const override;
|
||||
|
||||
private:
|
||||
required_ioport m_jumper;
|
||||
};
|
||||
|
||||
|
||||
// ======================> nes_bmc_sfc12_device
|
||||
|
||||
class nes_bmc_sfc12_device : public nes_bmc_hik8_device
|
||||
@ -1212,6 +1245,8 @@ DECLARE_DEVICE_TYPE(NES_BMC_15IN1, nes_bmc_15in1_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_SBIG7, nes_bmc_sbig7_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_HIK8, nes_bmc_hik8_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_JY208, nes_bmc_jy208_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_JY302, nes_bmc_jy302_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_KC885, nes_bmc_kc885_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_SFC12, nes_bmc_sfc12_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_HIK4, nes_bmc_hik4_device)
|
||||
DECLARE_DEVICE_TYPE(NES_BMC_MARIO7IN1, nes_bmc_mario7in1_device)
|
||||
|
@ -458,6 +458,8 @@ void nes_cart(device_slot_interface &device)
|
||||
device.option_add_internal("bmc_sbig7in1", NES_BMC_SBIG7);
|
||||
device.option_add_internal("bmc_hik8in1", NES_BMC_HIK8);
|
||||
device.option_add_internal("bmc_jy208", NES_BMC_JY208);
|
||||
device.option_add_internal("bmc_jy302", NES_BMC_JY302);
|
||||
device.option_add_internal("bmc_kc885", NES_BMC_KC885);
|
||||
device.option_add_internal("bmc_sfc12", NES_BMC_SFC12);
|
||||
device.option_add_internal("bmc_hik4in1", NES_BMC_HIK4);
|
||||
device.option_add_internal("bmc_mario7in1", NES_BMC_MARIO7IN1);
|
||||
|
@ -436,7 +436,7 @@ static const nes_mmc mmc_list[] =
|
||||
// 398 JY-048 multicart, not in nes.xml?
|
||||
{ 399, BATMAP_000 }, // homebrew game Star Versus
|
||||
// 400 retroUSB (Sealie?) 8-bit XMAS 2017
|
||||
// 401 Super 19-in-1 VIP 19, not in nes.xml?
|
||||
{ 401, BMC_KC885 },
|
||||
// 402 22-in-1 Olympic Games, not in nes.xml?
|
||||
// 403 Tetris Family 19-in-1 that only works on Famiclones with 6502's BCD mode
|
||||
{ 404, BMC_JY012005 },
|
||||
@ -445,7 +445,7 @@ static const nes_mmc mmc_list[] =
|
||||
// 407 VT03 PnP
|
||||
// 408 Konami PnP
|
||||
{ 409, SEALIE_DPCMCART }, // A Winner is You homebrew music cart
|
||||
// 410 Unused or JY?
|
||||
{ 410, BMC_JY302 },
|
||||
{ 411, BMC_A88S1 },
|
||||
// 412 INTV 10-in-1 PnP 2nd edition
|
||||
{ 413, BATMAP_SRRX }, // homebrew game Super Russian Roulette
|
||||
|
@ -330,6 +330,8 @@ static const nes_pcb pcb_list[] =
|
||||
{ "bmc_sbig7in1", BMC_SUPERBIG_7IN1 },
|
||||
{ "bmc_hik8in1", BMC_HIK8IN1 },
|
||||
{ "bmc_jy208", BMC_JY208 },
|
||||
{ "bmc_jy302", BMC_JY302 },
|
||||
{ "bmc_kc885", BMC_KC885 },
|
||||
{ "bmc_sfc12", BMC_SFC12 },
|
||||
{ "bmc_hik4in1", BMC_SUPERHIK_4IN1 },
|
||||
{ "bmc_mario7in1", BMC_MARIOPARTY_7IN1 },
|
||||
|
@ -86,7 +86,7 @@ enum
|
||||
TXC_MJBLOCK, TXC_STRIKEW, TXC_TW,
|
||||
// Multigame Carts
|
||||
BMC_64IN1NR, BMC_190IN1, BMC_A65AS, BMC_A88S1, BMC_F15, BMC_F600, BMC_L6IN1,
|
||||
BMC_GN45, BMC_HIK8IN1, BMC_SFC12, BMC_JY208,
|
||||
BMC_GN45, BMC_HIK8IN1, BMC_SFC12, BMC_JY208, BMC_JY302, BMC_KC885,
|
||||
BMC_S24IN1SC03, BMC_T262, BMC_TELETUBBIES,
|
||||
BMC_WS, BMC_SUPERBIG_7IN1, BMC_SUPERHIK_4IN1, BMC_BALLGAMES_11IN1,
|
||||
BMC_MARIOPARTY_7IN1, BMC_GOLD_7IN1, BMC_SUPER_700IN1, BMC_FAMILY_4646,
|
||||
|
@ -90,6 +90,7 @@ void nes_state::machine_start()
|
||||
BMC_8157,
|
||||
BMC_970630C,
|
||||
BMC_GOLD150,
|
||||
BMC_KC885,
|
||||
BMC_TELETUBBIES,
|
||||
BMC_VT5201,
|
||||
BTL_PALTHENA,
|
||||
|
Loading…
Reference in New Issue
Block a user