bus/nes: Added support for a couple Korean educational titles. (#8675)

- Also replaced the underdumped ROMs for brillco2, which is now fully working.

New working software list additions (nes.xml)
-----------------------------------
Yeongjaekeom Cocoma Pack 1 (Korea) [MLX]
This commit is contained in:
0kmg 2021-10-09 16:30:47 -08:00 committed by GitHub
parent 3961612bf3
commit c7d04d404a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 86 additions and 12 deletions

View File

@ -62814,18 +62814,34 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="brillco2">
<description>Brilliant Com Pack 2 (Kor)</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<software name="brillco1">
<description>Yeongjaekeom Cocoma Pack 1 (Korea)</description>
<year>1999</year>
<publisher>EduBank</publisher>
<info name="alt_title" value="영재컴 꼬꼬마 Pack 1"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
<feature name="pcb" value="NES-TLROM" />
<dataarea name="chr" size="131072">
<rom name="brilliant com pack 2 (k).chr" size="131072" crc="16a1ed7f" sha1="97201872c4d3d62849e5161103791e58adbb3632" offset="00000" />
<feature name="slot" value="cocoma" />
<dataarea name="prg" size="524288">
<rom name="brilliantcom cocoma pack 1.prg" size="524288" crc="cde78918" sha1="9ff8ffe51405b580f05fc0409b227a924aefda87" status="baddump" />
</dataarea>
<dataarea name="prg" size="131072">
<rom name="brilliant com pack 2 (k).prg" size="131072" crc="3462aa7f" sha1="d8a9d95f6185b37f4842b42366190acddd7f11af" offset="00000" />
<dataarea name="chr" size="524288">
<rom name="brilliantcom cocoma pack 1.chr" size="524288" crc="a1d7355c" sha1="08e6cbda7f16233d3cd5e0ce9f62591158854ee6" status="baddump" />
</dataarea>
</part>
</software>
<software name="brillco2">
<description>Yeongjaekeom Cocoma Pack 2 (Korea)</description>
<year>1999</year>
<publisher>EduBank</publisher>
<info name="alt_title" value="영재컴 꼬꼬마 Pack 2"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="cocoma" />
<dataarea name="prg" size="524288">
<rom name="brilliantcom cocoma pack 2.prg" size="524288" crc="1a1e9f91" sha1="7de52bfd475f15f75c8b739c269ecb778ae53c59" status="baddump" />
</dataarea>
<dataarea name="chr" size="524288">
<rom name="brilliantcom cocoma pack 2.chr" size="524288" crc="cd2d3259" sha1="41899d235abc1bb85b7a448437791c4d40d65709" status="baddump" />
</dataarea>
</part>
</software>

View File

@ -47,6 +47,7 @@ DEFINE_DEVICE_TYPE(NES_TXC_TW, nes_txc_tw_device, "nes_txc_tw",
DEFINE_DEVICE_TYPE(NES_KOF97, nes_kof97_device, "nes_kof97", "NES Cart KoF 97 PCB")
DEFINE_DEVICE_TYPE(NES_KOF96, nes_kof96_device, "nes_kof96", "NES Cart KoF 96 PCB")
DEFINE_DEVICE_TYPE(NES_SF3, nes_sf3_device, "nes_sf3", "NES Cart Super Fighter III PCB")
DEFINE_DEVICE_TYPE(NES_COCOMA, nes_cocoma_device, "nes_cocoma", "NES Cart Cocoma Core Pro PCB")
DEFINE_DEVICE_TYPE(NES_GOUDER, nes_gouder_device, "nes_gouder", "NES Cart Gouder PCB")
DEFINE_DEVICE_TYPE(NES_SA9602B, nes_sa9602b_device, "nes_sa9602b", "NES Cart SA-9602B PCB")
DEFINE_DEVICE_TYPE(NES_SACHEN_SHERO, nes_sachen_shero_device, "nes_shero", "NES Cart Street Hero PCB")
@ -229,6 +230,11 @@ nes_sf3_device::nes_sf3_device(const machine_config &mconfig, const char *tag, d
{
}
nes_cocoma_device::nes_cocoma_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: nes_txrom_device(mconfig, NES_COCOMA, tag, owner, clock)
{
}
nes_gouder_device::nes_gouder_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: nes_txrom_device(mconfig, NES_GOUDER, tag, owner, clock)
{
@ -533,6 +539,12 @@ void nes_kof96_device::pcb_reset()
mmc3_common_initialize(0xff, 0xff, 0);
}
void nes_cocoma_device::pcb_reset()
{
m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM;
mmc3_common_initialize(0x0f, 0x7f, 0);
}
void nes_gouder_device::device_start()
{
mmc3_start();
@ -1853,6 +1865,35 @@ void nes_sf3_device::write_h(offs_t offset, uint8_t data)
}
}
/*-------------------------------------------------
Cocoma Core Pro Board
Games: BrilliantCom Cocoma Pack 1 and 2
MMC3 clone with an extra outer bank latch.
NES 2.0: mapper 516
In MAME: Supported.
-------------------------------------------------*/
void nes_cocoma_device::write_h(offs_t offset, u8 data)
{
LOG_MMC(("cocoma write_h, offset: %04x, data: %02x\n", offset, data));
if (BIT(offset, 4))
{
m_prg_base = (offset & 0x03) << 4;
set_prg(m_prg_base, m_prg_mask);
m_chr_base = (offset & 0x0c) << 5;
set_chr(m_chr_source, m_chr_base, m_chr_mask);
}
else
txrom_write(offset, data);
}
/*-------------------------------------------------
Bootleg Board 37017 (?) by Gouder

View File

@ -360,6 +360,20 @@ protected:
};
// ======================> nes_cocoma_device
class nes_cocoma_device : public nes_txrom_device
{
public:
// construction/destruction
nes_cocoma_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;
};
// ======================> nes_gouder_device
class nes_gouder_device : public nes_txrom_device
@ -1067,6 +1081,7 @@ DECLARE_DEVICE_TYPE(NES_TXC_TW, nes_txc_tw_device)
DECLARE_DEVICE_TYPE(NES_KOF97, nes_kof97_device)
DECLARE_DEVICE_TYPE(NES_KOF96, nes_kof96_device)
DECLARE_DEVICE_TYPE(NES_SF3, nes_sf3_device)
DECLARE_DEVICE_TYPE(NES_COCOMA, nes_cocoma_device)
DECLARE_DEVICE_TYPE(NES_GOUDER, nes_gouder_device)
DECLARE_DEVICE_TYPE(NES_SA9602B, nes_sa9602b_device)
DECLARE_DEVICE_TYPE(NES_SACHEN_SHERO, nes_sachen_shero_device)

View File

@ -194,6 +194,7 @@ void nes_cart(device_slot_interface &device)
device.option_add_internal("cne_decathl", NES_CNE_DECATHL);
device.option_add_internal("cne_fsb", NES_CNE_FSB);
device.option_add_internal("cne_shlz", NES_CNE_SHLZ);
device.option_add_internal("cocoma", NES_COCOMA);
device.option_add_internal("nanjing", NES_NANJING); // mapper 163
device.option_add_internal("ntdec_2746", NES_NTDEC_2746);
device.option_add_internal("ntdec_asder", NES_NTDEC_ASDER); // mapper 112

View File

@ -479,7 +479,7 @@ static const nes_mmc mmc_list[] =
{ 513, SACHEN_SA9602B },
// 514 seems to be for skaraok, currently set to UNKNOWN in nes.xml
// 515 Korean Family Noraebang karaoke cart with expansion cart, mic, and YM2413!
// 516 is this for brillco2 and another related title not in nes.xml?
{ 516, COCOMA_BOARD },
// 517 another Korean karaoke cart with mic
// 518 Subor UNL-DANCE2000 and a few others
{ 519, UNL_EH8813A }, // Dr Mario II Chinese pirate

View File

@ -106,6 +106,7 @@ static const nes_pcb pcb_list[] =
{ "cne_decathl", CNE_DECATHLON },
{ "cne_fsb", CNE_FSB },
{ "cne_shlz", CNE_SHLZ },
{ "cocoma", COCOMA_BOARD },
{ "nanjing", NANJING_BOARD }, // mapper 163
{ "ntdec_2746", NTDEC_2746 },
{ "ntdec_asder", NTDEC_ASDER }, // mapper 112

View File

@ -135,7 +135,7 @@ enum
OPENCORP_DAOU306, HES_BOARD, SVISION16_BOARD, RUMBLESTATION_BOARD, JYCOMPANY_A, JYCOMPANY_B, JYCOMPANY_C,
MAGICSERIES_MD, KASING_BOARD, FUTUREMEDIA_BOARD, FUKUTAKE_BOARD, SOMARI_SL12,
HENGG_SRICH, HENGG_XHZS, HENGG_SHJY3, SUBOR_TYPE0, SUBOR_TYPE1, SUBOR_TYPE2,
CNE_DECATHLON, CNE_FSB, CNE_SHLZ, CONY_BOARD, YOKO_BOARD,
CNE_DECATHLON, CNE_FSB, CNE_SHLZ, COCOMA_BOARD, CONY_BOARD, YOKO_BOARD,
RCM_GS2015, RCM_GS2004, RCM_GS2013, RCM_TF9IN1, RCM_3DBLOCK,
WAIXING_TYPE_A, WAIXING_TYPE_A1, WAIXING_TYPE_B, WAIXING_TYPE_C, WAIXING_TYPE_D,
WAIXING_TYPE_E, WAIXING_TYPE_F, WAIXING_TYPE_G, WAIXING_TYPE_H, WAIXING_TYPE_H1,