Previous 15994 Revisions Next

r9040 Sunday 5th September, 2010 at 10:37:01 UTC by Angelo Salese
[MZ-2500]: Implemented TV window effects, now Xevious doesn't draw outside the playfield when the screen scrolls
[src/mess/drivers]mz2500.c

src/mess/drivers/mz2500.c
r9039r9040
66
77    TODO:
88    - Kanji text is cutted in half when font_size is 1 / interlace is disabled, different ROM used? (check Back to the Future);
9    - Find real CRTC registers
10    - Some games doesn't set proper registers if you have interlace enabled, is there any real reason?
9    - Some games doesn't set proper registers if you have interlace enabled, is it a BTANB?
1110    - Implement external ROM hook-up;
1211    - Add remaining missing peripherals, SIO, HDD and w1300a network;
1312    - FDC loading without the IPLPRO doesn't work at all, why?
r9039r9040
8685static UINT8 text_col_size, text_font_reg;
8786static UINT8 pal_select;
8887static UINT16 cg_vs,cg_ve,cg_hs,cg_he; //CG window parameters
89static UINT16 tv_vs,tv_ve,tv_hs,tv_he; //TV window parameters
88static INT16 tv_vs,tv_ve,tv_hs,tv_he; //TV window parameters
9089static UINT8 cg_latch[4];
9190static UINT8 cg_reg_index;
9291static UINT8 cg_reg[0x20];
r9039r9040
191190               res_y = y*8+yi-s_y;
192191
193192               /* check TV window boundaries */
194               //if(res_x < tv_hs || res_x >= tv_he || res_y < tv_vs || res_y >= tv_ve)
195               //   continue;
193               if(res_x < tv_hs || res_x >= tv_he || res_y < tv_vs || res_y >= tv_ve)
194                  continue;
196195
197196               if(gfx_sel & 0x8)
198197               {
r9039r9040
281280               res_y = y*8+yi-s_y;
282281
283282               /* check TV window boundaries */
284               //if(res_x < tv_hs || res_x >= tv_he || res_y < tv_vs || res_y >= tv_ve)
285               //   continue;
283               if(res_x < tv_hs || res_x >= tv_he || res_y < tv_vs || res_y >= tv_ve)
284                  continue;
286285
287286               if(gfx_sel & 0x8)
288287               {
r9039r9040
573572         case 0: x_offs = 64; break;
574573         case 1: x_offs = 80; break;
575574         case 2: x_offs = 72; break;
576         case 3: x_offs = 72; break;
575         case 3: x_offs = 88; break;
577576      }
578577      //printf("%d %d %d\n",x_offs,(text_reg[7] & 0x7f) * 8,(text_reg[8] & 0x7f)* 8);
579578
r9039r9040
595594         tv_vs /= 2;
596595         tv_ve /= 2;
597596      }
597
598598   }
599599}
600600
r9039r9040
10121012   irq_mask[1] = (data & 0x04); //i8253
10131013   irq_mask[2] = (data & 0x02); //printer
10141014   irq_mask[3] = (data & 0x01); //RP5c15
1015
1016   printf("%02x\n",data);
10171015}
10181016
10191017static WRITE8_HANDLER( mz2500_irq_data_w )

Previous 15994 Revisions Next


© 1998-2018 The MESS Team