trunk/src/mame/drivers/inder.c
| r31911 | r31912 | |
| 13 | 13 | |
| 14 | 14 | Status: |
| 15 | 15 | - Brave Team: working |
| 16 | | - Others: still to be worked on |
| 16 | - Canasta '86: working |
| 17 | - Lap by Lap: working |
| 18 | - Moon Light: sound and switches to be fixed |
| 19 | - Clown: sound and switches to be fixed |
| 20 | - Corsario: sound and switches to be fixed |
| 21 | - Mundial 90: sound and switches to be fixed |
| 22 | - Atleta: sound and switches to be fixed |
| 23 | - 250CC: sound and switches to be fixed |
| 24 | - Metal Man: not working |
| 17 | 25 | |
| 18 | 26 | |
| 19 | 27 | ********************************************************************************************************/ |
| r31911 | r31912 | |
| 36 | 44 | , m_switches(*this, "SW") |
| 37 | 45 | { } |
| 38 | 46 | |
| 47 | DECLARE_WRITE8_MEMBER(ppi60a_w); |
| 48 | DECLARE_WRITE8_MEMBER(ppi60b_w); |
| 49 | DECLARE_WRITE8_MEMBER(ppi64c_w); |
| 39 | 50 | DECLARE_READ8_MEMBER(sw_r); |
| 40 | 51 | DECLARE_WRITE8_MEMBER(sw_w); |
| 41 | 52 | DECLARE_WRITE8_MEMBER(sol_brvteam_w); |
| r31911 | r31912 | |
| 43 | 54 | DECLARE_WRITE8_MEMBER(sn_w); |
| 44 | 55 | DECLARE_READ8_MEMBER(sndcmd_r); |
| 45 | 56 | DECLARE_WRITE8_MEMBER(sndcmd_w); |
| 57 | DECLARE_WRITE8_MEMBER(sndcmd_lapbylap_w); |
| 46 | 58 | DECLARE_WRITE8_MEMBER(lamp_w) { }; |
| 47 | 59 | DECLARE_WRITE8_MEMBER(disp_w); |
| 48 | 60 | DECLARE_DRIVER_INIT(inder); |
| 49 | 61 | private: |
| 50 | 62 | UINT8 m_row; |
| 51 | | UINT8 m_segment[5]; |
| 63 | UINT8 m_segment[8]; |
| 52 | 64 | UINT8 m_sndcmd; |
| 53 | 65 | virtual void machine_reset(); |
| 54 | 66 | required_device<cpu_device> m_maincpu; |
| r31911 | r31912 | |
| 66 | 78 | AM_RANGE(0x4900, 0x4900) AM_WRITE(sol_brvteam_w) |
| 67 | 79 | AM_RANGE(0x4901, 0x4907) AM_WRITE(lamp_w) |
| 68 | 80 | AM_RANGE(0x4b00, 0x4b00) AM_WRITE(sn_w) |
| 69 | | //AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("ppi", i8255_device, read, write) |
| 70 | 81 | ADDRESS_MAP_END |
| 71 | 82 | |
| 72 | 83 | static ADDRESS_MAP_START( canasta_map, AS_PROGRAM, 8, inder_state ) |
| r31911 | r31912 | |
| 90 | 101 | AM_RANGE(0x4800, 0x480a) AM_READWRITE(sw_r,sw_w) |
| 91 | 102 | AM_RANGE(0x4900, 0x4900) AM_WRITE(sol_canasta_w) |
| 92 | 103 | AM_RANGE(0x4901, 0x4907) AM_WRITE(lamp_w) |
| 93 | | AM_RANGE(0x4b00, 0x4b00) AM_WRITE(sndcmd_w) |
| 104 | AM_RANGE(0x4b00, 0x4b00) AM_WRITE(sndcmd_lapbylap_w) |
| 94 | 105 | ADDRESS_MAP_END |
| 95 | 106 | |
| 96 | 107 | static ADDRESS_MAP_START( lapbylap_sub_map, AS_PROGRAM, 8, inder_state ) |
| r31911 | r31912 | |
| 104 | 115 | AM_RANGE(0xa002, 0xa002) AM_DEVWRITE("ay2", ay8910_device, data_w) |
| 105 | 116 | ADDRESS_MAP_END |
| 106 | 117 | |
| 107 | | static INPUT_PORTS_START( inder ) |
| 118 | static ADDRESS_MAP_START( inder_map, AS_PROGRAM, 8, inder_state ) |
| 119 | AM_RANGE(0x0000, 0x3fff) AM_ROM |
| 120 | AM_RANGE(0x4000, 0x47ff) AM_MIRROR(0x1800) AM_RAM AM_SHARE("nvram") // 6116, battery-backed |
| 121 | AM_RANGE(0x6000, 0x6003) AM_MIRROR(0x13fc) AM_DEVREADWRITE("ppi60", i8255_device, read, write) |
| 122 | AM_RANGE(0x6400, 0x6403) AM_MIRROR(0x13fc) AM_DEVREADWRITE("ppi64", i8255_device, read, write) |
| 123 | AM_RANGE(0x6800, 0x6803) AM_MIRROR(0x13fc) AM_DEVREADWRITE("ppi68", i8255_device, read, write) |
| 124 | AM_RANGE(0x6c00, 0x6c03) AM_MIRROR(0x131c) AM_DEVREADWRITE("ppi6c", i8255_device, read, write) |
| 125 | AM_RANGE(0x6c20, 0x6c3f) AM_MIRROR(0x1300) AM_WRITE(sndcmd_w) |
| 126 | AM_RANGE(0x6c60, 0x6c7f) AM_MIRROR(0x1300) AM_WRITE(disp_w) |
| 127 | ADDRESS_MAP_END |
| 128 | |
| 129 | static ADDRESS_MAP_START( inder_sub_map, AS_PROGRAM, 8, inder_state ) |
| 130 | AM_RANGE(0x0000, 0x1fff) AM_ROM |
| 131 | AM_RANGE(0x2000, 0x27ff) AM_MIRROR(0x1800) AM_RAM // 6116 |
| 132 | AM_RANGE(0x4000, 0x4003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE("ppi", i8255_device, read, write) |
| 133 | AM_RANGE(0x6000, 0x6000) AM_WRITENOP //(sndctl_w) enable sound data roms |
| 134 | AM_RANGE(0x8000, 0x8000) AM_READ(sndcmd_r) |
| 135 | ADDRESS_MAP_END |
| 136 | |
| 137 | static INPUT_PORTS_START( brvteam ) |
| 108 | 138 | PORT_START("SW.0") |
| 109 | 139 | PORT_DIPNAME( 0x03, 0x01, "Coin Slot 1") // sw G,H |
| 110 | 140 | PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C )) // slot 2: 1 moneda 4 partidas // selection 00 is same as 01 |
| r31911 | r31912 | |
| 394 | 424 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 395 | 425 | INPUT_PORTS_END |
| 396 | 426 | |
| 427 | static INPUT_PORTS_START( inder ) |
| 428 | PORT_START("SW.0") |
| 429 | PORT_DIPNAME( 0x03, 0x03, "Coin Slot 1") // sw G,H |
| 430 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C )) // slot 2: 1 moneda 4 partidas |
| 431 | PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C )) // and 4c_3c; slot 2: 1 moneda 3 partidas |
| 432 | PORT_DIPNAME( 0x08, 0x08, "Balls") // sw E |
| 433 | PORT_DIPSETTING( 0x08, "3") |
| 434 | PORT_DIPSETTING( 0x00, "5") |
| 435 | PORT_DIPNAME( 0x30, 0x20, "Points for free game") // sw C,D |
| 436 | PORT_DIPSETTING( 0x00, "2900000") |
| 437 | PORT_DIPSETTING( 0x10, "2700000") |
| 438 | PORT_DIPSETTING( 0x20, "2500000") |
| 439 | PORT_DIPSETTING( 0x30, "2300000") |
| 440 | PORT_BIT( 0xc4, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 441 | |
| 442 | PORT_START("SW.1") |
| 443 | PORT_DIPNAME( 0x03, 0x03, "High Score") //"Handicap" // sw O,P |
| 444 | PORT_DIPSETTING( 0x00, "4600000") |
| 445 | PORT_DIPSETTING( 0x01, "4400000") |
| 446 | PORT_DIPSETTING( 0x02, "4200000") |
| 447 | PORT_DIPSETTING( 0x03, "4000000") |
| 448 | PORT_DIPNAME( 0x0c, 0x08, "Extra Ball Award??") //"Comienzo Secuenzia Diana Bola Extra" // sw M,N |
| 449 | PORT_DIPSETTING( 0x04, "50000") |
| 450 | PORT_DIPSETTING( 0x08, "25000") |
| 451 | PORT_DIPSETTING( 0x0c, "10000") |
| 452 | PORT_DIPNAME( 0x10, 0x10, "Extra Ball Derribo??") //"Bola Extra en 1st Derribo Completo" // sw L |
| 453 | PORT_DIPSETTING( 0x00, DEF_STR(No)) |
| 454 | PORT_DIPSETTING( 0x10, DEF_STR(Yes)) // "Si" |
| 455 | PORT_DIPNAME( 0x20, 0x20, "Especiales Laterales??") //need help here guys... // sw K |
| 456 | PORT_DIPSETTING( 0x00, "Derribo Lateral Dianas") |
| 457 | PORT_DIPSETTING( 0x20, "Derribo Completo Dianas Laterales") |
| 458 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 459 | |
| 460 | PORT_START("SW.2") |
| 461 | PORT_DIPNAME( 0x03, 0x03, "High Score Returns??") //"Handicap de Vueltas" // sw W,X |
| 462 | PORT_DIPSETTING( 0x00, "40") |
| 463 | PORT_DIPSETTING( 0x01, "35") |
| 464 | PORT_DIPSETTING( 0x02, "30") |
| 465 | PORT_DIPSETTING( 0x03, "25") |
| 466 | PORT_DIPNAME( 0x40, 0x40, "Bola Extra En Rampa??") //nfi // sw R |
| 467 | PORT_DIPSETTING( 0x00, "Derribo Completo") |
| 468 | PORT_DIPSETTING( 0x40, "Derribo Lateral") |
| 469 | PORT_DIPNAME( 0x80, 0x80, "Apagado??") //nfi // sw Q |
| 470 | PORT_DIPSETTING( 0x00, DEF_STR(Hard)) // "Facil" |
| 471 | PORT_DIPSETTING( 0x80, DEF_STR(Easy)) // "Dificil" |
| 472 | PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 473 | |
| 474 | PORT_START("SW.3") |
| 475 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) // "Monedero A" |
| 476 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) // "Monedero B" |
| 477 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 478 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_TILT ) // "Falta" |
| 479 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 ) // "Pulsador Partidas" |
| 480 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 481 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_NAME("Accounting info") // "Test economico" |
| 482 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_NAME("Test") // "Test tecnico" |
| 483 | |
| 484 | PORT_START("SW.4") |
| 485 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q) |
| 486 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_W) |
| 487 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E) |
| 488 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R) |
| 489 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y) |
| 490 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_U) |
| 491 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 492 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O) |
| 493 | |
| 494 | PORT_START("SW.5") |
| 495 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A) |
| 496 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S) |
| 497 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_D) |
| 498 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_F) |
| 499 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G) |
| 500 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H) |
| 501 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J) |
| 502 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K) |
| 503 | |
| 504 | PORT_START("SW.6") |
| 505 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z) |
| 506 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C) |
| 507 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V) |
| 508 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_B) |
| 509 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_N) |
| 510 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_M) |
| 511 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) |
| 512 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) |
| 513 | |
| 514 | PORT_START("SW.7") |
| 515 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L) |
| 516 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole") |
| 517 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS) |
| 518 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) |
| 519 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) |
| 520 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) |
| 521 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) |
| 522 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) |
| 523 | |
| 524 | PORT_START("SW.8") |
| 525 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 526 | |
| 527 | PORT_START("SW.9") |
| 528 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 529 | |
| 530 | PORT_START("SW.10") |
| 531 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 532 | INPUT_PORTS_END |
| 533 | |
| 397 | 534 | READ8_MEMBER( inder_state::sw_r ) |
| 398 | 535 | { |
| 399 | 536 | return m_switches[m_row]->read(); |
| r31911 | r31912 | |
| 409 | 546 | m_sn->write(space, 0, BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7)); |
| 410 | 547 | } |
| 411 | 548 | |
| 412 | | WRITE8_MEMBER( inder_state::sndcmd_w ) |
| 549 | WRITE8_MEMBER( inder_state::sndcmd_lapbylap_w ) |
| 413 | 550 | { |
| 414 | 551 | m_sndcmd = data; |
| 415 | 552 | m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 416 | 553 | } |
| 417 | 554 | |
| 555 | WRITE8_MEMBER( inder_state::sndcmd_w ) |
| 556 | { |
| 557 | m_sndcmd = data; |
| 558 | } |
| 559 | |
| 418 | 560 | READ8_MEMBER( inder_state::sndcmd_r ) |
| 419 | 561 | { |
| 420 | 562 | return m_sndcmd; |
| r31911 | r31912 | |
| 467 | 609 | WRITE8_MEMBER( inder_state::disp_w ) |
| 468 | 610 | { |
| 469 | 611 | UINT8 i; |
| 470 | | if (offset < 5) |
| 612 | if (offset < 8) |
| 471 | 613 | m_segment[offset] = data; |
| 472 | 614 | else |
| 615 | // From here, only used on old cpu board |
| 616 | if (offset > 0x40) |
| 473 | 617 | { |
| 474 | 618 | offset = (offset >> 3) & 7; |
| 475 | 619 | for (i = 0; i < 5; i++) |
| r31911 | r31912 | |
| 477 | 621 | } |
| 478 | 622 | } |
| 479 | 623 | |
| 624 | WRITE8_MEMBER(inder_state::ppi60a_w) |
| 625 | { |
| 626 | if (data) |
| 627 | for (UINT8 i = 0; i < 8; i++) |
| 628 | if BIT(data, i) |
| 629 | m_row = i; |
| 630 | } |
| 480 | 631 | |
| 632 | // always 0 but we'll support it anyway |
| 633 | WRITE8_MEMBER(inder_state::ppi60b_w) |
| 634 | { |
| 635 | if (data & 7) |
| 636 | for (UINT8 i = 0; i < 3; i++) |
| 637 | if BIT(data, i) |
| 638 | m_row = i+8; |
| 639 | } |
| 640 | |
| 641 | WRITE8_MEMBER(inder_state::ppi64c_w) |
| 642 | { |
| 643 | UINT8 i; |
| 644 | data &= 15; |
| 645 | if BIT(data, 3) // 8 to 15 |
| 646 | { |
| 647 | data ^= 15; // now 7 to 0 |
| 648 | for (i = 0; i < 5; i++) |
| 649 | output_set_digit_value(i*10+data, m_segment[i]); |
| 650 | } |
| 651 | } |
| 652 | |
| 481 | 653 | void inder_state::machine_reset() |
| 482 | 654 | { |
| 483 | 655 | m_row = 0; |
| r31911 | r31912 | |
| 487 | 659 | { |
| 488 | 660 | } |
| 489 | 661 | |
| 490 | | static MACHINE_CONFIG_START( inder, inder_state ) |
| 662 | static MACHINE_CONFIG_START( brvteam, inder_state ) |
| 491 | 663 | /* basic machine hardware */ |
| 492 | 664 | MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz / 2) |
| 493 | 665 | MCFG_CPU_PROGRAM_MAP(brvteam_map) |
| r31911 | r31912 | |
| 503 | 675 | MCFG_SPEAKER_STANDARD_MONO("snvol") |
| 504 | 676 | MCFG_SOUND_ADD("sn", SN76489, XTAL_8MHz / 2) // jumper choice of 2 or 4 MHz |
| 505 | 677 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "snvol", 2.0) |
| 506 | | |
| 507 | | /* Devices */ |
| 508 | | MCFG_DEVICE_ADD("ppi", I8255A, 0 ) |
| 509 | | //MCFG_I8255_IN_PORTA_CB(READ8(inder_state, porta_r)) |
| 510 | | //MCFG_I8255_OUT_PORTA_CB(WRITE8(inder_state, porta_w)) |
| 511 | | //MCFG_I8255_IN_PORTB_CB(READ8(inder_state, portb_r)) |
| 512 | | //MCFG_I8255_OUT_PORTB_CB(WRITE8(inder_state, portb_w)) |
| 513 | | //MCFG_I8255_IN_PORTC_CB(READ8(inder_state, portc_r)) |
| 514 | | //MCFG_I8255_OUT_PORTC_CB(WRITE8(inder_state, portc_w)) |
| 515 | 678 | MACHINE_CONFIG_END |
| 516 | 679 | |
| 517 | 680 | static MACHINE_CONFIG_START( canasta, inder_state ) |
| r31911 | r31912 | |
| 556 | 719 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "ayvol", 1.0) |
| 557 | 720 | MACHINE_CONFIG_END |
| 558 | 721 | |
| 722 | static MACHINE_CONFIG_START( inder, inder_state ) |
| 723 | /* basic machine hardware */ |
| 724 | MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz / 2) |
| 725 | MCFG_CPU_PROGRAM_MAP(inder_map) |
| 726 | MCFG_CPU_PERIODIC_INT_DRIVER(inder_state, irq0_line_hold, 250) // NE556 |
| 727 | MCFG_CPU_ADD("audiocpu", Z80, XTAL_5MHz / 2) |
| 728 | MCFG_CPU_PROGRAM_MAP(inder_sub_map) |
| 729 | MCFG_CPU_PERIODIC_INT_DRIVER(inder_state, irq0_line_hold, 250) // NE555 |
| 559 | 730 | |
| 731 | MCFG_NVRAM_ADD_1FILL("nvram") |
| 732 | |
| 733 | /* Video */ |
| 734 | MCFG_DEFAULT_LAYOUT(layout_inder) |
| 735 | |
| 736 | /* Sound */ |
| 737 | MCFG_FRAGMENT_ADD( genpin_audio ) |
| 738 | |
| 739 | /* Devices */ |
| 740 | MCFG_DEVICE_ADD("ppi60", I8255A, 0 ) |
| 741 | //MCFG_I8255_IN_PORTA_CB(READ8(inder_state, ppi60a_r)) |
| 742 | MCFG_I8255_OUT_PORTA_CB(WRITE8(inder_state, ppi60a_w)) |
| 743 | //MCFG_I8255_IN_PORTB_CB(READ8(inder_state, ppi60b_r)) |
| 744 | MCFG_I8255_OUT_PORTB_CB(WRITE8(inder_state, ppi60b_w)) |
| 745 | MCFG_I8255_IN_PORTC_CB(READ8(inder_state, sw_r)) |
| 746 | //MCFG_I8255_OUT_PORTC_CB(WRITE8(inder_state, ppi60c_w)) |
| 747 | |
| 748 | MCFG_DEVICE_ADD("ppi64", I8255A, 0 ) |
| 749 | //MCFG_I8255_IN_PORTA_CB(READ8(inder_state, ppi64a_r)) |
| 750 | //MCFG_I8255_OUT_PORTA_CB(WRITE8(inder_state, ppi64a_w)) |
| 751 | //MCFG_I8255_IN_PORTB_CB(READ8(inder_state, ppi64b_r)) |
| 752 | //MCFG_I8255_OUT_PORTB_CB(WRITE8(inder_state, ppi64b_w)) |
| 753 | //MCFG_I8255_IN_PORTC_CB(READ8(inder_state, ppi64c_r)) |
| 754 | MCFG_I8255_OUT_PORTC_CB(WRITE8(inder_state, ppi64c_w)) |
| 755 | |
| 756 | MCFG_DEVICE_ADD("ppi68", I8255A, 0 ) |
| 757 | //MCFG_I8255_IN_PORTA_CB(READ8(inder_state, ppi68a_r)) |
| 758 | //MCFG_I8255_OUT_PORTA_CB(WRITE8(inder_state, ppi68a_w)) |
| 759 | //MCFG_I8255_IN_PORTB_CB(READ8(inder_state, ppi68b_r)) |
| 760 | //MCFG_I8255_OUT_PORTB_CB(WRITE8(inder_state, ppi68b_w)) |
| 761 | //MCFG_I8255_IN_PORTC_CB(READ8(inder_state, ppi68c_r)) |
| 762 | //MCFG_I8255_OUT_PORTC_CB(WRITE8(inder_state, ppi68c_w)) |
| 763 | |
| 764 | MCFG_DEVICE_ADD("ppi6c", I8255A, 0 ) |
| 765 | //MCFG_I8255_IN_PORTA_CB(READ8(inder_state, ppi6ca_r)) |
| 766 | //MCFG_I8255_OUT_PORTA_CB(WRITE8(inder_state, ppi6ca_w)) |
| 767 | //MCFG_I8255_IN_PORTB_CB(READ8(inder_state, ppi6cb_r)) |
| 768 | //MCFG_I8255_OUT_PORTB_CB(WRITE8(inder_state, ppi6cb_w)) |
| 769 | //MCFG_I8255_IN_PORTC_CB(READ8(inder_state, ppi6cc_r)) |
| 770 | //MCFG_I8255_OUT_PORTC_CB(WRITE8(inder_state, ppi6cc_w)) |
| 771 | |
| 772 | MCFG_DEVICE_ADD("ppi", I8255A, 0 ) |
| 773 | //MCFG_I8255_IN_PORTA_CB(READ8(inder_state, ppia_r)) |
| 774 | //MCFG_I8255_OUT_PORTA_CB(WRITE8(inder_state, ppia_w)) |
| 775 | //MCFG_I8255_IN_PORTB_CB(READ8(inder_state, ppib_r)) |
| 776 | //MCFG_I8255_OUT_PORTB_CB(WRITE8(inder_state, ppib_w)) |
| 777 | //MCFG_I8255_IN_PORTC_CB(READ8(inder_state, ppic_r)) |
| 778 | //MCFG_I8255_OUT_PORTC_CB(WRITE8(inder_state, ppic_w)) |
| 779 | MACHINE_CONFIG_END |
| 780 | |
| 781 | |
| 560 | 782 | /*------------------------------------------------------------------- |
| 561 | 783 | / Brave Team (1985) |
| 562 | 784 | /-------------------------------------------------------------------*/ |
| r31911 | r31912 | |
| 588 | 810 | ROM_END |
| 589 | 811 | |
| 590 | 812 | /*------------------------------------------------------------------- |
| 591 | | / 250 CC (1992) |
| 813 | / Moon Light (1987) |
| 592 | 814 | /-------------------------------------------------------------------*/ |
| 593 | | ROM_START(ind250cc) |
| 594 | | ROM_REGION(0x10000, "maincpu", 0) |
| 595 | | ROM_LOAD("0-250cc.bin", 0x0000, 0x2000, CRC(753d82ec) SHA1(61950336ba571f9f75f2fc31ccb7beaf4e05dddc)) |
| 815 | ROM_START(pinmoonl) |
| 816 | ROM_REGION(0x4000, "maincpu", 0) |
| 817 | ROM_LOAD("ci-3.bin", 0x0000, 0x2000, CRC(56b901ae) SHA1(7269d1a100c378b21454f9f80f5bd9fbb736c222)) |
| 596 | 818 | |
| 597 | 819 | ROM_REGION(0x2000, "audiocpu", 0) |
| 598 | | ROM_LOAD("a-250cc.bin", 0x0000, 0x2000, CRC(b64bdafb) SHA1(eab6d54d34b44187d454c1999e4bcf455183d5a0)) |
| 820 | ROM_LOAD("ci-11.bin", 0x0000, 0x2000, CRC(a0732fe4) SHA1(54f62cd81bdb7e1924acb67ddbe43eb3d0a4eab0)) |
| 599 | 821 | |
| 600 | 822 | ROM_REGION(0x40000, "user1", 0) |
| 601 | | ROM_LOAD("b-250cc.bin", 0x00000, 0x10000, CRC(884c31c8) SHA1(23a838f1f0cb4905fa8552579b5452134f0fc9cc)) |
| 602 | | ROM_LOAD("c-250cc.bin", 0x10000, 0x10000, CRC(5a1dfa1d) SHA1(4957431d87be0bb6d27910b718f7b7edcd405fff)) |
| 603 | | ROM_LOAD("d-250cc.bin", 0x20000, 0x10000, CRC(a0940387) SHA1(0e06483e3e823bf4673d8e0bd120b0a6b802035d)) |
| 604 | | ROM_LOAD("e-250cc.bin", 0x30000, 0x10000, CRC(538b3274) SHA1(eb76c41a60199bb94aec4666222e405bbcc33494)) |
| 823 | ROM_LOAD("ci-24.bin", 0x00000, 0x10000, CRC(6406bd18) SHA1(ae45ed9e8b1fd278a36a68b780352dbbb6ee781e)) |
| 824 | ROM_LOAD("ci-23.bin", 0x10000, 0x10000, CRC(eac346da) SHA1(7c4c26ae089dda0dcd7300fd1ecabf5a91099c41)) |
| 825 | ROM_LOAD("ci-22.bin", 0x20000, 0x10000, CRC(379740da) SHA1(83ad13ab7f1f37c78397d8e830bd74c5a7aea758)) |
| 826 | ROM_LOAD("ci-21.bin", 0x30000, 0x10000, CRC(0febb4a7) SHA1(e6cc1b26ddfe9cd58da29de2a50a83ce50afe323)) |
| 605 | 827 | ROM_END |
| 606 | 828 | |
| 607 | 829 | /*------------------------------------------------------------------- |
| 608 | | / Atleta (1991) |
| 609 | | /-------------------------------------------------------------------*/ |
| 610 | | ROM_START(atleta) |
| 611 | | ROM_REGION(0x10000, "maincpu", 0) |
| 612 | | ROM_LOAD("atleta0.cpu", 0x0000, 0x2000, CRC(5f27240f) SHA1(8b77862fa311d703b3af8a1db17e13b17dca7ec6)) |
| 613 | | ROM_LOAD("atleta1.cpu", 0x2000, 0x2000, CRC(12bef582) SHA1(45e1da318141d9228bc91a4e09fff6bf6f194235)) |
| 614 | | |
| 615 | | ROM_REGION(0x2000, "audiocpu", 0) |
| 616 | | ROM_LOAD("atletaa.snd", 0x0000, 0x2000, CRC(051c5329) SHA1(339115af4a2e3f1f2c31073cbed1842518d5916e)) |
| 617 | | |
| 618 | | ROM_REGION(0x40000, "user1", 0) |
| 619 | | ROM_LOAD("atletab.snd", 0x00000, 0x10000, CRC(7f155828) SHA1(e459c81b2c2e47d4276344d8d6a08c2c6242f941)) |
| 620 | | ROM_LOAD("atletac.snd", 0x10000, 0x10000, CRC(20456363) SHA1(b226400dac35dedc039a7e03cb525c6033b24ebc)) |
| 621 | | ROM_LOAD("atletad.snd", 0x20000, 0x10000, CRC(6518e3a4) SHA1(6b1d852005dabb76c7c65b87ecc9ee1422f16737)) |
| 622 | | ROM_LOAD("atletae.snd", 0x30000, 0x10000, CRC(1ef7b099) SHA1(08400db3e238baf1673a2da604c999db6be30ffe)) |
| 623 | | ROM_END |
| 624 | | |
| 625 | | |
| 626 | | /*------------------------------------------------------------------- |
| 627 | 830 | / Clown (1988) |
| 628 | 831 | /-------------------------------------------------------------------*/ |
| 629 | 832 | ROM_START(pinclown) |
| 630 | | ROM_REGION(0x10000, "maincpu", 0) |
| 833 | ROM_REGION(0x4000, "maincpu", 0) |
| 631 | 834 | ROM_LOAD("clown_a.bin", 0x0000, 0x2000, CRC(b7c3f9ab) SHA1(89ede10d9e108089da501b28f53cd7849f791a00)) |
| 632 | 835 | |
| 633 | 836 | ROM_REGION(0x2000, "audiocpu", 0) |
| r31911 | r31912 | |
| 644 | 847 | / Corsario (1989) |
| 645 | 848 | /-------------------------------------------------------------------*/ |
| 646 | 849 | ROM_START(corsario) |
| 647 | | ROM_REGION(0x10000, "maincpu", 0) |
| 850 | ROM_REGION(0x4000, "maincpu", 0) |
| 648 | 851 | ROM_LOAD("0-corsar.bin", 0x0000, 0x2000, CRC(800f6895) SHA1(a222e7ea959629202686815646fc917ffc5a646c)) |
| 649 | 852 | |
| 650 | 853 | ROM_REGION(0x2000, "audiocpu", 0) |
| r31911 | r31912 | |
| 661 | 864 | / Mundial 90 (1990) |
| 662 | 865 | /-------------------------------------------------------------------*/ |
| 663 | 866 | ROM_START(mundial) |
| 664 | | ROM_REGION(0x10000, "maincpu", 0) |
| 867 | ROM_REGION(0x4000, "maincpu", 0) |
| 665 | 868 | ROM_LOAD("mundial.cpu", 0x0000, 0x2000, CRC(b615e69b) SHA1(d129eb6f2943af40ddffd0da1e7a711b58f65b3c)) |
| 666 | 869 | |
| 667 | 870 | ROM_REGION(0x2000, "audiocpu", 0) |
| r31911 | r31912 | |
| 675 | 878 | ROM_END |
| 676 | 879 | |
| 677 | 880 | /*------------------------------------------------------------------- |
| 678 | | / Moon Light (1987) |
| 881 | / Atleta (1991) |
| 679 | 882 | /-------------------------------------------------------------------*/ |
| 680 | | ROM_START(pinmoonl) |
| 681 | | ROM_REGION(0x10000, "maincpu", 0) |
| 682 | | ROM_LOAD("ci-3.bin", 0x0000, 0x2000, CRC(56b901ae) SHA1(7269d1a100c378b21454f9f80f5bd9fbb736c222)) |
| 883 | ROM_START(atleta) |
| 884 | ROM_REGION(0x4000, "maincpu", 0) |
| 885 | ROM_LOAD("atleta0.cpu", 0x0000, 0x2000, CRC(5f27240f) SHA1(8b77862fa311d703b3af8a1db17e13b17dca7ec6)) |
| 886 | ROM_LOAD("atleta1.cpu", 0x2000, 0x2000, CRC(12bef582) SHA1(45e1da318141d9228bc91a4e09fff6bf6f194235)) |
| 683 | 887 | |
| 684 | 888 | ROM_REGION(0x2000, "audiocpu", 0) |
| 685 | | ROM_LOAD("ci-11.bin", 0x0000, 0x2000, CRC(a0732fe4) SHA1(54f62cd81bdb7e1924acb67ddbe43eb3d0a4eab0)) |
| 889 | ROM_LOAD("atletaa.snd", 0x0000, 0x2000, CRC(051c5329) SHA1(339115af4a2e3f1f2c31073cbed1842518d5916e)) |
| 686 | 890 | |
| 687 | 891 | ROM_REGION(0x40000, "user1", 0) |
| 688 | | ROM_LOAD("ci-24.bin", 0x00000, 0x10000, CRC(6406bd18) SHA1(ae45ed9e8b1fd278a36a68b780352dbbb6ee781e)) |
| 689 | | ROM_LOAD("ci-23.bin", 0x10000, 0x10000, CRC(eac346da) SHA1(7c4c26ae089dda0dcd7300fd1ecabf5a91099c41)) |
| 690 | | ROM_LOAD("ci-22.bin", 0x20000, 0x10000, CRC(379740da) SHA1(83ad13ab7f1f37c78397d8e830bd74c5a7aea758)) |
| 691 | | ROM_LOAD("ci-21.bin", 0x30000, 0x10000, CRC(0febb4a7) SHA1(e6cc1b26ddfe9cd58da29de2a50a83ce50afe323)) |
| 892 | ROM_LOAD("atletab.snd", 0x00000, 0x10000, CRC(7f155828) SHA1(e459c81b2c2e47d4276344d8d6a08c2c6242f941)) |
| 893 | ROM_LOAD("atletac.snd", 0x10000, 0x10000, CRC(20456363) SHA1(b226400dac35dedc039a7e03cb525c6033b24ebc)) |
| 894 | ROM_LOAD("atletad.snd", 0x20000, 0x10000, CRC(6518e3a4) SHA1(6b1d852005dabb76c7c65b87ecc9ee1422f16737)) |
| 895 | ROM_LOAD("atletae.snd", 0x30000, 0x10000, CRC(1ef7b099) SHA1(08400db3e238baf1673a2da604c999db6be30ffe)) |
| 692 | 896 | ROM_END |
| 693 | 897 | |
| 694 | 898 | /*------------------------------------------------------------------- |
| 899 | / 250 CC (1992) |
| 900 | /-------------------------------------------------------------------*/ |
| 901 | ROM_START(ind250cc) |
| 902 | ROM_REGION(0x4000, "maincpu", 0) |
| 903 | ROM_LOAD("0-250cc.bin", 0x0000, 0x2000, CRC(753d82ec) SHA1(61950336ba571f9f75f2fc31ccb7beaf4e05dddc)) |
| 904 | |
| 905 | ROM_REGION(0x2000, "audiocpu", 0) |
| 906 | ROM_LOAD("a-250cc.bin", 0x0000, 0x2000, CRC(b64bdafb) SHA1(eab6d54d34b44187d454c1999e4bcf455183d5a0)) |
| 907 | |
| 908 | ROM_REGION(0x40000, "user1", 0) |
| 909 | ROM_LOAD("b-250cc.bin", 0x00000, 0x10000, CRC(884c31c8) SHA1(23a838f1f0cb4905fa8552579b5452134f0fc9cc)) |
| 910 | ROM_LOAD("c-250cc.bin", 0x10000, 0x10000, CRC(5a1dfa1d) SHA1(4957431d87be0bb6d27910b718f7b7edcd405fff)) |
| 911 | ROM_LOAD("d-250cc.bin", 0x20000, 0x10000, CRC(a0940387) SHA1(0e06483e3e823bf4673d8e0bd120b0a6b802035d)) |
| 912 | ROM_LOAD("e-250cc.bin", 0x30000, 0x10000, CRC(538b3274) SHA1(eb76c41a60199bb94aec4666222e405bbcc33494)) |
| 913 | ROM_END |
| 914 | |
| 915 | /*------------------------------------------------------------------- |
| 695 | 916 | / Metal Man (1992) |
| 696 | 917 | /-------------------------------------------------------------------*/ |
| 697 | 918 | ROM_START(metalman) |
| 698 | | ROM_REGION(0x10000, "maincpu", 0) |
| 699 | | ROM_LOAD("cpu_0.bin", 0x00000, 0x02000, CRC(7fe4335b) SHA1(52ef2efa29337eebd8c2c9a8aec864356a6829b6)) |
| 700 | | ROM_LOAD("cpu_1.bin", 0x02000, 0x02000, CRC(2cca735e) SHA1(6a76017dfbcac0d57fcec8f07f92d5e04dd3e00b)) |
| 919 | ROM_REGION(0x4000, "maincpu", 0) |
| 920 | ROM_LOAD("cpu_0.bin", 0x0000, 0x2000, CRC(7fe4335b) SHA1(52ef2efa29337eebd8c2c9a8aec864356a6829b6)) |
| 921 | ROM_LOAD("cpu_1.bin", 0x2000, 0x2000, CRC(2cca735e) SHA1(6a76017dfbcac0d57fcec8f07f92d5e04dd3e00b)) |
| 701 | 922 | |
| 702 | 923 | ROM_REGION(0x2000, "audiocpu", 0) |
| 703 | 924 | ROM_LOAD("sound_e1.bin", 0x0000, 0x2000, CRC(55e889e8) SHA1(0a240868c1b17762588c0ed9a14f568a6e50f409)) |
| r31911 | r31912 | |
| 713 | 934 | ROM_LOAD("sound_m3.bin", 0x40000, 0x20000, CRC(4d9f5ed2) SHA1(bc6b7c70369c25eddddac5304497f30cee7675d4)) |
| 714 | 935 | ROM_END |
| 715 | 936 | |
| 716 | | // sn76489 |
| 717 | | GAME(1985, brvteam, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Brave Team", GAME_MECHANICAL) |
| 718 | 937 | |
| 719 | | // ay8910 |
| 938 | // old cpu board, 6 digits, sn76489 |
| 939 | GAME(1985, brvteam, 0, brvteam, brvteam, inder_state, inder, ROT0, "Inder", "Brave Team", GAME_MECHANICAL) |
| 940 | |
| 941 | // old cpu board, 7 digits, ay8910 |
| 720 | 942 | GAME(1986, canasta, 0, canasta, canasta, inder_state, inder, ROT0, "Inder", "Canasta '86'", GAME_MECHANICAL) |
| 721 | 943 | |
| 722 | | // sound cpu with 2x ay8910 |
| 944 | // old cpu board, 7 digits, sound cpu with 2x ay8910 |
| 723 | 945 | GAME(1986, lapbylap, 0, lapbylap, lapbylap, inder_state, inder, ROT0, "Inder", "Lap By Lap", GAME_MECHANICAL) |
| 724 | 946 | |
| 947 | // new cpu board, sound board with msm5205 |
| 725 | 948 | GAME(1987, pinmoonl, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Moon Light (Inder)", GAME_IS_SKELETON_MECHANICAL) |
| 726 | 949 | GAME(1988, pinclown, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Clown (Inder)", GAME_IS_SKELETON_MECHANICAL) |
| 727 | 950 | GAME(1989, corsario, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Corsario", GAME_IS_SKELETON_MECHANICAL) |