mirror of
https://github.com/holub/mame
synced 2025-06-07 13:23:50 +03:00
skeleton dpcplus (nw)
This commit is contained in:
parent
feee200452
commit
624825c042
@ -11211,8 +11211,8 @@ Info from Atariage and Atarimania
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="pitfallsg" cloneof="pitfall">
|
<software name="pitfallsg" cloneof="pitfall"> <!-- significant visual changes -->
|
||||||
<description>Pitfall (Star Game)</description>
|
<description>Pitfall (Star Game) (aka Tom Boy)</description>
|
||||||
<year>19??</year>
|
<year>19??</year>
|
||||||
<publisher>Star Game</publisher>
|
<publisher>Star Game</publisher>
|
||||||
<part name="cart" interface="a2600_cart">
|
<part name="cart" interface="a2600_cart">
|
||||||
@ -17954,4 +17954,61 @@ Info from Atariage and Atarimania
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</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>
|
</softwarelist>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1161,6 +1161,8 @@ if (BUSES["VCS"]~=null) then
|
|||||||
MAME_DIR .. "src/devices/bus/vcs/compumat.h",
|
MAME_DIR .. "src/devices/bus/vcs/compumat.h",
|
||||||
MAME_DIR .. "src/devices/bus/vcs/dpc.c",
|
MAME_DIR .. "src/devices/bus/vcs/dpc.c",
|
||||||
MAME_DIR .. "src/devices/bus/vcs/dpc.h",
|
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.c",
|
||||||
MAME_DIR .. "src/devices/bus/vcs/scharger.h",
|
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_8IN1, "a26_8in1" },
|
||||||
{ A26_32IN1, "a26_32in1" },
|
{ A26_32IN1, "a26_32in1" },
|
||||||
{ A26_X07, "a26_x07" },
|
{ A26_X07, "a26_x07" },
|
||||||
|
{ A26_DPCPLUS, "a26_dpcplus" },
|
||||||
};
|
};
|
||||||
|
|
||||||
static int vcs_get_pcb_id(const char *slot)
|
static int vcs_get_pcb_id(const char *slot)
|
||||||
|
@ -35,7 +35,8 @@ enum
|
|||||||
A26_DPC,
|
A26_DPC,
|
||||||
A26_SS,
|
A26_SS,
|
||||||
A26_CM,
|
A26_CM,
|
||||||
A26_X07
|
A26_X07,
|
||||||
|
A26_DPCPLUS,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ TODO:
|
|||||||
#include "bus/vcs/vcs_slot.h"
|
#include "bus/vcs/vcs_slot.h"
|
||||||
#include "bus/vcs/rom.h"
|
#include "bus/vcs/rom.h"
|
||||||
#include "bus/vcs/dpc.h"
|
#include "bus/vcs/dpc.h"
|
||||||
|
#include "bus/vcs/dpcplus.h"
|
||||||
#include "bus/vcs/scharger.h"
|
#include "bus/vcs/scharger.h"
|
||||||
#include "bus/vcs/compumat.h"
|
#include "bus/vcs/compumat.h"
|
||||||
#include "bus/vcs_ctrl/ctrl.h"
|
#include "bus/vcs_ctrl/ctrl.h"
|
||||||
@ -389,7 +390,9 @@ MACHINE_START_MEMBER(a2600_state,a2600)
|
|||||||
case A26_X07:
|
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(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));
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -525,6 +528,7 @@ static SLOT_INTERFACE_START(a2600_cart)
|
|||||||
SLOT_INTERFACE_INTERNAL("a26_8in1", A26_ROM_8IN1)
|
SLOT_INTERFACE_INTERNAL("a26_8in1", A26_ROM_8IN1)
|
||||||
SLOT_INTERFACE_INTERNAL("a26_32in1", A26_ROM_32IN1)
|
SLOT_INTERFACE_INTERNAL("a26_32in1", A26_ROM_32IN1)
|
||||||
SLOT_INTERFACE_INTERNAL("a26_x07", A26_ROM_X07)
|
SLOT_INTERFACE_INTERNAL("a26_x07", A26_ROM_X07)
|
||||||
|
SLOT_INTERFACE_INTERNAL("a26_dpcplus", A26_ROM_DPCPLUS)
|
||||||
SLOT_INTERFACE_END
|
SLOT_INTERFACE_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_FRAGMENT(a2600_cartslot)
|
static MACHINE_CONFIG_FRAGMENT(a2600_cartslot)
|
||||||
|
Loading…
Reference in New Issue
Block a user