"walkable":"0"\r
}\r
walkable: 0\r
-DrawVRL:\r
-[00] 85\r
-[01] 00\r
-[02] 0b\r
-[03] 86\r
-[04] 00\r
-[05] 02\r
-[06] 88\r
-[07] 01\r
-[08] 0b\r
-[09] 88\r
-[10] 04\r
-[11] 0b\r
-[12] ff\r
-[13] 84\r
-[14] 00\r
-[15] 0b\r
-[16] 06\r
-[17] 00\r
-[18] 02\r
-[19] 06\r
-[20] 04\r
-[21] 04\r
-[22] 03\r
-[23] 02\r
-[24] 87\r
-[25] 01\r
-[26] 0b\r
-[27] 01\r
-[28] 02\r
-[29] 05\r
-[30] 02\r
-[31] 01\r
+VRS_OpenVRS\r
+ vrl_size=515\r
+\r
\r
Project 16 xcroll.exe. This is just a test file!\r
-version May 3 2017 13:29:21\r
+version May 3 2017 15:15:20\r
page[0]dxy: 16x16\r
\r
player vars:\r
\r
//#define FILENAME_1 "data/aconita.vrl"\r
//#define FILENAME_2 "data/aconita.pal"\r
-#define FILENAME_1 "data/spri/chikyuu.vrl"\r
+#define FILENAME_1 "data/spri/chistnd.vrl"\r
#define FILENAME_2 "data/spri/chikyuu.pal"\r
\r
+//#define ZSP\r
+\r
#define INITTNUM 1\r
\r
map_view_t mv[4];\r
{\r
static global_game_variables_t gvar;\r
struct vrl1_vgax_header *vrl_header;\r
- vrl1_vgax_offset_t *vrl_lineoffs;\r
+ vrl1_vgax_offset_t *line_offsets;\r
unsigned char *buffer;\r
unsigned int bufsz;\r
int fd;\r
char bakapee1[64] = FILENAME_1;\r
char bakapee2[64] = FILENAME_2;\r
\r
- boolean anim=1,noanim=0,zerostoppause=1;\r
-\r
-// bakapee1=mALLoc(64);\r
-// bakapee2=mALLoc(64);\r
+ boolean anim=1,noanim=0;\r
+#ifdef ZSP\r
+ boolean zerostoppause=1;\r
+#endif\r
\r
if (argc >= 2) {\r
/* if (argc < 2) {\r
VL_LoadPalFile(bakapee2, &gvar.video.palette, &gvar);\r
\r
/* preprocess the sprite to generate line offsets */\r
- vrl_lineoffs = vrl1_vgax_genlineoffsets(vrl_header,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header));\r
- if (vrl_lineoffs == NULL) return 1;\r
+ line_offsets = vrl1_vgax_genlineoffsets(vrl_header,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header));\r
+ if (line_offsets == NULL) return 1;\r
\r
IN_Startup(&gvar);\r
IN_Default(0,&gvar.player[0],ctrl_Keyboard1, &gvar);\r
IN_ReadControl(&gvar.player[0], &gvar);\r
if(gvar.in.inst->Keyboard[68]){ gvar.kurokku.fpscap=!gvar.kurokku.fpscap; IN_UserInput(1, &gvar); } //f10\r
TAIL_PANKEYFUN;\r
- if(gvar.in.inst->Keyboard[sc_Space] || zerostoppause) //space\r
+ if(gvar.in.inst->Keyboard[sc_Space]\r
+#ifdef ZSP\r
+ || zerostoppause\r
+#endif\r
+) //space\r
{\r
anim=!anim;\r
DRAWCORNERBOXES;\r
+#ifdef ZSP\r
if(!zerostoppause) IN_UserInput(1, &gvar); else zerostoppause=0;\r
+#endif\r
}\r
if(gvar.in.inst->Keyboard[sc_R]){\r
gvar.video.page[0].dx=gvar.video.page[0].dy=gvar.video.page[1].dx=gvar.video.page[1].dy=16;\r
vga_state.vga_graphics_ram = omemptr + gvar.video.page[0].pagesize + gvar.video.page[1].pagesize;\r
\r
/* then the sprite. note modding ram ptr means we just draw to (x&3,0) */\r
-draw_vrl1_vgax_modex(x-rx,y-ry,vrl_header,vrl_lineoffs,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header));\r
+draw_vrl1_vgax_modex(x-rx,y-ry,vrl_header,line_offsets,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header));\r
//printf("x=%d y=%d rx=%d ry=%d\n", x, y, rx, ry);\r
\r
/* restore ptr */\r
}\r
IN_Shutdown(&gvar);\r
VGAmodeX(0, 1, &gvar);\r
- free(vrl_lineoffs);\r
+ free(line_offsets);\r
buffer = NULL;\r
free(buffer);\r
bufsz = 0;\r
// if(*(s+a)<=13)\r
// if (!(a%4) && a ) printf("\n");\r
// sprintf(outputvars[sx][by], "%02x", *(s+a));\r
- printf("[%02u] %02x\n", a, *(s+a));\r
+ printf("[%02u] %u\n", a, *(s+a));\r
// by++;\r
}\r
\r
\r
void VL_LoadPalFile(const char *filename, byte *palette, global_game_variables_t *gvar)\r
{\r
- VL_LoadPalFilewithoffset(filename, palette, 9, gvar);\r
+ VL_LoadPalFilewithoffset(filename, palette,\r
+ 0, gvar);\r
+ //9, gvar);\r
// VL_LoadPalFileCore(palette);\r
}\r
\r
struct vrl1_vgax_header far *curr_vrl;\r
uint32_t vrl_size;\r
int num_of_vrl,i;\r
- int size=0;\r
\r
switch(rlsw)\r
{\r
\r
// Insert sanity cheks later\r
enti->spri.spritesheet.buffer = gvar->ca.spribuff;\r
- enti->spri.spritesheet.data_size = size - sizeof(struct vrl1_vgax_header);\r
+ enti->spri.spritesheet.data_size = sizeof(enti->spri.spritesheet.buffer) - sizeof(struct vrl1_vgax_header);\r
num_of_vrl = 0;\r
vrl_id_iter = (uint16_t far *)(enti->spri.spritesheet.buffer + enti->spri.spritesheet.vrs_hdr->offset_table[VRS_HEADER_OFFSET_SPRITE_ID_LIST]);\r
while(vrl_id_iter[num_of_vrl]){\r
#ifndef VRS_USECAMMPM\r
vrl_line_offsets = malloc(sizeof(vrl1_vgax_offset_t *)*num_of_vrl);//TODO: USE MM_ CA_ AND PM_\r
#else\r
- MM_GetPtr(MEMPTRCONV gvar->ca.grsegs[0], sizeof(vrl1_vgax_offset_t *)*num_of_vrl, gvar);\r
- enti->spri.spritesheet.vrl_line_offsets = (vrl1_vgax_offset_t **)gvar->ca.grsegs[0];\r
+ MM_GetPtr(MEMPTRCONV gvar->ca.grsegs, sizeof(vrl1_vgax_offset_t *)*num_of_vrl, gvar);\r
+ enti->spri.spritesheet.vrl_line_offsets = (vrl1_vgax_offset_t **)gvar->ca.grsegs;\r
#endif\r
\r
vrl_headers_offsets = (uint32_t far *)(enti->spri.spritesheet.buffer + enti->spri.spritesheet.vrs_hdr->offset_table[VRS_HEADER_OFFSET_VRS_LIST]);\r
#ifndef VRS_USECAMMPM\r
enti->spri.spritesheet.vrl_line_offsets = vrl_line_offsets;\r
#endif\r
+// printf("VRS_OpenVRS\n");\r
+// printf(" vrl_size=%lu\n\n",vrl_size);\r
}\r
\r
+#if 0\r
+//\r
void VRS_ReadVRL(char *filename, entity_t *enti, global_game_variables_t *gvar){ VRS_OpenVRL(filename, enti, 1, gvar); }\r
void VRS_LoadVRL(char *filename, entity_t *enti, global_game_variables_t *gvar){ VRS_OpenVRL(filename, enti, 0, gvar); }\r
void VRS_OpenVRL(char *filename, entity_t *enti, boolean rlsw, global_game_variables_t *gvar)\r
{\r
- vrl1_vgax_offset_t *vrl_line_offsets;\r
-// struct vrl1_vgax_header *vrl_header;\r
-// uint16_t far *vrl_id_iter;\r
+#ifndef VRL_USECAMMPM\r
+ vrl1_vgax_offset_t *line_offsets;\r
+#endif\r
// uint32_t far *vrl_headers_offsets;\r
-// struct vrl1_vgax_header far *curr_vrl;\r
- uint32_t vrl_size;\r
-// int num_of_vrl,i;\r
- int size=0;\r
+ struct vrl1_vgax_header far *curr_vrl;\r
\r
switch(rlsw)\r
{\r
\r
// Insert sanity cheks later\r
enti->spri.sprite_vrl_cont.buffer = gvar->ca.spribuff;\r
- enti->spri.sprite_vrl_cont.data_size = size - sizeof(struct vrl1_vgax_header);\r
-\r
- vrl_size = enti->spri.sprite_vrl_cont.buffer - enti->spri.sprite_vrl_cont.buffer - sizeof(struct vrl1_vgax_header);\r
-// vrl_header = (struct vrl1_vgax_header far *)(enti->spri.sprite_vrl_cont.buffer + enti->spri.sprite_vrl_cont.buffer);\r
-#if 0\r
- num_of_vrl = 0;\r
- while(vrl_id_iter[num_of_vrl]){\r
- num_of_vrl++;\r
- }\r
+ enti->spri.sprite_vrl_cont.data_size = sizeof(enti->spri.spritesheet.buffer) - sizeof(struct vrl1_vgax_header);\r
\r
// Allocate memory for vrl line offsets table\r
-//#ifndef VRS_USECAMMPM\r
- vrl_line_offsets = malloc(sizeof(vrl1_vgax_offset_t *)*num_of_vrl);//TODO: USE MM_ CA_ AND PM_\r
-//#else\r
- MM_GetPtr(MEMPTRCONV gvar->ca.grsegs[0], sizeof(vrl1_vgax_offset_t *)*num_of_vrl, gvar);\r
- enti->spri.sprite_vrl_cont.vrl_line_offsets = (vrl1_vgax_offset_t **)gvar->ca.grsegs[0];\r
-//#endif\r
+#ifndef VRL_USECAMMPM\r
+ line_offsets = malloc(sizeof(vrl1_vgax_offset_t *));//TODO: USE MM_ CA_ AND PM_\r
+#else\r
+ MM_GetPtr(MEMPTRCONV gvar->ca.grsegs[0], sizeof(vrl1_vgax_offset_t *), gvar);\r
+ enti->spri.sprite_vrl_cont.line_offsets = (vrl1_vgax_offset_t *)gvar->ca.grsegs[0];\r
+#endif\r
\r
- 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]);\r
+ //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]);\r
// Calculate line offsets for each vrl\r
- for(i = 0; i < num_of_vrl; i++){\r
- curr_vrl = (struct vrl1_vgax_header far *)(enti->spri.sprite_vrl_cont.buffer + vrl_headers_offsets[i]);\r
+ curr_vrl = (struct vrl1_vgax_header far *)(enti->spri.sprite_vrl_cont.buffer);// + vrl_headers_offsets);\r
\r
- // Calc. vrl size as (next_offset - curr_offset)\r
- if (i != num_of_vrl - 1){\r
- vrl_size = vrl_headers_offsets[i+1] - vrl_headers_offsets[i] - sizeof(struct vrl1_vgax_header);\r
- }\r
- // If it's the last vrl, size is (next_vrs_struct_offset - curr_offset)\r
- else{\r
- 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);\r
- }\r
-#ifndef VRS_USECAMMPM\r
- vrl_line_offsets = vrl1_vgax_genlineoffsets(curr_vrl, (byte *)curr_vrl + sizeof(struct vrl1_vgax_header), vrl_size);\r
+#ifndef VRL_USECAMMPM\r
+ line_offsets = vrl1_vgax_genlineoffsets(curr_vrl, (byte *)curr_vrl + sizeof(struct vrl1_vgax_header), sizeof(enti->spri.spritesheet.buffer));\r
#else\r
- enti->spri.sprite_vrl_cont.vrl_line_offsets[i] = vrl1_vgax_genlineoffsets(curr_vrl, (byte *)curr_vrl + sizeof(struct vrl1_vgax_header), vrl_size);\r
-#endif\r
- }\r
+ 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));\r
#endif\r
\r
- 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);\r
-#ifndef VRS_USECAMMPM\r
- enti->spri.sprite_vrl_cont.vrl_line_offsets = vrl_line_offsets;\r
+#ifndef VRL_USECAMMPM\r
+ enti->spri.sprite_vrl_cont.line_offsets = line_offsets;\r
#endif\r
+ printf("VRS_OpenVRL\n");\r
+ printf(" vrl_size=%lu\n\n",sizeof(enti->spri.spritesheet.buffer));\r
}\r
+//\r
+#endif\r
\r
// Seek and return a specified .vrl blob from .vrs blob in far memory\r
int get_vrl_by_id(struct vrs_container far *vrs_cont, uint16_t id, struct vrl_container *vrl_cont){\r
--- /dev/null
+#! /bin/bash
+rm data/spri/"$1".vr*
+rm data/spri/"$1".pal
+. ./spri.sh "$1"
+. ./spri.sh "$1"
#define FILENAME_1P "data/spri/chikyuu.pal"\r
#define FILENAME_2 "data/spri/me.vrs"\r
#define FILENAME_2P "data/spri/me.pal"\r
-#define FILENAME_3 "data/spri/chistnd.vrl"\r
+//#define FILENAME_3 "data/spri/chistnd.vrl"\r
\r
void main(int argc, char *argv[])\r
{\r
\r
char bakapee[64] = FILENAME_1;\r
char bakapeep[64] = FILENAME_1P;\r
- char bakapee3[64] = FILENAME_3;\r
+// char bakapee3[64] = FILENAME_3;\r
\r
Startup16(&gvar);\r
\r
#endif\r
// data\r
VRS_LoadVRS(bakapee, &gvar.player[0].enti, &gvar);\r
-// VRS_LoadVRS(bakapee3, &enti, &gvar);\r
\r
// input!\r
IN_Default(0, &gvar.player[0],ctrl_Keyboard1, &gvar);\r
if(gvar.in.inst->Keyboard[sc_LBrkt]){ ShowPalVal (&gvar); IN_UserInput(1, &gvar); }\r
\r
//===============================================================================\r
-\r
+#if 0\r
if(gvar.in.inst->Keyboard[sc_BackSlash]){\r
VRS_ReadVRL(bakapee3, &gvar.player[0].enti, &gvar);\r
DrawVRL(\r
); while (!IN_CheckAck (&gvar)){}\r
VRS_ReadVRS(bakapee, &gvar.player[0].enti, &gvar);\r
IN_UserInput(1, &gvar); }\r
-\r
+#endif\r
//===============================================================================\r
\r
if(gvar.in.inst->Keyboard[sc_J] || gvar.in.inst->Keyboard[sc_K])\r