// license:BSD-3-Clause
// copyright-holders:smf
/*
* Namco System 11 Protection
*
*/
#include "emu.h"
class ns11_keycus_device : public device_t
{
protected:
ns11_keycus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock,const char *shortname, const char *source);
virtual void device_start();
virtual void device_reset();
protected:
UINT16 m_p1;
UINT16 m_p2;
UINT16 m_p3;
public:
virtual DECLARE_READ16_MEMBER( read ) = 0;
virtual DECLARE_WRITE16_MEMBER( write ) = 0;
};
/* tekken 2 */
class keycus_c406_device : public ns11_keycus_device
{
public:
keycus_c406_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual DECLARE_READ16_MEMBER( read );
virtual DECLARE_WRITE16_MEMBER( write );
};
extern const device_type KEYCUS_C406;
/* soul edge */
class keycus_c409_device : public ns11_keycus_device
{
public:
keycus_c409_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual DECLARE_READ16_MEMBER( read );
virtual DECLARE_WRITE16_MEMBER( write );
};
extern const device_type KEYCUS_C409;
/* dunk mania */
class keycus_c410_device : public ns11_keycus_device
{
public:
keycus_c410_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual DECLARE_READ16_MEMBER( read );
virtual DECLARE_WRITE16_MEMBER( write );
};
extern const device_type KEYCUS_C410;
/* prime goal ex */
class keycus_c411_device : public ns11_keycus_device
{
public:
keycus_c411_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual DECLARE_READ16_MEMBER( read );
virtual DECLARE_WRITE16_MEMBER( write );
};
extern const device_type KEYCUS_C411;
/* xevious 3d/g */
class keycus_c430_device : public ns11_keycus_device
{
public:
keycus_c430_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual DECLARE_READ16_MEMBER( read );
virtual DECLARE_WRITE16_MEMBER( write );
};
extern const device_type KEYCUS_C430;
/* dancing eyes */
class keycus_c431_device : public ns11_keycus_device
{
public:
keycus_c431_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual DECLARE_READ16_MEMBER( read );
virtual DECLARE_WRITE16_MEMBER( write );
};
extern const device_type KEYCUS_C431;
/* pocket racer */
class keycus_c432_device : public ns11_keycus_device
{
public:
keycus_c432_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual DECLARE_READ16_MEMBER( read );
virtual DECLARE_WRITE16_MEMBER( write );
};
extern const device_type KEYCUS_C432;
/* star sweep */
class keycus_c442_device : public ns11_keycus_device
{
public:
keycus_c442_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual DECLARE_READ16_MEMBER( read );
virtual DECLARE_WRITE16_MEMBER( write );
};
extern const device_type KEYCUS_C442;
/* kosodate quiz my angel 3 / point blank 2 */
class keycus_c443_device : public ns11_keycus_device
{
public:
keycus_c443_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual DECLARE_READ16_MEMBER( read );
virtual DECLARE_WRITE16_MEMBER( write );
};
extern const device_type KEYCUS_C443;