]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/modex16.c
gvar.video.page[1].pattern_ofs removed because it is just (0x10000UL - (uint16_t...
[16.git] / src / lib / modex16.c
index eeba90fcfdd295bcc56d73993b3d2563400e9f65..900914e12119670da94e1de2a5afc1fbecbdacb8 100755 (executable)
@@ -198,8 +198,8 @@ 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.pi=4;\r
+       page.pagesize = (word)(page.stridew)*page.height;\r
+       page.pi=page.width*4;\r
        page.id = 0;\r
 \r
     return page;\r
@@ -225,7 +225,7 @@ modexNextPage(page_t *p) {
        result.tilesh = p->tilesh;\r
        result.stridew=p->stridew;\r
        result.pagesize = p->pagesize;\r
-       result.pi=4;\r
+       result.pi=result.width*4;\r
        result.id = p->id+1;\r
 \r
        return result;\r
@@ -249,11 +249,17 @@ modexNextPageFlexibleSize(page_t *p, word x, word y)
        result.tilesw=result.width/TILEWH;\r
        result.tilesh=result.height/TILEWH;\r
        result.id = p->id+1;\r
-       result.stridew=result.width/4;\r
-       result.pagesize = (word)(result.width/4)*result.height;\r
-       if(result.id==2)\r
-               result.pi=p->width*p->pi;\r
-       else if(result.id==3)   result.pi=p->pi;\r
+       result.stridew=p->sw/4;//result.width/4;\r
+       result.pagesize = (word)(result.stridew)*result.height;\r
+       switch(result.id)\r
+       {\r
+               case 2:\r
+                       result.pi=p->width*4;\r
+               break;\r
+               case 3:\r
+                       result.pi=p->pi;\r
+               break;\r
+       }\r
 \r
        return result;\r
 }\r
@@ -419,7 +425,7 @@ 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+8;                             //++++0000 the quick and dirty fix of the major issue with p16 video display wwww\r
+    word scans   = vga_state.vga_stride;                               //++++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