summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/sms_ctrl/controllers.cpp
blob: 77b2925f98e43ef76e062983a3a64b1608f68d86 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// license:BSD-3-Clause
// copyright-holders:Vas Crabb
/**********************************************************************

    Sega 9-pin controllers

    Unemulated Mega Drive peripherals:
    * Mega Modem (connects to EXP port on Mega Drive)
    * Sega Menacer (infrared wireless lightgun)
    * Konami Justifier (dual wired lightguns)
    * EA 4-Play (impractical - connects to both CTRL1 and CTRL2)

**********************************************************************/

#include "emu.h"
#include "controllers.h"

#include "diypaddle.h"
#include "hypershot.h"
#include "graphic.h"
#include "joypad.h"
#include "lphaser.h"
#include "md6bt.h"
#include "mdpad.h"
#include "mouse.h"
#include "multitap.h"
#include "paddle.h"
#include "rfu.h"
#include "rs232adapt.h"
#include "sports.h"
#include "sportsjp.h"
#include "teamplayer.h"
#include "xe1ap.h"


char const *const SMS_CTRL_OPTION_DIY_PADDLE  = "diypaddle";
char const *const SMS_CTRL_OPTION_HYPERSHOT   = "hypershot";
char const *const SMS_CTRL_OPTION_GRAPHIC     = "graphic";
char const *const SMS_CTRL_OPTION_LPHASER     = "lphaser";
char const *const SMS_CTRL_OPTION_MD_6BUTTON  = "md6button";
char const *const SMS_CTRL_OPTION_MD_PAD      = "mdpad";
char const *const SMS_CTRL_OPTION_MEGA_MOUSE  = "mouseus";
char const *const SMS_CTRL_OPTION_MULTITAP    = "multitap";
char const *const SMS_CTRL_OPTION_JOYPAD      = "mspad";
char const *const SMS_CTRL_OPTION_PADDLE      = "paddle";
char const *const SMS_CTRL_OPTION_RAPID_FIRE  = "rapidfire";
char const *const SMS_CTRL_OPTION_RS232       = "rs232";
char const *const SMS_CTRL_OPTION_SEGA_MOUSE  = "mouse";
char const *const SMS_CTRL_OPTION_SPORTS      = "sports";
char const *const SMS_CTRL_OPTION_SPORTS_JP   = "sportsjp";
char const *const SMS_CTRL_OPTION_TEAM_PLAYER = "teamplay";
char const *const SMS_CTRL_OPTION_XE1AP       = "xe1ap";



void sms_control_port_devices(device_slot_interface &device)
{
	device.option_add(SMS_CTRL_OPTION_DIY_PADDLE,  SMS_DIY_PADDLE);
	device.option_add(SMS_CTRL_OPTION_HYPERSHOT,   SMS_HYPERSHOT);
	device.option_add(SMS_CTRL_OPTION_GRAPHIC,     SMS_GRAPHIC);
	device.option_add(SMS_CTRL_OPTION_LPHASER,     SMS_LIGHT_PHASER);
	device.option_add(SMS_CTRL_OPTION_MD_6BUTTON,  SMS_MD6BUTTON);
	device.option_add(SMS_CTRL_OPTION_MD_PAD,      SMS_MDPAD);
	device.option_add(SMS_CTRL_OPTION_MEGA_MOUSE,  SMS_MEGAMOUSE);
	device.option_add(SMS_CTRL_OPTION_MULTITAP,    SMS_MULTITAP);
	device.option_add(SMS_CTRL_OPTION_JOYPAD,      SMS_JOYPAD);
	device.option_add(SMS_CTRL_OPTION_PADDLE,      SMS_PADDLE);
	device.option_add(SMS_CTRL_OPTION_RAPID_FIRE,  SMS_RAPID_FIRE);
	device.option_add(SMS_CTRL_OPTION_RS232,       SMS_RS232);
	device.option_add(SMS_CTRL_OPTION_SEGA_MOUSE,  SMS_SEGAMOUSE);
	device.option_add(SMS_CTRL_OPTION_SPORTS,      SMS_SPORTS_PAD);
	device.option_add(SMS_CTRL_OPTION_SPORTS_JP,   SMS_SPORTS_PAD_JP);
	device.option_add(SMS_CTRL_OPTION_TEAM_PLAYER, SMS_TEAM_PLAYER);
	device.option_add(SMS_CTRL_OPTION_XE1AP,       SMS_XE1AP);
}


void sms_control_port_passive_devices(device_slot_interface &device)
{
	device.option_add(SMS_CTRL_OPTION_HYPERSHOT,   SMS_HYPERSHOT);
	device.option_add(SMS_CTRL_OPTION_JOYPAD,      SMS_JOYPAD);
}