mirror of
https://github.com/holub/mame
synced 2025-04-28 11:11:48 +03:00
bus/nes: Added support for a Big Nose 2-in-1 cart.
- Demoted bignfo to unsupported. It has timing issues like many Camerica games. It is likewise not working in the added 2-in-1. New working software list additions (nes.xml) ----------------------------------- 2 in 1 - Big Nose the Caveman & Big Nose Freaks Out [MLX]
This commit is contained in:
parent
4d513fc86d
commit
48357fe653
23
hash/nes.xml
23
hash/nes.xml
@ -4201,7 +4201,7 @@ license:CC0
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="bignfo">
|
<software name="bignfo" supported="no">
|
||||||
<description>Big Nose Freaks Out (USA)</description>
|
<description>Big Nose Freaks Out (USA)</description>
|
||||||
<year>1992</year>
|
<year>1992</year>
|
||||||
<publisher>Camerica</publisher>
|
<publisher>Camerica</publisher>
|
||||||
@ -61302,6 +61302,24 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
|
|||||||
|
|
||||||
<!-- OTHER TAIWANESE ~ CHINESE ~ ASIAN PIRATES-->
|
<!-- OTHER TAIWANESE ~ CHINESE ~ ASIAN PIRATES-->
|
||||||
|
|
||||||
|
<software name="2bignose" supported="partial">
|
||||||
|
<description>2 in 1 - Big Nose the Caveman & Big Nose Freaks Out</description>
|
||||||
|
<year>199?</year>
|
||||||
|
<publisher><pirate></publisher>
|
||||||
|
<info name="serial" value="BC-019"/>
|
||||||
|
<info name="usage" value="Press reset to switch games."/>
|
||||||
|
<part name="cart" interface="nes_cart">
|
||||||
|
<feature name="slot" value="kn42" />
|
||||||
|
<feature name="mirroring" value="vertical" />
|
||||||
|
<dataarea name="prg" size="524288">
|
||||||
|
<rom name="2-in-1 high standard game (bc-019).prg" size="524288" crc="330623a4" sha1="ad189495ed8b6d60dddcbb970be17174b2389e63" status="baddump" />
|
||||||
|
</dataarea>
|
||||||
|
<!-- 8k VRAM on cartridge -->
|
||||||
|
<dataarea name="vram" size="8192">
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
<software name="2dkjb" supported="no">
|
<software name="2dkjb" supported="no">
|
||||||
<description>2 in 1 - Donkey Kong & Jungle Book</description>
|
<description>2 in 1 - Donkey Kong & Jungle Book</description>
|
||||||
<year>19??</year>
|
<year>19??</year>
|
||||||
@ -78732,6 +78750,7 @@ be better to redump them properly. -->
|
|||||||
<description>4 in 1 (Alt 2)</description>
|
<description>4 in 1 (Alt 2)</description>
|
||||||
<year>19??</year>
|
<year>19??</year>
|
||||||
<publisher><pirate></publisher>
|
<publisher><pirate></publisher>
|
||||||
|
<info name="usage" value="Press reset to switch games."/>
|
||||||
<part name="cart" interface="nes_cart">
|
<part name="cart" interface="nes_cart">
|
||||||
<feature name="slot" value="bmc_reset4" />
|
<feature name="slot" value="bmc_reset4" />
|
||||||
<feature name="mirroring" value="vertical" />
|
<feature name="mirroring" value="vertical" />
|
||||||
@ -78748,6 +78767,7 @@ be better to redump them properly. -->
|
|||||||
<description>4 in 1 (Alt 3)</description>
|
<description>4 in 1 (Alt 3)</description>
|
||||||
<year>19??</year>
|
<year>19??</year>
|
||||||
<publisher><pirate></publisher>
|
<publisher><pirate></publisher>
|
||||||
|
<info name="usage" value="Press reset to switch games."/>
|
||||||
<part name="cart" interface="nes_cart">
|
<part name="cart" interface="nes_cart">
|
||||||
<feature name="slot" value="bmc_reset4" />
|
<feature name="slot" value="bmc_reset4" />
|
||||||
<dataarea name="chr" size="32768">
|
<dataarea name="chr" size="32768">
|
||||||
@ -80849,6 +80869,7 @@ to check why this is different -->
|
|||||||
<description>Reset Based 4 in 1</description>
|
<description>Reset Based 4 in 1</description>
|
||||||
<year>19??</year>
|
<year>19??</year>
|
||||||
<publisher><pirate></publisher>
|
<publisher><pirate></publisher>
|
||||||
|
<info name="usage" value="Press reset to switch games."/>
|
||||||
<part name="cart" interface="nes_cart">
|
<part name="cart" interface="nes_cart">
|
||||||
<feature name="slot" value="bmc_reset4" />
|
<feature name="slot" value="bmc_reset4" />
|
||||||
<feature name="pcb" value="BMC-RESETBASED-4IN1" />
|
<feature name="pcb" value="BMC-RESETBASED-4IN1" />
|
||||||
|
@ -32,6 +32,7 @@ DEFINE_DEVICE_TYPE(NES_ACTION52, nes_action52_device, "nes_action52"
|
|||||||
DEFINE_DEVICE_TYPE(NES_CALTRON6IN1, nes_caltron_device, "nes_caltron", "NES Cart Caltron 6 in 1 PCB")
|
DEFINE_DEVICE_TYPE(NES_CALTRON6IN1, nes_caltron_device, "nes_caltron", "NES Cart Caltron 6 in 1 PCB")
|
||||||
DEFINE_DEVICE_TYPE(NES_RUMBLESTATION, nes_rumblestat_device, "nes_rumblestat", "NES Cart Rumblestation PCB")
|
DEFINE_DEVICE_TYPE(NES_RUMBLESTATION, nes_rumblestat_device, "nes_rumblestat", "NES Cart Rumblestation PCB")
|
||||||
DEFINE_DEVICE_TYPE(NES_SVISION16, nes_svision16_device, "nes_svision16", "NES Cart Supervision 16 in 1 PCB")
|
DEFINE_DEVICE_TYPE(NES_SVISION16, nes_svision16_device, "nes_svision16", "NES Cart Supervision 16 in 1 PCB")
|
||||||
|
DEFINE_DEVICE_TYPE(NES_KN42, nes_kn42_device, "nes_kn42", "NES Cart KN-42 PCB")
|
||||||
DEFINE_DEVICE_TYPE(NES_N625092, nes_n625092_device, "nes_n625092", "NES Cart N625092 PCB")
|
DEFINE_DEVICE_TYPE(NES_N625092, nes_n625092_device, "nes_n625092", "NES Cart N625092 PCB")
|
||||||
DEFINE_DEVICE_TYPE(NES_A65AS, nes_a65as_device, "nes_a65as", "NES Cart A65AS PCB")
|
DEFINE_DEVICE_TYPE(NES_A65AS, nes_a65as_device, "nes_a65as", "NES Cart A65AS PCB")
|
||||||
DEFINE_DEVICE_TYPE(NES_T262, nes_t262_device, "nes_t262", "NES Cart T-262 PCB")
|
DEFINE_DEVICE_TYPE(NES_T262, nes_t262_device, "nes_t262", "NES Cart T-262 PCB")
|
||||||
@ -102,6 +103,11 @@ nes_svision16_device::nes_svision16_device(const machine_config &mconfig, const
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nes_kn42_device::nes_kn42_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||||
|
: nes_nrom_device(mconfig, NES_KN42, tag, owner, clock), m_latch(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
nes_n625092_device::nes_n625092_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
nes_n625092_device::nes_n625092_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||||
: nes_nrom_device(mconfig, NES_N625092, tag, owner, clock), m_latch1(0), m_latch2(0)
|
: nes_nrom_device(mconfig, NES_N625092, tag, owner, clock), m_latch1(0), m_latch2(0)
|
||||||
{
|
{
|
||||||
@ -406,6 +412,20 @@ void nes_svision16_device::pcb_reset()
|
|||||||
m_latch2 = 0;
|
m_latch2 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void nes_kn42_device::device_start()
|
||||||
|
{
|
||||||
|
common_start();
|
||||||
|
save_item(NAME(m_latch));
|
||||||
|
}
|
||||||
|
|
||||||
|
void nes_kn42_device::pcb_reset()
|
||||||
|
{
|
||||||
|
m_latch ^= 0x10;
|
||||||
|
prg16_89ab(m_latch);
|
||||||
|
prg16_cdef(m_latch | 0x0f); // fixed to last bank for either game
|
||||||
|
chr8(0, CHRRAM);
|
||||||
|
}
|
||||||
|
|
||||||
void nes_n625092_device::device_start()
|
void nes_n625092_device::device_start()
|
||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
@ -1215,6 +1235,32 @@ void nes_svision16_device::write_h(offs_t offset, uint8_t data)
|
|||||||
update_prg();
|
update_prg();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*-------------------------------------------------
|
||||||
|
|
||||||
|
Bootleg Board KN-42
|
||||||
|
|
||||||
|
Games: 2 in 1 - Big Nose & Big Nose Freaks Out
|
||||||
|
|
||||||
|
NES 2.0: mapper 381
|
||||||
|
|
||||||
|
In MAME: Supported.
|
||||||
|
|
||||||
|
TODO: Big Nose Freaks Out has timing issues like
|
||||||
|
many Camerica games. It happens with the singleton
|
||||||
|
dump and is unrelated to the bootleg board here.
|
||||||
|
|
||||||
|
-------------------------------------------------*/
|
||||||
|
|
||||||
|
void nes_kn42_device::write_h(offs_t offset, u8 data)
|
||||||
|
{
|
||||||
|
LOG_MMC(("kn42 write_h, offset: %04x, data: %02x\n", offset, data));
|
||||||
|
|
||||||
|
// this pcb is subject to bus conflict
|
||||||
|
data = account_bus_conflict(offset, data);
|
||||||
|
|
||||||
|
prg16_89ab(m_latch | (data & 0x07) << 1 | BIT(data, 4));
|
||||||
|
}
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
|
|
||||||
Bootleg Board N625092
|
Bootleg Board N625092
|
||||||
@ -1265,7 +1311,6 @@ void nes_n625092_device::write_h(offs_t offset, uint8_t data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
|
|
||||||
Board BMC-A65AS
|
Board BMC-A65AS
|
||||||
|
@ -94,6 +94,27 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// ======================> nes_kn42_device
|
||||||
|
|
||||||
|
class nes_kn42_device : public nes_nrom_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// construction/destruction
|
||||||
|
nes_kn42_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;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// device-level overrides
|
||||||
|
virtual void device_start() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
u8 m_latch;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// ======================> nes_n625092_device
|
// ======================> nes_n625092_device
|
||||||
|
|
||||||
class nes_n625092_device : public nes_nrom_device
|
class nes_n625092_device : public nes_nrom_device
|
||||||
@ -1018,6 +1039,7 @@ DECLARE_DEVICE_TYPE(NES_ACTION52, nes_action52_device)
|
|||||||
DECLARE_DEVICE_TYPE(NES_CALTRON6IN1, nes_caltron_device)
|
DECLARE_DEVICE_TYPE(NES_CALTRON6IN1, nes_caltron_device)
|
||||||
DECLARE_DEVICE_TYPE(NES_RUMBLESTATION, nes_rumblestat_device)
|
DECLARE_DEVICE_TYPE(NES_RUMBLESTATION, nes_rumblestat_device)
|
||||||
DECLARE_DEVICE_TYPE(NES_SVISION16, nes_svision16_device)
|
DECLARE_DEVICE_TYPE(NES_SVISION16, nes_svision16_device)
|
||||||
|
DECLARE_DEVICE_TYPE(NES_KN42, nes_kn42_device)
|
||||||
DECLARE_DEVICE_TYPE(NES_N625092, nes_n625092_device)
|
DECLARE_DEVICE_TYPE(NES_N625092, nes_n625092_device)
|
||||||
DECLARE_DEVICE_TYPE(NES_A65AS, nes_a65as_device)
|
DECLARE_DEVICE_TYPE(NES_A65AS, nes_a65as_device)
|
||||||
DECLARE_DEVICE_TYPE(NES_T262, nes_t262_device)
|
DECLARE_DEVICE_TYPE(NES_T262, nes_t262_device)
|
||||||
|
@ -352,6 +352,7 @@ void nes_cart(device_slot_interface &device)
|
|||||||
device.option_add_internal("maxi15", NES_MAXI15); // mapper 234
|
device.option_add_internal("maxi15", NES_MAXI15); // mapper 234
|
||||||
device.option_add_internal("rumblestation", NES_RUMBLESTATION); // mapper 46
|
device.option_add_internal("rumblestation", NES_RUMBLESTATION); // mapper 46
|
||||||
device.option_add_internal("svision16", NES_SVISION16); // mapper 53
|
device.option_add_internal("svision16", NES_SVISION16); // mapper 53
|
||||||
|
device.option_add_internal("kn42", NES_KN42);
|
||||||
device.option_add_internal("n625092", NES_N625092);
|
device.option_add_internal("n625092", NES_N625092);
|
||||||
device.option_add_internal("a65as", NES_A65AS);
|
device.option_add_internal("a65as", NES_A65AS);
|
||||||
device.option_add_internal("t262", NES_T262);
|
device.option_add_internal("t262", NES_T262);
|
||||||
|
@ -415,7 +415,7 @@ static const nes_mmc mmc_list[] =
|
|||||||
// 378 8-in-1 multicart, which one?
|
// 378 8-in-1 multicart, which one?
|
||||||
// 379 35-in-1 multicart, similar to mapper 38
|
// 379 35-in-1 multicart, similar to mapper 38
|
||||||
// 380 970630C multicart
|
// 380 970630C multicart
|
||||||
// 381 KN-42 2-in-1 with the Big Nose games
|
{ 381, UNL_KN42 }, // 2-in-1 Big Nose games
|
||||||
// 382 830928C 5-in-1 and 9-in-1 multicarts
|
// 382 830928C 5-in-1 and 9-in-1 multicarts
|
||||||
// 383 JY-014 multicart
|
// 383 JY-014 multicart
|
||||||
// 384 4-in-1 VRC4 clone with Crisis Force
|
// 384 4-in-1 VRC4 clone with Crisis Force
|
||||||
|
@ -237,6 +237,7 @@ static const nes_pcb pcb_list[] =
|
|||||||
{ "caltron6in1", CALTRON_6IN1 },
|
{ "caltron6in1", CALTRON_6IN1 },
|
||||||
{ "rumblestation", RUMBLESTATION_BOARD }, // mapper 46
|
{ "rumblestation", RUMBLESTATION_BOARD }, // mapper 46
|
||||||
{ "svision16", SVISION16_BOARD },
|
{ "svision16", SVISION16_BOARD },
|
||||||
|
{ "kn42", UNL_KN42 },
|
||||||
{ "n625092", UNL_N625092 },
|
{ "n625092", UNL_N625092 },
|
||||||
{ "a65as", BMC_A65AS },
|
{ "a65as", BMC_A65AS },
|
||||||
{ "t262", BMC_T262 },
|
{ "t262", BMC_T262 },
|
||||||
|
@ -102,7 +102,7 @@ enum
|
|||||||
BMC_12IN1, BMC_4IN1RESET, BMC_42IN1RESET,
|
BMC_12IN1, BMC_4IN1RESET, BMC_42IN1RESET,
|
||||||
BMC_CTC09, BMC_K3046, BMC_SA005A, BMC_TJ03,
|
BMC_CTC09, BMC_K3046, BMC_SA005A, BMC_TJ03,
|
||||||
// Unlicensed
|
// Unlicensed
|
||||||
UNL_8237, UNL_CC21, UNL_AX5705, UNL_KOF97,
|
UNL_8237, UNL_CC21, UNL_AX5705, UNL_KN42, UNL_KOF97,
|
||||||
UNL_N625092, UNL_SC127, UNL_SMB2J, UNL_T230, UNL_MMALEE,
|
UNL_N625092, UNL_SC127, UNL_SMB2J, UNL_T230, UNL_MMALEE,
|
||||||
UNL_UXROM, UNL_MK2, UNL_XIAOZY, UNL_KOF96, UNL_FS6,
|
UNL_UXROM, UNL_MK2, UNL_XIAOZY, UNL_KOF96, UNL_FS6,
|
||||||
UNL_SF3, UNL_RACERMATE, UNL_EDU2K,
|
UNL_SF3, UNL_RACERMATE, UNL_EDU2K,
|
||||||
|
Loading…
Reference in New Issue
Block a user