]> 4ch.mooo.com Git - 16.git/commitdiff
====i made a quick and dirty fix to the video issue wwww====
authorsparky4 <sparky4@cock.li>
Mon, 6 Jun 2016 14:24:49 +0000 (09:24 -0500)
committersparky4 <sparky4@cock.li>
Mon, 6 Jun 2016 14:24:49 +0000 (09:24 -0500)
SCROLL.16L
scroll.16l [new file with mode: 0755]
scroll.smp
src/lib/16_timer.c
src/lib/modex16.c
src/scroll.c
test.16l [new file with mode: 0755]

index c1cf1cc5e73cca32fae75286fab3d31d567c9e67..a23fb37d4b4a1a824ae9e81805adfcfaf5d7019f 100755 (executable)
@@ -1,24 +1,30 @@
+WARNING: Failed to initialize DEBUG output\r
 starting timer ok\r
 index=4096\r
-chkmap ok      Project 16 scroll.exe. This is just a test file!\r
-version May  9 2016 02:45:56\r
+chkmap ok      0 fps\r
+48 fps\r
+37 fps\r
+50 fps\r
+Project 16 scroll.exe. This is just a test file!\r
+version Jun  6 2016 09:16:37\r
 tx: 0\r
 ty: 0\r
-player.x: 160          player.y: 128\r
-player.tx: 10          player.ty: 8\r
-player.triggx: 10      player.triggy: 9\r
-player.hp: 4   player.q: 1     player.info.dir: 2      player.d: 2 pdir=0\r
-tile data value at player trigger position: 0\r
+player.x: 304          player.y: 128\r
+player.tx: 20          player.ty: 8\r
+player.triggx: 21      player.triggy: 8\r
+player.hp: 4   player.q: 1     player.info.dir: 2      player.d: 2 pdir=3\r
+tile data value at player trigger position: 1\r
 Virtual Screen: 352x272\r
 Screen: 320x240\r
 virtual tile resolution: 22x17\r
 tile resolution: 20x15 \r
 middle tile position: 10x8\r
-video memory remaining: 40447\r
-page   [0]=(a000:0000) size=30208 sw=320  sh=240  width=352  height=272\r
-       [1]=(a000:7600) size=30208 sw=320  sh=240  width=352  height=272\r
-       [2]=(a000:ec00) size=30208 sw=320  sh=240  width=352  height=272\r
-mv[1].tx: 0    mv[1].ty: 0     panswitch=0\r
+video memory remaining: 65535\r
+page   [0]=(a000:0000) size=23936      sw=320  sh=240  width=352  height=272\r
+       [1]=(a000:5d80) size=23936      sw=320  sh=240  width=352  height=272\r
+       [2]=(a000:bb00) size=1024       sw=64  sh=64  width=64  height=64\r
+       [3]=(a000:bf00) size=16640      sw=320  sh=208  width=320  height=208\r
+mv[1].tx: 0    mv[1].ty: 0     gvar.video.p=1\r
 \r
 \r
 detected CPU type: 386 or newer\r
