1 // license:BSD-3-Clause 2 // copyright-holders:Bryan McPhail, Nicola Salmoria 3 /******************************************************************************* 4 5 Input port macros used by many games in multiple IREM drivers 6 7 *******************************************************************************/ 8 9 10 /**************************** Inputs ****************************/ 11 12 13 #define IREM_INPUT_JOY_LOW(PL, STATE, WAY, B01, B02, B04, B08) \ 14 PORT_BIT( 0x0001, STATE, IPT_JOYSTICK_##B01 ) WAY PORT_PLAYER(PL) \ 15 PORT_BIT( 0x0002, STATE, IPT_JOYSTICK_##B02 ) WAY PORT_PLAYER(PL) \ 16 PORT_BIT( 0x0004, STATE, IPT_JOYSTICK_##B04 ) WAY PORT_PLAYER(PL) \ 17 PORT_BIT( 0x0008, STATE, IPT_JOYSTICK_##B08 ) WAY PORT_PLAYER(PL) 18 19 #define IREM_INPUT_JOY_HIGH(PL, STATE, WAY, B100, B200, B400, B800) \ 20 PORT_BIT( 0x0100, STATE, IPT_JOYSTICK_##B100 ) WAY PORT_PLAYER(PL) \ 21 PORT_BIT( 0x0200, STATE, IPT_JOYSTICK_##B200 ) WAY PORT_PLAYER(PL) \ 22 PORT_BIT( 0x0400, STATE, IPT_JOYSTICK_##B400 ) WAY PORT_PLAYER(PL) \ 23 PORT_BIT( 0x0800, STATE, IPT_JOYSTICK_##B800 ) WAY PORT_PLAYER(PL) 24 25 #define IREM_INPUT_BUTTONS_LOW(PL, STATE, BUTTON_A, BUTTON_B, BUTTON_C, BUTTON_D) \ 26 PORT_BIT( 0x0010, STATE, IPT_##BUTTON_A ) PORT_PLAYER(PL) \ 27 PORT_BIT( 0x0020, STATE, IPT_##BUTTON_B ) PORT_PLAYER(PL) \ 28 PORT_BIT( 0x0040, STATE, IPT_##BUTTON_C ) PORT_PLAYER(PL) \ 29 PORT_BIT( 0x0080, STATE, IPT_##BUTTON_D ) PORT_PLAYER(PL) 30 31 #define IREM_INPUT_BUTTONS_HIGH(PL, STATE, BUTTON_A, BUTTON_B, BUTTON_C, BUTTON_D) \ 32 PORT_BIT( 0x1000, STATE, IPT_##BUTTON_A ) PORT_PLAYER(PL) \ 33 PORT_BIT( 0x2000, STATE, IPT_##BUTTON_B ) PORT_PLAYER(PL) \ 34 PORT_BIT( 0x4000, STATE, IPT_##BUTTON_C ) PORT_PLAYER(PL) \ 35 PORT_BIT( 0x8000, STATE, IPT_##BUTTON_D ) PORT_PLAYER(PL) 36 37 38 #define IREM_GENERIC_JOYSTICKS_2_BUTTONS(PL_L, PL_H) \ 39 IREM_INPUT_JOY_LOW(PL_L, IP_ACTIVE_LOW, PORT_8WAY, RIGHT, LEFT, DOWN, UP) \ 40 IREM_INPUT_BUTTONS_LOW(PL_L, IP_ACTIVE_LOW, UNUSED, UNUSED, BUTTON2, BUTTON1) \ 41 IREM_INPUT_JOY_HIGH(PL_H, IP_ACTIVE_LOW, PORT_8WAY, RIGHT, LEFT, DOWN, UP) \ 42 IREM_INPUT_BUTTONS_HIGH(PL_H, IP_ACTIVE_LOW, UNUSED, UNUSED, BUTTON2, BUTTON1) 43 44 #define IREM_GENERIC_JOYSTICKS_2_BUTTONS_4WAY(PL_L, PL_H) \ 45 IREM_INPUT_JOY_LOW(PL_L, IP_ACTIVE_LOW, PORT_4WAY, RIGHT, LEFT, DOWN, UP) \ 46 IREM_INPUT_BUTTONS_LOW(PL_L, IP_ACTIVE_LOW, UNUSED, UNUSED, BUTTON2, BUTTON1) \ 47 IREM_INPUT_JOY_HIGH(PL_H, IP_ACTIVE_LOW, PORT_4WAY, RIGHT, LEFT, DOWN, UP) \ 48 IREM_INPUT_BUTTONS_HIGH(PL_H, IP_ACTIVE_LOW, UNUSED, UNUSED, BUTTON2, BUTTON1) 49 50 #define IREM_GENERIC_JOYSTICKS_3_BUTTONS(PL_L, PL_H) \ 51 IREM_INPUT_JOY_LOW(PL_L, IP_ACTIVE_LOW, PORT_8WAY, RIGHT, LEFT, DOWN, UP) \ 52 IREM_INPUT_BUTTONS_LOW(PL_L, IP_ACTIVE_LOW, UNUSED, BUTTON3, BUTTON2, BUTTON1) \ 53 IREM_INPUT_JOY_HIGH(PL_H, IP_ACTIVE_LOW, PORT_8WAY, RIGHT, LEFT, DOWN, UP) \ 54 IREM_INPUT_BUTTONS_HIGH(PL_H, IP_ACTIVE_LOW, UNUSED, BUTTON3, BUTTON2, BUTTON1) 55 56 #define IREM_GENERIC_JOYSTICKS_4_BUTTONS(PL_L, PL_H) \ 57 IREM_INPUT_JOY_LOW(PL_L, IP_ACTIVE_LOW, PORT_8WAY, RIGHT, LEFT, DOWN, UP) \ 58 IREM_INPUT_BUTTONS_LOW(PL_L, IP_ACTIVE_LOW, BUTTON4, BUTTON3, BUTTON2, BUTTON1) \ 59 IREM_INPUT_JOY_HIGH(PL_H, IP_ACTIVE_LOW, PORT_8WAY, RIGHT, LEFT, DOWN, UP) \ 60 IREM_INPUT_BUTTONS_HIGH(PL_H, IP_ACTIVE_LOW, BUTTON4, BUTTON3, BUTTON2, BUTTON1) 61 62 #define IREM_GENERIC_JOYSTICKS_2_BUTTONS_START_COIN(PL_L, PL_H, LOW_START, HIGH_START, LOW_COIN, HIGH_COIN) \ 63 IREM_INPUT_JOY_LOW(PL_L, IP_ACTIVE_LOW, PORT_8WAY, RIGHT, LEFT, DOWN, UP) \ 64 IREM_INPUT_BUTTONS_LOW(PL_L, IP_ACTIVE_LOW, LOW_START, LOW_COIN, BUTTON2, BUTTON1) \ 65 IREM_INPUT_JOY_HIGH(PL_H, IP_ACTIVE_LOW, PORT_8WAY, RIGHT, LEFT, DOWN, UP) \ 66 IREM_INPUT_BUTTONS_HIGH(PL_H, IP_ACTIVE_LOW, HIGH_START, HIGH_COIN, BUTTON2, BUTTON1) 67 68 #define IREM_INPUT_PLAYER_3 \ 69 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) \ 70 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) \ 71 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) \ 72 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) \ 73 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START3 ) /* If common slots, Coin3 if separate */ \ 74 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN3 ) \ 75 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) \ 76 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) 77 #define IREM_INPUT_PLAYER_3_4WAY \ 78 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(3) \ 79 PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(3) \ 80 PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(3) \ 81 PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(3) \ 82 PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START3 ) /* If common slots, Coin3 if separate */ \ 83 PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN3 ) \ 84 PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) \ 85 PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) 86 #define IREM_INPUT_PLAYER_4 \ 87 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) \ 88 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) \ 89 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) \ 90 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) \ 91 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_START4 ) /* If common slots, Coin3 if separate */ \ 92 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN4 ) \ 93 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) \ 94 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) 95 #define IREM_INPUT_PLAYER_4_4WAY \ 96 PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(4) \ 97 PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(4) \ 98 PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(4) \ 99 PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(4) \ 100 PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_START4 ) /* If common slots, Coin3 if separate */ \ 101 PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN4 ) \ 102 PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) \ 103 PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) 104 105 106 #define IREM_COINS \ 107 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) \ 108 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) \ 109 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) \ 110 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) \ 111 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ 112 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) \ 113 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) \ 114 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* Actually vblank, handled above */ 115 116 /**************************** Coinage Dip Switches ****************************/ 117 118 /* Mode 2 Coinage */ 119 120 #define IREM_COIN_MODE_2_OLD_LOC(DIPBANK) \ 121 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":5,6") \ 122 PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ 123 PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ 124 PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ 125 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \ 126 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":7,8") \ 127 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \ 128 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ 129 PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \ 130 PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) 131 132 #define IREM_COIN_MODE_2_DSW1_LOC(DIPBANK) \ 133 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":5,6") \ 134 PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) \ 135 PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ 136 PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ 137 PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ 138 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":7,8") \ 139 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \ 140 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ 141 PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \ 142 PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) 143 144 /* on newer boards, coinage settings moved to DSW2 and coin mode dip was put on */ 145 /* DSW1. We may add the tag in the condition and the location as parameters here, */ 146 /* to make the definitions a bit more general. However, these are enough to cover */ 147 /* all the currently emulated games */ 148 #define IREM_COIN_MODE_2 \ 149 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_CONDITION("DSW1", 0x04, EQUALS, 0x00) PORT_DIPLOCATION("SW2:5,6") \ 150 PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) \ 151 PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ 152 PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ 153 PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ 154 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_CONDITION("DSW1", 0x04, EQUALS, 0x00) PORT_DIPLOCATION("SW2:7,8") \ 155 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \ 156 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ 157 PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \ 158 PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) 159 160 #define IREM_COIN_MODE_2_HIGH \ 161 PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) ) PORT_CONDITION("DSW", 0x0800, EQUALS, 0x0000) PORT_DIPLOCATION("SW2:5,6") \ 162 PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) \ 163 PORT_DIPSETTING( 0x1000, DEF_STR( 3C_1C ) ) \ 164 PORT_DIPSETTING( 0x2000, DEF_STR( 2C_1C ) ) \ 165 PORT_DIPSETTING( 0x3000, DEF_STR( 1C_1C ) ) \ 166 PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) ) PORT_CONDITION("DSW", 0x0800, EQUALS, 0x0000) PORT_DIPLOCATION("SW2:7,8") \ 167 PORT_DIPSETTING( 0xc000, DEF_STR( 1C_2C ) ) \ 168 PORT_DIPSETTING( 0x8000, DEF_STR( 1C_3C ) ) \ 169 PORT_DIPSETTING( 0x4000, DEF_STR( 1C_5C ) ) \ 170 PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) 171 172 173 /* Mode 1 Coinage */ 174 175 #define IREM_Z80_COINAGE_TYPE_1_LOC(DIPBANK) \ 176 /* Coin Mode 1 */ \ 177 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) PORT_CONDITION("DSW2", 0x04, NOTEQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":5,6,7,8") \ 178 /* PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) */ \ 179 PORT_DIPSETTING( 0x90, DEF_STR( 7C_1C ) ) \ 180 PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \ 181 PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \ 182 PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \ 183 PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \ 184 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \ 185 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ 186 PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) \ 187 PORT_DIPSETTING( 0x60, DEF_STR( 1C_3C ) ) \ 188 PORT_DIPSETTING( 0x50, DEF_STR( 1C_4C ) ) \ 189 PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \ 190 PORT_DIPSETTING( 0x30, DEF_STR( 1C_6C ) ) \ 191 PORT_DIPSETTING( 0x20, DEF_STR( 1C_7C ) ) \ 192 PORT_DIPSETTING( 0x10, DEF_STR( 1C_8C ) ) \ 193 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \ 194 /* Coin Mode 2 */ \ 195 IREM_COIN_MODE_2_OLD_LOC(DIPBANK) 196 197 #define IREM_Z80_COINAGE_TYPE_2_LOC(DIPBANK) \ 198 /* Coin Mode 1 */ \ 199 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) PORT_CONDITION("DSW2", 0x04, NOTEQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":5,6,7,8") \ 200 /* PORT_DIPSETTING( 0x80, DEF_STR( Free_Play ) ) */ \ 201 /* PORT_DIPSETTING( 0x90, DEF_STR( Free_Play ) ) */ \ 202 PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \ 203 PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \ 204 PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \ 205 PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \ 206 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \ 207 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ 208 PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) \ 209 PORT_DIPSETTING( 0x60, DEF_STR( 1C_3C ) ) \ 210 PORT_DIPSETTING( 0x50, DEF_STR( 1C_4C ) ) \ 211 PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \ 212 PORT_DIPSETTING( 0x30, DEF_STR( 1C_6C ) ) \ 213 /* PORT_DIPSETTING( 0x20, DEF_STR( Free_Play ) ) */ \ 214 /* PORT_DIPSETTING( 0x10, DEF_STR( Free_Play ) ) */ \ 215 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \ 216 /* Coin Mode 2 */ \ 217 IREM_COIN_MODE_2_OLD_LOC(DIPBANK) 218 219 #define IREM_Z80_COINAGE_TYPE_3_LOC(DIPBANK) \ 220 /* Coin Mode 1 */ \ 221 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) PORT_CONDITION("DSW2", 0x04, NOTEQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":5,6,7,8") \ 222 PORT_DIPSETTING( 0x90, DEF_STR( 7C_1C ) ) \ 223 PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \ 224 PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \ 225 PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \ 226 PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \ 227 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \ 228 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ 229 /* PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) */ \ 230 PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) \ 231 PORT_DIPSETTING( 0x60, DEF_STR( 1C_3C ) ) \ 232 PORT_DIPSETTING( 0x50, DEF_STR( 1C_4C ) ) \ 233 PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \ 234 PORT_DIPSETTING( 0x30, DEF_STR( 1C_6C ) ) \ 235 PORT_DIPSETTING( 0x20, DEF_STR( 1C_7C ) ) \ 236 PORT_DIPSETTING( 0x10, DEF_STR( 1C_8C ) ) \ 237 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \ 238 /* Coin Mode 2 */ \ 239 IREM_COIN_MODE_2_OLD_LOC(DIPBANK) 240 241 #define IREM_Z80_COINAGE_TYPE_4_LOC(DIPBANK) \ 242 /* Coin Mode 1 */ \ 243 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) PORT_CONDITION("DSW2", 0x04, NOTEQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":5,6,7,8") \ 244 PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \ 245 PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \ 246 PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \ 247 PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \ 248 PORT_DIPSETTING( 0x10, DEF_STR( 8C_3C ) ) \ 249 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \ 250 PORT_DIPSETTING( 0x20, DEF_STR( 5C_3C ) ) \ 251 PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) \ 252 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ 253 PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) \ 254 PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) \ 255 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ 256 PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) \ 257 PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) \ 258 PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) \ 259 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \ 260 /* Coin Mode 2 */ \ 261 IREM_COIN_MODE_2_DSW1_LOC(DIPBANK) 262 263 #define IREM_Z80_COINAGE_TYPE_5_LOC(DIPBANK) \ 264 /* Coin Mode 1 */ \ 265 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) PORT_CONDITION("DSW2", 0x04, NOTEQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":5,6,7,8") \ 266 PORT_DIPSETTING( 0x00, DEF_STR( 8C_1C ) ) \ 267 PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \ 268 PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \ 269 PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \ 270 PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \ 271 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \ 272 PORT_DIPSETTING( 0x10, DEF_STR( 5C_3C ) ) \ 273 PORT_DIPSETTING( 0x20, "3 Coins/5 Credits" ) \ 274 PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) \ 275 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ 276 PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) \ 277 PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) \ 278 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ 279 PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) \ 280 PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) \ 281 PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) \ 282 /* Coin Mode 2 */ \ 283 IREM_COIN_MODE_2_DSW1_LOC(DIPBANK) 284 285 286 /* New Coin Mode 1, introduced in later m72 games (m72 early games have different Coinage) */ 287 288 #define IREM_COIN_MODE_1_NEW \ 289 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:5,6,7,8") \ 290 PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \ 291 PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \ 292 PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \ 293 PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \ 294 PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \ 295 PORT_DIPSETTING( 0x10, "2 Coins to Start/1 to Continue") \ 296 PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) \ 297 PORT_DIPSETTING( 0x20, DEF_STR( 4C_3C ) ) \ 298 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ 299 PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) \ 300 PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) \ 301 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ 302 PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) \ 303 PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) \ 304 PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) \ 305 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) 306 307 #define IREM_COIN_MODE_1_NEW_HIGH \ 308 PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) ) PORT_CONDITION("DSW", 0x0800, NOTEQUALS, 0x0000) PORT_DIPLOCATION("SW2:5,6,7,8") \ 309 PORT_DIPSETTING( 0xa000, DEF_STR( 6C_1C ) ) \ 310 PORT_DIPSETTING( 0xb000, DEF_STR( 5C_1C ) ) \ 311 PORT_DIPSETTING( 0xc000, DEF_STR( 4C_1C ) ) \ 312 PORT_DIPSETTING( 0xd000, DEF_STR( 3C_1C ) ) \ 313 PORT_DIPSETTING( 0xe000, DEF_STR( 2C_1C ) ) \ 314 PORT_DIPSETTING( 0x1000, "2 Coins to Start/1 to Continue") \ 315 PORT_DIPSETTING( 0x3000, DEF_STR( 3C_2C ) ) \ 316 PORT_DIPSETTING( 0x2000, DEF_STR( 4C_3C ) ) \ 317 PORT_DIPSETTING( 0xf000, DEF_STR( 1C_1C ) ) \ 318 PORT_DIPSETTING( 0x4000, DEF_STR( 2C_3C ) ) \ 319 PORT_DIPSETTING( 0x9000, DEF_STR( 1C_2C ) ) \ 320 PORT_DIPSETTING( 0x8000, DEF_STR( 1C_3C ) ) \ 321 PORT_DIPSETTING( 0x7000, DEF_STR( 1C_4C ) ) \ 322 PORT_DIPSETTING( 0x6000, DEF_STR( 1C_5C ) ) \ 323 PORT_DIPSETTING( 0x5000, DEF_STR( 1C_6C ) ) \ 324 PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) 325