Previous 199869 Revisions Next

r41807 Friday 20th November, 2015 at 07:47:34 UTC by Barry Rodewald
amstrad: improved Plus softscroll and split-screen
[src/mame/machine]amstrad.cpp

trunk/src/mame/machine/amstrad.cpp
r250318r250319
931931         // CPC+/GX4000 Programmable Raster Interrupt (disabled if &6800 in ASIC RAM is 0)
932932         if ( m_asic.pri != 0 )
933933         {
934            if ( m_asic.pri == m_asic.vpos - 1 )
934            if ( m_asic.pri == m_asic.vpos )
935935            {
936936               logerror("PRI: triggered, scanline %d\n",m_asic.pri);
937937               m_maincpu->set_input_line(0, ASSERT_LINE);
r250318r250319
10301030      /* DE became active, store the starting MA and RA signals */
10311031      m_gate_array.ma = m_crtc->get_ma();
10321032      m_gate_array.ra = m_crtc->get_ra();
1033
10331034      m_asic.h_start = m_gate_array.line_ticks;
10341035      if(m_asic.de_start == 0)
1035         m_asic.vpos = 1;
1036         m_asic.vpos = 0;
10361037      m_asic.de_start = 1;
1038      m_gate_array.colour = m_asic.ram[0x2420] + ( m_asic.ram[0x2421] << 8 );
1039      m_asic.hscroll = m_asic.ram[0x2804] & 0x0f;
1040      if ( m_asic.hscroll == 0 )
1041         amstrad_plus_gate_array_get_video_data();
1042//      if( m_asic.ram[0x2804] & 0x80 )  // draw border for first character if set (hides graphic mess when using softscroll)
1043//         *m_gate_array.draw_p = m_asic.ram[0x2420] + ( m_asic.ram[0x2421] << 8 );
10371044
10381045      /* Start of screen */
1039      if ( m_asic.vpos == 1 )
1046      if ( m_asic.vpos == 0 )
10401047      {
10411048         m_asic.split_ma_base = 0x0000;
10421049         m_asic.split_ma_started = 0x0000;
r250318r250319
10471054         m_asic.split_ma_started = m_gate_array.ma;
10481055         m_asic.split_ma_base = ( m_asic.ram[0x2802] << 8 ) | m_asic.ram[0x2803];
10491056      }
1050
1051      m_gate_array.colour = m_asic.ram[0x2420] + ( m_asic.ram[0x2421] << 8 );
1052      m_asic.hscroll = m_asic.ram[0x2804] & 0x0f;
1053
1054      if ( m_asic.hscroll == 0 )
1055         amstrad_plus_gate_array_get_video_data();
10561057   }
10571058
10581059   if ( m_gate_array.de && ! state )


Previous 199869 Revisions Next


© 1997-2024 The MAME Team