mirror of
https://github.com/holub/mame
synced 2025-04-18 22:49:58 +03:00
skeleton dpcplus (nw)
This commit is contained in:
parent
feee200452
commit
624825c042
@ -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>
|
||||
|
||||
|
||||
|
@ -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",
|
||||
}
|
||||
|
67
src/devices/bus/vcs/dpcplus.c
Normal file
67
src/devices/bus/vcs/dpcplus.c
Normal 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);
|
||||
}
|
35
src/devices/bus/vcs/dpcplus.h
Normal file
35
src/devices/bus/vcs/dpcplus.h
Normal 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
|
@ -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)
|
||||
|
@ -35,7 +35,8 @@ enum
|
||||
A26_DPC,
|
||||
A26_SS,
|
||||
A26_CM,
|
||||
A26_X07
|
||||
A26_X07,
|
||||
A26_DPCPLUS,
|
||||
};
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user