From: sparky4 Date: Wed, 3 May 2017 21:13:05 +0000 (-0500) Subject: 16_ca needs huge amounts of work and I should remember what needs to be done soon... X-Git-Url: http://4ch.mooo.com/gitweb/?a=commitdiff_plain;h=818c6c740d03393778fbabc2d790ca99c56b60bd;p=16.git 16_ca needs huge amounts of work and I should remember what needs to be done soon[going to port rest of code to borland c some time so we can use the core components of id engine here ][going to add 16_us.c eventually but the debug system and CA_ PM_ and MM_ usage is priority now]older zcroll renamed to xcroll][zcroll is now the pre menu game loop system with PROPER data usage with CAMMPM] added 1st scroll back [i work on CA] palette debug show values added wwww and i need to know how to see vrs/vrl imaage data palette index numbers [i am trying to find out how the hell you get the index number values of VRL/VRS] --- diff --git a/XCROLL.LOG b/XCROLL.LOG index b1501b6a..c4fea944 100755 --- a/XCROLL.LOG +++ b/XCROLL.LOG @@ -9,42 +9,12 @@ Object 4's name: 'stump' "walkable":"0" } walkable: 0 -DrawVRL: -[00] 85 -[01] 00 -[02] 0b -[03] 86 -[04] 00 -[05] 02 -[06] 88 -[07] 01 -[08] 0b -[09] 88 -[10] 04 -[11] 0b -[12] ff -[13] 84 -[14] 00 -[15] 0b -[16] 06 -[17] 00 -[18] 02 -[19] 06 -[20] 04 -[21] 04 -[22] 03 -[23] 02 -[24] 87 -[25] 01 -[26] 0b -[27] 01 -[28] 02 -[29] 05 -[30] 02 -[31] 01 +VRS_OpenVRS + vrl_size=515 + Project 16 xcroll.exe. This is just a test file! -version May 3 2017 13:29:21 +version May 3 2017 15:15:20 page[0]dxy: 16x16 player vars: diff --git a/data/G.PAL b/data/G.PAL index bdc3b00c..34da18d0 100755 Binary files a/data/G.PAL and b/data/G.PAL differ diff --git a/data/chikyuu.pcx b/data/chikyuu.pcx index 049e4bcf..72b1e69e 100755 Binary files a/data/chikyuu.pcx and b/data/chikyuu.pcx differ diff --git a/data/me.pcx b/data/me.pcx index 6e78ab97..b7dce67f 100755 Binary files a/data/me.pcx and b/data/me.pcx differ diff --git a/data/mebak.pcx b/data/mebak.pcx new file mode 100755 index 00000000..6e78ab97 Binary files /dev/null and b/data/mebak.pcx differ diff --git a/data/spri/CHUBFCW0.VRL b/data/spri/CHUBFCW0.VRL index af1b4956..75d5a6e4 100755 Binary files a/data/spri/CHUBFCW0.VRL and b/data/spri/CHUBFCW0.VRL differ diff --git a/data/spri/MEBACW0.VRL b/data/spri/MEBACW0.VRL index 88ff88ff..9aa0ffbf 100755 Binary files a/data/spri/MEBACW0.VRL and b/data/spri/MEBACW0.VRL differ diff --git a/data/spri/MEBACW1.VRL b/data/spri/MEBACW1.VRL index 314def27..4aea51d4 100755 Binary files a/data/spri/MEBACW1.VRL and b/data/spri/MEBACW1.VRL differ diff --git a/data/spri/MEBACW2.VRL b/data/spri/MEBACW2.VRL index eddc1ee6..d13f08d0 100755 Binary files a/data/spri/MEBACW2.VRL and b/data/spri/MEBACW2.VRL differ diff --git a/data/spri/MEBFCW0.VRL b/data/spri/MEBFCW0.VRL index 8d93837b..66b6f71f 100755 Binary files a/data/spri/MEBFCW0.VRL and b/data/spri/MEBFCW0.VRL differ diff --git a/data/spri/MEBFCW1.VRL b/data/spri/MEBFCW1.VRL index db868ea3..63f069e1 100755 Binary files a/data/spri/MEBFCW1.VRL and b/data/spri/MEBFCW1.VRL differ diff --git a/data/spri/MEBFCW2.VRL b/data/spri/MEBFCW2.VRL index 338502eb..b58153d3 100755 Binary files a/data/spri/MEBFCW2.VRL and b/data/spri/MEBFCW2.VRL differ diff --git a/data/spri/MEBLCW0.VRL b/data/spri/MEBLCW0.VRL index b9549159..3dfeb809 100755 Binary files a/data/spri/MEBLCW0.VRL and b/data/spri/MEBLCW0.VRL differ diff --git a/data/spri/MEBLCW1.VRL b/data/spri/MEBLCW1.VRL index 616b7cb2..4dff6495 100755 Binary files a/data/spri/MEBLCW1.VRL and b/data/spri/MEBLCW1.VRL differ diff --git a/data/spri/MEBLCW2.VRL b/data/spri/MEBLCW2.VRL index 689eebdb..90f32cf9 100755 Binary files a/data/spri/MEBLCW2.VRL and b/data/spri/MEBLCW2.VRL differ diff --git a/data/spri/MEBRCW0.VRL b/data/spri/MEBRCW0.VRL index 45eaba80..843dc3d8 100755 Binary files a/data/spri/MEBRCW0.VRL and b/data/spri/MEBRCW0.VRL differ diff --git a/data/spri/MEBRCW1.VRL b/data/spri/MEBRCW1.VRL index ab88635c..0039fd18 100755 Binary files a/data/spri/MEBRCW1.VRL and b/data/spri/MEBRCW1.VRL differ diff --git a/data/spri/MEBRCW2.VRL b/data/spri/MEBRCW2.VRL index 64c3543a..76028914 100755 Binary files a/data/spri/MEBRCW2.VRL and b/data/spri/MEBRCW2.VRL differ diff --git a/data/spri/chikyuu.pal b/data/spri/chikyuu.pal index 1fc14ee7..d347e50a 100755 Binary files a/data/spri/chikyuu.pal and b/data/spri/chikyuu.pal differ diff --git a/data/spri/chistnd.vrs b/data/spri/chistnd.vrs index 401ca63b..48720e94 100755 Binary files a/data/spri/chistnd.vrs and b/data/spri/chistnd.vrs differ diff --git a/data/spri/me.pal b/data/spri/me.pal index f67f2c3d..ae38e163 100755 Binary files a/data/spri/me.pal and b/data/spri/me.pal differ diff --git a/data/spri/me.vrl b/data/spri/me.vrl index 6882abe5..f7bf346e 100755 Binary files a/data/spri/me.vrl and b/data/spri/me.vrl differ diff --git a/data/spri/me.vrs b/data/spri/me.vrs index ae522653..ef3bdff9 100755 Binary files a/data/spri/me.vrs and b/data/spri/me.vrs differ diff --git a/src/0tesuto.c b/src/0tesuto.c index fb3d0fc9..f8371585 100755 --- a/src/0tesuto.c +++ b/src/0tesuto.c @@ -29,9 +29,11 @@ //#define FILENAME_1 "data/aconita.vrl" //#define FILENAME_2 "data/aconita.pal" -#define FILENAME_1 "data/spri/chikyuu.vrl" +#define FILENAME_1 "data/spri/chistnd.vrl" #define FILENAME_2 "data/spri/chikyuu.pal" +//#define ZSP + #define INITTNUM 1 map_view_t mv[4]; @@ -41,7 +43,7 @@ int main(int argc,char **argv) { static global_game_variables_t gvar; struct vrl1_vgax_header *vrl_header; - vrl1_vgax_offset_t *vrl_lineoffs; + vrl1_vgax_offset_t *line_offsets; unsigned char *buffer; unsigned int bufsz; int fd; @@ -50,10 +52,10 @@ int main(int argc,char **argv) char bakapee1[64] = FILENAME_1; char bakapee2[64] = FILENAME_2; - boolean anim=1,noanim=0,zerostoppause=1; - -// bakapee1=mALLoc(64); -// bakapee2=mALLoc(64); + boolean anim=1,noanim=0; +#ifdef ZSP + boolean zerostoppause=1; +#endif if (argc >= 2) { /* if (argc < 2) { @@ -103,8 +105,8 @@ int main(int argc,char **argv) VL_LoadPalFile(bakapee2, &gvar.video.palette, &gvar); /* preprocess the sprite to generate line offsets */ - vrl_lineoffs = vrl1_vgax_genlineoffsets(vrl_header,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header)); - if (vrl_lineoffs == NULL) return 1; + line_offsets = vrl1_vgax_genlineoffsets(vrl_header,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header)); + if (line_offsets == NULL) return 1; IN_Startup(&gvar); IN_Default(0,&gvar.player[0],ctrl_Keyboard1, &gvar); @@ -148,11 +150,17 @@ int main(int argc,char **argv) IN_ReadControl(&gvar.player[0], &gvar); if(gvar.in.inst->Keyboard[68]){ gvar.kurokku.fpscap=!gvar.kurokku.fpscap; IN_UserInput(1, &gvar); } //f10 TAIL_PANKEYFUN; - if(gvar.in.inst->Keyboard[sc_Space] || zerostoppause) //space + if(gvar.in.inst->Keyboard[sc_Space] +#ifdef ZSP + || zerostoppause +#endif +) //space { anim=!anim; DRAWCORNERBOXES; +#ifdef ZSP if(!zerostoppause) IN_UserInput(1, &gvar); else zerostoppause=0; +#endif } if(gvar.in.inst->Keyboard[sc_R]){ gvar.video.page[0].dx=gvar.video.page[0].dy=gvar.video.page[1].dx=gvar.video.page[1].dy=16; @@ -190,7 +198,7 @@ int main(int argc,char **argv) vga_state.vga_graphics_ram = omemptr + gvar.video.page[0].pagesize + gvar.video.page[1].pagesize; /* then the sprite. note modding ram ptr means we just draw to (x&3,0) */ -draw_vrl1_vgax_modex(x-rx,y-ry,vrl_header,vrl_lineoffs,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header)); +draw_vrl1_vgax_modex(x-rx,y-ry,vrl_header,line_offsets,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header)); //printf("x=%d y=%d rx=%d ry=%d\n", x, y, rx, ry); /* restore ptr */ @@ -308,7 +316,7 @@ if(!noanim) { } IN_Shutdown(&gvar); VGAmodeX(0, 1, &gvar); - free(vrl_lineoffs); + free(line_offsets); buffer = NULL; free(buffer); bufsz = 0; diff --git a/src/lib/16_spri.c b/src/lib/16_spri.c index c7c2b99d..502ed4a4 100755 --- a/src/lib/16_spri.c +++ b/src/lib/16_spri.c @@ -53,7 +53,7 @@ void DrawVRL (unsigned int x,unsigned int y,struct vrl1_vgax_header *hdr,vrl1_vg // if(*(s+a)<=13) // if (!(a%4) && a ) printf("\n"); // sprintf(outputvars[sx][by], "%02x", *(s+a)); - printf("[%02u] %02x\n", a, *(s+a)); + printf("[%02u] %u\n", a, *(s+a)); // by++; } diff --git a/src/lib/16_vl.c b/src/lib/16_vl.c index dc53d947..77c5fad2 100755 --- a/src/lib/16_vl.c +++ b/src/lib/16_vl.c @@ -918,7 +918,9 @@ modexLoadPalFile(byte *filename, byte *palette) { void VL_LoadPalFile(const char *filename, byte *palette, global_game_variables_t *gvar) { - VL_LoadPalFilewithoffset(filename, palette, 9, gvar); + VL_LoadPalFilewithoffset(filename, palette, + 0, gvar); + //9, gvar); // VL_LoadPalFileCore(palette); } diff --git a/src/lib/16_vrs.c b/src/lib/16_vrs.c index 834754dd..0edcf627 100755 --- a/src/lib/16_vrs.c +++ b/src/lib/16_vrs.c @@ -35,7 +35,6 @@ void VRS_OpenVRS(char *filename, entity_t *enti, boolean rlsw, global_game_varia struct vrl1_vgax_header far *curr_vrl; uint32_t vrl_size; int num_of_vrl,i; - int size=0; switch(rlsw) { @@ -49,7 +48,7 @@ void VRS_OpenVRS(char *filename, entity_t *enti, boolean rlsw, global_game_varia // Insert sanity cheks later enti->spri.spritesheet.buffer = gvar->ca.spribuff; - enti->spri.spritesheet.data_size = size - sizeof(struct vrl1_vgax_header); + enti->spri.spritesheet.data_size = sizeof(enti->spri.spritesheet.buffer) - sizeof(struct vrl1_vgax_header); num_of_vrl = 0; vrl_id_iter = (uint16_t far *)(enti->spri.spritesheet.buffer + enti->spri.spritesheet.vrs_hdr->offset_table[VRS_HEADER_OFFSET_SPRITE_ID_LIST]); while(vrl_id_iter[num_of_vrl]){ @@ -60,8 +59,8 @@ void VRS_OpenVRS(char *filename, entity_t *enti, boolean rlsw, global_game_varia #ifndef VRS_USECAMMPM vrl_line_offsets = malloc(sizeof(vrl1_vgax_offset_t *)*num_of_vrl);//TODO: USE MM_ CA_ AND PM_ #else - MM_GetPtr(MEMPTRCONV gvar->ca.grsegs[0], sizeof(vrl1_vgax_offset_t *)*num_of_vrl, gvar); - enti->spri.spritesheet.vrl_line_offsets = (vrl1_vgax_offset_t **)gvar->ca.grsegs[0]; + MM_GetPtr(MEMPTRCONV gvar->ca.grsegs, sizeof(vrl1_vgax_offset_t *)*num_of_vrl, gvar); + enti->spri.spritesheet.vrl_line_offsets = (vrl1_vgax_offset_t **)gvar->ca.grsegs; #endif vrl_headers_offsets = (uint32_t far *)(enti->spri.spritesheet.buffer + enti->spri.spritesheet.vrs_hdr->offset_table[VRS_HEADER_OFFSET_VRS_LIST]); @@ -86,20 +85,21 @@ void VRS_OpenVRS(char *filename, entity_t *enti, boolean rlsw, global_game_varia #ifndef VRS_USECAMMPM enti->spri.spritesheet.vrl_line_offsets = vrl_line_offsets; #endif +// printf("VRS_OpenVRS\n"); +// printf(" vrl_size=%lu\n\n",vrl_size); } +#if 0 +// void VRS_ReadVRL(char *filename, entity_t *enti, global_game_variables_t *gvar){ VRS_OpenVRL(filename, enti, 1, gvar); } void VRS_LoadVRL(char *filename, entity_t *enti, global_game_variables_t *gvar){ VRS_OpenVRL(filename, enti, 0, gvar); } void VRS_OpenVRL(char *filename, entity_t *enti, boolean rlsw, global_game_variables_t *gvar) { - vrl1_vgax_offset_t *vrl_line_offsets; -// struct vrl1_vgax_header *vrl_header; -// uint16_t far *vrl_id_iter; +#ifndef VRL_USECAMMPM + vrl1_vgax_offset_t *line_offsets; +#endif // uint32_t far *vrl_headers_offsets; -// struct vrl1_vgax_header far *curr_vrl; - uint32_t vrl_size; -// int num_of_vrl,i; - int size=0; + struct vrl1_vgax_header far *curr_vrl; switch(rlsw) { @@ -113,50 +113,34 @@ void VRS_OpenVRL(char *filename, entity_t *enti, boolean rlsw, global_game_varia // Insert sanity cheks later enti->spri.sprite_vrl_cont.buffer = gvar->ca.spribuff; - enti->spri.sprite_vrl_cont.data_size = size - sizeof(struct vrl1_vgax_header); - - vrl_size = enti->spri.sprite_vrl_cont.buffer - enti->spri.sprite_vrl_cont.buffer - sizeof(struct vrl1_vgax_header); -// vrl_header = (struct vrl1_vgax_header far *)(enti->spri.sprite_vrl_cont.buffer + enti->spri.sprite_vrl_cont.buffer); -#if 0 - num_of_vrl = 0; - while(vrl_id_iter[num_of_vrl]){ - num_of_vrl++; - } + enti->spri.sprite_vrl_cont.data_size = sizeof(enti->spri.spritesheet.buffer) - sizeof(struct vrl1_vgax_header); // Allocate memory for vrl line offsets table -//#ifndef VRS_USECAMMPM - vrl_line_offsets = malloc(sizeof(vrl1_vgax_offset_t *)*num_of_vrl);//TODO: USE MM_ CA_ AND PM_ -//#else - MM_GetPtr(MEMPTRCONV gvar->ca.grsegs[0], sizeof(vrl1_vgax_offset_t *)*num_of_vrl, gvar); - enti->spri.sprite_vrl_cont.vrl_line_offsets = (vrl1_vgax_offset_t **)gvar->ca.grsegs[0]; -//#endif +#ifndef VRL_USECAMMPM + line_offsets = malloc(sizeof(vrl1_vgax_offset_t *));//TODO: USE MM_ CA_ AND PM_ +#else + MM_GetPtr(MEMPTRCONV gvar->ca.grsegs[0], sizeof(vrl1_vgax_offset_t *), gvar); + enti->spri.sprite_vrl_cont.line_offsets = (vrl1_vgax_offset_t *)gvar->ca.grsegs[0]; +#endif - vrl_headers_offsets = (uint32_t far *)(enti->spri.sprite_vrl_cont.buffer + enti->spri.sprite_vrl_cont.vrs_hdr->offset_table[VRS_HEADER_OFFSET_VRS_LIST]); + //vrl_headers_offsets = (uint32_t far *)(enti->spri.sprite_vrl_cont.buffer + enti->spri.sprite_vrl_cont.vrs_hdr->offset_table[VRL_HEADER_OFFSET_VRL_LIST]); // Calculate line offsets for each vrl - for(i = 0; i < num_of_vrl; i++){ - curr_vrl = (struct vrl1_vgax_header far *)(enti->spri.sprite_vrl_cont.buffer + vrl_headers_offsets[i]); + curr_vrl = (struct vrl1_vgax_header far *)(enti->spri.sprite_vrl_cont.buffer);// + vrl_headers_offsets); - // Calc. vrl size as (next_offset - curr_offset) - if (i != num_of_vrl - 1){ - vrl_size = vrl_headers_offsets[i+1] - vrl_headers_offsets[i] - sizeof(struct vrl1_vgax_header); - } - // If it's the last vrl, size is (next_vrs_struct_offset - curr_offset) - else{ - vrl_size = enti->spri.sprite_vrl_cont.vrs_hdr->offset_table[VRS_HEADER_OFFSET_SPRITE_ID_LIST] - vrl_headers_offsets[i] - sizeof(struct vrl1_vgax_header); - } -#ifndef VRS_USECAMMPM - vrl_line_offsets = vrl1_vgax_genlineoffsets(curr_vrl, (byte *)curr_vrl + sizeof(struct vrl1_vgax_header), vrl_size); +#ifndef VRL_USECAMMPM + line_offsets = vrl1_vgax_genlineoffsets(curr_vrl, (byte *)curr_vrl + sizeof(struct vrl1_vgax_header), sizeof(enti->spri.spritesheet.buffer)); #else - enti->spri.sprite_vrl_cont.vrl_line_offsets[i] = vrl1_vgax_genlineoffsets(curr_vrl, (byte *)curr_vrl + sizeof(struct vrl1_vgax_header), vrl_size); -#endif - } + enti->spri.sprite_vrl_cont.line_offsets = vrl1_vgax_genlineoffsets(curr_vrl, (byte *)curr_vrl + sizeof(struct vrl1_vgax_header), sizeof(enti->spri.spritesheet.buffer)); #endif - vrl_line_offsets = vrl1_vgax_genlineoffsets(enti->spri.sprite_vrl_cont.vrl_header, (byte *)enti->spri.sprite_vrl_cont.buffer + sizeof(struct vrl1_vgax_header), vrl_size); -#ifndef VRS_USECAMMPM - enti->spri.sprite_vrl_cont.vrl_line_offsets = vrl_line_offsets; +#ifndef VRL_USECAMMPM + enti->spri.sprite_vrl_cont.line_offsets = line_offsets; #endif + printf("VRS_OpenVRL\n"); + printf(" vrl_size=%lu\n\n",sizeof(enti->spri.spritesheet.buffer)); } +// +#endif // Seek and return a specified .vrl blob from .vrs blob in far memory int get_vrl_by_id(struct vrs_container far *vrs_cont, uint16_t id, struct vrl_container *vrl_cont){ diff --git a/src/util/shbat/respri.sh b/src/util/shbat/respri.sh new file mode 100755 index 00000000..79bc4f16 --- /dev/null +++ b/src/util/shbat/respri.sh @@ -0,0 +1,5 @@ +#! /bin/bash +rm data/spri/"$1".vr* +rm data/spri/"$1".pal +. ./spri.sh "$1" +. ./spri.sh "$1" diff --git a/src/xcroll.c b/src/xcroll.c index e31ff558..7e93de09 100755 --- a/src/xcroll.c +++ b/src/xcroll.c @@ -46,7 +46,7 @@ memptr pal; #define FILENAME_1P "data/spri/chikyuu.pal" #define FILENAME_2 "data/spri/me.vrs" #define FILENAME_2P "data/spri/me.pal" -#define FILENAME_3 "data/spri/chistnd.vrl" +//#define FILENAME_3 "data/spri/chistnd.vrl" void main(int argc, char *argv[]) { @@ -57,7 +57,7 @@ void main(int argc, char *argv[]) char bakapee[64] = FILENAME_1; char bakapeep[64] = FILENAME_1P; - char bakapee3[64] = FILENAME_3; +// char bakapee3[64] = FILENAME_3; Startup16(&gvar); @@ -86,7 +86,6 @@ void main(int argc, char *argv[]) #endif // data VRS_LoadVRS(bakapee, &gvar.player[0].enti, &gvar); -// VRS_LoadVRS(bakapee3, &enti, &gvar); // input! IN_Default(0, &gvar.player[0],ctrl_Keyboard1, &gvar); @@ -200,7 +199,7 @@ void main(int argc, char *argv[]) if(gvar.in.inst->Keyboard[sc_LBrkt]){ ShowPalVal (&gvar); IN_UserInput(1, &gvar); } //=============================================================================== - +#if 0 if(gvar.in.inst->Keyboard[sc_BackSlash]){ VRS_ReadVRL(bakapee3, &gvar.player[0].enti, &gvar); DrawVRL( @@ -213,7 +212,7 @@ void main(int argc, char *argv[]) ); while (!IN_CheckAck (&gvar)){} VRS_ReadVRS(bakapee, &gvar.player[0].enti, &gvar); IN_UserInput(1, &gvar); } - +#endif //=============================================================================== if(gvar.in.inst->Keyboard[sc_J] || gvar.in.inst->Keyboard[sc_K])