]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_vl.c
fixed wwww now i need to work on map system stuff wwwwwwwwwwwwwww i am also going...
[16.git] / src / lib / 16_vl.c
index 782bd3d654306b22ee891e2d6df22ffa3bcdc382..ab9a143b045cef28e6188fde8234f4ef3763862e 100755 (executable)
@@ -279,8 +279,14 @@ void modexCalcVmemRemain(video_t *video)
 \r
 void VL_Initofs(video_t *video)\r
 {\r
-       video->ofs.offscreen_ofs =      video->page[0].pagesize+video->page[1].pagesize;//(vga_state.vga_stride * vga_state.vga_height);\r
-       video->ofs.pattern_ofs =        (uint16_t)video->page[2].data;\r
+       if(!video->bgps)\r
+       {\r
+               video->ofs.offscreen_ofs =      video->page[0].pagesize+video->page[1].pagesize;//(vga_state.vga_stride * vga_state.vga_height);\r
+               video->ofs.pattern_ofs =        (uint16_t)video->page[2].data;\r
+       }else{\r
+               video->ofs.offscreen_ofs =      0;\r
+               video->ofs.pattern_ofs =        0;//(uint16_t)video->page[0].data;\r
+       }\r
 }\r
 \r
 void modexHiganbanaPageSetup(video_t *video)\r
@@ -297,17 +303,18 @@ void modexHiganbanaPageSetup(video_t *video)
        (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;\r
-       video->r=1;\r
-       video->vh=video->page[0].height+video->page[1].height+video->page[3].height-8;//+video->page[2].height\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
        //doslib origi var\r
        video->omemptr=                 vga_state.vga_graphics_ram;\r
        video->vga_draw_stride= vga_state.vga_draw_stride;\r
        video->vga_draw_stride_limit=   vga_state.vga_draw_stride_limit;\r
-       //sprite render switch\r
-       video->rss=0;\r
+       //sprite render switch and bgpreservation switch\r
+       video->rss=             1;\r
+       video->bgps=    1;\r
 \r
        //setup the buffersize\r
        video->page[0].dx=video->page[0].dy=\r
@@ -649,8 +656,7 @@ modexNewPal() {
 \r
        /* handle errors */\r
        if(!ptr) {\r
-       printf("Could not allocate palette.\n");\r
-       exit(-1);\r
+               printf("Could not allocate palette.\n");\r
        }\r
 \r
        return ptr;\r
@@ -674,7 +680,6 @@ modexLoadPalFile(byte *filename, byte **palette) {
        file = fopen(filename, "rb");\r
        if(!file) {\r
        printf("Could not open palette file: %s\n", filename);\r
-       exit(-2);\r
        }\r
 \r
        /* read the file */\r
@@ -695,7 +700,7 @@ void VL_LoadPalFile(const char *filename, byte *palette)
        if (fd >= 0) {\r
                word i;\r
 \r
-               read(fd,palette,768);\r
+               read(fd,palette,        PAL_SIZE);\r
                close(fd);\r
 \r
                vga_palette_lseek(0);\r
@@ -713,7 +718,6 @@ modexSavePalFile(char *filename, byte *pal) {
        file = fopen(filename, "wb");\r
        if(!file) {\r
        printf("Could not open %s for writing\n", filename);\r
-       exit(-2);\r
        }\r
 \r
        /* write the data to the file */\r
@@ -1114,7 +1118,7 @@ void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, cons
        word s, o, w;\r
        word x_draw = x;\r
        //word addr = (word) romFontsData.l;\r
-       word addrq = (page->width/4) * y + (x / 4) + ((word)page->data);\r
+       word addrq = (page->stridew) * y + (x / 4) + ((word)page->data);\r
        word addrr = addrq;\r
        byte c;\r
 \r
@@ -1130,7 +1134,7 @@ void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, cons
        {\r
                x = x_draw;\r
                romFontsData.chw = 0;\r
-               addrq += (page->width / 4) * 8;\r
+               addrq += (page->stridew) * 8;\r
                addrr = addrq;\r
                y += 8;\r
                continue;\r
@@ -1330,6 +1334,24 @@ modexWaitBorder() {
        }\r
 }\r
 \r
+void\r
+modexWaitBorder_start()\r
+{\r
+       while(inp(INPUT_STATUS_1)  & 8)  {\r
+       // spin\r
+       }\r
+\r
+}\r
+\r
+void\r
+modexWaitBorder_end()\r
+{\r
+       while(!(inp(INPUT_STATUS_1)  & 8))  {\r
+       // spin\r
+       }\r
+\r
+}\r
+\r
 //\r
 // printings of video memory information\r
 //\r