]> 4ch.mooo.com Git - 16.git/blobdiff - src/16.c
16.c needs to probe DOS and VGA before using modex library.
[16.git] / src / 16.c
index 154714deb2d165cff2d7640af2c29aa51836c6c3..27c17a58c57641cb14d8324a26b040567f53b8d0 100755 (executable)
--- a/src/16.c
+++ b/src/16.c
@@ -1,5 +1,5 @@
 /* Project 16 Source Code~\r
- * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669\r
+ * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123\r
  *\r
  * This file is part of Project 16.\r
  *\r
@@ -27,14 +27,34 @@ engi_stat_t engi_stat;
 const char *cpus;\r
 byte *dpal, *gpal;\r
 player_t player[MaxPlayers];\r
-page_t screen;\r
+//page_t screen;\r
 \r
 void\r
 main(int argc, char *argv[])\r
 {\r
+       // DOSLIB: check our environment\r
+       probe_dos();\r
+\r
+       // DOSLIB: what CPU are we using?\r
+       // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS.\r
+       //      So this code by itself shouldn't care too much what CPU it's running on. Except that other\r
+       //      parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for\r
+       //      the CPU to carry out tasks. --J.C.\r
+       cpu_probe();\r
+\r
+       // DOSLIB: check for VGA\r
+       if (!probe_vga()) {\r
+               printf("VGA probe failed\n");\r
+               return;\r
+       }\r
+       // hardware must be VGA or higher!\r
+       if (!(vga_state.vga_flags & VGA_IS_VGA)) {\r
+               printf("This program requires VGA or higher graphics hardware\n");\r
+               return;\r
+       }\r
+\r
        //screen = modexDefaultPage();\r
        engi_stat = ENGI_RUN;\r
-       gvar.clock_start=*clockdw;\r
        //textInit();\r
 \r
        /* save the palette */\r
@@ -46,17 +66,15 @@ main(int argc, char *argv[])
        /*modexPalSave(gpal);\r
        modexSavePalFile("data/g.pal", gpal);*/\r
        printf("wwww loop wwww\n");\r
-       VGAmodeX(1, &gvar);\r
+       VGAmodeX(1, 1, &gvar);\r
        modexPalBlack();        //so player will not see loadings~\r
        IN_Startup();\r
        IN_Default(0,&player,ctrl_Joystick);\r
-       //modexprint(&screen, 32, 32, 1, 2, 0, "a");\r
+       //modexprint(&screen, 32, 32, 1, 2, 0, "a", 1);\r
        while(ENGI_EXIT != engi_stat)\r
        {\r
                IN_ReadControl(0,&player);\r
                if(IN_KeyDown(sc_Escape)) engi_stat = ENGI_EXIT;\r
-               shinku(&screen, &gvar);\r
-               gvar.tiku++;\r
        }\r
        switch(detectcpu())\r
        {\r
@@ -65,7 +83,7 @@ main(int argc, char *argv[])
                case 2: cpus = "386 or newer"; break;\r
                default: cpus = "internal error"; break;\r
        }\r
-       VGAmodeX(0, &gvar);\r
+       VGAmodeX(0, 1, &gvar);\r
        printf("Project 16 16.exe. This is supposed to be the actual finished game executable!\n");\r
        printf("version %s\n", VERSION);\r
        printf("detected CPU type: %s\n", cpus);\r