From 2e3fb239b58cf341ceb5b4e7b39b6542f5581cae Mon Sep 17 00:00:00 2001 From: sparky4 Date: Tue, 6 Dec 2016 13:30:47 -0600 Subject: [PATCH] ok wwwww zscroll and scroll compile disabled due to me being too tired to whack at code wwwwwwwwwwwwwwwwwww wwwww i think zcroll16 and scroll16 should be merged wwwwww wwww shinku added back.... bcexmm.exe is horrifically broken wwww i need to cut it down more wwww but later i also isolate the dbg stuff better wwww wwwww nibble added ^^ i hope it works wwww --- inputest.exe | Bin 100308 -> 0 bytes makefile | 2 +- src/inputest.c | 27 +++++++++++++++++------- src/lib/16_dbg.c | 22 ++++++++++--------- src/lib/16_dbg.h | 11 +++++++--- src/lib/16_t.h | 5 +++++ src/lib/16_tail.c | 51 ++++++++++++++++++++++++++++++++++++++++++++- src/lib/16_tail.h | 2 ++ src/lib/16_tdef.h | 8 +++---- src/lib/zcroll16.c | 40 ----------------------------------- src/scroll.c | 15 ++++++++++++- src/zcroll.c | 27 ++++++++++++++++++++---- 12 files changed, 137 insertions(+), 73 deletions(-) delete mode 100755 inputest.exe diff --git a/inputest.exe b/inputest.exe deleted file mode 100755 index 53a9bc31afeee8b7a81899dae1be2d9b0304d979..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100308 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 player[0].persist_aniframe = 1; switch(player[0].d) { @@ -101,10 +111,11 @@ main(int argc, char *argv[]) //IN_Ack(); } } - IN_Shutdown(); + IN_Shutdown(); } //printf("%u\n", in.Keyboard[sc_Escape]); printf("inputest.exe "); printf("version %s\n", VERSION); printf("testkeyin=%u\n", dbg_testkeyin); printf("testcontrolnoisy=%u\n", dbg_testcontrolnoisy); + printf("dbg_noplayerinpu=%u\n", dbg_noplayerinpu); } diff --git a/src/lib/16_dbg.c b/src/lib/16_dbg.c index 13d5846d..960e7604 100755 --- a/src/lib/16_dbg.c +++ b/src/lib/16_dbg.c @@ -1,5 +1,16 @@ +#include "src/lib/16_dbg.h" +//#include "src/16.h" + + +#ifdef __DEBUG__ +#ifdef __DEBUG_PM__ +boolean dbg_debugpm=0; +#endif +#ifdef __DEBUG_InputMgr__ +boolean dbg_testkeyin=0,dbg_testcontrolnoisy=0,dbg_noplayerinpu=0; +#endif +#endif -#include "src/16.h" // TODO: Could we also provide a build mode to emit debug to the "Bochs E9 hack?" #ifdef DEBUGSERIAL @@ -10,15 +21,6 @@ unsigned char _DEBUG_INITed = 0; struct info_8250 *_DEBUG_uart = NULL; -#ifdef __DEBUG__ -#ifdef __DEBUG_PM__ -boolean dbg_debugpm=0; -#endif -#ifdef __DEBUG_InputMgr__ -boolean dbg_testkeyin=0,dbg_testcontrolnoisy=0; -#endif -#endif - int _DEBUG_INIT() { if (!_DEBUG_INITed) { unsigned int i; diff --git a/src/lib/16_dbg.h b/src/lib/16_dbg.h index 1454e091..32c89b59 100755 --- a/src/lib/16_dbg.h +++ b/src/lib/16_dbg.h @@ -2,16 +2,21 @@ #ifndef _SRC_LIB_16_DBG #define _SRC_LIB_16_DBG -//#define __DEBUG__ +#include "src/lib/16_head.h" +#include "src/lib/16_tdef.h" + +#define __DEBUG__ +#define __DEBUG_InputMgr__ //#define __DEBUG_PM__ //#define __DEBUG_MM__ + #ifdef __DEBUG__ #ifdef __DEBUG_PM__ -extern boolean dbg_debugpm=0; +extern boolean dbg_debugpm; #endif #ifdef __DEBUG_InputMgr__ -extern boolean dbg_testkeyin=0,dbg_testcontrolnoisy=0; +extern boolean dbg_testkeyin,dbg_testcontrolnoisy,dbg_noplayerinpu; #endif #endif diff --git a/src/lib/16_t.h b/src/lib/16_t.h index ada39a11..b0fdb481 100755 --- a/src/lib/16_t.h +++ b/src/lib/16_t.h @@ -41,6 +41,11 @@ typedef unsigned long int diword; typedef signed long int sdiword; typedef enum {false,true} boolean; +typedef enum {ichi,ni,san,yon,go,roku,shichi,hachi,kyu,ju,juichi,juni,jusan,juyon,jugo,juroku} nibble; +//typedef unsigned nibb:4 nibble; + +#define HI_NIBBLE(b) (((b) >> 4) & 0x0F) +#define LO_NIBBLE(b) ((b) & 0x0F) /*typedef unsigned memseg; memptr should be replaced by memseg in code. diff --git a/src/lib/16_tail.c b/src/lib/16_tail.c index b2acec13..414e51a1 100755 --- a/src/lib/16_tail.c +++ b/src/lib/16_tail.c @@ -70,13 +70,13 @@ void Startup16(global_game_variables_t *gvar) gvar->mm.mmstarted=0; gvar->pm.PMStarted=0; MM_Startup(gvar); +if(!dbg_noplayerinpu) IN_Startup(gvar); PM_Startup(gvar); PM_UnlockMainMem(gvar); CA_Startup(gvar); #ifdef __WATCOMC__ start_timer(gvar); - #endif } @@ -96,6 +96,7 @@ void Startup16(global_game_variables_t *gvar) void Shutdown16(global_game_variables_t *gvar) { PM_Shutdown(gvar); +if(!dbg_noplayerinpu) IN_Shutdown(gvar); CA_Shutdown(gvar); MM_Shutdown(gvar); @@ -205,3 +206,51 @@ void Quit (char *error) #endif //=========================================================================== + +const char *nibble_to_binary(nibble x) +{ + static char b[9]; + int z; + + b[0] = '\0'; + for (z = 8; z > 0; z >>= 1) + { + strcat(b, ((x & z) == z) ? "1" : "0"); + } + return b; +} + +const char *boolean_to_binary(boolean x) +{ + static char b[9]; + int z; + + b[0] = '\0'; + for (z = 1; z > 0; z >>= 1) + { + strcat(b, ((x & z) == z) ? "1" : "0"); + } + return b; +} + +void nibbletest() +{ + nibble pee; + printf("nibbletest\n"); + /* nibble to binary string */ + for(pee=0;pee<18;pee++) + printf(" %u %s\n", pee, nibble_to_binary(pee)); + printf(" sizeof(nibble)=%s\n", nibble_to_binary(sizeof(nibble))); + printf("end of nibble test\n"); +} + +void booleantest() +{ + boolean pee; + printf("booleantest\n"); + /* boolean to binary string */ + for(pee=0;pee<4;pee++) + printf(" %u %s\n", pee, boolean_to_binary(pee)); + printf(" sizeof(boolean)=%s\n", boolean_to_binary(sizeof(boolean))); + printf("end of boolean test\n"); +} diff --git a/src/lib/16_tail.h b/src/lib/16_tail.h index b22affdd..8d1274d8 100755 --- a/src/lib/16_tail.h +++ b/src/lib/16_tail.h @@ -35,5 +35,7 @@ void Startup16(global_game_variables_t *gvar); #ifdef __WATCOMC__ void Quit (char *error); #endif +void nibbletest(); +void booleantest(); #endif diff --git a/src/lib/16_tdef.h b/src/lib/16_tdef.h index f535c75d..137b0bfb 100755 --- a/src/lib/16_tdef.h +++ b/src/lib/16_tdef.h @@ -64,11 +64,9 @@ typedef struct { byte *palette; } planar_buf_t; - -enum direction {STOP, UP, DOWN, LEFT, RIGHT}; typedef struct { int dx, dy; //backwards compait - word id; /* the Identification number of the page~ For layering~ */ + nibble id; /* the Identification number of the page~ For layering~ */ byte far* data; /* the data for the page */ word sw; /* screen width */ word sh; /* screen heigth */ @@ -85,8 +83,8 @@ typedef struct { word stridew; /*width/4*/ word pagesize; /* page size */ word pi; /* incremention page by this much to preserve location */ - word delta; // How much should we shift the page for smooth scrolling - enum direction d; // Direction we should shift the page + sword delta; // How much should we shift the page for smooth scrolling + //enum direction d; // Direction we should shift the page } page_t; typedef struct { diff --git a/src/lib/zcroll16.c b/src/lib/zcroll16.c index 52182f2b..a58dfad1 100755 --- a/src/lib/zcroll16.c +++ b/src/lib/zcroll16.c @@ -185,47 +185,7 @@ mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y) } } -unsigned char shinku_fps_indicator_page = 2; boolean pageflipflop = 1; -boolean pageploop = 1; - -/* sync */ -void shinku(global_game_variables_t *gv) -{ - word x = (0) + gv->video.page[/*!*/(gv->video.p)].dx; // follow the screen - word y = (0) + gv->video.page[/*!*/(gv->video.p)].dy; // follow the screen - word w = 64, h = 8, col = 7, bgcol = 0, type = 1; - byte o,o2,i; - if(elapsed_timer(gv) >= (1.0 / gv->kurokku.frames_per_second)) - { - sprintf(gv->pee, "%.0f fps", (double)gv->kurokku.tiku/ticktock(gv)); - //modexClearRegion(&(gv->video.page[shinku_fps_indicator_page]), x, y, w, h, 45); - modexprint(&(gv->video.page[/*!*/(gv->video.p)]), x, y, type, col, bgcol, gv->pee); - gv->kurokku.tiku=0; - }else //copy dat sheet - gv->kurokku.tiku++; - - switch(gv->kurokku.fpscap) - { - case 0: - gv->kurokku.frames_per_second=1; - break; - case 1: - //turn this off if XT - vga_wait_for_vsync(); - gv->kurokku.frames_per_second=60; - break; - } - /* - if(pageflipflop){ - if(gv->video.r){ - if(!pageploop) modexCopyPageRegion(&(gv->video.page[(gv->video.p)]), &(gv->video.page[(!gv->video.p)]), 0, 0, 0, 0, gv->video.page[gv->video.p].width, gv->video.page[!gv->video.p].height); - modexShowPage(&(gv->video.page[gv->video.p])); - if(!pageploop) gv->video.p=!gv->video.p; - gv->video.r=!gv->video.r; - } - }*/ -} void near animatePlayer(map_view_t *pip, player_t *player, sword scrollswitch) { diff --git a/src/scroll.c b/src/scroll.c index dd2db336..c92469cb 100755 --- a/src/scroll.c +++ b/src/scroll.c @@ -24,10 +24,13 @@ #include "src/lib/16_timer.h" #include "src/lib/wcpu/wcpu.h" #include "src/lib/mapread.h" +#include "src/lib/16_dbg.h" //#define FADE #define MODEX //this is for mode x initiating +boolean dbg_noplayerinpu=1; + //word far *clock= (word far*) 0x046C; /* 18.2hz clock */ //bitmap_t *p; global_game_variables_t gvar; @@ -39,7 +42,7 @@ float t; sword bakapee; pan_t pan; //debugswitches -boolean panswitch=0; +boolean panswitch=1; //extern boolean pageflipflop=1; unsigned int i; const char *cpus; @@ -119,9 +122,12 @@ void main(int argc, char *argv[]) #endif /* input! */ + if(!dbg_noplayerinpu) + { IN_Startup(); IN_Default(0,&player,ctrl_Joystick); //IN_Default(1,&player,ctrl_Joystick); + } /* save the palette */ #ifdef MODEX @@ -213,6 +219,7 @@ void main(int argc, char *argv[]) modexFadeOn(4, gpal); #endif #endif + if(!dbg_noplayerinpu) while(!IN_KeyDown(sc_Escape) && player[0].hp>0) { shinku(&gvar); @@ -307,6 +314,11 @@ void main(int argc, char *argv[]) //if(IN_KeyDown(11)){ modexPalOverscan(15); } if((player[0].q==1) && !(player[0].x%TILEWH==0 && player[0].y%TILEWH==0)) break; //incase things go out of sync! } + else + while(!kbhit()) + { + shinku(&gvar); + } /* fade back to text mode */ /* but 1st lets save the game palette~ */ @@ -318,6 +330,7 @@ void main(int argc, char *argv[]) #endif VGAmodeX(0, 1, &gvar); #endif + if(!dbg_noplayerinpu) IN_Shutdown(); printf("\nProject 16 scroll.exe. This is just a test file!\n"); printf("version %s\n", VERSION); diff --git a/src/zcroll.c b/src/zcroll.c index 2837930c..10f87f66 100755 --- a/src/zcroll.c +++ b/src/zcroll.c @@ -24,9 +24,12 @@ #include "src/lib/16_timer.h" #include "src/lib/wcpu/wcpu.h" #include "src/lib/16render.h" +#include "src/lib/16_dbg.h" -//TODO: known issues the array dependent mv stuff and player arrays +#define MODEXZ +boolean dbg_noplayerinpu=1; +//TODO: known issues the array dependent mv stuff and player arrays global_game_variables_t gvar; static map_t map; player_t *player; @@ -60,7 +63,7 @@ void main(int argc, char *argv[]) pan.pn=0; // OK, this one takes hellova time and needs to be done in farmalloc or MM_... - //USE MM AND CA AND PM WWWWWWWW + //TODO: USE MM AND CA AND PM WWWWWWWW player = malloc(sizeof(player_t)); player->ent = malloc(sizeof(entity_t)); player->ent->spri = malloc(sizeof(struct sprite)); @@ -78,7 +81,10 @@ void main(int argc, char *argv[]) read_vrs(&gvar, "data/spri/chikyuu.vrs", player->ent->spri->spritesheet); printf("sprite loaded\n"); // input! +if(!dbg_noplayerinpu) +{ IN_Default(0, player,ctrl_Joystick); printf("IN_defaulted\n"); +} // save the palette #ifdef FADE @@ -88,7 +94,7 @@ void main(int argc, char *argv[]) #endif textInit(); VGAmodeX(bakapee, 1, &gvar); - #ifdef MODEXZ +#ifdef MODEXZ #ifdef FADE modexPalBlack(); //reset the palette~ printf("VGA\n"); @@ -102,13 +108,19 @@ void main(int argc, char *argv[]) #endif // setup camera and screen~ +if(dbg_noplayerinpu) +{ + //sprintf(&gvar.pee, "press a key for video setup"); + strcpy(global_temp_status_text, "press a key for video setup"); + modexprint(mv->page, 0, 64, 1, 7, 0, global_temp_status_text); + getch(); +} modexHiganbanaPageSetup(&gvar.video); mv->page = &gvar.video.page[0]; mv->map = ↦ mv->video = &gvar.video; mv->pan = &pan; player->ent->spri->x = player->ent->spri->y = 20; - printf("pages ok\n"); // set up paging //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen @@ -145,6 +157,7 @@ void main(int argc, char *argv[]) modexFadeOn(4, gpal); #endif printf("LOOP\n"); + if(!dbg_noplayerinpu) while(!IN_KeyDown(sc_Escape) && player->hp>0) { shinku(&gvar); @@ -220,6 +233,12 @@ void main(int argc, char *argv[]) player->hp = 0; } + else + while(!kbhit()) + { + shinku(&gvar); + } + /* fade back to text mode */ /* but 1st lets save the game palette~ */ #ifdef FADE -- 2.39.5