mirror of
https://github.com/holub/mame
synced 2025-04-20 15:32:45 +03:00
bus/nes: Added support for a Moero TwinBee FDS conversion. (#8334)
New working software list additions (nes.xml) ----------------------------------- Moero TwinBee - Cinnamon Hakase o Sukue! (FDS conversion) [famiac]
This commit is contained in:
parent
42c4027313
commit
7ecad6c475
20
hash/nes.xml
20
hash/nes.xml
@ -66922,6 +66922,26 @@ Also notice that VRAM & WRAM are probably incorrect for some of these sets, at t
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="moetwfds">
|
||||
<description>Moero TwinBee - Cinnamon Hakase o Sukue! (FDS conversion)</description>
|
||||
<year>19??</year>
|
||||
<publisher>Whirlwind Manu</publisher>
|
||||
<info name="serial" value="LG25"/>
|
||||
<info name="alt_title" value="もえろツインビー シナモン博士を救え!"/>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="unl_lg25" />
|
||||
<dataarea name="prg" size="131072">
|
||||
<rom name="moetwfds.prg" size="131072" crc="55f24a46" sha1="b995f2fa2e1723a6e14b824a2e9a112668ced9db" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
<!-- 8k WRAM on cartridge -->
|
||||
<dataarea name="wram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="montyfds">
|
||||
<description>Monty no Doki Doki Daidassou (Asia, FDS conversion)</description>
|
||||
<year>19??</year>
|
||||
|
@ -53,6 +53,7 @@ DEFINE_DEVICE_TYPE(NES_PALTHENA, nes_palthena_device, "nes_palthena", "N
|
||||
DEFINE_DEVICE_TYPE(NES_TOBIDASE, nes_tobidase_device, "nes_tobidase", "NES Cart Tobidase Daisakusen Pirate PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_DH08, nes_dh08_device, "nes_dh08", "NES Cart DH-08 Pirate PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_LE05, nes_le05_device, "nes_le05", "NES Cart LE05 Pirate PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_LG25, nes_lg25_device, "nes_lg25", "NES Cart LG25 Pirate PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_LH10, nes_lh10_device, "nes_lh10", "NES Cart LH10 Pirate PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_LH28_LH54, nes_lh28_lh54_device, "nes_lh28_lh54", "NES Cart LH28/LH54 Pirate PCBs")
|
||||
DEFINE_DEVICE_TYPE(NES_LH31, nes_lh31_device, "nes_lh31", "NES Cart LH31 Pirate PCB")
|
||||
@ -166,6 +167,11 @@ nes_lh32_device::nes_lh32_device(const machine_config &mconfig, const char *tag,
|
||||
{
|
||||
}
|
||||
|
||||
nes_lg25_device::nes_lg25_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_nrom_device(mconfig, NES_LG25, tag, owner, clock), m_latch(0)
|
||||
{
|
||||
}
|
||||
|
||||
nes_lh10_device::nes_lh10_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: nes_nrom_device(mconfig, NES_LH10, tag, owner, clock), m_latch(0)
|
||||
{
|
||||
@ -500,6 +506,21 @@ void nes_lh32_device::pcb_reset()
|
||||
m_latch = 0xf;
|
||||
}
|
||||
|
||||
void nes_lg25_device::device_start()
|
||||
{
|
||||
common_start();
|
||||
save_item(NAME(m_latch));
|
||||
}
|
||||
|
||||
void nes_lg25_device::pcb_reset()
|
||||
{
|
||||
prg16_89ab(0);
|
||||
prg16_cdef(m_prg_chunks - 1); // Last 16K is fixed
|
||||
chr8(0, CHRRAM);
|
||||
|
||||
m_latch = 0;
|
||||
}
|
||||
|
||||
void nes_lh10_device::device_start()
|
||||
{
|
||||
common_start();
|
||||
@ -1524,6 +1545,42 @@ void nes_lh32_device::write_h(offs_t offset, uint8_t data)
|
||||
m_prgram[offset & 0x1fff] = data;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
UNL-LG25
|
||||
|
||||
Games: Moero TwinBee Cinnamon Hakase o Sukue! (FDS conversion)
|
||||
|
||||
In addition to the two swappable 8K PRG banks at
|
||||
0x8000 and 0xa000, this board has 8K WRAM at 0x6000.
|
||||
|
||||
NES 2.0: mapper 557
|
||||
|
||||
In MAME: Supported.
|
||||
|
||||
-------------------------------------------------*/
|
||||
|
||||
void nes_lg25_device::write_h(offs_t offset, u8 data)
|
||||
{
|
||||
LOG_MMC(("lg25 write_h, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
if (BIT(offset, 0))
|
||||
{
|
||||
switch (m_latch)
|
||||
{
|
||||
case 1:
|
||||
set_nt_mirroring(BIT(data, 2) ? PPU_MIRROR_VERT : PPU_MIRROR_HORZ);
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
prg8_x(m_latch & 1, data & 0x0f);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
m_latch = data & 0x03;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
UNL-LH10
|
||||
|
@ -438,6 +438,27 @@ private:
|
||||
};
|
||||
|
||||
|
||||
// ======================> nes_lg25_device
|
||||
|
||||
class nes_lg25_device : public nes_nrom_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
nes_lg25_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_lh10_device
|
||||
|
||||
class nes_lh10_device : public nes_nrom_device
|
||||
@ -642,6 +663,7 @@ DECLARE_DEVICE_TYPE(NES_PALTHENA, nes_palthena_device)
|
||||
DECLARE_DEVICE_TYPE(NES_TOBIDASE, nes_tobidase_device)
|
||||
DECLARE_DEVICE_TYPE(NES_DH08, nes_dh08_device)
|
||||
DECLARE_DEVICE_TYPE(NES_LE05, nes_le05_device)
|
||||
DECLARE_DEVICE_TYPE(NES_LG25, nes_lg25_device)
|
||||
DECLARE_DEVICE_TYPE(NES_LH10, nes_lh10_device)
|
||||
DECLARE_DEVICE_TYPE(NES_LH28_LH54, nes_lh28_lh54_device)
|
||||
DECLARE_DEVICE_TYPE(NES_LH31, nes_lh31_device)
|
||||
|
@ -310,6 +310,7 @@ void nes_cart(device_slot_interface &device)
|
||||
device.option_add_internal("unl_2708", NES_2708); // mapper 103
|
||||
device.option_add_internal("unl_dh08", NES_DH08); // used in Bubble Bobble alt (FDS Conversion);
|
||||
device.option_add_internal("unl_le05", NES_LE05); // used in ProWres (FDS Conversion);
|
||||
device.option_add_internal("unl_lg25", NES_LG25); // used in Moero TwinBee (FDS Conversion);
|
||||
device.option_add_internal("unl_lh10", NES_LH10); // used in Fuuun Shaolin Kyo (FDS Conversion);
|
||||
device.option_add_internal("unl_lh28_lh54", NES_LH28_LH54); // used in Falsion, Meikyuu Jiin Dababa FDS conversions
|
||||
device.option_add_internal("unl_lh31", NES_LH31); // used in Bubble Bobble alt FDS conversion
|
||||
|
@ -516,7 +516,7 @@ static const nes_mmc mmc_list[] =
|
||||
{ 554, KAISER_KS7010 }, // Akumajo Dracula FDS conversion
|
||||
// 555 retroUSB re-release of 1991 Nintendo Campus Challenge
|
||||
// 556 JY-215 multicart
|
||||
// { 557, KAISER_KS7xxx or UNL_LG25? }, // Kaiser Moero TwinBee FDS conversion
|
||||
{ 557, UNL_LG25 }, // Moero TwinBee FDS conversion
|
||||
// 558 some games on YC-03-09 board (related to mappers 162-164)
|
||||
// 559...4095 Unused
|
||||
};
|
||||
|
@ -309,6 +309,7 @@ static const nes_pcb pcb_list[] =
|
||||
{ "unl_2708", UNL_2708 },
|
||||
{ "unl_dh08", UNL_DH08 },
|
||||
{ "unl_le05", UNL_LE05 },
|
||||
{ "unl_lg25", UNL_LG25 },
|
||||
{ "unl_lh10", UNL_LH10 },
|
||||
{ "unl_lh28_lh54", UNL_LH28_LH54 },
|
||||
{ "unl_lh31", UNL_LH31 },
|
||||
|
@ -119,7 +119,7 @@ enum
|
||||
KAISER_KS7022, KAISER_KS7030, KAISER_KS7031, KAISER_KS7032,
|
||||
KAISER_KS7037, KAISER_KS7057, KAISER_KS7058,
|
||||
// Whirlwind Manu
|
||||
UNL_DH08, UNL_LE05, UNL_LH10, UNL_LH28_LH54,
|
||||
UNL_DH08, UNL_LE05, UNL_LG25, UNL_LH10, UNL_LH28_LH54,
|
||||
UNL_LH31, UNL_LH32, UNL_LH51, UNL_LH53,
|
||||
/* Misc: these are needed to convert mappers to boards, I will sort them later */
|
||||
OPENCORP_DAOU306, HES_BOARD, SVISION16_BOARD, RUMBLESTATION_BOARD, JYCOMPANY_A, JYCOMPANY_B, JYCOMPANY_C,
|
||||
|
Loading…
Reference in New Issue
Block a user