trunk/src/mame/drivers/toaplan2.c
| r26540 | r26541 | |
| 555 | 555 | } |
| 556 | 556 | } |
| 557 | 557 | |
| 558 | WRITE8_MEMBER(toaplan2_state::pwrkick_coin_w) |
| 559 | { |
| 560 | coin_counter_w( machine(), 0, (data & 2) >> 1 ); |
| 561 | coin_counter_w( machine(), 1, (data & 8) >> 3 ); |
| 562 | m_pwrkick_hopper = (data & 0x80) >> 7; |
| 563 | } |
| 558 | 564 | |
| 565 | |
| 559 | 566 | WRITE16_MEMBER(toaplan2_state::toaplan2_coin_word_w) |
| 560 | 567 | { |
| 561 | 568 | if (ACCESSING_BITS_0_7) |
| r26540 | r26541 | |
| 1200 | 1207 | static ADDRESS_MAP_START( pwrkick_68k_mem, AS_PROGRAM, 16, toaplan2_state ) |
| 1201 | 1208 | AM_RANGE(0x000000, 0x07ffff) AM_ROM |
| 1202 | 1209 | AM_RANGE(0x100000, 0x10ffff) AM_RAM |
| 1210 | AM_RANGE(0x200000, 0x20000f) AM_RAM // uPD4992 RTC |
| 1203 | 1211 | AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) |
| 1204 | 1212 | AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") |
| 1205 | 1213 | AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) |
| 1206 | 1214 | |
| 1207 | | // AM_RANGE(0x70001c, 0x70001d) AM_READ_PORT("SYS") |
| 1208 | | // AM_RANGE(0x700000, 0x700001) AM_READ_PORT("JMPR") |
| 1209 | 1215 | AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) // check me |
| 1210 | 1216 | AM_RANGE(0x700004, 0x700005) AM_READ_PORT("DSWA") |
| 1211 | 1217 | AM_RANGE(0x700008, 0x700009) AM_READ_PORT("DSWB") |
| 1212 | 1218 | AM_RANGE(0x70000c, 0x70000d) AM_READ_PORT("IN1") |
| 1213 | | AM_RANGE(0x700010, 0x700011) AM_READ_PORT("IN2") |
| 1214 | | AM_RANGE(0x700014, 0x700015) AM_READ_PORT("IN3") |
| 1215 | | AM_RANGE(0x700018, 0x700019) AM_READ_PORT("IN4") |
| 1219 | AM_RANGE(0x700014, 0x700015) AM_READ_PORT("IN2") |
| 1220 | AM_RANGE(0x700018, 0x700019) AM_READ_PORT("DSWC") |
| 1216 | 1221 | AM_RANGE(0x70001c, 0x70001d) AM_READ_PORT("SYS") |
| 1217 | 1222 | AM_RANGE(0x700030, 0x700031) AM_WRITE(oki_bankswitch_w) |
| 1223 | AM_RANGE(0x700034, 0x700035) AM_WRITE8(pwrkick_coin_w,0x00ff) |
| 1224 | AM_RANGE(0x700038, 0x700039) AM_WRITENOP // lamps? |
| 1218 | 1225 | ADDRESS_MAP_END |
| 1219 | 1226 | |
| 1220 | 1227 | |
| r26540 | r26541 | |
| 2301 | 2308 | PORT_CONFSETTING( 0x0000, "Korea (Unite Trading)" ) |
| 2302 | 2309 | INPUT_PORTS_END |
| 2303 | 2310 | |
| 2304 | | /* TODO: placeholder, needs heavy modifications for sure */ |
| 2311 | |
| 2312 | CUSTOM_INPUT_MEMBER(toaplan2_state::pwrkick_hopper_status_r) |
| 2313 | { |
| 2314 | /* TODO: hopper mechanism */ |
| 2315 | return machine().rand() & 1; |
| 2316 | //return m_pwrkick_hopper & (machine().rand() & 1); |
| 2317 | } |
| 2318 | |
| 2305 | 2319 | static INPUT_PORTS_START( pwrkick ) |
| 2306 | | PORT_INCLUDE( toaplan2_2b ) |
| 2320 | PORT_START("DSWA") |
| 2321 | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) |
| 2322 | PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) |
| 2323 | PORT_DIPSETTING( 0x01, DEF_STR( Normal ) ) |
| 2324 | PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) |
| 2325 | PORT_DIPSETTING( 0x03, DEF_STR( Very_Hard ) ) |
| 2326 | PORT_DIPNAME( 0x1c, 0x00, "Payout" ) |
| 2327 | PORT_DIPSETTING( 0x00, "1" ) |
| 2328 | PORT_DIPSETTING( 0x04, "2" ) |
| 2329 | PORT_DIPSETTING( 0x08, "3" ) |
| 2330 | PORT_DIPSETTING( 0x0c, "4" ) |
| 2331 | PORT_DIPSETTING( 0x10, "5" ) |
| 2332 | PORT_DIPSETTING( 0x14, "6" ) |
| 2333 | PORT_DIPSETTING( 0x18, "7" ) |
| 2334 | PORT_DIPSETTING( 0x1c, "8" ) |
| 2335 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) |
| 2336 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 2337 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 2338 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) |
| 2339 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2340 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 2341 | PORT_DIPNAME( 0x80, 0x00, "Diagnostic" ) |
| 2342 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2343 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 2307 | 2344 | |
| 2308 | | PORT_START("IN3") |
| 2309 | | PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(3) PORT_8WAY |
| 2310 | | PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) PORT_8WAY |
| 2311 | | PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) PORT_8WAY |
| 2312 | | PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) PORT_8WAY |
| 2313 | | PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(3) |
| 2314 | | PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(3) |
| 2315 | | PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_START3 ) |
| 2316 | | PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 2345 | PORT_START("DSWB") |
| 2346 | PORT_DIPNAME( 0x03, 0x00, "Play Credit" ) |
| 2347 | PORT_DIPSETTING( 0x00, "10 \xC2\xA5" ) |
| 2348 | PORT_DIPSETTING( 0x01, "20 \xC2\xA5" ) |
| 2349 | PORT_DIPSETTING( 0x02, "30 \xC2\xA5" ) |
| 2350 | PORT_DIPSETTING( 0x03, "40 \xC2\xA5" ) |
| 2351 | PORT_DIPNAME( 0x0c, 0x00, "Coin Exchange" ) |
| 2352 | PORT_DIPSETTING( 0x00, "12" ) |
| 2353 | PORT_DIPSETTING( 0x04, "10" ) |
| 2354 | PORT_DIPSETTING( 0x08, "6" ) |
| 2355 | PORT_DIPSETTING( 0x0c, "5" ) |
| 2356 | PORT_DIPNAME( 0x30, 0x00, "Game Mode" ) |
| 2357 | PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) |
| 2358 | PORT_DIPSETTING( 0x10, "Shot" ) |
| 2359 | PORT_DIPSETTING( 0x20, "Auto" ) |
| 2360 | PORT_DIPSETTING( 0x30, "S-Manual" ) |
| 2361 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) |
| 2362 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2363 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 2364 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) |
| 2365 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2366 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 2317 | 2367 | |
| 2318 | | PORT_START("IN4") |
| 2319 | | PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(4) PORT_8WAY |
| 2320 | | PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) PORT_8WAY |
| 2321 | | PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) PORT_8WAY |
| 2322 | | PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) PORT_8WAY |
| 2323 | | PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(4) |
| 2324 | | PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(4) |
| 2325 | | PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_START4 ) |
| 2326 | | PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 2368 | PORT_START("DSWC") |
| 2369 | PORT_DIPNAME( 0x01, 0x00, "DSWC" ) |
| 2370 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2371 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 2372 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) |
| 2373 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2374 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 2375 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) |
| 2376 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2377 | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 2378 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) |
| 2379 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2380 | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 2381 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 2382 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2383 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 2384 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 2385 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2386 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 2387 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 2388 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2389 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 2390 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 2391 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2392 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 2327 | 2393 | |
| 2328 | | PORT_MODIFY("DSWA") |
| 2329 | | PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Continue_Price ) ) PORT_DIPLOCATION("SW1:!1") |
| 2330 | | PORT_DIPSETTING( 0x0000, DEF_STR( Normal ) ) |
| 2331 | | PORT_DIPSETTING( 0x0001, "Discount" ) |
| 2332 | | // Various features on bit mask 0x000e - see above |
| 2333 | | TOAPLAN_COINAGE_DUAL_LOC( JMPR, 0x1c00, 0x0800, SW1 ) |
| 2394 | PORT_START("IN1") |
| 2395 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) |
| 2396 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Left Button") |
| 2397 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Center Button") |
| 2398 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Right Button") |
| 2399 | PORT_DIPNAME( 0x10, 0x00, "IN1" ) |
| 2400 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2401 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 2402 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 2403 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2404 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 2405 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 2406 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2407 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 2408 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 2409 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2410 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 2334 | 2411 | |
| 2335 | | PORT_MODIFY("DSWB") |
| 2336 | | // Difficulty on bit mask 0x0003 - see above |
| 2337 | | PORT_DIPNAME( 0x000c, 0x0000, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:!3,!4") |
| 2338 | | PORT_DIPSETTING( 0x000c, DEF_STR( None ) ) |
| 2339 | | PORT_DIPSETTING( 0x0008, "200k only" ) |
| 2340 | | PORT_DIPSETTING( 0x0000, "100k only" ) |
| 2341 | | PORT_DIPSETTING( 0x0004, "100k and every 500k" ) |
| 2342 | | PORT_DIPNAME( 0x0030, 0x0000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:!5,!6") |
| 2343 | | PORT_DIPSETTING( 0x0030, "1" ) |
| 2344 | | PORT_DIPSETTING( 0x0020, "2" ) |
| 2345 | | PORT_DIPSETTING( 0x0000, "3" ) |
| 2346 | | PORT_DIPSETTING( 0x0010, "4" ) |
| 2347 | | PORT_DIPNAME( 0x0040, 0x0000, "Invulnerability (Cheat)" ) PORT_DIPLOCATION("SW2:!7") |
| 2348 | | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 2349 | | PORT_DIPSETTING( 0x0040, DEF_STR( On ) ) |
| 2350 | | PORT_DIPNAME( 0x0080, 0x0000, "Maximum Players" ) PORT_DIPLOCATION("SW2:!8") |
| 2351 | | PORT_DIPSETTING( 0x0080, "2" ) |
| 2352 | | PORT_DIPSETTING( 0x0000, "4" ) |
| 2412 | PORT_START("IN2") |
| 2413 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_GAMBLE_KEYIN ) // 10 Yen |
| 2414 | PORT_SERVICE( 0x02, IP_ACTIVE_HIGH ) |
| 2415 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Down Button") |
| 2416 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, toaplan2_state, pwrkick_hopper_status_r, NULL) |
| 2417 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE3 ) PORT_NAME("Memory Reset") |
| 2418 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 2419 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2420 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 2421 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) |
| 2422 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2423 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 2424 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) |
| 2425 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2426 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 2353 | 2427 | |
| 2354 | | PORT_START("JMPR") |
| 2355 | | PORT_CONFNAME( 0x2000, 0x0000, "Show All Rights Reserved" ) //PORT_CONFLOCATION("JP:!1") |
| 2356 | | PORT_CONFSETTING( 0x0000, DEF_STR( No ) ) |
| 2357 | | PORT_CONFSETTING( 0x2000, DEF_STR( Yes ) ) |
| 2358 | | PORT_CONFNAME( 0x1c00, 0x0800, DEF_STR( Region ) ) //PORT_CONFLOCATION("JP:!4,!3,!2") |
| 2359 | | PORT_CONFSETTING( 0x0800, DEF_STR( Europe ) ) |
| 2360 | | PORT_CONFSETTING( 0x0400, DEF_STR( USA ) ) |
| 2361 | | PORT_CONFSETTING( 0x0000, DEF_STR( Japan ) ) |
| 2362 | | PORT_CONFSETTING( 0x0c00, DEF_STR( Korea ) ) |
| 2363 | | PORT_CONFSETTING( 0x1000, DEF_STR( Hong_Kong ) ) |
| 2364 | | PORT_CONFSETTING( 0x1400, DEF_STR( Taiwan ) ) |
| 2365 | | PORT_CONFSETTING( 0x1800, DEF_STR( Southeast_Asia ) ) |
| 2366 | | // PORT_CONFSETTING( 0x1c00, DEF_STR( Unused ) ) |
| 2367 | | PORT_BIT( 0xc3ff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 2428 | PORT_START("SYS") |
| 2429 | PORT_DIPNAME( 0x01, 0x00, "SYS" ) |
| 2430 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2431 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 2432 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) |
| 2433 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2434 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 2435 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) // 100 Yen |
| 2436 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_NAME("Bookkeeping") |
| 2437 | PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) |
| 2438 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2439 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 2440 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) |
| 2441 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2442 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 2443 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE4 ) PORT_NAME("Attendant Key") |
| 2444 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) |
| 2368 | 2445 | INPUT_PORTS_END |
| 2369 | 2446 | |
| 2370 | 2447 | static INPUT_PORTS_START( snowbro2 ) |
| r26540 | r26541 | |
| 5119 | 5196 | GAME( 1993, batsuguna, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun (older set)", GAME_SUPPORTS_SAVE ) |
| 5120 | 5197 | GAME( 1993, batsugunsp, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun - Special Version", GAME_SUPPORTS_SAVE ) |
| 5121 | 5198 | |
| 5122 | | GAME( 1994, pwrkick, 0, pwrkick, pwrkick, driver_device, 0, ROT0, "Sunwise", "Power Kick", GAME_NOT_WORKING ) |
| 5199 | GAME( 1994, pwrkick, 0, pwrkick, pwrkick, driver_device, 0, ROT0, "Sunwise", "Power Kick (Japan)", 0 ) |
| 5123 | 5200 | |
| 5124 | 5201 | GAME( 1994, snowbro2, 0, snowbro2, snowbro2, driver_device, 0, ROT0, "Hanafram", "Snow Bros. 2 - With New Elves / Otenki Paradise", GAME_SUPPORTS_SAVE ) |
| 5125 | 5202 | |