case 2: // TODO: 160x120 according to ModeX_160x120regs\r
return;\r
case 3: // TODO: 160x120 according to ModeX_320x200regs\r
- gv->video.page[0].sw = vga_state.vga_width = 300; // VGA lib currently does not update this\r
- gv->video.page[0].sh = vga_state.vga_height = 200; // VGA lib currently does not update this\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
- cm.offset = (vga_state.vga_width / (4 * 2)); // 320 wide (40 x 4 pixel groups x 2)\r
- //return;\r
- break;\r
+ return;\r
case 4: // TODO: 160x120 according to ModeX_192x144regs\r
return;\r
case 5: // TODO: 160x120 according to ModeX_256x192regs\r
}\r
break;\r
}\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
+//-- 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
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
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
-\r
return page;\r
}\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
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
}\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
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
}\r
}\r
\r
-void modexprint(page_t *page, sword x, sword y, word t, boolean tlsw, word col, word bgcol, boolean sw, const byte *str)\r
+void modexprint(page_t *page, sword x, sword y, word t, boolean tlsw, word color, word bgcolor, boolean vidsw, const byte *str)\r
{\r
word s, o, w;\r
word x_draw;\r
word addrr;\r
byte c;\r
\r
- switch(sw)\r
+ switch(vidsw)\r
{\r
case 0:\r
printf("%s\n", str);\r
// no need for inline assembly!\r
// NTS: It might even be faster to just let the modexDrawChar point directly at ROM font than to copy per char! --J.C.\r
_fmemcpy(romFontsData.l,MK_FP(s,o+(w*c))/*ROM font location*/,w/*char size*/);\r
- modexDrawChar(page, x_draw/*for mode X planar use*/, t, col, bgcol, addrr);\r
+ modexDrawChar(page, x_draw/*for mode X planar use*/, t, color, bgcolor, addrr);\r
x_draw += 8; /* track X for edge of screen */\r
addrr += 2; /* move 8 pixels over (2 x 4 planar pixels per byte) */\r
}\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