diff options
Diffstat (limited to 'src/mame/drivers/fastinvaders.cpp')
-rw-r--r-- | src/mame/drivers/fastinvaders.cpp | 271 |
1 files changed, 134 insertions, 137 deletions
diff --git a/src/mame/drivers/fastinvaders.cpp b/src/mame/drivers/fastinvaders.cpp index 875736b1aee..fad9c9eaf95 100644 --- a/src/mame/drivers/fastinvaders.cpp +++ b/src/mame/drivers/fastinvaders.cpp @@ -36,7 +36,7 @@ public: required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; required_shared_ptr<UINT8> m_videoram; - + optional_device<i8275_device> m_crtc8275; optional_device<mc6845_device> m_crtc6845; required_device<pic8259_device> m_pic8259; @@ -52,7 +52,7 @@ public: UINT8 m_scudi; UINT8 m_cannone; UINT8 m_riga_inf; - + UINT8 m_irq0; UINT8 m_irq1; UINT8 m_irq2; @@ -61,15 +61,15 @@ public: UINT8 m_irq5; UINT8 m_irq6; UINT8 m_irq7; - - + + UINT8 m_start2_value; UINT8 m_dma1; UINT8 m_io_40; UINT8 m_hsync; - + DECLARE_WRITE8_MEMBER(io_40_w); - + DECLARE_READ8_MEMBER(io_60_r); DECLARE_WRITE8_MEMBER(io_70_w); DECLARE_WRITE8_MEMBER(io_90_w); @@ -79,23 +79,23 @@ public: DECLARE_WRITE8_MEMBER(io_d0_w); DECLARE_WRITE8_MEMBER(io_e0_w); DECLARE_WRITE8_MEMBER(io_f0_w); - - - DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); - DECLARE_INPUT_CHANGED_MEMBER(start); - DECLARE_INPUT_CHANGED_MEMBER(start2); - DECLARE_INPUT_CHANGED_MEMBER(tilt); - DECLARE_INPUT_CHANGED_MEMBER(in0); - DECLARE_INPUT_CHANGED_MEMBER(in1); - DECLARE_INPUT_CHANGED_MEMBER(in2); - DECLARE_INPUT_CHANGED_MEMBER(in3); - DECLARE_INPUT_CHANGED_MEMBER(in4); - DECLARE_INPUT_CHANGED_MEMBER(in5); - DECLARE_INPUT_CHANGED_MEMBER(in6); - + + + DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + DECLARE_INPUT_CHANGED_MEMBER(start); + DECLARE_INPUT_CHANGED_MEMBER(start2); + DECLARE_INPUT_CHANGED_MEMBER(tilt); + DECLARE_INPUT_CHANGED_MEMBER(in0); + DECLARE_INPUT_CHANGED_MEMBER(in1); + DECLARE_INPUT_CHANGED_MEMBER(in2); + DECLARE_INPUT_CHANGED_MEMBER(in3); + DECLARE_INPUT_CHANGED_MEMBER(in4); + DECLARE_INPUT_CHANGED_MEMBER(in5); + DECLARE_INPUT_CHANGED_MEMBER(in6); + DECLARE_READ_LINE_MEMBER(sid_read); - + virtual void video_start() override; TIMER_DEVICE_CALLBACK_MEMBER(scanline_timer); @@ -107,41 +107,40 @@ public: DECLARE_WRITE8_MEMBER(dark_1_clr); DECLARE_WRITE8_MEMBER(dark_2_clr); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - + + DECLARE_DRIVER_INIT(fi6845); - + }; TIMER_DEVICE_CALLBACK_MEMBER(fastinvaders_state::scanline_timer) { -/* int scanline = param; +/* int scanline = param; - if(scanline == 16){ - //logerror("scanline\n"); - m_dma8257->dreq1_w(0x01); - m_dma8257->hlda_w(1); - } - */ + if(scanline == 16){ + //logerror("scanline\n"); + m_dma8257->dreq1_w(0x01); + m_dma8257->hlda_w(1); + } + */ } TIMER_DEVICE_CALLBACK_MEMBER(fastinvaders_state::count_ar) { if (m_ar<255){ - m_riga_sup= ((m_prom[m_ar]&0x08)>>3)&0x01; - m_scudi= ((m_prom[m_ar]&0x04)>>2)&0x01; - m_cannone= ((m_prom[m_ar]&0x02)>>1)&0x01; + m_scudi= ((m_prom[m_ar]&0x04)>>2)&0x01; + m_cannone= ((m_prom[m_ar]&0x02)>>1)&0x01; m_riga_inf= ((m_prom[m_ar]&0x01))&0x01; //logerror("m_ar = %02X m_riga_sup %02X, m_scudi %02X, m_cannone %02X, m_riga_inf %02X\n",m_ar,m_riga_sup,m_scudi,m_cannone,m_riga_inf); - + if(m_riga_sup==0x01){ if(((m_prom[m_ar-1]&0x08)>>3)==0x01){ - //logerror(" DMA1 \n"); + //logerror(" DMA1 \n"); //logerror("m_prom[m_ar]=%d m_prom[m_ar-1]= %d ar = %d r_s %d, sc %d, ca %d, ri %d\n",m_prom[m_ar],m_prom[m_ar-1],m_ar,m_riga_sup,m_scudi,m_cannone,m_riga_inf); m_dma8257->dreq1_w(0x01); m_dma8257->hlda_w(1); @@ -151,20 +150,20 @@ TIMER_DEVICE_CALLBACK_MEMBER(fastinvaders_state::count_ar) } m_ar++; } - + if (m_av<255){ m_av++; //logerror("m_av=%02X\n",m_av); if (m_av == m_io_40){ if (m_hsync==1){ - logerror(" DMA2 \n"); + logerror(" DMA2 \n"); m_dma8257->dreq2_w(0x01); m_dma8257->hlda_w(1); //m_pic8259->ir3_w(HOLD_LINE); } - + } - } + } } WRITE8_MEMBER(fastinvaders_state::dark_1_clr) @@ -176,7 +175,7 @@ WRITE8_MEMBER(fastinvaders_state::dark_1_clr) if(!data){ m_dma1=0; } - + //logerror("dma 1 clr\n"); //m_maincpu->set_input_line(I8085_RST75_LINE, ASSERT_LINE); //m_maincpu->set_input_line(I8085_RST75_LINE, CLEAR_LINE); @@ -190,10 +189,10 @@ WRITE8_MEMBER(fastinvaders_state::dark_2_clr) if(data){ m_dma8257->dreq2_w(0x00); } -/* if(!data){ - m_dma1=0; - } - */ +/* if(!data){ + m_dma1=0; + } + */ } /*************************************************************************** @@ -231,7 +230,7 @@ UINT32 fastinvaders_state::screen_update(screen_device &screen, bitmap_ind16 &bi ); count++; - + } } @@ -256,8 +255,8 @@ READ8_MEMBER(fastinvaders_state::io_60_r) { UINT8 tmp=0; //0x60 ds6 input bit 0 DX or SX - // bit 1 DX or SX -// bit 2-7 dip switch + // bit 1 DX or SX +// bit 2-7 dip switch tmp=ioport("IN1")->read()&0x03; tmp=tmp | (ioport("DSW1")->read()&0xfc); @@ -269,15 +268,15 @@ READ8_MEMBER(fastinvaders_state::io_60_r) WRITE8_MEMBER(fastinvaders_state::io_70_w) { -//bit 0 rest55 clear +//bit 0 rest55 clear //bit 1 rest65 clear //bit 2 trap clear -//bit 3 coin counter +//bit 3 coin counter //bit 4 irq0 clear -//bit 5 8085 reset -//bit 6 TODO -//bit 7 both used TODO +//bit 5 8085 reset +//bit 6 TODO +//bit 7 both used TODO //IRQ clear if (data&0x01){ @@ -285,32 +284,31 @@ WRITE8_MEMBER(fastinvaders_state::io_70_w) m_maincpu->set_input_line(I8085_RST55_LINE, CLEAR_LINE); } if (data&0x02){ - if (m_rest65){ //logerror("clear"); m_rest65=0; m_maincpu->set_input_line(I8085_RST65_LINE, CLEAR_LINE); } - } + } if (data&0x04){ m_trap=0; m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); - } + } if (data&0x10){ m_irq0=0; m_pic8259->ir0_w(CLEAR_LINE); - } + } //self reset if (data&0x20){ logerror("RESET!!!!!\n"); - } + } + - //coin counter -// if (data&0x08){ -// coin_counter_w(machine(), offset,0x01); -// } +// if (data&0x08){ +// coin_counter_w(machine(), offset,0x01); +// } } @@ -355,7 +353,7 @@ READ_LINE_MEMBER(fastinvaders_state::sid_read) { UINT8 tmp= m_start2_value ? ASSERT_LINE : CLEAR_LINE; m_start2_value=0; - return tmp; + return tmp; } INPUT_CHANGED_MEMBER(fastinvaders_state::tilt) @@ -420,7 +418,7 @@ INPUT_CHANGED_MEMBER(fastinvaders_state::in3) INPUT_CHANGED_MEMBER(fastinvaders_state::in4) { m_irq4=1; - if (newval) + if (newval) m_pic8259->ir4_w(HOLD_LINE); } @@ -434,7 +432,7 @@ INPUT_CHANGED_MEMBER(fastinvaders_state::in5) INPUT_CHANGED_MEMBER(fastinvaders_state::in6) { m_irq6=1; - if (newval) + if (newval) m_pic8259->ir6_w(HOLD_LINE); } @@ -447,7 +445,7 @@ DECLARE_WRITE_LINE_MEMBER( fastinvaders_state::vsync) if (!state){ m_dma8257->dreq0_w(0x01); m_dma8257->hlda_w(1); - + m_maincpu->set_input_line(I8085_RST75_LINE, ASSERT_LINE); m_maincpu->set_input_line(I8085_RST75_LINE, CLEAR_LINE); //machine().scheduler().abort_timeslice(); // transfer occurs immediately @@ -456,8 +454,7 @@ DECLARE_WRITE_LINE_MEMBER( fastinvaders_state::vsync) } if (state){ - - } + } } DECLARE_WRITE_LINE_MEMBER( fastinvaders_state::hsync) @@ -470,7 +467,7 @@ DECLARE_WRITE_LINE_MEMBER( fastinvaders_state::hsync) if (state){ m_hsync=1; - } + } } @@ -503,8 +500,8 @@ logerror("dma write\n"); ***************************************************************************/ static ADDRESS_MAP_START( fastinvaders_map, AS_PROGRAM, 8, fastinvaders_state ) - //AM_RANGE(0x0000, 0x1fff) AM_ROM AM_MIRROR(0x8000) - AM_RANGE(0x0000, 0x27ff) AM_ROM AM_MIRROR(0x8000) + //AM_RANGE(0x0000, 0x1fff) AM_ROM AM_MIRROR(0x8000) + AM_RANGE(0x0000, 0x27ff) AM_ROM AM_MIRROR(0x8000) AM_RANGE(0x2800, 0x2fff) AM_RAM AM_MIRROR(0x8000) AM_SHARE("videoram") AM_RANGE(0x3000, 0x33ff) AM_RAM AM_MIRROR(0x8000) ADDRESS_MAP_END @@ -517,41 +514,41 @@ static ADDRESS_MAP_START( fastinvaders_6845_io, AS_IO, 8, fastinvaders_state ) AM_RANGE(0x20, 0x20) AM_DEVWRITE("6845", mc6845_device, address_w) AM_RANGE(0x21, 0x21) AM_DEVREADWRITE("6845", mc6845_device, register_r, register_w) AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("pic8259", pic8259_device, read, write) - AM_RANGE(0x40, 0x4f) AM_WRITE(io_40_w) //ds4 //latch - //AM_RANGE(0x50, 0x50) AM_READ(io_50_r) //ds5 //latch + AM_RANGE(0x40, 0x4f) AM_WRITE(io_40_w) //ds4 //latch + //AM_RANGE(0x50, 0x50) AM_READ(io_50_r) //ds5 //latch AM_RANGE(0x60, 0x60) AM_READ(io_60_r) - AM_RANGE(0x70, 0x70) AM_WRITE(io_70_w) //ds7 rest55,rest65,trap, irq0 clear - AM_RANGE(0x80, 0x80) AM_NOP //ds8 write here a LOT ????? - AM_RANGE(0x90, 0x90) AM_WRITE(io_90_w) //ds9 sound command - AM_RANGE(0xa0, 0xa0) AM_WRITE(io_a0_w) //ds10 irq1 clear - AM_RANGE(0xb0, 0xb0) AM_WRITE(io_b0_w) //ds11 irq2 clear - AM_RANGE(0xc0, 0xc0) AM_WRITE(io_c0_w) //ds12 irq3 clear - AM_RANGE(0xd0, 0xd0) AM_WRITE(io_d0_w) //ds13 irq5 clear - AM_RANGE(0xe0, 0xe0) AM_WRITE(io_e0_w) //ds14 irq4 clear - AM_RANGE(0xf0, 0xf0) AM_WRITE(io_f0_w) //ds15 irq6 clear - + AM_RANGE(0x70, 0x70) AM_WRITE(io_70_w) //ds7 rest55,rest65,trap, irq0 clear + AM_RANGE(0x80, 0x80) AM_NOP //ds8 write here a LOT ????? + AM_RANGE(0x90, 0x90) AM_WRITE(io_90_w) //ds9 sound command + AM_RANGE(0xa0, 0xa0) AM_WRITE(io_a0_w) //ds10 irq1 clear + AM_RANGE(0xb0, 0xb0) AM_WRITE(io_b0_w) //ds11 irq2 clear + AM_RANGE(0xc0, 0xc0) AM_WRITE(io_c0_w) //ds12 irq3 clear + AM_RANGE(0xd0, 0xd0) AM_WRITE(io_d0_w) //ds13 irq5 clear + AM_RANGE(0xe0, 0xe0) AM_WRITE(io_e0_w) //ds14 irq4 clear + AM_RANGE(0xf0, 0xf0) AM_WRITE(io_f0_w) //ds15 irq6 clear + AM_IMPORT_FROM(fastinvaders_io_base) ADDRESS_MAP_END static ADDRESS_MAP_START( fastinvaders_8275_io, AS_IO, 8, fastinvaders_state ) - AM_RANGE( 0x20, 0x21 ) AM_DEVREADWRITE("8275", i8275_device, read, write) - -AM_RANGE(0x10, 0x1f) AM_DEVREADWRITE("dma8257", i8257_device, read, write) + AM_RANGE( 0x20, 0x21 ) AM_DEVREADWRITE("8275", i8275_device, read, write) + +AM_RANGE(0x10, 0x1f) AM_DEVREADWRITE("dma8257", i8257_device, read, write) AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("pic8259", pic8259_device, read, write) - AM_RANGE(0x40, 0x4f) AM_WRITE(io_40_w) //ds4 //latch - //AM_RANGE(0x50, 0x50) AM_READ(io_50_r) //ds5 //latch + AM_RANGE(0x40, 0x4f) AM_WRITE(io_40_w) //ds4 //latch + //AM_RANGE(0x50, 0x50) AM_READ(io_50_r) //ds5 //latch AM_RANGE(0x60, 0x60) AM_READ(io_60_r) - AM_RANGE(0x70, 0x70) AM_WRITE(io_70_w) //ds7 rest55,rest65,trap, irq0 clear - AM_RANGE(0x80, 0x80) AM_NOP //write here a LOT - //AM_RANGE(0x80, 0x80) AM_WRITE(io_80_w) //ds8 ???? - AM_RANGE(0x90, 0x90) AM_WRITE(io_90_w) //ds9 sound command - AM_RANGE(0xa0, 0xa0) AM_WRITE(io_a0_w) //ds10 irq1 clear - AM_RANGE(0xb0, 0xb0) AM_WRITE(io_b0_w) //ds11 irq2 clear - AM_RANGE(0xc0, 0xc0) AM_WRITE(io_c0_w) //ds12 irq3 clear - AM_RANGE(0xd0, 0xd0) AM_WRITE(io_d0_w) //ds13 irq5 clear - AM_RANGE(0xe0, 0xe0) AM_WRITE(io_e0_w) //ds14 irq4 clear - AM_RANGE(0xf0, 0xf0) AM_WRITE(io_f0_w) //ds15 irq6 clear + AM_RANGE(0x70, 0x70) AM_WRITE(io_70_w) //ds7 rest55,rest65,trap, irq0 clear + AM_RANGE(0x80, 0x80) AM_NOP //write here a LOT + //AM_RANGE(0x80, 0x80) AM_WRITE(io_80_w) //ds8 ???? + AM_RANGE(0x90, 0x90) AM_WRITE(io_90_w) //ds9 sound command + AM_RANGE(0xa0, 0xa0) AM_WRITE(io_a0_w) //ds10 irq1 clear + AM_RANGE(0xb0, 0xb0) AM_WRITE(io_b0_w) //ds11 irq2 clear + AM_RANGE(0xc0, 0xc0) AM_WRITE(io_c0_w) //ds12 irq3 clear + AM_RANGE(0xd0, 0xd0) AM_WRITE(io_d0_w) //ds13 irq5 clear + AM_RANGE(0xe0, 0xe0) AM_WRITE(io_e0_w) //ds14 irq4 clear + AM_RANGE(0xf0, 0xf0) AM_WRITE(io_f0_w) //ds15 irq6 clear AM_IMPORT_FROM(fastinvaders_io_base) ADDRESS_MAP_END @@ -565,30 +562,30 @@ ADDRESS_MAP_END static INPUT_PORTS_START( fastinvaders ) -PORT_START("COIN") /* FAKE async input */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state, coin_inserted, 0) //I8085_RST65_LINE - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state, start, 0) //I8085_RST55_LINE - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state, start2, 0) //I8085_RST55_LINE - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state,in0, 0) // int0, sparo - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state,tilt, 0) //INPUT_LINE_NMI tilt - +PORT_START("COIN") /* FAKE async input */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state, coin_inserted, 0) //I8085_RST65_LINE + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state, start, 0) //I8085_RST55_LINE + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state, start2, 0) //I8085_RST55_LINE + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state,in0, 0) // int0, sparo + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state,tilt, 0) //INPUT_LINE_NMI tilt + PORT_START("IN0") - + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) PORT_NAME("1") PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state,in1, 0) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_NAME("2") PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state,in2, 0) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) PORT_NAME("3") PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state,in3, 0) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) PORT_NAME("4") PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state,in4, 0) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) PORT_NAME("5") PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state,in5, 0) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_NAME("6") PORT_CHANGED_MEMBER(DEVICE_SELF, fastinvaders_state,in6, 0) - - - PORT_START("IN1") //0x60 io port + + + PORT_START("IN1") //0x60 io port PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - - PORT_START("DSW1") //0x60 io port + + PORT_START("DSW1") //0x60 io port PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -598,16 +595,16 @@ PORT_START("COIN") /* FAKE async input */ PORT_DIPNAME( 0xf0, 0x80, "Ships/lives number" ) PORT_DIPSETTING( 0x10, "1 Ship" ) PORT_DIPSETTING( 0x20, "2 Ships" ) - PORT_DIPSETTING( 0x30, "3 Ships" ) + PORT_DIPSETTING( 0x30, "3 Ships" ) PORT_DIPSETTING( 0x40, "4 Ships" ) - PORT_DIPSETTING( 0x50, "5 Ships" ) - PORT_DIPSETTING( 0x60, "6 Ships" ) - PORT_DIPSETTING( 0x70, "7 Ships" ) - PORT_DIPSETTING( 0x80, "8 Ships" ) - PORT_DIPSETTING( 0x90, "9 Ships" ) - - - + PORT_DIPSETTING( 0x50, "5 Ships" ) + PORT_DIPSETTING( 0x60, "6 Ships" ) + PORT_DIPSETTING( 0x70, "7 Ships" ) + PORT_DIPSETTING( 0x80, "8 Ships" ) + PORT_DIPSETTING( 0x90, "9 Ships" ) + + + INPUT_PORTS_END @@ -637,12 +634,12 @@ static MACHINE_CONFIG_START( fastinvaders, fastinvaders_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", I8085A, 6144100/2 ) // 6144100 Xtal /2 internaly MCFG_CPU_PROGRAM_MAP(fastinvaders_map) -// MCFG_CPU_IO_MAP(fastinvaders_io_map) -// MCFG_CPU_VBLANK_INT_DRIVER("screen", fastinvaders_state, irq0_line_hold) - MCFG_I8085A_SID(READLINE(fastinvaders_state, sid_read)) +// MCFG_CPU_IO_MAP(fastinvaders_io_map) +// MCFG_CPU_VBLANK_INT_DRIVER("screen", fastinvaders_state, irq0_line_hold) + MCFG_I8085A_SID(READLINE(fastinvaders_state, sid_read)) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", fastinvaders_state, scanline_timer, "screen", 0, 1) - + MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL) MCFG_DEVICE_ADD("dma8257", I8257, 6144100) @@ -650,16 +647,16 @@ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", fastinvaders_state, scanline_timer, MCFG_I8257_OUT_MEMW_CB(WRITE8(fastinvaders_state, memory_write_byte)) MCFG_I8257_OUT_DACK_1_CB(WRITE8(fastinvaders_state, dark_1_clr)) MCFG_I8257_OUT_DACK_2_CB(WRITE8(fastinvaders_state, dark_2_clr)) - - + + MCFG_TIMER_DRIVER_ADD_PERIODIC("count_ar", fastinvaders_state, count_ar, attotime::from_hz(11500000/2)) - + /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(64*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0*16, 40*16-1, 0*14, 19*14-1) + MCFG_SCREEN_SIZE(64*16, 32*16) + MCFG_SCREEN_VISIBLE_AREA(0*16, 40*16-1, 0*14, 19*14-1) MCFG_SCREEN_UPDATE_DRIVER(fastinvaders_state, screen_update) MCFG_SCREEN_PALETTE("palette") @@ -673,11 +670,11 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( fastinvaders_8275, fastinvaders ) MCFG_CPU_MODIFY("maincpu" ) // guess MCFG_CPU_IO_MAP(fastinvaders_8275_io) - + MCFG_DEVICE_ADD("8275", I8275, 10000000 ) /* guess */ // does not configure a very useful resolution(!) MCFG_I8275_CHARACTER_WIDTH(16) -// MCFG_I8275_DRAW_CHARACTER_CALLBACK_OWNER(apogee_state, display_pixels) -// MCFG_I8275_DRQ_CALLBACK(DEVWRITELINE("dma8257",i8257_device, dreq2_w)) +// MCFG_I8275_DRAW_CHARACTER_CALLBACK_OWNER(apogee_state, display_pixels) +// MCFG_I8275_DRQ_CALLBACK(DEVWRITELINE("dma8257",i8257_device, dreq2_w)) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( fastinvaders_6845, fastinvaders ) @@ -736,7 +733,7 @@ ROM_START( fi8275 ) ROM_LOAD( "R2.2A", 0x2400, 0x0200, CRC(f446ef0d) SHA1(2be337c1197d14e5ffc33ea05b5262f1ea17d442) ) ROM_LOAD( "R2.2B", 0x2600, 0x0200, CRC(b97e35a3) SHA1(0878a83c7f9f0645749fdfb1ff372d0e04833c9e) ) - + ROM_REGION( 0x0c00, "gfx1", 0 ) ROM_LOAD( "C2.1F", 0x0000, 0x0200, CRC(9feca88a) SHA1(14a8c46eb51eed01b7b537a9931cd092cec2019f) ) ROM_LOAD( "C2.1G", 0x0200, 0x0200, CRC(79fc3963) SHA1(25651d1031895a01a2a4751b355ff1200a899ac5) ) @@ -744,7 +741,7 @@ ROM_START( fi8275 ) ROM_LOAD( "C2.2F", 0x0600, 0x0200, CRC(3bb16f55) SHA1(b1cc1e2346acd0e5c84861b414b4677871079844) ) ROM_LOAD( "C2.2G", 0x0800, 0x0200, CRC(19828c47) SHA1(f215ce55be32b3564e1b7cc19500d38a93117051) ) ROM_LOAD( "C2.2H", 0x0a00, 0x0200, CRC(284ae4eb) SHA1(6e28fcd9d481d37f47728f22f6048b29266f4346) ) - + ROM_REGION( 0x0100, "prom", 0 ) ROM_LOAD( "93427.bin", 0x0000, 0x0100, CRC(f59c8573) SHA1(5aed4866abe1690fd0f088af1cfd99b3c85afe9a) ) ROM_END @@ -774,11 +771,11 @@ ROM_START( fi6845 ) ROM_LOAD( "C1.1A", 0x0600, 0x0200, CRC(3bb16f55) SHA1(b1cc1e2346acd0e5c84861b414b4677871079844) ) ROM_LOAD( "C1.2A", 0x0800, 0x0200, CRC(19828c47) SHA1(f215ce55be32b3564e1b7cc19500d38a93117051) ) ROM_LOAD( "C1.3A", 0x0a00, 0x0200, CRC(284ae4eb) SHA1(6e28fcd9d481d37f47728f22f6048b29266f4346) ) - + ROM_REGION( 0x0100, "prom", 0 ) ROM_LOAD( "93427.bin", 0x0000, 0x0100, CRC(f59c8573) SHA1(5aed4866abe1690fd0f088af1cfd99b3c85afe9a) ) ROM_END -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS*/ +/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS*/ GAME( 1979, fi6845, 0, fastinvaders_6845, fastinvaders, fastinvaders_state, fi6845, ROT270, "Fiberglass", "Fast Invaders (6845 version)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 1979, fi8275, fi6845, fastinvaders_8275, fastinvaders, fastinvaders_state,fi6845, ROT270, "Fiberglass", "Fast Invaders (8275 version)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
\ No newline at end of file +GAME( 1979, fi8275, fi6845, fastinvaders_8275, fastinvaders, fastinvaders_state,fi6845, ROT270, "Fiberglass", "Fast Invaders (8275 version)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) |