]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_vl.c
p16 is being worked on a bunch by me wwww [16_ca needs huge amounts of work and I...
[16.git] / src / lib / 16_vl.c
index 882dd3d2f21f37d6650a7735fa16d3e1da606f83..12d8c4b6e125dacc4a6632d167a6623bb74915d7 100755 (executable)
@@ -282,7 +282,7 @@ void modexEnter(sword vq, boolean cmem, global_game_variables_t *gv)
        switch(vq)\r
        {\r
                case 1:\r
-//             case 8: //320x240 no buffer\r
+               case 8: //320x240 no buffer\r
                        //CRTParmCount = sizeof(ModeX_320x240regs) / sizeof(ModeX_320x240regs[0]);\r
                        /*for(i=0; i<CRTParmCount; i++) {\r
                                outpw(CRTC_INDEX, ModeX_320x240regs[i]);\r
@@ -354,7 +354,7 @@ void modexEnter(sword vq, boolean cmem, global_game_variables_t *gv)
 //--   VL_SetLineWidth (cm.offset, gv);\r
        //gv->video.ofs.displayofs = 0;\r
        //gv->video.ofs.bufferofs = gv->video.page[0].width*gv->video.page[0].height;//gvar->video.page[0].pagesize;\r
-//     gv->video.curr_mode=vq;\r
+       gv->video.curr_mode=vq;\r
        gv->video.VL_Started=1;\r
 }\r
 \r
@@ -364,11 +364,11 @@ void modexLeave(void)
        VL_vgaSetMode(TEXT_MODE);\r
 }\r
 \r
+#if 0\r
 page_t\r
 modexDefaultPage(page_t *p)\r
 {\r
        page_t page;\r
-\r
        /* default page values */\r
        //page.data = VGA;\r
        //page.data = (byte far *)(vga_state.vga_graphics_ram);\r
@@ -389,12 +389,16 @@ modexDefaultPage(page_t *p)
        page.pagesize = (word)(page.stridew)*page.height;\r
        page.pi=page.width*4;\r
        page.id = 0;\r
-\r
+       if(ggvv->video.curr_mode = 1)\r
+       {\r
+               page.width += TILEWHD;\r
+               page.height += TILEWHD;\r
+       }\r
        return page;\r
 }\r
-#if 0\r
+#endif\r
 page_t\r
-modexDefaultPage(page_t *p, video_t *v)\r
+modexDefaultPage(page_t *p, global_game_variables_t *gvar)\r
 {\r
        page_t page;\r
 \r
@@ -408,7 +412,7 @@ modexDefaultPage(page_t *p, video_t *v)
        page.sh = p->sh;\r
        page.width = p->sw;\r
        page.height = p->sh;\r
-       if(v->curr_mode == 1)\r
+       if(gvar->video.curr_mode == 1)\r
 {      page.width += TILEWHD;\r
        page.height += TILEWHD; }\r
        page.ti.tw = page.sw/TILEWH;\r
@@ -424,7 +428,7 @@ modexDefaultPage(page_t *p, video_t *v)
 \r
        return page;\r
 }\r
-#endif\r
+\r
 /* returns the next page in contiguous memory\r
  * the next page will be the same size as p, by default\r
  */\r
@@ -509,38 +513,38 @@ void VL_Initofs(video_t *video)
        }\r
 }\r
 \r
