skeleton dpcplus (nw)

This commit is contained in:
David Haywood 2015-10-26 19:54:31 +00:00
parent feee200452
commit 624825c042
7 changed files with 172 additions and 5 deletions

View File

@ -11211,8 +11211,8 @@ Info from Atariage and Atarimania
</part>
</software>
<software name="pitfallsg" cloneof="pitfall">
<description>Pitfall (Star Game)</description>
<software name="pitfallsg" cloneof="pitfall"> <!-- significant visual changes -->
<description>Pitfall (Star Game) (aka Tom Boy)</description>
<year>19??</year>
<publisher>Star Game</publisher>
<part name="cart" interface="a2600_cart">
@ -17953,5 +17953,62 @@ Info from Atariage and Atarimania
<rom name="m27c512.bin" size="65536" crc="c1da7d3b" sha1="4d9c06940754ba03e2eca2d88ea4201b8d9e7805" offset="0" />
</dataarea>
</part>
</software>
</software>
<!-- This was released by the author, also available via Atariage, are both versions the same? needs DPC+ emulation -->
<software name="stayfr2" supported="no">
<description>Stay Frosty 2 (NTSC)</description>
<year>2013</year>
<publisher>Spiceware</publisher>
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="slot" value="a26_dpcplus" />
<dataarea name="rom" size="0x8000">
<rom name="SF2_20131217_RC8_NTSC.bin" size="0x8000" crc="4eb739ab" sha1="5eceaf8e90bd9a002f4935f082df7b25716dceb0" offset="0" />
</dataarea>
</part>
</software>
<software name="stayfr2d" cloneof="stayfr2" supported="no">
<description>Stay Frosty 2 (NTSC, demo)</description>
<year>2013</year>
<publisher>Spiceware</publisher>
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="slot" value="a26_dpcplus" />
<dataarea name="rom" size="0x8000">
<rom name="SF2_demo_NTSC.bin" size="0x8000" crc="fd850bd6" sha1="bd8166da7777c66e6bb3ab0c77563193d8289f5f)" offset="0" />
</dataarea>
</part>
</software>
<software name="stayfr2e" cloneof="stayfr2" supported="no">
<description>Stay Frosty 2 (PAL)</description>
<year>2013</year>
<publisher>Spiceware</publisher>
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="slot" value="a26_dpcplus" />
<dataarea name="rom" size="0x8000">
<rom name="SF2_20131217_RC8_PAL.bin" size="0x8000" crc="7b495dc3" sha1="1625ef74b0a48c2968fad832ab8e2edc8187a53f" offset="0" />
</dataarea>
</part>
</software>
<software name="stayfr2de" cloneof="stayfr2" supported="no">
<description>Stay Frosty 2 (PAL, demo)</description>
<year>2013</year>
<publisher>Spiceware</publisher>
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="slot" value="a26_dpcplus" />
<dataarea name="rom" size="0x8000">
<rom name="SF2_demo_PAL.bin" size="0x8000" crc="b47582f3" sha1="73625429e73f1b354e0cbe6a360d79590032de2b)" offset="0" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -1161,6 +1161,8 @@ if (BUSES["VCS"]~=null) then
MAME_DIR .. "src/devices/bus/vcs/compumat.h",
MAME_DIR .. "src/devices/bus/vcs/dpc.c",
MAME_DIR .. "src/devices/bus/vcs/dpc.h",
MAME_DIR .. "src/devices/bus/vcs/dpcplus.c",
MAME_DIR .. "src/devices/bus/vcs/dpcplus.h",
MAME_DIR .. "src/devices/bus/vcs/scharger.c",
MAME_DIR .. "src/devices/bus/vcs/scharger.h",
}

View File

