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