summaryrefslogblamecommitdiffstatshomepage
path: root/src/mame/machine/ns11prot.h
blob: e28628d7afa872a84cf44cc87f0a2ccc35501dc1 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
                       
                        









                                          
                                                                                                                                                                                        

































































































































                                                                                                          
// 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;