#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
#include <math.h>\r
-#include <conio.h>\r
-#include <dos.h>\r
+//#include <conio.h>\r
+//#include <dos.h>\r
#include "tweak.h"\r
+#include "../dis/dis.h"\r
+#include "opengl.h"\r
+#include "graphics.h"\r
+#include "common.h"\r
\r
-//#define DO_TABLES\r
-//#define DPII (3.1415926535*2.0)\r
+#define DO_TABLES\r
+#define DPII (3.1415926535*2.0)\r
\r
#define LINELEN 41\r
#define MAXY 280\r
extern int plzline(int y, int vseg);\r
extern int setplzparas(int c1, int c2, int c3, int c4);\r
extern int set_plzstart(int y);\r
-extern char far psini[16384];\r
-extern int far lsini4[8192];\r
-extern int far lsini16[8192];\r
+//extern char far psini[16384];\r
+//extern int far lsini4[8192];\r
+//extern int far lsini16[8192];\r
+\r
+unsigned char *psini;\r
+short *lsini4;\r
+short *lsini16;\r
\r
//int (* vmem)[LINELEN]=MK_FP(0x0a000,0);\r
//char psini[16384]=\r
//char lsini[16384]=\r
//#include "lsini.pre"\r
\r
+void init_plz(void);\r
+\r
char ptau[256]=\r
#include "ptau.pre"\r
\r
-int pals[6][768];\r
+int16_t pals[6][768];\r
int curpal=0;\r
int timetable[10]={64*6*2-45,64*6*4-45,64*6*5-45,64*6*6-45,64*6*7+90,0};\r
int ttptr=0;\r
{1000,2000,3000,4000,3500,2300,3900,3670},\r
{1000,2000,3000,4000,3500,2300,3900,3670}};\r
\r
-plz(){\r
- register int x,y;\r
- int *ptr;\r
+int fixme_dis_getmframe()\r
+{\r
+ static int s_nResult = 0;\r
+ s_nResult++;\r
+ return s_nResult;\r
+}\r
+\r
+void plz(){\r
+ register int /*x,*/y;\r
+ //int *ptr;\r
long tim=0,count=0;\r
- int ch=0,sync=2;\r
+ //int ch=0,sync=2;\r
\r
while(dis_musplus()<0 && !dis_exit());\r
dis_setmframe(0);\r
\r
init_plz();\r
cop_drop=128;\r
- cop_fadepal=pals[curpal++];\r
+ cop_fadepal=(char *)pals[curpal++];\r
\r
frame_count=0;\r
while(!dis_exit())\r
{\r
tim+=frame_count; frame_count=0; count++;\r
- if(dis_getmframe()>timetable[ttptr])\r
+ if(fixme_dis_getmframe()>timetable[ttptr])\r
{\r
memset(fadepal,0,768);\r
cop_drop=1;\r
- cop_fadepal=pals[curpal++];\r
+ cop_fadepal=(char *)pals[curpal++];\r
ttptr++;\r
il1=inittable[ttptr][0];\r
il2=inittable[ttptr][1];\r
}\r
if(curpal==5 && cop_drop>64) break;\r
\r
- asm mov dx, 3c4h\r
- asm mov ax, 0a02h\r
- asm out dx, ax\r
+ // [nk] VGA: select bit planes 0,2 (?)\r
+ //asm mov dx, 3c4h\r
+ //asm mov ax, 0a02h\r
+ //asm out dx, ax\r
+\r
+ vga_select_bitplanes_02();\r
\r
setplzparas(k1,k2,k3,k4);\r
for(y=0;y<MAXY;y+=2)\r
- plzline(y,0x0a000+y*6+YADD*6);\r
+ plzline(y,y*6+YADD*6);\r
setplzparas(l1,l2,l3,l4);\r
for(y=1;y<MAXY;y+=2)\r
- plzline(y,0x0a000+y*6+YADD*6);\r
+ plzline(y,y*6+YADD*6);\r
\r
+ // [nk] VGA: select bit planes 1,3 (?)\r
+ //asm mov dx, 3c4h\r
+ //asm mov ax, 0502h\r
+ //asm out dx, ax\r
\r
- asm mov dx, 3c4h\r
- asm mov ax, 0502h\r
- asm out dx, ax\r
+ vga_select_bitplanes_13();\r
\r
setplzparas(k1,k2,k3,k4);\r
for(y=1;y<MAXY;y+=2)\r
- plzline(y,0x0a000+y*6+YADD*6);\r
+ plzline(y,y*6+YADD*6);\r
setplzparas(l1,l2,l3,l4);\r
for(y=0;y<MAXY;y+=2)\r
- plzline(y,0x0a000+y*6+YADD*6);\r
+ plzline(y,y*6+YADD*6);\r
+\r
+ vga_show_framebuffer();\r
+ draw_bg();\r
+ swap_buffers();\r
}\r
- cop_drop=0; frame_count=0; while(frame_count==0);\r
+ cop_drop=0; frame_count=0; //while(frame_count==0);\r
set_plzstart(500);\r
cop_plz=0;\r
}\r
\r
-init_plz()\r
+void init_plz()\r
{\r
- int a,b,c,z;\r
- int *pptr=pals;\r
+ int a/*,b,c,z*/;\r
+ int16_t *pptr=(int16_t *)pals;\r
\r
+ psini = malloc(16384 + 2 * 8192 + 2 * 8192);\r
+ lsini4 = (short *)psini + 8192;\r
+ lsini16 = lsini4 + 8192;\r
+ \r
#ifdef DO_TABLES\r
- {\r
- FILE *f1,*f2,*f3,*f4;\r
- f1=fopen("lsini4.inc","wb");\r
- f2=fopen("lsini16.inc","wb");\r
- f3=fopen("psini.inc","wb");\r
- f4=fopen("ptau.inc","wb");\r
-\r
for(a=0;a<1024*16;a++)\r
{\r
if(a<1024*8)\r
lsini16[a]=(sin(a*DPII/4096)*55+sin(a*DPII/4096*4)*5+sin(a*DPII/4096*17)*3+64)*16;\r
}\r
psini[a]=sin(a*DPII/4096)*55+sin(a*DPII/4096*6)*5+sin(a*DPII/4096*21)*4+64;\r
- if((a&15)==0)\r
- {\r
- if(a<1024*8)\r
- {\r
- fprintf(f1,"\ndw %4d",lsini4[a]);\r
- fprintf(f2,"\ndw %4d",lsini16[a]);\r
- }\r
- fprintf(f3,"\ndb %4d",psini[a]);\r
- }\r
- else {\r
- if(a<1024*8)\r
- {\r
- fprintf(f1,",%4d",lsini4[a]);\r
- fprintf(f2,",%4d",lsini16[a]);\r
- }\r
- fprintf(f3,",%4d",psini[a]);\r
- }\r
- }\r
+ }\r
\r
- fprintf(f4,"{\n%d",ptau[0]=0);\r
for(a=1;a<=128;a++)\r
- {\r
- fprintf(f4,",%3d",ptau[a]=cos(a*DPII/128+3.1415926535)*31+32);\r
- if(!(a&15)) fputc('\n',f4);\r
- }\r
- fputc('}',f4); fputc(';',f4);\r
-\r
- fclose(f1); fclose(f2); fclose(f3); fclose(f4);\r
+ {\r
+ ptau[a]=cos(a*DPII/128+3.1415926535)*31+32;\r
}\r
#endif\r
+\r
tw_opengraph2();\r
cop_start=96*(682-400);\r
set_plzstart(60);\r
for(a=0;a<106;a++)*pptr++=0,*pptr++=0,*pptr++=0;\r
for(a=0;a<75;a++) *pptr++=ptau[a*64/75]*8/10,*pptr++=ptau[a*64/75]*9/10,*pptr++=ptau[a*64/75];\r
\r
- pptr=pals;\r
+ pptr=&pals[0][0];\r
for(a=0;a<768;a++,pptr++) *pptr=(*pptr-63)*2;\r
for(a=768;a<768*5;a++,pptr++) *pptr*=8;\r
}\r