mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
bus/nes: Added support for a Kaiser 4-in-1 cart. (#8390)
New working software list additions (nes.xml) ----------------------------------- 4 in 1 (KS-106C)
This commit is contained in:
parent
3912610866
commit
ad4f91176b
16
hash/nes.xml
16
hash/nes.xml
@ -79021,6 +79021,22 @@ be better to redump them properly. -->
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_4k106">
|
||||
<description>4 in 1 (KS-106C)</description>
|
||||
<year>19??</year>
|
||||
<publisher>Kaiser</publisher>
|
||||
<info name="usage" value="Press reset to switch games."/>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="ks106c" />
|
||||
<dataarea name="prg" size="131072">
|
||||
<rom name="mc_4k106.prg" size="131072" crc="eb2474f7" sha1="427b323bd1d7d94a2078425e0a6509a258b1c222" status="baddump" />
|
||||
</dataarea>
|
||||
<dataarea name="chr" size="32768">
|
||||
<rom name="mc_4k106.chr" size="32768" crc="a77dae2d" sha1="50671c4cb8db0caee3c2ea764d3324570cebfed0" status="baddump" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mc_4kt34" supported="no">
|
||||
<description>4 in 1 (KT-3445AB)</description>
|
||||
<year>19??</year>
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
Here we emulate the following Kaiser bootleg PCBs
|
||||
|
||||
* Kaiser KS106C
|
||||
* Kaiser KS202
|
||||
* Kaiser KS7010
|
||||
* Kaiser KS7012
|
||||
@ -44,6 +45,7 @@
|
||||
// constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
DEFINE_DEVICE_TYPE(NES_KS106C, nes_ks106c_device, "nes_ks106c", "NES Cart Kaiser KS-106C PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_KS202, nes_ks202_device, "nes_ks202", "NES Cart Kaiser KS-202 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_KS7010, nes_ks7010_device, "nes_ks7010", "NES Cart Kaiser KS-7010 PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_KS7012, nes_ks7012_device, "nes_ks7012", "NES Cart Kaiser KS-7012 PCB")
|
||||
@ -61,6 +63,11 @@ DEFINE_DEVICE_TYPE(NES_KS7057, nes_ks7057_device, "nes_ks7057", "NES Cart Kai
|
||||
DEFINE_DEVICE_TYPE(NES_KS7058, nes_ks7058_device, "nes_ks7058", "NES Cart Kaiser KS-7058 PCB")
|
||||
|
||||
|
||||
nes_ks106c_device::nes_ks106c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_nrom_device(mconfig, NES_KS106C, tag, owner, clock), m_latch(0)
|
||||
{
|
||||
}
|
||||
|
||||
nes_ks7058_device::nes_ks7058_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: nes_nrom_device(mconfig, NES_KS7058, tag, owner, clock)
|
||||
{
|
||||
@ -149,6 +156,20 @@ nes_ks7057_device::nes_ks7057_device(const machine_config &mconfig, const char *
|
||||
|
||||
|
||||
|
||||
void nes_ks106c_device::device_start()
|
||||
{
|
||||
common_start();
|
||||
save_item(NAME(m_latch));
|
||||
}
|
||||
|
||||
void nes_ks106c_device::pcb_reset()
|
||||
{
|
||||
prg32(m_latch);
|
||||
chr8(m_latch, CHRROM);
|
||||
set_nt_mirroring(BIT(m_latch, 0) ? PPU_MIRROR_VERT : PPU_MIRROR_HORZ);
|
||||
m_latch = (m_latch + 1) & 0x03;
|
||||
}
|
||||
|
||||
void nes_ks7058_device::device_start()
|
||||
{
|
||||
common_start();
|
||||
@ -371,6 +392,21 @@ void nes_ks7057_device::pcb_reset()
|
||||
mapper specific handlers
|
||||
-------------------------------------------------*/
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
Kaiser Board KS106C
|
||||
|
||||
Games: 4 in 1
|
||||
|
||||
No need to use handlers. At reset the banks change
|
||||
and so does the game.
|
||||
|
||||
NES 2.0: mapper 352
|
||||
|
||||
In MAME: Supported.
|
||||
|
||||
-------------------------------------------------*/
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
Kaiser Board KS7058
|
||||
|
@ -8,6 +8,25 @@
|
||||
#include "nxrom.h"
|
||||
|
||||
|
||||
// ======================> nes_ks106c_device
|
||||
|
||||
class nes_ks106c_device : public nes_nrom_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
nes_ks106c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||
|
||||
virtual void pcb_reset() override;
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
|
||||
private:
|
||||
u8 m_latch;
|
||||
};
|
||||
|
||||
|
||||
// ======================> nes_ks7058_device
|
||||
|
||||
class nes_ks7058_device : public nes_nrom_device
|
||||
@ -335,6 +354,7 @@ private:
|
||||
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(NES_KS106C, nes_ks106c_device)
|
||||
DECLARE_DEVICE_TYPE(NES_KS202, nes_ks202_device)
|
||||
DECLARE_DEVICE_TYPE(NES_KS7010, nes_ks7010_device)
|
||||
DECLARE_DEVICE_TYPE(NES_KS7012, nes_ks7012_device)
|
||||
|
@ -249,6 +249,7 @@ void nes_cart(device_slot_interface &device)
|
||||
device.option_add_internal("hengg_shjy3", NES_HENGG_SHJY3); // mapper 253
|
||||
device.option_add_internal("hes", NES_HES);
|
||||
device.option_add_internal("hosenkan", NES_HOSENKAN);
|
||||
device.option_add_internal("ks106c", NES_KS106C); // mapper 352
|
||||
device.option_add_internal("ks202", NES_KS202); // mapper 56
|
||||
device.option_add_internal("ks7010", NES_KS7010); // used in Akumajo Dracula (FDS Conversion)
|
||||
device.option_add_internal("ks7012", NES_KS7012); // used in Zanac (FDS Conversion)
|
||||
|
@ -387,7 +387,7 @@ static const nes_mmc mmc_list[] =
|
||||
{ 349, BMC_G146 },
|
||||
// { 350, BMC_891227 }, not in nes.xml
|
||||
// 351 JY/Techline 9-in-1
|
||||
// 352 Kaiser 4-in-1 KS106C
|
||||
{ 352, KAISER_KS106C }, // 4-in-1
|
||||
// 353 Super Mario Family multicart
|
||||
// 354 250-in-1 multicart with FDS Bubble Bobble
|
||||
// 355 Hwang Shinwei 3-D Block etc, currently has unemulated PIC16C54
|
||||
|
@ -161,6 +161,7 @@ static const nes_pcb pcb_list[] =
|
||||
{ "hengg_shjy3", HENGG_SHJY3 }, // mapper 253
|
||||
{ "hes", HES_BOARD },
|
||||
{ "hosenkan", HOSENKAN_BOARD },
|
||||
{ "ks106c", KAISER_KS106C }, // mapper 352
|
||||
{ "ks202", KAISER_KS202 }, // mapper 56
|
||||
{ "ks7010", KAISER_KS7010 }, // used in Akumajo Dracula (FDS Conversion)
|
||||
{ "ks7012", KAISER_KS7012 }, // used in Zanac (FDS Conversion)
|
||||
|
@ -114,10 +114,10 @@ enum
|
||||
BTL_SMB2JB, BTL_09034A, BTL_SMB3, BTL_SBROS11, BTL_DRAGONNINJA,
|
||||
BTL_PIKACHUY2K, BTL_SHUIGUAN, BTL_0353, BTL_BATMANFS, BTL_PALTHENA, BTL_YUNG08,
|
||||
// Kaiser
|
||||
KAISER_KS202, KAISER_KS7010, KAISER_KS7012, KAISER_KS7013B,
|
||||
KAISER_KS7016, KAISER_KS7016B, KAISER_KS7017, KAISER_KS7021A,
|
||||
KAISER_KS7022, KAISER_KS7030, KAISER_KS7031, KAISER_KS7032,
|
||||
KAISER_KS7037, KAISER_KS7057, KAISER_KS7058,
|
||||
KAISER_KS106C, KAISER_KS202, KAISER_KS7010, KAISER_KS7012,
|
||||
KAISER_KS7013B, KAISER_KS7016, KAISER_KS7016B, KAISER_KS7017,
|
||||
KAISER_KS7021A, KAISER_KS7022, KAISER_KS7030, KAISER_KS7031,
|
||||
KAISER_KS7032, KAISER_KS7037, KAISER_KS7057, KAISER_KS7058,
|
||||
// Whirlwind Manu
|
||||
UNL_DH08, UNL_LE05, UNL_LG25, UNL_LH10, UNL_LH28_LH54,
|
||||
UNL_LH31, UNL_LH32, UNL_LH51, UNL_LH53,
|
||||
|
Loading…
Reference in New Issue
Block a user