diff --git a/scroll.16l b/scroll.16l
new file mode 100755 (executable)
index 0000000..a23fb37
--- /dev/null
@@ -0,0 +1,30 @@
+WARNING: Failed to initialize DEBUG output\r
+starting timer ok\r
+index=4096\r
+chkmap ok      0 fps\r
+48 fps\r
+37 fps\r
+50 fps\r
+Project 16 scroll.exe. This is just a test file!\r
+version Jun  6 2016 09:16:37\r
+tx: 0\r
+ty: 0\r
+player.x: 304          player.y: 128\r
+player.tx: 20          player.ty: 8\r
+player.triggx: 21      player.triggy: 8\r
+player.hp: 4   player.q: 1     player.info.dir: 2      player.d: 2 pdir=3\r
+tile data value at player trigger position: 1\r
+Virtual Screen: 352x272\r
+Screen: 320x240\r
+virtual tile resolution: 22x17\r
+tile resolution: 20x15 \r
+middle tile position: 10x8\r
+video memory remaining: 65535\r
+page   [0]=(a000:0000) size=23936      sw=320  sh=240  width=352  height=272\r
+       [1]=(a000:5d80) size=23936      sw=320  sh=240  width=352  height=272\r
+       [2]=(a000:bb00) size=1024       sw=64  sh=64  width=64  height=64\r
+       [3]=(a000:bf00) size=16640      sw=320  sh=208  width=320  height=208\r
+mv[1].tx: 0    mv[1].ty: 0     gvar.video.p=1\r
+\r
+\r
+detected CPU type: 386 or newer\r
index 865f458d93e3d04a946067517835533467444fa3..97e7783ac65d24e5d3ee239980a65a2115c396b8 100755 (executable)
Binary files a/scroll.smp and b/scroll.smp differ
index 0b5cf41684b797817425046634d7bd0cac2bde2b..6d00448fd698a68c16198154de86cca10ee2c59f 100755 (executable)
@@ -73,7 +73,7 @@ void shinkutxt(global_game_variables_t *gv)
        if(elapsed_timer(gv) >= (1.0 / gv->kurokku.frames_per_second))\r
        {\r
                //t=(((*(gv->clock))-gv->clock_start) /18.2);\r
-               sprintf(gv->pee, "%f fps", (double)gv->kurokku.tiku/ticktock(gv));\r
+               sprintf(gv->pee, "%.0f fps", (double)gv->kurokku.tiku/ticktock(gv));\r
                fprintf(stderr, "%s\n", gv->pee);\r
                //(gv->clock_start)=*(gv->clock);\r
                gv->kurokku.tiku=0;\r
index 38db05d8c2f12bbd57b57a6887765d2f0001c26d..e3e557bf7f4ee949c3cd433df5766eb8e33f7ddf 100755 (executable)
@@ -342,6 +342,8 @@ modexClearRegion(page_t *page, int x, int y, int w, int h, byte  color) {
       right=0x0f;\r
     }\r
 \r
+       //printf("modexClearRegion(x=%u, y=%u, w=%u, h=%u, left=%u, right=%u)\n", x, y, w, h, left, right);\r
+\r
     __asm {\r
            PUSHF\r
            PUSH ES\r
@@ -409,14 +411,21 @@ modexCopyPageRegion(page_t *dest, page_t *src,
 {\r
     word doffset = (word)dest->data + dy*(dest->stridew) + dx/4;\r
     word soffset = (word)src->data + sy*(src->stridew) + sx/4;\r
-    word scans   = vga_state.vga_stride;\r
+    word scans   = vga_state.vga_stride+8;                             //++++0000 the quick and dirty fix of the major issue with p16 video display wwww\r
     word nextSrcRow = src->stridew - scans - 1;\r
     word nextDestRow = dest->stridew - scans - 1;\r
     byte lclip[] = {0x0f, 0x0e, 0x0c, 0x08};  /* clips for rectangles not on 4s */\r
-    byte rclip[] = {0x0f, 0x01, 0x03, 0x07};\r
+    byte rclip[] = {0x00, 0x01, 0x03, 0x07};\r
     byte left = lclip[sx&0x03];\r
     byte right = rclip[(sx+width)&0x03];\r
 \r
+       /* handle the case which requires an extra group */\r
+       if((sx & 0x03) && !((sx+width) & 0x03)) {\r
+               right=0x0f;\r
+       }\r
+\r
+//     printf("modexCopyPageRegion(src->stridew=%u, dest->stridew=%u, sx=%u, sy=%u, dx=%u, dy=%u, width=%u, height=%u, left=%u, right=%u)\n", src->stridew, dest->stridew, sx, sy, dx, dy, width, height, left, right);\r
+\r
     __asm {\r
            PUSHF\r
            PUSH ES\r
@@ -1172,8 +1181,8 @@ void modexprintmeminfo(video_t *v)
        {\r
                printf("        [%u]=", i);\r
                printf("(%Fp)", (v->page[i].data));\r
-               printf(" size=%u", v->page[i].pagesize);\r
-               printf(" sw=%lu  sh=%lu ", (unsigned long)v->page[i].sw, (unsigned long)v->page[i].sh);\r
+               printf(" size=%u        ", v->page[i].pagesize);\r
+               printf("sw=%lu  sh=%lu ", (unsigned long)v->page[i].sw, (unsigned long)v->page[i].sh);\r
                printf(" width=%lu  height=%lu", (unsigned long)v->page[i].width, (unsigned long)v->page[i].height);\r
                printf("\n");\r
        }\r
index 90a3ba3f1d077224ca9666e27f0ea9179563b88d..7c77673d51f2b269a752241145d9f414dbd34db3 100755 (executable)
@@ -250,13 +250,12 @@ void main(int argc, char *argv[])
         modexPalUpdate(map.tiles->data, &paloffset, 0, 0);
        printf("2paloffset      =       %d\n", paloffset/3);
         modexpdump(mv[0].page); modexpdump(mv[1].page);
-                IN_UserInput(1,1);
+               IN_UserInput(1,1);
        }
 #endif
 #endif
        //pan switch
        if(IN_KeyDown(88)){panswitch=!panswitch; IN_UserInput(1,1);}    //f12
-       //TSR
        if(IN_KeyDown(87))      //f11
        {
                pageflipflop=!pageflipflop;
@@ -269,10 +268,10 @@ void main(int argc, char *argv[])
 //                     int 21h
 //             }
        }
-       if(IN_KeyDown(68))      //s
+       if(IN_KeyDown(68))      //f10
        {
                gvar.kurokku.fpscap=!gvar.kurokku.fpscap;
-                IN_UserInput(1,1);
+               IN_UserInput(1,1);
        }
        //TODO fmemtest into page
        /*if(IN_KeyDown(4+1))   //4
diff --git a/test.16l b/test.16l
new file mode 100755 (executable)
index 0000000..a988472
--- /dev/null
+++ b/test.16l
@@ -0,0 +1,10 @@
+WARNING: Failed to initialize DEBUG output\r
+modexCopyPageRegion(src->stridew=88, dest->stridew=88, sx=0, sy=0, dx=0, dy=0, width=352, height=272, left=15, right=0)\r
+Project 16 test.exe. This is just a test file!\r
+version Jun  6 2016 08:47:42\r
+video memory remaining: 65535\r
+page   [0]=(a000:0000) size=23936      sw=320  sh=240  width=352  height=272\r
+       [1]=(a000:5d80) size=23936      sw=320  sh=240  width=352  height=272\r
+       [2]=(a000:bb00) size=1024       sw=64  sh=64  width=64  height=64\r
+       [3]=(a000:bf00) size=16640      sw=320  sh=208  width=320  height=208\r
+tx=1   ty=1    player.d=2\r