]> 4ch.mooo.com Git - 16.git/commitdiff
no idea why bcexmm.exe is broke w tweaked zcroll.exe a bit
authorsparky4 <sparky4@cock.li>
Fri, 9 Dec 2016 15:47:44 +0000 (09:47 -0600)
committersparky4 <sparky4@cock.li>
Fri, 9 Dec 2016 15:47:44 +0000 (09:47 -0600)
WHAT_WAS_CHANGED
src/.scroll.c.kate-swp [new file with mode: 0755]
src/lib/16_scr.h
src/scroll.c
src/zcroll.c

index 2036327b3a23f7458b3707051a4d1be7526abbe8..e97a9ccff4521fdad0ad9891cbd99d8a2989b7ec 100755 (executable)
@@ -9,6 +9,9 @@ broke much code w 1. Rewrite scroll16 to use only one player, instead of 1 of 4
 6. Instead of drawing map as a rectangle of tiles and a few strips to fill the black area of partially visible tiles, draw just a slightly bigger rectangle, with it's edges a bit out of the screen. That shouldn't be too resourse-consuming, I believe, but requires less explicit calls and reads. Probably. // as long as it is faster do it! also make a graphical representation of it w --sparky4
 broke way too much code with this wwww7. As stuff did not quite initialize properly, I have disabled keyboard interrupt vector override to be able to shut down program prematurely in case something goes wrong. So, in case you just want to replace these new files with the older and working ones, please remember to re-enable that, or you won't be able to controll the game without it. // YOU BROKE 16_IN WITH ONE PLAYER INSTEAD OF USING AN ARRAY OF 1 WWWWWWW --sparky4
 
+Read This:
+https://en.wikipedia.org/wiki/Adaptive_tile_refresh
+
 
 ==== changed or planned ones by sparky4 ====
 planned ones:
diff --git a/src/.scroll.c.kate-swp b/src/.scroll.c.kate-swp
new file mode 100755 (executable)
index 0000000..29d7843
Binary files /dev/null and b/src/.scroll.c.kate-swp differ
index 2b66f85ba036701778d6ad73152f576fc82ef2a0..94af24e6ebf978595cd99fb8f5bb5530589378d8 100755 (executable)
@@ -84,6 +84,42 @@ typedef struct
 #define MAPW   40\r
 #define MAPH   30\r
 \r
