trunk/src/mame/drivers/gunpey.c
| r30658 | r30659 | |
| 228 | 228 | TIMER_DEVICE_CALLBACK_MEMBER(gunpey_scanline); |
| 229 | 229 | TIMER_CALLBACK_MEMBER(blitter_end); |
| 230 | 230 | void gunpey_irq_check(UINT8 irq_type); |
| 231 | | UINT8 draw_gfx(running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect,int count,UINT8 scene_gradient); |
| 231 | UINT8 draw_gfx(bitmap_ind16 &bitmap,const rectangle &cliprect,int count,UINT8 scene_gradient); |
| 232 | 232 | UINT16 m_vram_bank; |
| 233 | 233 | UINT16 m_vreg_addr; |
| 234 | 234 | |
| r30658 | r30659 | |
| 273 | 273 | m_blit_buffer = auto_alloc_array(machine(), UINT16, 512*512); |
| 274 | 274 | } |
| 275 | 275 | |
| 276 | | UINT8 gunpey_state::draw_gfx(running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect,int count,UINT8 scene_gradient) |
| 276 | UINT8 gunpey_state::draw_gfx(bitmap_ind16 &bitmap,const rectangle &cliprect,int count,UINT8 scene_gradient) |
| 277 | 277 | { |
| 278 | 278 | int x,y; |
| 279 | 279 | int bpp_sel; |
| r30658 | r30659 | |
| 582 | 582 | { |
| 583 | 583 | for(count = start_offs;count<end_offs;count+=0x10/2) |
| 584 | 584 | { |
| 585 | | end_mark = draw_gfx(screen.machine(), bitmap,cliprect,count,scene_gradient); |
| 585 | end_mark = draw_gfx(bitmap,cliprect,count,scene_gradient); |
| 586 | 586 | |
| 587 | 587 | if(end_mark == 0x80) |
| 588 | 588 | break; |
trunk/src/mame/drivers/sengokmj.c
| r30658 | r30659 | |
| 107 | 107 | DECLARE_WRITE16_MEMBER(layer_en_w); |
| 108 | 108 | DECLARE_WRITE16_MEMBER(layer_scroll_w); |
| 109 | 109 | |
| 110 | | void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect,int pri); |
| 110 | void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,int pri); |
| 111 | 111 | virtual void video_start(); |
| 112 | 112 | UINT32 screen_update_sengokmj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 113 | 113 | }; |
| r30658 | r30659 | |
| 244 | 244 | SET_TILE_INFO_MEMBER(4, tile, color, 0); |
| 245 | 245 | } |
| 246 | 246 | |
| 247 | | void sengokmj_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect,int pri) |
| 247 | void sengokmj_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,int pri) |
| 248 | 248 | { |
| 249 | 249 | int offs,fx,fy,x,y,color,sprite; |
| 250 | 250 | int dx,dy,ax,ay; |
| r30658 | r30659 | |
| 311 | 311 | m_sc3_tilemap->set_scrolly(0, (0) & 0x1ff ); |
| 312 | 312 | |
| 313 | 313 | if(SEIBU_CRTC_ENABLE_SC0) { m_sc0_tilemap->draw(screen, bitmap, cliprect, 0,0); } |
| 314 | | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 2); } |
| 314 | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(bitmap,cliprect, 2); } |
| 315 | 315 | if(SEIBU_CRTC_ENABLE_SC2) { m_sc2_tilemap->draw(screen, bitmap, cliprect, 0,0); } |
| 316 | | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 1); } |
| 316 | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(bitmap,cliprect, 1); } |
| 317 | 317 | if(SEIBU_CRTC_ENABLE_SC1) { m_sc1_tilemap->draw(screen, bitmap, cliprect, 0,0); } |
| 318 | | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 0); } |
| 318 | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(bitmap,cliprect, 0); } |
| 319 | 319 | if(SEIBU_CRTC_ENABLE_SC3) { m_sc3_tilemap->draw(screen, bitmap, cliprect, 0,0); } |
| 320 | | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 3); } |
| 320 | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(bitmap,cliprect, 3); } |
| 321 | 321 | |
| 322 | 322 | return 0; |
| 323 | 323 | } |
trunk/src/mame/drivers/goodejan.c
| r30658 | r30659 | |
| 118 | 118 | UINT16 m_layer_en; |
| 119 | 119 | UINT16 m_scrollram[6]; |
| 120 | 120 | void seibucrtc_sc0bank_w(UINT16 data); |
| 121 | | void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect,int pri); |
| 121 | void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,int pri); |
| 122 | 122 | virtual void video_start(); |
| 123 | 123 | UINT32 screen_update_goodejan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 124 | 124 | }; |
| r30658 | r30659 | |
| 296 | 296 | SET_TILE_INFO_MEMBER(4, tile, color, 0); |
| 297 | 297 | } |
| 298 | 298 | |
| 299 | | void goodejan_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect,int pri) |
| 299 | void goodejan_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,int pri) |
| 300 | 300 | { |
| 301 | 301 | int offs,fx,fy,x,y,color,sprite; |
| 302 | 302 | int dx,dy,ax,ay; |
| r30658 | r30659 | |
| 364 | 364 | m_sc3_tilemap->set_scrolly(0, (0) & 0x1ff ); |
| 365 | 365 | |
| 366 | 366 | if(SEIBU_CRTC_ENABLE_SC0) { m_sc0_tilemap->draw(screen, bitmap, cliprect, 0,0); } |
| 367 | | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 2); } |
| 367 | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(bitmap,cliprect, 2); } |
| 368 | 368 | if(SEIBU_CRTC_ENABLE_SC2) { m_sc2_tilemap->draw(screen, bitmap, cliprect, 0,0); } |
| 369 | | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 1); } |
| 369 | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(bitmap,cliprect, 1); } |
| 370 | 370 | if(SEIBU_CRTC_ENABLE_SC1) { m_sc1_tilemap->draw(screen, bitmap, cliprect, 0,0); } |
| 371 | | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 0); } |
| 371 | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(bitmap,cliprect, 0); } |
| 372 | 372 | if(SEIBU_CRTC_ENABLE_SC3) { m_sc3_tilemap->draw(screen, bitmap, cliprect, 0,0); } |
| 373 | | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 3); } |
| 373 | if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(bitmap,cliprect, 3); } |
| 374 | 374 | |
| 375 | 375 | return 0; |
| 376 | 376 | } |
trunk/src/mame/drivers/raiden2.c
| r30658 | r30659 | |
| 514 | 514 | } |
| 515 | 515 | |
| 516 | 516 | |
| 517 | | UINT8 raiden2_state::cop_calculate_collsion_detection(running_machine &machine) |
| 517 | UINT8 raiden2_state::cop_calculate_collsion_detection() |
| 518 | 518 | { |
| 519 | 519 | static UINT8 res; |
| 520 | 520 | |
| r30658 | r30659 | |
| 689 | 689 | |
| 690 | 690 | /* do the math */ |
| 691 | 691 | cop_take_hit_box_params(0); |
| 692 | | cop_hit_status = cop_calculate_collsion_detection(space.machine()); |
| 692 | cop_hit_status = cop_calculate_collsion_detection(); |
| 693 | 693 | break; |
| 694 | 694 | |
| 695 | 695 | case 0xb900: |
| r30658 | r30659 | |
| 699 | 699 | |
| 700 | 700 | /* do the math */ |
| 701 | 701 | cop_take_hit_box_params(1); |
| 702 | | cop_hit_status = cop_calculate_collsion_detection(space.machine()); |
| 702 | cop_hit_status = cop_calculate_collsion_detection(); |
| 703 | 703 | break; |
| 704 | 704 | |
| 705 | 705 | default: |
| r30658 | r30659 | |
| 722 | 722 | |
| 723 | 723 | /* SPRITE DRAWING (move to video file) */ |
| 724 | 724 | |
| 725 | | void raiden2_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ,int pri_mask ) |
| 725 | void raiden2_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ,int pri_mask ) |
| 726 | 726 | { |
| 727 | 727 | UINT16 *source = sprites + sprites_cur_start/2 - 4; |
| 728 | 728 | |
| r30658 | r30659 | |
| 1030 | 1030 | //if (!machine().input().code_pressed(KEYCODE_S)) |
| 1031 | 1031 | { |
| 1032 | 1032 | if (!(raiden2_tilemap_enable & 0x10)) |
| 1033 | | draw_sprites(machine(), bitmap, cliprect, 0); |
| 1033 | draw_sprites(bitmap, cliprect, 0); |
| 1034 | 1034 | } |
| 1035 | 1035 | |
| 1036 | 1036 | //if (!machine().input().code_pressed(KEYCODE_A)) |
trunk/src/mame/video/konamigx.c
| r30658 | r30659 | |
| 807 | 807 | if (width>512) // vsnetscr case |
| 808 | 808 | pixeldouble_output = 1; |
| 809 | 809 | |
| 810 | | K053936GP_0_zoom_draw(screen.machine(), bitmap, cliprect, sub1, l, k, alpha, pixeldouble_output, m_k053936_0_ctrl_16, m_k053936_0_linectrl_16, m_k053936_0_ctrl, m_k053936_0_linectrl, m_palette); |
| 810 | K053936GP_0_zoom_draw(machine(), bitmap, cliprect, sub1, l, k, alpha, pixeldouble_output, m_k053936_0_ctrl_16, m_k053936_0_linectrl_16, m_k053936_0_ctrl, m_k053936_0_linectrl, m_palette); |
| 811 | 811 | } |
| 812 | 812 | else |
| 813 | 813 | { |
| 814 | | screen.machine().device<k053250_device>("k053250_1")->draw(bitmap, cliprect, vcblk[4]<<l, 0, screen.priority(), 0); |
| 814 | machine().device<k053250_device>("k053250_1")->draw(bitmap, cliprect, vcblk[4]<<l, 0, screen.priority(), 0); |
| 815 | 815 | } |
| 816 | 816 | } |
| 817 | 817 | } |
| r30658 | r30659 | |
| 883 | 883 | } |
| 884 | 884 | } |
| 885 | 885 | else |
| 886 | | screen.machine().device<k053250_device>("k053250_2")->draw(bitmap, cliprect, vcblk[5]<<l, 0, screen.priority(), 0); |
| 886 | machine().device<k053250_device>("k053250_2")->draw(bitmap, cliprect, vcblk[5]<<l, 0, screen.priority(), 0); |
| 887 | 887 | } |
| 888 | 888 | } |
| 889 | 889 | |
trunk/src/mess/includes/x1.h
| r30658 | r30659 | |
| 217 | 217 | TIMER_DEVICE_CALLBACK_MEMBER(x1_keyboard_callback); |
| 218 | 218 | DECLARE_WRITE_LINE_MEMBER(fdc_drq_w); |
| 219 | 219 | |
| 220 | | void x1_draw_pixel(running_machine &machine, bitmap_rgb32 &bitmap,int y,int x,UINT16 pen,UINT8 width,UINT8 height); |
| 221 | | void draw_fgtilemap(running_machine &machine, bitmap_rgb32 &bitmap,const rectangle &cliprect); |
| 222 | | void draw_gfxbitmap(running_machine &machine, bitmap_rgb32 &bitmap,const rectangle &cliprect, int plane,int pri); |
| 223 | | UINT8 check_prev_height(running_machine &machine,int x,int y,int x_size); |
| 224 | | UINT8 check_line_valid_height(running_machine &machine,int y,int x_size,int height); |
| 220 | void x1_draw_pixel(bitmap_rgb32 &bitmap,int y,int x,UINT16 pen,UINT8 width,UINT8 height); |
| 221 | void draw_fgtilemap(bitmap_rgb32 &bitmap,const rectangle &cliprect); |
| 222 | void draw_gfxbitmap(bitmap_rgb32 &bitmap,const rectangle &cliprect, int plane,int pri); |
| 223 | UINT8 check_prev_height(int x,int y,int x_size); |
| 224 | UINT8 check_line_valid_height(int y,int x_size,int height); |
| 225 | 225 | |
| 226 | 226 | int priority_mixer_pri(int color); |
| 227 | 227 | void cmt_command( UINT8 cmd ); |
trunk/src/mess/drivers/besta.c
| r30658 | r30659 | |
| 20 | 20 | if(VERBOSE_DBG>=N) \ |
| 21 | 21 | { \ |
| 22 | 22 | if( M ) \ |
| 23 | | logerror("%11.6f: %-24s",machine.time().as_double(),(char*)M ); \ |
| 23 | logerror("%11.6f: %-24s",machine().time().as_double(),(char*)M ); \ |
| 24 | 24 | logerror A; \ |
| 25 | 25 | } \ |
| 26 | 26 | } while (0) |
| r30658 | r30659 | |
| 54 | 54 | #if 1 |
| 55 | 55 | READ8_MEMBER( besta_state::mpcc_reg_r ) |
| 56 | 56 | { |
| 57 | | running_machine &machine = space.machine(); |
| 58 | 57 | UINT8 ret; |
| 59 | 58 | |
| 60 | 59 | if (!(offset == 0 && !m_mpcc_regs[0])) { |
| 61 | 60 | DBG_LOG(1,"mpcc_reg_r",("(%d) = %02X at %s\n", offset, |
| 62 | | (offset > 31 ? -1 : m_mpcc_regs[offset]), machine.describe_context())); |
| 61 | (offset > 31 ? -1 : m_mpcc_regs[offset]), machine().describe_context())); |
| 63 | 62 | } |
| 64 | 63 | |
| 65 | 64 | switch (offset) { |
| r30658 | r30659 | |
| 76 | 75 | |
| 77 | 76 | WRITE8_MEMBER( besta_state::mpcc_reg_w ) |
| 78 | 77 | { |
| 79 | | running_machine &machine = space.machine(); |
| 80 | | device_t *devconf = space.machine().device(TERMINAL_TAG); |
| 78 | device_t *devconf = machine().device(TERMINAL_TAG); |
| 81 | 79 | |
| 82 | | DBG_LOG(1,"mpcc_reg_w",("(%d) <- %02X at %s\n", offset, data, machine.describe_context())); |
| 80 | DBG_LOG(1,"mpcc_reg_w",("(%d) <- %02X at %s\n", offset, data, machine().describe_context())); |
| 83 | 81 | |
| 84 | 82 | switch (offset) { |
| 85 | 83 | case 2: |
| 86 | 84 | m_term_data = data; |
| 87 | 85 | case 10: |
| 88 | | dynamic_cast<generic_terminal_device *>(devconf)->write(*devconf->machine().memory().first_space(), 0, data); |
| 86 | dynamic_cast<generic_terminal_device *>(devconf)->write(*machine().memory().first_space(), 0, data); |
| 89 | 87 | default: |
| 90 | 88 | m_mpcc_regs[offset] = data; break; |
| 91 | 89 | } |
trunk/src/mess/drivers/nakajies.c
| r30658 | r30659 | |
| 295 | 295 | virtual void machine_reset(); |
| 296 | 296 | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 297 | 297 | |
| 298 | | void nakajies_update_irqs( running_machine &machine ); |
| 298 | void nakajies_update_irqs(); |
| 299 | 299 | DECLARE_READ8_MEMBER( irq_clear_r ); |
| 300 | 300 | DECLARE_WRITE8_MEMBER( irq_clear_w ); |
| 301 | 301 | DECLARE_READ8_MEMBER( irq_enable_r ); |
| r30658 | r30659 | |
| 405 | 405 | IRQ Handling |
| 406 | 406 | *********************************************/ |
| 407 | 407 | |
| 408 | | void nakajies_state::nakajies_update_irqs( running_machine &machine ) |
| 408 | void nakajies_state::nakajies_update_irqs() |
| 409 | 409 | { |
| 410 | 410 | // Hack: IRQ mask is temporarily disabled because doesn't allow the IRQ vector 0xFA |
| 411 | 411 | // and 0xFB that are used for scan the kb, this need further investigation. |
| r30658 | r30659 | |
| 442 | 442 | WRITE8_MEMBER( nakajies_state::irq_clear_w ) |
| 443 | 443 | { |
| 444 | 444 | m_irq_active &= ~data; |
| 445 | | nakajies_update_irqs(machine()); |
| 445 | nakajies_update_irqs(); |
| 446 | 446 | } |
| 447 | 447 | |
| 448 | 448 | |
| r30658 | r30659 | |
| 455 | 455 | WRITE8_MEMBER( nakajies_state::irq_enable_w ) |
| 456 | 456 | { |
| 457 | 457 | m_irq_enabled = data; |
| 458 | | nakajies_update_irqs(machine()); |
| 458 | nakajies_update_irqs(); |
| 459 | 459 | } |
| 460 | 460 | |
| 461 | 461 | |
| r30658 | r30659 | |
| 508 | 508 | UINT8 irqs = ioport( "debug" )->read(); |
| 509 | 509 | |
| 510 | 510 | m_irq_active |= irqs; |
| 511 | | nakajies_update_irqs(machine()); |
| 511 | nakajies_update_irqs(); |
| 512 | 512 | } |
| 513 | 513 | |
| 514 | 514 | |
| r30658 | r30659 | |
| 693 | 693 | m_irq_active |= 0x10; |
| 694 | 694 | } |
| 695 | 695 | |
| 696 | | nakajies_update_irqs(machine()); |
| 696 | nakajies_update_irqs(); |
| 697 | 697 | } |
| 698 | 698 | |
| 699 | 699 | |
trunk/src/mess/drivers/x1.c
| r30658 | r30659 | |
| 229 | 229 | m_pal_4096 = auto_alloc_array_clear(machine(), UINT8, 0x1000*3); |
| 230 | 230 | } |
| 231 | 231 | |
| 232 | | void x1_state::x1_draw_pixel(running_machine &machine, bitmap_rgb32 &bitmap,int y,int x,UINT16 pen,UINT8 width,UINT8 height) |
| 232 | void x1_state::x1_draw_pixel(bitmap_rgb32 &bitmap,int y,int x,UINT16 pen,UINT8 width,UINT8 height) |
| 233 | 233 | { |
| 234 | | if(!machine.first_screen()->visible_area().contains(x, y)) |
| 234 | if(!machine().first_screen()->visible_area().contains(x, y)) |
| 235 | 235 | return; |
| 236 | 236 | |
| 237 | 237 | if(width && height) |
| r30658 | r30659 | |
| 274 | 274 | |
| 275 | 275 | |
| 276 | 276 | /* adjust tile index when we are under double height condition */ |
| 277 | | UINT8 x1_state::check_prev_height(running_machine &machine,int x,int y,int x_size) |
| 277 | UINT8 x1_state::check_prev_height(int x,int y,int x_size) |
| 278 | 278 | { |
| 279 | 279 | UINT8 prev_tile = m_tvram[(x+((y-1)*x_size)+mc6845_start_addr) & 0x7ff]; |
| 280 | 280 | UINT8 cur_tile = m_tvram[(x+(y*x_size)+mc6845_start_addr) & 0x7ff]; |
| r30658 | r30659 | |
| 288 | 288 | } |
| 289 | 289 | |
| 290 | 290 | /* Exoa II - Warroid: if double height isn't enabled on the first tile of the line then double height is disabled on everything else. */ |
| 291 | | UINT8 x1_state::check_line_valid_height(running_machine &machine,int y,int x_size,int height) |
| 291 | UINT8 x1_state::check_line_valid_height(int y,int x_size,int height) |
| 292 | 292 | { |
| 293 | 293 | UINT8 line_attr = m_avram[(0+(y*x_size)+mc6845_start_addr) & 0x7ff]; |
| 294 | 294 | |
| r30658 | r30659 | |
| 298 | 298 | return height; |
| 299 | 299 | } |
| 300 | 300 | |
| 301 | | void x1_state::draw_fgtilemap(running_machine &machine, bitmap_rgb32 &bitmap,const rectangle &cliprect) |
| 301 | void x1_state::draw_fgtilemap(bitmap_rgb32 &bitmap,const rectangle &cliprect) |
| 302 | 302 | { |
| 303 | 303 | /* |
| 304 | 304 | attribute table: |
| r30658 | r30659 | |
| 364 | 364 | |
| 365 | 365 | dy = 0; |
| 366 | 366 | |
| 367 | | height = check_line_valid_height(machine,y,x_size,height); |
| 367 | height = check_line_valid_height(y,x_size,height); |
| 368 | 368 | |
| 369 | 369 | if(height && y) |
| 370 | | dy = check_prev_height(machine,x,y,x_size); |
| 370 | dy = check_prev_height(x,y,x_size); |
| 371 | 371 | |
| 372 | 372 | /* guess: assume that Kanji VRAM doesn't double the vertical size */ |
| 373 | 373 | if(knj_enable) { height = 0; } |
| r30658 | r30659 | |
| 429 | 429 | |
| 430 | 430 | pcg_pen = pen[2]<<2|pen[1]<<1|pen[0]<<0; |
| 431 | 431 | |
| 432 | | if(color & 0x10 && machine.first_screen()->frame_number() & 0x10) //reverse flickering |
| 432 | if(color & 0x10 && machine().first_screen()->frame_number() & 0x10) //reverse flickering |
| 433 | 433 | pcg_pen^=7; |
| 434 | 434 | |
| 435 | 435 | if(pcg_pen == 0 && (!(color & 8))) |
| r30658 | r30659 | |
| 447 | 447 | if(res_y < cliprect.min_y || res_y > cliprect.max_y) // partial update, TODO: optimize |
| 448 | 448 | continue; |
| 449 | 449 | |
| 450 | | x1_draw_pixel(machine,bitmap,res_y,res_x,pcg_pen,width,0); |
| 450 | x1_draw_pixel(bitmap,res_y,res_x,pcg_pen,width,0); |
| 451 | 451 | } |
| 452 | 452 | } |
| 453 | 453 | } |
| r30658 | r30659 | |
| 486 | 486 | return pri_mask_calc; |
| 487 | 487 | } |
| 488 | 488 | |
| 489 | | void x1_state::draw_gfxbitmap(running_machine &machine, bitmap_rgb32 &bitmap,const rectangle &cliprect, int plane,int pri) |
| 489 | void x1_state::draw_gfxbitmap(bitmap_rgb32 &bitmap,const rectangle &cliprect, int plane,int pri) |
| 490 | 490 | { |
| 491 | 491 | int xi,yi,x,y; |
| 492 | 492 | int pen_r,pen_g,pen_b,color; |
| r30658 | r30659 | |
| 530 | 530 | if(y*(mc6845_tile_height)+yi < cliprect.min_y || y*(mc6845_tile_height)+yi > cliprect.max_y) // partial update TODO: optimize |
| 531 | 531 | continue; |
| 532 | 532 | |
| 533 | | x1_draw_pixel(machine,bitmap,y*(mc6845_tile_height)+yi,x*8+xi,color,0,0); |
| 533 | x1_draw_pixel(bitmap,y*(mc6845_tile_height)+yi,x*8+xi,color,0,0); |
| 534 | 534 | } |
| 535 | 535 | } |
| 536 | 536 | } |
| r30658 | r30659 | |
| 547 | 547 | |
| 548 | 548 | // popmessage("%d %d %d %d",mc6845_h_sync_pos,mc6845_v_sync_pos,mc6845_h_char_total,mc6845_v_char_total); |
| 549 | 549 | |
| 550 | | draw_gfxbitmap(machine(),bitmap,cliprect,m_scrn_reg.disp_bank,m_scrn_reg.pri); |
| 551 | | draw_fgtilemap(machine(),bitmap,cliprect); |
| 552 | | draw_gfxbitmap(machine(),bitmap,cliprect,m_scrn_reg.disp_bank,m_scrn_reg.pri^0xff); |
| 550 | draw_gfxbitmap(bitmap,cliprect,m_scrn_reg.disp_bank,m_scrn_reg.pri); |
| 551 | draw_fgtilemap(bitmap,cliprect); |
| 552 | draw_gfxbitmap(bitmap,cliprect,m_scrn_reg.disp_bank,m_scrn_reg.pri^0xff); |
| 553 | 553 | |
| 554 | 554 | return 0; |
| 555 | 555 | } |