trunk/src/mame/drivers/suna8.c
| r244817 | r244818 | |
| 26 | 26 | - hardhea2: in test mode press P1&P2 button 2 to see a picture of each level |
| 27 | 27 | - Rough Ranger default dipswitch settings are based on the settings listed in |
| 28 | 28 | the Sharp Image licensed Rough Ranger manaul / NOTICE sheet dated 8-5-88 |
| 29 | - starfigh video: http://youtu.be/SIwV7wjvnHM -> missing starfield effect! |
| 30 | - brickzn video: http://youtu.be/yfU1C7A3iZI (recorded from v6.0, Joystick version) |
| 29 | 31 | |
| 30 | 32 | ***************************************************************************/ |
| 31 | 33 | |
| r244817 | r244818 | |
| 197 | 199 | m_decrypt[0x256c] = 0x00; // HALT -> NOP |
| 198 | 200 | } |
| 199 | 201 | |
| 200 | | |
| 201 | 202 | DRIVER_INIT_MEMBER(suna8_state,brickzn11) |
| 202 | 203 | { |
| 203 | | UINT8 *RAM = memregion("maincpu")->base(); |
| 204 | // No encryption |
| 204 | 205 | UINT8 *decrypt = memregion("maincpu")->base(); |
| 205 | | int i; |
| 206 | 206 | |
| 207 | | for (i = 0; i < 0x8000; i++) |
| 208 | | { |
| 209 | | { |
| 210 | | decrypt[i] = RAM[i]; |
| 211 | | } |
| 212 | | } |
| 213 | | |
| 214 | | |
| 215 | | |
| 216 | 207 | // Data banks: 00-0f normal data decryption, 10-1f alternate data decryption: |
| 217 | 208 | membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000); |
| 218 | 209 | // Opcode banks: 00-1f normal opcode decryption: |
| r244817 | r244818 | |
| 674 | 665 | } |
| 675 | 666 | |
| 676 | 667 | /* |
| 677 | | C0A0: 7654 321- |
| 678 | | ---- ---0 Palette RAM Bank |
| 668 | (C060 in newer sets) |
| 669 | C040: 7654 32-- Protection (e.g. select output of multi_w, newer sets only) |
| 670 | ---- --1- Sprite RAM Bank |
| 671 | ---- ---0 Flip Screen |
| 672 | */ |
| 673 | WRITE8_MEMBER(suna8_state::brickzn_sprbank_w) |
| 674 | { |
| 675 | m_protection_val = data; |
| 679 | 676 | |
| 677 | flip_screen_set(data & 0x01); |
| 678 | m_spritebank = (data >> 1) & 1; |
| 680 | 679 | |
| 681 | | C0A0: Sound Latch (optionally scrambled) |
| 680 | logerror("CPU #0 - PC %04X: protection_val = %02X\n",space.device().safe_pc(),data); |
| 681 | // if (data & ~0x03) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",space.device().safe_pc(),data); |
| 682 | } |
| 682 | 683 | |
| 684 | /* |
| 685 | (C040 in newer sets) |
| 686 | C060: 7654 ---- |
| 687 | ---- 3210 ROM Bank |
| 688 | */ |
| 689 | WRITE8_MEMBER(suna8_state::brickzn_rombank_w) |
| 690 | { |
| 691 | int bank = data & 0x0f; |
| 683 | 692 | |
| 684 | | C0A0: 7654 3--- |
| 693 | if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",space.device().safe_pc(),data); |
| 694 | |
| 695 | membank("bank1")->set_entry(bank + (membank("bank1")->entry() & 0x10)); |
| 696 | |
| 697 | m_rombank = data; |
| 698 | } |
| 699 | |
| 700 | /* |
| 701 | (C0A0 in newer sets) |
| 702 | C080: 7654 3--- |
| 685 | 703 | ---- -2-- Coin Counter |
| 686 | 704 | ---- --1- Start 2 Led |
| 687 | 705 | ---- ---0 Start 1 Led |
| 688 | 706 | */ |
| 707 | WRITE8_MEMBER(suna8_state::brickzn_leds_w) |
| 708 | { |
| 709 | set_led_status(machine(), 0, data & 0x01); |
| 710 | set_led_status(machine(), 1, data & 0x02); |
| 711 | coin_counter_w(machine(), 0, data & 0x04); |
| 712 | |
| 713 | logerror("CPU #0 - PC %04X: leds = %02X\n",space.device().safe_pc(),data); |
| 714 | if (data & ~0x07) logerror("CPU #0 - PC %04X: unknown leds bits: %02X\n",space.device().safe_pc(),data); |
| 715 | } |
| 716 | |
| 717 | /* |
| 718 | C0A0: 7654 321- |
| 719 | ---- ---0 Palette RAM Bank |
| 720 | */ |
| 721 | WRITE8_MEMBER(suna8_state::brickzn_palbank_w) |
| 722 | { |
| 723 | m_palettebank = data & 0x01; |
| 724 | |
| 725 | logerror("CPU #0 - PC %04X: palettebank = %02X\n",space.device().safe_pc(),data); |
| 726 | if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown palettebank bits: %02X\n",space.device().safe_pc(),data); |
| 727 | } |
| 728 | |
| 729 | static ADDRESS_MAP_START( brickzn11_map, AS_PROGRAM, 8, suna8_state ) |
| 730 | AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM |
| 731 | AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM |
| 732 | |
| 733 | AM_RANGE(0xc000, 0xc000) AM_WRITE(soundlatch_byte_w ) // To Sound CPU |
| 734 | AM_RANGE(0xc040, 0xc040) AM_WRITE(brickzn_sprbank_w ) // Sprite RAM Bank + Flip Screen + Protection |
| 735 | AM_RANGE(0xc060, 0xc060) AM_WRITE(brickzn_rombank_w ) // ROM Bank |
| 736 | AM_RANGE(0xc080, 0xc080) AM_WRITE(brickzn_leds_w ) // Leds |
| 737 | AM_RANGE(0xc0a0, 0xc0a0) AM_WRITE(brickzn_palbank_w ) // Palette RAM Bank |
| 738 | // AM_RANGE(0xc0c0, 0xc0c0) AM_WRITE(brickzn_prot2_w ) // Protection 2 |
| 739 | |
| 740 | AM_RANGE(0xc100, 0xc100) AM_READ_PORT("P1") // P1 (Buttons) |
| 741 | AM_RANGE(0xc101, 0xc101) AM_READ_PORT("P2") // P2 (Buttons) |
| 742 | AM_RANGE(0xc102, 0xc102) AM_READ_PORT("DSW1") // DSW 1 |
| 743 | AM_RANGE(0xc103, 0xc103) AM_READ_PORT("DSW2") // DSW 2 |
| 744 | AM_RANGE(0xc108, 0xc108) AM_READ_PORT("SPIN1") // P1 (Spinner) |
| 745 | AM_RANGE(0xc10c, 0xc10c) AM_READ_PORT("SPIN2") // P2 (Spinner) |
| 746 | |
| 747 | AM_RANGE(0xc140, 0xc140) AM_READ(brickzn_cheats_r) // Cheats / Debugging Inputs |
| 748 | |
| 749 | AM_RANGE(0xc600, 0xc7ff) AM_READWRITE(banked_paletteram_r, brickzn_banked_paletteram_w) AM_SHARE("paletteram") // Palette (Banked) |
| 750 | AM_RANGE(0xc800, 0xdfff) AM_RAM AM_SHARE("wram") // Work RAM |
| 751 | AM_RANGE(0xe000, 0xffff) AM_READWRITE(suna8_banked_spriteram_r, suna8_banked_spriteram_w) // Sprites (Banked) |
| 752 | ADDRESS_MAP_END |
| 753 | |
| 754 | /* |
| 755 | (newer sets only) |
| 756 | |
| 757 | C0A0: Palette RAM Bank |
| 758 | |
| 759 | C0A0: Sound Latch (optionally scrambled) |
| 760 | |
| 761 | C0A0: Leds |
| 762 | */ |
| 689 | 763 | WRITE8_MEMBER(suna8_state::brickzn_multi_w) |
| 690 | 764 | { |
| 691 | 765 | int protselect = m_protection_val & 0xfc; |
| 692 | 766 | |
| 693 | 767 | if ((protselect == 0x88) || (protselect == 0x8c)) |
| 694 | 768 | { |
| 695 | | m_palettebank = data & 0x01; |
| 696 | | |
| 697 | | logerror("CPU #0 - PC %04X: palettebank = %02X\n",space.device().safe_pc(),data); |
| 698 | | if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown palettebank bits: %02X\n",space.device().safe_pc(),data); |
| 769 | brickzn_palbank_w(space, offset, data, mem_mask); |
| 699 | 770 | } |
| 700 | | else if ((m_protection_val & 0xfc) == 0x90) |
| 771 | else if (protselect == 0x90) |
| 701 | 772 | { |
| 702 | 773 | /* |
| 703 | 774 | 0d brick hit NO! 25? |
| r244817 | r244818 | |
| 716 | 787 | } |
| 717 | 788 | else if (protselect == 0x04) |
| 718 | 789 | { |
| 719 | | set_led_status(machine(), 0, data & 0x01); |
| 720 | | set_led_status(machine(), 1, data & 0x02); |
| 721 | | coin_counter_w(machine(), 0, data & 0x04); |
| 722 | | |
| 723 | | logerror("CPU #0 - PC %04X: leds = %02X\n",space.device().safe_pc(),data); |
| 724 | | if (data & ~0x07) logerror("CPU #0 - PC %04X: unknown leds bits: %02X\n",space.device().safe_pc(),data); |
| 790 | brickzn_leds_w(space, offset, data, mem_mask); |
| 725 | 791 | } |
| 726 | 792 | else if (protselect == 0x80) |
| 727 | 793 | { |
| r244817 | r244818 | |
| 752 | 818 | address_space &space = m_maincpu->space(AS_PROGRAM); |
| 753 | 819 | space.set_decrypted_region(0x0000, 0x7fff, memregion("maincpu")->base()); |
| 754 | 820 | } |
| 755 | | |
| 756 | | |
| 757 | 821 | } |
| 758 | | |
| 759 | 822 | } |
| 760 | 823 | |
| 761 | 824 | /* |
| 762 | | C060: 7654 32-- Protection (e.g. select output of multi_w) |
| 763 | | ---- --1- Sprite RAM Bank |
| 764 | | ---- ---0 Flip Screen |
| 765 | | */ |
| 766 | | WRITE8_MEMBER(suna8_state::brickzn_prot_w) |
| 767 | | { |
| 768 | | m_protection_val = data; |
| 769 | | |
| 770 | | flip_screen_set(data & 0x01); |
| 771 | | m_spritebank = (data >> 1) & 1; |
| 772 | | |
| 773 | | logerror("CPU #0 - PC %04X: protection_val = %02X\n",space.device().safe_pc(),data); |
| 774 | | // if (data & ~0x03) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",space.device().safe_pc(),data); |
| 775 | | } |
| 776 | | |
| 777 | | /* |
| 825 | (newer sets only) |
| 778 | 826 | C0C0: two protection values written in rapid succession |
| 779 | 827 | */ |
| 780 | 828 | WRITE8_MEMBER(suna8_state::brickzn_prot2_w) |
| r244817 | r244818 | |
| 796 | 844 | logerror("CPU #0 - PC %04X: unknown = %02X\n",space.device().safe_pc(),data); |
| 797 | 845 | } |
| 798 | 846 | |
| 799 | | /* |
| 800 | | C040: 7654 ---- |
| 801 | | ---- 3210 ROM Bank |
| 802 | | */ |
| 803 | | WRITE8_MEMBER(suna8_state::brickzn_rombank_w) |
| 804 | | { |
| 805 | | int bank = data & 0x0f; |
| 806 | | |
| 807 | | if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",space.device().safe_pc(),data); |
| 808 | | |
| 809 | | membank("bank1")->set_entry(bank + (membank("bank1")->entry() & 0x10)); |
| 810 | | |
| 811 | | m_rombank = data; |
| 812 | | } |
| 813 | | |
| 814 | | // Disable palette RAM writes, see code at 4990: |
| 847 | // (newer sets only) Disable palette RAM writes, see code at 4990: |
| 815 | 848 | WRITE8_MEMBER(suna8_state::brickzn_enab_palram_w) |
| 816 | 849 | { |
| 817 | 850 | m_paletteram_enab = 1; |
| r244817 | r244818 | |
| 828 | 861 | // c000 writes before reading buttons |
| 829 | 862 | // c010 writes? |
| 830 | 863 | AM_RANGE(0xc040, 0xc040) AM_WRITE(brickzn_rombank_w ) // ROM Bank |
| 831 | | AM_RANGE(0xc060, 0xc060) AM_WRITE(brickzn_prot_w ) // Sprite RAM Bank + Flip Screen + Protection |
| 864 | AM_RANGE(0xc060, 0xc060) AM_WRITE(brickzn_sprbank_w ) // Sprite RAM Bank + Flip Screen + Protection |
| 832 | 865 | // c080 writes? |
| 833 | 866 | // c090 writes? |
| 834 | 867 | AM_RANGE(0xc0a0, 0xc0a0) AM_WRITE(brickzn_multi_w ) // Palette RAM Bank / Sound Latch / ... |
| r244817 | r244818 | |
| 1462 | 1495 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 1463 | 1496 | |
| 1464 | 1497 | PORT_START("DSW1") // DSW 1 - $c102 |
| 1465 | | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3") |
| 1498 | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW-A:1,2,3") |
| 1466 | 1499 | PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) |
| 1467 | 1500 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) |
| 1468 | 1501 | PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) |
| r244817 | r244818 | |
| 1471 | 1504 | PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) |
| 1472 | 1505 | PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) |
| 1473 | 1506 | PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) |
| 1474 | | PORT_DIPNAME( 0x38, 0x18, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:4,5,6") |
| 1507 | PORT_DIPNAME( 0x38, 0x18, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW-A:4,5,6") |
| 1475 | 1508 | PORT_DIPSETTING( 0x38, DEF_STR( Easiest ) ) |
| 1476 | 1509 | PORT_DIPSETTING( 0x30, DEF_STR( Very_Easy) ) |
| 1477 | 1510 | PORT_DIPSETTING( 0x28, DEF_STR( Easy ) ) |
| r244817 | r244818 | |
| 1480 | 1513 | PORT_DIPSETTING( 0x10, DEF_STR( Harder ) ) |
| 1481 | 1514 | PORT_DIPSETTING( 0x08, DEF_STR( Very_Hard ) ) |
| 1482 | 1515 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 1483 | | PORT_SERVICE_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW1:7" ) PORT_NAME( "Service / Invulnerability" ) |
| 1484 | | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:8") |
| 1516 | PORT_SERVICE_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW-A:7" ) PORT_NAME( "Service / Invulnerability" ) |
| 1517 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW-A:8") |
| 1485 | 1518 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 1486 | 1519 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1487 | 1520 | |
| 1488 | 1521 | PORT_START("DSW2") // DSW 2 - $c103 |
| 1489 | | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1") |
| 1522 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW-B:1") |
| 1490 | 1523 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 1491 | 1524 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1492 | | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:2") |
| 1525 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW-B:2") |
| 1493 | 1526 | PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) |
| 1494 | 1527 | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 1495 | | PORT_DIPNAME( 0x04, 0x04, "Play Together" ) PORT_DIPLOCATION("SW2:3") |
| 1528 | PORT_DIPNAME( 0x04, 0x04, "Play Together" ) PORT_DIPLOCATION("SW-B:3") |
| 1496 | 1529 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 1497 | 1530 | PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) |
| 1498 | | PORT_DIPNAME( 0x38, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:4,5,6") |
| 1531 | PORT_DIPNAME( 0x38, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW-B:4,5,6") |
| 1499 | 1532 | PORT_DIPSETTING( 0x30, "10K" ) |
| 1500 | 1533 | PORT_DIPSETTING( 0x28, "30K" ) |
| 1501 | 1534 | PORT_DIPSETTING( 0x18, "50K, Every 50K" ) |
| r244817 | r244818 | |
| 1504 | 1537 | PORT_DIPSETTING( 0x08, "100K, Every 100K" ) |
| 1505 | 1538 | PORT_DIPSETTING( 0x00, "200K, Every 100K" ) |
| 1506 | 1539 | PORT_DIPSETTING( 0x38, DEF_STR( None ) ) |
| 1507 | | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:7,8") |
| 1540 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW-B:7,8") |
| 1508 | 1541 | PORT_DIPSETTING( 0x80, "2" ) |
| 1509 | 1542 | PORT_DIPSETTING( 0xc0, "3" ) |
| 1510 | 1543 | PORT_DIPSETTING( 0x40, "4" ) |
| r244817 | r244818 | |
| 1544 | 1577 | PORT_INCLUDE(brickzn) |
| 1545 | 1578 | |
| 1546 | 1579 | PORT_MODIFY("DSW2") // DSW 2 - $c103 |
| 1547 | | PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:4,5") |
| 1580 | PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW-B:4,5") |
| 1548 | 1581 | PORT_DIPSETTING( 0x18, "None" ) |
| 1549 | 1582 | PORT_DIPSETTING( 0x10, "10K" ) |
| 1550 | 1583 | PORT_DIPSETTING( 0x08, "30K" ) |
| 1551 | 1584 | PORT_DIPSETTING( 0x00, "50K" ) |
| 1552 | | PORT_DIPNAME( 0x20, 0x20, "Display" ) PORT_DIPLOCATION("SW2:6") |
| 1585 | PORT_DIPNAME( 0x20, 0x20, "Display" ) PORT_DIPLOCATION("SW-B:6") |
| 1553 | 1586 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 1554 | 1587 | PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) |
| 1555 | 1588 | INPUT_PORTS_END |
| r244817 | r244818 | |
| 1877 | 1910 | MACHINE_CONFIG_END |
| 1878 | 1911 | |
| 1879 | 1912 | |
| 1880 | | |
| 1881 | 1913 | /*************************************************************************** |
| 1882 | 1914 | Rough Ranger |
| 1883 | 1915 | ***************************************************************************/ |
| r244817 | r244818 | |
| 1943 | 1975 | MACHINE_RESET_MEMBER(suna8_state,brickzn) |
| 1944 | 1976 | { |
| 1945 | 1977 | m_protection_val = m_prot2 = m_prot2_prev = 0xff; |
| 1978 | m_paletteram_enab = 1; // for brickzn11 |
| 1946 | 1979 | m_remap_sound = 0; |
| 1947 | 1980 | membank("bank1")->set_entry(0); |
| 1948 | 1981 | } |
| 1949 | 1982 | |
| 1950 | | static MACHINE_CONFIG_START( brickzn, suna8_state ) |
| 1983 | static MACHINE_CONFIG_START( brickzn11, suna8_state ) |
| 1951 | 1984 | |
| 1952 | 1985 | /* basic machine hardware */ |
| 1953 | 1986 | MCFG_CPU_ADD("maincpu", Z80, SUNA8_MASTER_CLOCK / 4) /* SUNA PROTECTION BLOCK */ |
| 1954 | | MCFG_CPU_PROGRAM_MAP(brickzn_map) |
| 1955 | | MCFG_CPU_IO_MAP(brickzn_io_map) |
| 1987 | MCFG_CPU_PROGRAM_MAP(brickzn11_map) |
| 1956 | 1988 | MCFG_CPU_VBLANK_INT_DRIVER("screen", suna8_state, irq0_line_hold) // nmi breaks ramtest but is needed! |
| 1957 | 1989 | |
| 1958 | 1990 | MCFG_CPU_ADD("audiocpu", Z80, SUNA8_MASTER_CLOCK / 4) /* Z0840006PSC - 6MHz (measured) */ |
| r244817 | r244818 | |
| 2005 | 2037 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.17) |
| 2006 | 2038 | MACHINE_CONFIG_END |
| 2007 | 2039 | |
| 2040 | static MACHINE_CONFIG_DERIVED( brickzn, brickzn11 ) |
| 2041 | MCFG_CPU_MODIFY("maincpu") |
| 2042 | MCFG_CPU_PROGRAM_MAP(brickzn_map) |
| 2043 | MCFG_CPU_IO_MAP(brickzn_io_map) |
| 2044 | MACHINE_CONFIG_END |
| 2008 | 2045 | |
| 2046 | |
| 2009 | 2047 | /*************************************************************************** |
| 2010 | 2048 | Hard Head 2 |
| 2011 | 2049 | ***************************************************************************/ |
| r244817 | r244818 | |
| 2635 | 2673 | ROM_LOAD( "7.bin", 0x30000, 0x20000, CRC(7af5b25c) SHA1(9e98e99bdc5be1602144c83f40b2ccf6b90a729a) ) |
| 2636 | 2674 | |
| 2637 | 2675 | ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */ |
| 2638 | | ROM_LOAD( "10.bin", 0x00000, 0x10000, CRC(494adf0f) SHA1(eb28ccf0c5f38c2299f55e379ff73ba84bb793c6) ) |
| 2676 | ROM_LOAD( "10.bin", 0x00000, 0x10000, CRC(494adf0f) SHA1(eb28ccf0c5f38c2299f55e379ff73ba84bb793c6) ) // NO PROGRAM MUSIC PROGRAM V 2.4 1990.12.14 |
| 2639 | 2677 | |
| 2640 | 2678 | ROM_REGION( 0x10000, "pcm", 0 ) /* PCM Z80 Code */ |
| 2641 | 2679 | ROM_LOAD( "11.bin", 0x00000, 0x10000, CRC(6c54161a) SHA1(ea216d9f45b441acd56b9fed81a83e3bfe299fbd) ) |
| r244817 | r244818 | |
| 2904 | 2942 | GAME( 1989, sparkman, 0, sparkman, sparkman, suna8_state, sparkman, ROT0, "SunA", "Spark Man (v2.0, set 1)", 0 ) |
| 2905 | 2943 | GAME( 1989, sparkmana, sparkman, sparkman, sparkman, suna8_state, sparkman, ROT0, "SunA", "Spark Man (v2.0, set 2)", 0 ) |
| 2906 | 2944 | |
| 2907 | | GAME( 1990, starfigh, 0, starfigh, starfigh, suna8_state, starfigh, ROT90, "SunA", "Star Fighter (v1)", 0 ) |
| 2945 | GAME( 1990, starfigh, 0, starfigh, starfigh, suna8_state, starfigh, ROT90, "SunA", "Star Fighter (v1)", GAME_IMPERFECT_GRAPHICS ) |
| 2908 | 2946 | |
| 2909 | 2947 | GAME( 1991, hardhea2, 0, hardhea2, hardhea2, suna8_state, hardhea2, ROT0, "SunA", "Hard Head 2 (v2.0)", 0 ) |
| 2910 | 2948 | |
| 2911 | | // is meant to sound like this https://www.youtube.com/watch?v=yfU1C7A3iZI (recorded from v6.0, Joystick version) |
| 2912 | 2949 | GAME( 1992, brickzn, 0, brickzn, brickznv6,suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v6.0, Joystick)", 0 ) |
| 2913 | 2950 | GAME( 1992, brickznv5, brickzn, brickzn, brickzn, suna8_state, brickznv5, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", 0 ) |
| 2914 | 2951 | GAME( 1992, brickznv4, brickzn, brickzn, brickzn, suna8_state, brickznv4, ROT90, "SunA", "Brick Zone (v4.0, Spinner)", 0 ) |
| 2915 | | GAME( 1992, brickzn11, brickzn, brickzn, brickzn, suna8_state, brickzn11, ROT90, "SunA", "Brick Zone (v1.1)", GAME_NOT_WORKING ) |
| 2952 | GAME( 1992, brickzn11, brickzn, brickzn11,brickzn, suna8_state, brickzn11, ROT90, "SunA", "Brick Zone (v1.1, Spinner)", 0 ) |