#include <dos.h>
#include <string.h>
#include "src/lib/modex16.h"
-#include "src/lib/16_sprite.h"
+#include "src/lib/16_sprit.h"
#include "src/lib/16_ca.h"
#include "src/lib/16_mm.h"
struct vrl1_vgax_header huge *curr_vrl;
struct vrl_container *vrl;
int success;
+ word w=0;
mm.mmstarted=0;
MM_Startup(&mm, &mmi);
CA_Startup(&gvar);
+ // What should be done by read_vrs:
+ //sega = (mm.bufferseg);
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);
}
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);
/* non sprite comparison */
start = *clockw;
- //for(i=0; i<100 ;i++) {
- // oldDrawBmp(VGA, 20, 20, &bmp, 0);
- //}
-
- start = *clockw;
- //for(i=0; i<100 ;i++) {
-//0000 modexDrawBmp(&gvar.video.page[0], 20, 20, &bmp);
- // modexDrawBmp(&gvar.video.page[0], 160, 120, &bmp);
- //}
+ modexCopyPageRegion(&gvar.video.page[0], &gvar.video.page[0], 0, 0, 0, 0, 320, 240);
t1 = (*clockw-start) /18.2;
start = *clockw;
- //for(i=0; i<100; i++) {
-//0000 modexCopyPageRegion(&gvar.video.page[0], &gvar.video.page[0], 20, 20, 128, 20, 64, 64);
- modexCopyPageRegion(&gvar.video.page[0], &gvar.video.page[0], 0, 0, 0, 0, 320, 240);
- animate_spri(&spri);
- 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);
-
- start = *clockw;
- //for(i=0; i<100 ;i++) {
- // oldDrawBmp(VGA, 20, 20, &bmp, 1);
- //}
+ t2 = (*clockw-start)/18.2;
+ for (i = 0; i < 5; i++){
+ spri.delay = 1; animate_spri(&spri); spri.x += 20; sleep(2); }
- start = *clockw;
- //for(i=0; i<100 ;i++) {
-//0000 modexDrawSprite(&gvar.video.page[0], 20, 20, &bmp);
- // modexDrawSprite(&gvar.video.page[0], 160, 120, &bmp);
- //}
- //_fmemset(MK_FP(0xA000, 0), (int)p->plane, gvar.video.page[0].sw*(gvar.video.page[0].sh*2));
- //modexDrawBmp(&gvar.video.page[0], 0, 0, &bmp);
while(!kbhit())
{
- //DrawPBuf(&gvar.video.page[0], 0, 0, p, 0);
+ switch(w)
+ {
+ case 1024:
+ modexPalUpdate0(pal);
+ w=0;
+ default:
+ w++;
+ break;
+ }
}
VGAmodeX(0, 1, &gvar);
free(spri.sprite_vrl_cont);
//MM_FreePtr(&((void __based(sega)*)spri.spritesheet->buffer), &mm);
MM_Shutdown(&mm);
CA_Shutdown(&gvar);
- /*printf("\nmain=%Fp\n\n", &i);
- printf("bmp.data=%Fp\n", bmp.data);
- printf("*bmp.data=%Fp\n", *(bmp.data));
- printf("&bmp.data=%Fp\n", &(bmp.data));
-
- printf("\n%d\n", sizeof(p->plane));
- printf("%d\n", sizeof(bmp));*/
-
- /*for(i=0; i<(320*240); i++)
- {
- fprintf(stdout, "%d", bmp.data[i]);
- if(i%bmp.width==0) fprintf(stdout, "\n");
- }*/
- printf("CPU to VGA: %f\n", t1);
- printf("VGA to VGA: %f\n", t2);
+ //printf("CPU to VGA: %f\n", t1);
+ //printf("VGA to VGA: %f\n", t2);
+ printf("t1: %f\n", t1);
+ printf("t2: %f\n", t2);
printf("gvar.video.page[0].width: %u\n", gvar.video.page[0].width);
printf("gvar.video.page[0].height: %u\n", gvar.video.page[0].height);
printf("Num %d", num_of_vrl);