]> 4ch.mooo.com Git - 16.git/commitdiff
0.c is under study wwww
authorsparky4 <sparky4@cock.li>
Fri, 24 Jun 2016 17:42:40 +0000 (12:42 -0500)
committersparky4 <sparky4@cock.li>
Fri, 24 Jun 2016 17:42:40 +0000 (12:42 -0500)
src/0.c
src/lib/modex16.c

diff --git a/src/0.c b/src/0.c
index d4f671b317636d4d5180a366bd98b90209d13c50..5f6d9fe59f408d1851be97d20ae4f5f586d24a1a 100755 (executable)
--- a/src/0.c
+++ b/src/0.c
@@ -106,7 +106,7 @@ int main(int argc,char **argv) {
        modexHiganbanaPageSetup(&gvar.video);
        gvar.video.page[1].dx=gvar.video.page[0].dx=16;
        gvar.video.page[1].dy=gvar.video.page[0].dy=16;
-       modexShowPage(&(gvar.video.page[0]));
+       modexShowPage(&(gvar.video.page[1]));
 
        //4     this dose the screen
        {
@@ -127,8 +127,8 @@ int main(int argc,char **argv) {
         * this time, we render the distinctive pattern to another offscreen location and just copy.
         * note this version is much faster too! */
        {
-               const unsigned int offscreen_ofs = (gvar.video.page[0].stridew * gvar.video.page[0].height);
-               const unsigned int pattern_ofs = 0x10000UL - (gvar.video.page[0].stridew * gvar.video.page[0].height);
+               //const unsigned int gvar.video.page[0].pagesize = (gvar.video.page[0].stridew * gvar.video.page[0].height);
+               const unsigned int pattern_ofs = 0x10000UL - gvar.video.page[0].pagesize;//(gvar.video.page[0].stridew * gvar.video.page[0].height);
                unsigned int i,j,o,o2;
                int x,y,rx,ry,w,h;
                unsigned int overdraw = 1;      // how many pixels to "overdraw" so that moving sprites with edge pixels don't leave streaks.
@@ -169,7 +169,7 @@ int main(int argc,char **argv) {
 
                        /* block copy pattern to where we will draw the sprite */
                        vga_setup_wm1_block_copy();
-                       o2 = offscreen_ofs;
+                       o2 = gvar.video.page[0].pagesize;
                        o = pattern_ofs + (ry * gvar.video.page[0].stridew) + (rx >> 2); // source offscreen
                        for (i=0;i < h;i++,o += gvar.video.page[0].stridew,o2 += (w >> 2)) vga_wm1_mem_block_copy(o2,o,w >> 2);
                        /* must restore Write Mode 0/Read Mode 0 for this code to continue drawing normally */
@@ -178,7 +178,7 @@ int main(int argc,char **argv) {
                        /* replace VGA stride with our own and mem ptr. then sprite rendering at this stage is just (0,0) */
                        vga_state.vga_draw_stride_limit = (gvar.video.page[0].width + 3/*round up*/ - x) >> 2;
                        vga_state.vga_draw_stride = w >> 2;
-                       vga_state.vga_graphics_ram = omemptr + offscreen_ofs;
+                       vga_state.vga_graphics_ram = omemptr + gvar.video.page[0].pagesize;
 
                        /* then the sprite. note modding ram ptr means we just draw to (x&3,0) */
                        draw_vrl1_vgax_modex(x-rx,y-ry,vrl_header,vrl_lineoffs,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header));
@@ -188,7 +188,7 @@ int main(int argc,char **argv) {
 
                        /* block copy to visible RAM from offscreen */
                        vga_setup_wm1_block_copy();
-                       o = offscreen_ofs; // source offscreen
+                       o = gvar.video.page[0].pagesize; // source offscreen
                        o2 = (ry * gvar.video.page[0].stridew) + (rx >> 2); // dest visible (original stride)
                        for (i=0;i < h;i++,o += vga_state.vga_draw_stride,o2 += gvar.video.page[0].stridew) vga_wm1_mem_block_copy(o2,o,w >> 2);
                        /* must restore Write Mode 0/Read Mode 0 for this code to continue drawing normally */
@@ -207,7 +207,21 @@ int main(int argc,char **argv) {
                }
        }
 
-       modexShowPage(&(gvar.video.page[1]));
+       while (1) {
+                       /* stop animating if the user hits ENTER */
+                       if (kbhit()) {
+                               if (getch() == 13) break;
+                       }
+               modexShowPage(&(gvar.video.page[1]));
+       }
+
+       while (1) {
+                       /* stop animating if the user hits ENTER */
+                       if (kbhit()) {
+                               if (getch() == 13) break;
+                       }
+               modexShowPage(&(gvar.video.page[0]));
+       }
 
        /* another handy "demo" effect using VGA write mode 1.
         * we can take what's on screen and vertically squash it like an old analog TV set turning off. */
index 94386cad2b154d27d6a0e60faa0ce27bfed23704..900914e12119670da94e1de2a5afc1fbecbdacb8 100755 (executable)
@@ -198,7 +198,7 @@ modexDefaultPage(page_t *p)
        page.tilemidposscreenx = page.tw/2;\r
        page.tilemidposscreeny = (page.th/2)+1;\r
        page.stridew=page.width/4;\r
-       page.pagesize = (word)(page.width/4)*page.height;\r
+       page.pagesize = (word)(page.stridew)*page.height;\r
        page.pi=page.width*4;\r
        page.id = 0;\r
 \r
@@ -250,7 +250,7 @@ modexNextPageFlexibleSize(page_t *p, word x, word y)
        result.tilesh=result.height/TILEWH;\r
        result.id = p->id+1;\r
        result.stridew=p->sw/4;//result.width/4;\r
-       result.pagesize = (word)(result.width/4)*result.height;\r
+       result.pagesize = (word)(result.stridew)*result.height;\r
        switch(result.id)\r
        {\r
                case 2:\r