X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fvrstest.c;h=14baca184f71fe280f1b25722aa7ed1547f3dcab;hb=340e87b918384afcde08592db5c24fc49ebf0694;hp=d0e2b411778f13f79905607c99ea391486b6cc56;hpb=6e0eeb6a7bc878859519b3ead8dcbf14218add1a;p=16.git diff --git a/src/vrstest.c b/src/vrstest.c index d0e2b411..14baca18 100755 --- a/src/vrstest.c +++ b/src/vrstest.c @@ -21,16 +21,20 @@ */ #include "src/lib/16_head.h" +#include "src/lib/16_tail.h" #include "src/lib/16_vl.h" #include "src/lib/16_sprit.h" -#include "src/lib/16_tail.h" #include "src/lib/16_pm.h" #include "src/lib/16_ca.h" #include "src/lib/16_mm.h" +extern boolean dbg_nointest; + static word far* clockw= (word far*) 0x046C; /* 18.2hz clock */ +static byte palette[768]; -void main() { +void main() +{ static global_game_variables_t gvar; //__segment sega; memptr bigbuffer; @@ -38,31 +42,28 @@ void main() { word start; float t1, t2; //boolean baka; - byte *pal=0; - int size=0; - struct sprite spri; + entity_t enti; //vrl1_vgax_offset_t * off, *off1; struct vrs_container vrs; vrl1_vgax_offset_t **vrl_line_offsets; - uint32_t huge *vrl_headers_offsets; - uint16_t huge *vrl_id_iter; + uint32_t far *vrl_headers_offsets; + uint16_t far *vrl_id_iter; uint32_t vrl_size; int num_of_vrl; - struct vrl1_vgax_header huge *curr_vrl; - word w=0; + struct vrl1_vgax_header far *curr_vrl; + int size=0; + dbg_nointest=0; Startup16(&gvar); // What should be done by read_vrs: - //sega = (mm.bufferseg); - //if( CA_LoadFile("data/spri/chikyuu.vrs", &bigbuffer, &gvar);//) baka=1; else baka=0; // Insert sanity cheks later vrs.buffer = bigbuffer; vrs.data_size = size - sizeof(struct vrl1_vgax_header); num_of_vrl = 0; - vrl_id_iter = (uint16_t huge *)(vrs.buffer + vrs.vrs_hdr->offset_table[VRS_HEADER_OFFSET_SPRITE_ID_LIST]); + vrl_id_iter = (uint16_t far *)(vrs.buffer + vrs.vrs_hdr->offset_table[VRS_HEADER_OFFSET_SPRITE_ID_LIST]); while(vrl_id_iter[num_of_vrl]){ num_of_vrl++; } @@ -70,10 +71,10 @@ void main() { // Allocate memory for vrl line offsets table vrl_line_offsets = malloc(sizeof(vrl1_vgax_offset_t *)*num_of_vrl); - vrl_headers_offsets = (uint32_t huge *)(vrs.buffer + vrs.vrs_hdr->offset_table[VRS_HEADER_OFFSET_VRS_LIST]); + vrl_headers_offsets = (uint32_t far *)(vrs.buffer + vrs.vrs_hdr->offset_table[VRS_HEADER_OFFSET_VRS_LIST]); // Calculate line offsets for each vrl for(i = 0; i < num_of_vrl; i++){ - curr_vrl = (struct vrl1_vgax_header huge *)(vrs.buffer + vrl_headers_offsets[i]); + curr_vrl = (struct vrl1_vgax_header far *)(vrs.buffer + vrl_headers_offsets[i]); // Calc. vrl size as (next_offset - curr_offset) if (i != num_of_vrl - 1){ @@ -89,23 +90,23 @@ void main() { //read_vrs(&gvar, "data/spri/chikyuu.vrs", &vrs); - spri.spritesheet = &vrs; - spri.sprite_vrl_cont = malloc(sizeof(struct vrl_container)); - i = set_anim_by_id(&spri, 11); + enti.spri->spritesheet = &vrs; + enti.spri->sprite_vrl_cont = malloc(sizeof(struct vrl_container)); + i = set_anim_by_id((enti.spri), 31); if (i == -1) { return; } - spri.x = 5; - spri.y = 100; + enti.spri->x = TILEWH-4; + enti.spri->y = TILEWH; // Uncomment to see broken sprites /* sega = mm.bufferseg; if(CA_LoadFile("data/spri/CHUBACW1.vrl", &bigbuffer, &mm, &mmi)) baka=1; else baka=0;*/ - /* clear and draw one sprite and one bitmap */ VGAmodeX(1, 1, &gvar); modexHiganbanaPageSetup(&gvar.video); + VL_ShowPage(&gvar.video.page[0], 0, 0); /* non sprite comparison */ start = *clockw; @@ -118,12 +119,19 @@ void main() { /*modexLoadPalFile("data/spri/chikyuu.pal", &pal); modexPalUpdate1(pal);*/ - for (i = 0; i < 5; i++){ - spri.delay = 1; animate_spri(&spri); spri.x += 20; /*sleep(1);*/ } + VL_LoadPalFile("data/spri/chikyuu.pal", &palette); + for (i = 0; i < 10; i++){ + enti.spri->delay = 1; + + if(i==5) set_anim_by_id(enti.spri, 21); + + animate_spri(&enti, &gvar.video);// enti.spri->x += 16; + delay(500); + } while(!IN_KeyDown(sc_Escape)) { - switch(w) + /*switch(w) { case 1024: modexPalUpdate0(pal); @@ -131,17 +139,19 @@ void main() { default: w++; break; - } + }*/ + if(IN_KeyDown(25)){ modexpdump(&gvar.video.page[0]); IN_UserInput(1,1); } //p +FUNCTIONKEYFUNCTIONS; } VGAmodeX(0, 1, &gvar); MM_ShowMemory(&gvar); MM_DumpData(&gvar); MM_Report_(&gvar); Shutdown16(&gvar); - free(spri.sprite_vrl_cont); + free(enti.spri->sprite_vrl_cont); free(vrl_line_offsets); MM_FreePtr(&bigbuffer, &gvar); - //MM_FreePtr(&((void __based(sega)*)spri.spritesheet->buffer), &mm); + //MM_FreePtr(&((void __based(sega)*)enti.spri->spritesheet->buffer), &mm); //printf("CPU to VGA: %f\n", t1); //printf("VGA to VGA: %f\n", t2); heapdump(&gvar);