mirror of
https://github.com/holub/mame
synced 2025-04-21 07:52:35 +03:00
bus/nes: Added partial support for 8-bit Xmas cartridges. (#8930)
* bus/nes: Added partial support for 8-bit Xmas cartridges. New working software list additions (nes.xml) ----------------------------------- 8-bit Xmas 2008 [kmg] 8-bit Xmas 2009 [kmg] 8-bit Xmas 2010 [kmg] 8-bit Xmas 2011 [kmg] 8-bit Xmas 2012 [kmg] 8-bit Xmas 2013 [kmg] 8-bit Xmas 2014 [kmg] 8-bit Xmas 2015 [kmg] 8-bit Xmas 2018 [kmg] 8-bit Xmas 2019 [kmg] 8-bit Xmas 2020 [kmg] 8-bit Xmas 2021 [kmg] New NOT_WORKING software list additions (nes.xml) --------------------------------------- 8-bit Xmas 2016 [kmg] * Mark a few titles I missed as partially supported.
This commit is contained in:
parent
59867a349a
commit
9c6d7f1dcf
200
hash/nes.xml
200
hash/nes.xml
@ -78847,6 +78847,206 @@ be better to redump them properly. -->
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- 8-bit Xmas 2008-2011 are not really NROM, but an NROM-like board with flashing LEDs -->
|
||||
<software name="xmas08" supported="partial">
|
||||
<description>8-bit Xmas 2008</description>
|
||||
<year>2008</year>
|
||||
<publisher>RetroZone</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="nrom" />
|
||||
<dataarea name="prg" size="32768">
|
||||
<rom name="xmas08demo.prg" size="32768" crc="3ae2a150" sha1="5ce021bebb9049604434af45d6c397e6dd7b84c4" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xmas09" supported="partial">
|
||||
<description>8-bit Xmas 2009</description>
|
||||
<year>2009</year>
|
||||
<publisher>RetroZone</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="nrom" />
|
||||
<dataarea name="prg" size="32768">
|
||||
<rom name="xmas09demo.prg" size="32768" crc="851cea10" sha1="88ed2741e88144eda26366985d216f27629cf3f8" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xmas10" supported="partial">
|
||||
<description>8-bit Xmas 2010</description>
|
||||
<year>2010</year>
|
||||
<publisher>RetroZone</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="nrom" />
|
||||
<feature name="mirroring" value="vertical" />
|
||||
<dataarea name="prg" size="32768">
|
||||
<rom name="xmas10demo.prg" size="32768" crc="a6e02975" sha1="a3a81cc6fdb7a68efbb061ba44dd52407a978e26" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xmas11" supported="partial">
|
||||
<description>8-bit Xmas 2011</description>
|
||||
<year>2011</year>
|
||||
<publisher>RetroZone</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="nrom" />
|
||||
<dataarea name="prg" size="32768">
|
||||
<rom name="xmas11demo.prg" size="32768" crc="d0d0c932" sha1="067bbd99c5f9ccaf66ef484e024b9c98e4893d6d" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- This will crash if left on the title screen. The mini-game seems fine, however. -->
|
||||
<software name="xmas12" supported="partial">
|
||||
<description>8-bit Xmas 2012</description>
|
||||
<year>2012</year>
|
||||
<publisher>RetroZone</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="8bitxmas" />
|
||||
<dataarea name="prg" size="131072">
|
||||
<rom name="xmas12demo.prg" size="131072" crc="feab08f1" sha1="4834a8bea6df40c9566b97412de775de2ffde492" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xmas13" supported="partial">
|
||||
<description>8-bit Xmas 2013</description>
|
||||
<year>2013</year>
|
||||
<publisher>RetroZone</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="8bitxmas" />
|
||||
<dataarea name="prg" size="131072">
|
||||
<rom name="xmas13demo.prg" size="131072" crc="f8d04aa0" sha1="98e57ebca93689042d254fe205c357cdc4d84b0a" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xmas14" supported="partial">
|
||||
<description>8-bit Xmas 2014</description>
|
||||
<year>2014</year>
|
||||
<publisher>retroUSB</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="8bitxmas" />
|
||||
<dataarea name="prg" size="131072">
|
||||
<rom name="xmas14demo.prg" size="131072" crc="900ca825" sha1="9e7a881a5c1e643b1327a7c4434e2623eefb95e5" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xmas15" supported="partial">
|
||||
<description>8-bit Xmas 2015</description>
|
||||
<year>2015</year>
|
||||
<publisher>retroUSB</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="8bitxmas" />
|
||||
<dataarea name="prg" size="131072">
|
||||
<rom name="xmas15demo.prg" size="131072" crc="376c9fcc" sha1="658929d3377e30469c82b3bf8a66c7d2fbcd0b57" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xmas16" supported="no">
|
||||
<description>8-bit Xmas 2016</description>
|
||||
<year>2016</year>
|
||||
<publisher>retroUSB</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="8bitxmas" />
|
||||
<dataarea name="prg" size="131072">
|
||||
<rom name="xmas16demo.prg" size="131072" crc="19eb1773" sha1="9a22cb50f0b7d26f81dd0b9f8e3f05e07c3b4834" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xmas18" supported="partial">
|
||||
<description>8-bit Xmas 2018</description>
|
||||
<year>2018</year>
|
||||
<publisher>retroUSB</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="8bitxmas" />
|
||||
<feature name="mirroring" value="vertical" />
|
||||
<dataarea name="prg" size="131072">
|
||||
<rom name="xmas18demo.prg" size="131072" crc="38431bf6" sha1="cb5a7ee17b4a4a7a30d4c98073d107561d903641" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xmas19" supported="partial">
|
||||
<description>8-bit Xmas 2019</description>
|
||||
<year>2019</year>
|
||||
<publisher>retroUSB</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="8bitxmas" />
|
||||
<dataarea name="prg" size="131072">
|
||||
<rom name="xmas19demo.prg" size="131072" crc="3e03466b" sha1="a8cceadd892a8fb4c43ccc660a2073c2d8b2d69e" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xmas20" supported="partial">
|
||||
<description>8-bit Xmas 2020</description>
|
||||
<year>2020</year>
|
||||
<publisher>retroUSB</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="8bitxmas" />
|
||||
<dataarea name="prg" size="131072">
|
||||
<rom name="xmas20demo.prg" size="131072" crc="bad62c7b" sha1="b0d4a83d71e571ab7ba5ba95784498f17b527606" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xmas21" supported="partial">
|
||||
<description>8-bit Xmas 2021</description>
|
||||
<year>2021</year>
|
||||
<publisher>retroUSB</publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="8bitxmas" />
|
||||
<feature name="mirroring" value="vertical" />
|
||||
<dataarea name="prg" size="131072">
|
||||
<rom name="xmas21demo.prg" size="131072" crc="d8ab6288" sha1="8b15b9eff1bcb128ff4969de7a5d4d47b3b2b62f" status="baddump" />
|
||||
</dataarea>
|
||||
<!-- 8k VRAM on cartridge? -->
|
||||
<dataarea name="vram" size="8192">
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- This release is nearly identical to the prototype 1 set but with rebranding -->
|
||||
<software name="airballr" cloneof="airball">
|
||||
<description>Airball (RetroZone)</description>
|
||||
|
@ -476,10 +476,11 @@ void nes_cart(device_slot_interface &device)
|
||||
device.option_add_internal("action53", NES_ACTION53);
|
||||
device.option_add_internal("batmap_000", NES_BATMAP_000);
|
||||
device.option_add_internal("batmap_srrx", NES_BATMAP_SRRX);
|
||||
device.option_add_internal("8bitxmas", NES_8BITXMAS);
|
||||
device.option_add_internal("cufrom", NES_CUFROM);
|
||||
device.option_add_internal("dpcmcart", NES_DPCMCART);
|
||||
device.option_add_internal("unrom512", NES_UNROM512);
|
||||
device.option_add_internal("2a03pur", NES_2A03PURITANS);
|
||||
device.option_add_internal("dpcmcart", NES_DPCMCART);
|
||||
device.option_add_internal("farid_slrom8in1", NES_FARID_SLROM);
|
||||
device.option_add_internal("farid_unrom8in1", NES_FARID_UNROM);
|
||||
// other unsupported...
|
||||
|
@ -61,8 +61,8 @@ static const nes_mmc mmc_list[] =
|
||||
{ 26, KONAMI_VRC6 },
|
||||
{ 27, UNL_CC21 }, // Mihunche, but previously used for World Hero
|
||||
{ 28, UNL_ACTION53 }, // Multi-discrete PCB designed by Tepples for Action 53
|
||||
{ 29, UNL_CUFROM }, // homebrew PCB used by Glider
|
||||
{ 30, UNL_UNROM512 }, // UNROM 512 + Flash
|
||||
{ 29, SEALIE_CUFROM }, // homebrew PCB used by Glider
|
||||
{ 30, SEALIE_UNROM512 }, // UNROM 512 + Flash
|
||||
{ 31, UNL_2A03PURITANS }, // PCB designed by infinitelives & rainwarrior for 2A03 Puritans Album
|
||||
{ 32, IREM_G101 },
|
||||
{ 33, TAITO_TC0190FMC },
|
||||
@ -444,7 +444,7 @@ static const nes_mmc mmc_list[] =
|
||||
// 406 homebrew game Haradius Zero
|
||||
// 407 VT03 PnP
|
||||
// 408 Konami PnP
|
||||
{ 409, UNL_DPCMCART }, // A Winner is You homebrew music cart
|
||||
{ 409, SEALIE_DPCMCART }, // A Winner is You homebrew music cart
|
||||
// 410 Unused or JY?
|
||||
{ 411, BMC_A88S1 },
|
||||
// 412 INTV 10-in-1 PnP 2nd edition
|
||||
@ -871,7 +871,7 @@ void nes_cart_slot_device::call_load_ines()
|
||||
}
|
||||
break;
|
||||
|
||||
case UNL_UNROM512:
|
||||
case SEALIE_UNROM512:
|
||||
// this mapper also uses mirroring flags differently
|
||||
m_cart->set_four_screen_vram(false);
|
||||
switch (local_options & 0x09)
|
||||
|
@ -385,10 +385,11 @@ static const nes_pcb pcb_list[] =
|
||||
{ "action53", UNL_ACTION53 },
|
||||
{ "batmap_000", BATMAP_000 },
|
||||
{ "batmap_srrx", BATMAP_SRRX },
|
||||
{ "cufrom", UNL_CUFROM },
|
||||
{ "unrom512", UNL_UNROM512 },
|
||||
{ "8bitxmas", SEALIE_8BITXMAS },
|
||||
{ "cufrom", SEALIE_CUFROM },
|
||||
{ "dpcmcart", SEALIE_DPCMCART },
|
||||
{ "unrom512", SEALIE_UNROM512 },
|
||||
{ "2a03pur", UNL_2A03PURITANS },
|
||||
{ "dpcmcart", UNL_DPCMCART },
|
||||
{ "farid_slrom8in1", FARID_SLROM8IN1 },
|
||||
{ "farid_unrom8in1", FARID_UNROM8IN1 },
|
||||
{ "ffe3", FFE3_BOARD },
|
||||
|
@ -151,7 +151,7 @@ enum
|
||||
// Batlab Electronics
|
||||
BATMAP_000, BATMAP_SRRX,
|
||||
// Sealie
|
||||
UNL_CUFROM, UNL_UNROM512, UNL_DPCMCART,
|
||||
SEALIE_8BITXMAS, SEALIE_CUFROM, SEALIE_DPCMCART, SEALIE_UNROM512,
|
||||
// FFE boards, for mappers 6, 8, 17
|
||||
FFE3_BOARD, FFE4_BOARD, FFE8_BOARD, TEST_BOARD,
|
||||
// Unsupported (for place-holder boards, with no working emulation) & no-board (at init)
|
||||
|
@ -11,6 +11,7 @@
|
||||
* SEALIE RET-CUFROM [mapper 29]
|
||||
* SEALIE DPCMcart [mapper 409]
|
||||
* SEALIE UNROM 512 [mapper 30]
|
||||
* SEALIE 8BIT XMAS [mapper 30]
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
@ -32,6 +33,7 @@
|
||||
// constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
DEFINE_DEVICE_TYPE(NES_8BITXMAS, nes_8bitxmas_device, "nes_8bitxmas", "NES Cart Sealie 8BIT XMAS PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_CUFROM, nes_cufrom_device, "nes_cufrom", "NES Cart Sealie RET-CUFROM PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_DPCMCART, nes_dpcmcart_device, "nes_dpcmcart", "NES Cart Sealie DPCMcart PCB")
|
||||
DEFINE_DEVICE_TYPE(NES_UNROM512, nes_unrom512_device, "nes_unrom512", "NES Cart Sealie UNROM 512 PCB")
|
||||
@ -47,8 +49,18 @@ nes_dpcmcart_device::nes_dpcmcart_device(const machine_config &mconfig, const ch
|
||||
{
|
||||
}
|
||||
|
||||
nes_unrom512_device::nes_unrom512_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_nrom_device(mconfig, type, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
nes_unrom512_device::nes_unrom512_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_nrom_device(mconfig, NES_UNROM512, tag, owner, clock)
|
||||
: nes_unrom512_device(mconfig, NES_UNROM512, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
nes_8bitxmas_device::nes_8bitxmas_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: nes_unrom512_device(mconfig, NES_8BITXMAS, tag, owner, clock), m_led(0)
|
||||
{
|
||||
}
|
||||
|
||||
@ -77,6 +89,23 @@ void nes_unrom512_device::pcb_reset()
|
||||
set_nt_mirroring(PPU_MIRROR_LOW);
|
||||
}
|
||||
|
||||
void nes_8bitxmas_device::device_start()
|
||||
{
|
||||
nes_unrom512_device::device_start();
|
||||
save_item(NAME(m_led));
|
||||
|
||||
m_bus_conflict = false;
|
||||
}
|
||||
|
||||
void nes_8bitxmas_device::pcb_reset()
|
||||
{
|
||||
nes_unrom512_device::pcb_reset();
|
||||
|
||||
m_led = 0;
|
||||
update_led();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
mapper specific handlers
|
||||
@ -159,3 +188,56 @@ void nes_unrom512_device::write_h(offs_t offset, u8 data)
|
||||
prg16_89ab(data & 0x1f);
|
||||
chr8((data >> 5) & 0x03, CHRRAM);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
Sealie 8BIT XMAS revD board
|
||||
|
||||
Games: 8-bit Xmas 2012-2016 and 2018-2021?
|
||||
|
||||
This board is a variant of UNROM512 with 16 LEDs
|
||||
in 4 colors, blue, yellow, green, red, which are
|
||||
controlled in pairs by each byte written to
|
||||
0x8000-0xbfff. Bits are [BYGR bygr] where bygr
|
||||
control LEDs 1,2 and BYGR control LEDs 3,4. On
|
||||
the 8BIT XMAS revD 2012 board LEDS are arranged:
|
||||
|
||||
_______________________________
|
||||
| RED2 GRN3 |
|
||||
| |
|
||||
| YEL2 BLU3 |
|
||||
| |
|
||||
| BLU1 YEL4 |
|
||||
| |
|
||||
| GRN1 RED4 |
|
||||
| |
|
||||
| RED1 GRN4 |
|
||||
| |
|
||||
| YEL1 BLU4 |
|
||||
-- --
|
||||
| GRN2 BLU2 YEL3 RED3 |
|
||||
| |
|
||||
|
||||
iNES: mapper 30
|
||||
|
||||
In MAME: Preliminary partial support.
|
||||
|
||||
-------------------------------------------------*/
|
||||
|
||||
void nes_8bitxmas_device::update_led()
|
||||
{
|
||||
// TODO: add artwork
|
||||
}
|
||||
|
||||
void nes_8bitxmas_device::write_h(offs_t offset, u8 data)
|
||||
{
|
||||
LOG_MMC(("8bitxmas write_h, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
if (BIT(offset, 14))
|
||||
nes_unrom512_device::write_h(offset, data);
|
||||
else if (m_led != data)
|
||||
{
|
||||
m_led = data;
|
||||
update_led();
|
||||
}
|
||||
}
|
||||
|
@ -47,10 +47,37 @@ public:
|
||||
virtual void write_h(offs_t offset, u8 data) override;
|
||||
|
||||
virtual void pcb_reset() override;
|
||||
|
||||
protected:
|
||||
// construction/destruction
|
||||
nes_unrom512_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
|
||||
};
|
||||
|
||||
|
||||
// ======================> nes_8bitxmas_device
|
||||
|
||||
class nes_8bitxmas_device : public nes_unrom512_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
nes_8bitxmas_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:
|
||||
void update_led();
|
||||
u8 m_led;
|
||||
};
|
||||
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(NES_8BITXMAS, nes_8bitxmas_device)
|
||||
DECLARE_DEVICE_TYPE(NES_CUFROM, nes_cufrom_device)
|
||||
DECLARE_DEVICE_TYPE(NES_DPCMCART, nes_dpcmcart_device)
|
||||
DECLARE_DEVICE_TYPE(NES_UNROM512, nes_unrom512_device)
|
||||
|
Loading…
Reference in New Issue
Block a user