src/mess/drivers/mz2500.c
| r9039 | r9040 | |
| 6 | 6 | |
| 7 | 7 | TODO: |
| 8 | 8 | - 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? |
| 11 | 10 | - Implement external ROM hook-up; |
| 12 | 11 | - Add remaining missing peripherals, SIO, HDD and w1300a network; |
| 13 | 12 | - FDC loading without the IPLPRO doesn't work at all, why? |
| r9039 | r9040 | |
| 86 | 85 | static UINT8 text_col_size, text_font_reg; |
| 87 | 86 | static UINT8 pal_select; |
| 88 | 87 | static UINT16 cg_vs,cg_ve,cg_hs,cg_he; //CG window parameters |
| 89 | | static UINT16 tv_vs,tv_ve,tv_hs,tv_he; //TV window parameters |
| 88 | static INT16 tv_vs,tv_ve,tv_hs,tv_he; //TV window parameters |
| 90 | 89 | static UINT8 cg_latch[4]; |
| 91 | 90 | static UINT8 cg_reg_index; |
| 92 | 91 | static UINT8 cg_reg[0x20]; |
| r9039 | r9040 | |
| 191 | 190 | res_y = y*8+yi-s_y; |
| 192 | 191 | |
| 193 | 192 | /* 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; |
| 196 | 195 | |
| 197 | 196 | if(gfx_sel & 0x8) |
| 198 | 197 | { |
| r9039 | r9040 | |
| 281 | 280 | res_y = y*8+yi-s_y; |
| 282 | 281 | |
| 283 | 282 | /* 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; |
| 286 | 285 | |
| 287 | 286 | if(gfx_sel & 0x8) |
| 288 | 287 | { |
| r9039 | r9040 | |
| 573 | 572 | case 0: x_offs = 64; break; |
| 574 | 573 | case 1: x_offs = 80; break; |
| 575 | 574 | case 2: x_offs = 72; break; |
| 576 | | case 3: x_offs = 72; break; |
| 575 | case 3: x_offs = 88; break; |
| 577 | 576 | } |
| 578 | 577 | //printf("%d %d %d\n",x_offs,(text_reg[7] & 0x7f) * 8,(text_reg[8] & 0x7f)* 8); |
| 579 | 578 | |
| r9039 | r9040 | |
| 595 | 594 | tv_vs /= 2; |
| 596 | 595 | tv_ve /= 2; |
| 597 | 596 | } |
| 597 | |
| 598 | 598 | } |
| 599 | 599 | } |
| 600 | 600 | |
| r9039 | r9040 | |
| 1012 | 1012 | irq_mask[1] = (data & 0x04); //i8253 |
| 1013 | 1013 | irq_mask[2] = (data & 0x02); //printer |
| 1014 | 1014 | irq_mask[3] = (data & 0x01); //RP5c15 |
| 1015 | | |
| 1016 | | printf("%02x\n",data); |
| 1017 | 1015 | } |
| 1018 | 1016 | |
| 1019 | 1017 | static WRITE8_HANDLER( mz2500_irq_data_w ) |