switch(vq)\r
{\r
case 1:\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
}*/\r
- /* width and height */\r
+ // width and height //\r
gv->video.page[0].sw = vga_state.vga_width = 320; // VGA lib currently does not update this\r
gv->video.page[0].sh = vga_state.vga_height = 240; // VGA lib currently does not update this\r
- /* virtual width and height. match screen, at first */\r
+ // virtual width and height. match screen, at first //\r
gv->video.page[0].height = gv->video.page[0].sh;\r
gv->video.page[0].width = gv->video.page[0].sw;\r
\r
}\r
break;\r
}\r
- VL_SetLineWidth (cm.offset, &gv->video.ofs);\r
+//-- 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.VL_Started=1;\r
}\r
\r
VL_vgaSetMode(TEXT_MODE);\r
}\r
\r
+#if 0\r
page_t\r
modexDefaultPage(page_t *p)\r
+{\r
+ page_t page;\r
+ /* default page values */\r
+ //page.data = VGA;\r
+ //page.data = (byte far *)(vga_state.vga_graphics_ram);\r
+ page.data = (vga_state.vga_graphics_ram);\r
+ page.dx = 0;\r
+ page.dy = 0;\r
+ page.sw = p->sw;\r
+ page.sh = p->sh;\r
+ page.width = p->sw;\r
+ page.height = p->sh;\r
+ page.ti.tw = page.sw/TILEWH;\r
+ page.ti.th = page.sh/TILEWH;\r
+ page.ti.tilesw=page.width/TILEWH;\r
+ page.ti.tilesh=page.height/TILEWH;\r
+ page.ti.tilemidposscreenx = page.ti.tw/2;\r
+ page.ti.tilemidposscreeny = (page.ti.th/2)+1;\r
+ page.stridew=page.width/4;\r
+ page.pagesize = (word)(page.stridew)*page.height;\r
+ page.pi=page.width*4;\r
+ page.id = 0;\r
+ if(ggvv->video.curr_mode = 1)\r
+ {\r
+ page.width += TILEWHD;\r
+ page.height += TILEWHD;\r
+ }\r
+ return page;\r
+}\r
+#endif\r
+page_t\r
+modexDefaultPage(page_t *p, global_game_variables_t *gvar)\r
{\r
page_t page;\r
\r
page.dy = 0;\r
page.sw = p->sw;\r
page.sh = p->sh;\r
- page.width = p->sw+TILEWHD;\r
- page.height = p->sh+TILEWHD;\r
+ page.width = p->sw;\r
+ page.height = p->sh;\r
+ if(gvar->video.curr_mode == 1)\r
+{ page.width += TILEWHD;\r
+ page.height += TILEWHD; }\r
page.ti.tw = page.sw/TILEWH;\r
page.ti.th = page.sh/TILEWH;\r
page.ti.tilesw=page.width/TILEWH;\r
}\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->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
\r
void VL_LoadPalFile(const char *filename, byte *palette, global_game_variables_t *gvar)\r
{\r
- VL_LoadPalFilewithoffset(filename, palette, 8, gvar);\r
+ VL_LoadPalFilewithoffset(filename, palette, 9, gvar);\r
// VL_LoadPalFileCore(palette);\r
}\r
\r
outp(PAL_DATA_REG, col);\r
return col;\r
}\r
+\r
//check 16_vl_1.c\r
\r
void modexputPixel(page_t *page, int x, int y, byte color)\r
// 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