#include "src/lib/16_ca.h"
#include "src/lib/16_mm.h"
-global_game_variables_t gvar;
-
void main() {
- mminfo_t mm; mminfotype mmi;
+ global_game_variables_t gvar;
__segment sega;
- void __based(sega)* bigbuffer;
+ memptr bigbuffer;
int i;
word start;
int plane;
float t1, t2;
boolean baka;
byte *pal;
- int fd, size, size1;
+ int size, size1;
struct sprite spri;
vrl1_vgax_offset_t * off, *off1;
struct vrs_container vrs;
int num_of_vrl;
struct vrl1_vgax_header huge *curr_vrl;
struct vrl_container *vrl;
- int success;
word w=0;
-
-
// DOSLIB: check our environment
probe_dos();
return;
}
- //bmp = bitmapLoadPcx("data/chikyuu.pcx");
- gvar.video.page[0]=modexDefaultPage(&gvar.video.page[0]);
+ //gvar.video.page[0]=modexDefaultPage(&gvar.video.page[0]);
- mm.mmstarted=0;
- MM_Startup(&mm, &mmi);
+ gvar.mm.mmstarted=0;
+ MM_Startup(&gvar.mm, &gvar.mmi);
CA_Startup(&gvar);
- if(CA_LoadFile("data/spri/chikyuu.vrs", &bigbuffer, &mm, &mmi)) baka=1; else baka=0;
- fd = open("data/spri/chikyuu.vrs", O_RDONLY|O_BINARY);
- size = lseek(fd, 0, SEEK_END);
- lseek(fd, 0, SEEK_SET);
- close(fd);
+ // What should be done by read_vrs:
+ //sega = (mm.bufferseg);
+ if(CA_LoadFile("data/spri/chikyuu.vrs", &bigbuffer, &gvar.mm, &gvar.mmi)) baka=1; else baka=0;
+
// Insert sanity cheks later
vrs.buffer = bigbuffer;
vrs.data_size = size - sizeof(struct vrl1_vgax_header);
}
vrs.vrl_line_offsets = vrl_line_offsets;
+
//read_vrs(&gvar, "data/spri/chikyuu.vrs", &vrs);
spri.spritesheet = &vrs;
spri.sprite_vrl_cont = malloc(sizeof(struct vrl_container));
-
- vrl = malloc(sizeof(struct vrl_container));
- i = get_vrl_by_id(&vrs, 10, vrl);
- if(i == -2)
- {
- puts("Die");
- return;
- }
- off = vrl1_vgax_genlineoffsets(curr_vrl/*vrl->buffer*/, vrl->buffer + sizeof(struct vrl1_vgax_header), vrl->data_size);
- fd = open("data/spri/chikyuu.vrl", O_RDONLY|O_BINARY);
- size = lseek(fd, 0, SEEK_END);
- lseek(fd, 0, SEEK_SET);
- close(fd);
-
- if(CA_LoadFile("data/spri/chikyuu.vrl", &bigbuffer, &mm, &mmi)) baka=1; else baka=0;
- off1 = vrl1_vgax_genlineoffsets(bigbuffer, (byte *)bigbuffer + sizeof(struct vrl1_vgax_header), size - sizeof(struct vrl1_vgax_header));
-
-
- //read_vrs(&gvar, "data/spri/chikyuu.vrs", spri.spritesheet);
- i = set_anim_by_id(&spri, 10);
+ i = set_anim_by_id(&spri, 11);
if (i == -1)
{
return;
}
- spri.x = spri.y = 70;
-
+ spri.x = 5;
+ spri.y = 100;
- /* fix up the palette and everything */
- //modexPalUpdate1(bmp.palette);
- //modexLoadPalFile("data/spri/chikyuu.pal", &pal);
- //modexPalUpdate1(pal);
+// 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);
- modexClearRegion(&gvar.video.page[0], 0, 0, gvar.video.page[0].sw, gvar.video.page[0].sh, 1);
+ modexHiganbanaPageSetup(&gvar.video);
/* non sprite comparison */
start = *clockw;
modexCopyPageRegion(&gvar.video.page[0], &gvar.video.page[0], 0, 0, 0, 0, 320, 240);
- animate_spri(&spri);
t1 = (*clockw-start) /18.2;
start = *clockw;
- draw_vrl1_vgax_modex(5,5,curr_vrl/*vrl->buffer*/,vrl->line_offsets,vrl->buffer + sizeof(struct vrl1_vgax_header),vrl->data_size);
- draw_vrl1_vgax_modex(40,40,curr_vrl/*vrs.buffer*/ + vrl_headers_offsets[0],vrs.vrl_line_offsets[0],vrs.buffer + vrl_headers_offsets[0] + sizeof(struct vrl1_vgax_header),vrl_headers_offsets[1] - vrl_headers_offsets[0] - sizeof(struct vrl1_vgax_header));
- draw_vrl1_vgax_modex(100, 5, bigbuffer, off1, (byte *)bigbuffer + sizeof(struct vrl1_vgax_header), size - sizeof(struct vrl1_vgax_header));
-
t2 = (*clockw-start)/18.2;
- //for (i = 0; i < 5; i++){
- //animate_spri(&spri);
+ for (i = 0; i < 5; i++){
+ spri.delay = 1; animate_spri(&spri); spri.x += 20; sleep(1); }
while(!kbhit())
{
}
}
VGAmodeX(0, 1, &gvar);
+ MM_ShowMemory(&gvar, &gvar.mm);
+ MM_DumpData(&gvar.mm);
free(spri.sprite_vrl_cont);
- MM_FreePtr(&bigbuffer, &mm);
+ MM_FreePtr(&bigbuffer, &gvar.mm);
//MM_FreePtr(&((void __based(sega)*)spri.spritesheet->buffer), &mm);
- MM_Shutdown(&mm);
CA_Shutdown(&gvar);
+ MM_Shutdown(&gvar.mm);
//printf("CPU to VGA: %f\n", t1);
//printf("VGA to VGA: %f\n", t2);
+ heapdump(&gvar);
+ printf("Project 16 vrstest.exe. This is just a test file!\n");
+ printf("version %s\n", VERSION);
printf("t1: %f\n", t1);
printf("t2: %f\n", t2);
printf("gvar.video.page[0].width: %u\n", gvar.video.page[0].width);