- modexCopyPageRegion(&(gv->video.page[(gv->video.p)]), &(gv->video.page[(!gv->video.p)]), 0, 0, 0, 0, gv->video.page[gv->video.p].width, gv->video.page[!gv->video.p].height);
- //modexShowPage(&(gv->video.page[gv->video.p])); //this is slow as fack too!!
- modexShowPage(&(gv->video.page[1])); //this is slow as fack too!!
- //gv->video.p=!gv->video.p;
+ if(gv->video.r){
+ //modexCopyPageRegion(&(gv->video.page[(gv->video.p)]), &(gv->video.page[(!gv->video.p)]), 0, 0, 0, 0, gv->video.page[gv->video.p].width, gv->video.page[!gv->video.p].height);
+ /* block copy pattern to where we will draw the sprite */
+ vga_setup_wm1_block_copy();
+ _fmemmove((gv->video.page[(gv->video.p)]).data, (gv->video.page[(!gv->video.p)]).data, gv->video.page[(!gv->video.p)].pagesize);
+ /* must restore Write Mode 0/Read Mode 0 for this code to continue drawing normally */
+ vga_restore_rm0wm0();
+ modexShowPage(&(gv->video.page[gv->video.p]));
+ gv->video.p=!gv->video.p;
+ gv->video.r=!gv->video.r;
+ gv->video.tickclk = ((*clockw)-gv->video.startclk)/18.2;
+ }