-void modexHiganbanaPageSetup(video_t *video)\r
+void modexHiganbanaPageSetup(global_game_variables_t *gvar)\r
 {\r
-       video->vmem_remain=65535U;\r
-       video->num_of_pages=0;\r
-       (video->page[0]) = modexDefaultPage(&(video->page[0])/*, video*/);      video->num_of_pages++;  //video->page[0].width += (TILEWHD); video->page[0].height += (TILEWHD);\r
-       (video->page[1]) = modexNextPage(&(video->page[0]));    video->num_of_pages++;\r
-//0000 (video->page[2]) = modexNextPageFlexibleSize(&(video->page[1]), (video->page[0]).width, TILEWH*4);              video->num_of_pages++;\r
-//0000 (video->page[3]) = (video->page[2]);            video->num_of_pages++;\r
-////   (video->page[2]) = modexNextPageFlexibleSize(&(video->page[1]), TILEWH*4, TILEWH*4);            video->num_of_pages++;\r
-////   (video->page[3]) = modexNextPageFlexibleSize(&(video->page[2]), video->page[0].sw, 208);        video->num_of_pages++;\r
-       (video->page[2]) = modexNextPageFlexibleSize(&(video->page[1]), video->page[0].width, 96);      video->num_of_pages++;\r
-       (video->page[3]) = modexNextPageFlexibleSize(&(video->page[2]), video->page[0].width, 96);      video->num_of_pages++;\r
-       modexCalcVmemRemain(video);\r
-\r
-       video->sp=video->p =    0;      //showpage\r
-       video->dorender =       1;                      //render\r
-       video->vh=video->page[0].height+video->page[1].height+video->page[2].height+video->page[3].height;\r
-\r
-       VL_Initofs(video);\r
+       gvar->video.vmem_remain=65535U;\r
+       gvar->video.num_of_pages=0;\r
+       (gvar->video.page[0]) = modexDefaultPage(&(gvar->video.page[0]), gvar); gvar->video.num_of_pages++;     //gvar->video.page[0].width += (TILEWHD); gvar->video.page[0].height += (TILEWHD);\r
+       (gvar->video.page[1]) = modexNextPage(&(gvar->video.page[0]));  gvar->video.num_of_pages++;\r
+//0000 (gvar->video.page[2]) = modexNextPageFlexibleSize(&(gvar->video.page[1]), (gvar->video.page[0]).width, TILEWH*4);               gvar->video.num_of_pages++;\r
+//0000 (gvar->video.page[3]) = (gvar->video.page[2]);          gvar->video.num_of_pages++;\r
+////   (gvar->video.page[2]) = modexNextPageFlexibleSize(&(gvar->video.page[1]), TILEWH*4, TILEWH*4);          gvar->video.num_of_pages++;\r
+////   (gvar->video.page[3]) = modexNextPageFlexibleSize(&(gvar->video.page[2]), gvar->video.page[0].sw, 208); gvar->video.num_of_pages++;\r
+       (gvar->video.page[2]) = modexNextPageFlexibleSize(&(gvar->video.page[1]), gvar->video.page[0].width, 96);       gvar->video.num_of_pages++;\r
+       (gvar->video.page[3]) = modexNextPageFlexibleSize(&(gvar->video.page[2]), gvar->video.page[0].width, 96);       gvar->video.num_of_pages++;\r
+       modexCalcVmemRemain(&gvar->video);\r
+\r
+       gvar->video.sp=gvar->video.p =  0;      //showpage\r
+       gvar->video.dorender =  1;                      //render\r
+       gvar->video.vh=gvar->video.page[0].height+gvar->video.page[1].height+gvar->video.page[2].height+gvar->video.page[3].height;\r
+\r
+       VL_Initofs(&gvar->video);\r
        //doslib origi var\r
-       video->vga_state.omemptr=                       vga_state.vga_graphics_ram;\r
-       video->vga_state.vga_draw_stride=       vga_state.vga_draw_stride;\r
-       video->vga_state.vga_draw_stride_limit= vga_state.vga_draw_stride_limit;\r
+       gvar->video.vga_state.omemptr=                  vga_state.vga_graphics_ram;\r
+       gvar->video.vga_state.vga_draw_stride=  vga_state.vga_draw_stride;\r
+       gvar->video.vga_state.vga_draw_stride_limit=    vga_state.vga_draw_stride_limit;\r
        //sprite render switch and bgpreservation switch\r
-       video->vga_state.rss=   1;\r
-       video->vga_state.bgps=  1;\r
+       gvar->video.vga_state.rss=      1;\r
+       gvar->video.vga_state.bgps=     1;\r
 \r
        //setup the buffersize\r
-       video->page[0].dx=video->page[0].dy=\r
-               video->page[1].dx=video->page[1].dy=TILEWH;     // 1 tile size buffer\r
-       video->page[2].dx=video->page[2].dy=\r
-               video->page[3].dx=video->page[3].dy=0;          // cache pages are buffer wwww\r
+       gvar->video.page[0].dx=gvar->video.page[0].dy=\r
+               gvar->video.page[1].dx=gvar->video.page[1].dy=TILEWH;   // 1 tile size buffer\r
+       gvar->video.page[2].dx=gvar->video.page[2].dy=\r
+               gvar->video.page[3].dx=gvar->video.page[3].dy=0;                // cache pages are buffer wwww\r
 }\r
 \r
 //\r
@@ -1370,17 +1374,24 @@ void VL_PrintmodexmemInfo(video_t *v)
 //     printf("========================================\n");\r
        printf("  Virtual Screen: %dx", v->page[0].width);      printf("%d      ", v->page[0].height);  printf("Tile: %dx", v->page[0].ti.tilesw);              printf("%d", v->page[0].ti.tilesh);     printf("=((Virtual Screen)/16)\n");\r
        printf("          Screen: %dx", v->page[0].sw);         printf("%d      ", v->page[0].sh);              printf("Tile: %dx", v->page[0].ti.tw);                  printf("%d", v->page[0].ti.th);         printf("=((Screen)/16)\n");\r
+       printf("  stride: %u ", vga_state.vga_stride);\r
+       printf("draw_stride: %u ", vga_state.vga_draw_stride);\r
+       printf("draw_stride_limit: %u\n", vga_state.vga_draw_stride_limit);\r
 \r
-       printf("  Free Video Memory: %u\n", v->vmem_remain);\r
-       printf("  page");\r
-       for(i=0; i<v->num_of_pages;i++)\r
+       if(v->vmem_remain)\r
+               printf("  Free Video Memory: %u\n", v->vmem_remain);\r
+       if(v->num_of_pages)\r
        {\r
-               printf("        [%u]=", i);\r
-               printf("(%Fp)", (v->page[i].data));\r
-               printf(" size=%u        ", v->page[i].pagesize);\r
-               printf("w=%-3lu  h=%-3lu ", (unsigned long)v->page[i].width, (unsigned long)v->page[i].height);\r
-               printf("sw=%-3lu  sh=%-3lu ", (unsigned long)v->page[i].sw, (unsigned long)v->page[i].sh);\r
-               printf("pi=%u", v->page[i].pi);\r
-               printf("\n");\r
+       printf("  page");\r
+               for(i=0; i<v->num_of_pages;i++)\r
+               {\r
+                       printf("        [%u]=", i);\r
+                       printf("(%Fp)", (v->page[i].data));\r
+                       printf(" size=%u        ", v->page[i].pagesize);\r
+                       printf("w=%-3lu  h=%-3lu ", (unsigned long)v->page[i].width, (unsigned long)v->page[i].height);\r
+                       printf("sw=%-3lu  sh=%-3lu ", (unsigned long)v->page[i].sw, (unsigned long)v->page[i].sh);\r
+                       printf("pi=%u", v->page[i].pi);\r
+                       printf("\n");\r
+               }\r
        }\r
 }\r