Created devices for each type of PlayStation CPU

This commit is contained in:
smf- 2011-04-28 12:08:09 +00:00
parent 37c0ed3fad
commit 610a53ae78
10 changed files with 80 additions and 15 deletions

View File

@ -157,8 +157,12 @@ static const char *const delayn[] =
};
// device type definition
const device_type PSXCPU = &device_creator<psxcpu_device>;
const device_type CXD8530AQ = &device_creator<cxd8530aq_device>;
const device_type CXD8530BQ = &device_creator<cxd8530bq_device>;
const device_type CXD8530CQ = &device_creator<cxd8530cq_device>;
const device_type CXD8661R = &device_creator<cxd8661r_device>;
const device_type CXD8606BQ = &device_creator<cxd8606bq_device>;
const device_type CXD8606CQ = &device_creator<cxd8606cq_device>;
static const UINT32 mtc0_writemask[]=
{
@ -1559,9 +1563,18 @@ psxcpu_device::psxcpu_device(const machine_config &mconfig, device_type type, co
{
}
psxcpu_device::psxcpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: cpu_device(mconfig, PSXCPU, "PSXCPU", tag, owner, clock),
m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0, ADDRESS_MAP_NAME(psxcpu_internal_map))
cxd8530aq_device::cxd8530aq_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: psxcpu_device(mconfig, CXD8661R, "CXD8530AQ", tag, owner, clock, ADDRESS_MAP_NAME(psxcpu_internal_map))
{
}
cxd8530bq_device::cxd8530bq_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: psxcpu_device(mconfig, CXD8661R, "CXD8530BQ", tag, owner, clock, ADDRESS_MAP_NAME(psxcpu_internal_map))
{
}
cxd8530cq_device::cxd8530cq_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: psxcpu_device(mconfig, CXD8661R, "CXD8530CQ", tag, owner, clock, ADDRESS_MAP_NAME(psxcpu_internal_map))
{
}
@ -1570,6 +1583,15 @@ cxd8661r_device::cxd8661r_device(const machine_config &mconfig, const char *tag,
{
}
cxd8606bq_device::cxd8606bq_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: psxcpu_device(mconfig, CXD8606BQ, "CXD8606BQ", tag, owner, clock, ADDRESS_MAP_NAME(cxd8661r_internal_map))
{
}
cxd8606cq_device::cxd8606cq_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: psxcpu_device(mconfig, CXD8606CQ, "CXD8606CQ", tag, owner, clock, ADDRESS_MAP_NAME(cxd8661r_internal_map))
{
}
//-------------------------------------------------
// device_start - start up the device

View File

@ -266,6 +266,27 @@ protected:
void docop2( int gteop );
};
class cxd8530aq_device : public psxcpu_device
{
public:
// construction/destruction
cxd8530aq_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
};
class cxd8530bq_device : public psxcpu_device
{
public:
// construction/destruction
cxd8530bq_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
};
class cxd8530cq_device : public psxcpu_device
{
public:
// construction/destruction
cxd8530cq_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
};
class cxd8661r_device : public psxcpu_device
{
public:
@ -273,9 +294,27 @@ public:
cxd8661r_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
};
class cxd8606bq_device : public psxcpu_device
{
public:
// construction/destruction
cxd8606bq_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
};
class cxd8606cq_device : public psxcpu_device
{
public:
// construction/destruction
cxd8606cq_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
};
// device type definition
extern const device_type PSXCPU;
extern const device_type CXD8530AQ;
extern const device_type CXD8530BQ;
extern const device_type CXD8530CQ;
extern const device_type CXD8661R;
extern const device_type CXD8606BQ;
extern const device_type CXD8606CQ;

View File

@ -382,7 +382,7 @@ static MACHINE_RESET( konamigq )
static MACHINE_CONFIG_START( konamigq, konamigq_state )
/* basic machine hardware */
MCFG_CPU_ADD( "maincpu", PSXCPU, XTAL_67_7376MHz )
MCFG_CPU_ADD( "maincpu", CXD8530BQ, XTAL_67_7376MHz )
MCFG_CPU_PROGRAM_MAP( konamigq_map)
MCFG_CPU_VBLANK_INT("screen", psx_vblank)

View File

@ -341,7 +341,7 @@ static void spu_irq(device_t *device, UINT32 data)
static MACHINE_CONFIG_START( konamigv, konamigv_state )
/* basic machine hardware */
MCFG_CPU_ADD( "maincpu", PSXCPU, XTAL_67_7376MHz )
MCFG_CPU_ADD( "maincpu", CXD8530BQ, XTAL_67_7376MHz )
MCFG_CPU_PROGRAM_MAP( konamigv_map)
MCFG_CPU_VBLANK_INT("screen", psx_vblank)

View File

@ -2978,7 +2978,7 @@ static const adc083x_interface konami573_adc_interface = {
static MACHINE_CONFIG_START( konami573, ksys573_state )
/* basic machine hardware */
MCFG_CPU_ADD( "maincpu", PSXCPU, XTAL_67_7376MHz )
MCFG_CPU_ADD( "maincpu", CXD8530CQ, XTAL_67_7376MHz )
MCFG_CPU_PROGRAM_MAP( konami573_map)
MCFG_CPU_VBLANK_INT("screen", sys573_vblank)

View File

@ -481,7 +481,7 @@ static MACHINE_RESET( namcos10 )
static MACHINE_CONFIG_START( namcos10, namcos10_state )
/* basic machine hardware */
MCFG_CPU_ADD( "maincpu", CXD8661R, XTAL_101_4912MHz )
MCFG_CPU_ADD( "maincpu", CXD8606BQ, XTAL_101_4912MHz )
MCFG_CPU_PROGRAM_MAP( namcos10_map)
MCFG_CPU_VBLANK_INT("screen", psx_vblank)

View File

@ -999,8 +999,8 @@ static MACHINE_RESET( namcos11 )
static MACHINE_CONFIG_START( coh100, namcos11_state )
/* basic machine hardware */
MCFG_CPU_ADD( "maincpu", PSXCPU, XTAL_67_7376MHz )
MCFG_CPU_PROGRAM_MAP( namcos11_map)
MCFG_CPU_ADD( "maincpu", CXD8530AQ, XTAL_67_7376MHz )
MCFG_CPU_PROGRAM_MAP( namcos11_map )
MCFG_CPU_VBLANK_INT("screen", namcos11_vblank)
MCFG_CPU_ADD("c76", M37702, 16384000)
@ -1035,6 +1035,10 @@ static MACHINE_CONFIG_START( coh100, namcos11_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( coh110, coh100 )
MCFG_CPU_REPLACE( "maincpu", CXD8530CQ, XTAL_67_7376MHz )
MCFG_CPU_PROGRAM_MAP( namcos11_map )
MCFG_CPU_VBLANK_INT("screen", namcos11_vblank)
MCFG_VIDEO_START( psx_type2 )
MCFG_SCREEN_MODIFY("screen")

View File

@ -970,7 +970,7 @@ static void spu_irq(device_t *device, UINT32 data)
static MACHINE_CONFIG_START( coh3002t, taitogn_state )
/* basic machine hardware */
MCFG_CPU_ADD( "maincpu", PSXCPU, XTAL_100MHz )
MCFG_CPU_ADD( "maincpu", CXD8661R, XTAL_100MHz )
MCFG_CPU_PROGRAM_MAP( zn_map)
MCFG_CPU_VBLANK_INT("screen", psx_vblank)

View File

@ -919,7 +919,7 @@ static const i2cmem_interface i2cmem_interface =
static MACHINE_CONFIG_START( twinkle, twinkle_state )
/* basic machine hardware */
MCFG_CPU_ADD( "maincpu", PSXCPU, XTAL_67_7376MHz )
MCFG_CPU_ADD( "maincpu", CXD8530CQ, XTAL_67_7376MHz )
MCFG_CPU_PROGRAM_MAP( main_map )
MCFG_CPU_VBLANK_INT( "mainscreen", psx_vblank )

View File

@ -503,7 +503,7 @@ static void zn_machine_init( running_machine &machine )
static MACHINE_CONFIG_START( zn1_1mb_vram, zn_state )
/* basic machine hardware */
MCFG_CPU_ADD( "maincpu", PSXCPU, XTAL_67_7376MHz )
MCFG_CPU_ADD( "maincpu", CXD8530CQ, XTAL_67_7376MHz )
MCFG_CPU_PROGRAM_MAP( zn_map)
MCFG_CPU_VBLANK_INT("screen", psx_vblank)
@ -539,7 +539,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( zn2, zn_state )
/* basic machine hardware */
MCFG_CPU_ADD( "maincpu", PSXCPU, XTAL_100MHz )
MCFG_CPU_ADD( "maincpu", CXD8661R, XTAL_100MHz )
MCFG_CPU_PROGRAM_MAP( zn_map)
MCFG_CPU_VBLANK_INT("screen", psx_vblank)