mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
SPECTRA - wip
This commit is contained in:
parent
09d1ddc21a
commit
b29b84dd77
@ -1,26 +1,40 @@
|
|||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
Pinball
|
Pinball
|
||||||
Valley Spectra IV
|
Valley Spectra IV
|
||||||
-----------------
|
|
||||||
Rotating game, like Midway's "Rotation VIII".
|
Rotating game, like Midway's "Rotation VIII".
|
||||||
|
|
||||||
|
Schematic and PinMAME used as references.
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************/
|
*******************************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "emu.h"
|
#include "machine/genpin.h"
|
||||||
#include "cpu/m6502/m6502.h"
|
#include "cpu/m6502/m6502.h"
|
||||||
|
#include "machine/6532riot.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
|
//#include "spectra.lh"
|
||||||
|
|
||||||
|
|
||||||
class spectra_state : public driver_device
|
class spectra_state : public driver_device
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
spectra_state(const machine_config &mconfig, device_type type, const char *tag)
|
spectra_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag),
|
||||||
m_maincpu(*this, "maincpu")
|
m_maincpu(*this, "maincpu"),
|
||||||
|
m_samples(*this, "samples")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
DECLARE_READ8_MEMBER(porta_r);
|
||||||
|
DECLARE_READ8_MEMBER(portb_r);
|
||||||
|
DECLARE_WRITE8_MEMBER(porta_w);
|
||||||
|
DECLARE_WRITE8_MEMBER(portb_w);
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// devices
|
// devices
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<samples_device> m_samples;
|
||||||
|
|
||||||
// driver_device overrides
|
// driver_device overrides
|
||||||
virtual void machine_reset();
|
virtual void machine_reset();
|
||||||
@ -32,8 +46,9 @@ public:
|
|||||||
static ADDRESS_MAP_START( spectra_map, AS_PROGRAM, 8, spectra_state )
|
static ADDRESS_MAP_START( spectra_map, AS_PROGRAM, 8, spectra_state )
|
||||||
ADDRESS_MAP_UNMAP_HIGH
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xfff)
|
ADDRESS_MAP_GLOBAL_MASK(0xfff)
|
||||||
AM_RANGE(0x0000, 0x017f) AM_RAM
|
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_SHARE("nvram") // battery backed, 2x 5101L
|
||||||
//AM_RANGE(0x0180, 0x019f) riot device
|
AM_RANGE(0x0100, 0x017f) AM_RAM // RIOT RAM
|
||||||
|
AM_RANGE(0x0180, 0x019f) AM_DEVREADWRITE_LEGACY("riot", riot6532_r, riot6532_w)
|
||||||
AM_RANGE(0x0400, 0x0fff) AM_ROM
|
AM_RANGE(0x0400, 0x0fff) AM_ROM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -48,10 +63,46 @@ DRIVER_INIT_MEMBER(spectra_state,spectra)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
READ8_MEMBER( spectra_state::porta_r )
|
||||||
|
{printf("ReadA ");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
READ8_MEMBER( spectra_state::portb_r )
|
||||||
|
{printf("ReadB ");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER( spectra_state::porta_w )
|
||||||
|
{printf("A=%X ",data);
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER( spectra_state::portb_w )
|
||||||
|
{printf("B=%X ",data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static const riot6532_interface riot6532_intf =
|
||||||
|
{
|
||||||
|
DEVCB_DRIVER_MEMBER(spectra_state, porta_r), // port a in
|
||||||
|
DEVCB_DRIVER_MEMBER(spectra_state, portb_r), // port b in
|
||||||
|
DEVCB_DRIVER_MEMBER(spectra_state, porta_w), // port a out
|
||||||
|
DEVCB_DRIVER_MEMBER(spectra_state, portb_w), // port b in
|
||||||
|
DEVCB_CPU_INPUT_LINE("maincpu", M6502_IRQ_LINE) // interrupt
|
||||||
|
};
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( spectra, spectra_state )
|
static MACHINE_CONFIG_START( spectra, spectra_state )
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu", M6502, 3579545/4)
|
MCFG_CPU_ADD("maincpu", M6502, 3579545/4) // actually a 6503
|
||||||
MCFG_CPU_PROGRAM_MAP(spectra_map)
|
MCFG_CPU_PROGRAM_MAP(spectra_map)
|
||||||
|
MCFG_RIOT6532_ADD("riot", 3579545/4, riot6532_intf) // R6532
|
||||||
|
MCFG_NVRAM_ADD_0FILL("nvram")
|
||||||
|
|
||||||
|
/* Video */
|
||||||
|
//MCFG_DEFAULT_LAYOUT(layout_spectra)
|
||||||
|
|
||||||
|
/* Sound */
|
||||||
|
MCFG_FRAGMENT_ADD( genpin_audio )
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
/*--------------------------------
|
/*--------------------------------
|
||||||
@ -60,6 +111,7 @@ MACHINE_CONFIG_END
|
|||||||
ROM_START(spectra)
|
ROM_START(spectra)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
ROM_LOAD("spect_u5.dat", 0x0400, 0x0400, CRC(49e0759f) SHA1(c3badc90ff834cbc92d8c519780069310c2b1507))
|
ROM_LOAD("spect_u5.dat", 0x0400, 0x0400, CRC(49e0759f) SHA1(c3badc90ff834cbc92d8c519780069310c2b1507))
|
||||||
|
// pinmame has a different u4 rom: CRC(b58f1205) SHA1(9578fd89485f3f560789cb0f24c7116e4bc1d0da)
|
||||||
ROM_LOAD("spect_u4.dat", 0x0800, 0x0400, BAD_DUMP CRC(e6519689) SHA1(06ef3d349ea27a072889b7c379f258d29b7217be))
|
ROM_LOAD("spect_u4.dat", 0x0800, 0x0400, BAD_DUMP CRC(e6519689) SHA1(06ef3d349ea27a072889b7c379f258d29b7217be))
|
||||||
ROM_LOAD("spect_u3.dat", 0x0c00, 0x0400, CRC(9ca7510f) SHA1(a87849f16903836158063d593bb4a2e90c7473c8))
|
ROM_LOAD("spect_u3.dat", 0x0c00, 0x0400, CRC(9ca7510f) SHA1(a87849f16903836158063d593bb4a2e90c7473c8))
|
||||||
ROM_END
|
ROM_END
|
||||||
|
Loading…
Reference in New Issue
Block a user