X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fscroll16.c;h=42a787ae977a11d4b466588748ce1d87a45d84d8;hb=1f160b67391d7b0e0f24d2db33509f31b20379f6;hp=88f5c9bcd8efe0cd5d1488a3680cb07b8e1bce2b;hpb=34d55bd3f03eabdfc0e13c00b85e2091a211488a;p=16.git diff --git a/src/lib/scroll16.c b/src/lib/scroll16.c index 88f5c9bc..42a787ae 100755 --- a/src/lib/scroll16.c +++ b/src/lib/scroll16.c @@ -586,27 +586,34 @@ void mapDrawWCol(map_view_t *mv, int tx, int ty, word x) //setkb(0); }*/ +unsigned char shinku_fps_indicator_page = 0; + /* sync */ -void shinku(map_view_t *pip, global_game_variables_t *gv) +void shinku(global_game_variables_t *gv) { - //float t; + word x = (0) + gv->video.page[shinku_fps_indicator_page].dx; // follow the screen + word y = (0) + gv->video.page[shinku_fps_indicator_page].dy; // follow the screen + word w = 64; + word h = 8; + word col = 7; + word bgcol = 0; + word type = 1; + byte o,o2,i; //modexCopyPageRegion(pip[1].page, pip[2].page, 16, 16, 16, 16, (14*8)+4, 8+4); + /* block copy to visible RAM from offscreen */ + vga_setup_wm1_block_copy(); + o = *(gv->video.page[2].data); // source offscreen + o2 = *(gv->video.page[2].data)+(y * vga_state.vga_stride) + (x >> 2); // dest visible (original stride) + for (i=0;i < h;i++,o += vga_state.vga_draw_stride,o2 += vga_state.vga_stride) vga_wm1_mem_block_copy(o2,o,w >> 2); + /* must restore Write Mode 0/Read Mode 0 for this code to continue drawing normally */ + vga_restore_rm0wm0(); if(elapsed_timer(gv) >= (1.0 / gv->kurokku.frames_per_second)) { - word x = (16); - word y = (8+16); - word col = 15; - word bgcol = 0; - word type = 1; - //t=(((*(gv->clock))-gv->clock_start) /18.2); - sprintf(gv->pee, "%f fps", (double)gv->kurokku.tiku/ticktock(gv)); - printf("%s", gv->pee); - //FIXME PLEASE!! - //:modexprint(pip[1].page, 16, 16, 1, 15, 0, gv->pee); - //(gv->clock_start)=*(gv->clock); + sprintf(gv->pee, "%.0f fps", (double)gv->kurokku.tiku/ticktock(gv)); + //modexClearRegion(&(gv->video.page[shinku_fps_indicator_page]), x, y, w, h, 45); + modexprint(&(gv->video.page[shinku_fps_indicator_page]), x, y, type, col, bgcol, gv->pee); gv->kurokku.tiku=0; - } - //modexprint(page, 16, 16, 1, 15, 0, pee); + }else //copy dat sheet gv->kurokku.tiku++; switch(gv->kurokku.fpscap) { @@ -616,8 +623,8 @@ void shinku(map_view_t *pip, global_game_variables_t *gv) break; case 1: //turn this off if XT - //modexWaitBorder(); - vga_wait_for_vsync(); + modexWaitBorder(); + //vga_wait_for_vsync(); gv->kurokku.frames_per_second=60; break; }