trunk/src/mame/drivers/dassault.c
| r17686 | r17687 | |
| 2 | 2 | |
| 3 | 3 | Thunder Zone / Desert Assault (c) 1991 Data East Corporation |
| 4 | 4 | |
| 5 | | Thunder Zone (World 2 players, 2 sets) |
| 6 | | Thunder Zone (Japan 2 players) |
| 7 | | Desert Assault (USA 4 players) |
| 8 | | Desert Assault (USA 2 players) |
| 5 | Thunder Zone (World 2 or 4 players, 2 sets) |
| 6 | Thunder Zone (World 4 players only) |
| 7 | Thunder Zone (Japan 2 or 4 players) |
| 8 | Desert Assault (USA 4 players only) |
| 9 | Desert Assault (USA Selectable 2-4 players) |
| 9 | 10 | |
| 10 | 11 | Emulation by Bryan McPhail, mish@tendril.co.uk |
| 11 | 12 | |
| r17686 | r17687 | |
| 27 | 28 | |
| 28 | 29 | Stephh's notes (based on the games M68000 code and some tests) : |
| 29 | 30 | |
| 30 | | 0) all games |
| 31 | 31 | |
| 32 | | - If the "Flip Screen" Dip Switch is correct, screen flipping is handled by |
| 33 | | a write to 0x220000.w (dassault_control_1[0]) which isn't supported yet. |
| 34 | | - I can't confirm the "Demo Sounds" Dip Switch, but the routine is the same |
| 35 | | in all games (but different addresses) and it writes something to 0x180000.w |
| 36 | | (see 'WRITE16_HANDLER( dassault_sound_w )'). |
| 37 | | |
| 38 | | |
| 39 | 32 | 1) 'thndzone' |
| 40 | 33 | |
| 41 | 34 | - "Max Players" Dip Switch set to "2" : |
| r17686 | r17687 | |
| 280 | 273 | |
| 281 | 274 | /**********************************************************************************/ |
| 282 | 275 | |
| 283 | | static INPUT_PORTS_START( common ) |
| 284 | | PORT_START("P1_P2") |
| 285 | | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY |
| 286 | | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY |
| 287 | | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_8WAY |
| 288 | | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_8WAY |
| 289 | | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) |
| 290 | | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) |
| 291 | | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 292 | | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) |
| 293 | | |
| 294 | | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY |
| 295 | | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_8WAY |
| 296 | | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY |
| 297 | | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_8WAY |
| 298 | | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) |
| 299 | | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) |
| 300 | | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 301 | | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) |
| 302 | | |
| 303 | | PORT_START("P3_P4") |
| 304 | | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) PORT_8WAY |
| 305 | | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) PORT_8WAY |
| 306 | | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) PORT_8WAY |
| 307 | | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) PORT_8WAY |
| 308 | | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) |
| 309 | | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) |
| 310 | | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 311 | | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) |
| 312 | | |
| 313 | | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4) PORT_8WAY |
| 314 | | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) PORT_8WAY |
| 315 | | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) PORT_8WAY |
| 316 | | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) PORT_8WAY |
| 317 | | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) |
| 318 | | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) |
| 319 | | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 320 | | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN4 ) |
| 321 | | |
| 322 | | PORT_START("VBLANK1") /* Cpu 1 vblank */ |
| 323 | | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") |
| 324 | | INPUT_PORTS_END |
| 325 | | |
| 326 | 276 | static INPUT_PORTS_START( thndzone ) |
| 327 | | PORT_INCLUDE( common ) |
| 328 | 277 | |
| 329 | 278 | PORT_START("SYSTEM") |
| 330 | 279 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| r17686 | r17687 | |
| 378 | 327 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") // Check code at 0x001490 |
| 379 | 328 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 380 | 329 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 330 | |
| 331 | PORT_START("P1_P2") |
| 332 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY |
| 333 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY |
| 334 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_8WAY |
| 335 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_8WAY |
| 336 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) |
| 337 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) |
| 338 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 339 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) |
| 340 | |
| 341 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY |
| 342 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_8WAY |
| 343 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY |
| 344 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_8WAY |
| 345 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) |
| 346 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) |
| 347 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 348 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) |
| 349 | |
| 350 | PORT_START("P3_P4") |
| 351 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) PORT_8WAY |
| 352 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) PORT_8WAY |
| 353 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) PORT_8WAY |
| 354 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) PORT_8WAY |
| 355 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) |
| 356 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) |
| 357 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 358 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) |
| 359 | |
| 360 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4) PORT_8WAY |
| 361 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) PORT_8WAY |
| 362 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) PORT_8WAY |
| 363 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) PORT_8WAY |
| 364 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) |
| 365 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) |
| 366 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 367 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN4 ) |
| 368 | |
| 369 | PORT_START("VBLANK1") /* Cpu 1 vblank */ |
| 370 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") |
| 381 | 371 | INPUT_PORTS_END |
| 382 | 372 | |
| 383 | | static INPUT_PORTS_START( dassault ) |
| 384 | | PORT_INCLUDE( common ) |
| 373 | static INPUT_PORTS_START( thndzone4 ) /* Coin-B selectable values work for this set */ |
| 374 | PORT_INCLUDE( thndzone ) |
| 385 | 375 | |
| 386 | | PORT_START("SYSTEM") |
| 387 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 388 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 389 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| 390 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") |
| 376 | PORT_MODIFY("P1_P2") |
| 377 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) /* Start Buttons not used, hit Player Button1 to start for that player */ |
| 378 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) /* Start Buttons not used, hit Player Button1 to start for that player */ |
| 391 | 379 | |
| 392 | | PORT_START("DSW1") |
| 393 | | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3") |
| 394 | | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 395 | | PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) |
| 396 | | PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) |
| 397 | | PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) |
| 398 | | PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) |
| 399 | | PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) |
| 400 | | PORT_DIPSETTING( 0x03, DEF_STR( 1C_5C ) ) |
| 401 | | PORT_DIPSETTING( 0x02, DEF_STR( 1C_6C ) ) |
| 402 | | PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,5,6") |
| 403 | | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 404 | | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) |
| 405 | | PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) |
| 406 | | PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) |
| 407 | | PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) |
| 408 | | PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) |
| 409 | | PORT_DIPSETTING( 0x18, DEF_STR( 1C_5C ) ) |
| 410 | | PORT_DIPSETTING( 0x10, DEF_STR( 1C_6C ) ) |
| 411 | | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") |
| 412 | | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 413 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 414 | | PORT_DIPNAME( 0x80, 0x80, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW1:8") |
| 415 | | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 416 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 380 | PORT_MODIFY("DSW2") |
| 381 | PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" ) /* No selectable number of players DSW */ |
| 382 | INPUT_PORTS_END |
| 417 | 383 | |
| 418 | | PORT_START("DSW2") |
| 419 | | PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW2:1" ) |
| 420 | | PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW2:2" ) |
| 421 | | PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4") |
| 422 | | PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) |
| 423 | | PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) |
| 424 | | PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) |
| 425 | | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 384 | static INPUT_PORTS_START( dassault ) |
| 385 | PORT_INCLUDE( thndzone ) |
| 386 | |
| 387 | PORT_MODIFY("DSW2") |
| 426 | 388 | PORT_DIPNAME( 0x30, 0x30, "Max Players" ) PORT_DIPLOCATION("SW2:5,6") |
| 427 | 389 | PORT_DIPSETTING( 0x30, "2" ) |
| 428 | 390 | PORT_DIPSETTING( 0x20, "3" ) |
| 429 | 391 | PORT_DIPSETTING( 0x10, "4" ) |
| 430 | 392 | // PORT_DIPSETTING( 0x00, "4 (buggy)" ) |
| 431 | | PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" ) |
| 432 | | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") // Check code at 0x0014bc |
| 433 | | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 434 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 435 | 393 | INPUT_PORTS_END |
| 436 | 394 | |
| 437 | 395 | static INPUT_PORTS_START( dassault4 ) |
| 438 | | PORT_INCLUDE( common ) |
| 396 | PORT_INCLUDE( thndzone ) |
| 439 | 397 | |
| 440 | 398 | PORT_MODIFY("P1_P2") |
| 441 | | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 442 | | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 399 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) /* Start Buttons not used, hit Player Button1 to start for that player */ |
| 400 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) /* Start Buttons not used, hit Player Button1 to start for that player */ |
| 443 | 401 | |
| 444 | | PORT_START("SYSTEM") |
| 445 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 446 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 447 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| 448 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") |
| 449 | | |
| 450 | | PORT_START("DSW1") |
| 451 | | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3") |
| 452 | | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 453 | | PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) |
| 454 | | PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) |
| 455 | | PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) |
| 456 | | PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) |
| 457 | | PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) |
| 458 | | PORT_DIPSETTING( 0x03, DEF_STR( 1C_5C ) ) |
| 459 | | PORT_DIPSETTING( 0x02, DEF_STR( 1C_6C ) ) |
| 460 | | PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW1:4" ) |
| 402 | PORT_MODIFY("DSW1") |
| 403 | PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW1:4" ) /* No selectable Coin-B values */ |
| 461 | 404 | PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW1:5" ) |
| 462 | 405 | PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW1:6" ) |
| 463 | | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:7") |
| 464 | | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 465 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 466 | | PORT_DIPNAME( 0x80, 0x80, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW1:8") |
| 467 | | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 468 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 469 | 406 | |
| 470 | | PORT_START("DSW2") |
| 471 | | PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW2:1" ) |
| 472 | | PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW2:2" ) |
| 473 | | PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4") |
| 474 | | PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) |
| 475 | | PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) |
| 476 | | PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) |
| 477 | | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 478 | | PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" ) |
| 479 | | PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" ) |
| 480 | | PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" ) |
| 481 | | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") // Check code at 0x0014a4 |
| 482 | | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 483 | | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 407 | PORT_MODIFY("DSW2") |
| 408 | PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" ) /* No selectable number of players DSW */ |
| 484 | 409 | INPUT_PORTS_END |
| 485 | 410 | |
| 486 | 411 | /**********************************************************************************/ |
| r17686 | r17687 | |
| 644 | 569 | |
| 645 | 570 | /**********************************************************************************/ |
| 646 | 571 | |
| 647 | | ROM_START( thndzone ) |
| 572 | ROM_START( thndzone ) /* World rev 1 set, DSW selectable 2 or 4 players */ |
| 648 | 573 | ROM_REGION(0x80000, "maincpu", 0 ) /* 68000 code */ |
| 649 | 574 | ROM_LOAD16_BYTE("gz01-1.a15", 0x00000, 0x20000, CRC(20250da6) SHA1(2d01d59b67a2ecc2ddc88eded43f451931a0a33b) ) |
| 650 | 575 | ROM_LOAD16_BYTE("gz03-1.a17", 0x00001, 0x20000, CRC(3595fad0) SHA1(5d61776cdf2274cb26ea06ce97c35f5ce7f27e66) ) |
| r17686 | r17687 | |
| 710 | 635 | ROM_LOAD( "pal16l8b.10c", 0x0e00, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 711 | 636 | ROM_END |
| 712 | 637 | |
| 713 | | ROM_START( thndzonea ) |
| 638 | ROM_START( thndzonea ) /* World set, DSW selectable 2 or 4 players */ |
| 714 | 639 | ROM_REGION(0x80000, "maincpu", 0 ) /* 68000 code */ |
| 715 | 640 | ROM_LOAD16_BYTE("gz01.a15", 0x00000, 0x20000, CRC(15e8c328) SHA1(8876b5fde77604c2fe4654271ceb341a8fa460c1) ) |
| 716 | 641 | ROM_LOAD16_BYTE("gz03.a17", 0x00001, 0x20000, CRC(aab5c86e) SHA1(c3560b15360ddf14e8444d9f70724e698b2bd42f) ) |
| r17686 | r17687 | |
| 777 | 702 | ROM_LOAD( "pal16l8b.10c", 0x0e00, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 778 | 703 | ROM_END |
| 779 | 704 | |
| 780 | | ROM_START( thndzonej ) |
| 705 | ROM_START( thndzone4 ) /* World set, 4 Player (shared credits) only English set from a Korean PCB without labels */ |
| 781 | 706 | ROM_REGION(0x80000, "maincpu", 0 ) /* 68000 code */ |
| 707 | ROM_LOAD16_BYTE("27c010.a15", 0x00000, 0x20000, CRC(30f21608) SHA1(087defd8869faf3f7f4569b98debe691a75fcec4) ) |
| 708 | ROM_LOAD16_BYTE("27c010.a17", 0x00001, 0x20000, CRC(60886a33) SHA1(5b215e460845705af4b5e0cd00f6b0ad488520bb) ) |
| 709 | ROM_LOAD16_BYTE("gt00.a14", 0x40000, 0x20000, CRC(b7277175) SHA1(ffb19c4dd12e0391f01de57c46a7998885fe22bf) ) /* Same data as GS00.A14 */ |
| 710 | ROM_LOAD16_BYTE("gt02.a16", 0x40001, 0x20000, CRC(cde31e35) SHA1(0219845308c9f46e73b0504bd2aefa2fa74f388e) ) /* Same data as GS02.A16 */ |
| 711 | |
| 712 | ROM_REGION(0x80000, "sub", 0 ) /* 68000 code (Sub cpu) */ |
| 713 | ROM_LOAD16_BYTE("d27c010.a12", 0x00000, 0x20000, CRC(99356cba) SHA1(2bc2b031bd44101e12213bb04a94d2d438f96ee0) ) |
| 714 | ROM_LOAD16_BYTE("d27c010.a9", 0x00001, 0x20000, CRC(8bf114e7) SHA1(84b1b8d8aea8788902367cae3b766bb4e6e44d5a) ) |
| 715 | ROM_LOAD16_BYTE("d27c010.a14", 0x40000, 0x20000, CRC(3d96d47e) SHA1(e2c01a17237cb6dc914da847642629415eda14a8) ) |
| 716 | ROM_LOAD16_BYTE("d27c010.a11", 0x40001, 0x20000, CRC(2ab9b63f) SHA1(2ab06abbdee6e0d9c83004cdcb871c7389624086) ) |
| 717 | |
| 718 | ROM_REGION(0x10000, "audiocpu", 0 ) /* Sound CPU */ |
| 719 | ROM_LOAD( "gu04.f18", 0x00000, 0x10000, CRC(81c29ebf) SHA1(1b241277a8e35cdeaeb120970d14a09d33032459) ) /* Same data for all regions, different label */ |
| 720 | |
| 721 | ROM_REGION(0x020000, "gfx1", 0 ) |
| 722 | ROM_LOAD16_BYTE( "27512.j10", 0x000000, 0x10000, CRC(ab22a078) SHA1(246c9ebae5c2f296652395267fa3eeb81b8b52bd) ) /* Only set with different data here! */ |
| 723 | ROM_LOAD16_BYTE( "27512.j12", 0x000001, 0x10000, CRC(34fc4428) SHA1(c912441ab8433391193b4199c2553d7909221d93) ) /* Only set with different data here! */ |
| 724 | |
| 725 | ROM_REGION(0x120000, "gfx2", 0 ) |
| 726 | ROM_LOAD( "maj-02.h14", 0x000000, 0x100000, CRC(383bbc37) SHA1(c537ab147a2770ce28ee185b08dd62d35249bfa9) ) |
| 727 | /* Other 0x20000 filled in later */ |
| 728 | |
| 729 | ROM_REGION(0x200000, "gfx3", 0 ) |
| 730 | ROM_LOAD( "maj-01.c18", 0x000000, 0x100000, CRC(9840a204) SHA1(096c351769da5184c3d9a05495370134acc9507a) ) |
| 731 | ROM_LOAD( "maj-00.c17", 0x100000, 0x100000, CRC(87ea8d16) SHA1(db47123aa2ebbb800cfc5cfcf50309bc39cadbcd) ) |
| 732 | |
| 733 | ROM_REGION( 0x400000, "gfx4", 0 ) /* sprites chip 1 */ |
| 734 | ROM_LOAD( "maj-04.r1", 0x000000, 0x80000, CRC(36e49b19) SHA1(bfbc45b635bf3d46ff8b8a514a3f352bf3a95535) ) |
| 735 | ROM_LOAD( "maj-05.r2", 0x080000, 0x80000, CRC(80fc71cc) SHA1(65b15afbe5d628051b012777d486b6ce92a3795c) ) |
| 736 | ROM_LOAD( "maj-06.r3", 0x100000, 0x80000, CRC(2e7a684b) SHA1(cffeda1a816dad30d6b1cb12458661188d625d40) ) |
| 737 | ROM_LOAD( "maj-07.r5", 0x180000, 0x80000, CRC(3acc1f78) SHA1(87ec65b4f54a66370754534d03f4c9217531b42f) ) |
| 738 | ROM_LOAD( "maj-08.s6", 0x200000, 0x80000, CRC(1958a36d) SHA1(466a30dcd2ea13028272ed2187f890ee20d6636b) ) |
| 739 | ROM_LOAD( "maj-09.s8", 0x280000, 0x80000, CRC(c21087a1) SHA1(b769c5f2f9b9c525d121902fe9557a6bfc077b99) ) |
| 740 | ROM_LOAD( "maj-10.s9", 0x300000, 0x80000, CRC(a02fa641) SHA1(14b999a441964e612700bf21945a948eaebb253e) ) |
| 741 | ROM_LOAD( "maj-11.s11", 0x380000, 0x80000, CRC(dabe9305) SHA1(44d69fe55e674de7f4c610d295d4528d4b2eb150) ) |
| 742 | |
| 743 | ROM_REGION( 0x80000, "gfx5", 0 ) /* sprites chip 2 */ |
| 744 | ROM_LOAD16_BYTE( "gt12.n1", 0x000000, 0x20000, CRC(9a86a015) SHA1(968576b8422393ab9a93d98c15428b1c11417b3d) ) |
| 745 | ROM_LOAD16_BYTE( "gt13.n2", 0x000001, 0x20000, CRC(f4709905) SHA1(697842a3d7bc2588c77833c3af8938e6f0b1238d) ) |
| 746 | ROM_LOAD16_BYTE( "gt14.n3", 0x040000, 0x20000, CRC(750fc523) SHA1(ef8794359ff3a44a97ab402821fbe205a0be8f6a) ) |
| 747 | ROM_LOAD16_BYTE( "gt15.n5", 0x040001, 0x20000, CRC(f14edd3d) SHA1(802d576df6dac2c9bf99f963f1955fc3a7ffdac0) ) |
| 748 | |
| 749 | ROM_REGION(0x40000, "oki1", 0 ) /* Oki samples */ |
| 750 | ROM_LOAD( "gs07.h15", 0x00000, 0x20000, CRC(750b7e5d) SHA1(d33b17a1d8c9b05d5c1daf0c80fed6381e04b167) ) |
| 751 | |
| 752 | ROM_REGION(0x80000, "oki2", 0 ) /* Extra Oki samples */ |
| 753 | ROM_LOAD( "maj-03.h16", 0x00000, 0x80000, CRC(31dcfac3) SHA1(88c7fc139f871991defbc8dc2c9c66b150dd6f6f) ) /* banked */ |
| 754 | |
| 755 | ROM_REGION( 0x2000, "proms", 0 ) |
| 756 | ROM_LOAD( "mb7128y.10m", 0x00000, 0x800, CRC(bde780a2) SHA1(94ea9fe6c3a421e976d077e67f564ca5c37a5e88) ) /* Priority? Unused */ |
| 757 | ROM_LOAD( "mb7128y.16p", 0x00800, 0x800, CRC(c44d2751) SHA1(7c195650689d5cbbdccba696e0e7d3dc5bb7c506) ) /* Unknown, Unused */ |
| 758 | ROM_LOAD( "mb7128y.16s", 0x01000, 0x800, CRC(c44d2751) SHA1(7c195650689d5cbbdccba696e0e7d3dc5bb7c506) ) /* Unknown, Unused */ |
| 759 | ROM_LOAD( "mb7128y.17s", 0x01800, 0x800, CRC(c44d2751) SHA1(7c195650689d5cbbdccba696e0e7d3dc5bb7c506) ) /* Unknown, Unused - Data identical for 3 proms! */ |
| 760 | |
| 761 | ROM_REGION( 0x1000, "plds", 0 ) |
| 762 | ROM_LOAD( "pal16r8a 1h", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 763 | ROM_LOAD( "pal16l8b.7c", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 764 | ROM_LOAD( "pal16l8b.7d", 0x0400, 0x0104, CRC(199e83fd) SHA1(ebb5d66f29935b0a58e79b0db30611b5dce328a6) ) /* PAL is read protected */ |
| 765 | ROM_LOAD( "pal16l8b.7e", 0x0600, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 766 | ROM_LOAD( "pal16l8b.7l", 0x0800, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 767 | ROM_LOAD( "pal16l8b.8e", 0x0a00, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 768 | ROM_LOAD( "pal16l8b.9d", 0x0c00, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 769 | ROM_LOAD( "pal16l8b.10c", 0x0e00, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 770 | ROM_END |
| 771 | |
| 772 | ROM_START( thndzonej ) /* Japan set, DSW selectable 2 or 4 players - Japanese language */ |
| 773 | ROM_REGION(0x80000, "maincpu", 0 ) /* 68000 code */ |
| 782 | 774 | ROM_LOAD16_BYTE("gu01.a15", 0x00000, 0x20000, CRC(eb28f8e8) SHA1(834f89db3ef48a71d20c0ec3a0c2231e115d7f48) ) |
| 783 | 775 | ROM_LOAD16_BYTE("gu03.a17", 0x00001, 0x20000, CRC(9ad2b431) SHA1(c2fb88b4d2df93e3f787fe49c240573e1bc2844e) ) |
| 784 | 776 | ROM_LOAD16_BYTE("gu00.a14", 0x40000, 0x20000, CRC(fca9e84f) SHA1(a0ecf99eace7357b05da8f8fe06b9bbf7d16d95a) ) |
| r17686 | r17687 | |
| 851 | 843 | ROM_LOAD( "pal16l8b.10c", 0x0e00, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 852 | 844 | ROM_END |
| 853 | 845 | |
| 854 | | ROM_START( dassault ) |
| 846 | ROM_START( dassault ) /* USA set, DSW selectable 2, 3 or 4 players */ |
| 855 | 847 | ROM_REGION(0x80000, "maincpu", 0 ) /* 68000 code */ |
| 856 | 848 | ROM_LOAD16_BYTE("01.a15", 0x00000, 0x20000, CRC(14f17ea7) SHA1(0bb8b7dba05f1ea42e68838861f0d4c263eac6b3) ) |
| 857 | 849 | ROM_LOAD16_BYTE("03.a17", 0x00001, 0x20000, CRC(bed1b90c) SHA1(c100f89b69025e2ff885b35a733abc627da98a07) ) |
| r17686 | r17687 | |
| 918 | 910 | ROM_LOAD( "pal16l8b.10c", 0x0e00, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 919 | 911 | ROM_END |
| 920 | 912 | |
| 921 | | ROM_START( dassault4 ) |
| 913 | ROM_START( dassault4 ) /* USA set, 4 player only */ |
| 922 | 914 | ROM_REGION(0x80000, "maincpu", 0 ) /* 68000 code */ |
| 923 | 915 | ROM_LOAD16_BYTE("gs01.a15", 0x00000, 0x20000, CRC(8613634d) SHA1(69b64e54fde3b5f1ee3435d7327b84e7a7d43f6d) ) |
| 924 | 916 | ROM_LOAD16_BYTE("gs03.a17", 0x00001, 0x20000, CRC(ea860bd4) SHA1(6e4e2d004433ad5842b4bc895eaa8f55bd1ee168) ) |
| r17686 | r17687 | |
| 1024 | 1016 | |
| 1025 | 1017 | /**********************************************************************************/ |
| 1026 | 1018 | |
| 1027 | | GAME( 1991, thndzone, 0, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (Rev 1, World)", GAME_SUPPORTS_SAVE ) |
| 1019 | GAME( 1991, thndzone, 0, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (World, Rev 1)", GAME_SUPPORTS_SAVE ) |
| 1028 | 1020 | GAME( 1991, thndzonea, thndzone, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (World)", GAME_SUPPORTS_SAVE ) |
| 1021 | GAME( 1991, thndzone4, thndzone, dassault, thndzone4, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (World 4 Players)", GAME_SUPPORTS_SAVE ) |
| 1029 | 1022 | GAME( 1991, thndzonej, thndzone, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (Japan)", GAME_SUPPORTS_SAVE ) |
| 1030 | 1023 | GAME( 1991, dassault, thndzone, dassault, dassault, dassault_state, dassault, ROT0, "Data East Corporation", "Desert Assault (US)", GAME_SUPPORTS_SAVE ) |
| 1031 | 1024 | GAME( 1991, dassault4, thndzone, dassault, dassault4, dassault_state, dassault, ROT0, "Data East Corporation", "Desert Assault (US 4 Players)", GAME_SUPPORTS_SAVE ) |