Previous 199869 Revisions Next

r36194 Monday 2nd March, 2015 at 18:52:58 UTC by Angelo Salese
Duplicated machines.
[/branches/kale/src/mame/drivers]asuka.c
[/branches/kale/src/mame/includes]asuka.h
[/branches/kale/src/mame/video]asuka.c

branches/kale/src/mame/drivers/asuka.c
r244705r244706
264264   membank("bank1")->set_entry(data & 0x03);
265265}
266266
267WRITE8_MEMBER(cadash_state::sound_bankswitch_2151_w_2)
268{
269   membank("bank2")->set_entry(data & 0x03);
270}
267271
268272
269273WRITE_LINE_MEMBER(asuka_state::asuka_msm5205_vck)
r244705r244706
641645   TAITO_COINAGE_JAPAN_OLD_LOC(SWA)
642646INPUT_PORTS_END
643647
648static 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
697INPUT_PORTS_END
698
699
700
644701static INPUT_PORTS_START( cadashu )
645702   PORT_INCLUDE(cadash)
646703
r244705r244706
812869   memset(m_cval, 0, 26);
813870}
814871
872void 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
893void 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
815907void asuka_state::screen_eof_asuka(screen_device &screen, bool state)
816908{
817909   // rising edge
r244705r244706
821913   }
822914}
823915
916void 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
824925static MACHINE_CONFIG_START( bonzeadv, asuka_state )
825926
826927   /* basic machine hardware */
r244705r244706
17861887 *
17871888 *******************************/
17881889
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 )
17901891   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)
17941895   AM_RANGE(0x100000, 0x107fff) AM_RAM
17951896//   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)
18011902ADDRESS_MAP_END
1903
1904static 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)
1911ADDRESS_MAP_END
18021912 
1803static MACHINE_CONFIG_START( cadashjl, asuka_state )
18041913
1914static MACHINE_CONFIG_START( cadashjl, cadash_state )
1915
18051916   /* basic machine hardware */
18061917   MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2)   /* 68000p12 running at 16Mhz, verified on pcb  */
18071918   MCFG_CPU_PROGRAM_MAP(cadash_map)
r244705r244706
18161927
18171928   MCFG_CPU_ADD("maincpu_2", M68000, XTAL_32MHz/2)   /* 68000p12 running at 16Mhz, verified on pcb  */
18181929   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)
18201931
1932   MCFG_CPU_ADD("audiocpu_2", Z80, XTAL_8MHz/2)  /* verified on pcb */
1933   MCFG_CPU_PROGRAM_MAP(cadash_z80_map_2)
18211934
1935
18221936   MCFG_QUANTUM_TIME(attotime::from_hz(600))
18231937
1938   // done
18241939   MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
18251940   MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
18261941   MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
r244705r244706
18281943   MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
18291944   MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
18301945
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   
18311954   /* video hardware */
1955   // done
18321956   MCFG_SCREEN_ADD("screen", RASTER)
18331957   MCFG_SCREEN_REFRESH_RATE(60)
18341958   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
r244705r244706
18381962   MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
18391963   MCFG_SCREEN_PALETTE("palette")
18401964
1841   /*
18421965   MCFG_SCREEN_ADD("screen_2", RASTER)
18431966   MCFG_SCREEN_REFRESH_RATE(60)
18441967   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
18451968   MCFG_SCREEN_SIZE(40*8, 32*8)
18461969   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
18511974   
18521975   MCFG_GFXDECODE_ADD("gfxdecode", "palette", asuka)
18531976   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   
18551981   MCFG_DEVICE_ADD("pc090oj", PC090OJ, 0)
18561982   MCFG_PC090OJ_OFFSETS(0, 8)
18571983   MCFG_PC090OJ_USEBUFFER(1)
18581984   MCFG_PC090OJ_GFXDECODE("gfxdecode")
18591985   MCFG_PC090OJ_PALETTE("palette")
18601986
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
18611993   MCFG_DEVICE_ADD("tc0100scn", TC0100SCN, 0)
18621994   MCFG_TC0100SCN_GFX_REGION(1)
18631995   MCFG_TC0100SCN_TX_REGION(2)
18641996   MCFG_TC0100SCN_OFFSETS(1, 0)
18651997   MCFG_TC0100SCN_GFXDECODE("gfxdecode")
18661998   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")
18672006
18682007   MCFG_TC0110PCR_ADD("tc0110pcr")
18692008   MCFG_TC0110PCR_PALETTE("palette")
18702009
2010   MCFG_TC0110PCR_ADD("tc0110pcr_2")
2011   MCFG_TC0110PCR_PALETTE("palette_2")
2012
2013   
18712014   /* sound hardware */
1872   MCFG_SPEAKER_STANDARD_MONO("mono")
2015   // done
2016   MCFG_SPEAKER_STANDARD_STEREO("master","slave")
18732017
18742018   MCFG_YM2151_ADD("ymsnd", XTAL_8MHz/2)   /* verified on pcb */
18752019   MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
18762020   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)
18792023
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   
18802033   MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
18812034   MCFG_TC0140SYT_MASTER_CPU("maincpu")
18822035   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
18832041MACHINE_CONFIG_END
18842042
18852043
r244705r244706
19102068   ROM_LOAD( "pal20l8b-c21-12.ic47",   0x0600, 0x0144, CRC(bbc2cc97) SHA1(d4a68f28e0d3f5a3b39ecc25640bc9197ad0260b) )
19112069ROM_END
19122070
1913GAME( 1989, cadashjl,   cadash,   cadashjl,   cadashj, driver_device,  0, ROT0,   "Taito Corporation",         "Cadash (Japan, version 2, with Link)", GAME_SUPPORTS_SAVE )
2071GAME( 1989, cadashjl,   cadash,   cadashjl,   cadashjl, driver_device,  0, ROT0,   "Taito Corporation",         "Cadash (Japan, version 2, with Link)", GAME_SUPPORTS_SAVE )
branches/kale/src/mame/includes/asuka.h
r244705r244706
8888protected:
8989   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
9090};
91
92class cadash_state : public asuka_state
93{
94public:
95   cadash_state(const machine_config &mconfig, device_type type, const char *tag)
96      : asuka_state(mconfig, type, tag),
97      m_pc090oj_2(*this, "pc090oj_2"),
98      m_tc0100scn_2(*this, "tc0100scn_2"),
99      m_tc0110pcr_2(*this, "tc0110pcr_2"),
100      m_tc0220ioc_2(*this, "tc0220ioc_2"){ }
101
102   //required_device<cpu_device> m_maincpu;
103   //required_device<cpu_device> m_audiocpu;
104   //optional_device<msm5205_device> m_msm;
105   required_device<pc090oj_device> m_pc090oj_2;
106   required_device<tc0100scn_device> m_tc0100scn_2;
107   required_device<tc0110pcr_device> m_tc0110pcr_2;
108   required_device<tc0220ioc_device> m_tc0220ioc_2;
109
110   virtual void machine_start();
111   virtual void machine_reset();
112
113   DECLARE_WRITE16_MEMBER(asuka_spritectrl_w_2);
114   DECLARE_WRITE8_MEMBER(sound_bankswitch_2151_w_2);
115
116   UINT32 screen_update_cadash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
117   void screen_eof_cadash(screen_device &screen, bool state);
118
119};
120
branches/kale/src/mame/video/asuka.c
r244705r244706
1111   m_pc090oj->set_sprite_ctrl(((data & 0x3c) >> 2) | ((data & 0x1) << 15));
1212}
1313
14WRITE16_MEMBER(cadash_state::asuka_spritectrl_w_2)
15{
16   /* Bits 2-5 are color bank; in asuka games bit 0 is global priority */
17   m_pc090oj_2->set_sprite_ctrl(((data & 0x3c) >> 2) | ((data & 0x1) << 15));
18}
1419
1520/**************************************************************
1621                        SCREEN REFRESH
r244705r244706
6469   m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 0);
6570   return 0;
6671}
72
73UINT32 cadash_state::screen_update_cadash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
74{
75   UINT8 layer[3];
76
77   m_tc0100scn_2->tilemap_update();
78
79   layer[0] = m_tc0100scn_2->bottomlayer();
80   layer[1] = layer[0] ^ 1;
81   layer[2] = 2;
82
83   screen.priority().fill(0, cliprect);
84
85   /* Ensure screen blanked even when bottom layer not drawn due to disable bit */
86   bitmap.fill(0, cliprect);
87
88   m_tc0100scn_2->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
89   m_tc0100scn_2->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2);
90   m_tc0100scn_2->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4);
91
92   /* Sprites are always over both bg layers */
93   m_pc090oj_2->draw_sprites(bitmap, cliprect, screen.priority(), 0);
94   return 0;
95}
96


Previous 199869 Revisions Next


© 1997-2024 The MAME Team