//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)
{
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;
}