branches/kale/src/mame/drivers/asuka.c
| r244705 | r244706 | |
| 264 | 264 | membank("bank1")->set_entry(data & 0x03); |
| 265 | 265 | } |
| 266 | 266 | |
| 267 | WRITE8_MEMBER(cadash_state::sound_bankswitch_2151_w_2) |
| 268 | { |
| 269 | membank("bank2")->set_entry(data & 0x03); |
| 270 | } |
| 267 | 271 | |
| 268 | 272 | |
| 269 | 273 | WRITE_LINE_MEMBER(asuka_state::asuka_msm5205_vck) |
| r244705 | r244706 | |
| 641 | 645 | TAITO_COINAGE_JAPAN_OLD_LOC(SWA) |
| 642 | 646 | INPUT_PORTS_END |
| 643 | 647 | |
| 648 | static INPUT_PORTS_START( cadashjl ) |
| 649 | PORT_INCLUDE(cadashj) |
| 650 | |
| 651 | /* 0x900000 -> 0x10317a ($317a,A5) */ |
| 652 | PORT_START("DSWA_2") |
| 653 | TAITO_MACHINE_NO_COCKTAIL_LOC(SWC) |
| 654 | TAITO_COINAGE_JAPAN_OLD_LOC(SWC) |
| 655 | |
| 656 | /* 0x900002 -> 0x10317c ($317c,A5) */ |
| 657 | PORT_START("DSWB_2") |
| 658 | TAITO_DIFFICULTY_LOC(SWD) |
| 659 | PORT_DIPNAME( 0x0c, 0x0c, "Starting Time (2)" ) PORT_DIPLOCATION("SWD:3,4") |
| 660 | PORT_DIPSETTING( 0x00, "5:00" ) |
| 661 | PORT_DIPSETTING( 0x04, "6:00" ) |
| 662 | PORT_DIPSETTING( 0x0c, "7:00" ) |
| 663 | PORT_DIPSETTING( 0x08, "8:00" ) |
| 664 | /* Round cleared Added time */ |
| 665 | /* 1 8:00 */ |
| 666 | /* 2 10:00 */ |
| 667 | /* 3 8:00 */ |
| 668 | /* 4 7:00 */ |
| 669 | /* 5 9:00 */ |
| 670 | PORT_DIPNAME( 0x30, 0x30, "Added Time (after round clear) (2)" ) PORT_DIPLOCATION("SWD:5,6") |
| 671 | PORT_DIPSETTING( 0x00, "Default - 2:00" ) |
| 672 | PORT_DIPSETTING( 0x10, "Default - 1:00" ) |
| 673 | PORT_DIPSETTING( 0x30, "Default" ) |
| 674 | PORT_DIPSETTING( 0x20, "Default + 1:00" ) |
| 675 | PORT_DIPNAME( 0xc0, 0xc0, "Communication Mode (2)" ) PORT_DIPLOCATION("SWD:7,8") |
| 676 | PORT_DIPSETTING( 0xc0, "Stand alone" ) |
| 677 | PORT_DIPSETTING( 0x80, "Master" ) |
| 678 | PORT_DIPSETTING( 0x00, "Slave" ) |
| 679 | // PORT_DIPSETTING( 0x40, "Stand alone" ) |
| 680 | |
| 681 | PORT_START("IN0_2") |
| 682 | CADASH_PLAYERS_INPUT( 3 ) |
| 683 | |
| 684 | PORT_START("IN1_2") |
| 685 | CADASH_PLAYERS_INPUT( 4 ) |
| 686 | |
| 687 | PORT_START("IN2_2") |
| 688 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) |
| 689 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN4 ) |
| 690 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START4 ) |
| 691 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START3 ) |
| 692 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 ) |
| 693 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) // IPT_TILT slave |
| 694 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 695 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 696 | |
| 697 | INPUT_PORTS_END |
| 698 | |
| 699 | |
| 700 | |
| 644 | 701 | static INPUT_PORTS_START( cadashu ) |
| 645 | 702 | PORT_INCLUDE(cadash) |
| 646 | 703 | |
| r244705 | r244706 | |
| 812 | 869 | memset(m_cval, 0, 26); |
| 813 | 870 | } |
| 814 | 871 | |
| 872 | void cadash_state::machine_start() |
| 873 | { |
| 874 | /* configure the banks */ |
| 875 | membank("bank1")->configure_entry(0, memregion("audiocpu")->base()); |
| 876 | membank("bank1")->configure_entries(1, 3, memregion("audiocpu")->base() + 0x10000, 0x04000); |
| 877 | membank("bank2")->configure_entry(0, memregion("audiocpu")->base()); |
| 878 | membank("bank2")->configure_entries(1, 3, memregion("audiocpu")->base() + 0x10000, 0x04000); |
| 879 | |
| 880 | |
| 881 | save_item(NAME(m_adpcm_pos)); |
| 882 | save_item(NAME(m_adpcm_data)); |
| 883 | |
| 884 | save_item(NAME(m_current_round)); |
| 885 | save_item(NAME(m_current_bank)); |
| 886 | save_item(NAME(m_video_ctrl)); |
| 887 | save_item(NAME(m_video_mask)); |
| 888 | save_item(NAME(m_cc_port)); |
| 889 | save_item(NAME(m_restart_status)); |
| 890 | save_item(NAME(m_cval)); |
| 891 | } |
| 892 | |
| 893 | void cadash_state::machine_reset() |
| 894 | { |
| 895 | m_adpcm_pos = 0; |
| 896 | m_adpcm_data = -1; |
| 897 | m_current_round = 0; |
| 898 | m_current_bank = 0; |
| 899 | m_video_ctrl = 0; |
| 900 | m_video_mask = 0; |
| 901 | m_cc_port = 0; |
| 902 | m_restart_status = 0; |
| 903 | |
| 904 | memset(m_cval, 0, 26); |
| 905 | } |
| 906 | |
| 815 | 907 | void asuka_state::screen_eof_asuka(screen_device &screen, bool state) |
| 816 | 908 | { |
| 817 | 909 | // rising edge |
| r244705 | r244706 | |
| 821 | 913 | } |
| 822 | 914 | } |
| 823 | 915 | |
| 916 | void cadash_state::screen_eof_cadash(screen_device &screen, bool state) |
| 917 | { |
| 918 | // rising edge |
| 919 | if (state) |
| 920 | { |
| 921 | m_pc090oj_2->eof_callback(); |
| 922 | } |
| 923 | } |
| 924 | |
| 824 | 925 | static MACHINE_CONFIG_START( bonzeadv, asuka_state ) |
| 825 | 926 | |
| 826 | 927 | /* basic machine hardware */ |
| r244705 | r244706 | |
| 1786 | 1887 | * |
| 1787 | 1888 | *******************************/ |
| 1788 | 1889 | |
| 1789 | | static ADDRESS_MAP_START( cadash_map_2, AS_PROGRAM, 16, asuka_state ) |
| 1890 | static ADDRESS_MAP_START( cadash_map_2, AS_PROGRAM, 16, cadash_state ) |
| 1790 | 1891 | AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_REGION("maincpu",0) |
| 1791 | | // AM_RANGE(0x080000, 0x080003) AM_WRITE(asuka_spritectrl_w) |
| 1792 | | // AM_RANGE(0x0c0000, 0x0c0001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, master_port_w, 0x00ff) |
| 1793 | | // AM_RANGE(0x0c0002, 0x0c0003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, master_comm_r, master_comm_w, 0x00ff) |
| 1892 | AM_RANGE(0x080000, 0x080003) AM_WRITE(asuka_spritectrl_w_2) |
| 1893 | AM_RANGE(0x0c0000, 0x0c0001) AM_READNOP AM_DEVWRITE8("tc0140syt_2", tc0140syt_device, master_port_w, 0x00ff) |
| 1894 | AM_RANGE(0x0c0002, 0x0c0003) AM_DEVREADWRITE8("tc0140syt_2", tc0140syt_device, master_comm_r, master_comm_w, 0x00ff) |
| 1794 | 1895 | AM_RANGE(0x100000, 0x107fff) AM_RAM |
| 1795 | 1896 | // AM_RANGE(0x800000, 0x800fff) AM_READWRITE(cadash_share_r,cadash_share_w) /* network ram */ |
| 1796 | | // AM_RANGE(0x900000, 0x90000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff) |
| 1797 | | // AM_RANGE(0xa00000, 0xa0000f) AM_DEVREADWRITE("tc0110pcr", tc0110pcr_device, word_r, step1_4bpg_word_w) |
| 1798 | | // AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("pc090oj", pc090oj_device, word_r, word_w) /* sprite ram */ |
| 1799 | | // AM_RANGE(0xc00000, 0xc0ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ |
| 1800 | | // AM_RANGE(0xc20000, 0xc2000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) |
| 1897 | AM_RANGE(0x900000, 0x90000f) AM_DEVREADWRITE8("tc0220ioc_2", tc0220ioc_device, read, write, 0x00ff) |
| 1898 | AM_RANGE(0xa00000, 0xa0000f) AM_DEVREADWRITE("tc0110pcr_2", tc0110pcr_device, word_r, step1_4bpg_word_w) |
| 1899 | AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("pc090oj_2", pc090oj_device, word_r, word_w) /* sprite ram */ |
| 1900 | AM_RANGE(0xc00000, 0xc0ffff) AM_DEVREADWRITE("tc0100scn_2", tc0100scn_device, word_r, word_w) /* tilemaps */ |
| 1901 | AM_RANGE(0xc20000, 0xc2000f) AM_DEVREADWRITE("tc0100scn_2", tc0100scn_device, ctrl_word_r, ctrl_word_w) |
| 1801 | 1902 | ADDRESS_MAP_END |
| 1903 | |
| 1904 | static ADDRESS_MAP_START( cadash_z80_map_2, AS_PROGRAM, 8, asuka_state ) |
| 1905 | AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("audiocpu",0) |
| 1906 | AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank2") |
| 1907 | AM_RANGE(0x8000, 0x8fff) AM_RAM |
| 1908 | AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ymsnd_2", ym2151_device, read, write) |
| 1909 | AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("tc0140syt_2", tc0140syt_device, slave_port_w) |
| 1910 | AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE("tc0140syt_2", tc0140syt_device, slave_comm_r, slave_comm_w) |
| 1911 | ADDRESS_MAP_END |
| 1802 | 1912 | |
| 1803 | | static MACHINE_CONFIG_START( cadashjl, asuka_state ) |
| 1804 | 1913 | |
| 1914 | static MACHINE_CONFIG_START( cadashjl, cadash_state ) |
| 1915 | |
| 1805 | 1916 | /* basic machine hardware */ |
| 1806 | 1917 | MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) /* 68000p12 running at 16Mhz, verified on pcb */ |
| 1807 | 1918 | MCFG_CPU_PROGRAM_MAP(cadash_map) |
| r244705 | r244706 | |
| 1816 | 1927 | |
| 1817 | 1928 | MCFG_CPU_ADD("maincpu_2", M68000, XTAL_32MHz/2) /* 68000p12 running at 16Mhz, verified on pcb */ |
| 1818 | 1929 | MCFG_CPU_PROGRAM_MAP(cadash_map_2) |
| 1819 | | //MCFG_CPU_VBLANK_INT_DRIVER("screen_2", asuka_state, irq4_line_hold) |
| 1930 | MCFG_CPU_VBLANK_INT_DRIVER("screen_2", asuka_state, irq4_line_hold) |
| 1820 | 1931 | |
| 1932 | MCFG_CPU_ADD("audiocpu_2", Z80, XTAL_8MHz/2) /* verified on pcb */ |
| 1933 | MCFG_CPU_PROGRAM_MAP(cadash_z80_map_2) |
| 1821 | 1934 | |
| 1935 | |
| 1822 | 1936 | MCFG_QUANTUM_TIME(attotime::from_hz(600)) |
| 1823 | 1937 | |
| 1938 | // done |
| 1824 | 1939 | MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0) |
| 1825 | 1940 | MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA")) |
| 1826 | 1941 | MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB")) |
| r244705 | r244706 | |
| 1828 | 1943 | MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1")) |
| 1829 | 1944 | MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2")) |
| 1830 | 1945 | |
| 1946 | MCFG_DEVICE_ADD("tc0220ioc_2", TC0220IOC, 0) |
| 1947 | MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA_2")) |
| 1948 | MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB_2")) |
| 1949 | MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0_2")) |
| 1950 | MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1_2")) |
| 1951 | MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2_2")) |
| 1952 | |
| 1953 | |
| 1831 | 1954 | /* video hardware */ |
| 1955 | // done |
| 1832 | 1956 | MCFG_SCREEN_ADD("screen", RASTER) |
| 1833 | 1957 | MCFG_SCREEN_REFRESH_RATE(60) |
| 1834 | 1958 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| r244705 | r244706 | |
| 1838 | 1962 | MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) |
| 1839 | 1963 | MCFG_SCREEN_PALETTE("palette") |
| 1840 | 1964 | |
| 1841 | | /* |
| 1842 | 1965 | MCFG_SCREEN_ADD("screen_2", RASTER) |
| 1843 | 1966 | MCFG_SCREEN_REFRESH_RATE(60) |
| 1844 | 1967 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 1845 | 1968 | MCFG_SCREEN_SIZE(40*8, 32*8) |
| 1846 | 1969 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
| 1847 | | MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_bonzeadv) |
| 1848 | | MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) |
| 1849 | | MCFG_SCREEN_PALETTE("palette") |
| 1850 | | */ |
| 1970 | MCFG_SCREEN_UPDATE_DRIVER(cadash_state, screen_update_cadash) |
| 1971 | MCFG_SCREEN_VBLANK_DRIVER(cadash_state, screen_eof_cadash) |
| 1972 | MCFG_SCREEN_PALETTE("palette_2") |
| 1973 | |
| 1851 | 1974 | |
| 1852 | 1975 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", asuka) |
| 1853 | 1976 | MCFG_PALETTE_ADD("palette", 4096) |
| 1854 | | |
| 1977 | MCFG_GFXDECODE_ADD("gfxdecode_2", "palette_2", asuka) |
| 1978 | MCFG_PALETTE_ADD("palette_2", 4096) |
| 1979 | |
| 1980 | // done |
| 1855 | 1981 | MCFG_DEVICE_ADD("pc090oj", PC090OJ, 0) |
| 1856 | 1982 | MCFG_PC090OJ_OFFSETS(0, 8) |
| 1857 | 1983 | MCFG_PC090OJ_USEBUFFER(1) |
| 1858 | 1984 | MCFG_PC090OJ_GFXDECODE("gfxdecode") |
| 1859 | 1985 | MCFG_PC090OJ_PALETTE("palette") |
| 1860 | 1986 | |
| 1987 | MCFG_DEVICE_ADD("pc090oj_2", PC090OJ, 0) |
| 1988 | MCFG_PC090OJ_OFFSETS(0, 8) |
| 1989 | MCFG_PC090OJ_USEBUFFER(1) |
| 1990 | MCFG_PC090OJ_GFXDECODE("gfxdecode_2") |
| 1991 | MCFG_PC090OJ_PALETTE("palette_2") |
| 1992 | |
| 1861 | 1993 | MCFG_DEVICE_ADD("tc0100scn", TC0100SCN, 0) |
| 1862 | 1994 | MCFG_TC0100SCN_GFX_REGION(1) |
| 1863 | 1995 | MCFG_TC0100SCN_TX_REGION(2) |
| 1864 | 1996 | MCFG_TC0100SCN_OFFSETS(1, 0) |
| 1865 | 1997 | MCFG_TC0100SCN_GFXDECODE("gfxdecode") |
| 1866 | 1998 | MCFG_TC0100SCN_PALETTE("palette") |
| 1999 | |
| 2000 | MCFG_DEVICE_ADD("tc0100scn_2", TC0100SCN, 0) |
| 2001 | MCFG_TC0100SCN_GFX_REGION(1) |
| 2002 | MCFG_TC0100SCN_TX_REGION(2) |
| 2003 | MCFG_TC0100SCN_OFFSETS(1, 0) |
| 2004 | MCFG_TC0100SCN_GFXDECODE("gfxdecode_2") |
| 2005 | MCFG_TC0100SCN_PALETTE("palette_2") |
| 1867 | 2006 | |
| 1868 | 2007 | MCFG_TC0110PCR_ADD("tc0110pcr") |
| 1869 | 2008 | MCFG_TC0110PCR_PALETTE("palette") |
| 1870 | 2009 | |
| 2010 | MCFG_TC0110PCR_ADD("tc0110pcr_2") |
| 2011 | MCFG_TC0110PCR_PALETTE("palette_2") |
| 2012 | |
| 2013 | |
| 1871 | 2014 | /* sound hardware */ |
| 1872 | | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 2015 | // done |
| 2016 | MCFG_SPEAKER_STANDARD_STEREO("master","slave") |
| 1873 | 2017 | |
| 1874 | 2018 | MCFG_YM2151_ADD("ymsnd", XTAL_8MHz/2) /* verified on pcb */ |
| 1875 | 2019 | MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) |
| 1876 | 2020 | MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(asuka_state,sound_bankswitch_2151_w)) |
| 1877 | | MCFG_SOUND_ROUTE(0, "mono", 0.50) |
| 1878 | | MCFG_SOUND_ROUTE(1, "mono", 0.50) |
| 2021 | MCFG_SOUND_ROUTE(0, "master", 0.50) |
| 2022 | MCFG_SOUND_ROUTE(1, "master", 0.50) |
| 1879 | 2023 | |
| 2024 | MCFG_YM2151_ADD("ymsnd_2", XTAL_8MHz/2) /* verified on pcb */ |
| 2025 | MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu_2", 0)) |
| 2026 | MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(cadash_state,sound_bankswitch_2151_w_2)) |
| 2027 | MCFG_SOUND_ROUTE(0, "slave", 0.50) |
| 2028 | MCFG_SOUND_ROUTE(1, "slave", 0.50) |
| 2029 | |
| 2030 | |
| 2031 | // done |
| 2032 | |
| 1880 | 2033 | MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0) |
| 1881 | 2034 | MCFG_TC0140SYT_MASTER_CPU("maincpu") |
| 1882 | 2035 | MCFG_TC0140SYT_SLAVE_CPU("audiocpu") |
| 2036 | |
| 2037 | MCFG_DEVICE_ADD("tc0140syt_2", TC0140SYT, 0) |
| 2038 | MCFG_TC0140SYT_MASTER_CPU("maincpu_2") |
| 2039 | MCFG_TC0140SYT_SLAVE_CPU("audiocpu_2") |
| 2040 | |
| 1883 | 2041 | MACHINE_CONFIG_END |
| 1884 | 2042 | |
| 1885 | 2043 | |
| r244705 | r244706 | |
| 1910 | 2068 | ROM_LOAD( "pal20l8b-c21-12.ic47", 0x0600, 0x0144, CRC(bbc2cc97) SHA1(d4a68f28e0d3f5a3b39ecc25640bc9197ad0260b) ) |
| 1911 | 2069 | ROM_END |
| 1912 | 2070 | |
| 1913 | | GAME( 1989, cadashjl, cadash, cadashjl, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, version 2, with Link)", GAME_SUPPORTS_SAVE ) |
| 2071 | GAME( 1989, cadashjl, cadash, cadashjl, cadashjl, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, version 2, with Link)", GAME_SUPPORTS_SAVE ) |