bus/nes: Added support for several Shenzhen Jncota RPGs. (#8500)

* Also corrected metadata for lots of items.

Software list items promoted to working (nes.xml)
---------------------------------------
Jīng Kē Xīnzhuàn (China, Shenzhen Jncota)
Shènghuǒ Lièzhuàn (China)
Xiákè Chuánqí (China)
Zhànguó Fēngyún (China)
This commit is contained in:
0kmg 2021-09-20 10:31:28 -08:00 committed by GitHub
parent 501c949c25
commit cdf1780074
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 210 additions and 60 deletions

View File

@ -56796,19 +56796,18 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<!-- Shenzen Jincota -->
<!-- Shenzhen Jncota -->
<!-- Some of these partially work with mapper 4, 74, 227 or 240, but we need to figure out the proper behavior! -->
<!-- any relation with jkxz ?? -->
<software name="jingkxz" supported="no">
<description>Jing Ke Xin Zhuan (Chi, Shenzen Jincota)</description>
<!-- This is a later re-release of the Supertone game -->
<software name="jingkxz" cloneof="jkxz">
<description>Jīng Kē Xīnzhuàn (China, Shenzhen Jncota)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1001"/>
<info name="alt_title" value="荆轲新传"/>
<info name="alt_title" value="荊軻新傳"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
<feature name="pcb" value="NES-TLROM" /> <!-- Wrong. It actually uses an extended mapper, based on TLROM, which we don't support yet -->
<feature name="slot" value="jncota_kt1001" />
<dataarea name="chr" size="131072">
<rom name="[kt-1001] jing ke xin zhuan (c).chr" size="131072" crc="0024a801" sha1="ba7a408c852c5ec611851f3f1ae75ce6056837f2" offset="00000" status="baddump" />
</dataarea>
@ -56822,16 +56821,15 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<!-- any relation with shenghlz ?? -->
<software name="shenghuo" supported="no">
<description>Sheng Huo Lie Zhuan (Chi)</description>
<!-- This is a later re-release of the C&E game -->
<software name="shenghuo" cloneof="shenghlz">
<description>Shènghuǒ Lièzhuàn (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1002"/>
<info name="alt_title" value="圣火列传"/>
<info name="alt_title" value="聖火列傳"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
<feature name="pcb" value="NES-TLROM" /> <!-- Wrong. It actually uses an extended mapper, based on TLROM, which we don't support yet -->
<feature name="slot" value="jncota_kt1001" />
<dataarea name="chr" size="131072">
<rom name="[kt-1002] sheng huo lie zhuan (c).chr" size="131072" crc="7c6f37fc" sha1="3a4da287653ec929adac7362c38687f14ca42080" offset="00000" status="baddump" />
</dataarea>
@ -56846,11 +56844,11 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="dierciji" supported="no">
<description>Di Er Ci Ji Qi Ren Da Zhan (Chi)</description>
<description>Dì-èr Cì Chāojí Jīqìrén Dàzhàn (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1003"/>
<info name="alt_title" value="第二次机器人大战"/>
<info name="alt_title" value="第二次超級机器人大战"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
<feature name="pcb" value="NES-TLROM" /> <!-- Wrong. It actually uses an extended mapper, based on TLROM, which we don't support yet -->
@ -56868,9 +56866,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="fankfb" supported="no">
<description>Fan Kong Feng Bao (Chi)</description>
<description>Fǎnkǒng Fēngbào (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1004"/>
<info name="alt_title" value="反恐风暴"/>
<part name="cart" interface="nes_cart">
@ -56890,9 +56888,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="fengshnb" supported="no">
<description>Feng Shen Bang (Chi)</description>
<description>Fēngshén Bǎng (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1005"/>
<info name="alt_title" value="封神榜"/>
<part name="cart" interface="nes_cart">
@ -56912,9 +56910,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="xianscq" supported="no">
<description>Xiang Shuai Chuan Qi (Chi, Shenzen Jincota)</description>
<description>Xiāngshuài Chuánqí (China, Shenzhen Jncota)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1007"/>
<info name="alt_title" value="香帅传奇"/>
<part name="cart" interface="nes_cart">
@ -56934,9 +56932,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="jjzs3" supported="no">
<description>Ji Jia Zhan Shi III (Chi)</description>
<description>Jījiǎ Zhànshì III (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1010"/>
<info name="alt_title" value="机甲战士III"/>
<part name="cart" interface="nes_cart">
@ -56955,15 +56953,15 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="zgfyun" supported="no">
<description>Zhan Guo Feng Yun (Chi)</description>
<!-- This seems to be a later re-release of the Supertone game with an altered title -->
<software name="zgfyun" cloneof="jkxz">
<description>Zhànguó Fēngyún (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1013"/>
<info name="alt_title" value="战国风云"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
<feature name="pcb" value="NES-TLROM" /> <!-- Wrong. It actually uses an extended mapper, based on TLROM, which we don't support yet -->
<feature name="slot" value="jncota_kt1001" />
<dataarea name="chr" size="131072">
<rom name="[kt-1013] zhan guo feng yun (c).chr" size="131072" crc="4026c277" sha1="31bca971eab6f2c3d9a3e58fd2441730d8e666e1" offset="00000" status="baddump" />
</dataarea>
@ -56977,15 +56975,15 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</part>
</software>
<software name="xiakecq" supported="no">
<description>Xia Ke Chuan Qi (Chi)</description>
<!-- This seems to be a later re-release of the C&E game with an altered title -->
<software name="xiakecq" cloneof="shenghlz">
<description>Xiákè Chuánqí (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1014"/>
<info name="alt_title" value="侠客传奇"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
<feature name="pcb" value="NES-TLROM" /> <!-- Wrong. It actually uses an extended mapper, based on TLROM, which we don't support yet -->
<feature name="slot" value="jncota_kt1001" />
<dataarea name="chr" size="131072">
<rom name="[kt-1014] xia ke chuan qi (c).chr" size="131072" crc="f6d312af" sha1="3261d2f7f8cf9bb366a9d0361251161dbce81033" offset="00000" status="baddump" />
</dataarea>
@ -57000,9 +56998,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="chuliuxx" supported="no">
<description>Chu Liu Xiang Xin Zhuan (Chi)</description>
<description>Chǔ Liúxiāng Xīnzhuàn (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1015"/>
<info name="alt_title" value="楚留香新传"/>
<part name="cart" interface="nes_cart">
@ -57022,9 +57020,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="zhanssj" supported="no">
<description>Zhan Shen Shi Jie (Chi)</description>
<description>Zhànshén Shìjiè (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1019"/>
<info name="alt_title" value="战神世界"/>
<part name="cart" interface="nes_cart">
@ -57044,9 +57042,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="jianxqy" supported="no">
<description>Jian Xia Qing Yuan (Chi)</description>
<description>Jiànxiá Qíngyuán (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1020"/>
<info name="alt_title" value="剑侠情缘"/>
<part name="cart" interface="nes_cart">
@ -57066,9 +57064,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="shenmoda" supported="no">
<description>Shen Mo Da Lu (Chi)</description>
<description>Shénmó Dàlù (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1052"/>
<info name="alt_title" value="神魔大陆"/>
<part name="cart" interface="nes_cart">
@ -57088,9 +57086,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="kdgsfc" supported="no">
<description>Kou Dai Guai Shou - Fei Cui Ban (Chi)</description>
<description>Kǒudài Guàishòu - Fěicuì Bǎn (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1063"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
@ -57109,9 +57107,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="hundunds" supported="no">
<description>Yong Zhe Hei An Shi Jie - Hun Dun De Shi Jie (Chi)</description>
<description>Yǒngzhě Hēi'àn Shìjiè - Hùndùn De Shìjiè (China)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="serial" value="KT-1066"/>
<info name="alt_title" value="勇者黑暗世界-混沌的世界"/>
<part name="cart" interface="nes_cart">
@ -57131,9 +57129,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="kdgszs" supported="partial">
<description>Kou Dai Guai Shou - Zuan Shi Ban (KT-008 PCB)</description>
<description>Kǒudài Guàishòu - Zuànshí Bǎn (KT-008 PCB)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="alt_title" value="口袋怪兽 - 钻石版 ~ Pokemon Diamond"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
@ -57152,9 +57150,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="kdgszz" cloneof="kdgszs" supported="partial">
<description>Kou Dai Guai Shou - Zhen Zhu Ban (KT-008 PCB, Alt)</description>
<description>Kǒudài Guàishòu - Zhēnzhū Bǎn (KT-008 PCB, alt)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="alt_title" value="口袋怪兽 - 珍珠版 ~ Pokemon Pearl"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
@ -57173,9 +57171,9 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
</software>
<software name="kdgsbj" cloneof="kdgszs" supported="partial">
<description>Kou Dai Guai Shou - Bai jin Ban (KT-008 PCB, Alt 2)</description>
<description>Kǒudài Guàishòu - Báijīn Bǎn (KT-008 PCB, alt 2)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<info name="alt_title" value="口袋怪兽 - 白金版 ~ Pokemon Platinum"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
@ -64416,7 +64414,7 @@ We don't include these hacks because they were not burned into real carts nor so
<!-- nointro -->
<software name="shenghlz">
<description>Sheng Huo Lie Zhuan (Asia)</description>
<description>Shènghuǒ Lièzhuàn (Asia)</description>
<year>1991</year>
<publisher>Computer &amp; Entertainment</publisher>
<info name="serial" value="A-1061"/>
@ -66004,7 +66002,7 @@ All musics were removed in this game.
</software>
<software name="jkxz1" cloneof="jkxz">
<description>Jing Ke Xin Zhuan (Chi, Alt)</description>
<description>Jīng Kē Xīnzhuàn (China, alt)</description>
<year>1992</year>
<publisher>Supertone</publisher>
<part name="cart" interface="nes_cart">
@ -66025,7 +66023,7 @@ All musics were removed in this game.
<!-- Comment from Cah4e3: other dumps are patched lately with come portions of code to seems handle another PAL modes, which original game doesn't... so this might be the original version of the game -->
<software name="jkxz2" cloneof="jkxz">
<description>Jing Ke Xin Zhuan (Chi, Alt 2)</description>
<description>Jīng Kē Xīnzhuàn (China, alt 2)</description>
<year>1992</year>
<publisher>Supertone</publisher>
<part name="cart" interface="nes_cart">
@ -66045,7 +66043,7 @@ All musics were removed in this game.
</software>
<software name="jkxz">
<description>Jing Ke Xin Zhuan (Chi)</description>
<description>Jīng Kē Xīnzhuàn (China)</description>
<year>1992</year>
<publisher>Supertone</publisher>
<part name="cart" interface="nes_cart">
@ -83270,7 +83268,7 @@ that the real dumps might surface -->
<software name="pokehg" supported="partial">
<description>Pokemon HeartGold (KT-008 PCB)</description>
<year>19??</year>
<publisher>Shenzen Jincota</publisher>
<publisher>Shenzhen Jncota</publisher>
<part name="cart" interface="nes_cart">
<feature name="slot" value="txrom" />
<feature name="pcb" value="NES-TLROM" />

View File

@ -2820,6 +2820,8 @@ if (BUSES["NES"]~=null) then
MAME_DIR .. "src/devices/bus/nes/irem.h",
MAME_DIR .. "src/devices/bus/nes/jaleco.cpp",
MAME_DIR .. "src/devices/bus/nes/jaleco.h",
MAME_DIR .. "src/devices/bus/nes/jncota.cpp",
MAME_DIR .. "src/devices/bus/nes/jncota.h",
MAME_DIR .. "src/devices/bus/nes/jy.cpp",
MAME_DIR .. "src/devices/bus/nes/jy.h",
MAME_DIR .. "src/devices/bus/nes/kaiser.cpp",

View File

@ -0,0 +1,110 @@
// license:BSD-3-Clause
// copyright-holders: kmg, Fabio Priuli
/***********************************************************************************************************
NES/Famicom cartridge emulation for Shenzhen Jncota PCBs
Here we emulate the following PCBs
* Jncota KT-1001 [mapper 551]
***********************************************************************************************************/
#include "emu.h"
#include "jncota.h"
#ifdef NES_PCB_DEBUG
#define VERBOSE 1
#else
#define VERBOSE 0
#endif
#define LOG_MMC(x) do { if (VERBOSE) logerror x; } while (0)
//-------------------------------------------------
// constructor
//-------------------------------------------------
DEFINE_DEVICE_TYPE(NES_JNCOTA_KT1001, nes_jncota_kt1001_device, "nes_jncota_kt1001", "NES Cart Shenzhen Jncota KT-1001 PCB")
nes_jncota_kt1001_device::nes_jncota_kt1001_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: nes_nrom_device(mconfig, NES_JNCOTA_KT1001, tag, owner, clock)
{
}
void nes_jncota_kt1001_device::device_start()
{
common_start();
save_item(NAME(m_reg));
}
void nes_jncota_kt1001_device::pcb_reset()
{
prg32(0);
chr8(0, CHRROM);
set_nt_mirroring(PPU_MIRROR_HORZ);
m_reg[0] = m_reg[1] = m_reg[2] = 0;
}
/*-------------------------------------------------
mapper specific handlers
-------------------------------------------------*/
/*-------------------------------------------------
Shenzhen Jncota board KT-1001 (this is the serial
on the cart, PCB is likely KT-00X for some X)
Games: Jing Ke Xin Zhuan, Sheng Huo Lie Zhuan,
Zhan Guo Feng Yun, Xia Ke Chuan Qi
This board is very similar to mapper 178 but with
bankable CHRROM instead of PRGRAM and without
selectable mirroring.
NES 2.0: mapper 551
In MAME: Supported.
-------------------------------------------------*/
void nes_jncota_kt1001_device::write_l(offs_t offset, u8 data)
{
LOG_MMC(("jncota_kt1001 write_h, offset: %04x, data: %02x\n", offset, data));
offset += 0x100;
switch (offset & 0x1803)
{
case 0x0800: case 0x0801: case 0x0802:
{
m_reg[offset & 3] = data;
u16 bank = m_reg[2] << 3 | (m_reg[1] & 0x7);
u16 mode = !BIT(m_reg[0], 2);
if (BIT(m_reg[0], 1)) // UNROM mode
{
prg16_89ab(bank);
prg16_cdef(bank | mode | 0x06);
}
else // NROM mode
{
prg16_89ab(bank & ~mode);
prg16_cdef(bank | mode);
}
break;
}
case 0x0803:
chr8(data, CHRROM);
break;
}
}

View File

@ -0,0 +1,35 @@
// license:BSD-3-Clause
// copyright-holders: kmg, Fabio Priuli
#ifndef MAME_BUS_NES_JNCOTA_H
#define MAME_BUS_NES_JNCOTA_H
#pragma once
#include "nxrom.h"
// ======================> nes_jncota_kt1001_device
class nes_jncota_kt1001_device : public nes_nrom_device
{
public:
// construction/destruction
nes_jncota_kt1001_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
virtual void write_l(offs_t offset, u8 data) override;
virtual void pcb_reset() override;
protected:
// device-level overrides
virtual void device_start() override;
private:
u8 m_reg[3];
};
// device type definition
DECLARE_DEVICE_TYPE(NES_JNCOTA_KT1001, nes_jncota_kt1001_device)
#endif // MAME_BUS_NES_JNCOTA_H

View File

@ -42,6 +42,7 @@
#include "ggenie.h"
#include "hes.h"
#include "henggedianzi.h"
#include "jncota.h"
#include "jy.h"
#include "kaiser.h"
#include "legacy.h"
@ -199,6 +200,7 @@ void nes_cart(device_slot_interface &device)
device.option_add_internal("ntdec_asder", NES_NTDEC_ASDER); // mapper 112
device.option_add_internal("ntdec_fh", NES_NTDEC_FH); // mapper 193
device.option_add_internal("ntdec_n715021", NES_NTDEC_N715021); // mapper 81
device.option_add_internal("jncota_kt1001", NES_JNCOTA_KT1001); // mapper 551
device.option_add_internal("jyc_a", NES_JY_TYPEA); // mapper 90
device.option_add_internal("jyc_b", NES_JY_TYPEB); // mapper 211
device.option_add_internal("jyc_c", NES_JY_TYPEC); // mapper 209

View File

@ -513,7 +513,7 @@ static const nes_mmc mmc_list[] =
// { 548, BTL_CTC15 }, // Almana no Kiseki alt FDS conversion (dump available?)
{ 549, KAISER_KS7016B }, // Meikyuu Jiin Dababa alt FDS conversion
{ 550, BMC_JY820845C },
// 551 variant of mapper 178, likely shenghuo, jingkzx, xiaokecq, zgfyun in nes.xml
{ 551, JNCOTA_KT1001 },
// 552 TAITO_X1_017, this is a correction of mapper 82. We should drop 82 and only support the accurate dumps of 552?
{ 553, SACHEN_3013 }, // Dong Dong Nao 1
{ 554, KAISER_KS7010 }, // Akumajo Dracula FDS conversion

View File

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

View File

@ -119,6 +119,8 @@ enum
BTL_CONTRAJ, BTL_DRAGONNINJA, BTL_MARIOBABY, BTL_PALTHENA,
BTL_PIKACHUY2K, BTL_SBROS11, BTL_SMB2JA, BTL_SMB2JB,
BTL_SMB3, BTL_SHUIGUAN, BTL_TOBIDASE, BTL_YUNG08,
// Shenzhen Jncota
JNCOTA_KT1001,
// Kaiser
KAISER_KS106C, KAISER_KS202, KAISER_KS7010, KAISER_KS7012,
KAISER_KS7013B, KAISER_KS7016, KAISER_KS7016B, KAISER_KS7017,