trunk/src/mame/drivers/segaybd.c
| r32319 | r32320 | |
| 108 | 108 | |
| 109 | 109 | WRITE16_MEMBER( segaybd_state::analog_w ) |
| 110 | 110 | { |
| 111 | static const char *const ports[] = { "ADC0", "ADC1", "ADC2", "ADC3", "ADC4", "ADC5", "ADC6" }; |
| 111 | 112 | int selected = ((offset & 3) == 3) ? (3 + (m_misc_io_data[0x08/2] & 3)) : (offset & 3); |
| 112 | | m_analog_data[offset & 3] = m_adc_ports[selected]->read_safe(0xff); |
| 113 | m_analog_data[offset & 3] = ioport(ports[selected])->read_safe(0xff); |
| 113 | 114 | } |
| 114 | 115 | |
| 115 | 116 | |
| r32319 | r32320 | |
| 119 | 120 | |
| 120 | 121 | READ16_MEMBER( segaybd_state::io_chip_r ) |
| 121 | 122 | { |
| 123 | static const char *const portnames[] = { "P1", "GENERAL", "PORTC", "PORTD", "PORTE", "DSW", "COINAGE", "PORTH" }; |
| 122 | 124 | offset &= 0x1f/2; |
| 123 | 125 | |
| 124 | 126 | switch (offset) |
| r32319 | r32320 | |
| 137 | 139 | return m_misc_io_data[offset]; |
| 138 | 140 | |
| 139 | 141 | // otherwise, return an input port |
| 140 | | return m_in_ports[offset]->read(); |
| 142 | return ioport(portnames[offset])->read(); |
| 141 | 143 | |
| 142 | 144 | // 'SEGA' protection |
| 143 | 145 | case 0x10/2: |
| r32319 | r32320 | |
| 816 | 818 | //************************************************************************** |
| 817 | 819 | |
| 818 | 820 | static INPUT_PORTS_START( yboard_generic ) |
| 819 | | PORT_START("IN.0") |
| 821 | PORT_START("P1") |
| 820 | 822 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 821 | 823 | |
| 822 | | PORT_START("IN.1") |
| 824 | PORT_START("GENERAL") |
| 823 | 825 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // afterburner (gloc) |
| 824 | 826 | PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) |
| 825 | 827 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| r32319 | r32320 | |
| 829 | 831 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 830 | 832 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 831 | 833 | |
| 832 | | PORT_START("IN.2") |
| 834 | PORT_START("PORTC") |
| 833 | 835 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 834 | 836 | |
| 835 | | PORT_START("IN.3") |
| 837 | PORT_START("PORTD") |
| 836 | 838 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 837 | 839 | |
| 838 | | PORT_START("IN.4") |
| 840 | PORT_START("PORTE") |
| 839 | 841 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 840 | 842 | |
| 841 | | PORT_START("IN.5") |
| 843 | PORT_START("DSW") |
| 842 | 844 | PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SWB:1" ) |
| 843 | 845 | PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SWB:2" ) |
| 844 | 846 | PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" ) |
| r32319 | r32320 | |
| 848 | 850 | PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SWB:7" ) |
| 849 | 851 | PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWB:8" ) |
| 850 | 852 | |
| 851 | | PORT_START("IN.6") |
| 853 | PORT_START("COINAGE") |
| 852 | 854 | SEGA_COINAGE_LOC(SWA) |
| 853 | 855 | |
| 854 | | PORT_START("IN.7") |
| 856 | PORT_START("PORTH") |
| 855 | 857 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 856 | 858 | INPUT_PORTS_END |
| 857 | 859 | |
| r32319 | r32320 | |
| 864 | 866 | static INPUT_PORTS_START( gforce2 ) |
| 865 | 867 | PORT_INCLUDE( yboard_generic ) |
| 866 | 868 | |
| 867 | | PORT_MODIFY("IN.1") |
| 869 | PORT_MODIFY("GENERAL") |
| 868 | 870 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shoot") |
| 869 | 871 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile") |
| 870 | 872 | |
| 871 | | PORT_MODIFY("IN.5") |
| 873 | PORT_MODIFY("DSW") |
| 872 | 874 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:1") |
| 873 | 875 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 874 | 876 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r32319 | r32320 | |
| 891 | 893 | PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) |
| 892 | 894 | PORT_DIPSETTING( 0x00, "City" ) |
| 893 | 895 | |
| 894 | | PORT_START("ADC.0") // stick X |
| 896 | PORT_START("ADC0") // stick X |
| 895 | 897 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) |
| 896 | 898 | |
| 897 | | PORT_START("ADC.1") // stick Y |
| 899 | PORT_START("ADC1") // stick Y |
| 898 | 900 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE |
| 899 | 901 | |
| 900 | | PORT_START("ADC.2") // throttle |
| 902 | PORT_START("ADC2") // throttle |
| 901 | 903 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(79) |
| 902 | 904 | INPUT_PORTS_END |
| 903 | 905 | |
| r32319 | r32320 | |
| 905 | 907 | static INPUT_PORTS_START( gloc ) |
| 906 | 908 | PORT_INCLUDE( yboard_generic ) |
| 907 | 909 | |
| 908 | | PORT_MODIFY("IN.1") |
| 910 | PORT_MODIFY("GENERAL") |
| 909 | 911 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("After Burner") |
| 910 | 912 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Vulcan") |
| 911 | 913 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile") |
| 912 | 914 | |
| 913 | | PORT_MODIFY("IN.5") |
| 915 | PORT_MODIFY("DSW") |
| 914 | 916 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1,2") |
| 915 | 917 | PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) |
| 916 | 918 | PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) |
| r32319 | r32320 | |
| 933 | 935 | PORT_DIPSETTING( 0x80, "3 to Start, 2 to Continue" ) |
| 934 | 936 | PORT_DIPSETTING( 0x00, "4 to Start, 3 to Continue" ) |
| 935 | 937 | |
| 936 | | PORT_START("ADC.3") // stick Y |
| 938 | PORT_START("ADC3") // stick Y |
| 937 | 939 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x40,0xc0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE |
| 938 | 940 | |
| 939 | | PORT_START("ADC.4") // throttle |
| 941 | PORT_START("ADC4") // throttle |
| 940 | 942 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(100) PORT_KEYDELTA(79) |
| 941 | 943 | |
| 942 | | PORT_START("ADC.5") // stick X |
| 944 | PORT_START("ADC5") // stick X |
| 943 | 945 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) |
| 944 | 946 | INPUT_PORTS_END |
| 945 | 947 | |
| r32319 | r32320 | |
| 947 | 949 | static INPUT_PORTS_START( glocr360 ) |
| 948 | 950 | PORT_INCLUDE( yboard_generic ) |
| 949 | 951 | |
| 950 | | PORT_MODIFY("IN.1") |
| 952 | PORT_MODIFY("GENERAL") |
| 951 | 953 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("After Burner") |
| 952 | 954 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Vulcan") |
| 953 | 955 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile") |
| 954 | 956 | |
| 955 | | PORT_MODIFY("IN.5") |
| 957 | PORT_MODIFY("DSW") |
| 956 | 958 | PORT_DIPNAME( 0x03, 0x03, "Game Type" ) PORT_DIPLOCATION("SWB:1,2") |
| 957 | 959 | PORT_DIPSETTING( 0x02, "Fighting Only" ) |
| 958 | 960 | PORT_DIPSETTING( 0x03, "Fight/Experience" ) |
| r32319 | r32320 | |
| 982 | 984 | // PORT_DIPSETTING( 0x50, "1" ) |
| 983 | 985 | // PORT_DIPSETTING( 0x60, "1" ) |
| 984 | 986 | |
| 985 | | PORT_MODIFY("IN.6") |
| 987 | PORT_MODIFY("COINAGE") |
| 986 | 988 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:1,2,3,4") |
| 987 | 989 | // PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) |
| 988 | 990 | // PORT_DIPSETTING( 0x05, DEF_STR( 1C_1C ) ) |
| r32319 | r32320 | |
| 1018 | 1020 | PORT_DIPSETTING( 0x80, DEF_STR( 1C_8C ) ) |
| 1019 | 1021 | PORT_DIPSETTING( 0x00, "Free Play (if Coin A too) or 1/1" ) |
| 1020 | 1022 | |
| 1021 | | PORT_START("ADC.0") // moving pitch |
| 1023 | PORT_START("ADC0") // moving pitch |
| 1022 | 1024 | PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(2) |
| 1023 | 1025 | |
| 1024 | | PORT_START("ADC.2") // moving roll |
| 1026 | PORT_START("ADC2") // moving roll |
| 1025 | 1027 | PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(3) |
| 1026 | 1028 | |
| 1027 | | PORT_START("ADC.3") // stick Y |
| 1029 | PORT_START("ADC3") // stick Y |
| 1028 | 1030 | PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE |
| 1029 | 1031 | |
| 1030 | | PORT_START("ADC.5") // stick X |
| 1032 | PORT_START("ADC5") // stick X |
| 1031 | 1033 | PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) |
| 1032 | 1034 | INPUT_PORTS_END |
| 1033 | 1035 | |
| r32319 | r32320 | |
| 1035 | 1037 | static INPUT_PORTS_START( pdrift ) |
| 1036 | 1038 | PORT_INCLUDE( yboard_generic ) |
| 1037 | 1039 | |
| 1038 | | PORT_MODIFY("IN.1") |
| 1040 | PORT_MODIFY("GENERAL") |
| 1039 | 1041 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Gear Shift") PORT_CODE(KEYCODE_SPACE) PORT_TOGGLE |
| 1040 | 1042 | |
| 1041 | | PORT_MODIFY("IN.5") |
| 1043 | PORT_MODIFY("DSW") |
| 1042 | 1044 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2") |
| 1043 | 1045 | PORT_DIPSETTING( 0x03, "Moving" ) |
| 1044 | 1046 | PORT_DIPSETTING( 0x02, "Upright/Sit Down" ) |
| r32319 | r32320 | |
| 1061 | 1063 | PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) |
| 1062 | 1064 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 1063 | 1065 | |
| 1064 | | PORT_START("ADC.3") // brake |
| 1066 | PORT_START("ADC3") // brake |
| 1065 | 1067 | PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) |
| 1066 | 1068 | |
| 1067 | | PORT_START("ADC.4") // gas pedal |
| 1069 | PORT_START("ADC4") // gas pedal |
| 1068 | 1070 | PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) |
| 1069 | 1071 | |
| 1070 | | PORT_START("ADC.5") // steering |
| 1072 | PORT_START("ADC5") // steering |
| 1071 | 1073 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) |
| 1072 | 1074 | INPUT_PORTS_END |
| 1073 | 1075 | |
| r32319 | r32320 | |
| 1075 | 1077 | static INPUT_PORTS_START( pdrifte ) |
| 1076 | 1078 | PORT_INCLUDE( pdrift ) |
| 1077 | 1079 | |
| 1078 | | PORT_MODIFY("IN.5") |
| 1080 | PORT_MODIFY("DSW") |
| 1079 | 1081 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2") |
| 1080 | 1082 | PORT_DIPSETTING( 0x03, "Moving" ) |
| 1081 | 1083 | PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) |
| r32319 | r32320 | |
| 1102 | 1104 | static INPUT_PORTS_START( pdriftj ) |
| 1103 | 1105 | PORT_INCLUDE( pdrift ) |
| 1104 | 1106 | |
| 1105 | | PORT_MODIFY("IN.5") |
| 1107 | PORT_MODIFY("DSW") |
| 1106 | 1108 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2") |
| 1107 | 1109 | PORT_DIPSETTING( 0x03, "Moving" ) |
| 1108 | 1110 | PORT_DIPSETTING( 0x02, "Upright/Sit Down" ) |
| r32319 | r32320 | |
| 1129 | 1131 | static INPUT_PORTS_START( pdriftl ) |
| 1130 | 1132 | PORT_INCLUDE( pdrift ) |
| 1131 | 1133 | |
| 1132 | | PORT_MODIFY("IN.5") |
| 1134 | PORT_MODIFY("DSW") |
| 1133 | 1135 | PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SWB:4" ) |
| 1134 | 1136 | PORT_DIPNAME( 0x10, 0x00, "Ground Level Tilts" ) PORT_DIPLOCATION("SWB:5") |
| 1135 | 1137 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| r32319 | r32320 | |
| 1144 | 1146 | PORT_DIPSETTING( 0x20, "6" ) |
| 1145 | 1147 | PORT_DIPSETTING( 0x00, "7 - Hardest" ) |
| 1146 | 1148 | |
| 1147 | | PORT_MODIFY("IN.6") |
| 1149 | PORT_MODIFY("COINAGE") |
| 1148 | 1150 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:1,2,3,4") |
| 1149 | 1151 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) |
| 1150 | 1152 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) |
| r32319 | r32320 | |
| 1211 | 1213 | static INPUT_PORTS_START( rchase ) |
| 1212 | 1214 | PORT_INCLUDE( yboard_generic ) |
| 1213 | 1215 | |
| 1214 | | PORT_MODIFY("IN.1") |
| 1216 | PORT_MODIFY("GENERAL") |
| 1215 | 1217 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) |
| 1216 | 1218 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) |
| 1217 | 1219 | PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) |
| r32319 | r32320 | |
| 1221 | 1223 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) |
| 1222 | 1224 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) |
| 1223 | 1225 | |
| 1224 | | PORT_MODIFY("IN.6") |
| 1226 | PORT_MODIFY("COINAGE") |
| 1225 | 1227 | PORT_DIPNAME( 0x03, 0x03, "Coin to Credit" ) PORT_DIPLOCATION("SWA:1,2") |
| 1226 | 1228 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) |
| 1227 | 1229 | PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) |
| r32319 | r32320 | |
| 1245 | 1247 | PORT_DIPSETTING( 0x20, "7 gives +1" ) |
| 1246 | 1248 | PORT_DIPSETTING( 0x00, "Error" ) |
| 1247 | 1249 | |
| 1248 | | PORT_MODIFY("IN.5") |
| 1250 | PORT_MODIFY("DSW") |
| 1249 | 1251 | PORT_DIPNAME( 0x03, 0x03, "Credits" ) PORT_DIPLOCATION("SWB:1,2") |
| 1250 | 1252 | PORT_DIPSETTING( 0x03, "1 to Start, 1 to Continue" ) |
| 1251 | 1253 | PORT_DIPSETTING( 0x02, "2 to Start, 1 to Continue" ) |
| r32319 | r32320 | |
| 1266 | 1268 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 1267 | 1269 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1268 | 1270 | |
| 1269 | | PORT_START("ADC.0") |
| 1271 | PORT_START("ADC0") |
| 1270 | 1272 | PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) |
| 1271 | 1273 | |
| 1272 | | PORT_START("ADC.1") |
| 1274 | PORT_START("ADC1") |
| 1273 | 1275 | PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) |
| 1274 | 1276 | |
| 1275 | | PORT_START("ADC.2") |
| 1277 | PORT_START("ADC2") |
| 1276 | 1278 | PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) |
| 1277 | 1279 | |
| 1278 | | PORT_START("ADC.3") |
| 1280 | PORT_START("ADC3") |
| 1279 | 1281 | PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) |
| 1280 | 1282 | INPUT_PORTS_END |
| 1281 | 1283 | |
| r32319 | r32320 | |
| 1283 | 1285 | static INPUT_PORTS_START( strkfgtr ) |
| 1284 | 1286 | PORT_INCLUDE( gloc ) |
| 1285 | 1287 | |
| 1286 | | PORT_MODIFY("IN.5") |
| 1288 | PORT_MODIFY("DSW") |
| 1287 | 1289 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1,2") |
| 1288 | 1290 | PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) |
| 1289 | 1291 | PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) |
trunk/src/mame/drivers/segaorun.c
| r32319 | r32320 | |
| 688 | 688 | return m_i8255->read(space, offset & 3); |
| 689 | 689 | |
| 690 | 690 | case 0x10/2: |
| 691 | | return m_in_ports[offset & 3]->read(); |
| 691 | { |
| 692 | static const char *const sysports[] = { "SERVICE", "UNKNOWN", "COINAGE", "DSW" }; |
| 693 | return ioport(sysports[offset & 3])->read(); |
| 694 | } |
| 692 | 695 | |
| 693 | 696 | case 0x30/2: |
| 694 | | return m_adc_ports[m_adc_select]->read_safe(0x0010); |
| 697 | { |
| 698 | static const char *const ports[] = { "ADC0", "ADC1", "ADC2", "ADC3", "ADC4", "ADC5", "ADC6", "ADC7" }; |
| 699 | return ioport(ports[m_adc_select])->read_safe(0x0010); |
| 700 | } |
| 695 | 701 | |
| 696 | 702 | case 0x60/2: |
| 697 | 703 | return watchdog_reset_r(space, 0); |
| r32319 | r32320 | |
| 770 | 776 | case 0x1002/2: |
| 771 | 777 | case 0x1004/2: |
| 772 | 778 | case 0x1006/2: |
| 773 | | return m_in_ports[offset & 3]->read(); |
| 779 | { |
| 780 | static const char *const sysports[] = { "SERVICE", "UNKNOWN", "COINAGE", "DSW" }; |
| 781 | return ioport(sysports[offset & 3])->read(); |
| 782 | } |
| 774 | 783 | |
| 775 | 784 | case 0x3020/2: |
| 776 | | return m_adc_ports[m_adc_select]->read_safe(0x0010); |
| 785 | { |
| 786 | static const char *const ports[] = { "ADC0", "ADC1", "ADC2", "ADC3" }; |
| 787 | return ioport(ports[m_adc_select])->read_safe(0x0010); |
| 788 | } |
| 777 | 789 | |
| 778 | 790 | default: |
| 779 | 791 | break; |
| r32319 | r32320 | |
| 935 | 947 | |
| 936 | 948 | |
| 937 | 949 | static INPUT_PORTS_START( outrun_generic ) |
| 938 | | PORT_START("IN.0") |
| 950 | PORT_START("SERVICE") |
| 939 | 951 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 940 | 952 | PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) |
| 941 | 953 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| r32319 | r32320 | |
| 945 | 957 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 946 | 958 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 947 | 959 | |
| 948 | | PORT_START("IN.1") |
| 960 | PORT_START("UNKNOWN") |
| 949 | 961 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 950 | 962 | |
| 951 | | PORT_START("IN.2") |
| 963 | PORT_START("COINAGE") |
| 952 | 964 | SEGA_COINAGE_LOC(SWA) |
| 953 | 965 | |
| 954 | | PORT_START("IN.3") |
| 966 | PORT_START("DSW") |
| 955 | 967 | PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SWB:1" ) |
| 956 | 968 | PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SWB:2" ) |
| 957 | 969 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:3") |
| r32319 | r32320 | |
| 969 | 981 | PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) |
| 970 | 982 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 971 | 983 | |
| 972 | | PORT_START("ADC.0") // steering |
| 984 | PORT_START("ADC0") // steering |
| 973 | 985 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) |
| 974 | 986 | |
| 975 | | PORT_START("ADC.1") // gas pedal |
| 987 | PORT_START("ADC1") // gas pedal |
| 976 | 988 | PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) |
| 977 | 989 | |
| 978 | | PORT_START("ADC.2") // brake |
| 990 | PORT_START("ADC2") // brake |
| 979 | 991 | PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) |
| 980 | 992 | |
| 981 | | PORT_START("ADC.3") |
| 993 | PORT_START("ADC3") |
| 982 | 994 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, segaorun_state, bankmotor_pos_r, NULL) |
| 983 | 995 | INPUT_PORTS_END |
| 984 | 996 | |
| r32319 | r32320 | |
| 991 | 1003 | static INPUT_PORTS_START( outrun ) |
| 992 | 1004 | PORT_INCLUDE( outrun_generic ) |
| 993 | 1005 | |
| 994 | | PORT_MODIFY("IN.3") |
| 1006 | PORT_MODIFY("DSW") |
| 995 | 1007 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2") |
| 996 | 1008 | PORT_DIPSETTING( 0x03, "Moving" ) |
| 997 | 1009 | PORT_DIPSETTING( 0x02, "Up Cockpit" ) |
| r32319 | r32320 | |
| 1003 | 1015 | static INPUT_PORTS_START( outrundx ) |
| 1004 | 1016 | PORT_INCLUDE( outrun_generic ) |
| 1005 | 1017 | |
| 1006 | | PORT_MODIFY("IN.3") |
| 1018 | PORT_MODIFY("DSW") |
| 1007 | 1019 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1") |
| 1008 | 1020 | PORT_DIPSETTING( 0x00, "Not Moving" ) |
| 1009 | 1021 | PORT_DIPSETTING( 0x01, "Moving" ) |
| r32319 | r32320 | |
| 1020 | 1032 | static INPUT_PORTS_START( toutrun ) |
| 1021 | 1033 | PORT_INCLUDE( outrun_generic ) |
| 1022 | 1034 | |
| 1023 | | PORT_MODIFY("IN.0") |
| 1035 | PORT_MODIFY("SERVICE") |
| 1024 | 1036 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Turbo") |
| 1025 | 1037 | |
| 1026 | | PORT_MODIFY("IN.3") |
| 1038 | PORT_MODIFY("DSW") |
| 1027 | 1039 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2") |
| 1028 | 1040 | PORT_DIPSETTING( 0x03, "Moving" ) |
| 1029 | 1041 | PORT_DIPSETTING( 0x02, "Cockpit Conversion" ) |
| r32319 | r32320 | |
| 1046 | 1058 | static INPUT_PORTS_START( toutrunm ) |
| 1047 | 1059 | PORT_INCLUDE( toutrun ) |
| 1048 | 1060 | |
| 1049 | | PORT_MODIFY("IN.3") |
| 1061 | PORT_MODIFY("DSW") |
| 1050 | 1062 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2") |
| 1051 | 1063 | PORT_DIPSETTING( 0x03, "Moving" ) |
| 1052 | 1064 | // PORT_DIPSETTING( 0x02, DEF_STR( Unused ) ) |
| r32319 | r32320 | |
| 1063 | 1075 | static INPUT_PORTS_START( toutrunc ) |
| 1064 | 1076 | PORT_INCLUDE( toutrun ) |
| 1065 | 1077 | |
| 1066 | | PORT_MODIFY("IN.3") |
| 1078 | PORT_MODIFY("DSW") |
| 1067 | 1079 | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2") |
| 1068 | 1080 | // PORT_DIPSETTING( 0x03, DEF_STR( Unused ) ) |
| 1069 | 1081 | // PORT_DIPSETTING( 0x02, DEF_STR( Unused ) ) |
| r32319 | r32320 | |
| 1078 | 1090 | static INPUT_PORTS_START( shangon ) |
| 1079 | 1091 | PORT_INCLUDE( outrun_generic ) |
| 1080 | 1092 | |
| 1081 | | PORT_MODIFY("IN.0") |
| 1093 | PORT_MODIFY("SERVICE") |
| 1082 | 1094 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1083 | 1095 | |
| 1084 | | PORT_MODIFY("IN.1") |
| 1096 | PORT_MODIFY("UNKNOWN") |
| 1085 | 1097 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 1086 | 1098 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 1087 | 1099 | PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) |
| r32319 | r32320 | |
| 1091 | 1103 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1092 | 1104 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1093 | 1105 | |
| 1094 | | PORT_MODIFY("IN.3") |
| 1106 | PORT_MODIFY("DSW") |
| 1095 | 1107 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:1") |
| 1096 | 1108 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 1097 | 1109 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r32319 | r32320 | |
| 1109 | 1121 | PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SWB:7" ) |
| 1110 | 1122 | PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWB:8" ) |
| 1111 | 1123 | |
| 1112 | | PORT_MODIFY("ADC.0") // steering |
| 1124 | PORT_MODIFY("ADC0") // steering |
| 1113 | 1125 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE |
| 1114 | 1126 | |
| 1115 | | PORT_MODIFY("ADC.3") |
| 1127 | PORT_MODIFY("ADC3") |
| 1116 | 1128 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 1117 | 1129 | INPUT_PORTS_END |
| 1118 | 1130 | |