+       //if(player[0].hp==0) printf("%d wwww\n", player[0].y+8);\r
+       //else printf("\nplayer[0].y: %d\n", player[0].y);\r
+//     printf("palette offset: %d\n", paloffset/3);\r
+//++++ printf("Total used: %zu\n", oldfreemem-GetFreeSize());\r
+//++++ printf("Total free: %zu\n", GetFreeSize());\r
+//not used now printf("temporary player sprite 0: http://www.pixiv.net/member_illust.php?mode=medium&illust_id=45556867\n");\r
+//not used now printf("temporary player sprite 1: http://www.pixiv.net/member_illust.php?mode=medium&illust_id=44606385\n");\r
+//printf("mv[%u].tx: %d", pan.pn, mv[pan.pn].tx); printf("     mv[%u].ty: %d   ", pan.pn, mv[pan.pn].ty);\r
+//printf("gvar.kurokku:        "); printf("%.0f ", clock());   printf("tiku=%lu ", gvar.kurokku.tiku); printf("t=%.0f ", gvar.kurokku.t);      printf("ticktock()=%f ", ticktock(&gvar));      printf("%.0f fps", (double)gvar.kurokku.tiku/ticktock(&gvar));\r
+//printf("map.width=%d map.height=%d   map.data[0]=%d\n", mv[0].map->width, mv[0].map->height, mv[0].map->data[0]);\r
+#define SCROLLEXITMESG         printf("tx: %d  ", mv[0].tx);\\r
+       printf("ty: %d\n", mv[0].ty);\\r
+       printf("\n");\\r
+       printf("player vars:\n");\\r
+       printf("        x: %d", player[0].x); printf("  y: %d\n", player[0].y);\\r
+       \\r
+       printf("        tx: %d", player[0].tx); printf("        ty: %d\n", player[0].ty);\\r
+       printf("        triggx: %d", player[0].triggerx); printf("      triggy: %d\n", player[0].triggery);\\r
+       printf("        hp: %d", (player[0].hp));       printf("        q: %d", player[0].q);   printf("        player.info.dir: %d", player[0].info.dir);      printf("        player.d: %d ", player[0].d);\\r
+               printf("        pdir=%d\n", player[0].pdir);\\r
+       printf("        tile data value at player trigger position: %d\n\n", mv[0].map->data[(player[0].triggerx-1)+(map.width*(player[0].triggery-1))]);\\r
+\\r
+       printf("Virtual Screen: %dx", gvar.video.page[0].width);        printf("%d      ", gvar.video.page[0].height);\\r
+       printf("Screen: %dx", gvar.video.page[0].sw);   printf("%d\n", gvar.video.page[0].sh);\\r
+       printf("virtual tile resolution: %dx", gvar.video.page[0].tilesw);      printf("%d      ", gvar.video.page[0].tilesh);\\r
+       printf("tile resolution: %dx", gvar.video.page[0].tw);  printf("%d\n", gvar.video.page[0].th);\\r
+       printf("middle tile position: %dx", gvar.video.page[0].tilemidposscreenx);      printf("%d\n", gvar.video.page[0].tilemidposscreeny);\\r
+       modexprintmeminfo(&gvar.video);\\r
+\\r
+       printf("gvar.video.p=%u ", gvar.video.p); printf("gvar.video.r=%u ", gvar.video.r);\\r
+       printf("pageflipflop=%u\n", pageflipflop);\\r
+\\r
+       printf("&global_temp_status_text = %Fp\n", &global_temp_status_text);\\r
+\\r
+       printf("\n");\r
+\r
 extern boolean pageflipflop, pageploop;\r
 extern unsigned char shinku_fps_indicator_page;\r
 \r
index 70c3f40bb74df268ee00029db19f7ccdb6ec2509..03859245552740a2d3bcc6fd5942b4da8f3ad0e5 100755 (executable)
@@ -29,7 +29,7 @@
 //#define FADE\r
 #define MODEX  //this is for mode x initiating\r
 \r
-boolean dbg_nommpmca=1;\r
+extern boolean dbg_nommpmca;\r
 \r
 //word far *clock= (word far*) 0x046C; /* 18.2hz clock */\r
 //bitmap_t *p;\r
