bus/nes: Added support for Little Com 160 Korean multicart. (#8378)

New working software list additions (nes.xml)
-----------------------------------
Little Com 160 [NewRisingSun]
This commit is contained in:
0kmg 2021-08-01 06:13:04 -08:00 committed by GitHub
parent 0753a9229b
commit cdc91a1454
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 69 additions and 3 deletions

View File

@ -80726,6 +80726,22 @@ be better to redump them properly. -->
</part>
</software>
<!-- This seems to have been a pack-in cartridge included with the Little Com II (only II?) Famiclone-based computer. -->
<software name="mc_lc160">
<description>Little Com 160</description>
<year>199?</year>
<publisher>Little Com</publisher>
<part name="cart" interface="nes_cart">
<feature name="slot" value="bmc_lc160" />
<dataarea name="prg" size="1048576">
<rom name="mc_lc160.prg" size="1048576" crc="49a5cda7" sha1="119afaafbdbeae813f8686e255d9bbdd6a2c3faa" status="baddump" />
</dataarea>
<!-- 8k VRAM on cartridge -->
<dataarea name="vram" size="8192">
</dataarea>
</part>
</software>
<!-- This dump is supposed to be bad: all other carts with the same PCB have switched CHR bank order, redump needed
to check why this is different -->
<software name="mc_mario">

View File

@ -81,6 +81,7 @@ DEFINE_DEVICE_TYPE(NES_BMC_CH001, nes_bmc_ch001_device, "nes_bmc_ch001
DEFINE_DEVICE_TYPE(NES_BMC_SUPER22, nes_bmc_super22_device, "nes_bmc_super22", "NES Cart BMC Super 22 Games PCB")
DEFINE_DEVICE_TYPE(NES_BMC_4IN1RESET, nes_bmc_4in1reset_device, "nes_bmc_4in1reset", "NES Cart BMC 4 in 1 (Reset Based) PCB")
DEFINE_DEVICE_TYPE(NES_BMC_42IN1RESET, nes_bmc_42in1reset_device, "nes_bmc_42in1reset", "NES Cart BMC 42 in 1 (Reset Based) PCB")
DEFINE_DEVICE_TYPE(NES_BMC_LC160, nes_bmc_lc160_device, "nes_bmc_lc160", "NES Cart BMC Little Com 160 PCB")
nes_action52_device::nes_action52_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
@ -348,6 +349,11 @@ nes_bmc_42in1reset_device::nes_bmc_42in1reset_device(const machine_config &mconf
{
}
nes_bmc_lc160_device::nes_bmc_lc160_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: nes_nrom_device(mconfig, NES_BMC_LC160, tag, owner, clock)
{
}
@ -2802,3 +2808,30 @@ void nes_bmc_42in1reset_device::write_h(offs_t offset, uint8_t data)
set_nt_mirroring(BIT(offset, 6) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
}
/*-------------------------------------------------
BMC-LITTLECOM-160
Unknown Bootleg Multigame Board
Games: Little Com 160
NES 2.0: mapper 541
In MAME: Supported.
-------------------------------------------------*/
void nes_bmc_lc160_device::write_h(offs_t offset, u8 data)
{
LOG_MMC(("bmc_lc160 write_h, offset: %04x, data: %02x\n", offset, data));
if (offset >= 0x4000)
{
u8 bank = (offset >> 2) & 0x3f;
u8 mode = !BIT(offset, 1);
prg16_89ab(bank & ~mode);
prg16_cdef(bank | mode);
set_nt_mirroring(BIT(offset, 0) ? PPU_MIRROR_VERT : PPU_MIRROR_HORZ);
}
}

View File

@ -1007,6 +1007,7 @@ private:
int m_latch;
};
// ======================> nes_bmc_42in1reset_device
class nes_bmc_42in1reset_device : public nes_nrom_device
@ -1029,6 +1030,18 @@ private:
};
// ======================> nes_bmc_lc160_device
class nes_bmc_lc160_device : public nes_nrom_device
{
public:
// construction/destruction
nes_bmc_lc160_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
virtual void write_h(offs_t offset, u8 data) override;
};
// device type definition
DECLARE_DEVICE_TYPE(NES_ACTION52, nes_action52_device)
DECLARE_DEVICE_TYPE(NES_CALTRON6IN1, nes_caltron_device)
@ -1083,5 +1096,6 @@ DECLARE_DEVICE_TYPE(NES_BMC_CH001, nes_bmc_ch001_device)
DECLARE_DEVICE_TYPE(NES_BMC_SUPER22, nes_bmc_super22_device)
DECLARE_DEVICE_TYPE(NES_BMC_4IN1RESET, nes_bmc_4in1reset_device)
DECLARE_DEVICE_TYPE(NES_BMC_42IN1RESET, nes_bmc_42in1reset_device)
DECLARE_DEVICE_TYPE(NES_BMC_LC160, nes_bmc_lc160_device)
#endif // MAME_BUS_NES_MULTIGAME_H

View File

@ -404,6 +404,7 @@ void nes_cart(device_slot_interface &device)
device.option_add_internal("bmc_s22games", NES_BMC_SUPER22); // mapper 233
device.option_add_internal("bmc_reset4", NES_BMC_4IN1RESET); // mapper 60 with 64k prg and 32k chr
device.option_add_internal("bmc_reset42", NES_BMC_42IN1RESET); // mapper 226? or 233?
device.option_add_internal("bmc_lc160", NES_BMC_LC160);
// misc multigame cart MMC3 clone boards
device.option_add_internal("fk23c", NES_FK23C);
device.option_add_internal("fk23ca", NES_FK23CA);

View File

@ -52,6 +52,7 @@ static const nes_mmc mmc_list[] =
{ 17, FFE8_BOARD },
{ 18, JALECO_SS88006 },
{ 19, NAMCOT_163 },
// 20 Reserved for emulator use for FDS emulation.
{ 21, KONAMI_VRC4 },
{ 22, KONAMI_VRC2 },
{ 23, KONAMI_VRC2 },
@ -156,7 +157,7 @@ static const nes_mmc mmc_list[] =
{ 121, KAY_BOARD },
// 122 Unused
{ 123, UNL_H2288 },
// 124 Super Game Mega Type III pirate arcade board?
// 124 Super Game Mega Type III bootleg arcade board. Emulated in MAME as supergm3.
{ 125, UNL_LH32 }, // Monty no Doki Doki Daidassou - FDS Conversion
{ 126, BMC_PJOY84 },
// 127 Double Dragon II Japan pirate. Dump available?
@ -500,7 +501,7 @@ static const nes_mmc mmc_list[] =
// { 538, BTL_60106416L }, Exciting Soccer bootleg, not in nes.xml (available baddump needs banks rearranged?)
{ 539, BTL_PALTHENA }, // Hikari Shinwa (Kid Icarus) FDS conversion
// 540 for mstrfgt6 in nes.xml or a variant of it not in nes.xml?
// 541 LittleCom 160 in 1 multicart, not in nes.xml?
{ 541, BMC_LITTLECOM160 },
// 542 Chairman Mao's 100th anniversary cart? You've got to be kidding me.
// 543 5 in 1 (CH-501) multicart, not in nes.xml?
// 544 another alt of sango2ht/sanguo2a?

View File

@ -302,6 +302,7 @@ static const nes_pcb pcb_list[] =
{ "bmc_s22games", BMC_SUPER22 },
{ "bmc_reset4", BMC_4IN1RESET },
{ "bmc_reset42", BMC_42IN1RESET },
{ "bmc_lc160", BMC_LITTLECOM160 },
{ "jyc_a", JYCOMPANY_A },
{ "jyc_b", JYCOMPANY_B },
{ "jyc_c", JYCOMPANY_C },

View File

@ -99,7 +99,7 @@ enum
BMC_NTD_03, BMC_G63IN1, BMC_FK23C, BMC_FK23CA, BMC_PJOY84,
BMC_POWERFUL_255, BMC_11160, BMC_G146, BMC_8157, BMC_830118C,
BMC_411120C, BMC_GOLD150, BMC_GOLD260, BMC_CH001, BMC_SUPER22,
BMC_12IN1, BMC_4IN1RESET, BMC_42IN1RESET,
BMC_12IN1, BMC_4IN1RESET, BMC_42IN1RESET, BMC_LITTLECOM160,
BMC_CTC09, BMC_K3046, BMC_SA005A, BMC_TJ03,
// Unlicensed
UNL_8237, UNL_CC21, UNL_AX5705, UNL_KN42, UNL_KOF97,