mame/src/mess/machine/vcs_paddles.c
Curt Coder 3722e8ff14 (MESS) vic20: Refactored VIC to a modern device. (nw)
(MESS) c64: Fixed IDE64 cartridge video corruption. (nw)
(MESS) Added paddles and light pen VCS control devices. [Curt Coder]
2012-09-06 15:16:03 +00:00

98 lines
2.7 KiB
C

/**********************************************************************
Atari Video Computer System analog paddles emulation
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
**********************************************************************/
#include "vcs_paddles.h"
//**************************************************************************
// DEVICE DEFINITIONS
//**************************************************************************
const device_type VCS_PADDLES = &device_creator<vcs_paddles_device>;
static INPUT_PORTS_START( vcs_paddles )
PORT_START("JOY")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0xf3, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("POTX")
PORT_BIT( 0xff, 0x80, IPT_PADDLE) PORT_PLAYER(1) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0, 255)
PORT_START("POTY")
PORT_BIT( 0xff, 0x80, IPT_PADDLE) PORT_PLAYER(2) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0, 255)
INPUT_PORTS_END
//-------------------------------------------------
// input_ports - device-specific input ports
//-------------------------------------------------
ioport_constructor vcs_paddles_device::device_input_ports() const
{
return INPUT_PORTS_NAME( vcs_paddles );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************
//-------------------------------------------------
// vcs_paddles_device - constructor
//-------------------------------------------------
vcs_paddles_device::vcs_paddles_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
device_t(mconfig, VCS_PADDLES, "Digital paddles", tag, owner, clock),
device_vcs_control_port_interface(mconfig, *this)
{
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void vcs_paddles_device::device_start()
{
}
//-------------------------------------------------
// vcs_joy_r - joystick read
//-------------------------------------------------
UINT8 vcs_paddles_device::vcs_joy_r()
{
return ioport("JOY")->read();
}
//-------------------------------------------------
// vcs_pot_x_r - potentiometer X read
//-------------------------------------------------
UINT8 vcs_paddles_device::vcs_pot_x_r()
{
return ioport("POTX")->read();
}
//-------------------------------------------------
// vcs_pot_y_r - potentiometer Y read
//-------------------------------------------------
UINT8 vcs_paddles_device::vcs_pot_y_r()
{
return ioport("POTY")->read();
}