@@ -60,7 +60,7 @@ boolean panswitch=0;//1
 \r
 void main(int argc, char *argv[])\r
 {\r
-       //byte *mesg=malloc(sizeof(dword));\r
+       dbg_nommpmca=1;\r
 \r
        if(argv[1]) bakapee = atoi(argv[1]);\r
        else bakapee = 1;\r
@@ -151,7 +151,6 @@ void main(int argc, char *argv[])
        player[0].tx = mv[0].tx + mv[0].page->tilemidposscreenx;\r
        player[0].ty = mv[0].ty + mv[0].page->tilemidposscreeny;\r
        IN_initplayer(&player, 0);\r
-       //IN_initplayer(&player, 1);\r
 \r
 #ifndef        SPRITE\r
        modexClearRegion(mv[0].page, player[0].x, player[0].y-TILEWH, 16, 32, 15);\r
@@ -293,38 +292,7 @@ void main(int argc, char *argv[])
        Shutdown16(&gvar);\r
        printf("\nProject 16 scroll.exe. This is just a test file!\n");\r
        printf("version %s\n", VERSION);\r
-       printf("tx: %d  ", mv[0].tx);\r
-       printf("ty: %d\n", mv[0].ty);\r
-       printf("\n");\r
-       printf("player vars:\n");\r
-       printf("        x: %d", player[0].x); printf("  y: %d\n", player[0].y);\r
-       //if(player[0].hp==0) printf("%d wwww\n", player[0].y+8);\r
-       //else printf("\nplayer[0].y: %d\n", player[0].y);\r
-       printf("        tx: %d", player[0].tx); printf("        ty: %d\n", player[0].ty);\r
-       printf("        triggx: %d", player[0].triggerx); printf("      triggy: %d\n", player[0].triggery);\r
-       printf("        hp: %d", (player[0].hp));       printf("        q: %d", player[0].q);   printf("        player.info.dir: %d", player[0].info.dir);      printf("        player.d: %d ", player[0].d);\r
-               printf("        pdir=%d\n", player[0].pdir);\r
-       printf("        tile data value at player trigger position: %d\n\n", mv[0].map->data[(player[0].triggerx-1)+(map.width*(player[0].triggery-1))]);\r
-//     printf("palette offset: %d\n", paloffset/3);\r
-//++++ printf("Total used: %zu\n", oldfreemem-GetFreeSize());\r
-//++++ printf("Total free: %zu\n", GetFreeSize());\r
-//not used now printf("temporary player sprite 0: http://www.pixiv.net/member_illust.php?mode=medium&illust_id=45556867\n");\r
-//not used now printf("temporary player sprite 1: http://www.pixiv.net/member_illust.php?mode=medium&illust_id=44606385\n");\r
-       printf("Virtual Screen: %dx", gvar.video.page[0].width);        printf("%d      ", gvar.video.page[0].height);\r
-       printf("Screen: %dx", gvar.video.page[0].sw);   printf("%d\n", gvar.video.page[0].sh);\r
-       printf("virtual tile resolution: %dx", gvar.video.page[0].tilesw);      printf("%d      ", gvar.video.page[0].tilesh);\r
-       printf("tile resolution: %dx", gvar.video.page[0].tw);  printf("%d\n", gvar.video.page[0].th);\r
-       printf("middle tile position: %dx", gvar.video.page[0].tilemidposscreenx);      printf("%d\n", gvar.video.page[0].tilemidposscreeny);\r
-       modexprintmeminfo(&gvar.video);\r
-       //printf("mv[%u].tx: %d", pan.pn, mv[pan.pn].tx); printf("      mv[%u].ty: %d   ", pan.pn, mv[pan.pn].ty);\r
-       printf("gvar.video.p=%u ", gvar.video.p); printf("gvar.video.r=%u ", gvar.video.r);\r
-       printf("pageflipflop=%u\n", pageflipflop);\r
-       //printf("gvar.kurokku: "); printf("%.0f ", clock());   printf("tiku=%lu ", gvar.kurokku.tiku); printf("t=%.0f ", gvar.kurokku.t);      printf("ticktock()=%f ", ticktock(&gvar));      printf("%.0f fps", (double)gvar.kurokku.tiku/ticktock(&gvar));\r
-       printf("&global_temp_status_text = %Fp\n", &global_temp_status_text);\r
-       printf("\n");\r
-       //printf("map.width=%d  map.height=%d   map.data[0]=%d\n", mv[0].map->width, mv[0].map->height, mv[0].map->data[0]);\r
-\r
-       printf("\n");\r
+       SCROLLEXITMESG;\r
        switch(detectcpu())\r
        {\r
                case 0: cpus = "8086/8088 or 186/88"; break;\r
index 0ec3b84790401f89aaaa220b3ff25f012c56efc6..a28522d71f4ded0c85f7d199ef5412fd13af310c 100755 (executable)
@@ -27,7 +27,6 @@
 #include "src/lib/16_dbg.h"\r
 \r
 #define MODEXZ\r
-boolean dbg_noplayerinpu=0;\r
 \r
 //TODO: known issues the array dependent mv stuff and player arrays\r
 global_game_variables_t gvar;\r
@@ -63,7 +62,7 @@ void main(int argc, char *argv[])
 \r
        pan.pn=0;\r
        // OK, this one takes hellova time and needs to be done in farmalloc or MM_...\r
-       //TODO: USE MM AND CA AND PM WWWWWWWW\r
+       //IN CA i think you use CAL_SetupGrFile but i do think we should work together on this part --sparky4\r
        player[0].ent = malloc(sizeof(entity_t));\r
        player[0].ent->spri = malloc(sizeof(struct sprite));\r
        player[0].ent->spri->spritesheet = malloc(sizeof(struct vrs_container));\r
@@ -79,7 +78,6 @@ void main(int argc, char *argv[])
        read_vrs(&gvar, "data/spri/chikyuu.vrs", player[0].ent->spri->spritesheet);\r
 \r
        //      input!\r
-if(!dbg_noplayerinpu)\r
        IN_Default(0, &player,ctrl_Keyboard1);\r
 \r
        // save the palette\r
@@ -90,6 +88,9 @@ if(!dbg_noplayerinpu)
 #endif\r
        textInit();\r
        VGAmodeX(bakapee, 1, &gvar);\r
+       //strcpy(global_temp_status_text, "press enter for video setup\nescape to quit");\r
+       //modexprint(&gvar.video.page[0], 64, 64, 1, 7, 0, global_temp_status_text);\r
+       //while(!IN_KeyDown(sc_Enter)){ if(IN_KeyDown(sc_Escape)) goto quit; } IN_UserInput(1,1); //wwww\r
 #ifdef MODEXZ\r
 #ifdef FADE\r
        modexPalBlack();        //reset the palette~\r
@@ -102,19 +103,28 @@ if(!dbg_noplayerinpu)
 #endif\r
 \r
        // setup camera and screen~\r
-       strcpy(global_temp_status_text, "press a key for video setup");\r
-       modexprint(mv[0].page, 0, 64, 1, 7, 0, global_temp_status_text);\r
-\r
+       strcpy(global_temp_status_text, "press enter for page setup\nescape to quit");\r
+       modexprint(&gvar.video.page[0], 64, 64, 1, 7, 0, global_temp_status_text);\r
+       while(!IN_KeyDown(sc_Enter)){ if(IN_KeyDown(sc_Escape)) goto quit; } IN_UserInput(1,1); //wwww\r
        modexHiganbanaPageSetup(&gvar.video);\r
-       mv[0].page = &gvar.video.page[0];\r
-       mv[0].map = &map;\r
-       mv[0].video = &gvar.video;\r
-       mv[0].pan       = &pan;\r
+       for(i=0;i<gvar.video.num_of_pages;i++)\r
+       {\r
+               mv[i].page = &gvar.video.page[i];\r
+               mv[i].map = &map;\r
+               mv[i].video = &gvar.video;\r
+               mv[i].pan       = &pan;\r
+       }\r
        player[0].ent->spri->x = player[0].ent->spri->y = 20;\r
 \r
+       strcpy(global_temp_status_text, "press enter for mapGoTo setup\nescape to quit");\r
+       modexprint(mv[0].page/*&gvar.video.page[0]*/, 64, 64, 1, 7, 0, global_temp_status_text);\r
+       while(!IN_KeyDown(sc_Enter)){ if(IN_KeyDown(sc_Escape)) goto quit; } IN_UserInput(1,1); //wwww\r
        // set up paging\r
        //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen\r
        mapGoTo(mv, 0, 0);\r
+       strcpy(global_temp_status_text, "press enter for final initiation setup\nescape to quit");\r
+       modexprint(&gvar.video.page[0], 64, 64, 1, 7, 0, global_temp_status_text);\r
+       while(!IN_KeyDown(sc_Enter)){ if(IN_KeyDown(sc_Escape)) goto quit; } IN_UserInput(1,1); //wwww\r
 #endif\r
 \r
        //TODO: put player in starting position of spot\r
@@ -145,7 +155,6 @@ if(!dbg_noplayerinpu)
 #ifdef FADE\r
        modexFadeOn(4, gpal);\r
 #endif\r
-       if(!dbg_noplayerinpu)\r
        while(!IN_KeyDown(sc_Escape))// && player[0].hp>0)\r
        {\r
                shinku(&gvar);\r
@@ -222,14 +231,9 @@ if(!dbg_noplayerinpu)
                player[0].hp = 0;\r
        }\r
 \r
-       else\r
-               while(!kbhit())\r
-               {\r
-                       shinku(&gvar);\r
-               }\r
-\r
        /* fade back to text mode */\r
        /* but 1st lets save the game palette~ */\r
+       quit:\r
 #ifdef FADE\r
        modexPalSave(gpal);\r
        modexSavePalFile("data/g.pal", gpal);\r
@@ -239,31 +243,7 @@ if(!dbg_noplayerinpu)
        Shutdown16(&gvar);\r
        printf("\nProject 16 zcroll.exe. This is just a test file!\n");\r
        printf("version %s\n", VERSION);\r
-       printf("tx: %d  ", mv[0].tx);\r
-       printf("ty: %d\n", mv[0].ty);\r
-       printf("\n");\r
-       printf("player vars:\n");\r
-       printf("        x: %d", player[0].x); printf("  y: %d\n", player[0].y);\r
-       //if(player[0].hp==0) printf("%d wwww\n", player[0].y+8);\r
-       //else printf("\nplayer[0].y: %d\n", player[0].y);\r
-       printf("        tx: %d", player[0].tx); printf("        ty: %d\n", player[0].ty);\r
-       printf("        triggx: %d", player[0].triggerx); printf("      triggy: %d\n", player[0].triggery);\r
-       printf("        hp: %d", (player[0].hp));       printf("        q: %d", player[0].q);   printf("        player.info.dir: %d", player[0].info.dir);      printf("        player.d: %d ", player[0].d);\r
-               printf("        pdir=%d\n", player[0].pdir);\r
-       printf("        tile data value at player trigger position: %d\n\n", mv[0].map->data[(player[0].triggerx-1)+(map.width*(player[0].triggery-1))]);\r
-       printf("Virtual Screen: %dx", gvar.video.page[0].width);        printf("%d      ", gvar.video.page[0].height);\r
-       printf("Screen: %dx", gvar.video.page[0].sw);   printf("%d\n", gvar.video.page[0].sh);\r
-       printf("virtual tile resolution: %dx", gvar.video.page[0].tilesw);      printf("%d      ", gvar.video.page[0].tilesh);\r
-       printf("tile resolution: %dx", gvar.video.page[0].tw);  printf("%d\n", gvar.video.page[0].th);\r
-       printf("middle tile position: %dx", gvar.video.page[0].tilemidposscreenx);      printf("%d\n", gvar.video.page[0].tilemidposscreeny);\r
-       modexprintmeminfo(&gvar.video);\r
-       //printf("mv[%u].tx: %d", pan.pn, mv[pan.pn].tx); printf("      mv[%u].ty: %d   ", pan.pn, mv[pan.pn].ty);\r
-       printf("gvar.video.p=%u ", gvar.video.p); printf("gvar.video.r=%u ", gvar.video.r);\r
-       printf("pageflipflop=%u\n", pageflipflop);\r
-       printf("\n");\r
-       //printf("map.width=%d  map.height=%d   map.data[0]=%d\n", mv[0].map->width, mv[0].map->height, mv[0].map->data[0]);\r
-\r
-       printf("\n");\r
+       SCROLLEXITMESG;\r
        switch(detectcpu())\r
        {\r
                case 0: cpus = "8086/8088 or 186/88"; break;\r