@ -0,0 +1,67 @@
// license:BSD-3-Clause
// copyright-holders:
/***************************************************************************
Atari 2600 cart with DPC+
the DPC+ adds an ARM CPU amongst other things
***************************************************************************/
#include "emu.h"
#include "dpcplus.h"
// cart device
const device_type A26_ROM_DPCPLUS = &device_creator<a26_rom_dpcplus_device>;
a26_rom_dpcplus_device::a26_rom_dpcplus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: a26_rom_f8_device(mconfig, A26_ROM_DPCPLUS, "Atari 2600 ROM Cart DPC+", tag, owner, clock, "a2600_dpcplus", __FILE__)
{
}
//-------------------------------------------------
// mapper specific start/reset
//-------------------------------------------------
void a26_rom_dpcplus_device::device_start()
{
save_item(NAME(m_base_bank));
}
void a26_rom_dpcplus_device::device_reset()
{
m_base_bank = 0;
}
static ADDRESS_MAP_START( dpcplus_arm7_map, AS_PROGRAM, 32, a26_rom_dpcplus_device )
AM_RANGE(0x00000000, 0x00003fff) AM_RAM
ADDRESS_MAP_END
static MACHINE_CONFIG_FRAGMENT( a26_dpcplus )
MCFG_CPU_ADD("arm", ARM7, 20000000) // ? type ? speed
MCFG_CPU_PROGRAM_MAP(dpcplus_arm7_map)
MACHINE_CONFIG_END
machine_config_constructor a26_rom_dpcplus_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( a26_dpcplus );
}
READ8_MEMBER(a26_rom_dpcplus_device::read_rom)
{
return a26_rom_f8_device::read_rom(space, offset);
}
WRITE8_MEMBER(a26_rom_dpcplus_device::write_bank)
{
a26_rom_f8_device::write_bank(space, offset, data);
}

View File

@ -0,0 +1,35 @@
// license:BSD-3-Clause
// copyright-holders:
#ifndef __VCS_DPCPLUS_H
#define __VCS_DPCPLUS_H
#include "rom.h"
#include "cpu/arm7/arm7.h"
// ======================> a26_rom_dpcplus_device
class a26_rom_dpcplus_device : public a26_rom_f8_device
{
public:
// construction/destruction
a26_rom_dpcplus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides
virtual void device_start();
virtual machine_config_constructor device_mconfig_additions() const;
virtual void device_reset();
// reading and writing
virtual DECLARE_READ8_MEMBER(read_rom);
virtual DECLARE_WRITE8_MEMBER(write_bank);
protected:
};
// device type definition
extern const device_type A26_ROM_DPCPLUS;
#endif

View File

@ -157,6 +157,7 @@ static const vcs_slot slot_list[] =
{ A26_8IN1, "a26_8in1" },
{ A26_32IN1, "a26_32in1" },
{ A26_X07, "a26_x07" },
{ A26_DPCPLUS, "a26_dpcplus" },
};
static int vcs_get_pcb_id(const char *slot)

View File

@ -35,7 +35,8 @@ enum
A26_DPC,
A26_SS,
A26_CM,
A26_X07
A26_X07,
A26_DPCPLUS,
};

View File

@ -18,6 +18,7 @@ TODO:
#include "bus/vcs/vcs_slot.h"
#include "bus/vcs/rom.h"
#include "bus/vcs/dpc.h"
#include "bus/vcs/dpcplus.h"
#include "bus/vcs/scharger.h"
#include "bus/vcs/compumat.h"
#include "bus/vcs_ctrl/ctrl.h"
@ -389,7 +390,9 @@ MACHINE_START_MEMBER(a2600_state,a2600)
case A26_X07:
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x0fff, read8_delegate(FUNC(a2600_state::cart_over_all_r), this), write8_delegate(FUNC(a2600_state::cart_over_all_w), this));
break;
case A26_DPCPLUS:
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
break;
}
@ -525,6 +528,7 @@ static SLOT_INTERFACE_START(a2600_cart)
SLOT_INTERFACE_INTERNAL("a26_8in1", A26_ROM_8IN1)
SLOT_INTERFACE_INTERNAL("a26_32in1", A26_ROM_32IN1)
SLOT_INTERFACE_INTERNAL("a26_x07", A26_ROM_X07)
SLOT_INTERFACE_INTERNAL("a26_dpcplus", A26_ROM_DPCPLUS)
SLOT_INTERFACE_END
static MACHINE_CONFIG_FRAGMENT(a2600_cartslot)