8 #include "../dis/dis.h"
\r
10 #include "graphics.h"
\r
14 #define DPII (3.1415926535*2.0)
\r
20 #define SINMASK 4095
\r
21 #define PLZSINI(p1,p2,p3,p4) *ptr++ = (psini[x*32+lsini[y*2+p2]*16+p1] + psini[y*4+lsini[x*64+p4]*4+p3]) + (psini[x*32+16+lsini[y*2+p2]*16+p1] + psini[y*4+lsini[x*64+32+p4]*4+p3])*256;
\r
23 extern int init_copper();
\r
24 extern int close_copper();
\r
25 extern int far frame_count;
\r
26 extern int far cop_drop;
\r
27 extern int far cop_plz;
\r
28 extern int far cop_start;
\r
29 extern char far * far cop_fadepal;
\r
30 extern char far fadepal[768];
\r
31 extern far char * far cop_pal;
\r
32 extern far int do_pal;
\r
34 extern int plzline(int y, int vseg);
\r
35 extern int setplzparas(int c1, int c2, int c3, int c4);
\r
36 extern int set_plzstart(int y);
\r
37 //extern char far psini[16384];
\r
38 //extern int far lsini4[8192];
\r
39 //extern int far lsini16[8192];
\r
41 unsigned char *psini;
\r
45 //int (* vmem)[LINELEN]=MK_FP(0x0a000,0);
\r
46 //char psini[16384]=
\r
47 //#include "psini.pre"
\r
48 //char lsini[16384]=
\r
49 //#include "lsini.pre"
\r
51 void init_plz(void);
\r
56 int16_t pals[6][768];
\r
58 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
61 int l1=1000, l2=2000, l3=3000, l4=4000;
\r
62 int k1=3500, k2=2300, k3=3900, k4=3670;
\r
64 int il1=1000, il2=2000, il3=3000, il4=4000;
\r
65 int ik1=3500, ik2=2300, ik3=3900, ik4=3670;
\r
67 int inittable[10][8]={{1000,2000,3000,4000,3500,2300,3900,3670},
\r
68 {1000,2000,4000,4000,1500,2300,3900,1670},
\r
69 {3500,1000,3000,1000,3500,3300,2900,2670},
\r
70 {1000,2000,3000,4000,3500,2300,3900,3670},
\r
71 {1000,2000,3000,4000,3500,2300,3900,3670},
\r
72 {1000,2000,3000,4000,3500,2300,3900,3670}};
\r
74 int fixme_dis_getmframe()
\r
76 static int s_nResult = 0;
\r
82 register int /*x,*/y;
\r
87 while(dis_musplus()<0 && !dis_exit());
\r
92 cop_fadepal=(char *)pals[curpal++];
\r
97 tim+=frame_count; frame_count=0; count++;
\r
98 if(fixme_dis_getmframe()>timetable[ttptr])
\r
100 memset(fadepal,0,768);
\r
102 cop_fadepal=(char *)pals[curpal++];
\r
104 il1=inittable[ttptr][0];
\r
105 il2=inittable[ttptr][1];
\r
106 il3=inittable[ttptr][2];
\r
107 il4=inittable[ttptr][3];
\r
108 ik1=inittable[ttptr][4];
\r
109 ik2=inittable[ttptr][5];
\r
110 ik3=inittable[ttptr][6];
\r
111 ik4=inittable[ttptr][7];
\r
113 if(curpal==5 && cop_drop>64) break;
\r
115 // [nk] VGA: select bit planes 0,2 (?)
\r
117 //asm mov ax, 0a02h
\r
120 vga_select_bitplanes_02();
\r
122 setplzparas(k1,k2,k3,k4);
\r
123 for(y=0;y<MAXY;y+=2)
\r
124 plzline(y,y*6+YADD*6);
\r
125 setplzparas(l1,l2,l3,l4);
\r
126 for(y=1;y<MAXY;y+=2)
\r
127 plzline(y,y*6+YADD*6);
\r
129 // [nk] VGA: select bit planes 1,3 (?)
\r
131 //asm mov ax, 0502h
\r
134 vga_select_bitplanes_13();
\r
136 setplzparas(k1,k2,k3,k4);
\r
137 for(y=1;y<MAXY;y+=2)
\r
138 plzline(y,y*6+YADD*6);
\r
139 setplzparas(l1,l2,l3,l4);
\r
140 for(y=0;y<MAXY;y+=2)
\r
141 plzline(y,y*6+YADD*6);
\r
143 vga_show_framebuffer();
\r
147 cop_drop=0; frame_count=0; //while(frame_count==0);
\r
155 int16_t *pptr=(int16_t *)pals;
\r
157 psini = malloc(16384 + 2 * 8192 + 2 * 8192);
\r
158 lsini4 = (short *)psini + 8192;
\r
159 lsini16 = lsini4 + 8192;
\r
162 for(a=0;a<1024*16;a++)
\r
166 lsini4[a]=(sin(a*DPII/4096)*55+sin(a*DPII/4096*5)*8+sin(a*DPII/4096*15)*2+64)*8;
\r
167 lsini16[a]=(sin(a*DPII/4096)*55+sin(a*DPII/4096*4)*5+sin(a*DPII/4096*17)*3+64)*16;
\r
169 psini[a]=sin(a*DPII/4096)*55+sin(a*DPII/4096*6)*5+sin(a*DPII/4096*21)*4+64;
\r
172 for(a=1;a<=128;a++)
\r
174 ptau[a]=cos(a*DPII/128+3.1415926535)*31+32;
\r
179 cop_start=96*(682-400);
\r
182 for(a=0;a<256;a++) tw_setrgbpalette(a,63,63,63);
\r
186 for(a=1;a<64;a++) *pptr++=ptau[a ],*pptr++=ptau[0 ],*pptr++=ptau[0 ];
\r
187 for(a=0;a<64;a++) *pptr++=ptau[63-a],*pptr++=ptau[0 ],*pptr++=ptau[0 ];
\r
188 for(a=0;a<64;a++) *pptr++=ptau[0 ],*pptr++=ptau[0 ],*pptr++=ptau[a];
\r
189 for(a=0;a<64;a++) *pptr++=ptau[a ],*pptr++=ptau[0 ],*pptr++=ptau[63-a];
\r
193 for(a=1;a<64;a++) *pptr++=ptau[a ],*pptr++=ptau[0 ],*pptr++=ptau[0 ];
\r
194 for(a=0;a<64;a++) *pptr++=ptau[63-a],*pptr++=ptau[0 ],*pptr++=ptau[a ];
\r
195 for(a=0;a<64;a++) *pptr++=ptau[0 ],*pptr++=ptau[a ],*pptr++=ptau[63-a];
\r
196 for(a=0;a<64;a++) *pptr++=ptau[a ],*pptr++=ptau[63 ],*pptr++=ptau[a ];
\r
200 for(a=1;a<64;a++) *pptr++=ptau[a ],*pptr++=ptau[0 ],*pptr++=ptau[0 ];
\r
201 for(a=0;a<64;a++) *pptr++=ptau[63 ],*pptr++=ptau[a ],*pptr++=ptau[a ];
\r
202 for(a=0;a<64;a++) *pptr++=ptau[63-a],*pptr++=ptau[63-a],*pptr++=ptau[63 ];
\r
203 for(a=0;a<64;a++) *pptr++=ptau[0 ],*pptr++=ptau[0 ],*pptr++=ptau[63 ];
\r
207 for(a=1;a<64;a++) *pptr++=ptau[0 ]/2,*pptr++=ptau[0 ]/2,*pptr++=ptau[0 ]/2;
\r
208 for(a=0;a<64;a++) *pptr++=ptau[a ]/2,*pptr++=ptau[a ]/2,*pptr++=ptau[a ]/2;
\r
209 for(a=0;a<64;a++) *pptr++=ptau[63-a]/2,*pptr++=ptau[63-a]/2,*pptr++=ptau[63-a]/2;
\r
210 for(a=0;a<64;a++) *pptr++=ptau[0 ]/2,*pptr++=ptau[0 ]/2,*pptr++=ptau[0 ]/2;
\r
214 for(a=1;a<75;a++) *pptr++=ptau[63-a*64/75],*pptr++=ptau[63-a*64/75],*pptr++=ptau[63-a*64/75];
\r
215 for(a=0;a<106;a++)*pptr++=0,*pptr++=0,*pptr++=0;
\r
216 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
219 for(a=0;a<768;a++,pptr++) *pptr=(*pptr-63)*2;
\r
220 for(a=768;a<768*5;a++,pptr++) *pptr*=8;
\r