trunk/src/mame/drivers/suna8.c
| r244688 | r244689 | |
| 678 | 678 | ---- ---0 Palette RAM Bank |
| 679 | 679 | |
| 680 | 680 | |
| 681 | | C0A0: Sound Latch |
| 681 | C0A0: Sound Latch (optionally scrambled) |
| 682 | 682 | |
| 683 | 683 | |
| 684 | 684 | C0A0: 7654 3--- |
| r244688 | r244689 | |
| 699 | 699 | } |
| 700 | 700 | else if ((m_protection_val & 0xfc) == 0x90) |
| 701 | 701 | { |
| 702 | | soundlatch_byte_w(space, 0, data); |
| 702 | /* |
| 703 | 0d brick hit NO! 25? |
| 704 | 2c side wall hit OK |
| 705 | 3b paddle hit OK |
| 706 | 44 death OK? |
| 707 | 53 death OK? |
| 708 | 56 coin in OK? |
| 709 | 70 monster hit NO? 58? |
| 710 | */ |
| 711 | UINT8 remap = (m_remap_sound ? BITSWAP8(data, 7,6,3,4,5,2,1,0) : data); |
| 703 | 712 | |
| 704 | | logerror("CPU #0 - PC %04X: soundlatch = %02X\n",space.device().safe_pc(),data); |
| 713 | soundlatch_byte_w(space, 0, remap); |
| 714 | |
| 715 | logerror("CPU #0 - PC %04X: soundlatch = %02X (->%02X)\n",space.device().safe_pc(),data,remap); |
| 705 | 716 | } |
| 706 | 717 | else if (protselect == 0x04) |
| 707 | 718 | { |
| r244688 | r244689 | |
| 774 | 785 | else |
| 775 | 786 | space.install_ram(0xc800, 0xdfff, m_wram); |
| 776 | 787 | |
| 788 | m_remap_sound = ((m_prot2 ^ data) == 0xf8) ? 1 : 0; |
| 789 | |
| 777 | 790 | // Select alternate data decryption, see code at 787e: |
| 778 | 791 | membank("bank1")->set_entry((membank("bank1")->entry() & 0x0f) + ((m_prot2 == (data | 0xdc)) ? 0x10 : 0)); |
| 779 | 792 | |
| r244688 | r244689 | |
| 1527 | 1540 | |
| 1528 | 1541 | INPUT_PORTS_END |
| 1529 | 1542 | |
| 1543 | static INPUT_PORTS_START( brickznv6 ) |
| 1544 | PORT_INCLUDE(brickzn) |
| 1530 | 1545 | |
| 1546 | PORT_MODIFY("DSW2") // DSW 2 - $c103 |
| 1547 | PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:4,5") |
| 1548 | PORT_DIPSETTING( 0x18, "None" ) |
| 1549 | PORT_DIPSETTING( 0x10, "10K" ) |
| 1550 | PORT_DIPSETTING( 0x08, "30K" ) |
| 1551 | PORT_DIPSETTING( 0x00, "50K" ) |
| 1552 | PORT_DIPNAME( 0x20, 0x20, "Display" ) PORT_DIPLOCATION("SW2:6") |
| 1553 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 1554 | PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) |
| 1555 | INPUT_PORTS_END |
| 1556 | |
| 1531 | 1557 | /*************************************************************************** |
| 1532 | 1558 | Hard Head 2 |
| 1533 | 1559 | ***************************************************************************/ |
| r244688 | r244689 | |
| 1917 | 1943 | MACHINE_RESET_MEMBER(suna8_state,brickzn) |
| 1918 | 1944 | { |
| 1919 | 1945 | m_protection_val = m_prot2 = m_prot2_prev = 0xff; |
| 1946 | m_remap_sound = 0; |
| 1920 | 1947 | membank("bank1")->set_entry(0); |
| 1921 | 1948 | } |
| 1922 | 1949 | |
| r244688 | r244689 | |
| 1928 | 1955 | MCFG_CPU_IO_MAP(brickzn_io_map) |
| 1929 | 1956 | MCFG_CPU_VBLANK_INT_DRIVER("screen", suna8_state, irq0_line_hold) // nmi breaks ramtest but is needed! |
| 1930 | 1957 | |
| 1931 | | MCFG_CPU_ADD("audiocpu", Z80, SUNA8_MASTER_CLOCK / 4) /* Z0840006PSC */ |
| 1958 | MCFG_CPU_ADD("audiocpu", Z80, SUNA8_MASTER_CLOCK / 8) /* Z0840006PSC - 3MHz better matches the tempo in the video */ |
| 1932 | 1959 | MCFG_CPU_PROGRAM_MAP(brickzn_sound_map) |
| 1933 | 1960 | |
| 1934 | 1961 | MCFG_CPU_ADD("pcm", Z80, SUNA8_MASTER_CLOCK / 4) /* Z0840006PSC */ |
| r244688 | r244689 | |
| 2882 | 2909 | GAME( 1991, hardhea2, 0, hardhea2, hardhea2, suna8_state, hardhea2, ROT0, "SunA", "Hard Head 2 (v2.0)", 0 ) |
| 2883 | 2910 | |
| 2884 | 2911 | // is meant to sound like this https://www.youtube.com/watch?v=yfU1C7A3iZI (recorded from v6.0, Joystick version) |
| 2885 | | GAME( 1992, brickzn, 0, brickzn, brickzn, suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v6.0, Joystick)", GAME_IMPERFECT_SOUND ) |
| 2886 | | GAME( 1992, brickznv5, brickzn, brickzn, brickzn, suna8_state, brickznv5, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", GAME_IMPERFECT_SOUND ) |
| 2887 | | GAME( 1992, brickznv4, brickzn, brickzn, brickzn, suna8_state, brickznv4, ROT90, "SunA", "Brick Zone (v4.0, Spinner)", GAME_IMPERFECT_SOUND ) |
| 2888 | | GAME( 1992, brickzn11, brickzn, brickzn, brickzn, suna8_state, brickzn11, ROT90, "SunA", "Brick Zone (v1.1)", GAME_NOT_WORKING ) |
| 2912 | GAME( 1992, brickzn, 0, brickzn, brickznv6,suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v6.0, Joystick)", 0 ) |
| 2913 | GAME( 1992, brickznv5, brickzn, brickzn, brickzn, suna8_state, brickznv5, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", 0 ) |
| 2914 | 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 ) |