X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fbakapee.c;h=49b9fa00a89c1830016778bc84b48ee3030f6249;hb=6021fc3f27b895d382fbd30488ead35657e39196;hp=39eb569e66d2fab90566e464d83275ba03d1232b;hpb=e9e21fdca956febac1bf358aeefb23e3ef93ad6d;p=16.git diff --git a/src/lib/bakapee.c b/src/lib/bakapee.c index 39eb569e..49b9fa00 100755 --- a/src/lib/bakapee.c +++ b/src/lib/bakapee.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2018 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -22,10 +22,9 @@ #include "src/lib/bakapee.h" -struct glob_game_vars *ggvv; //static word far* clockw= (word far*) 0x046C; /* 18.2hz clock */ -char global_temp_status_text[512]; -char global_temp_status_text2[512]; +//char global_temp_status_text[512]; +//char global_temp_status_text2[512]; //========================================================================== @@ -54,42 +53,45 @@ char global_temp_status_text2[512]; */ //extern ControlInfo c; -#define PIXPOSX gvar->video.page[0].sw/2 -#define PIXPOSY gvar->video.page[0].sh/2 +//#define PIXPOSX gvar->video.page[0].sw/2 +//#define PIXPOSY gvar->video.page[0].sh/2 #ifdef BAKAFIZZUNSIGNED boolean baka_FizzleFade (unsigned source, unsigned dest, unsigned width, unsigned height, unsigned frames, boolean abortable, global_game_variables_t *gvar) { word p,pixperframe; unsigned drawofs,pagedelta; byte mask,maskb[8] = {1,2,4,8}; - unsigned x,y,frame ,esorig,q; - dword rndval; - word screenseg = SCREENSEG; + unsigned x,y,frame; + long rndval; + word screenseg; +#ifdef __WATCOMC__ + unsigned esorig;//,q; +#endif pagedelta = dest-source; - rndval = 1; esorig = 0; q = 16; + rndval = 1; +#ifdef __WATCOMC__ + esorig = 0;// q = 16; +#endif x = y = 0; - pixperframe = 64000/(dword)frames; - -// IN_StartAck (); + pixperframe = (dword)(gvar->video.page[0].width*gvar->video.page[0].height)/frames;//64000/(dword)frames; + screenseg = SCREENSEG; -// VL_ShowPage(&(gvar->video.page[0]), 1, 0); -// VL_ShowPage(&(gvar->video.page[1]), 1, 0); +// IN_StartAck (gvar); // modexClearRegion(&(gvar->video.page[0]), 0, 0, gvar->video.page[0].width, gvar->video.page[0].height, 0); // modexClearRegion(&(gvar->video.page[1]), 0, 0, gvar->video.page[0].width, gvar->video.page[0].height, 15); -// VL_SetLineWidth(44, gvar); +#ifdef __WATCOMC__ __asm { mov [esorig],es } +#endif // TimeCount= frame=0; do // while (1) { -sprintf(global_temp_status_text, "%u", frame); -modexprint(&(gvar->video.page[0]), PIXPOSX, PIXPOSY, 1, 0, 47, 0, 1, global_temp_status_text); - if (abortable && kbhit())//IN_CheckAck () ) + if (abortable && kbhit())//IN_CheckAck (gvar) ) return true; __asm { @@ -130,11 +132,10 @@ noxor: mov [WORD PTR rndval+2],dx } -// if (x>destpage->width || y>destpage->height) -// if (xsw || ysh) - if ((x>width || y>height) && (xwidth || y>height) +// if ((x>width || y>height) && (xvideo.ofs.ylookup[y]) + (x>>2); +// drawofs = source+(gvar->video.ofs.ylookup[y]) + (x>>2); drawofs = source+(y*gvar->video.page[0].stridew) + (x>>2); /* sprintf(global_temp_status_text, "draw - %Fp", drawofs); @@ -150,14 +151,10 @@ modexprint(&(gvar->video.page[0]), PIXPOSX, q+PIXPOSY, 1, 0, 47, 0, 1, global_te // // copy one pixel // -//* mask = x&3; VGAREADMAP(mask); mask = maskb[mask]; VGAMAPMASK(mask); -//*/ -// modexputPixel(&(gvar->video.page[0]), x, y, rand()); -// VL_Plot (x, y, 15, &(gvar->video.ofs)); __asm { mov di,[drawofs] @@ -171,14 +168,17 @@ modexprint(&(gvar->video.page[0]), PIXPOSX, q+PIXPOSY, 1, 0, 47, 0, 1, global_te } frame++; //-- while (TimeCountDLStarted) + return; + + // DOSLIB: check our environment + probe_dos(); + + // DOSLIB: what CPU are we using? + // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS. + // So this code by itself shouldn't care too much what CPU it's running on. Except that other + // parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for + // the CPU to carry out tasks. --J.C. + cpu_probe(); + + // DOSLIB: check for VGA + if (!probe_vga()) { + printf("VGA probe failed\n"); + return; + } + // hardware must be VGA or higher! + if (!(vga_state.vga_flags & VGA_IS_VGA)) { + printf("This program requires VGA or higher graphics hardware\n"); + return; + } + + textInit(); + gvar->DLStarted = true; +} + //color ‚Ä‚·‚Æ void colortest(page_t *page, bakapee_t *pee) { @@ -702,13 +742,15 @@ void ding(page_t *page, bakapee_t *pee, word q) colorz(page, pee); modexprint(page, page->sw/2, page->sh/2, 1, 0, 47, 0, 1, "bakapi"); break; - case 9: +/* case 9: + modexClearRegion(&(ggvv->video.page[0]), 0, 0, ggvv->video.page[0].width/2, ggvv->video.page[0].height/2, 15); #ifdef BAKAFIZZUNSIGNED - baka_FizzleFade (ggvv->video.ofs.bufferofs, ggvv->video.ofs.displayofs, vga_state.vga_width, vga_state.vga_height, 70, true, ggvv); +// baka_FizzleFade (ggvv->video.ofs.bufferofs, ggvv->video.ofs.displayofs, vga_state.vga_width, vga_state.vga_height, 70, true, ggvv); + baka_FizzleFade (ggvv->video.ofs.bufferofs, ggvv->video.ofs.displayofs, ggvv->video.page[0].width, ggvv->video.page[0].height, 70, true, ggvv); #else baka_FizzleFade (&ggvv->video.page[1], &ggvv->video.page[0], vga_state.vga_width, vga_state.vga_height, 70, true, ggvv); #endif - break; + break;*/ case 10: ssd(page, pee, q); /*printf("%d\n", pee->coor);*/ break;