Removed unneeded whitespace.

This commit is contained in:
n-a-c-h
2005-06-02 01:05:50 +00:00
parent b13fbb8f41
commit 57eed11457
70 changed files with 1570 additions and 1570 deletions

View File

@@ -22,17 +22,17 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
/*
Introducing 'the "DJGPP/MinGW/MSVC/GCC on *nix compatible" call asm function
Introducing 'the "DJGPP/MinGW/MSVC/GCC on *nix compatible" call asm function
safely from C/C++' macro function!
Usage:
asm_call( func_name );
That's all there is to it!!!
Note: Make sure this is used on a line by itself if the file will ever be
compiled with MSVC, since it's preproccessor won't parse the inline
compiled with MSVC, since it's preproccessor won't parse the inline
assembly correctly if other stuff are on the line
Note: This will not work with GCC when using the parameter -MASM=intel

View File

@@ -289,7 +289,7 @@ void C4Op0D()
}
#define READ_WORD(s) (*(unsigned short *) (s))
void C4Op22()
void C4Op22()
{
extern unsigned char *C4Ram;
short angle1 = READ_WORD(C4Ram+0x1f8c) & 0x1ff;
@@ -298,7 +298,7 @@ void C4Op22()
int tan2 = Tan(angle2);
short y = READ_WORD(C4Ram+0x1f83) - READ_WORD(C4Ram+0x1f89);
short left, right;
int j;
for (j = 0; j < 225; j++, y++)
{
@@ -311,11 +311,11 @@ void C4Op22()
{
left = 1;
right = 0;
}
}
else if (left < 0)
{
left = 0;
}
}
else if (right < 0)
{
right = 0;
@@ -324,11 +324,11 @@ void C4Op22()
{
left = 255;
right = 254;
}
}
else if (left > 255)
{
left = 255;
}
}
else if (right > 255)
{
right = 255;

View File

@@ -57,7 +57,7 @@ void Log_Message (char *Message, ...)
va_start(ap,Message);
vsprintf(Msg,Message,ap );
va_end(ap);
strcat(Msg,"\r\n\0");
fwrite(Msg,strlen(Msg),1,LogFile);
fflush (LogFile);
@@ -69,7 +69,7 @@ void Start_Log (void)
// [4/15/2001] char *p;
strcpy(LogFileName,"dsp1emu.log\0");
LogFile = fopen(LogFileName,"wb");
}
@@ -85,133 +85,133 @@ void Stop_Log (void)
#endif
const unsigned short DSP1ROM[1024] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020,
0x0040, 0x0080, 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000,
0x4000, 0x7fff, 0x4000, 0x2000, 0x1000, 0x0800, 0x0400, 0x0200,
0x0100, 0x0080, 0x0040, 0x0020, 0x0001, 0x0008, 0x0004, 0x0002,
0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x8000, 0xffe5, 0x0100, 0x7fff, 0x7f02, 0x7e08,
0x7d12, 0x7c1f, 0x7b30, 0x7a45, 0x795d, 0x7878, 0x7797, 0x76ba,
0x75df, 0x7507, 0x7433, 0x7361, 0x7293, 0x71c7, 0x70fe, 0x7038,
0x6f75, 0x6eb4, 0x6df6, 0x6d3a, 0x6c81, 0x6bca, 0x6b16, 0x6a64,
0x69b4, 0x6907, 0x685b, 0x67b2, 0x670b, 0x6666, 0x65c4, 0x6523,
0x6484, 0x63e7, 0x634c, 0x62b3, 0x621c, 0x6186, 0x60f2, 0x6060,
0x5fd0, 0x5f41, 0x5eb5, 0x5e29, 0x5d9f, 0x5d17, 0x5c91, 0x5c0c,
0x5b88, 0x5b06, 0x5a85, 0x5a06, 0x5988, 0x590b, 0x5890, 0x5816,
0x579d, 0x5726, 0x56b0, 0x563b, 0x55c8, 0x5555, 0x54e4, 0x5474,
0x5405, 0x5398, 0x532b, 0x52bf, 0x5255, 0x51ec, 0x5183, 0x511c,
0x50b6, 0x5050, 0x4fec, 0x4f89, 0x4f26, 0x4ec5, 0x4e64, 0x4e05,
0x4da6, 0x4d48, 0x4cec, 0x4c90, 0x4c34, 0x4bda, 0x4b81, 0x4b28,
0x4ad0, 0x4a79, 0x4a23, 0x49cd, 0x4979, 0x4925, 0x48d1, 0x487f,
0x482d, 0x47dc, 0x478c, 0x473c, 0x46ed, 0x469f, 0x4651, 0x4604,
0x45b8, 0x456c, 0x4521, 0x44d7, 0x448d, 0x4444, 0x43fc, 0x43b4,
0x436d, 0x4326, 0x42e0, 0x429a, 0x4255, 0x4211, 0x41cd, 0x4189,
0x4146, 0x4104, 0x40c2, 0x4081, 0x4040, 0x3fff, 0x41f7, 0x43e1,
0x45bd, 0x478d, 0x4951, 0x4b0b, 0x4cbb, 0x4e61, 0x4fff, 0x5194,
0x5322, 0x54a9, 0x5628, 0x57a2, 0x5914, 0x5a81, 0x5be9, 0x5d4a,
0x5ea7, 0x5fff, 0x6152, 0x62a0, 0x63ea, 0x6530, 0x6672, 0x67b0,
0x68ea, 0x6a20, 0x6b53, 0x6c83, 0x6daf, 0x6ed9, 0x6fff, 0x7122,
0x7242, 0x735f, 0x747a, 0x7592, 0x76a7, 0x77ba, 0x78cb, 0x79d9,
0x7ae5, 0x7bee, 0x7cf5, 0x7dfa, 0x7efe, 0x7fff, 0x0000, 0x0324,
0x0647, 0x096a, 0x0c8b, 0x0fab, 0x12c8, 0x15e2, 0x18f8, 0x1c0b,
0x1f19, 0x2223, 0x2528, 0x2826, 0x2b1f, 0x2e11, 0x30fb, 0x33de,
0x36ba, 0x398c, 0x3c56, 0x3f17, 0x41ce, 0x447a, 0x471c, 0x49b4,
0x4c3f, 0x4ebf, 0x5133, 0x539b, 0x55f5, 0x5842, 0x5a82, 0x5cb4,
0x5ed7, 0x60ec, 0x62f2, 0x64e8, 0x66cf, 0x68a6, 0x6a6d, 0x6c24,
0x6dca, 0x6f5f, 0x70e2, 0x7255, 0x73b5, 0x7504, 0x7641, 0x776c,
0x7884, 0x798a, 0x7a7d, 0x7b5d, 0x7c29, 0x7ce3, 0x7d8a, 0x7e1d,
0x7e9d, 0x7f09, 0x7f62, 0x7fa7, 0x7fd8, 0x7ff6, 0x7fff, 0x7ff6,
0x7fd8, 0x7fa7, 0x7f62, 0x7f09, 0x7e9d, 0x7e1d, 0x7d8a, 0x7ce3,
0x7c29, 0x7b5d, 0x7a7d, 0x798a, 0x7884, 0x776c, 0x7641, 0x7504,
0x73b5, 0x7255, 0x70e2, 0x6f5f, 0x6dca, 0x6c24, 0x6a6d, 0x68a6,
0x66cf, 0x64e8, 0x62f2, 0x60ec, 0x5ed7, 0x5cb4, 0x5a82, 0x5842,
0x55f5, 0x539b, 0x5133, 0x4ebf, 0x4c3f, 0x49b4, 0x471c, 0x447a,
0x41ce, 0x3f17, 0x3c56, 0x398c, 0x36ba, 0x33de, 0x30fb, 0x2e11,
0x2b1f, 0x2826, 0x2528, 0x2223, 0x1f19, 0x1c0b, 0x18f8, 0x15e2,
0x12c8, 0x0fab, 0x0c8b, 0x096a, 0x0647, 0x0324, 0x7fff, 0x7ff6,
0x7fd8, 0x7fa7, 0x7f62, 0x7f09, 0x7e9d, 0x7e1d, 0x7d8a, 0x7ce3,
0x7c29, 0x7b5d, 0x7a7d, 0x798a, 0x7884, 0x776c, 0x7641, 0x7504,
0x73b5, 0x7255, 0x70e2, 0x6f5f, 0x6dca, 0x6c24, 0x6a6d, 0x68a6,
0x66cf, 0x64e8, 0x62f2, 0x60ec, 0x5ed7, 0x5cb4, 0x5a82, 0x5842,
0x55f5, 0x539b, 0x5133, 0x4ebf, 0x4c3f, 0x49b4, 0x471c, 0x447a,
0x41ce, 0x3f17, 0x3c56, 0x398c, 0x36ba, 0x33de, 0x30fb, 0x2e11,
0x2b1f, 0x2826, 0x2528, 0x2223, 0x1f19, 0x1c0b, 0x18f8, 0x15e2,
0x12c8, 0x0fab, 0x0c8b, 0x096a, 0x0647, 0x0324, 0x0000, 0xfcdc,
0xf9b9, 0xf696, 0xf375, 0xf055, 0xed38, 0xea1e, 0xe708, 0xe3f5,
0xe0e7, 0xdddd, 0xdad8, 0xd7da, 0xd4e1, 0xd1ef, 0xcf05, 0xcc22,
0xc946, 0xc674, 0xc3aa, 0xc0e9, 0xbe32, 0xbb86, 0xb8e4, 0xb64c,
0xb3c1, 0xb141, 0xaecd, 0xac65, 0xaa0b, 0xa7be, 0xa57e, 0xa34c,
0xa129, 0x9f14, 0x9d0e, 0x9b18, 0x9931, 0x975a, 0x9593, 0x93dc,
0x9236, 0x90a1, 0x8f1e, 0x8dab, 0x8c4b, 0x8afc, 0x89bf, 0x8894,
0x877c, 0x8676, 0x8583, 0x84a3, 0x83d7, 0x831d, 0x8276, 0x81e3,
0x8163, 0x80f7, 0x809e, 0x8059, 0x8028, 0x800a, 0x6488, 0x0080,
0x03ff, 0x0116, 0x0002, 0x0080, 0x4000, 0x3fd7, 0x3faf, 0x3f86,
0x3f5d, 0x3f34, 0x3f0c, 0x3ee3, 0x3eba, 0x3e91, 0x3e68, 0x3e40,
0x3e17, 0x3dee, 0x3dc5, 0x3d9c, 0x3d74, 0x3d4b, 0x3d22, 0x3cf9,
0x3cd0, 0x3ca7, 0x3c7f, 0x3c56, 0x3c2d, 0x3c04, 0x3bdb, 0x3bb2,
0x3b89, 0x3b60, 0x3b37, 0x3b0e, 0x3ae5, 0x3abc, 0x3a93, 0x3a69,
0x3a40, 0x3a17, 0x39ee, 0x39c5, 0x399c, 0x3972, 0x3949, 0x3920,
0x38f6, 0x38cd, 0x38a4, 0x387a, 0x3851, 0x3827, 0x37fe, 0x37d4,
0x37aa, 0x3781, 0x3757, 0x372d, 0x3704, 0x36da, 0x36b0, 0x3686,
0x365c, 0x3632, 0x3609, 0x35df, 0x35b4, 0x358a, 0x3560, 0x3536,
0x350c, 0x34e1, 0x34b7, 0x348d, 0x3462, 0x3438, 0x340d, 0x33e3,
0x33b8, 0x338d, 0x3363, 0x3338, 0x330d, 0x32e2, 0x32b7, 0x328c,
0x3261, 0x3236, 0x320b, 0x31df, 0x31b4, 0x3188, 0x315d, 0x3131,
0x3106, 0x30da, 0x30ae, 0x3083, 0x3057, 0x302b, 0x2fff, 0x2fd2,
0x2fa6, 0x2f7a, 0x2f4d, 0x2f21, 0x2ef4, 0x2ec8, 0x2e9b, 0x2e6e,
0x2e41, 0x2e14, 0x2de7, 0x2dba, 0x2d8d, 0x2d60, 0x2d32, 0x2d05,
0x2cd7, 0x2ca9, 0x2c7b, 0x2c4d, 0x2c1f, 0x2bf1, 0x2bc3, 0x2b94,
0x2b66, 0x2b37, 0x2b09, 0x2ada, 0x2aab, 0x2a7c, 0x2a4c, 0x2a1d,
0x29ed, 0x29be, 0x298e, 0x295e, 0x292e, 0x28fe, 0x28ce, 0x289d,
0x286d, 0x283c, 0x280b, 0x27da, 0x27a9, 0x2777, 0x2746, 0x2714,
0x26e2, 0x26b0, 0x267e, 0x264c, 0x2619, 0x25e7, 0x25b4, 0x2581,
0x254d, 0x251a, 0x24e6, 0x24b2, 0x247e, 0x244a, 0x2415, 0x23e1,
0x23ac, 0x2376, 0x2341, 0x230b, 0x22d6, 0x229f, 0x2269, 0x2232,
0x21fc, 0x21c4, 0x218d, 0x2155, 0x211d, 0x20e5, 0x20ad, 0x2074,
0x203b, 0x2001, 0x1fc7, 0x1f8d, 0x1f53, 0x1f18, 0x1edd, 0x1ea1,
0x1e66, 0x1e29, 0x1ded, 0x1db0, 0x1d72, 0x1d35, 0x1cf6, 0x1cb8,
0x1c79, 0x1c39, 0x1bf9, 0x1bb8, 0x1b77, 0x1b36, 0x1af4, 0x1ab1,
0x1a6e, 0x1a2a, 0x19e6, 0x19a1, 0x195c, 0x1915, 0x18ce, 0x1887,
0x183f, 0x17f5, 0x17ac, 0x1761, 0x1715, 0x16c9, 0x167c, 0x162e,
0x15df, 0x158e, 0x153d, 0x14eb, 0x1497, 0x1442, 0x13ec, 0x1395,
0x133c, 0x12e2, 0x1286, 0x1228, 0x11c9, 0x1167, 0x1104, 0x109e,
0x1036, 0x0fcc, 0x0f5f, 0x0eef, 0x0e7b, 0x0e04, 0x0d89, 0x0d0a,
0x0c86, 0x0bfd, 0x0b6d, 0x0ad6, 0x0a36, 0x098d, 0x08d7, 0x0811,
0x0736, 0x063e, 0x0519, 0x039a, 0x0000, 0x7fff, 0x0100, 0x0080,
0x021d, 0x00c8, 0x00ce, 0x0048, 0x0a26, 0x277a, 0x00ce, 0x6488,
0x14ac, 0x0001, 0x00f9, 0x00fc, 0x00ff, 0x00fc, 0x00f9, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020,
0x0040, 0x0080, 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000,
0x4000, 0x7fff, 0x4000, 0x2000, 0x1000, 0x0800, 0x0400, 0x0200,
0x0100, 0x0080, 0x0040, 0x0020, 0x0001, 0x0008, 0x0004, 0x0002,
0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x8000, 0xffe5, 0x0100, 0x7fff, 0x7f02, 0x7e08,
0x7d12, 0x7c1f, 0x7b30, 0x7a45, 0x795d, 0x7878, 0x7797, 0x76ba,
0x75df, 0x7507, 0x7433, 0x7361, 0x7293, 0x71c7, 0x70fe, 0x7038,
0x6f75, 0x6eb4, 0x6df6, 0x6d3a, 0x6c81, 0x6bca, 0x6b16, 0x6a64,
0x69b4, 0x6907, 0x685b, 0x67b2, 0x670b, 0x6666, 0x65c4, 0x6523,
0x6484, 0x63e7, 0x634c, 0x62b3, 0x621c, 0x6186, 0x60f2, 0x6060,
0x5fd0, 0x5f41, 0x5eb5, 0x5e29, 0x5d9f, 0x5d17, 0x5c91, 0x5c0c,
0x5b88, 0x5b06, 0x5a85, 0x5a06, 0x5988, 0x590b, 0x5890, 0x5816,
0x579d, 0x5726, 0x56b0, 0x563b, 0x55c8, 0x5555, 0x54e4, 0x5474,
0x5405, 0x5398, 0x532b, 0x52bf, 0x5255, 0x51ec, 0x5183, 0x511c,
0x50b6, 0x5050, 0x4fec, 0x4f89, 0x4f26, 0x4ec5, 0x4e64, 0x4e05,
0x4da6, 0x4d48, 0x4cec, 0x4c90, 0x4c34, 0x4bda, 0x4b81, 0x4b28,
0x4ad0, 0x4a79, 0x4a23, 0x49cd, 0x4979, 0x4925, 0x48d1, 0x487f,
0x482d, 0x47dc, 0x478c, 0x473c, 0x46ed, 0x469f, 0x4651, 0x4604,
0x45b8, 0x456c, 0x4521, 0x44d7, 0x448d, 0x4444, 0x43fc, 0x43b4,
0x436d, 0x4326, 0x42e0, 0x429a, 0x4255, 0x4211, 0x41cd, 0x4189,
0x4146, 0x4104, 0x40c2, 0x4081, 0x4040, 0x3fff, 0x41f7, 0x43e1,
0x45bd, 0x478d, 0x4951, 0x4b0b, 0x4cbb, 0x4e61, 0x4fff, 0x5194,
0x5322, 0x54a9, 0x5628, 0x57a2, 0x5914, 0x5a81, 0x5be9, 0x5d4a,
0x5ea7, 0x5fff, 0x6152, 0x62a0, 0x63ea, 0x6530, 0x6672, 0x67b0,
0x68ea, 0x6a20, 0x6b53, 0x6c83, 0x6daf, 0x6ed9, 0x6fff, 0x7122,
0x7242, 0x735f, 0x747a, 0x7592, 0x76a7, 0x77ba, 0x78cb, 0x79d9,
0x7ae5, 0x7bee, 0x7cf5, 0x7dfa, 0x7efe, 0x7fff, 0x0000, 0x0324,
0x0647, 0x096a, 0x0c8b, 0x0fab, 0x12c8, 0x15e2, 0x18f8, 0x1c0b,
0x1f19, 0x2223, 0x2528, 0x2826, 0x2b1f, 0x2e11, 0x30fb, 0x33de,
0x36ba, 0x398c, 0x3c56, 0x3f17, 0x41ce, 0x447a, 0x471c, 0x49b4,
0x4c3f, 0x4ebf, 0x5133, 0x539b, 0x55f5, 0x5842, 0x5a82, 0x5cb4,
0x5ed7, 0x60ec, 0x62f2, 0x64e8, 0x66cf, 0x68a6, 0x6a6d, 0x6c24,
0x6dca, 0x6f5f, 0x70e2, 0x7255, 0x73b5, 0x7504, 0x7641, 0x776c,
0x7884, 0x798a, 0x7a7d, 0x7b5d, 0x7c29, 0x7ce3, 0x7d8a, 0x7e1d,
0x7e9d, 0x7f09, 0x7f62, 0x7fa7, 0x7fd8, 0x7ff6, 0x7fff, 0x7ff6,
0x7fd8, 0x7fa7, 0x7f62, 0x7f09, 0x7e9d, 0x7e1d, 0x7d8a, 0x7ce3,
0x7c29, 0x7b5d, 0x7a7d, 0x798a, 0x7884, 0x776c, 0x7641, 0x7504,
0x73b5, 0x7255, 0x70e2, 0x6f5f, 0x6dca, 0x6c24, 0x6a6d, 0x68a6,
0x66cf, 0x64e8, 0x62f2, 0x60ec, 0x5ed7, 0x5cb4, 0x5a82, 0x5842,
0x55f5, 0x539b, 0x5133, 0x4ebf, 0x4c3f, 0x49b4, 0x471c, 0x447a,
0x41ce, 0x3f17, 0x3c56, 0x398c, 0x36ba, 0x33de, 0x30fb, 0x2e11,
0x2b1f, 0x2826, 0x2528, 0x2223, 0x1f19, 0x1c0b, 0x18f8, 0x15e2,
0x12c8, 0x0fab, 0x0c8b, 0x096a, 0x0647, 0x0324, 0x7fff, 0x7ff6,
0x7fd8, 0x7fa7, 0x7f62, 0x7f09, 0x7e9d, 0x7e1d, 0x7d8a, 0x7ce3,
0x7c29, 0x7b5d, 0x7a7d, 0x798a, 0x7884, 0x776c, 0x7641, 0x7504,
0x73b5, 0x7255, 0x70e2, 0x6f5f, 0x6dca, 0x6c24, 0x6a6d, 0x68a6,
0x66cf, 0x64e8, 0x62f2, 0x60ec, 0x5ed7, 0x5cb4, 0x5a82, 0x5842,
0x55f5, 0x539b, 0x5133, 0x4ebf, 0x4c3f, 0x49b4, 0x471c, 0x447a,
0x41ce, 0x3f17, 0x3c56, 0x398c, 0x36ba, 0x33de, 0x30fb, 0x2e11,
0x2b1f, 0x2826, 0x2528, 0x2223, 0x1f19, 0x1c0b, 0x18f8, 0x15e2,
0x12c8, 0x0fab, 0x0c8b, 0x096a, 0x0647, 0x0324, 0x0000, 0xfcdc,
0xf9b9, 0xf696, 0xf375, 0xf055, 0xed38, 0xea1e, 0xe708, 0xe3f5,
0xe0e7, 0xdddd, 0xdad8, 0xd7da, 0xd4e1, 0xd1ef, 0xcf05, 0xcc22,
0xc946, 0xc674, 0xc3aa, 0xc0e9, 0xbe32, 0xbb86, 0xb8e4, 0xb64c,
0xb3c1, 0xb141, 0xaecd, 0xac65, 0xaa0b, 0xa7be, 0xa57e, 0xa34c,
0xa129, 0x9f14, 0x9d0e, 0x9b18, 0x9931, 0x975a, 0x9593, 0x93dc,
0x9236, 0x90a1, 0x8f1e, 0x8dab, 0x8c4b, 0x8afc, 0x89bf, 0x8894,
0x877c, 0x8676, 0x8583, 0x84a3, 0x83d7, 0x831d, 0x8276, 0x81e3,
0x8163, 0x80f7, 0x809e, 0x8059, 0x8028, 0x800a, 0x6488, 0x0080,
0x03ff, 0x0116, 0x0002, 0x0080, 0x4000, 0x3fd7, 0x3faf, 0x3f86,
0x3f5d, 0x3f34, 0x3f0c, 0x3ee3, 0x3eba, 0x3e91, 0x3e68, 0x3e40,
0x3e17, 0x3dee, 0x3dc5, 0x3d9c, 0x3d74, 0x3d4b, 0x3d22, 0x3cf9,
0x3cd0, 0x3ca7, 0x3c7f, 0x3c56, 0x3c2d, 0x3c04, 0x3bdb, 0x3bb2,
0x3b89, 0x3b60, 0x3b37, 0x3b0e, 0x3ae5, 0x3abc, 0x3a93, 0x3a69,
0x3a40, 0x3a17, 0x39ee, 0x39c5, 0x399c, 0x3972, 0x3949, 0x3920,
0x38f6, 0x38cd, 0x38a4, 0x387a, 0x3851, 0x3827, 0x37fe, 0x37d4,
0x37aa, 0x3781, 0x3757, 0x372d, 0x3704, 0x36da, 0x36b0, 0x3686,
0x365c, 0x3632, 0x3609, 0x35df, 0x35b4, 0x358a, 0x3560, 0x3536,
0x350c, 0x34e1, 0x34b7, 0x348d, 0x3462, 0x3438, 0x340d, 0x33e3,
0x33b8, 0x338d, 0x3363, 0x3338, 0x330d, 0x32e2, 0x32b7, 0x328c,
0x3261, 0x3236, 0x320b, 0x31df, 0x31b4, 0x3188, 0x315d, 0x3131,
0x3106, 0x30da, 0x30ae, 0x3083, 0x3057, 0x302b, 0x2fff, 0x2fd2,
0x2fa6, 0x2f7a, 0x2f4d, 0x2f21, 0x2ef4, 0x2ec8, 0x2e9b, 0x2e6e,
0x2e41, 0x2e14, 0x2de7, 0x2dba, 0x2d8d, 0x2d60, 0x2d32, 0x2d05,
0x2cd7, 0x2ca9, 0x2c7b, 0x2c4d, 0x2c1f, 0x2bf1, 0x2bc3, 0x2b94,
0x2b66, 0x2b37, 0x2b09, 0x2ada, 0x2aab, 0x2a7c, 0x2a4c, 0x2a1d,
0x29ed, 0x29be, 0x298e, 0x295e, 0x292e, 0x28fe, 0x28ce, 0x289d,
0x286d, 0x283c, 0x280b, 0x27da, 0x27a9, 0x2777, 0x2746, 0x2714,
0x26e2, 0x26b0, 0x267e, 0x264c, 0x2619, 0x25e7, 0x25b4, 0x2581,
0x254d, 0x251a, 0x24e6, 0x24b2, 0x247e, 0x244a, 0x2415, 0x23e1,
0x23ac, 0x2376, 0x2341, 0x230b, 0x22d6, 0x229f, 0x2269, 0x2232,
0x21fc, 0x21c4, 0x218d, 0x2155, 0x211d, 0x20e5, 0x20ad, 0x2074,
0x203b, 0x2001, 0x1fc7, 0x1f8d, 0x1f53, 0x1f18, 0x1edd, 0x1ea1,
0x1e66, 0x1e29, 0x1ded, 0x1db0, 0x1d72, 0x1d35, 0x1cf6, 0x1cb8,
0x1c79, 0x1c39, 0x1bf9, 0x1bb8, 0x1b77, 0x1b36, 0x1af4, 0x1ab1,
0x1a6e, 0x1a2a, 0x19e6, 0x19a1, 0x195c, 0x1915, 0x18ce, 0x1887,
0x183f, 0x17f5, 0x17ac, 0x1761, 0x1715, 0x16c9, 0x167c, 0x162e,
0x15df, 0x158e, 0x153d, 0x14eb, 0x1497, 0x1442, 0x13ec, 0x1395,
0x133c, 0x12e2, 0x1286, 0x1228, 0x11c9, 0x1167, 0x1104, 0x109e,
0x1036, 0x0fcc, 0x0f5f, 0x0eef, 0x0e7b, 0x0e04, 0x0d89, 0x0d0a,
0x0c86, 0x0bfd, 0x0b6d, 0x0ad6, 0x0a36, 0x098d, 0x08d7, 0x0811,
0x0736, 0x063e, 0x0519, 0x039a, 0x0000, 0x7fff, 0x0100, 0x0080,
0x021d, 0x00c8, 0x00ce, 0x0048, 0x0a26, 0x277a, 0x00ce, 0x6488,
0x14ac, 0x0001, 0x00f9, 0x00fc, 0x00ff, 0x00fc, 0x00f9, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff};
/***************************************************************************\
@@ -232,7 +232,7 @@ double SinTable2[INCR];
double Atan(double x)
{
if ((x>=1) || (x<=1))
if ((x>=1) || (x<=1))
return (x/(1+0.28*x*x));
else
return (PI/2 - Atan(1/x));
@@ -303,12 +303,12 @@ void DSP1_Inverse(short Coefficient, short Exponent, short *iCoefficient, short
// Step Two: Remove Sign
if (Coefficient < 0)
{
{
if (Coefficient < -32767) Coefficient = -32767;
Coefficient = -Coefficient;
Sign = -1;
}
// Step Three: Normalize
while (Coefficient < 0x4000)
{
@@ -603,7 +603,7 @@ void DSPOp02()
ViewerX1=Sin(Angle(Op02AZS))*Sin(Angle(Op02AAS));
ViewerY1=Sin(Angle(Op02AZS))*Cos(Angle(Op02AAS));
#ifdef debug02
printf("\nViewerX1 : %f ViewerY1 : %f ViewerZ1 : %f\n",ViewerX1,ViewerY1,
ViewerZ1);
@@ -1005,7 +1005,7 @@ void DSPOp06()
Log_Message("OP06 H:%d V:%d S:%d",Op06H,Op06V,Op06S);
#endif
}
#endif
#endif
short matrixC[3][3];
@@ -1214,22 +1214,22 @@ short Op14Yrr;
void DSPOp14()
{
short CSec, ESec, CTan, CSin, C, E;
DSP1_Inverse(DSP1_Cos(Op14Xr), 0, &CSec, &ESec);
// Rotation Around Z
DSP1_NormalizeDouble(Op14U * DSP1_Cos(Op14Yr) - Op14F * DSP1_Sin(Op14Yr), &C, &E);
E = ESec - E;
DSP1_Normalize(C * CSec >> 15, &C, &E);
if (E > 0) {
if (C > 0) C = 32767; else if (C < 0) C = -32767;
} else {
if (E < 0) C = C * DSP1ROM[0x31 + E] >> 15;
}
Op14Zrr = Op14Zr + C;
// Rotation Around X
@@ -1245,7 +1245,7 @@ void DSPOp14()
CTan = CSec * CSin >> 15;
DSP1_Normalize(-(C * CTan >> 15), &C, &E);
if (E > 0) {
if (C > 0) C = 32767; else if (C < 0) C = -32767;
} else {
@@ -1297,7 +1297,7 @@ void DSPOp0B()
}
void DSPOp1B()
{
{
Op1BS = (Op1BX * matrixB[0][0] + Op1BY * matrixB[0][1] + Op1BZ * matrixB[0][2]) >> 15;
#ifdef DebugDSP1
@@ -1405,7 +1405,7 @@ void DSPOp1C()
Op1CX1 = (Op1CXBR * DSP1_Cos(Op1CY) >> 15) - (Op1CZBR * DSP1_Sin(Op1CY) >> 15);
Op1CXAR = Op1CX1; Op1CZBR = Op1CZ1;
// Rotate Around Op1CX1
// Rotate Around Op1CX1
Op1CY1 = (Op1CZBR * DSP1_Sin(Op1CX) >> 15) + (Op1CYBR * DSP1_Cos(Op1CX) >> 15);
Op1CZ1 = (Op1CZBR * DSP1_Cos(Op1CX) >> 15) - (Op1CYBR * DSP1_Sin(Op1CX) >> 15);
Op1CYAR = Op1CY1; Op1CZAR = Op1CZ1;

View File

@@ -50,7 +50,7 @@ Fixed-point math reminder:
#define WRITE_WORD(s, d) (*(uint16 *) (s)) = (d)
#define WRITE_DWORD(s, d) (*(uint32 *) (s)) = (d)
struct
struct
{
bool8 waiting4command;
bool8 half_command;
@@ -428,7 +428,7 @@ void DSP4_OP01()
// scan next command
DSP4.in_count = 2;
DSP4_WAIT(1) resume1 :
DSP4_WAIT(1) resume1 :
// check for termination
distance = DSP4_READ_WORD();
@@ -469,7 +469,7 @@ void DSP4_OP01()
// already have 2 bytes read
DSP4.in_count = 6;
DSP4_WAIT(3) resume3 :
DSP4_WAIT(3) resume3 :
// inspect inputs
world_ddy = DSP4_READ_WORD();
@@ -662,7 +662,7 @@ void DSP4_OP07()
// scan next command
DSP4.in_count = 2;
DSP4_WAIT(1) resume1 :
DSP4_WAIT(1) resume1 :
// check for opcode termination
distance = DSP4_READ_WORD();
@@ -671,7 +671,7 @@ void DSP4_OP07()
// already have 2 bytes in queue
DSP4.in_count = 10;
DSP4_WAIT(2) resume2 :
DSP4_WAIT(2) resume2 :
// inspect inputs
view_y2 = DSP4_READ_WORD();
@@ -832,7 +832,7 @@ void DSP4_OP08()
// scan next command
DSP4.in_count = 2;
DSP4_WAIT(1) resume1 :
DSP4_WAIT(1) resume1 :
// terminate op
distance = DSP4_READ_WORD();
@@ -842,7 +842,7 @@ void DSP4_OP08()
// already have 2 bytes in queue
DSP4.in_count = 16;
DSP4_WAIT(2) resume2 :
DSP4_WAIT(2) resume2 :
// look at guidelines for both polygon shapes
view_x[0] = DSP4_READ_WORD();
@@ -1051,7 +1051,7 @@ void DSP4_OP09()
// check for new sprites
DSP4.in_count = 4;
DSP4_WAIT(1) resume1 :
DSP4_WAIT(1) resume1 :
////////////////////////////////////////////////
// raster overdraw check
@@ -1094,7 +1094,7 @@ void DSP4_OP09()
// we already have 4 bytes we want
DSP4.in_count = 14;
DSP4_WAIT(2) resume2 :
DSP4_WAIT(2) resume2 :
// filter inputs
energy = DSP4_READ_WORD();
@@ -1127,7 +1127,7 @@ void DSP4_OP09()
// grab a few remaining vehicle values
DSP4.in_count = 4;
DSP4_WAIT(3) resume3 :
DSP4_WAIT(3) resume3 :
// add vertical lift factor
sprite_y += DSP4_READ_WORD();
@@ -1140,7 +1140,7 @@ void DSP4_OP09()
// we already have 4 bytes we want
DSP4.in_count = 10;
DSP4_WAIT(4) resume4 :
DSP4_WAIT(4) resume4 :
// sort loop inputs
poly_cx[0][0] = DSP4_READ_WORD();
@@ -1170,18 +1170,18 @@ void DSP4_OP09()
do
{
uint16 header;
int16 sp_x, sp_y, sp_attr, sp_dattr;
int16 sp_dx, sp_dy;
int16 pixels;
bool8 draw;
DSP4.in_count = 2;
DSP4_WAIT(5) resume5 :
DSP4_WAIT(5) resume5 :
draw = TRUE;
// opcode termination
raster = DSP4_READ_WORD();
if (raster == -0x8000)
@@ -1212,10 +1212,10 @@ void DSP4_OP09()
// read in rest of sprite data
DSP4.in_count = 4;
DSP4_WAIT(6) resume6 :
DSP4_WAIT(6) resume6 :
draw = TRUE;
/////////////////////////////////////
// process tile data
@@ -1427,7 +1427,7 @@ void DSP4_OP0D()
view_yofs2 = (world_yofs * distance >> 15) + poly_bottom[0][0] - view_y2;
// 1. World x-location before transformation
// 2. Viewer x-position at the current
// 2. Viewer x-position at the current
// 3. World y-location before perspective projection
// 4. Viewer y-position below the horizon
// 5. Number of raster lines drawn in this iteration
@@ -1528,9 +1528,9 @@ void DSP4_OP0D()
// scan next command
DSP4.in_count = 2;
DSP4_WAIT(1) resume1 :
DSP4_WAIT(1) resume1 :
// inspect input
// inspect input
distance = DSP4_READ_WORD();
// terminate op
@@ -1539,7 +1539,7 @@ void DSP4_OP0D()
// already have 2 bytes in queue
DSP4.in_count = 6;
DSP4_WAIT(2) resume2 :
DSP4_WAIT(2) resume2 :
// inspect inputs
world_ddy = DSP4_READ_WORD();
@@ -1680,7 +1680,7 @@ void DSP4_OP0F()
// grab inputs
DSP4.in_count = 4;
DSP4_WAIT(1);
resume1 :
resume1 :
for (;;)
{
int16 distance;
@@ -1763,7 +1763,7 @@ void DSP4_OP0F()
// scan next command
DSP4.in_count = 2;
DSP4_WAIT(2) resume2 :
DSP4_WAIT(2) resume2 :
// check for termination
distance = DSP4_READ_WORD();
@@ -1804,7 +1804,7 @@ void DSP4_OP0F()
// already have 2 bytes in queue
DSP4.in_count = 6;
DSP4_WAIT(4) resume4 :
DSP4_WAIT(4) resume4 :
// inspect inputs
world_ddy = DSP4_READ_WORD();
@@ -1925,7 +1925,7 @@ void DSP4_OP10()
// grab inputs
DSP4.in_count = 4;
DSP4_WAIT(1);
resume1 :
resume1 :
for (;;)
{
int16 distance;
@@ -2006,7 +2006,7 @@ void DSP4_OP10()
// scan next command
DSP4.in_count = 2;
DSP4_WAIT(2) resume2 :
DSP4_WAIT(2) resume2 :
// check for opcode termination
distance = DSP4_READ_WORD();
@@ -2015,7 +2015,7 @@ void DSP4_OP10()
// already have 2 bytes in queue
DSP4.in_count = 10;
DSP4_WAIT(3) resume3 :
DSP4_WAIT(3) resume3 :
// inspect inputs
@@ -2064,7 +2064,7 @@ void DSP4SetByte()
DSP4.out_index++;
return;
}
if (DSP4.waiting4command)
{
if (DSP4.half_command)
@@ -2127,14 +2127,14 @@ void DSP4SetByte()
DSP4.parameters[DSP4.in_index] = dsp4_byte;
DSP4.in_index++;
}
if (!DSP4.waiting4command && DSP4.in_count == DSP4.in_index)
{
// Actually execute the command
DSP4.waiting4command = TRUE;
DSP4.out_index = 0;
DSP4.in_index = 0;
switch (DSP4.command)
{
// 16-bit multiplication
@@ -2147,7 +2147,7 @@ void DSP4SetByte()
multiplicand = DSP4_READ_WORD();
DSP4_Multiply(multiplicand, multiplier, &product);
DSP4_CLEAR_OUT();
DSP4_WRITE_WORD(product);
DSP4_WRITE_WORD(product >> 16);
@@ -2165,7 +2165,7 @@ void DSP4SetByte()
// clear OAM
case 0x0005:
DSP4_OP05(); break;
// transfer OAM
case 0x0006:
DSP4_OP06(); break;
@@ -2189,9 +2189,9 @@ void DSP4SetByte()
int16 in2a = DSP4_READ_WORD();
int16 in3a = DSP4_READ_WORD();
int16 out1a, out2a, out3a, out4a;
DSP4_OP0A(in2a, &out2a, &out1a, &out4a, &out3a);
DSP4_CLEAR_OUT();
DSP4_WRITE_WORD(out1a);
DSP4_WRITE_WORD(out2a);
@@ -2209,7 +2209,7 @@ void DSP4SetByte()
bool8 draw = 1;
DSP4_CLEAR_OUT();
DSP4_OP0B(&draw, sp_x, sp_y, sp_attr, 0, 1);
}
break;
@@ -2242,7 +2242,7 @@ void DSP4SetByte()
a = DSP4_READ_WORD();
DSP4_OP11(a, b, c, d, &m);
DSP4_CLEAR_OUT();
DSP4_WRITE_WORD(m);

View File

@@ -21,7 +21,7 @@
%include "macros.mac"
EXTSYM dsp4_address,dsp4_byte,DSP4GetByte,DSP4SetByte
EXTSYM regaccessbankr16,regaccessbankr8,regaccessbankw16,regaccessbankw8
EXTSYM regaccessbankr16,regaccessbankr8,regaccessbankw16,regaccessbankw8
SECTION .text
@@ -53,19 +53,19 @@ NEWSYM DSP4Write8b
call DSP4SetByte
popad
ret
NEWSYM DSP4Read16b
RouteAccess regaccessbankr16
RouteAccess regaccessbankr16
mov word[dsp4_address],cx
pushad
call DSP4GetByte
mov al,byte[dsp4_byte]
mov al,byte[dsp4_byte]
mov byte[dsp4temp],al
inc word[dsp4_address]
call DSP4GetByte
popad
popad
mov al,byte[dsp4temp]
mov ah,byte[dsp4_byte]
mov ah,byte[dsp4_byte]
ret
NEWSYM DSP4Write16b
@@ -81,6 +81,6 @@ NEWSYM DSP4Write16b
call DSP4SetByte
popad
ret
SECTION .bss
NEWSYM dsp4temp, resb 1
NEWSYM dsp4temp, resb 1

View File

@@ -58,30 +58,30 @@ NEWSYM SfxR6, dd 0 ; multiplier for fmult and lmult
NEWSYM SfxR7, dd 0 ; fixed point texel X position for merge
NEWSYM SfxR8, dd 0 ; fixed point texel Y position for merge
NEWSYM SfxR9, dd 0 ;
NEWSYM SfxR10, dd 0 ;
NEWSYM SfxR10, dd 0 ;
NEWSYM SfxR11, dd 0 ; return address set by link
NEWSYM SfxR12, dd 0 ; loop counter
NEWSYM SfxR13, dd 0 ; loop point address
NEWSYM SfxR14, dd 0 ; rom address for getb, getbh, getbl, getbs
NEWSYM SfxR15, dd 0 ; program counter
NEWSYM SfxR15, dd 0 ; program counter
NEWSYM SfxSFR, dd 0 ; status flag register (16bit)
;SFR status flag register bits:
; 0 -
; 0 -
; 1 Z Zero flag
; 2 CY Carry flag
; 3 S Sign flag
; 4 OV Overflow flag
; 5 G Go flag (set to 1 when the GSU is running)
; 6 R Set to 1 when reading ROM using R14 address
; 7 -
; 7 -
; 8 ALT1 Mode set-up flag for the next instruction
; 9 ALT2 Mode set-up flag for the next instruction
;10 IL Immediate lower 8-bit flag
;11 IH Immediate higher 8-bit flag
;12 B Set to 1 when the WITH instruction is executed
;13 -
;14 -
;13 -
;14 -
;15 IRQ Set to 1 when GSU caused an interrupt
; Set to 0 when read by 658c16
@@ -363,29 +363,29 @@ NEWSYM FxOp0F ; BVS branch on overflow set ; Verified.
NEWSYM FxOp10 ; TO RN set register n as destination register
TORN 0
NEWSYM FxOp11 ; TO RN set register n as destination register
TORN 1
TORN 1
NEWSYM FxOp12 ; TO RN set register n as destination register
TORN 2
TORN 2
NEWSYM FxOp13 ; TO RN set register n as destination register
TORN 3
TORN 3
NEWSYM FxOp14 ; TO RN set register n as destination register
TORN 4
TORN 4
NEWSYM FxOp15 ; TO RN set register n as destination register
TORN 5
TORN 5
NEWSYM FxOp16 ; TO RN set register n as destination register
TORN 6
TORN 6
NEWSYM FxOp17 ; TO RN set register n as destination register
TORN 7
TORN 7
NEWSYM FxOp18 ; TO RN set register n as destination register
TORN 8
TORN 8
NEWSYM FxOp19 ; TO RN set register n as destination register
TORN 9
TORN 9
NEWSYM FxOp1A ; TO RN set register n as destination register
TORN 10
TORN 10
NEWSYM FxOp1B ; TO RN set register n as destination register
TORN 11
TORN 11
NEWSYM FxOp1C ; TO RN set register n as destination register
TORN 12
TORN 12
NEWSYM FxOp1D ; TO RN set register n as destination register
TORN 13
NEWSYM FxOp1E ; TO RN set register n as destination register
@@ -587,21 +587,21 @@ NEWSYM FxOp4B ; LDW RN load word from RAM
LDWRN 11
NEWSYM FxOp40A1 ; LDB RN load byte from RAM
LDBRN 0
LDBRN 0
NEWSYM FxOp41A1 ; LDB RN load byte from RAM
LDBRN 1
LDBRN 1
NEWSYM FxOp42A1 ; LDB RN load byte from RAM
LDBRN 2
LDBRN 2
NEWSYM FxOp43A1 ; LDB RN load byte from RAM
LDBRN 3
LDBRN 3
NEWSYM FxOp44A1 ; LDB RN load byte from RAM
LDBRN 4
LDBRN 4
NEWSYM FxOp45A1 ; LDB RN load byte from RAM
LDBRN 5
NEWSYM FxOp46A1 ; LDB RN load byte from RAM
LDBRN 6
LDBRN 6
NEWSYM FxOp47A1 ; LDB RN load byte from RAM
LDBRN 7
LDBRN 7
NEWSYM FxOp48A1 ; LDB RN load byte from RAM
LDBRN 8
NEWSYM FxOp49A1 ; LDB RN load byte from RAM
@@ -1036,7 +1036,7 @@ NEWSYM FxOp4CA1 ; RPIX read color of the pixel with R1,R2 as x,y
NEWSYM FxOp4D ; SWAP swap upper and lower byte of a register ; V
mov eax,[esi] ; Read Source
FETCHPIPE
ror ax,8
ror ax,8
inc ebp ; Increase program counter
mov [SfxSignZero],eax
mov [edi],eax ; Write Destination
@@ -1650,35 +1650,35 @@ NEWSYM FxOp7FA3 ; BICIRN register & ~immediate
BICIRN 15 ^ 0FFFFh
NEWSYM FxOp80 ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 0
MULTRN 0
NEWSYM FxOp81 ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 1
MULTRN 1
NEWSYM FxOp82 ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 2
MULTRN 2
NEWSYM FxOp83 ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 3
MULTRN 3
NEWSYM FxOp84 ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 4
MULTRN 4
NEWSYM FxOp85 ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 5
MULTRN 5
NEWSYM FxOp86 ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 6
MULTRN 6
NEWSYM FxOp87 ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 7
MULTRN 7
NEWSYM FxOp88 ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 8
MULTRN 8
NEWSYM FxOp89 ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 9
MULTRN 9
NEWSYM FxOp8A ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 10
MULTRN 10
NEWSYM FxOp8B ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 11
MULTRN 11
NEWSYM FxOp8C ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 12
MULTRN 12
NEWSYM FxOp8D ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 13
MULTRN 13
NEWSYM FxOp8E ; MULTRN 8 bit to 16 bit signed multiply, register * register
MULTRN 14
MULTRN 14
NEWSYM FxOp8F ; MULTRN 8 bit to 16 bit signed multiply, register * register
FETCHPIPE
mov ebx,ebp

View File

@@ -188,29 +188,29 @@ NEWSYM FxOpb0F ; BVS branch on overflow set ; Verified.
NEWSYM FxOpb10 ; TO RN set register n as destination register
TORNb 0
NEWSYM FxOpb11 ; TO RN set register n as destination register
TORNb 1
TORNb 1
NEWSYM FxOpb12 ; TO RN set register n as destination register
TORNb 2
TORNb 2
NEWSYM FxOpb13 ; TO RN set register n as destination register
TORNb 3
TORNb 3
NEWSYM FxOpb14 ; TO RN set register n as destination register
TORNb 4
TORNb 4
NEWSYM FxOpb15 ; TO RN set register n as destination register
TORNb 5
TORNb 5
NEWSYM FxOpb16 ; TO RN set register n as destination register
TORNb 6
TORNb 6
NEWSYM FxOpb17 ; TO RN set register n as destination register
TORNb 7
TORNb 7
NEWSYM FxOpb18 ; TO RN set register n as destination register
TORNb 8
TORNb 8
NEWSYM FxOpb19 ; TO RN set register n as destination register
TORNb 9
TORNb 9
NEWSYM FxOpb1A ; TO RN set register n as destination register
TORNb 10
TORNb 10
NEWSYM FxOpb1B ; TO RN set register n as destination register
TORNb 11
TORNb 11
NEWSYM FxOpb1C ; TO RN set register n as destination register
TORNb 12
TORNb 12
NEWSYM FxOpb1D ; TO RN set register n as destination register
TORNb 13
NEWSYM FxOpb1E ; TO RN set register n as destination register
@@ -504,29 +504,29 @@ NEWSYM FxOpc0F ; BVS branch on overflow set ; Verified.
NEWSYM FxOpc10 ; TO RN set register n as destination register
TORNc 0
NEWSYM FxOpc11 ; TO RN set register n as destination register
TORNc 1
TORNc 1
NEWSYM FxOpc12 ; TO RN set register n as destination register
TORNc 2
TORNc 2
NEWSYM FxOpc13 ; TO RN set register n as destination register
TORNc 3
TORNc 3
NEWSYM FxOpc14 ; TO RN set register n as destination register
TORNc 4
TORNc 4
NEWSYM FxOpc15 ; TO RN set register n as destination register
TORNc 5
TORNc 5
NEWSYM FxOpc16 ; TO RN set register n as destination register
TORNc 6
TORNc 6
NEWSYM FxOpc17 ; TO RN set register n as destination register
TORNc 7
TORNc 7
NEWSYM FxOpc18 ; TO RN set register n as destination register
TORNc 8
TORNc 8
NEWSYM FxOpc19 ; TO RN set register n as destination register
TORNc 9
TORNc 9
NEWSYM FxOpc1A ; TO RN set register n as destination register
TORNc 10
TORNc 10
NEWSYM FxOpc1B ; TO RN set register n as destination register
TORNc 11
TORNc 11
NEWSYM FxOpc1C ; TO RN set register n as destination register
TORNc 12
TORNc 12
NEWSYM FxOpc1D ; TO RN set register n as destination register
TORNc 13
NEWSYM FxOpc1E ; TO RN set register n as destination register

View File

@@ -264,29 +264,29 @@ NEWSYM FxOpd0F ; BVS branch on overflow set ; Verified.
NEWSYM FxOpd10 ; TO RN set register n as destination register
TORNd 0
NEWSYM FxOpd11 ; TO RN set register n as destination register
TORNd 1
TORNd 1
NEWSYM FxOpd12 ; TO RN set register n as destination register
TORNd 2
TORNd 2
NEWSYM FxOpd13 ; TO RN set register n as destination register
TORNd 3
TORNd 3
NEWSYM FxOpd14 ; TO RN set register n as destination register
TORNd 4
TORNd 4
NEWSYM FxOpd15 ; TO RN set register n as destination register
TORNd 5
TORNd 5
NEWSYM FxOpd16 ; TO RN set register n as destination register
TORNd 6
TORNd 6
NEWSYM FxOpd17 ; TO RN set register n as destination register
TORNd 7
TORNd 7
NEWSYM FxOpd18 ; TO RN set register n as destination register
TORNd 8
TORNd 8
NEWSYM FxOpd19 ; TO RN set register n as destination register
TORNd 9
TORNd 9
NEWSYM FxOpd1A ; TO RN set register n as destination register
TORNd 10
TORNd 10
NEWSYM FxOpd1B ; TO RN set register n as destination register
TORNd 11
TORNd 11
NEWSYM FxOpd1C ; TO RN set register n as destination register
TORNd 12
TORNd 12
NEWSYM FxOpd1D ; TO RN set register n as destination register
TORNd 13
NEWSYM FxOpd1E ; TO RN set register n as destination register
@@ -488,21 +488,21 @@ NEWSYM FxOpd4B ; LDW RN load word from RAM
LDWRNc 11
NEWSYM FxOpd40A1 ; LDB RN load byte from RAM
LDBRNc 0
LDBRNc 0
NEWSYM FxOpd41A1 ; LDB RN load byte from RAM
LDBRNc 1
LDBRNc 1
NEWSYM FxOpd42A1 ; LDB RN load byte from RAM
LDBRNc 2
LDBRNc 2
NEWSYM FxOpd43A1 ; LDB RN load byte from RAM
LDBRNc 3
LDBRNc 3
NEWSYM FxOpd44A1 ; LDB RN load byte from RAM
LDBRNc 4
LDBRNc 4
NEWSYM FxOpd45A1 ; LDB RN load byte from RAM
LDBRNc 5
NEWSYM FxOpd46A1 ; LDB RN load byte from RAM
LDBRNc 6
LDBRNc 6
NEWSYM FxOpd47A1 ; LDB RN load byte from RAM
LDBRNc 7
LDBRNc 7
NEWSYM FxOpd48A1 ; LDB RN load byte from RAM
LDBRNc 8
NEWSYM FxOpd49A1 ; LDB RN load byte from RAM
@@ -937,7 +937,7 @@ NEWSYM FxOpd4CA1 ; RPIX read color of the pixel with R1,R2 as x,y
NEWSYM FxOpd4D ; SWAP swap upper and lower byte of a register ; V
mov eax,[esi] ; Read Source
FETCHPIPE
ror ax,8
ror ax,8
inc ebp ; Increase program counter
mov [SfxSignZero],eax
mov [edi],eax ; Write Destination
@@ -1552,35 +1552,35 @@ NEWSYM FxOpd7FA3 ; BICIRNc register & ~immediate
BICIRNc 15 ^ 0FFFFh
NEWSYM FxOpd80 ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 0
MULTRNc 0
NEWSYM FxOpd81 ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 1
MULTRNc 1
NEWSYM FxOpd82 ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 2
MULTRNc 2
NEWSYM FxOpd83 ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 3
MULTRNc 3
NEWSYM FxOpd84 ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 4
MULTRNc 4
NEWSYM FxOpd85 ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 5
MULTRNc 5
NEWSYM FxOpd86 ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 6
MULTRNc 6
NEWSYM FxOpd87 ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 7
MULTRNc 7
NEWSYM FxOpd88 ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 8
MULTRNc 8
NEWSYM FxOpd89 ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 9
MULTRNc 9
NEWSYM FxOpd8A ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 10
MULTRNc 10
NEWSYM FxOpd8B ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 11
MULTRNc 11
NEWSYM FxOpd8C ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 12
MULTRNc 12
NEWSYM FxOpd8D ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 13
MULTRNc 13
NEWSYM FxOpd8E ; MULTRNc 8 bit to 16 bit signed multiply, register * register
MULTRNc 14
MULTRNc 14
NEWSYM FxOpd8F ; MULTRNc 8 bit to 16 bit signed multiply, register * register
FETCHPIPE
mov ebx,ebp

View File

@@ -32,8 +32,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* of thanks and credit for figuring this out.
*
* Andreas says:
* The author is greatly indebted with The Dumper, without whose help and
* patience providing him with real S-DD1 data the research had never been
* The author is greatly indebted with The Dumper, without whose help and
* patience providing him with real S-DD1 data the research had never been
* possible. He also wish to note that in the very beggining of his research,
* Neviksti had done some steps in the right direction. By last, the author is
* indirectly indebted to all the people that worked and contributed in the
@@ -163,7 +163,7 @@ INLINE unsigned char ProbGetBit(unsigned char context){
INLINE unsigned char GetBit(unsigned char cur_bitplane){
unsigned char bit;
bit=ProbGetBit(((cur_bitplane&1)<<4)
| ((prev_bits[cur_bitplane]&high_context_bits)>>5)
| (prev_bits[cur_bitplane]&low_context_bits));

View File

@@ -206,7 +206,7 @@ void ST010_OP01(short x0, short y0, short *x1, short *y1, short *Quadrant, short
else
{
*x1 = x0;
*y1 = y0;
*y1 = y0;
*Quadrant = 0x0000;
}
@@ -238,7 +238,7 @@ void ST010_Rotate(short Theta, short X0, short Y0, short *X1, short *Y1)
*Y1 = (Y0 * ST010_Cos(Theta) >> 15) - (X0 * ST010_Sin(Theta) >> 15);
}
void ST010_SortDrivers(uint16 Positions, uint16 Places[32], uint16 Drivers[32])
void ST010_SortDrivers(uint16 Positions, uint16 Places[32], uint16 Drivers[32])
{
bool Sorted;
uint16 Temp;
@@ -251,12 +251,12 @@ void ST010_SortDrivers(uint16 Positions, uint16 Places[32], uint16 Drivers[32])
Sorted = true;
for (i = 0; i < Positions - 1; i++)
{
if (Places[i] < Places[i + 1])
if (Places[i] < Places[i + 1])
{
Temp = Places[i + 1];
Places[i + 1] = Places[i];
Places[i] = Temp;
Temp = Drivers[i + 1];
Drivers[i + 1] = Drivers[i];
Drivers[i] = Temp;
@@ -278,13 +278,13 @@ void ST010DoCommand(void)
{
/*
Calculate track data based on direction coords
Input
0x0000-0x0001 : DX (signed)
0x0002-0x0003 : DY (signed)
Output
0x0010-0x0011 : Angle (signed)
*/
*/
case 0x01:
{
@@ -295,13 +295,13 @@ void ST010DoCommand(void)
break;
//Sorts a bunch of values by weight
case 0x02:
{
ST010_SortDrivers(*(short*)&SRAM[0x0024], (uint16*)&SRAM[0x0040], (uint16*)&SRAM[0x0080]);
}
break;
/*
Two Dimensional Coordinate Scale
@@ -312,8 +312,8 @@ void ST010DoCommand(void)
Output
0x0010-0x0013 : X1 (signed)
0x0014-0x0017 : Y1 (signed)
*/
*/
case 0x03:
{
ST010_Scale(*(short*)&SRAM[0x0004], *(short*)&SRAM[0x0000], *(short*)&SRAM[0x0002], (int *)&SRAM[0x10], (int *)&SRAM[0x14]);
@@ -344,7 +344,7 @@ void ST010DoCommand(void)
//Target (x,y) coordinates
int16 ypos_max = ST010_WORD(0x00C0);
int16 xpos_max = ST010_WORD(0x00C2);
//Current coordinates and direction
int32 ypos = SRAM[0xC4]|(SRAM[0xC5]<<8)|(SRAM[0xC6]<<16)|(SRAM[0xC7]<<24);
int32 xpos = SRAM[0xC8]|(SRAM[0xC9]<<8)|(SRAM[0xCA]<<16)|(SRAM[0xCB]<<24);
@@ -395,7 +395,7 @@ void ST010DoCommand(void)
{
speed = 0x100;
}
//Slow down for sharp curves
else if (abs(o1-rot)>=0x1000)
{
@@ -476,7 +476,7 @@ void ST010DoCommand(void)
SRAM[0x00DD]=(uint8)(flags >> 8);
}
break;
/*
16-bit Multiplication
@@ -493,7 +493,7 @@ void ST010DoCommand(void)
}
break;
/*
/*
Mode 7 Raster Data Calculation
Input
@@ -503,7 +503,7 @@ void ST010DoCommand(void)
0x0250-0x03af : Mode 7 Matrix B
0x03b0-0x050f : Mode 7 Matrix C
0x0510-0x066f : Mode 7 Matrix D
*/
*/
case 0x07:
{
@@ -519,7 +519,7 @@ void ST010DoCommand(void)
SRAM[0x00f0 + offset]=(uint8)(data);
SRAM[0x00f1 + offset]=(uint8)(data >> 8);
SRAM[0x0510 + offset]=(uint8)(data);
SRAM[0x0511 + offset]=(uint8)(data >> 8);
SRAM[0x0511 + offset]=(uint8)(data >> 8);
//Calculate Mode 7 Matrix B/C data
data = ST010_M7Scale[line] * ST010_Sin(Theta) >> 15;
@@ -527,10 +527,10 @@ void ST010DoCommand(void)
SRAM[0x0251 + offset]=(uint8)(data >> 8);
if (data) { data = ~data; }
SRAM[0x03b0 + offset]=(uint8)(data);
SRAM[0x03b1 + offset]=(uint8)(data >> 8);
offset += 2;
}
@@ -551,7 +551,7 @@ void ST010DoCommand(void)
0x0010-0x0011 : X1 (signed)
0x0012-0x0013 : Y1 (signed)
*/
case 0x08:
{
ST010_Rotate(*(short*)&SRAM[0x0004], *(short*)&SRAM[0x0000], *(short*)&SRAM[0x0002], (short *)&SRAM[0x10], (short *)&SRAM[0x12]);

View File

@@ -438,7 +438,7 @@ NEWSYM reg3010w
ret
NEWSYM reg3011w
mov [SfxR8+1],al
ret
ret
NEWSYM reg3012w
mov [SfxR9],al
ret

View File

@@ -590,7 +590,7 @@ NEWSYM AdjustFrequency
.fir_mmx
mov ebx, DSPInterpolate_8
.notgaussian
mov [DSPInterpolate],ebx
@@ -4876,7 +4876,7 @@ NEWSYM EchoStereo
jne near %2
mov ebp,%1
mov dword[powhack],1<<%1
mov eax,%1
dec al
cmp al,0FFh
@@ -5227,10 +5227,10 @@ NEWSYM ProcessSoundBuffer
cmp byte[EMUPause],1
jne .nopause
ret
.nopause
.nopause
; Process the sound :I
ProcessVoiceHandler16 0,ProcessVoice116,1,254
NEWSYM ProcessVoice116
ProcessVoiceHandler16 1,ProcessVoice216,2,253

View File

@@ -103,7 +103,7 @@ NEWSYM ProcessRewind
call BackupPauseFrame
popad
.notpauserewind
mov esi,[tempesi]
mov edi,[tempedi]
mov ebp,[tempebp]
@@ -1442,7 +1442,7 @@ NEWSYM cpuover
mov ebp,[tempebp]
mov edx,[tempedx]
.nopauseframemode3
cmp byte[EMUPause],1
jne .noemupause
@@ -1451,14 +1451,14 @@ NEWSYM cpuover
mov [tempedx],edx
mov [tempesi],esi
mov [tempedi],edi
mov [tempebp],ebp
mov [tempebp],ebp
pushad
call BackupPauseFrame
popad
.nopauseframemode1
call ProcessRewind
cmp byte[PauseFrameMode],2
jne .nopauseframemode2
mov byte[PauseFrameMode],3
@@ -1477,7 +1477,7 @@ NEWSYM cpuover
call showvideo
call cachevideo
popad
jmp .nonewgfx
.noemupause

View File

@@ -36,7 +36,7 @@
inc ebp
add ebp,ebx
ret
%endmacro
%endmacro
; tcall instruction
%macro spctcall 1

View File

@@ -466,7 +466,7 @@ NEWSYM SBHandler16
inc dword[sbhandexec]
cmp byte [vibracard], 1
je .donotcallcmdapos
je .donotcallcmdapos
call GetCDMAPos
.donotcallcmdapos

View File

@@ -208,7 +208,7 @@ NEWSYM InitVesa2
jnc .int1ok
mov edx,.noint1message
jmp VESA2EXITTODOS
.int1ok ; Real mode int successful!!!
mov eax,[RMREGS.eax]
@@ -222,7 +222,7 @@ NEWSYM InitVesa2
jz .vesadetected ; Check for presence of vesa
mov edx,.novesamessage
jmp VESA2EXITTODOS
.vesadetected
cmp word[fs:0004],200h
@@ -608,7 +608,7 @@ NEWSYM InitVesa2
jz .modesetok
mov edx,.unableset
jmp VESA2EXITTODOS ; Failure!!!
.modesetok
;******************************* EXTRA BIT ****************************

View File

@@ -91,7 +91,7 @@ SECTION .data
dw 03d4h,04a04h,03d4h,09a05h,03d4h,00b06h,03d4h,03e07h,03d4h,00008h
dw 03d4h,06109h,03d4h,0da10h,03d4h,0ac11h,03d4h,0bf12h,03d4h,02013h
dw 03d4h,04014h,03d4h,00715h,03d4h,01a16h,03d4h,0a317h,03c4h,00101h
dw 03c4h,00e04h,03cEh,04005h,03ceh,00506h,03c0h,04110h,03c0h,00013h
dw 03c4h,00e04h,03cEh,04005h,03ceh,00506h,03c0h,04110h,03c0h,00013h
dd 0
.Mode256x240c
@@ -107,7 +107,7 @@ SECTION .data
dw 03d4h,04a04h,03d4h,09a05h,03d4h,02306h,03d4h,0b207h,03d4h,00008h
dw 03d4h,06109h,03d4h,00a10h,03d4h,0ac11h,03d4h,0FF12h,03d4h,02013h
dw 03d4h,04014h,03d4h,00715h,03d4h,01a16h,03d4h,0a317h,03c4h,00101h
dw 03c4h,00e04h,03ceh,04005h,03ceh,00506h,03c0h,04110h,03c0h,00013h
dw 03c4h,00e04h,03ceh,04005h,03ceh,00506h,03c0h,04110h,03c0h,00013h
dd 0
.Mode256x256cs
@@ -115,7 +115,7 @@ SECTION .data
dw 03d4h,04a04h,03d4h,09a05h,03d4h,02306h,03d4h,01d07h,03d4h,00008h
dw 03d4h,06009h,03d4h,00a10h,03d4h,0ac11h,03d4h,0ff12h,03d4h,02013h
dw 03d4h,04014h,03d4h,00715h,03d4h,01a16h,03d4h,0a317h,03c4h,00101h
dw 03c4h,00e04h,03ceh,04005h,03cEh,00506h,03c0h,04110h,03c0h,00013h
dw 03c4h,00e04h,03ceh,04005h,03cEh,00506h,03c0h,04110h,03c0h,00013h
dd 0
.Mode320x224
@@ -131,7 +131,7 @@ SECTION .data
dw 03d4h,05404h,03d4h,08005h,03d4h,00d06h,03d4h,03e07h,03d4h,00008h
dw 03d4h,04109h,03d4h,0ea10h,03d4h,0ac11h,03d4h,0df12h,03d4h,02813h
dw 03d4h,00014h,03d4h,0e715h,03d4h,00616h,03d4h,0e317h,03c4h,00101h
dw 03c4h,00604h,03ceh,04005h,03ceh,00506h,03c0h,04110h,03c0h,00013h
dw 03c4h,00604h,03ceh,04005h,03ceh,00506h,03c0h,04110h,03c0h,00013h
dd 0
.Mode320x256

View File

@@ -114,7 +114,7 @@ DWORD ZOpenFile()
{
if(ZOpenMode==0)
{
if (TextFile)
if (TextFile)
FILEHANDLE[CurrentHandle]=fopen(ZOpenFileName,"rb");
else
FILEHANDLE[CurrentHandle]=(FILE *)gzopen(ZOpenFileName,"rb");
@@ -127,11 +127,11 @@ DWORD ZOpenFile()
}
if(ZOpenMode==1)
{
if (TextFile)
if (TextFile)
FILEHANDLE[CurrentHandle]=fopen(ZOpenFileName,"wb");
else
FILEHANDLE[CurrentHandle]=(FILE *)gzopen(ZOpenFileName,"wb");
if(FILEHANDLE[CurrentHandle]!=NULL)
if(FILEHANDLE[CurrentHandle]!=NULL)
{
CurrentHandle+=1;
return(CurrentHandle-1);
@@ -140,11 +140,11 @@ DWORD ZOpenFile()
}
if(ZOpenMode==2)
{
if (TextFile)
if (TextFile)
FILEHANDLE[CurrentHandle]=fopen(ZOpenFileName,"r+b");
else
FILEHANDLE[CurrentHandle]=(FILE *)gzopen(ZOpenFileName,"r+b");
if(FILEHANDLE[CurrentHandle]!=NULL)
if(FILEHANDLE[CurrentHandle]!=NULL)
{
CurrentHandle+=1;
return(CurrentHandle-1);
@@ -172,7 +172,7 @@ DWORD ZFileSeek()
mode = SEEK_SET;
else if (ZFileSeekMode==1) {
mode = SEEK_END;
if (TextFile==0)
if (TextFile==0)
printf("Warning : gzseek(SEEK_END) not supported");
} else return (0xFFFFFFFF);
@@ -194,8 +194,8 @@ DWORD ZFileRead()
ZFileReadSize,
FILEHANDLE[ZFileReadHandle]));
else
return(gzread(FILEHANDLE[ZFileReadHandle],
ZFileReadBlock,
return(gzread(FILEHANDLE[ZFileReadHandle],
ZFileReadBlock,
ZFileReadSize));
}
@@ -209,11 +209,11 @@ DWORD ZFileWrite()
ZFileWriteSize,
FILEHANDLE[ZFileWriteHandle]);
else
res = gzwrite(FILEHANDLE[ZFileWriteHandle],
ZFileWriteBlock,
res = gzwrite(FILEHANDLE[ZFileWriteHandle],
ZFileWriteBlock,
ZFileWriteSize);
if (res!=ZFileWriteSize)
if (res!=ZFileWriteSize)
return(0xFFFFFFFF);
return(0);

View File

@@ -109,7 +109,7 @@ void genpal()
{
pal[i]=pal[i-1];
{
struct colorvalue *with = &pal[i];
struct colorvalue *with = &pal[i];
if (with->r<255) with->r += 1;
if (with->r<255) with->r += 1;
@@ -125,8 +125,8 @@ int started = 0;
#if 0 // emulating Turbo Pascal
unsigned int randseed;
const unsigned modulus = 2147483647;
const unsigned factor = 397204094;
const unsigned modulus = 2147483647;
const unsigned factor = 397204094;
void Randomize()
{
@@ -136,13 +136,13 @@ void Randomize()
unsigned int randint(unsigned range)
{
randseed = randseed * factor % modulus;
return range ? randseed % range : 0;
return range ? randseed % range : 0;
}
double randreal()
{
randseed = randseed * factor % modulus;
return (double)randseed / modulus;
return (double)randseed / modulus;
}
int rand1(int r) /* Return a random number between -R And R*/
@@ -241,14 +241,14 @@ int v;
if ((v==0) ||
(v<decay) ||
(i<=xstart) ||
(i>=xend))
(i>=xend))
pt[(j-1)*BUF_WIDTH + i] = 0;
else
pt[((j-1)*BUF_WIDTH) + (i-(randint(3)-1))] = v - randint(decay);
}
/*Match?*/
if (randint(150)==0)
if (randint(150)==0)
memset(flamearray + xstart + randint(xend-xstart-5),255,5);
/*This loop controls the "root" of the

View File

@@ -26,394 +26,394 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
int FSinTab[2048] =
{
0, 201, 402, 603, 804, 1005, 1206, 1407, 1608, 1809, 2010, 2211, 2412, 2613,
2814, 3014, 3215, 3416, 3617, 3818, 4018, 4219, 4420, 4620, 4821, 5021, 5222,
5422, 5622, 5823, 6023, 6223, 6423, 6623, 6823, 7023, 7223, 7423, 7623, 7822,
8022, 8221, 8421, 8620, 8819, 9019, 9218, 9417, 9616, 9814, 10013, 10212, 10410,
10609, 10807, 11006, 11204, 11402, 11600, 11797, 11995, 12193, 12390, 12588,
12785, 12982, 13179, 13376, 13573, 13769, 13966, 14162, 14359, 14555, 14751,
14946, 15142, 15338, 15533, 15728, 15923, 16118, 16313, 16508, 16702, 16897,
17091, 17285, 17479, 17672, 17866, 18059, 18253, 18446, 18638, 18831, 19024,
19216, 19408, 19600, 19792, 19983, 20175, 20366, 20557, 20748, 20938, 21129,
21319, 21509, 21699, 21889, 22078, 22267, 22456, 22645, 22833, 23022, 23210,
23398, 23586, 23773, 23960, 24147, 24334, 24521, 24707, 24893, 25079, 25265,
25450, 25635, 25820, 26005, 26189, 26373, 26557, 26741, 26925, 27108, 27291,
27473, 27656, 27838, 28020, 28201, 28383, 28564, 28745, 28925, 29105, 29285,
29465, 29645, 29824, 30003, 30181, 30360, 30538, 30715, 30893, 31070, 31247,
31424, 31600, 31776, 31952, 32127, 32302, 32477, 32651, 32826, 32999, 33173,
33346, 33519, 33692, 33864, 34036, 34208, 34379, 34550, 34721, 34891, 35061,
35231, 35400, 35569, 35738, 35906, 36074, 36242, 36409, 36576, 36743, 36909,
37075, 37241, 37406, 37571, 37736, 37900, 38064, 38227, 38390, 38553, 38716,
38878, 39039, 39201, 39362, 39522, 39682, 39842, 40002, 40161, 40319, 40478,
40636, 40793, 40950, 41107, 41263, 41419, 41575, 41730, 41885, 42040, 42194,
42347, 42501, 42653, 42806, 42958, 43110, 43261, 43412, 43562, 43712, 43862,
44011, 44160, 44308, 44456, 44603, 44750, 44897, 45043, 45189, 45335, 45480,
45624, 45768, 45912, 46055, 46198, 46340, 46482, 46624, 46765, 46906, 47046,
47186, 47325, 47464, 47602, 47740, 47878, 48015, 48151, 48288, 48423, 48558,
48693, 48828, 48961, 49095, 49228, 49360, 49492, 49624, 49755, 49886, 50016,
50146, 50275, 50403, 50532, 50660, 50787, 50914, 51040, 51166, 51291, 51416,
51541, 51665, 51788, 51911, 52033, 52155, 52277, 52398, 52518, 52639, 52758,
52877, 52996, 53114, 53231, 53348, 53465, 53581, 53696, 53811, 53926, 54040,
54153, 54266, 54379, 54491, 54602, 54713, 54823, 54933, 55043, 55152, 55260,
55368, 55475, 55582, 55688, 55794, 55899, 56004, 56108, 56212, 56315, 56417,
56519, 56621, 56722, 56822, 56922, 57022, 57120, 57219, 57316, 57414, 57510,
57606, 57702, 57797, 57892, 57986, 58079, 58172, 58264, 58356, 58447, 58538,
58628, 58718, 58807, 58895, 58983, 59070, 59157, 59243, 59329, 59414, 59499,
59583, 59666, 59749, 59831, 59913, 59994, 60075, 60155, 60235, 60313, 60392,
60470, 60547, 60624, 60700, 60775, 60850, 60924, 60998, 61071, 61144, 61216,
61288, 61359, 61429, 61499, 61568, 61637, 61705, 61772, 61839, 61905, 61971,
62036, 62100, 62164, 62228, 62291, 62353, 62414, 62475, 62536, 62596, 62655,
62714, 62772, 62829, 62886, 62942, 62998, 63053, 63108, 63162, 63215, 63268,
63320, 63371, 63422, 63473, 63522, 63571, 63620, 63668, 63715, 63762, 63808,
63854, 63899, 63943, 63987, 64030, 64073, 64115, 64156, 64197, 64237, 64276,
64315, 64353, 64391, 64428, 64465, 64501, 64536, 64571, 64605, 64638, 64671,
64703, 64735, 64766, 64796, 64826, 64855, 64884, 64912, 64939, 64966, 64992,
65018, 65043, 65067, 65091, 65114, 65136, 65158, 65179, 65200, 65220, 65239,
65258, 65276, 65294, 65311, 65327, 65343, 65358, 65372, 65386, 65400, 65412,
65424, 65436, 65446, 65457, 65466, 65475, 65483, 65491, 65498, 65505, 65511,
65516, 65520, 65524, 65528, 65531, 65533, 65534, 65535, 65536, 65535, 65534,
65533, 65531, 65528, 65524, 65520, 65516, 65511, 65505, 65498, 65491, 65483,
65475, 65466, 65457, 65446, 65436, 65424, 65412, 65400, 65386, 65372, 65358,
65343, 65327, 65311, 65294, 65276, 65258, 65239, 65220, 65200, 65179, 65158,
65136, 65114, 65091, 65067, 65043, 65018, 64992, 64966, 64939, 64912, 64884,
64855, 64826, 64796, 64766, 64735, 64703, 64671, 64638, 64605, 64571, 64536,
64501, 64465, 64428, 64391, 64353, 64315, 64276, 64237, 64197, 64156, 64115,
64073, 64030, 63987, 63943, 63899, 63854, 63808, 63762, 63715, 63668, 63620,
63571, 63522, 63473, 63422, 63371, 63320, 63268, 63215, 63162, 63108, 63053,
62998, 62942, 62886, 62829, 62772, 62714, 62655, 62596, 62536, 62475, 62414,
62353, 62291, 62228, 62164, 62100, 62036, 61971, 61905, 61839, 61772, 61705,
61637, 61568, 61499, 61429, 61359, 61288, 61216, 61144, 61071, 60998, 60924,
60850, 60775, 60700, 60624, 60547, 60470, 60392, 60313, 60235, 60155, 60075,
59994, 59913, 59831, 59749, 59666, 59583, 59499, 59414, 59329, 59243, 59157,
59070, 58983, 58895, 58807, 58718, 58628, 58538, 58447, 58356, 58264, 58172,
58079, 57986, 57892, 57797, 57702, 57606, 57510, 57414, 57316, 57219, 57120,
57022, 56922, 56822, 56722, 56621, 56519, 56417, 56315, 56212, 56108, 56004,
55899, 55794, 55688, 55582, 55475, 55368, 55260, 55152, 55043, 54933, 54823,
54713, 54602, 54491, 54379, 54266, 54153, 54040, 53926, 53811, 53696, 53581,
53465, 53348, 53231, 53114, 52996, 52877, 52758, 52639, 52518, 52398, 52277,
52155, 52033, 51911, 51788, 51665, 51541, 51416, 51291, 51166, 51040, 50914,
50787, 50660, 50532, 50403, 50275, 50146, 50016, 49886, 49755, 49624, 49492,
49360, 49228, 49095, 48961, 48828, 48693, 48558, 48423, 48288, 48151, 48015,
47878, 47740, 47602, 47464, 47325, 47186, 47046, 46906, 46765, 46624, 46482,
46340, 46198, 46055, 45912, 45768, 45624, 45480, 45335, 45189, 45043, 44897,
44750, 44603, 44456, 44308, 44160, 44011, 43862, 43712, 43562, 43412, 43261,
43110, 42958, 42806, 42653, 42501, 42347, 42194, 42040, 41885, 41730, 41575,
41419, 41263, 41107, 40950, 40793, 40636, 40478, 40319, 40161, 40002, 39842,
39682, 39522, 39362, 39201, 39039, 38878, 38716, 38553, 38390, 38227, 38064,
37900, 37736, 37571, 37406, 37241, 37075, 36909, 36743, 36576, 36409, 36242,
36074, 35906, 35738, 35569, 35400, 35231, 35061, 34891, 34721, 34550, 34379,
34208, 34036, 33864, 33692, 33519, 33346, 33173, 32999, 32826, 32651, 32477,
32302, 32127, 31952, 31776, 31600, 31424, 31247, 31070, 30893, 30715, 30538,
30360, 30181, 30003, 29824, 29645, 29465, 29285, 29105, 28925, 28745, 28564,
28383, 28201, 28020, 27838, 27656, 27473, 27291, 27108, 26925, 26741, 26557,
26373, 26189, 26005, 25820, 25635, 25450, 25265, 25079, 24893, 24707, 24521,
24334, 24147, 23960, 23773, 23586, 23398, 23210, 23022, 22833, 22645, 22456,
22267, 22078, 21889, 21699, 21509, 21319, 21129, 20938, 20748, 20557, 20366,
20175, 19983, 19792, 19600, 19408, 19216, 19024, 18831, 18638, 18446, 18253,
18059, 17866, 17672, 17479, 17285, 17091, 16897, 16702, 16508, 16313, 16118,
15923, 15728, 15533, 15338, 15142, 14946, 14751, 14555, 14359, 14162, 13966,
13769, 13573, 13376, 13179, 12982, 12785, 12588, 12390, 12193, 11995, 11797,
11600, 11402, 11204, 11006, 10807, 10609, 10410, 10212, 10013, 9814, 9616, 9417,
9218, 9019, 8819, 8620, 8421, 8221, 8022, 7822, 7623, 7423, 7223, 7023, 6823,
6623, 6423, 6223, 6023, 5823, 5622, 5422, 5222, 5021, 4821, 4620, 4420, 4219,
4018, 3818, 3617, 3416, 3215, 3014, 2814, 2613, 2412, 2211, 2010, 1809, 1608,
1407, 1206, 1005, 804, 603, 402, 201, 0, -201, -402, -603, -804, -1005, -1206,
-1407, -1608, -1809, -2010, -2211, -2412, -2613, -2814, -3014, -3215, -3416,
-3617, -3818, -4018, -4219, -4420, -4620, -4821, -5021, -5222, -5422, -5622,
-5823, -6023, -6223, -6423, -6623, -6823, -7023, -7223, -7423, -7623, -7822,
-8022, -8221, -8421, -8620, -8819, -9019, -9218, -9417, -9616, -9814, -10013,
-10212, -10410, -10609, -10807, -11006, -11204, -11402, -11600, -11797, -11995,
-12193, -12390, -12588, -12785, -12982, -13179, -13376, -13573, -13769, -13966,
-14162, -14359, -14555, -14751, -14946, -15142, -15338, -15533, -15728, -15923,
-16118, -16313, -16508, -16702, -16897, -17091, -17285, -17479, -17672, -17866,
-18059, -18253, -18446, -18638, -18831, -19024, -19216, -19408, -19600, -19792,
-19983, -20175, -20366, -20557, -20748, -20938, -21129, -21319, -21509, -21699,
-21889, -22078, -22267, -22456, -22645, -22833, -23022, -23210, -23398, -23586,
-23773, -23960, -24147, -24334, -24521, -24707, -24893, -25079, -25265, -25450,
-25635, -25820, -26005, -26189, -26373, -26557, -26741, -26925, -27108, -27291,
-27473, -27656, -27838, -28020, -28201, -28383, -28564, -28745, -28925, -29105,
-29285, -29465, -29645, -29824, -30003, -30181, -30360, -30538, -30715, -30893,
-31070, -31247, -31424, -31600, -31776, -31952, -32127, -32302, -32477, -32651,
-32826, -32999, -33173, -33346, -33519, -33692, -33864, -34036, -34208, -34379,
-34550, -34721, -34891, -35061, -35231, -35400, -35569, -35738, -35906, -36074,
-36242, -36409, -36576, -36743, -36909, -37075, -37241, -37406, -37571, -37736,
-37900, -38064, -38227, -38390, -38553, -38716, -38878, -39039, -39201, -39362,
-39522, -39682, -39842, -40002, -40161, -40319, -40478, -40636, -40793, -40950,
-41107, -41263, -41419, -41575, -41730, -41885, -42040, -42194, -42347, -42501,
-42653, -42806, -42958, -43110, -43261, -43412, -43562, -43712, -43862, -44011,
-44160, -44308, -44456, -44603, -44750, -44897, -45043, -45189, -45335, -45480,
-45624, -45768, -45912, -46055, -46198, -46340, -46482, -46624, -46765, -46906,
-47046, -47186, -47325, -47464, -47602, -47740, -47878, -48015, -48151, -48288,
-48423, -48558, -48693, -48828, -48961, -49095, -49228, -49360, -49492, -49624,
-49755, -49886, -50016, -50146, -50275, -50403, -50532, -50660, -50787, -50914,
-51040, -51166, -51291, -51416, -51541, -51665, -51788, -51911, -52033, -52155,
-52277, -52398, -52518, -52639, -52758, -52877, -52996, -53114, -53231, -53348,
-53465, -53581, -53696, -53811, -53926, -54040, -54153, -54266, -54379, -54491,
-54602, -54713, -54823, -54933, -55043, -55152, -55260, -55368, -55475, -55582,
-55688, -55794, -55899, -56004, -56108, -56212, -56315, -56417, -56519, -56621,
-56722, -56822, -56922, -57022, -57120, -57219, -57316, -57414, -57510, -57606,
-57702, -57797, -57892, -57986, -58079, -58172, -58264, -58356, -58447, -58538,
-58628, -58718, -58807, -58895, -58983, -59070, -59157, -59243, -59329, -59414,
-59499, -59583, -59666, -59749, -59831, -59913, -59994, -60075, -60155, -60235,
-60313, -60392, -60470, -60547, -60624, -60700, -60775, -60850, -60924, -60998,
-61071, -61144, -61216, -61288, -61359, -61429, -61499, -61568, -61637, -61705,
-61772, -61839, -61905, -61971, -62036, -62100, -62164, -62228, -62291, -62353,
-62414, -62475, -62536, -62596, -62655, -62714, -62772, -62829, -62886, -62942,
-62998, -63053, -63108, -63162, -63215, -63268, -63320, -63371, -63422, -63473,
-63522, -63571, -63620, -63668, -63715, -63762, -63808, -63854, -63899, -63943,
-63987, -64030, -64073, -64115, -64156, -64197, -64237, -64276, -64315, -64353,
-64391, -64428, -64465, -64501, -64536, -64571, -64605, -64638, -64671, -64703,
-64735, -64766, -64796, -64826, -64855, -64884, -64912, -64939, -64966, -64992,
-65018, -65043, -65067, -65091, -65114, -65136, -65158, -65179, -65200, -65220,
-65239, -65258, -65276, -65294, -65311, -65327, -65343, -65358, -65372, -65386,
-65400, -65412, -65424, -65436, -65446, -65457, -65466, -65475, -65483, -65491,
-65498, -65505, -65511, -65516, -65520, -65524, -65528, -65531, -65533, -65534,
-65535, -65536, -65535, -65534, -65533, -65531, -65528, -65524, -65520, -65516,
-65511, -65505, -65498, -65491, -65483, -65475, -65466, -65457, -65446, -65436,
-65424, -65412, -65400, -65386, -65372, -65358, -65343, -65327, -65311, -65294,
-65276, -65258, -65239, -65220, -65200, -65179, -65158, -65136, -65114, -65091,
-65067, -65043, -65018, -64992, -64966, -64939, -64912, -64884, -64855, -64826,
-64796, -64766, -64735, -64703, -64671, -64638, -64605, -64571, -64536, -64501,
-64465, -64428, -64391, -64353, -64315, -64276, -64237, -64197, -64156, -64115,
-64073, -64030, -63987, -63943, -63899, -63854, -63808, -63762, -63715, -63668,
-63620, -63571, -63522, -63473, -63422, -63371, -63320, -63268, -63215, -63162,
-63108, -63053, -62998, -62942, -62886, -62829, -62772, -62714, -62655, -62596,
-62536, -62475, -62414, -62353, -62291, -62228, -62164, -62100, -62036, -61971,
-61905, -61839, -61772, -61705, -61637, -61568, -61499, -61429, -61359, -61288,
-61216, -61144, -61071, -60998, -60924, -60850, -60775, -60700, -60624, -60547,
-60470, -60392, -60313, -60235, -60155, -60075, -59994, -59913, -59831, -59749,
-59666, -59583, -59499, -59414, -59329, -59243, -59157, -59070, -58983, -58895,
-58807, -58718, -58628, -58538, -58447, -58356, -58264, -58172, -58079, -57986,
-57892, -57797, -57702, -57606, -57510, -57414, -57316, -57219, -57120, -57022,
-56922, -56822, -56722, -56621, -56519, -56417, -56315, -56212, -56108, -56004,
-55899, -55794, -55688, -55582, -55475, -55368, -55260, -55152, -55043, -54933,
-54823, -54713, -54602, -54491, -54379, -54266, -54153, -54040, -53926, -53811,
-53696, -53581, -53465, -53348, -53231, -53114, -52996, -52877, -52758, -52639,
-52518, -52398, -52277, -52155, -52033, -51911, -51788, -51665, -51541, -51416,
-51291, -51166, -51040, -50914, -50787, -50660, -50532, -50403, -50275, -50146,
-50016, -49886, -49755, -49624, -49492, -49360, -49228, -49095, -48961, -48828,
-48693, -48558, -48423, -48288, -48151, -48015, -47878, -47740, -47602, -47464,
-47325, -47186, -47046, -46906, -46765, -46624, -46482, -46340, -46198, -46055,
-45912, -45768, -45624, -45480, -45335, -45189, -45043, -44897, -44750, -44603,
-44456, -44308, -44160, -44011, -43862, -43712, -43562, -43412, -43261, -43110,
-42958, -42806, -42653, -42501, -42347, -42194, -42040, -41885, -41730, -41575,
-41419, -41263, -41107, -40950, -40793, -40636, -40478, -40319, -40161, -40002,
-39842, -39682, -39522, -39362, -39201, -39039, -38878, -38716, -38553, -38390,
-38227, -38064, -37900, -37736, -37571, -37406, -37241, -37075, -36909, -36743,
-36576, -36409, -36242, -36074, -35906, -35738, -35569, -35400, -35231, -35061,
-34891, -34721, -34550, -34379, -34208, -34036, -33864, -33692, -33519, -33346,
-33173, -32999, -32826, -32651, -32477, -32302, -32127, -31952, -31776, -31600,
-31424, -31247, -31070, -30893, -30715, -30538, -30360, -30181, -30003, -29824,
-29645, -29465, -29285, -29105, -28925, -28745, -28564, -28383, -28201, -28020,
-27838, -27656, -27473, -27291, -27108, -26925, -26741, -26557, -26373, -26189,
-26005, -25820, -25635, -25450, -25265, -25079, -24893, -24707, -24521, -24334,
-24147, -23960, -23773, -23586, -23398, -23210, -23022, -22833, -22645, -22456,
-22267, -22078, -21889, -21699, -21509, -21319, -21129, -20938, -20748, -20557,
-20366, -20175, -19983, -19792, -19600, -19408, -19216, -19024, -18831, -18638,
-18446, -18253, -18059, -17866, -17672, -17479, -17285, -17091, -16897, -16702,
-16508, -16313, -16118, -15923, -15728, -15533, -15338, -15142, -14946, -14751,
-14555, -14359, -14162, -13966, -13769, -13573, -13376, -13179, -12982, -12785,
-12588, -12390, -12193, -11995, -11797, -11600, -11402, -11204, -11006, -10807,
-10609, -10410, -10212, -10013, -9814, -9616, -9417, -9218, -9019, -8819, -8620,
-8421, -8221, -8022, -7822, -7623, -7423, -7223, -7023, -6823, -6623, -6423,
-6223, -6023, -5823, -5622, -5422, -5222, -5021, -4821, -4620, -4420, -4219,
-4018, -3818, -3617, -3416, -3215, -3014, -2814, -2613, -2412, -2211, -2010,
0, 201, 402, 603, 804, 1005, 1206, 1407, 1608, 1809, 2010, 2211, 2412, 2613,
2814, 3014, 3215, 3416, 3617, 3818, 4018, 4219, 4420, 4620, 4821, 5021, 5222,
5422, 5622, 5823, 6023, 6223, 6423, 6623, 6823, 7023, 7223, 7423, 7623, 7822,
8022, 8221, 8421, 8620, 8819, 9019, 9218, 9417, 9616, 9814, 10013, 10212, 10410,
10609, 10807, 11006, 11204, 11402, 11600, 11797, 11995, 12193, 12390, 12588,
12785, 12982, 13179, 13376, 13573, 13769, 13966, 14162, 14359, 14555, 14751,
14946, 15142, 15338, 15533, 15728, 15923, 16118, 16313, 16508, 16702, 16897,
17091, 17285, 17479, 17672, 17866, 18059, 18253, 18446, 18638, 18831, 19024,
19216, 19408, 19600, 19792, 19983, 20175, 20366, 20557, 20748, 20938, 21129,
21319, 21509, 21699, 21889, 22078, 22267, 22456, 22645, 22833, 23022, 23210,
23398, 23586, 23773, 23960, 24147, 24334, 24521, 24707, 24893, 25079, 25265,
25450, 25635, 25820, 26005, 26189, 26373, 26557, 26741, 26925, 27108, 27291,
27473, 27656, 27838, 28020, 28201, 28383, 28564, 28745, 28925, 29105, 29285,
29465, 29645, 29824, 30003, 30181, 30360, 30538, 30715, 30893, 31070, 31247,
31424, 31600, 31776, 31952, 32127, 32302, 32477, 32651, 32826, 32999, 33173,
33346, 33519, 33692, 33864, 34036, 34208, 34379, 34550, 34721, 34891, 35061,
35231, 35400, 35569, 35738, 35906, 36074, 36242, 36409, 36576, 36743, 36909,
37075, 37241, 37406, 37571, 37736, 37900, 38064, 38227, 38390, 38553, 38716,
38878, 39039, 39201, 39362, 39522, 39682, 39842, 40002, 40161, 40319, 40478,
40636, 40793, 40950, 41107, 41263, 41419, 41575, 41730, 41885, 42040, 42194,
42347, 42501, 42653, 42806, 42958, 43110, 43261, 43412, 43562, 43712, 43862,
44011, 44160, 44308, 44456, 44603, 44750, 44897, 45043, 45189, 45335, 45480,
45624, 45768, 45912, 46055, 46198, 46340, 46482, 46624, 46765, 46906, 47046,
47186, 47325, 47464, 47602, 47740, 47878, 48015, 48151, 48288, 48423, 48558,
48693, 48828, 48961, 49095, 49228, 49360, 49492, 49624, 49755, 49886, 50016,
50146, 50275, 50403, 50532, 50660, 50787, 50914, 51040, 51166, 51291, 51416,
51541, 51665, 51788, 51911, 52033, 52155, 52277, 52398, 52518, 52639, 52758,
52877, 52996, 53114, 53231, 53348, 53465, 53581, 53696, 53811, 53926, 54040,
54153, 54266, 54379, 54491, 54602, 54713, 54823, 54933, 55043, 55152, 55260,
55368, 55475, 55582, 55688, 55794, 55899, 56004, 56108, 56212, 56315, 56417,
56519, 56621, 56722, 56822, 56922, 57022, 57120, 57219, 57316, 57414, 57510,
57606, 57702, 57797, 57892, 57986, 58079, 58172, 58264, 58356, 58447, 58538,
58628, 58718, 58807, 58895, 58983, 59070, 59157, 59243, 59329, 59414, 59499,
59583, 59666, 59749, 59831, 59913, 59994, 60075, 60155, 60235, 60313, 60392,
60470, 60547, 60624, 60700, 60775, 60850, 60924, 60998, 61071, 61144, 61216,
61288, 61359, 61429, 61499, 61568, 61637, 61705, 61772, 61839, 61905, 61971,
62036, 62100, 62164, 62228, 62291, 62353, 62414, 62475, 62536, 62596, 62655,
62714, 62772, 62829, 62886, 62942, 62998, 63053, 63108, 63162, 63215, 63268,
63320, 63371, 63422, 63473, 63522, 63571, 63620, 63668, 63715, 63762, 63808,
63854, 63899, 63943, 63987, 64030, 64073, 64115, 64156, 64197, 64237, 64276,
64315, 64353, 64391, 64428, 64465, 64501, 64536, 64571, 64605, 64638, 64671,
64703, 64735, 64766, 64796, 64826, 64855, 64884, 64912, 64939, 64966, 64992,
65018, 65043, 65067, 65091, 65114, 65136, 65158, 65179, 65200, 65220, 65239,
65258, 65276, 65294, 65311, 65327, 65343, 65358, 65372, 65386, 65400, 65412,
65424, 65436, 65446, 65457, 65466, 65475, 65483, 65491, 65498, 65505, 65511,
65516, 65520, 65524, 65528, 65531, 65533, 65534, 65535, 65536, 65535, 65534,
65533, 65531, 65528, 65524, 65520, 65516, 65511, 65505, 65498, 65491, 65483,
65475, 65466, 65457, 65446, 65436, 65424, 65412, 65400, 65386, 65372, 65358,
65343, 65327, 65311, 65294, 65276, 65258, 65239, 65220, 65200, 65179, 65158,
65136, 65114, 65091, 65067, 65043, 65018, 64992, 64966, 64939, 64912, 64884,
64855, 64826, 64796, 64766, 64735, 64703, 64671, 64638, 64605, 64571, 64536,
64501, 64465, 64428, 64391, 64353, 64315, 64276, 64237, 64197, 64156, 64115,
64073, 64030, 63987, 63943, 63899, 63854, 63808, 63762, 63715, 63668, 63620,
63571, 63522, 63473, 63422, 63371, 63320, 63268, 63215, 63162, 63108, 63053,
62998, 62942, 62886, 62829, 62772, 62714, 62655, 62596, 62536, 62475, 62414,
62353, 62291, 62228, 62164, 62100, 62036, 61971, 61905, 61839, 61772, 61705,
61637, 61568, 61499, 61429, 61359, 61288, 61216, 61144, 61071, 60998, 60924,
60850, 60775, 60700, 60624, 60547, 60470, 60392, 60313, 60235, 60155, 60075,
59994, 59913, 59831, 59749, 59666, 59583, 59499, 59414, 59329, 59243, 59157,
59070, 58983, 58895, 58807, 58718, 58628, 58538, 58447, 58356, 58264, 58172,
58079, 57986, 57892, 57797, 57702, 57606, 57510, 57414, 57316, 57219, 57120,
57022, 56922, 56822, 56722, 56621, 56519, 56417, 56315, 56212, 56108, 56004,
55899, 55794, 55688, 55582, 55475, 55368, 55260, 55152, 55043, 54933, 54823,
54713, 54602, 54491, 54379, 54266, 54153, 54040, 53926, 53811, 53696, 53581,
53465, 53348, 53231, 53114, 52996, 52877, 52758, 52639, 52518, 52398, 52277,
52155, 52033, 51911, 51788, 51665, 51541, 51416, 51291, 51166, 51040, 50914,
50787, 50660, 50532, 50403, 50275, 50146, 50016, 49886, 49755, 49624, 49492,
49360, 49228, 49095, 48961, 48828, 48693, 48558, 48423, 48288, 48151, 48015,
47878, 47740, 47602, 47464, 47325, 47186, 47046, 46906, 46765, 46624, 46482,
46340, 46198, 46055, 45912, 45768, 45624, 45480, 45335, 45189, 45043, 44897,
44750, 44603, 44456, 44308, 44160, 44011, 43862, 43712, 43562, 43412, 43261,
43110, 42958, 42806, 42653, 42501, 42347, 42194, 42040, 41885, 41730, 41575,
41419, 41263, 41107, 40950, 40793, 40636, 40478, 40319, 40161, 40002, 39842,
39682, 39522, 39362, 39201, 39039, 38878, 38716, 38553, 38390, 38227, 38064,
37900, 37736, 37571, 37406, 37241, 37075, 36909, 36743, 36576, 36409, 36242,
36074, 35906, 35738, 35569, 35400, 35231, 35061, 34891, 34721, 34550, 34379,
34208, 34036, 33864, 33692, 33519, 33346, 33173, 32999, 32826, 32651, 32477,
32302, 32127, 31952, 31776, 31600, 31424, 31247, 31070, 30893, 30715, 30538,
30360, 30181, 30003, 29824, 29645, 29465, 29285, 29105, 28925, 28745, 28564,
28383, 28201, 28020, 27838, 27656, 27473, 27291, 27108, 26925, 26741, 26557,
26373, 26189, 26005, 25820, 25635, 25450, 25265, 25079, 24893, 24707, 24521,
24334, 24147, 23960, 23773, 23586, 23398, 23210, 23022, 22833, 22645, 22456,
22267, 22078, 21889, 21699, 21509, 21319, 21129, 20938, 20748, 20557, 20366,
20175, 19983, 19792, 19600, 19408, 19216, 19024, 18831, 18638, 18446, 18253,
18059, 17866, 17672, 17479, 17285, 17091, 16897, 16702, 16508, 16313, 16118,
15923, 15728, 15533, 15338, 15142, 14946, 14751, 14555, 14359, 14162, 13966,
13769, 13573, 13376, 13179, 12982, 12785, 12588, 12390, 12193, 11995, 11797,
11600, 11402, 11204, 11006, 10807, 10609, 10410, 10212, 10013, 9814, 9616, 9417,
9218, 9019, 8819, 8620, 8421, 8221, 8022, 7822, 7623, 7423, 7223, 7023, 6823,
6623, 6423, 6223, 6023, 5823, 5622, 5422, 5222, 5021, 4821, 4620, 4420, 4219,
4018, 3818, 3617, 3416, 3215, 3014, 2814, 2613, 2412, 2211, 2010, 1809, 1608,
1407, 1206, 1005, 804, 603, 402, 201, 0, -201, -402, -603, -804, -1005, -1206,
-1407, -1608, -1809, -2010, -2211, -2412, -2613, -2814, -3014, -3215, -3416,
-3617, -3818, -4018, -4219, -4420, -4620, -4821, -5021, -5222, -5422, -5622,
-5823, -6023, -6223, -6423, -6623, -6823, -7023, -7223, -7423, -7623, -7822,
-8022, -8221, -8421, -8620, -8819, -9019, -9218, -9417, -9616, -9814, -10013,
-10212, -10410, -10609, -10807, -11006, -11204, -11402, -11600, -11797, -11995,
-12193, -12390, -12588, -12785, -12982, -13179, -13376, -13573, -13769, -13966,
-14162, -14359, -14555, -14751, -14946, -15142, -15338, -15533, -15728, -15923,
-16118, -16313, -16508, -16702, -16897, -17091, -17285, -17479, -17672, -17866,
-18059, -18253, -18446, -18638, -18831, -19024, -19216, -19408, -19600, -19792,
-19983, -20175, -20366, -20557, -20748, -20938, -21129, -21319, -21509, -21699,
-21889, -22078, -22267, -22456, -22645, -22833, -23022, -23210, -23398, -23586,
-23773, -23960, -24147, -24334, -24521, -24707, -24893, -25079, -25265, -25450,
-25635, -25820, -26005, -26189, -26373, -26557, -26741, -26925, -27108, -27291,
-27473, -27656, -27838, -28020, -28201, -28383, -28564, -28745, -28925, -29105,
-29285, -29465, -29645, -29824, -30003, -30181, -30360, -30538, -30715, -30893,
-31070, -31247, -31424, -31600, -31776, -31952, -32127, -32302, -32477, -32651,
-32826, -32999, -33173, -33346, -33519, -33692, -33864, -34036, -34208, -34379,
-34550, -34721, -34891, -35061, -35231, -35400, -35569, -35738, -35906, -36074,
-36242, -36409, -36576, -36743, -36909, -37075, -37241, -37406, -37571, -37736,
-37900, -38064, -38227, -38390, -38553, -38716, -38878, -39039, -39201, -39362,
-39522, -39682, -39842, -40002, -40161, -40319, -40478, -40636, -40793, -40950,
-41107, -41263, -41419, -41575, -41730, -41885, -42040, -42194, -42347, -42501,
-42653, -42806, -42958, -43110, -43261, -43412, -43562, -43712, -43862, -44011,
-44160, -44308, -44456, -44603, -44750, -44897, -45043, -45189, -45335, -45480,
-45624, -45768, -45912, -46055, -46198, -46340, -46482, -46624, -46765, -46906,
-47046, -47186, -47325, -47464, -47602, -47740, -47878, -48015, -48151, -48288,
-48423, -48558, -48693, -48828, -48961, -49095, -49228, -49360, -49492, -49624,
-49755, -49886, -50016, -50146, -50275, -50403, -50532, -50660, -50787, -50914,
-51040, -51166, -51291, -51416, -51541, -51665, -51788, -51911, -52033, -52155,
-52277, -52398, -52518, -52639, -52758, -52877, -52996, -53114, -53231, -53348,
-53465, -53581, -53696, -53811, -53926, -54040, -54153, -54266, -54379, -54491,
-54602, -54713, -54823, -54933, -55043, -55152, -55260, -55368, -55475, -55582,
-55688, -55794, -55899, -56004, -56108, -56212, -56315, -56417, -56519, -56621,
-56722, -56822, -56922, -57022, -57120, -57219, -57316, -57414, -57510, -57606,
-57702, -57797, -57892, -57986, -58079, -58172, -58264, -58356, -58447, -58538,
-58628, -58718, -58807, -58895, -58983, -59070, -59157, -59243, -59329, -59414,
-59499, -59583, -59666, -59749, -59831, -59913, -59994, -60075, -60155, -60235,
-60313, -60392, -60470, -60547, -60624, -60700, -60775, -60850, -60924, -60998,
-61071, -61144, -61216, -61288, -61359, -61429, -61499, -61568, -61637, -61705,
-61772, -61839, -61905, -61971, -62036, -62100, -62164, -62228, -62291, -62353,
-62414, -62475, -62536, -62596, -62655, -62714, -62772, -62829, -62886, -62942,
-62998, -63053, -63108, -63162, -63215, -63268, -63320, -63371, -63422, -63473,
-63522, -63571, -63620, -63668, -63715, -63762, -63808, -63854, -63899, -63943,
-63987, -64030, -64073, -64115, -64156, -64197, -64237, -64276, -64315, -64353,
-64391, -64428, -64465, -64501, -64536, -64571, -64605, -64638, -64671, -64703,
-64735, -64766, -64796, -64826, -64855, -64884, -64912, -64939, -64966, -64992,
-65018, -65043, -65067, -65091, -65114, -65136, -65158, -65179, -65200, -65220,
-65239, -65258, -65276, -65294, -65311, -65327, -65343, -65358, -65372, -65386,
-65400, -65412, -65424, -65436, -65446, -65457, -65466, -65475, -65483, -65491,
-65498, -65505, -65511, -65516, -65520, -65524, -65528, -65531, -65533, -65534,
-65535, -65536, -65535, -65534, -65533, -65531, -65528, -65524, -65520, -65516,
-65511, -65505, -65498, -65491, -65483, -65475, -65466, -65457, -65446, -65436,
-65424, -65412, -65400, -65386, -65372, -65358, -65343, -65327, -65311, -65294,
-65276, -65258, -65239, -65220, -65200, -65179, -65158, -65136, -65114, -65091,
-65067, -65043, -65018, -64992, -64966, -64939, -64912, -64884, -64855, -64826,
-64796, -64766, -64735, -64703, -64671, -64638, -64605, -64571, -64536, -64501,
-64465, -64428, -64391, -64353, -64315, -64276, -64237, -64197, -64156, -64115,
-64073, -64030, -63987, -63943, -63899, -63854, -63808, -63762, -63715, -63668,
-63620, -63571, -63522, -63473, -63422, -63371, -63320, -63268, -63215, -63162,
-63108, -63053, -62998, -62942, -62886, -62829, -62772, -62714, -62655, -62596,
-62536, -62475, -62414, -62353, -62291, -62228, -62164, -62100, -62036, -61971,
-61905, -61839, -61772, -61705, -61637, -61568, -61499, -61429, -61359, -61288,
-61216, -61144, -61071, -60998, -60924, -60850, -60775, -60700, -60624, -60547,
-60470, -60392, -60313, -60235, -60155, -60075, -59994, -59913, -59831, -59749,
-59666, -59583, -59499, -59414, -59329, -59243, -59157, -59070, -58983, -58895,
-58807, -58718, -58628, -58538, -58447, -58356, -58264, -58172, -58079, -57986,
-57892, -57797, -57702, -57606, -57510, -57414, -57316, -57219, -57120, -57022,
-56922, -56822, -56722, -56621, -56519, -56417, -56315, -56212, -56108, -56004,
-55899, -55794, -55688, -55582, -55475, -55368, -55260, -55152, -55043, -54933,
-54823, -54713, -54602, -54491, -54379, -54266, -54153, -54040, -53926, -53811,
-53696, -53581, -53465, -53348, -53231, -53114, -52996, -52877, -52758, -52639,
-52518, -52398, -52277, -52155, -52033, -51911, -51788, -51665, -51541, -51416,
-51291, -51166, -51040, -50914, -50787, -50660, -50532, -50403, -50275, -50146,
-50016, -49886, -49755, -49624, -49492, -49360, -49228, -49095, -48961, -48828,
-48693, -48558, -48423, -48288, -48151, -48015, -47878, -47740, -47602, -47464,
-47325, -47186, -47046, -46906, -46765, -46624, -46482, -46340, -46198, -46055,
-45912, -45768, -45624, -45480, -45335, -45189, -45043, -44897, -44750, -44603,
-44456, -44308, -44160, -44011, -43862, -43712, -43562, -43412, -43261, -43110,
-42958, -42806, -42653, -42501, -42347, -42194, -42040, -41885, -41730, -41575,
-41419, -41263, -41107, -40950, -40793, -40636, -40478, -40319, -40161, -40002,
-39842, -39682, -39522, -39362, -39201, -39039, -38878, -38716, -38553, -38390,
-38227, -38064, -37900, -37736, -37571, -37406, -37241, -37075, -36909, -36743,
-36576, -36409, -36242, -36074, -35906, -35738, -35569, -35400, -35231, -35061,
-34891, -34721, -34550, -34379, -34208, -34036, -33864, -33692, -33519, -33346,
-33173, -32999, -32826, -32651, -32477, -32302, -32127, -31952, -31776, -31600,
-31424, -31247, -31070, -30893, -30715, -30538, -30360, -30181, -30003, -29824,
-29645, -29465, -29285, -29105, -28925, -28745, -28564, -28383, -28201, -28020,
-27838, -27656, -27473, -27291, -27108, -26925, -26741, -26557, -26373, -26189,
-26005, -25820, -25635, -25450, -25265, -25079, -24893, -24707, -24521, -24334,
-24147, -23960, -23773, -23586, -23398, -23210, -23022, -22833, -22645, -22456,
-22267, -22078, -21889, -21699, -21509, -21319, -21129, -20938, -20748, -20557,
-20366, -20175, -19983, -19792, -19600, -19408, -19216, -19024, -18831, -18638,
-18446, -18253, -18059, -17866, -17672, -17479, -17285, -17091, -16897, -16702,
-16508, -16313, -16118, -15923, -15728, -15533, -15338, -15142, -14946, -14751,
-14555, -14359, -14162, -13966, -13769, -13573, -13376, -13179, -12982, -12785,
-12588, -12390, -12193, -11995, -11797, -11600, -11402, -11204, -11006, -10807,
-10609, -10410, -10212, -10013, -9814, -9616, -9417, -9218, -9019, -8819, -8620,
-8421, -8221, -8022, -7822, -7623, -7423, -7223, -7023, -6823, -6623, -6423,
-6223, -6023, -5823, -5622, -5422, -5222, -5021, -4821, -4620, -4420, -4219,
-4018, -3818, -3617, -3416, -3215, -3014, -2814, -2613, -2412, -2211, -2010,
-1809, -1608, -1407, -1206, -1005, -804, -603, -402, -201
};
int FCosTab[2048] =
{
65536, 65535, 65534, 65533, 65531, 65528, 65524, 65520, 65516, 65511, 65505,
65498, 65491, 65483, 65475, 65466, 65457, 65446, 65436, 65424, 65412, 65400,
65386, 65372, 65358, 65343, 65327, 65311, 65294, 65276, 65258, 65239, 65220,
65200, 65179, 65158, 65136, 65114, 65091, 65067, 65043, 65018, 64992, 64966,
64939, 64912, 64884, 64855, 64826, 64796, 64766, 64735, 64703, 64671, 64638,
64605, 64571, 64536, 64501, 64465, 64428, 64391, 64353, 64315, 64276, 64237,
64197, 64156, 64115, 64073, 64030, 63987, 63943, 63899, 63854, 63808, 63762,
63715, 63668, 63620, 63571, 63522, 63473, 63422, 63371, 63320, 63268, 63215,
63162, 63108, 63053, 62998, 62942, 62886, 62829, 62772, 62714, 62655, 62596,
62536, 62475, 62414, 62353, 62291, 62228, 62164, 62100, 62036, 61971, 61905,
61839, 61772, 61705, 61637, 61568, 61499, 61429, 61359, 61288, 61216, 61144,
61071, 60998, 60924, 60850, 60775, 60700, 60624, 60547, 60470, 60392, 60313,
60235, 60155, 60075, 59994, 59913, 59831, 59749, 59666, 59583, 59499, 59414,
59329, 59243, 59157, 59070, 58983, 58895, 58807, 58718, 58628, 58538, 58447,
58356, 58264, 58172, 58079, 57986, 57892, 57797, 57702, 57606, 57510, 57414,
57316, 57219, 57120, 57022, 56922, 56822, 56722, 56621, 56519, 56417, 56315,
56212, 56108, 56004, 55899, 55794, 55688, 55582, 55475, 55368, 55260, 55152,
55043, 54933, 54823, 54713, 54602, 54491, 54379, 54266, 54153, 54040, 53926,
53811, 53696, 53581, 53465, 53348, 53231, 53114, 52996, 52877, 52758, 52639,
52518, 52398, 52277, 52155, 52033, 51911, 51788, 51665, 51541, 51416, 51291,
51166, 51040, 50914, 50787, 50660, 50532, 50403, 50275, 50146, 50016, 49886,
49755, 49624, 49492, 49360, 49228, 49095, 48961, 48828, 48693, 48558, 48423,
48288, 48151, 48015, 47878, 47740, 47602, 47464, 47325, 47186, 47046, 46906,
46765, 46624, 46482, 46340, 46198, 46055, 45912, 45768, 45624, 45480, 45335,
45189, 45043, 44897, 44750, 44603, 44456, 44308, 44160, 44011, 43862, 43712,
43562, 43412, 43261, 43110, 42958, 42806, 42653, 42501, 42347, 42194, 42040,
41885, 41730, 41575, 41419, 41263, 41107, 40950, 40793, 40636, 40478, 40319,
40161, 40002, 39842, 39682, 39522, 39362, 39201, 39039, 38878, 38716, 38553,
38390, 38227, 38064, 37900, 37736, 37571, 37406, 37241, 37075, 36909, 36743,
36576, 36409, 36242, 36074, 35906, 35738, 35569, 35400, 35231, 35061, 34891,
34721, 34550, 34379, 34208, 34036, 33864, 33692, 33519, 33346, 33173, 32999,
32826, 32651, 32477, 32302, 32127, 31952, 31776, 31600, 31424, 31247, 31070,
30893, 30715, 30538, 30360, 30181, 30003, 29824, 29645, 29465, 29285, 29105,
28925, 28745, 28564, 28383, 28201, 28020, 27838, 27656, 27473, 27291, 27108,
26925, 26741, 26557, 26373, 26189, 26005, 25820, 25635, 25450, 25265, 25079,
24893, 24707, 24521, 24334, 24147, 23960, 23773, 23586, 23398, 23210, 23022,
22833, 22645, 22456, 22267, 22078, 21889, 21699, 21509, 21319, 21129, 20938,
20748, 20557, 20366, 20175, 19983, 19792, 19600, 19408, 19216, 19024, 18831,
18638, 18446, 18253, 18059, 17866, 17672, 17479, 17285, 17091, 16897, 16702,
16508, 16313, 16118, 15923, 15728, 15533, 15338, 15142, 14946, 14751, 14555,
14359, 14162, 13966, 13769, 13573, 13376, 13179, 12982, 12785, 12588, 12390,
12193, 11995, 11797, 11600, 11402, 11204, 11006, 10807, 10609, 10410, 10212,
10013, 9814, 9616, 9417, 9218, 9019, 8819, 8620, 8421, 8221, 8022, 7822, 7623,
7423, 7223, 7023, 6823, 6623, 6423, 6223, 6023, 5823, 5622, 5422, 5222, 5021,
4821, 4620, 4420, 4219, 4018, 3818, 3617, 3416, 3215, 3014, 2814, 2613, 2412,
2211, 2010, 1809, 1608, 1407, 1206, 1005, 804, 603, 402, 201, 0, -201, -402,
-603, -804, -1005, -1206, -1407, -1608, -1809, -2010, -2211, -2412, -2613, -2814,
-3014, -3215, -3416, -3617, -3818, -4018, -4219, -4420, -4620, -4821, -5021,
-5222, -5422, -5622, -5823, -6023, -6223, -6423, -6623, -6823, -7023, -7223,
-7423, -7623, -7822, -8022, -8221, -8421, -8620, -8819, -9019, -9218, -9417,
-9616, -9814, -10013, -10212, -10410, -10609, -10807, -11006, -11204, -11402,
-11600, -11797, -11995, -12193, -12390, -12588, -12785, -12982, -13179, -13376,
-13573, -13769, -13966, -14162, -14359, -14555, -14751, -14946, -15142, -15338,
-15533, -15728, -15923, -16118, -16313, -16508, -16702, -16897, -17091, -17285,
-17479, -17672, -17866, -18059, -18253, -18446, -18638, -18831, -19024, -19216,
-19408, -19600, -19792, -19983, -20175, -20366, -20557, -20748, -20938, -21129,
-21319, -21509, -21699, -21889, -22078, -22267, -22456, -22645, -22833, -23022,
-23210, -23398, -23586, -23773, -23960, -24147, -24334, -24521, -24707, -24893,
-25079, -25265, -25450, -25635, -25820, -26005, -26189, -26373, -26557, -26741,
-26925, -27108, -27291, -27473, -27656, -27838, -28020, -28201, -28383, -28564,
-28745, -28925, -29105, -29285, -29465, -29645, -29824, -30003, -30181, -30360,
-30538, -30715, -30893, -31070, -31247, -31424, -31600, -31776, -31952, -32127,
-32302, -32477, -32651, -32826, -32999, -33173, -33346, -33519, -33692, -33864,
-34036, -34208, -34379, -34550, -34721, -34891, -35061, -35231, -35400, -35569,
-35738, -35906, -36074, -36242, -36409, -36576, -36743, -36909, -37075, -37241,
-37406, -37571, -37736, -37900, -38064, -38227, -38390, -38553, -38716, -38878,
-39039, -39201, -39362, -39522, -39682, -39842, -40002, -40161, -40319, -40478,
-40636, -40793, -40950, -41107, -41263, -41419, -41575, -41730, -41885, -42040,
-42194, -42347, -42501, -42653, -42806, -42958, -43110, -43261, -43412, -43562,
-43712, -43862, -44011, -44160, -44308, -44456, -44603, -44750, -44897, -45043,
-45189, -45335, -45480, -45624, -45768, -45912, -46055, -46198, -46340, -46482,
-46624, -46765, -46906, -47046, -47186, -47325, -47464, -47602, -47740, -47878,
-48015, -48151, -48288, -48423, -48558, -48693, -48828, -48961, -49095, -49228,
-49360, -49492, -49624, -49755, -49886, -50016, -50146, -50275, -50403, -50532,
-50660, -50787, -50914, -51040, -51166, -51291, -51416, -51541, -51665, -51788,
-51911, -52033, -52155, -52277, -52398, -52518, -52639, -52758, -52877, -52996,
-53114, -53231, -53348, -53465, -53581, -53696, -53811, -53926, -54040, -54153,
-54266, -54379, -54491, -54602, -54713, -54823, -54933, -55043, -55152, -55260,
-55368, -55475, -55582, -55688, -55794, -55899, -56004, -56108, -56212, -56315,
-56417, -56519, -56621, -56722, -56822, -56922, -57022, -57120, -57219, -57316,
-57414, -57510, -57606, -57702, -57797, -57892, -57986, -58079, -58172, -58264,
-58356, -58447, -58538, -58628, -58718, -58807, -58895, -58983, -59070, -59157,
-59243, -59329, -59414, -59499, -59583, -59666, -59749, -59831, -59913, -59994,
-60075, -60155, -60235, -60313, -60392, -60470, -60547, -60624, -60700, -60775,
-60850, -60924, -60998, -61071, -61144, -61216, -61288, -61359, -61429, -61499,
-61568, -61637, -61705, -61772, -61839, -61905, -61971, -62036, -62100, -62164,
-62228, -62291, -62353, -62414, -62475, -62536, -62596, -62655, -62714, -62772,
-62829, -62886, -62942, -62998, -63053, -63108, -63162, -63215, -63268, -63320,
-63371, -63422, -63473, -63522, -63571, -63620, -63668, -63715, -63762, -63808,
-63854, -63899, -63943, -63987, -64030, -64073, -64115, -64156, -64197, -64237,
-64276, -64315, -64353, -64391, -64428, -64465, -64501, -64536, -64571, -64605,
-64638, -64671, -64703, -64735, -64766, -64796, -64826, -64855, -64884, -64912,
-64939, -64966, -64992, -65018, -65043, -65067, -65091, -65114, -65136, -65158,
-65179, -65200, -65220, -65239, -65258, -65276, -65294, -65311, -65327, -65343,
-65358, -65372, -65386, -65400, -65412, -65424, -65436, -65446, -65457, -65466,
-65475, -65483, -65491, -65498, -65505, -65511, -65516, -65520, -65524, -65528,
-65531, -65533, -65534, -65535, -65536, -65535, -65534, -65533, -65531, -65528,
-65524, -65520, -65516, -65511, -65505, -65498, -65491, -65483, -65475, -65466,
-65457, -65446, -65436, -65424, -65412, -65400, -65386, -65372, -65358, -65343,
-65327, -65311, -65294, -65276, -65258, -65239, -65220, -65200, -65179, -65158,
-65136, -65114, -65091, -65067, -65043, -65018, -64992, -64966, -64939, -64912,
-64884, -64855, -64826, -64796, -64766, -64735, -64703, -64671, -64638, -64605,
-64571, -64536, -64501, -64465, -64428, -64391, -64353, -64315, -64276, -64237,
-64197, -64156, -64115, -64073, -64030, -63987, -63943, -63899, -63854, -63808,
-63762, -63715, -63668, -63620, -63571, -63522, -63473, -63422, -63371, -63320,
-63268, -63215, -63162, -63108, -63053, -62998, -62942, -62886, -62829, -62772,
-62714, -62655, -62596, -62536, -62475, -62414, -62353, -62291, -62228, -62164,
-62100, -62036, -61971, -61905, -61839, -61772, -61705, -61637, -61568, -61499,
-61429, -61359, -61288, -61216, -61144, -61071, -60998, -60924, -60850, -60775,
-60700, -60624, -60547, -60470, -60392, -60313, -60235, -60155, -60075, -59994,
-59913, -59831, -59749, -59666, -59583, -59499, -59414, -59329, -59243, -59157,
-59070, -58983, -58895, -58807, -58718, -58628, -58538, -58447, -58356, -58264,
-58172, -58079, -57986, -57892, -57797, -57702, -57606, -57510, -57414, -57316,
-57219, -57120, -57022, -56922, -56822, -56722, -56621, -56519, -56417, -56315,
-56212, -56108, -56004, -55899, -55794, -55688, -55582, -55475, -55368, -55260,
-55152, -55043, -54933, -54823, -54713, -54602, -54491, -54379, -54266, -54153,
-54040, -53926, -53811, -53696, -53581, -53465, -53348, -53231, -53114, -52996,
-52877, -52758, -52639, -52518, -52398, -52277, -52155, -52033, -51911, -51788,
-51665, -51541, -51416, -51291, -51166, -51040, -50914, -50787, -50660, -50532,
-50403, -50275, -50146, -50016, -49886, -49755, -49624, -49492, -49360, -49228,
-49095, -48961, -48828, -48693, -48558, -48423, -48288, -48151, -48015, -47878,
-47740, -47602, -47464, -47325, -47186, -47046, -46906, -46765, -46624, -46482,
-46340, -46198, -46055, -45912, -45768, -45624, -45480, -45335, -45189, -45043,
-44897, -44750, -44603, -44456, -44308, -44160, -44011, -43862, -43712, -43562,
-43412, -43261, -43110, -42958, -42806, -42653, -42501, -42347, -42194, -42040,
-41885, -41730, -41575, -41419, -41263, -41107, -40950, -40793, -40636, -40478,
-40319, -40161, -40002, -39842, -39682, -39522, -39362, -39201, -39039, -38878,
-38716, -38553, -38390, -38227, -38064, -37900, -37736, -37571, -37406, -37241,
-37075, -36909, -36743, -36576, -36409, -36242, -36074, -35906, -35738, -35569,
-35400, -35231, -35061, -34891, -34721, -34550, -34379, -34208, -34036, -33864,
-33692, -33519, -33346, -33173, -32999, -32826, -32651, -32477, -32302, -32127,
-31952, -31776, -31600, -31424, -31247, -31070, -30893, -30715, -30538, -30360,
-30181, -30003, -29824, -29645, -29465, -29285, -29105, -28925, -28745, -28564,
-28383, -28201, -28020, -27838, -27656, -27473, -27291, -27108, -26925, -26741,
-26557, -26373, -26189, -26005, -25820, -25635, -25450, -25265, -25079, -24893,
-24707, -24521, -24334, -24147, -23960, -23773, -23586, -23398, -23210, -23022,
-22833, -22645, -22456, -22267, -22078, -21889, -21699, -21509, -21319, -21129,
-20938, -20748, -20557, -20366, -20175, -19983, -19792, -19600, -19408, -19216,
-19024, -18831, -18638, -18446, -18253, -18059, -17866, -17672, -17479, -17285,
-17091, -16897, -16702, -16508, -16313, -16118, -15923, -15728, -15533, -15338,
-15142, -14946, -14751, -14555, -14359, -14162, -13966, -13769, -13573, -13376,
-13179, -12982, -12785, -12588, -12390, -12193, -11995, -11797, -11600, -11402,
-11204, -11006, -10807, -10609, -10410, -10212, -10013, -9814, -9616, -9417,
-9218, -9019, -8819, -8620, -8421, -8221, -8022, -7822, -7623, -7423, -7223,
-7023, -6823, -6623, -6423, -6223, -6023, -5823, -5622, -5422, -5222, -5021,
-4821, -4620, -4420, -4219, -4018, -3818, -3617, -3416, -3215, -3014, -2814,
-2613, -2412, -2211, -2010, -1809, -1608, -1407, -1206, -1005, -804, -603, -402,
-201, 0, 201, 402, 603, 804, 1005, 1206, 1407, 1608, 1809, 2010, 2211, 2412,
2613, 2814, 3014, 3215, 3416, 3617, 3818, 4018, 4219, 4420, 4620, 4821, 5021,
5222, 5422, 5622, 5823, 6023, 6223, 6423, 6623, 6823, 7023, 7223, 7423, 7623,
7822, 8022, 8221, 8421, 8620, 8819, 9019, 9218, 9417, 9616, 9814, 10013, 10212,
10410, 10609, 10807, 11006, 11204, 11402, 11600, 11797, 11995, 12193, 12390,
12588, 12785, 12982, 13179, 13376, 13573, 13769, 13966, 14162, 14359, 14555,
14751, 14946, 15142, 15338, 15533, 15728, 15923, 16118, 16313, 16508, 16702,
16897, 17091, 17285, 17479, 17672, 17866, 18059, 18253, 18446, 18638, 18831,
19024, 19216, 19408, 19600, 19792, 19983, 20175, 20366, 20557, 20748, 20938,
21129, 21319, 21509, 21699, 21889, 22078, 22267, 22456, 22645, 22833, 23022,
23210, 23398, 23586, 23773, 23960, 24147, 24334, 24521, 24707, 24893, 25079,
25265, 25450, 25635, 25820, 26005, 26189, 26373, 26557, 26741, 26925, 27108,
27291, 27473, 27656, 27838, 28020, 28201, 28383, 28564, 28745, 28925, 29105,
29285, 29465, 29645, 29824, 30003, 30181, 30360, 30538, 30715, 30893, 31070,
31247, 31424, 31600, 31776, 31952, 32127, 32302, 32477, 32651, 32826, 32999,
33173, 33346, 33519, 33692, 33864, 34036, 34208, 34379, 34550, 34721, 34891,
35061, 35231, 35400, 35569, 35738, 35906, 36074, 36242, 36409, 36576, 36743,
36909, 37075, 37241, 37406, 37571, 37736, 37900, 38064, 38227, 38390, 38553,
38716, 38878, 39039, 39201, 39362, 39522, 39682, 39842, 40002, 40161, 40319,
40478, 40636, 40793, 40950, 41107, 41263, 41419, 41575, 41730, 41885, 42040,
42194, 42347, 42501, 42653, 42806, 42958, 43110, 43261, 43412, 43562, 43712,
43862, 44011, 44160, 44308, 44456, 44603, 44750, 44897, 45043, 45189, 45335,
45480, 45624, 45768, 45912, 46055, 46198, 46340, 46482, 46624, 46765, 46906,
47046, 47186, 47325, 47464, 47602, 47740, 47878, 48015, 48151, 48288, 48423,
48558, 48693, 48828, 48961, 49095, 49228, 49360, 49492, 49624, 49755, 49886,
50016, 50146, 50275, 50403, 50532, 50660, 50787, 50914, 51040, 51166, 51291,
51416, 51541, 51665, 51788, 51911, 52033, 52155, 52277, 52398, 52518, 52639,
52758, 52877, 52996, 53114, 53231, 53348, 53465, 53581, 53696, 53811, 53926,
54040, 54153, 54266, 54379, 54491, 54602, 54713, 54823, 54933, 55043, 55152,
55260, 55368, 55475, 55582, 55688, 55794, 55899, 56004, 56108, 56212, 56315,
56417, 56519, 56621, 56722, 56822, 56922, 57022, 57120, 57219, 57316, 57414,
57510, 57606, 57702, 57797, 57892, 57986, 58079, 58172, 58264, 58356, 58447,
58538, 58628, 58718, 58807, 58895, 58983, 59070, 59157, 59243, 59329, 59414,
59499, 59583, 59666, 59749, 59831, 59913, 59994, 60075, 60155, 60235, 60313,
60392, 60470, 60547, 60624, 60700, 60775, 60850, 60924, 60998, 61071, 61144,
61216, 61288, 61359, 61429, 61499, 61568, 61637, 61705, 61772, 61839, 61905,
61971, 62036, 62100, 62164, 62228, 62291, 62353, 62414, 62475, 62536, 62596,
62655, 62714, 62772, 62829, 62886, 62942, 62998, 63053, 63108, 63162, 63215,
63268, 63320, 63371, 63422, 63473, 63522, 63571, 63620, 63668, 63715, 63762,
63808, 63854, 63899, 63943, 63987, 64030, 64073, 64115, 64156, 64197, 64237,
64276, 64315, 64353, 64391, 64428, 64465, 64501, 64536, 64571, 64605, 64638,
64671, 64703, 64735, 64766, 64796, 64826, 64855, 64884, 64912, 64939, 64966,
64992, 65018, 65043, 65067, 65091, 65114, 65136, 65158, 65179, 65200, 65220,
65239, 65258, 65276, 65294, 65311, 65327, 65343, 65358, 65372, 65386, 65400,
65412, 65424, 65436, 65446, 65457, 65466, 65475, 65483, 65491, 65498, 65505,
65536, 65535, 65534, 65533, 65531, 65528, 65524, 65520, 65516, 65511, 65505,
65498, 65491, 65483, 65475, 65466, 65457, 65446, 65436, 65424, 65412, 65400,
65386, 65372, 65358, 65343, 65327, 65311, 65294, 65276, 65258, 65239, 65220,
65200, 65179, 65158, 65136, 65114, 65091, 65067, 65043, 65018, 64992, 64966,
64939, 64912, 64884, 64855, 64826, 64796, 64766, 64735, 64703, 64671, 64638,
64605, 64571, 64536, 64501, 64465, 64428, 64391, 64353, 64315, 64276, 64237,
64197, 64156, 64115, 64073, 64030, 63987, 63943, 63899, 63854, 63808, 63762,
63715, 63668, 63620, 63571, 63522, 63473, 63422, 63371, 63320, 63268, 63215,
63162, 63108, 63053, 62998, 62942, 62886, 62829, 62772, 62714, 62655, 62596,
62536, 62475, 62414, 62353, 62291, 62228, 62164, 62100, 62036, 61971, 61905,
61839, 61772, 61705, 61637, 61568, 61499, 61429, 61359, 61288, 61216, 61144,
61071, 60998, 60924, 60850, 60775, 60700, 60624, 60547, 60470, 60392, 60313,
60235, 60155, 60075, 59994, 59913, 59831, 59749, 59666, 59583, 59499, 59414,
59329, 59243, 59157, 59070, 58983, 58895, 58807, 58718, 58628, 58538, 58447,
58356, 58264, 58172, 58079, 57986, 57892, 57797, 57702, 57606, 57510, 57414,
57316, 57219, 57120, 57022, 56922, 56822, 56722, 56621, 56519, 56417, 56315,
56212, 56108, 56004, 55899, 55794, 55688, 55582, 55475, 55368, 55260, 55152,
55043, 54933, 54823, 54713, 54602, 54491, 54379, 54266, 54153, 54040, 53926,
53811, 53696, 53581, 53465, 53348, 53231, 53114, 52996, 52877, 52758, 52639,
52518, 52398, 52277, 52155, 52033, 51911, 51788, 51665, 51541, 51416, 51291,
51166, 51040, 50914, 50787, 50660, 50532, 50403, 50275, 50146, 50016, 49886,
49755, 49624, 49492, 49360, 49228, 49095, 48961, 48828, 48693, 48558, 48423,
48288, 48151, 48015, 47878, 47740, 47602, 47464, 47325, 47186, 47046, 46906,
46765, 46624, 46482, 46340, 46198, 46055, 45912, 45768, 45624, 45480, 45335,
45189, 45043, 44897, 44750, 44603, 44456, 44308, 44160, 44011, 43862, 43712,
43562, 43412, 43261, 43110, 42958, 42806, 42653, 42501, 42347, 42194, 42040,
41885, 41730, 41575, 41419, 41263, 41107, 40950, 40793, 40636, 40478, 40319,
40161, 40002, 39842, 39682, 39522, 39362, 39201, 39039, 38878, 38716, 38553,
38390, 38227, 38064, 37900, 37736, 37571, 37406, 37241, 37075, 36909, 36743,
36576, 36409, 36242, 36074, 35906, 35738, 35569, 35400, 35231, 35061, 34891,
34721, 34550, 34379, 34208, 34036, 33864, 33692, 33519, 33346, 33173, 32999,
32826, 32651, 32477, 32302, 32127, 31952, 31776, 31600, 31424, 31247, 31070,
30893, 30715, 30538, 30360, 30181, 30003, 29824, 29645, 29465, 29285, 29105,
28925, 28745, 28564, 28383, 28201, 28020, 27838, 27656, 27473, 27291, 27108,
26925, 26741, 26557, 26373, 26189, 26005, 25820, 25635, 25450, 25265, 25079,
24893, 24707, 24521, 24334, 24147, 23960, 23773, 23586, 23398, 23210, 23022,
22833, 22645, 22456, 22267, 22078, 21889, 21699, 21509, 21319, 21129, 20938,
20748, 20557, 20366, 20175, 19983, 19792, 19600, 19408, 19216, 19024, 18831,
18638, 18446, 18253, 18059, 17866, 17672, 17479, 17285, 17091, 16897, 16702,
16508, 16313, 16118, 15923, 15728, 15533, 15338, 15142, 14946, 14751, 14555,
14359, 14162, 13966, 13769, 13573, 13376, 13179, 12982, 12785, 12588, 12390,
12193, 11995, 11797, 11600, 11402, 11204, 11006, 10807, 10609, 10410, 10212,
10013, 9814, 9616, 9417, 9218, 9019, 8819, 8620, 8421, 8221, 8022, 7822, 7623,
7423, 7223, 7023, 6823, 6623, 6423, 6223, 6023, 5823, 5622, 5422, 5222, 5021,
4821, 4620, 4420, 4219, 4018, 3818, 3617, 3416, 3215, 3014, 2814, 2613, 2412,
2211, 2010, 1809, 1608, 1407, 1206, 1005, 804, 603, 402, 201, 0, -201, -402,
-603, -804, -1005, -1206, -1407, -1608, -1809, -2010, -2211, -2412, -2613, -2814,
-3014, -3215, -3416, -3617, -3818, -4018, -4219, -4420, -4620, -4821, -5021,
-5222, -5422, -5622, -5823, -6023, -6223, -6423, -6623, -6823, -7023, -7223,
-7423, -7623, -7822, -8022, -8221, -8421, -8620, -8819, -9019, -9218, -9417,
-9616, -9814, -10013, -10212, -10410, -10609, -10807, -11006, -11204, -11402,
-11600, -11797, -11995, -12193, -12390, -12588, -12785, -12982, -13179, -13376,
-13573, -13769, -13966, -14162, -14359, -14555, -14751, -14946, -15142, -15338,
-15533, -15728, -15923, -16118, -16313, -16508, -16702, -16897, -17091, -17285,
-17479, -17672, -17866, -18059, -18253, -18446, -18638, -18831, -19024, -19216,
-19408, -19600, -19792, -19983, -20175, -20366, -20557, -20748, -20938, -21129,
-21319, -21509, -21699, -21889, -22078, -22267, -22456, -22645, -22833, -23022,
-23210, -23398, -23586, -23773, -23960, -24147, -24334, -24521, -24707, -24893,
-25079, -25265, -25450, -25635, -25820, -26005, -26189, -26373, -26557, -26741,
-26925, -27108, -27291, -27473, -27656, -27838, -28020, -28201, -28383, -28564,
-28745, -28925, -29105, -29285, -29465, -29645, -29824, -30003, -30181, -30360,
-30538, -30715, -30893, -31070, -31247, -31424, -31600, -31776, -31952, -32127,
-32302, -32477, -32651, -32826, -32999, -33173, -33346, -33519, -33692, -33864,
-34036, -34208, -34379, -34550, -34721, -34891, -35061, -35231, -35400, -35569,
-35738, -35906, -36074, -36242, -36409, -36576, -36743, -36909, -37075, -37241,
-37406, -37571, -37736, -37900, -38064, -38227, -38390, -38553, -38716, -38878,
-39039, -39201, -39362, -39522, -39682, -39842, -40002, -40161, -40319, -40478,
-40636, -40793, -40950, -41107, -41263, -41419, -41575, -41730, -41885, -42040,
-42194, -42347, -42501, -42653, -42806, -42958, -43110, -43261, -43412, -43562,
-43712, -43862, -44011, -44160, -44308, -44456, -44603, -44750, -44897, -45043,
-45189, -45335, -45480, -45624, -45768, -45912, -46055, -46198, -46340, -46482,
-46624, -46765, -46906, -47046, -47186, -47325, -47464, -47602, -47740, -47878,
-48015, -48151, -48288, -48423, -48558, -48693, -48828, -48961, -49095, -49228,
-49360, -49492, -49624, -49755, -49886, -50016, -50146, -50275, -50403, -50532,
-50660, -50787, -50914, -51040, -51166, -51291, -51416, -51541, -51665, -51788,
-51911, -52033, -52155, -52277, -52398, -52518, -52639, -52758, -52877, -52996,
-53114, -53231, -53348, -53465, -53581, -53696, -53811, -53926, -54040, -54153,
-54266, -54379, -54491, -54602, -54713, -54823, -54933, -55043, -55152, -55260,
-55368, -55475, -55582, -55688, -55794, -55899, -56004, -56108, -56212, -56315,
-56417, -56519, -56621, -56722, -56822, -56922, -57022, -57120, -57219, -57316,
-57414, -57510, -57606, -57702, -57797, -57892, -57986, -58079, -58172, -58264,
-58356, -58447, -58538, -58628, -58718, -58807, -58895, -58983, -59070, -59157,
-59243, -59329, -59414, -59499, -59583, -59666, -59749, -59831, -59913, -59994,
-60075, -60155, -60235, -60313, -60392, -60470, -60547, -60624, -60700, -60775,
-60850, -60924, -60998, -61071, -61144, -61216, -61288, -61359, -61429, -61499,
-61568, -61637, -61705, -61772, -61839, -61905, -61971, -62036, -62100, -62164,
-62228, -62291, -62353, -62414, -62475, -62536, -62596, -62655, -62714, -62772,
-62829, -62886, -62942, -62998, -63053, -63108, -63162, -63215, -63268, -63320,
-63371, -63422, -63473, -63522, -63571, -63620, -63668, -63715, -63762, -63808,
-63854, -63899, -63943, -63987, -64030, -64073, -64115, -64156, -64197, -64237,
-64276, -64315, -64353, -64391, -64428, -64465, -64501, -64536, -64571, -64605,
-64638, -64671, -64703, -64735, -64766, -64796, -64826, -64855, -64884, -64912,
-64939, -64966, -64992, -65018, -65043, -65067, -65091, -65114, -65136, -65158,
-65179, -65200, -65220, -65239, -65258, -65276, -65294, -65311, -65327, -65343,
-65358, -65372, -65386, -65400, -65412, -65424, -65436, -65446, -65457, -65466,
-65475, -65483, -65491, -65498, -65505, -65511, -65516, -65520, -65524, -65528,
-65531, -65533, -65534, -65535, -65536, -65535, -65534, -65533, -65531, -65528,
-65524, -65520, -65516, -65511, -65505, -65498, -65491, -65483, -65475, -65466,
-65457, -65446, -65436, -65424, -65412, -65400, -65386, -65372, -65358, -65343,
-65327, -65311, -65294, -65276, -65258, -65239, -65220, -65200, -65179, -65158,
-65136, -65114, -65091, -65067, -65043, -65018, -64992, -64966, -64939, -64912,
-64884, -64855, -64826, -64796, -64766, -64735, -64703, -64671, -64638, -64605,
-64571, -64536, -64501, -64465, -64428, -64391, -64353, -64315, -64276, -64237,
-64197, -64156, -64115, -64073, -64030, -63987, -63943, -63899, -63854, -63808,
-63762, -63715, -63668, -63620, -63571, -63522, -63473, -63422, -63371, -63320,
-63268, -63215, -63162, -63108, -63053, -62998, -62942, -62886, -62829, -62772,
-62714, -62655, -62596, -62536, -62475, -62414, -62353, -62291, -62228, -62164,
-62100, -62036, -61971, -61905, -61839, -61772, -61705, -61637, -61568, -61499,
-61429, -61359, -61288, -61216, -61144, -61071, -60998, -60924, -60850, -60775,
-60700, -60624, -60547, -60470, -60392, -60313, -60235, -60155, -60075, -59994,
-59913, -59831, -59749, -59666, -59583, -59499, -59414, -59329, -59243, -59157,
-59070, -58983, -58895, -58807, -58718, -58628, -58538, -58447, -58356, -58264,
-58172, -58079, -57986, -57892, -57797, -57702, -57606, -57510, -57414, -57316,
-57219, -57120, -57022, -56922, -56822, -56722, -56621, -56519, -56417, -56315,
-56212, -56108, -56004, -55899, -55794, -55688, -55582, -55475, -55368, -55260,
-55152, -55043, -54933, -54823, -54713, -54602, -54491, -54379, -54266, -54153,
-54040, -53926, -53811, -53696, -53581, -53465, -53348, -53231, -53114, -52996,
-52877, -52758, -52639, -52518, -52398, -52277, -52155, -52033, -51911, -51788,
-51665, -51541, -51416, -51291, -51166, -51040, -50914, -50787, -50660, -50532,
-50403, -50275, -50146, -50016, -49886, -49755, -49624, -49492, -49360, -49228,
-49095, -48961, -48828, -48693, -48558, -48423, -48288, -48151, -48015, -47878,
-47740, -47602, -47464, -47325, -47186, -47046, -46906, -46765, -46624, -46482,
-46340, -46198, -46055, -45912, -45768, -45624, -45480, -45335, -45189, -45043,
-44897, -44750, -44603, -44456, -44308, -44160, -44011, -43862, -43712, -43562,
-43412, -43261, -43110, -42958, -42806, -42653, -42501, -42347, -42194, -42040,
-41885, -41730, -41575, -41419, -41263, -41107, -40950, -40793, -40636, -40478,
-40319, -40161, -40002, -39842, -39682, -39522, -39362, -39201, -39039, -38878,
-38716, -38553, -38390, -38227, -38064, -37900, -37736, -37571, -37406, -37241,
-37075, -36909, -36743, -36576, -36409, -36242, -36074, -35906, -35738, -35569,
-35400, -35231, -35061, -34891, -34721, -34550, -34379, -34208, -34036, -33864,
-33692, -33519, -33346, -33173, -32999, -32826, -32651, -32477, -32302, -32127,
-31952, -31776, -31600, -31424, -31247, -31070, -30893, -30715, -30538, -30360,
-30181, -30003, -29824, -29645, -29465, -29285, -29105, -28925, -28745, -28564,
-28383, -28201, -28020, -27838, -27656, -27473, -27291, -27108, -26925, -26741,
-26557, -26373, -26189, -26005, -25820, -25635, -25450, -25265, -25079, -24893,
-24707, -24521, -24334, -24147, -23960, -23773, -23586, -23398, -23210, -23022,
-22833, -22645, -22456, -22267, -22078, -21889, -21699, -21509, -21319, -21129,
-20938, -20748, -20557, -20366, -20175, -19983, -19792, -19600, -19408, -19216,
-19024, -18831, -18638, -18446, -18253, -18059, -17866, -17672, -17479, -17285,
-17091, -16897, -16702, -16508, -16313, -16118, -15923, -15728, -15533, -15338,
-15142, -14946, -14751, -14555, -14359, -14162, -13966, -13769, -13573, -13376,
-13179, -12982, -12785, -12588, -12390, -12193, -11995, -11797, -11600, -11402,
-11204, -11006, -10807, -10609, -10410, -10212, -10013, -9814, -9616, -9417,
-9218, -9019, -8819, -8620, -8421, -8221, -8022, -7822, -7623, -7423, -7223,
-7023, -6823, -6623, -6423, -6223, -6023, -5823, -5622, -5422, -5222, -5021,
-4821, -4620, -4420, -4219, -4018, -3818, -3617, -3416, -3215, -3014, -2814,
-2613, -2412, -2211, -2010, -1809, -1608, -1407, -1206, -1005, -804, -603, -402,
-201, 0, 201, 402, 603, 804, 1005, 1206, 1407, 1608, 1809, 2010, 2211, 2412,
2613, 2814, 3014, 3215, 3416, 3617, 3818, 4018, 4219, 4420, 4620, 4821, 5021,
5222, 5422, 5622, 5823, 6023, 6223, 6423, 6623, 6823, 7023, 7223, 7423, 7623,
7822, 8022, 8221, 8421, 8620, 8819, 9019, 9218, 9417, 9616, 9814, 10013, 10212,
10410, 10609, 10807, 11006, 11204, 11402, 11600, 11797, 11995, 12193, 12390,
12588, 12785, 12982, 13179, 13376, 13573, 13769, 13966, 14162, 14359, 14555,
14751, 14946, 15142, 15338, 15533, 15728, 15923, 16118, 16313, 16508, 16702,
16897, 17091, 17285, 17479, 17672, 17866, 18059, 18253, 18446, 18638, 18831,
19024, 19216, 19408, 19600, 19792, 19983, 20175, 20366, 20557, 20748, 20938,
21129, 21319, 21509, 21699, 21889, 22078, 22267, 22456, 22645, 22833, 23022,
23210, 23398, 23586, 23773, 23960, 24147, 24334, 24521, 24707, 24893, 25079,
25265, 25450, 25635, 25820, 26005, 26189, 26373, 26557, 26741, 26925, 27108,
27291, 27473, 27656, 27838, 28020, 28201, 28383, 28564, 28745, 28925, 29105,
29285, 29465, 29645, 29824, 30003, 30181, 30360, 30538, 30715, 30893, 31070,
31247, 31424, 31600, 31776, 31952, 32127, 32302, 32477, 32651, 32826, 32999,
33173, 33346, 33519, 33692, 33864, 34036, 34208, 34379, 34550, 34721, 34891,
35061, 35231, 35400, 35569, 35738, 35906, 36074, 36242, 36409, 36576, 36743,
36909, 37075, 37241, 37406, 37571, 37736, 37900, 38064, 38227, 38390, 38553,
38716, 38878, 39039, 39201, 39362, 39522, 39682, 39842, 40002, 40161, 40319,
40478, 40636, 40793, 40950, 41107, 41263, 41419, 41575, 41730, 41885, 42040,
42194, 42347, 42501, 42653, 42806, 42958, 43110, 43261, 43412, 43562, 43712,
43862, 44011, 44160, 44308, 44456, 44603, 44750, 44897, 45043, 45189, 45335,
45480, 45624, 45768, 45912, 46055, 46198, 46340, 46482, 46624, 46765, 46906,
47046, 47186, 47325, 47464, 47602, 47740, 47878, 48015, 48151, 48288, 48423,
48558, 48693, 48828, 48961, 49095, 49228, 49360, 49492, 49624, 49755, 49886,
50016, 50146, 50275, 50403, 50532, 50660, 50787, 50914, 51040, 51166, 51291,
51416, 51541, 51665, 51788, 51911, 52033, 52155, 52277, 52398, 52518, 52639,
52758, 52877, 52996, 53114, 53231, 53348, 53465, 53581, 53696, 53811, 53926,
54040, 54153, 54266, 54379, 54491, 54602, 54713, 54823, 54933, 55043, 55152,
55260, 55368, 55475, 55582, 55688, 55794, 55899, 56004, 56108, 56212, 56315,
56417, 56519, 56621, 56722, 56822, 56922, 57022, 57120, 57219, 57316, 57414,
57510, 57606, 57702, 57797, 57892, 57986, 58079, 58172, 58264, 58356, 58447,
58538, 58628, 58718, 58807, 58895, 58983, 59070, 59157, 59243, 59329, 59414,
59499, 59583, 59666, 59749, 59831, 59913, 59994, 60075, 60155, 60235, 60313,
60392, 60470, 60547, 60624, 60700, 60775, 60850, 60924, 60998, 61071, 61144,
61216, 61288, 61359, 61429, 61499, 61568, 61637, 61705, 61772, 61839, 61905,
61971, 62036, 62100, 62164, 62228, 62291, 62353, 62414, 62475, 62536, 62596,
62655, 62714, 62772, 62829, 62886, 62942, 62998, 63053, 63108, 63162, 63215,
63268, 63320, 63371, 63422, 63473, 63522, 63571, 63620, 63668, 63715, 63762,
63808, 63854, 63899, 63943, 63987, 64030, 64073, 64115, 64156, 64197, 64237,
64276, 64315, 64353, 64391, 64428, 64465, 64501, 64536, 64571, 64605, 64638,
64671, 64703, 64735, 64766, 64796, 64826, 64855, 64884, 64912, 64939, 64966,
64992, 65018, 65043, 65067, 65091, 65114, 65136, 65158, 65179, 65200, 65220,
65239, 65258, 65276, 65294, 65311, 65327, 65343, 65358, 65372, 65386, 65400,
65412, 65424, 65436, 65446, 65457, 65466, 65475, 65483, 65491, 65498, 65505,
65511, 65516, 65520, 65524, 65528, 65531, 65533, 65534, 65535
};

View File

@@ -110,7 +110,7 @@ static void init_fire (void)
for (x = 0; x < SCRW; x ++)
{
pixel = fire_buffer [((y + 1) * SCRW) + x];
if (pixel > 0)
{

View File

@@ -67,7 +67,7 @@ void DrawWater(void)
{
// tslast=tscurrent;
// tscurrent=time(NULL);
/*
if (NetPlayNoMore == 1)
{
@@ -95,23 +95,23 @@ void DrawWater(void)
y=rand()%(SCRH-2)+1;
Height[Hpage][y*SCRW+x]=rand()%(pheight<<2);
}
/* the surfer */
if(mode&1)
{
int x,y;
x = (SCRW/2)
+ ((((FSin( (xang* 65) >>8) >>8)
* (FSin( (xang*349) >>8) >>8))
* (FSin( (xang*349) >>8) >>8))
* ((SCRW-8)/2)) >> 16);
y = (SCRH/2)
+ ((((FSin( (yang*377) >>8) >>8)
*(FSin( (yang* 84) >>8) >>8))
* ((SCRH-8)/2)) >> 16);
xang += 13;
yang += 12;
if(mode & 0x4000)
{
offset = (oy+y)/2*SCRW + (ox+x)/2;
@@ -136,10 +136,10 @@ void DrawWater(void)
}
ox = x;
oy = y;
oy = y;
}
if(mode&4)
{
int x,y;
@@ -150,14 +150,14 @@ void DrawWater(void)
if(mode & 0x4000)
// HeightBlob(-1, -1, radius/2, pheight, Hpage);
else
*/
*/
x=rand()%(SCRW-2)+1;
y=rand()%(SCRH-2)+1;
SineBlob(x, y, radius, -pheight*6, Hpage);
}
}
}
CalcWater(Height[Hpage^1], Height[Hpage], density);
Hpage ^= 1; /* flip flop */
Hpage ^= 1; /* flip flop */
}
@@ -169,13 +169,13 @@ void DrawWaterNoLight(int *ptr)
int x,y;
int c;
int p;
int offset = SCRW+1;
if(ptr == NULL)
{
return;
}
for(y=((SCRH-1)*SCRW); offset < y; offset+=2)
{
for(x = offset+SCRW-2;offset<x;offset++)
@@ -237,10 +237,10 @@ void DrawWaterNoLight(int *ptr)
vscr[offset]=c;
}
}
memcpy( vidbuffer,vscr,SCRW*SCRH);
// frames++;
}
#endif
@@ -250,7 +250,7 @@ void DrawWaterWithLight(int *ptr,int light)
int x,y;
int c;
int p;
int offset = SCRW+1;
if(ptr == NULL)
{
@@ -304,14 +304,14 @@ void DrawWaterWithLight(int *ptr,int light)
}
*/
c=vidbuffer[p];
c-=(dx>>light);
(c<1) ? c=1 : (c > 31) ? c=31 : 0;
vscr[offset]=c;
}
}
memcpy( vidbuffer,vscr,SCRW*SCRH);
memcpy( vidbuffer,vscr,SCRW*SCRH);
// memcpy( VGLDisplay->Bitmap,vscr,SCRW*SCRH);
// frames++;
@@ -323,7 +323,7 @@ void CalcWater(int *nptr,int *optr,int density)
int newh;
int count = SCRW+1;
int x,y;
for(y = (SCRH-1) * SCRW;count<y;count+=2)
{
for(x = count+SCRW-2;count<x;count++)
@@ -338,11 +338,11 @@ void CalcWater(int *nptr,int *optr,int density)
+optr[count+SCRW+1]
) >> 2)
- nptr[count];
nptr[count] = newh - (newh >> density);
}
}
}
void SineBlob(int x, int y, int radius, int height, int page)

View File

@@ -32,39 +32,39 @@ SECTION .bss
NEWSYM wramdataa, resb 65536
NEWSYM ram7fa, resb 65536
NEWSYM Inbetweendat, resd 4
NEWSYM opcjmptab, resd 256
NEWSYM Inbetweendat, resd 4
NEWSYM opcjmptab, resd 256
NEWSYM Bank0datr8 , resd 256
NEWSYM Bank0datr16, resd 256
NEWSYM Bank0datw8 , resd 256
NEWSYM Bank0datw16, resd 256
NEWSYM Bank0datr8 , resd 256
NEWSYM Bank0datr16, resd 256
NEWSYM Bank0datw8 , resd 256
NEWSYM Bank0datw16, resd 256
NEWSYM tableA, resd 256
NEWSYM tableB, resd 256
NEWSYM tableC, resd 256
NEWSYM tableD, resd 256
NEWSYM tableE, resd 256
NEWSYM tableF, resd 256
NEWSYM tableG, resd 256
NEWSYM tableA, resd 256
NEWSYM tableB, resd 256
NEWSYM tableC, resd 256
NEWSYM tableD, resd 256
NEWSYM tableE, resd 256
NEWSYM tableF, resd 256
NEWSYM tableG, resd 256
NEWSYM tableH, resd 256
NEWSYM tableAb, resd 256
NEWSYM tableBb, resd 256
NEWSYM tableCb, resd 256
NEWSYM tableDb, resd 256
NEWSYM tableEb, resd 256
NEWSYM tableFb, resd 256
NEWSYM tableGb, resd 256
NEWSYM tableHb, resd 256
NEWSYM tableAb, resd 256
NEWSYM tableBb, resd 256
NEWSYM tableCb, resd 256
NEWSYM tableDb, resd 256
NEWSYM tableEb, resd 256
NEWSYM tableFb, resd 256
NEWSYM tableGb, resd 256
NEWSYM tableHb, resd 256
NEWSYM tableAc, resd 256
NEWSYM tableBc, resd 256
NEWSYM tableCc, resd 256
NEWSYM tableDc, resd 256
NEWSYM tableEc, resd 256
NEWSYM tableFc, resd 256
NEWSYM tableGc, resd 256
NEWSYM tableAc, resd 256
NEWSYM tableBc, resd 256
NEWSYM tableCc, resd 256
NEWSYM tableDc, resd 256
NEWSYM tableEc, resd 256
NEWSYM tableFc, resd 256
NEWSYM tableGc, resd 256
NEWSYM tableHc, resd 256
NEWSYM SA1tableA, resd 256
@@ -85,9 +85,9 @@ NEWSYM memtabler8, resd 256
NEWSYM memtablew8, resd 256
NEWSYM memtabler16, resd 256
NEWSYM memtablew16, resd 256
NEWSYM vidmemch2, resb 4096
NEWSYM vidmemch4, resb 4096
NEWSYM vidmemch8, resb 4096
NEWSYM vidmemch2, resb 4096
NEWSYM vidmemch4, resb 4096
NEWSYM vidmemch8, resb 4096
NEWSYM snesmmap, resd 256
NEWSYM snesmap2, resd 256
NEWSYM cachebg1, resb 64
@@ -100,8 +100,8 @@ NEWSYM sprleftpr1, resb 256
NEWSYM sprleftpr2, resb 256
NEWSYM sprleftpr3, resb 256
NEWSYM sprpriodata, resb 288
NEWSYM sprprtabc, resb 64
NEWSYM sprprtabu, resb 64
NEWSYM sprprtabc, resb 64
NEWSYM sprprtabu, resb 64
NEWSYM prevpal, resw 256 ; previous palette buffer
NEWSYM winbgdata, resb 288 ; window buffer for backgrounds
NEWSYM winspdata, resb 288 ; window buffer for sprites
@@ -127,15 +127,15 @@ NEWSYM fxbit01, resd 256
NEWSYM fxbit23, resd 256
NEWSYM fxbit45, resd 256
NEWSYM fxbit67, resd 256
NEWSYM PLOTJmpa, resd 64
NEWSYM PLOTJmpb, resd 64
NEWSYM PLOTJmpa, resd 64
NEWSYM PLOTJmpb, resd 64
NEWSYM pal16b, resd 256
NEWSYM pal16bcl, resd 256
NEWSYM pal16bclha, resd 256
NEWSYM pal16bxcl, resd 256
NEWSYM xtravbuf, resb 576
NEWSYM BG1SXl, resw 256
NEWSYM xtravbuf, resb 576
NEWSYM BG1SXl, resw 256
NEWSYM BG2SXl, resw 256
NEWSYM BG3SXl, resw 256
NEWSYM BG4SXl, resw 256
@@ -143,9 +143,9 @@ NEWSYM BG1SYl, resw 256
NEWSYM BG2SYl, resw 256
NEWSYM BG3SYl, resw 256
NEWSYM BG4SYl, resw 256
NEWSYM BGMA, resb 256
NEWSYM BGFB, resb 256
NEWSYM BG3PRI, resb 256
NEWSYM BGMA, resb 256
NEWSYM BGFB, resb 256
NEWSYM BG3PRI, resb 256
NEWSYM BGOPT1, resw 256
NEWSYM BGOPT2, resw 256
NEWSYM BGOPT3, resw 256
@@ -162,25 +162,25 @@ NEWSYM BGPT1Y, resw 256
NEWSYM BGPT2Y, resw 256
NEWSYM BGPT3Y, resw 256
NEWSYM BGPT4Y, resw 256
NEWSYM BGMS1, resw 1024
NEWSYM prdata, resb 256
NEWSYM prdatb, resb 256
NEWSYM prdatc, resb 256
NEWSYM ngpalcon2b, resd 20h
NEWSYM ngpalcon4b, resd 20h
NEWSYM ngpalcon8b, resd 20h
NEWSYM tltype2b, resb 4096
NEWSYM tltype4b, resb 2048
NEWSYM tltype8b, resb 1024
NEWSYM BGMS1, resw 1024
NEWSYM prdata, resb 256
NEWSYM prdatb, resb 256
NEWSYM prdatc, resb 256
NEWSYM ngpalcon2b, resd 20h
NEWSYM ngpalcon4b, resd 20h
NEWSYM ngpalcon8b, resd 20h
NEWSYM tltype2b, resb 4096
NEWSYM tltype4b, resb 2048
NEWSYM tltype8b, resb 1024
NEWSYM ngptrdat, resd 1024
NEWSYM ngceax, resd 1024
NEWSYM ngcedi, resd 1024
NEWSYM bgtxad, resw 1024
NEWSYM ngptrdat, resd 1024
NEWSYM ngceax, resd 1024
NEWSYM ngcedi, resd 1024
NEWSYM bgtxad, resw 1024
NEWSYM sprtbng, resd 256
NEWSYM sprtlng, resb 256
NEWSYM mosszng, resb 256
NEWSYM mosenng, resb 256
NEWSYM sprtlng, resb 256
NEWSYM mosszng, resb 256
NEWSYM mosenng, resb 256
SECTION .data
ALIGN32
@@ -194,47 +194,47 @@ SECTION .bss
NEWSYM mode7ab, resd 256
NEWSYM mode7cd, resd 256
NEWSYM mode7xy, resd 256
NEWSYM mode7st, resb 256
NEWSYM mode7st, resb 256
NEWSYM t16x161, resb 256
NEWSYM t16x162, resb 256
NEWSYM t16x163, resb 256
NEWSYM t16x164, resb 256
NEWSYM t16x161, resb 256
NEWSYM t16x162, resb 256
NEWSYM t16x163, resb 256
NEWSYM t16x164, resb 256
NEWSYM intrlng, resb 256
NEWSYM mode7hr, resb 256
NEWSYM intrlng, resb 256
NEWSYM mode7hr, resb 256
NEWSYM scadsng, resb 256
NEWSYM scadtng, resb 256
NEWSYM scadsng, resb 256
NEWSYM scadtng, resb 256
NEWSYM scbcong, resw 256
NEWSYM cpalval, resd 256
NEWSYM cgfxmod, resb 256
NEWSYM cgfxmod, resb 256
NEWSYM winboundary, resd 256
NEWSYM winbg1enval, resb 256
NEWSYM winbg2enval, resb 256
NEWSYM winbg3enval, resb 256
NEWSYM winbg4enval, resb 256
NEWSYM winbgobjenval, resb 256
NEWSYM winbgbackenval, resb 256
NEWSYM winbg1enval, resb 256
NEWSYM winbg2enval, resb 256
NEWSYM winbg3enval, resb 256
NEWSYM winbg4enval, resb 256
NEWSYM winbgobjenval, resb 256
NEWSYM winbgbackenval, resb 256
NEWSYM winlogicaval, resw 256
NEWSYM winbg1envals, resb 256
NEWSYM winbg2envals, resb 256
NEWSYM winbg3envals, resb 256
NEWSYM winbg4envals, resb 256
NEWSYM winbgobjenvals, resb 256
NEWSYM winbgbackenvals, resb 256
NEWSYM winbg1envalm, resb 256
NEWSYM winbg2envalm, resb 256
NEWSYM winbg3envalm, resb 256
NEWSYM winbg4envalm, resb 256
NEWSYM winbgobjenvalm, resb 256
NEWSYM winbgbackenvalm, resb 256
NEWSYM winbg1envals, resb 256
NEWSYM winbg2envals, resb 256
NEWSYM winbg3envals, resb 256
NEWSYM winbg4envals, resb 256
NEWSYM winbgobjenvals, resb 256
NEWSYM winbgbackenvals, resb 256
NEWSYM winbg1envalm, resb 256
NEWSYM winbg2envalm, resb 256
NEWSYM winbg3envalm, resb 256
NEWSYM winbg4envalm, resb 256
NEWSYM winbgobjenvalm, resb 256
NEWSYM winbgbackenvalm, resb 256
NEWSYM FillSubScr, resb 256
NEWSYM FillSubScr, resb 256
NEWSYM objclineptr, resd 256 ; l1,r1,l2,r2,en,log,ptr
@@ -249,11 +249,11 @@ SECTION .bss
NEWSYM SpecialLine, resb 256
NEWSYM bgallchange, resb 256
NEWSYM bg1change, resb 256
NEWSYM bg2change, resb 256
NEWSYM bg3change, resb 256
NEWSYM bg4change, resb 256
NEWSYM bgwinchange, resb 256
NEWSYM bg1change, resb 256
NEWSYM bg2change, resb 256
NEWSYM bg3change, resb 256
NEWSYM bg4change, resb 256
NEWSYM bgwinchange, resb 256
NEWSYM PrevPicture, resb 64*56*2

View File

@@ -33,7 +33,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include "fcntl.h"
#include <string.h>
#include <errno.h>
#include "config.h"
// General time.h checking
@@ -65,9 +65,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#endif
// more standard stuff
#include <stdlib.h>
#include <stdio.h>
#include <stdio.h>
#include <stdarg.h>
// unistd.h stuff
@@ -92,7 +92,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
however it's a static value that we can just define */
#define getpagesize() 4096
#endif
#ifdef __LINUX__
#include "SDL.h"
#include <limits.h>

View File

@@ -820,16 +820,16 @@ GUISaveKeys:
GUIKeyCheckbox PauseLoad,'P'
GUIKeyCheckbox PauseRewind,'R'
ret
GUISpeedKeys:
cmp dh,'a' ; Setup
jb .nocap
cmp dh,'z'
ja .nocap
sub dh,'z'-'Z'
.nocap
.nocap
GUIKeyCheckbox FastFwdToggle,'T' ; Checkbox
cmp dh,'A' ; Framerate Checkboxes
jne .noautofr
mov byte[FPSOn],0
@@ -886,7 +886,7 @@ GUIGUIOptnsKeys:
GUIKeyCheckbox GUIClick,'C'
GUIKeyCheckbox JoyPad1Move,'U'
GUIKeyCheckbox GUIEnableTransp,'T'
cmp dh,'F'
jne .guioptn8
xor byte[FilteredGUI],1
@@ -1527,7 +1527,7 @@ GUIMovieKeys:
ja .nocap
sub dh,'z'-'Z'
.nocap
GUIKeyButtonHole CMovieExt,'v','0' ; Select Radio Buttons
GUIKeyButtonHole CMovieExt,'1','1'
GUIKeyButtonHole CMovieExt,'2','2'
@@ -1582,7 +1582,7 @@ GUIComboKeys:
ret
GUICheatKeys:
cmp dword[GUIcurrentcheatwin],1
cmp dword[GUIcurrentcheatwin],1
je near .textboxa
cmp dword[GUIcurrentcheatwin],2
je near .textboxb
@@ -1763,7 +1763,7 @@ GUICheatKeys:
;Enter Code Input Box
.textboxa
.textboxa
cmp byte[GUICheatPosA],0
je near .nobacksp
cmp dh,9
@@ -2039,7 +2039,7 @@ GUICheatSearchKeys:
CompareKeyMacro 'H',CheatSrcByteBase,1
CompareKeyMacro 'E',CheatSrcSearchType,0
CompareKeyMacro 'C',CheatSrcSearchType,1
cmp dh,13 ; Start Button
je .start
cmp dh,'S'
@@ -2049,7 +2049,7 @@ GUICheatSearchKeys:
ret
.notstart
ret
.search ; Shortcuts for Select Comparison
cmp byte[CheatSrcSearchType],1
je .compare
@@ -2082,7 +2082,7 @@ GUICheatSearchKeys:
mov byte[CheatCompareValue],3
.notnotequalthan
%ifdef __LINUX__ ; Select with Arrow Keys
%ifdef __LINUX__ ; Select with Arrow Keys
cmp al,90
je .yesmoveup
cmp dword[numlockptr],1
@@ -2113,8 +2113,8 @@ GUICheatSearchKeys:
cmp byte[CheatCompareValue],3
je .nomovedown
inc byte[CheatCompareValue]
.nomovedown ; Restart/View/Search Buttons
cmp dh,'R'
jne .notrestart
@@ -2135,7 +2135,7 @@ GUICheatSearchKeys:
call CheatCodeSearchProcess
.nosearchprocess
ret
.view ; View
cmp dword[NumCheatSrc],0 ; Return Hotkey
jne .nozero
@@ -2349,7 +2349,7 @@ GUICheatSearchKeys:
; Allows you to use the arrow keys to select a state number, and Enter to pick
GUIStateSelKeys:
cmp al,13
cmp al,13
jne .noenter
xor eax,eax
mov al,[GUIwinptr]
@@ -2519,7 +2519,7 @@ GUIResetKeys:
mov [GUIcmenupos],al
.notnoreset
ret
; Allows you to select boxes with the arrow keys, Enter to choose
GUIStateKeys:
%ifdef __LINUX__

View File

@@ -2200,13 +2200,13 @@ DisplayGUIInputClick:
.skipscrol
;x,y,x2,y2,currentwin,vpos,#entries,starty,y/entry,cpos,winval,win#,dclicktick#
GUIWinControl 5,36,107,34+5*8,GUIBlankVar,GUIcurrentinputviewloc,GUINumValue,35,8,GUIcurrentinputcursloc,4,3,0
GUIPHoldbutton 125,34,155,45,14 ; Buttons
%ifdef __MSDOS__
GUIPHoldbutton 125,50,185,61,15
%endif
GUIPHoldbutton 125,66,185,77,40
mov edi,pl1selk
mov dword[keycontrolval],pl1contrl
cmp byte[cplayernum],1
@@ -2815,7 +2815,7 @@ DisplayGUIOptnsClick:
GUIClickCButton 12,63,byte[GUIClick]
GUIClickCButton 12,73,byte[JoyPad1Move]
GUIClickCButton 124,23,byte[GUIEnableTransp]
GUIClickCButtonI 124,33,byte[FilteredGUI]
GUIClickCButtonI 124,33,byte[FilteredGUI]
GUIClickCButton6 124,43,byte[GUIEffect],1
GUIClickCButton6 124,53,byte[GUIEffect],2
GUIClickCButton6 124,63,byte[GUIEffect],3
@@ -3115,7 +3115,7 @@ DisplayGUICheatSearchClick:
je near .view
cmp byte[CheatWinMode],3
je near .add
GUIPHoldbutton 95,140,140,152,50 ; Main Menu
GUIPButtonHole 11,28,byte[CheatSrcByteSize],0
GUIPButtonHole 11,38,byte[CheatSrcByteSize],1
@@ -3126,18 +3126,18 @@ DisplayGUICheatSearchClick:
GUIPButtonHole 11,113,byte[CheatSrcSearchType],0
GUIPButtonHole 11,123,byte[CheatSrcSearchType],1
ret
.incheatmode ; Exact Value
GUIPHoldbutton 30,140,80,152,51
cmp byte[CheatSearchStatus],1
jne near .cheatsearching
jmp .nosearch
.cheatsearching ; Return and Re-Search
cmp byte[CheatSrcSearchType],1
je near .cheatsearchingcomp
jmp .searched
.cheatsearchingcomp ; Select Comparison
GUIPButtonHole 11,33,byte[CheatCompareValue],0
GUIPButtonHole 11,43,byte[CheatCompareValue],1
@@ -3162,11 +3162,11 @@ DisplayGUICheatSearchClick:
.skipscrol
; x,y,x2,y2,currentwin,vpos,#entries,starty,y/entry,cpos,winval,win#,dclicktick#
GUIWinControl 5,23,171,21+12*7,GUIBlankVar,GUIcurrentchtsrcviewloc,NumCheatSrc,22,7,GUIcurrentchtsrccursloc,5,13,30
GUIPHoldbutton 70,140,130,152,54 ; Return/Add Buttons
GUIPHoldbutton 140,140,180,152,55
ret
; DrawSlideBarWin 13,173,28,[GUIcurrentchtsrcviewloc],[NumCheatSrc],12,73,GUICSStA
; DrawGUIWinBox 13,5,20,171,108,167

View File

@@ -85,7 +85,7 @@ NEWSYM autoloadstate, db 0 ; auto load state slot number
NEWSYM autoloadmovie, db 0
NEWSYM ZMVRawDump, db 0
NEWSYM EndMessage
NEWSYM EndMessage
db ' ',13,10,0
SECTION .text
@@ -254,9 +254,9 @@ NEWSYM init
jne .norawdump
call MovieDumpRaw
jmp .aftermovieplay
.norawdump
.norawdump
call MoviePlay
.aftermovieplay
.aftermovieplay
popad
.noautloadmovie

View File

@@ -1062,7 +1062,7 @@ void loadROM()
{
bool isCompressed = false, isZip = false;
EMUPause = false;
EMUPause = false;
curromspace = 0;
maxromspace = 4194304;

View File

@@ -24,7 +24,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
typedef NCompression::NArithmetic::CRangeDecoder CMyRangeDecoder;
template <int aNumMoveBits> class CMyBitDecoder:
template <int aNumMoveBits> class CMyBitDecoder:
public NCompression::NArithmetic::CBitDecoder<aNumMoveBits> {};
#endif

View File

@@ -67,7 +67,7 @@ namespace CRC32lib
0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d };
//CRC32 for char arrays
unsigned int CRC32(const unsigned char *array, size_t size, register unsigned int crc32)
{

View File

@@ -27,7 +27,7 @@ HRESULT ISequentialInStream_Array::Read(void *aData, UINT32 aSize, UINT32 *aProc
if (aSize > size)
{
aSize = size;
}
}
*aProcessedSize = aSize;
memcpy(aData, data, aSize);
@@ -57,7 +57,7 @@ HRESULT ISequentialInStream_String::Read(void *aData, UINT32 aSize, UINT32 *aPro
if (aSize > data.size())
{
aSize = data.size();
}
}
*aProcessedSize = aSize;
memcpy(aData, data.c_str(), aSize);

View File

@@ -40,7 +40,7 @@ class ISequentialInStream_Array : public ISequentialInStream
unsigned int size;
public:
ISequentialInStream_Array(const char *Adata, unsigned Asize) : data(Adata), size(Asize) { }
HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize);
};
@@ -49,7 +49,7 @@ class ISequentialInStream_String : public ISequentialInStream
std::string& data;
public:
ISequentialInStream_String(std::string& Adata) : data(Adata) { }
HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize);
};
@@ -58,7 +58,7 @@ class ISequentialInStream_Istream : public ISequentialInStream
std::istream& data;
public:
ISequentialInStream_Istream(std::istream& Adata) : data(Adata) { }
HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize);
};
@@ -73,7 +73,7 @@ public:
virtual HRESULT Write(const void *, UINT32, UINT32 *) = 0;
};
class ISequentialOutStream_Array : public ISequentialOutStream
{
char *data;
@@ -120,7 +120,7 @@ public:
class ISequentialStreamCRC32
{
protected:
protected:
unsigned int crc32;
public:
ISequentialStreamCRC32() : crc32(0) {}
@@ -130,17 +130,17 @@ public:
class ISequentialInStreamCRC32_Array : public ISequentialInStream_Array, public ISequentialStreamCRC32
{
public:
public:
ISequentialInStreamCRC32_Array(const char *Adata, unsigned Asize) : ISequentialInStream_Array(Adata, Asize) { }
HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize);
};
class ISequentialInStreamCRC32_String : public ISequentialInStream_String, public ISequentialStreamCRC32
{
public:
public:
ISequentialInStreamCRC32_String(std::string& Adata) : ISequentialInStream_String(Adata) { }
HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize);
};
@@ -148,16 +148,16 @@ class ISequentialInStreamCRC32_Istream : public ISequentialInStream_Istream, pub
{
public:
ISequentialInStreamCRC32_Istream(std::istream& Adata) : ISequentialInStream_Istream(Adata) { }
HRESULT Read(void *aData, UINT32 aSize, UINT32 *aProcessedSize);
};
class ISequentialOutStreamCRC32_Array : public ISequentialOutStream_Array, public ISequentialStreamCRC32
{
public:
ISequentialOutStreamCRC32_Array(char *Adata, unsigned Asize) : ISequentialOutStream_Array(Adata, Asize) { }
HRESULT Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize);
};
@@ -165,7 +165,7 @@ class ISequentialOutStreamCRC32_String : public ISequentialOutStream_String, pub
{
public:
ISequentialOutStreamCRC32_String(std::string& Adata) : ISequentialOutStream_String(Adata) { }
HRESULT Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize);
};
@@ -174,7 +174,7 @@ class ISequentialOutStreamCRC32_Ostream : public ISequentialOutStream_Ostream, p
{
public:
ISequentialOutStreamCRC32_Ostream(std::ostream& Adata) : ISequentialOutStream_Ostream(Adata) { }
HRESULT Write(const void *aData, UINT32 aSize, UINT32 *aProcessedSize);
};

View File

@@ -39,7 +39,7 @@ class CInByte
public:
CInByte(UINT32 aBufferSize = 0x100000);
~CInByte();
void Init(ISequentialInStream *aStream);
bool ReadByte(BYTE &aByte)

View File

@@ -28,80 +28,80 @@ using namespace std;
namespace JMA
{
const char jma_magic[] = { 'J', 'M', 'A', 0, 'N' };
const unsigned int jma_header_length = 5;
const unsigned int jma_header_length = 5;
const unsigned char jma_version = 1;
const unsigned int jma_version_length = 1;
const unsigned int jma_total_header_length = jma_header_length + jma_version_length + UINT_SIZE;
//Convert DOS/zip/JMA integer time to to time_t
time_t uint_to_time(unsigned short date, unsigned short time)
{
tm formatted_time;
formatted_time.tm_mday = date & 0x1F;
formatted_time.tm_mon = ((date >> 5) & 0xF) - 1;
formatted_time.tm_year = ((date >> 9) & 0x7f) + 80;
formatted_time.tm_sec = (time & 0x1F) * 2;
formatted_time.tm_min = (time >> 5) & 0x3F;
formatted_time.tm_hour = (time >> 11) & 0x1F;
return(mktime(&formatted_time));
}
//Retreive the file block, what else?
void jma_open::retrieve_file_block() throw(jma_errors)
{
unsigned char uint_buffer[UINT_SIZE];
unsigned char ushort_buffer[USHORT_SIZE];
//File block size is the last UINT in the file
stream.seekg(-UINT_SIZE,ios::end);
stream.read((char *)uint_buffer, UINT_SIZE);
size_t file_block_size = charp_to_uint(uint_buffer);
//Currently at the end of the file, so that's the file size
size_t jma_file_size = stream.tellg();
//The file block can't be larger than the JMA file without it's header.
//This if can probably be improved
if (file_block_size >= jma_file_size-jma_total_header_length)
{
throw(JMA_BAD_FILE);
}
//Seek to before file block so we can read the file block
stream.seekg(-((int)file_block_size+UINT_SIZE),ios::end);
//This is needed if the file block is compressed
stringstream decompressed_file_block;
//Pointer to where to read file block from (file or decompressed buffer)
istream *file_block_stream;
//Setup file info buffer and byte to read with
jma_file_info file_info;
char byte;
char byte;
stream.get(byte);
if (!byte) //If file block is compressed
{
//Compressed size isn't counting the byte we just read or the UINT for compressed size
size_t compressed_size = file_block_size - (1+UINT_SIZE);
//Read decompressed size / true file block size
stream.read((char *)uint_buffer, UINT_SIZE);
file_block_size = charp_to_uint(uint_buffer);
//Setup access methods for decompression
ISequentialInStream_Istream compressed_data(stream);
ISequentialOutStream_Ostream decompressed_data(decompressed_file_block);
//Decompress the data
if (!decompress_lzma_7z(compressed_data, compressed_size, decompressed_data, file_block_size))
{
throw(JMA_DECOMPRESS_FAILED);
}
}
//Go to beginning, setup pointer to buffer
decompressed_file_block.seekg(0, ios::beg);
file_block_stream = &decompressed_file_block;
@@ -111,8 +111,8 @@ namespace JMA
stream.putback(byte); //Putback byte, byte is part of filename, not compressed indicator
file_block_stream = &stream;
}
//Minimum file name length is 2 bytes, a char and a null
//Minimum comment length is 1 byte, a null
//There are currently 2 UINTs and 2 USHORTs per file
@@ -120,7 +120,7 @@ namespace JMA
{
//First stored in the file block is the file name null terminated
file_info.name = "";
file_block_stream->get(byte);
while (byte)
{
@@ -132,8 +132,8 @@ namespace JMA
if (!file_info.name.length())
{
throw(JMA_BAD_FILE);
}
}
//Same trick as above for the comment
file_info.comment = "";
@@ -143,38 +143,38 @@ namespace JMA
file_info.comment += byte;
file_block_stream->get(byte);
}
//Next is a UINT representing the file's size
file_block_stream->read((char *)uint_buffer, UINT_SIZE);
file_info.size = charp_to_uint(uint_buffer);
//Followed by CRC32
file_block_stream->read((char *)uint_buffer, UINT_SIZE);
file_info.crc32 = charp_to_uint(uint_buffer);
//Special USHORT representation of file's date
file_block_stream->read((char *)ushort_buffer, USHORT_SIZE);
file_info.date = charp_to_ushort(ushort_buffer);
//Special USHORT representation of file's time
file_block_stream->read((char *)ushort_buffer, USHORT_SIZE);
file_info.time = charp_to_ushort(ushort_buffer);
file_info.buffer = 0; //Pointing to null till we decompress files
files.push_back(file_info); //Put file info into our structure
//Subtract size of the file info we just read
file_block_size -= file_info.name.length()+file_info.comment.length()+2+UINT_SIZE*2+USHORT_SIZE*2;
}
}
//Constructor for opening JMA files for reading
jma_open::jma_open(const char *compressed_file_name) throw (jma_errors)
jma_open::jma_open(const char *compressed_file_name) throw (jma_errors)
{
decompressed_buffer = 0;
compressed_buffer = 0;
stream.open(compressed_file_name, ios::in | ios::binary);
if (!stream.is_open())
{
@@ -188,7 +188,7 @@ namespace JMA
{
throw(JMA_BAD_FILE);
}
//Not the cleanest code but logical
stream.read((char *)header, 5);
if (*header <= jma_version)
@@ -216,7 +216,7 @@ namespace JMA
{
vector<jma_public_file_info> file_info_vector;
jma_public_file_info file_info;
for (vector<jma_file_info>::iterator i = files.begin(); i != files.end(); i++)
{
file_info.name = i->name;
@@ -226,10 +226,10 @@ namespace JMA
file_info.crc32 = i->crc32;
file_info_vector.push_back(file_info);
}
return(file_info_vector);
}
//Skip forward a given number of chunks
void jma_open::chunk_seek(unsigned int chunk_num) throw(jma_errors)
{
@@ -238,25 +238,25 @@ namespace JMA
{
throw(JMA_NO_OPEN);
}
//Clear possible errors so the seek will work
stream.clear();
//Move forward over header
stream.seekg(jma_total_header_length, ios::beg);
unsigned char int4_buffer[UINT_SIZE];
unsigned char int4_buffer[UINT_SIZE];
while (chunk_num--)
{
//Read in size of chunk
stream.read((char *)int4_buffer, UINT_SIZE);
//Skip chunk plus it's CRC32
stream.seekg(charp_to_uint(int4_buffer)+UINT_SIZE, ios::cur);
stream.seekg(charp_to_uint(int4_buffer)+UINT_SIZE, ios::cur);
}
}
}
//Return a vector of pointers to each file in the JMA, the buffer to hold all the files
//must be initilized outside.
vector<unsigned char *> jma_open::get_all_files(unsigned char *buffer) throw(jma_errors)
@@ -266,19 +266,19 @@ namespace JMA
{
throw(JMA_NO_OPEN);
}
//Seek to the first chunk
chunk_seek(0);
//Set the buffer that decompressed data goes to
decompressed_buffer = buffer;
//If the JMA is not solid
if (chunk_size)
{
unsigned char int4_buffer[UINT_SIZE];
unsigned char int4_buffer[UINT_SIZE];
size_t size = get_total_size(files);
//For each chunk in the file...
for (size_t remaining_size = size; remaining_size; remaining_size -= chunk_size)
{
@@ -299,7 +299,7 @@ namespace JMA
//Read all the compressed data in
stream.read((char *)compressed_buffer, compressed_size);
//Read the expected CRC of compressed data from the file
stream.read((char *)int4_buffer, UINT_SIZE);
@@ -309,17 +309,17 @@ namespace JMA
delete[] compressed_buffer;
throw(JMA_BAD_FILE);
}
//Decompress the data, cleanup memory on failure
if (!decompress_lzma_7z(compressed_buffer, compressed_size,
decompressed_buffer+size-remaining_size,
if (!decompress_lzma_7z(compressed_buffer, compressed_size,
decompressed_buffer+size-remaining_size,
(remaining_size > chunk_size) ? chunk_size : remaining_size))
{
delete[] compressed_buffer;
throw(JMA_DECOMPRESS_FAILED);
}
delete[] compressed_buffer;
if (remaining_size <= chunk_size) //If we just decompressed the remainder
{
break;
@@ -328,25 +328,25 @@ namespace JMA
}
else //Solidly compressed JMA
{
unsigned char int4_buffer[UINT_SIZE];
unsigned char int4_buffer[UINT_SIZE];
//Read the size of the compressed data
stream.read((char *)int4_buffer, UINT_SIZE);
size_t compressed_size = charp_to_uint(int4_buffer);
//Get decompressed size
size_t size = get_total_size(files);
//Setup access methods for decompression
ISequentialInStream_Istream compressed_data(stream);
ISequentialOutStream_Array decompressed_data(reinterpret_cast<char*>(decompressed_buffer), size);
//Decompress the data
if (!decompress_lzma_7z(compressed_data, compressed_size, decompressed_data, size))
{
throw(JMA_DECOMPRESS_FAILED);
}
}
/*
//Allocate memory of the right size to hold the compressed data in the JMA
try
@@ -357,14 +357,14 @@ namespace JMA
{
throw(JMA_NO_MEM_ALLOC);
}
//Copy the compressed data into memory
stream.read((char *)compressed_buffer, compressed_size);
size_t size = get_total_size(files);
//Read the CRC of the compressed data
stream.read((char *)int4_buffer, UINT_SIZE);
//If it doesn't match, complain
if (CRC32lib::CRC32(compressed_buffer, compressed_size) != charp_to_uint(int4_buffer))
{
@@ -381,10 +381,10 @@ namespace JMA
delete[] compressed_buffer;
*/
}
vector<unsigned char *> file_pointers;
size_t size = 0;
//For each file, add it's pointer to the vector, size is pointer offset in the buffer
for (vector<jma_file_info>::iterator i = files.begin(); i != files.end(); i++)
{
@@ -394,7 +394,7 @@ namespace JMA
}
//Return the vector of pointers
return(file_pointers);
return(file_pointers);
}
//Extracts the file with a given name found in the archive to the given buffer
@@ -404,10 +404,10 @@ namespace JMA
{
throw(JMA_NO_OPEN);
}
size_t size_to_skip = 0;
size_t our_file_size = 0;
//Search through the vector of file information
for (vector<jma_file_info>::iterator i = files.begin(); i != files.end(); i++)
{
@@ -417,11 +417,11 @@ namespace JMA
our_file_size = i->size;
break;
}
//Keep a running total of size
size_to_skip += i->size;
}
if (!our_file_size) //File with the specified name was not found in the archive
{
throw(JMA_FILE_NOT_FOUND);
@@ -433,14 +433,14 @@ namespace JMA
get_all_files(buffer);
return;
}
if (chunk_size) //we are using non-solid archive..
{
unsigned int chunks_to_skip = size_to_skip / chunk_size;
//skip over requisite number of chunks
chunk_seek(chunks_to_skip);
//Allocate memory for compressed and decompressed data
unsigned char *comp_buffer = 0, *decomp_buffer = 0;
try
@@ -454,7 +454,7 @@ namespace JMA
{
throw(JMA_NO_MEM_ALLOC);
}
size_t first_chunk_offset = size_to_skip % chunk_size;
unsigned char int4_buffer[UINT_SIZE];
for (size_t i = 0; i < our_file_size;)
@@ -462,29 +462,29 @@ namespace JMA
//Get size
stream.read((char *)int4_buffer, UINT_SIZE);
size_t compressed_size = charp_to_uint(int4_buffer);
//Read all the compressed data in
stream.read((char *)comp_buffer, compressed_size);
//Read the CRC of the compressed data
stream.read((char *)int4_buffer, UINT_SIZE);
//If it doesn't match, complain
if (CRC32lib::CRC32(comp_buffer, compressed_size) != charp_to_uint(int4_buffer))
{
delete[] comp_buffer;
throw(JMA_BAD_FILE);
}
//Decompress chunk
if (!decompress_lzma_7z(comp_buffer, compressed_size, decomp_buffer, chunk_size))
{
delete[] comp_buffer;
throw(JMA_DECOMPRESS_FAILED);
}
size_t copy_amount = our_file_size-i > chunk_size-first_chunk_offset ? chunk_size-first_chunk_offset : our_file_size-i;
memcpy(buffer+i, decomp_buffer+first_chunk_offset, copy_amount);
first_chunk_offset = 0; //Set to zero since this is only for the first iteration
i += copy_amount;
@@ -502,11 +502,11 @@ namespace JMA
{
throw(JMA_NO_MEM_ALLOC);
}
get_all_files(decomp_buffer);
memcpy(buffer, decomp_buffer+size_to_skip, our_file_size);
delete[] decomp_buffer;
}
}
@@ -515,32 +515,32 @@ namespace JMA
{
return(chunk_size ? false : true);
}
const char *jma_error_text(jma_errors error)
{
switch (error)
{
case JMA_NO_CREATE:
return("JMA could not be created");
case JMA_NO_MEM_ALLOC:
return("Memory for JMA could be allocated");
case JMA_NO_OPEN:
return("JMA could not be opened");
case JMA_BAD_FILE:
return("Invalid/Corrupt JMA");
case JMA_UNSUPPORTED_VERSION:
return("JMA version not supported");
case JMA_COMPRESS_FAILED:
return("JMA compression failed");
case JMA_DECOMPRESS_FAILED:
return("JMA decompression failed");
case JMA_FILE_NOT_FOUND:
return("File not found in JMA");
}

View File

@@ -27,10 +27,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
namespace JMA
{
enum jma_errors { JMA_NO_CREATE, JMA_NO_MEM_ALLOC, JMA_NO_OPEN, JMA_BAD_FILE,
enum jma_errors { JMA_NO_CREATE, JMA_NO_MEM_ALLOC, JMA_NO_OPEN, JMA_BAD_FILE,
JMA_UNSUPPORTED_VERSION, JMA_COMPRESS_FAILED, JMA_DECOMPRESS_FAILED,
JMA_FILE_NOT_FOUND };
struct jma_file_info_base
{
std::string name;
@@ -38,12 +38,12 @@ namespace JMA
size_t size;
unsigned int crc32;
};
struct jma_public_file_info : jma_file_info_base
{
time_t datetime;
};
struct jma_file_info : jma_file_info_base
{
unsigned short date;
@@ -59,7 +59,7 @@ namespace JMA
{
size += i->size; //We do have a problem if this wraps around
}
return(size);
}
@@ -68,23 +68,23 @@ namespace JMA
public:
jma_open(const char *) throw(jma_errors);
~jma_open();
std::vector<jma_public_file_info> get_files_info();
std::vector<unsigned char *> get_all_files(unsigned char *) throw(jma_errors);
void extract_file(std::string& name, unsigned char *) throw(jma_errors);
bool is_solid();
private:
std::ifstream stream;
std::vector<jma_file_info> files;
size_t chunk_size;
unsigned char *decompressed_buffer;
unsigned char *compressed_buffer;
void chunk_seek(unsigned int) throw(jma_errors);
void retrieve_file_block() throw(jma_errors);
};
const char *jma_error_text(jma_errors);
}
#endif

View File

@@ -52,7 +52,7 @@ class CDecoder
CBitTreeDecoder<kNumMoveBits, kNumLenBits> m_LowCoder[kNumPosStatesMax];
CMyBitDecoder<kNumMoveBits> m_Choice2;
CBitTreeDecoder<kNumMoveBits, kNumMidBits> m_MidCoder[kNumPosStatesMax];
CBitTreeDecoder<kNumMoveBits, kNumHighBits> m_HighCoder;
CBitTreeDecoder<kNumMoveBits, kNumHighBits> m_HighCoder;
UINT32 m_NumPosStates;
public:
void Create(UINT32 aNumPosStates)

View File

@@ -63,7 +63,7 @@ public:
// UINT32 aBit = m_Decoders[1 + aMatchBit][aSymbol].Decode(aRangeDecoder);
// aSymbol = (aSymbol << 1) | aBit;
UINT32 aBit;
RC_GETBIT2(kNumMoveBits, m_Decoders[1 + aMatchBit][aSymbol].m_Probability, aSymbol,
RC_GETBIT2(kNumMoveBits, m_Decoders[1 + aMatchBit][aSymbol].m_Probability, aSymbol,
aBit = 0, aBit = 1)
if (aMatchBit != aBit)
{
@@ -91,7 +91,7 @@ public:
CDecoder(): m_Coders(0) {}
~CDecoder() { Free(); }
void Free()
{
{
delete []m_Coders;
m_Coders = 0;
}

View File

@@ -68,16 +68,16 @@ protected:
}
};
const int kNumPosSlotBits = 6;
const int kDicLogSizeMax = 28;
const int kDistTableSizeMax = kDicLogSizeMax * 2;
const int kNumPosSlotBits = 6;
const int kDicLogSizeMax = 28;
const int kDistTableSizeMax = kDicLogSizeMax * 2;
extern UINT32 kDistStart[kDistTableSizeMax];
const BYTE kDistDirectBits[kDistTableSizeMax] =
const BYTE kDistDirectBits[kDistTableSizeMax] =
{
0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,
10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19,
20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26
10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19,
20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26
};
const UINT32 kNumLenToPosStates = 4;

View File

@@ -30,7 +30,7 @@ HRESULT CDecoder::SetDictionarySize(UINT32 aDictionarySize)
{
if (aDictionarySize > (1 << kDicLogSizeMax))
return E_INVALIDARG;
UINT32 aWindowReservSize = MyMax(aDictionarySize, UINT32(1 << 21));
if (m_DictionarySize != aDictionarySize)
@@ -100,9 +100,9 @@ HRESULT CDecoder::Init(ISequentialInStream *anInStream,
m_MatchRep1ChoiceDecoders[i].Init();
m_MatchRep2ChoiceDecoders[i].Init();
}
m_LiteralDecoder.Init();
// m_RepMatchLenDecoder.Init();
for (i = 0; (UINT32) i < kNumLenToPosStates; i++)
@@ -110,7 +110,7 @@ HRESULT CDecoder::Init(ISequentialInStream *anInStream,
for(i = 0; i < kNumPosModels; i++)
m_PosDecoders[i].Init();
m_LenDecoder.Init();
m_RepMatchLenDecoder.Init();
@@ -120,7 +120,7 @@ HRESULT CDecoder::Init(ISequentialInStream *anInStream,
}
HRESULT CDecoder::CodeReal(ISequentialInStream *anInStream,
ISequentialOutStream *anOutStream,
ISequentialOutStream *anOutStream,
const UINT64 *anInSize, const UINT64 *anOutSize)
{
if (anOutSize == NULL)
@@ -151,21 +151,21 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *anInStream,
if(aPeviousIsMatch)
{
BYTE aMatchByte = m_OutWindowStream.GetOneByte(0 - aRepDistances[0] - 1);
aPreviousByte = m_LiteralDecoder.DecodeWithMatchByte(&m_RangeDecoder,
aPreviousByte = m_LiteralDecoder.DecodeWithMatchByte(&m_RangeDecoder,
UINT32(aNowPos64), aPreviousByte, aMatchByte);
aPeviousIsMatch = false;
}
else
aPreviousByte = m_LiteralDecoder.DecodeNormal(&m_RangeDecoder,
aPreviousByte = m_LiteralDecoder.DecodeNormal(&m_RangeDecoder,
UINT32(aNowPos64), aPreviousByte);
m_OutWindowStream.PutOneByte(aPreviousByte);
aNowPos64++;
}
else
else
{
aPeviousIsMatch = true;
UINT32 aDistance, aLen;
if(m_MatchChoiceDecoders[aState.m_Index].Decode(&m_RangeDecoder) ==
if(m_MatchChoiceDecoders[aState.m_Index].Decode(&m_RangeDecoder) ==
(UINT32) kMatchChoiceRepetitionIndex)
{
if(m_MatchRepChoiceDecoders[aState.m_Index].Decode(&m_RangeDecoder) == 0)
@@ -190,7 +190,7 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *anInStream,
aRepDistances[1] = aRepDistances[0];
// aCounts[3 + 1]++;
}
else
else
{
if (m_MatchRep2ChoiceDecoders[aState.m_Index].Decode(&m_RangeDecoder) == 0)
{
@@ -225,7 +225,7 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *anInStream,
aDistance += m_PosDecoders[aPosSlot - kStartPosModelIndex].Decode(&m_RangeDecoder);
else
{
aDistance += (m_RangeDecoder.DecodeDirectBits(kDistDirectBits[aPosSlot] -
aDistance += (m_RangeDecoder.DecodeDirectBits(kDistDirectBits[aPosSlot] -
kNumAlignBits) << kNumAlignBits);
aDistance += m_PosAlignDecoder.Decode(&m_RangeDecoder);
}
@@ -233,11 +233,11 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *anInStream,
else
aDistance = aPosSlot;
aRepDistances[3] = aRepDistances[2];
aRepDistances[2] = aRepDistances[1];
aRepDistances[1] = aRepDistances[0];
aRepDistances[0] = aDistance;
// UpdateStat(aLen, aPosSlot);
}
@@ -285,7 +285,7 @@ HRESULT CDecoder::ReadCoderProperties(ISequentialInStream *anInStream)
UINT8 uint_buffer[UINT_SIZE];
RETURN_IF_NOT_S_OK(anInStream->Read(uint_buffer, sizeof(aDictionarySize), &aProcessesedSize));
aDictionarySize = charp_to_uint(uint_buffer);
if (aProcessesedSize != sizeof(aDictionarySize))
return E_INVALIDARG;

View File

@@ -48,14 +48,14 @@ class CDecoder
CReverseBitTreeDecoder<kNumMoveBitsForAlignCoders, kNumAlignBits> m_PosAlignDecoder;
// CBitTreeDecoder2<kNumMoveBitsForPosCoders> m_PosDecoders[kNumPosModels];
// CBitTreeDecoder<kNumMoveBitsForAlignCoders, kNumAlignBits> m_PosAlignDecoder;
NLength::CDecoder m_LenDecoder;
NLength::CDecoder m_RepMatchLenDecoder;
NLiteral::CDecoder m_LiteralDecoder;
UINT32 m_DictionarySize;
UINT32 m_PosStateMask;
HRESULT Create();
@@ -69,7 +69,7 @@ class CDecoder
public:
CDecoder();
HRESULT Code(ISequentialInStream *anInStream, ISequentialOutStream *anOutStream, const UINT64 *anInSize, const UINT64 *anOutSize);
HRESULT ReadCoderProperties(ISequentialInStream *anInStream);

View File

@@ -25,7 +25,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#define RC_INIT_VAR \
UINT32 aRange = aRangeDecoder->m_Range; \
UINT32 aCode = aRangeDecoder->m_Code;
UINT32 aCode = aRangeDecoder->m_Code;
#define RC_FLUSH_VAR \
aRangeDecoder->m_Range = aRange; \
@@ -56,6 +56,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}} \
RC_NORMALIZE
#define RC_GETBIT(aNumMoveBits, aProb, aModelIndex) RC_GETBIT2(aNumMoveBits, aProb, aModelIndex, ; , ;)
#define RC_GETBIT(aNumMoveBits, aProb, aModelIndex) RC_GETBIT2(aNumMoveBits, aProb, aModelIndex, ; , ;)
#endif

View File

@@ -43,7 +43,7 @@ public:
m_Range <<= 8;
}
}
void Init(ISequentialInStream *aStream)
{
m_Stream.Init(aStream);
@@ -71,7 +71,7 @@ public:
m_Range >>= aNumTotalBits;
UINT32 aThreshold = m_Code / m_Range;
m_Code -= aThreshold * m_Range;
Normalize();
return aThreshold;
}
@@ -88,7 +88,7 @@ public:
UINT32 DecodeDirectBits(UINT32 aNumTotalBits)
{
UINT32 aRange = m_Range;
UINT32 aCode = m_Code;
UINT32 aCode = m_Code;
UINT32 aResult = 0;
for (UINT32 i = aNumTotalBits; i > 0; i--)
{
@@ -109,7 +109,7 @@ public:
if (aRange < kTopValue)
{
aCode = (aCode << 8) | m_Stream.ReadByte();
aRange <<= 8;
aRange <<= 8;
}
}
m_Range = aRange;

View File

@@ -27,7 +27,7 @@ namespace NWindow {
// m_KeepSizeBefore: how mach BYTEs must be in buffer before m_Pos;
// m_KeepSizeAfter: how mach BYTEs must be in buffer after m_Pos;
// m_KeepSizeReserv: how mach BYTEs must be in buffer for Moving Reserv;
// m_KeepSizeReserv: how mach BYTEs must be in buffer for Moving Reserv;
// must be >= aKeepSizeAfter; // test it
class COut
@@ -55,14 +55,14 @@ public:
void Init(ISequentialOutStream *aStream, bool aSolid = false);
HRESULT Flush();
UINT32 GetCurPos() const { return m_Pos; }
const BYTE *GetPointerToCurrentPos() const { return m_Buffer + m_Pos;};
void CopyBackBlock(UINT32 aDistance, UINT32 aLen)
{
if (m_Pos >= m_PosLimit)
MoveBlockBackward();
MoveBlockBackward();
BYTE *p = m_Buffer + m_Pos;
aDistance++;
for(UINT32 i = 0; i < aLen; i++)
@@ -73,7 +73,7 @@ public:
void PutOneByte(BYTE aByte)
{
if (m_Pos >= m_PosLimit)
MoveBlockBackward();
MoveBlockBackward();
m_Buffer[m_Pos++] = aByte;
}

View File

@@ -1,66 +1,66 @@
/*
Copyright (C) 2004 NSRT Team ( http://nsrt.edgeemu.com )
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <vector>
using namespace std;
#include "zsnesjma.h"
#include "jma.h"
extern "C" {
extern unsigned char *romdata;
extern unsigned int curromspace;
extern unsigned int maxromspace;
}
void load_jma_file(const char *filename)
{
try
{
JMA::jma_open JMAFile(filename);
vector<JMA::jma_public_file_info> file_info = JMAFile.get_files_info();
string our_file_name;
size_t our_file_size = 0;
for (vector<JMA::jma_public_file_info>::iterator i = file_info.begin(); i != file_info.end(); i++)
{
//Check for valid ROM based on size
if ((i->size <= maxromspace+512) && (i->size > our_file_size))
{
our_file_name = i->name;
our_file_size = i->size;
}
}
if (!our_file_size)
{
return;
}
JMAFile.extract_file(our_file_name, romdata);
curromspace = our_file_size;
}
catch (JMA::jma_errors jma_error)
{
//No need to do anything
}
}
/*
Copyright (C) 2004 NSRT Team ( http://nsrt.edgeemu.com )
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <vector>
using namespace std;
#include "zsnesjma.h"
#include "jma.h"
extern "C" {
extern unsigned char *romdata;
extern unsigned int curromspace;
extern unsigned int maxromspace;
}
void load_jma_file(const char *filename)
{
try
{
JMA::jma_open JMAFile(filename);
vector<JMA::jma_public_file_info> file_info = JMAFile.get_files_info();
string our_file_name;
size_t our_file_size = 0;
for (vector<JMA::jma_public_file_info>::iterator i = file_info.begin(); i != file_info.end(); i++)
{
//Check for valid ROM based on size
if ((i->size <= maxromspace+512) && (i->size > our_file_size))
{
our_file_name = i->name;
our_file_size = i->size;
}
}
if (!our_file_size)
{
return;
}
JMAFile.extract_file(our_file_name, romdata);
curromspace = our_file_size;
}
catch (JMA::jma_errors jma_error)
{
//No need to do anything
}
}

View File

@@ -960,7 +960,7 @@ void UpdateSound(void *userdata, Uint8 * stream, int len)
{
return;
}
if (left <= len)
{
memcpy(stream, &Buffer[Buffer_head], left);
@@ -970,7 +970,7 @@ void UpdateSound(void *userdata, Uint8 * stream, int len)
Buffer_fill -= left;
}
if (len)
if (len)
{
memcpy(stream, &Buffer[Buffer_head], len);
Buffer_head += len;
@@ -1262,28 +1262,28 @@ void spc_sanitize_files() {
pid_t spc_fork() {
pid_t childpid;
if ((childpid = fork()) == -1) return -1;
//If this us the parent proccess nothing more to do
if (childpid != 0) return childpid;
//This is the child proccess
spc_sanitize_files();
/*
There actually is a bug here which I submitted to the authors of the book -Nach
The bug is as follows:
The parent returns the child proccess ID in event of success.
The parent returns the child proccess ID in event of success.
The child returns 0 on success if and only if it's spc_drop_privileges() call is successful.
It is possible that the parent will return with a pid > 0, while the child never returns
It is possible that the parent will return with a pid > 0, while the child never returns
from spc_fork thus causing a programming error.
The function should be rewritten that the parent doesn't return till it knows if the
The function should be rewritten that the parent doesn't return till it knows if the
child is able to return or not. And then return -1 or the child pid.
For out purposes in ZSNES to launch a browser, this bug does not effect us. But
be careful if you copy this code to use somewhere else.
*/
@@ -1291,7 +1291,7 @@ pid_t spc_fork() {
{
exit(0);
}
return 0;
}
@@ -1304,21 +1304,21 @@ void LaunchBrowser(char *browser)
void ZsnesPage()
{
if (spc_fork()) //If fork failed, or we are the parent
{
{
MouseX = 0;
MouseY = 0;
MouseY = 0;
return;
}
//We are now the child proccess
//If any of these LaunchBrowser() calls return that means it failed and we should try the next one
LaunchBrowser("mozilla");
LaunchBrowser("mozilla-firefox");
LaunchBrowser("konqueror");
LaunchBrowser("lynx");
LaunchBrowser("links");
exit(0); //All browser launches failed, oh well
}

View File

@@ -48,17 +48,17 @@ BOOL sw_start(int width, int height, int req_depth, int FullScreen)
//int i;
Uint32 flags = SDL_DOUBLEBUF | SDL_SWSURFACE;
DWORD GBitMask;
flags |= (FullScreen ? SDL_FULLSCREEN : 0);
SurfaceX = width; SurfaceY = height;
surface = SDL_SetVideoMode(SurfaceX, SurfaceY, req_depth, flags);
if (surface == NULL) {
fprintf (stderr, "Could not set %dx%d video mode: %s\n", SurfaceX, SurfaceY, SDL_GetError ());
return FALSE;
}
SurfaceLocking = SDL_MUSTLOCK(surface);
SDL_WarpMouse(SurfaceX/4,SurfaceY/4);
@@ -173,7 +173,7 @@ void sw_drawwin()
break;
default:
break;
}
}
} else {
copy640x480x16bwin();
}
@@ -195,7 +195,7 @@ void sw_drawwin()
break;
default:
break;
}
}
} else {
copy640x480x16bwin();
}

View File

@@ -127,7 +127,7 @@ DWORD ZOpenFile()
{
if(ZOpenMode==0)
{
if (TextFile)
if (TextFile)
FILEHANDLE[CurrentHandle]=fopen(ZOpenFileName,"rb");
else
FILEHANDLE[CurrentHandle]=(FILE *)gzopen(ZOpenFileName,"rb");
@@ -140,11 +140,11 @@ DWORD ZOpenFile()
}
if(ZOpenMode==1)
{
if (TextFile)
if (TextFile)
FILEHANDLE[CurrentHandle]=fopen(ZOpenFileName,"wb");
else
FILEHANDLE[CurrentHandle]=(FILE *)gzopen(ZOpenFileName,"wb");
if(FILEHANDLE[CurrentHandle]!=NULL)
if(FILEHANDLE[CurrentHandle]!=NULL)
{
CurrentHandle+=1;
return(CurrentHandle-1);
@@ -153,11 +153,11 @@ DWORD ZOpenFile()
}
if(ZOpenMode==2)
{
if (TextFile)
if (TextFile)
FILEHANDLE[CurrentHandle]=fopen(ZOpenFileName,"r+b");
else
FILEHANDLE[CurrentHandle]=gzopen(ZOpenFileName,"r+b");
if(FILEHANDLE[CurrentHandle]!=NULL)
if(FILEHANDLE[CurrentHandle]!=NULL)
{
CurrentHandle+=1;
return(CurrentHandle-1);
@@ -184,7 +184,7 @@ DWORD ZFileSeek()
mode = SEEK_SET;
else if (ZFileSeekMode==1) {
mode = SEEK_END;
if (TextFile==0)
if (TextFile==0)
printf("Warning : gzseek(SEEK_END) not supported");
} else return (0xFFFFFFFF);
@@ -206,8 +206,8 @@ DWORD ZFileRead()
ZFileReadSize,
FILEHANDLE[ZFileReadHandle]));
else
return(gzread(FILEHANDLE[ZFileReadHandle],
ZFileReadBlock,
return(gzread(FILEHANDLE[ZFileReadHandle],
ZFileReadBlock,
ZFileReadSize));
}
@@ -221,11 +221,11 @@ DWORD ZFileWrite()
ZFileWriteSize,
FILEHANDLE[ZFileWriteHandle]);
else
res = gzwrite(FILEHANDLE[ZFileWriteHandle],
ZFileWriteBlock,
res = gzwrite(FILEHANDLE[ZFileWriteHandle],
ZFileWriteBlock,
ZFileWriteSize);
if (res!=ZFileWriteSize)
if (res!=ZFileWriteSize)
return(0xFFFFFFFF);
return(0);
@@ -262,7 +262,7 @@ DWORD ZFileMKDir()
{
#ifdef __LINUX__
return(mkdir(MKPath, (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)));
#else
#else
return(mkdir(MKPath));
#endif
}
@@ -315,30 +315,30 @@ DWORD ZFileFindNext()
if (globcur == -1)
return -1;
globcur++;
if (globcur > globbuf.gl_pathc) /* >= */
return -1;
if (globcur == globbuf.gl_pathc) {
/* this is the end, so just add it ourselves */
*(char *)(DTALocPos + 0x15) = 0x10;
strcpy((char *)DTALocPos + 0x1E, "..");
return 0;
}
*(char *)(DTALocPos + 0x15) = 0;
stat ( globbuf.gl_pathv[globcur], &filetype );
if(ZFileFindATTRIB&0x10 && !S_ISDIR ( filetype.st_mode )) return(ZFileFindNext());
if(((ZFileFindATTRIB&0x10)==0) && S_ISDIR ( filetype.st_mode )) return(ZFileFindNext());
if ( S_ISDIR ( filetype.st_mode ))
*(char *)(DTALocPos + 0x15) = 0x10;
strcpy((char *)DTALocPos + 0x1E, globbuf.gl_pathv[globcur]);
#else
TempFind=_findnext(FindFirstHandle,&FindDataStruct);
if(TempFind==-1) return(-1);
@@ -365,7 +365,7 @@ DWORD ZFileFindFirst()
globfree(&globbuf);
globcur = -1;
}
if (glob(ZFileFindPATH, 0, NULL, &globbuf))
return -1;
globcur = 0;
@@ -378,10 +378,10 @@ DWORD ZFileFindFirst()
#endif
stat ( globbuf.gl_pathv[globcur], &filetype );
if(ZFileFindATTRIB&0x10 && !S_ISDIR ( filetype.st_mode )) return(ZFileFindNext());
if(((ZFileFindATTRIB&0x10)==0) && S_ISDIR ( filetype.st_mode )) return(ZFileFindNext());
if ( S_ISDIR ( filetype.st_mode ))
*(char *)(DTALocPos + 0x15) = 0x10;
@@ -482,12 +482,12 @@ void obtaindir()
}
strcat(zcfgdir, ZCFG_DIR);
tmp = opendir(zcfgdir);
if (tmp == NULL)
if (tmp == NULL)
{
MKPath = zcfgdir;
ZFileMKDir();
}
else
}
else
{
closedir(tmp);
}
@@ -495,7 +495,7 @@ void obtaindir()
{
strcpy(SRAMDir, zcfgdir);
}
if (*LoadDir == 0)
if (*LoadDir == 0)
{
getcwd(LoadDir, 512);
}
@@ -515,7 +515,7 @@ void GetFilename()
strcpy(&fnamest, tmp);
fnamest = size;
statefileloc-=(tmp-&fnamest);
tmp = &fnames;
*tmp = '/';
while (*tmp!=0) tmp++;
@@ -532,7 +532,7 @@ void pushdir()
{
olddir = (char *)malloc(128);
getcwd(olddir, 128);
}
}
void popdir()
{

View File

@@ -76,14 +76,14 @@ section .text
; macro more or less similar to STUB_FUNCTION
; you can call it without argument,
; you can call it without argument,
; or with a string arg which will be displayed
%macro STUB_ASM 0-1 "STUB_ASM"
%ifndef __PRINTF__
%define __PRINTF__
EXTSYM printf
%endif
[section .data]
[section .data]
%%string: db %1, 0
%%strformat: db '%s in %s line %u',13, 10,0
%%filename: db __FILE__, 0
@@ -111,7 +111,7 @@ popad
%define __PRINTF__
EXTSYM printf
%endif
[section .data]
[section .data]
%%strformat: db '%s in %s line %u',13, 10,0
%%filename: db __FILE__, 0
__SECT__
@@ -126,7 +126,7 @@ push eax
mov eax, %%strformat
push eax
call printf
add esp, 16
add esp, 16
popad
%endmacro
@@ -136,7 +136,7 @@ popad
%define __PRINTF__
EXTSYM printf
%endif
[section .data]
[section .data]
%%strformat: db '%x in %s line %u',13, 10,0
%%filename: db __FILE__, 0
__SECT__

View File

@@ -50,7 +50,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// that packet will be re-sent and reset the timer value back to 60.
// If the local side receives the reply packet, it will set the timer
// counter to -1.
//
//
// Gameplay Packets:
// Note: Gameplay counter is separate from normal packet counter.
// Note2: When referring to TCP/IP, it refers to the Normal Packets above.
@@ -264,7 +264,7 @@ void GetUDPStatus() {
int isipval(char *name){
int i=0;
while(name[i]!=0){
if (!((name[i]=='.') || ((name[i]>='0') && (name[i]<='9'))))
return(0);
@@ -388,7 +388,7 @@ int ConnectServer(char *servername, unsigned int port)
// MessageBox(NULL,blah,
// "Error",
// MB_SYSTEMMODAL|MB_OK);
return(0);
// retval = send(gamesocket,blah,1,0);
@@ -653,7 +653,7 @@ int ServerCheckNewClient()
return(1);
}
return(0);
}
}
if(serversocket == INVALID_SOCKET)
{
@@ -1056,7 +1056,7 @@ char SendBufferSize[256];*/
return(-1);
}
}
return(0);
return(0);
}
/* send data with the socket */
@@ -1146,7 +1146,7 @@ int GetData(int dsize,unsigned char *dptr)
retval = packetreceivesize[i];
packetreceived[(i+128) & 0xFF]=0;
packetrecvhead=(packetrecvhead+1) & 0xFF;
return(retval);
return(retval);
}
i=RecvPtr;

View File

@@ -1,129 +1,129 @@
/*
Copyright (c) 1998-2005 Charles Bilyue'.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <stdio.h>
#include <string.h>
int open_error(const char *filename, const char *mode)
{
printf("Failure opening %s for %s\n");
return 1;
}
int main(int argc, char **argv)
{
int c;
int section_count;
FILE *in, *out;
unsigned char section_header[40];
if (argc < 2 || argc > 3)
{
printf("Fixes MS Win32 object files to be compatible with the incorrect\n");
printf(" implementation in MinGW32.\n");
printf("Usage: objfix infile [outfile]\n");
return 1;
}
in = fopen(argv[1], (argc == 2 ? "rb+" : "rb"));
if (!in) return open_error(argv[1], (argc == 2 ? "read" : "update"));
if (argc == 3)
{
out = fopen(argv[2], "wb");
if (!out) return open_error(argv[1], (argc == 2 ? "read" : "update"));
}
else
{
out = NULL;
}
if (out)
{
fputc(fgetc(in), out);
fputc(fgetc(in), out);
fputc(section_count = fgetc(in), out);
fputc(c = fgetc(in), out);
section_count += c << 8;
for (c = 4; c < 0x14; c++)
{
fputc(fgetc(in), out);
}
for (c = 0; c < section_count; c++)
{
fread(section_header, 1, 40, in);
if (!strncmp(section_header, ".bss", 8))
{
memcpy(section_header + 8, section_header + 16, 4);
memset(section_header + 16, 0, 4);
}
else
{
memset(section_header + 8, 0, 4);
}
fwrite(section_header, 1, 40, out);
}
while ((c = fgetc(in)) != EOF)
{
fputc(c, out);
}
}
else
{
fgetc(in);
fgetc(in);
section_count = fgetc(in);
section_count += fgetc(in) << 8;
fseek(in, 0x14, SEEK_SET);
for (c = 0; c < section_count; c++)
{
fread(section_header, 1, 40, in);
fseek(in, -40, SEEK_CUR);
if (!strncmp(section_header, ".bss", 8))
{
memcpy(section_header + 8, section_header + 16, 4);
memset(section_header + 16, 0, 4);
}
else
{
memset(section_header + 8, 0, 4);
}
fwrite(section_header, 1, 40, in);
fseek(in, 0, SEEK_CUR);
}
}
fclose(in);
if (out) fclose(out);
return 0;
}
/*
Copyright (c) 1998-2005 Charles Bilyue'.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <stdio.h>
#include <string.h>
int open_error(const char *filename, const char *mode)
{
printf("Failure opening %s for %s\n");
return 1;
}
int main(int argc, char **argv)
{
int c;
int section_count;
FILE *in, *out;
unsigned char section_header[40];
if (argc < 2 || argc > 3)
{
printf("Fixes MS Win32 object files to be compatible with the incorrect\n");
printf(" implementation in MinGW32.\n");
printf("Usage: objfix infile [outfile]\n");
return 1;
}
in = fopen(argv[1], (argc == 2 ? "rb+" : "rb"));
if (!in) return open_error(argv[1], (argc == 2 ? "read" : "update"));
if (argc == 3)
{
out = fopen(argv[2], "wb");
if (!out) return open_error(argv[1], (argc == 2 ? "read" : "update"));
}
else
{
out = NULL;
}
if (out)
{
fputc(fgetc(in), out);
fputc(fgetc(in), out);
fputc(section_count = fgetc(in), out);
fputc(c = fgetc(in), out);
section_count += c << 8;
for (c = 4; c < 0x14; c++)
{
fputc(fgetc(in), out);
}
for (c = 0; c < section_count; c++)
{
fread(section_header, 1, 40, in);
if (!strncmp(section_header, ".bss", 8))
{
memcpy(section_header + 8, section_header + 16, 4);
memset(section_header + 16, 0, 4);
}
else
{
memset(section_header + 8, 0, 4);
}
fwrite(section_header, 1, 40, out);
}
while ((c = fgetc(in)) != EOF)
{
fputc(c, out);
}
}
else
{
fgetc(in);
fgetc(in);
section_count = fgetc(in);
section_count += fgetc(in) << 8;
fseek(in, 0x14, SEEK_SET);
for (c = 0; c < section_count; c++)
{
fread(section_header, 1, 40, in);
fseek(in, -40, SEEK_CUR);
if (!strncmp(section_header, ".bss", 8))
{
memcpy(section_header + 8, section_header + 16, 4);
memset(section_header + 16, 0, 4);
}
else
{
memset(section_header + 8, 0, 4);
}
fwrite(section_header, 1, 40, in);
fseek(in, 0, SEEK_CUR);
}
}
fclose(in);
if (out) fclose(out);
return 0;
}

View File

@@ -106,7 +106,7 @@ char *find_next_match(char *str, char match_char)
if (str[1])
{
str++;
}
}
else
{
break;
@@ -115,8 +115,8 @@ char *find_next_match(char *str, char match_char)
str++;
}
return(pos);
}
}
//This is like strtok(), except this understands quoted characters and updates error locations
char *get_token(char *str, char *delim)
{
@@ -127,14 +127,14 @@ char *get_token(char *str, char *delim)
{
pos = str;
}
if (pos)
{
//Skip delimiters
//Skip delimiters
while (*pos && strchr(delim, *pos))
{
pos++;
}
}
if (*pos)
{
token = pos;
@@ -152,7 +152,7 @@ char *get_token(char *str, char *delim)
}
}
pos++;
}
}
if (*pos)
{
*pos++ = '\0';
@@ -187,7 +187,7 @@ char *find_chr(char *str, char match_char)
}
str++;
}
return(pos);
return(pos);
}
@@ -204,7 +204,7 @@ string hex_convert(string str)
{
str.erase(0, 1);
}
size_t h_pos;
while ((h_pos = str.find_first_of("hH")) != string::npos)
{
@@ -230,7 +230,7 @@ ssize_t enhanced_atoi(const char *str)
{
cerr << "Error: Can not get accurate value information (eatio.res)." << endl;
}
//Biggest cheat of all time
ofstream out_stream("eatio.c");
if (out_stream)
@@ -248,12 +248,12 @@ ssize_t enhanced_atoi(const char *str)
<< "}\n\n";
out_stream.close();
#ifdef MSC_VER
#ifdef MSC_VER
system("cl /Foeatio.exe eatio.c");
#else
#else
system("gcc -o eatio.exe eatio.c -s");
#endif
system("."SLASH_STR"eatio.exe");
remove("eatio.c");
@@ -269,10 +269,10 @@ ssize_t enhanced_atoi(const char *str)
{
cerr << "Error: Can not get accurate value information (eatio.res)." << endl;
}
remove("eatio.res");
}
return(num);
}
@@ -317,7 +317,7 @@ char *get_comment()
}
void output_comment(ostream& c_stream, const char *comment)
{
{
if (comment)
{
c_stream << " //" << comment;
@@ -328,7 +328,7 @@ void output_comment(ostream& c_stream, const char *comment)
bool all_spaces(const char *str)
{
while (*str)
{
{
if (!isspace(*str)) { return(false); }
str++;
}
@@ -360,7 +360,7 @@ char *convert_asm_type(const char *str, bool unsigned_var = true)
{
var_type += strlen("unsigned ");
}
return(var_type);
}
@@ -379,7 +379,7 @@ void output_parser_start(ostream& c_stream)
<< "#define LINE_LENGTH " << LINE_LENGTH << "\n"
<< "static char line[LINE_LENGTH];\n"
<< "\n"
<< "\n"
<< "\n"
<< "static char *encode_string(const char *str)\n"
<< "{\n"
<< " size_t i = 0;\n"
@@ -515,7 +515,7 @@ void output_write_var(ostream& c_stream)
output_array_write(c_stream, "char");
output_array_write(c_stream, "short");
output_array_write(c_stream, "int");
c_stream << "\n"
<< "unsigned char write_cfg_vars(const char *file)\n"
<< "{\n"
@@ -533,7 +533,7 @@ void output_write_var(ostream& c_stream)
<< "_array(fp, \"" << i->name << "\", " << i->name << ", " << i->size << ");\n";
}
else
{
{
c_stream << " fprintf(fp, \"" << i->name << "=";
if (i->type == single_value)
{
@@ -702,7 +702,7 @@ void handle_directive(char *instruction, char *label)
else if (!strcasecmp(instruction, "elifdef") || !strcasecmp(instruction, "elseifdef"))
{
if (label)
{
{
if (ifs.top())
{
ifs.pop();
@@ -711,14 +711,14 @@ void handle_directive(char *instruction, char *label)
else if (defines.find(label) != defines.end())
{
ifs.pop();
ifs.push(true);
ifs.push(true);
}
}
else
{
show_error_loc("Could not get elseifdef label");
}
}
else if (!strcasecmp(instruction, "endif"))
{
@@ -737,7 +737,7 @@ void handle_directive(char *instruction, char *label)
ifs.pop();
}
}
}
}
else
{
show_error_loc("Unknown processor directive");
@@ -745,14 +745,14 @@ void handle_directive(char *instruction, char *label)
}
void parser_generate(istream& psr_stream, ostream& c_stream)
{
{
output_parser_start(c_stream);
while (!psr_stream.eof())
{
char *token;
char *comment;
char *comment;
psr_stream.getline(line, LINE_LENGTH);
current_line_number++;
@@ -763,7 +763,7 @@ void parser_generate(istream& psr_stream, ostream& c_stream)
output_comment(c_stream, comment);
continue;
}
if ((token = get_token(line, " ")) &&
(strcasecmp(token, "NEWSYM") || (token = get_token(0, " ,"))))
{
@@ -777,7 +777,7 @@ void parser_generate(istream& psr_stream, ostream& c_stream)
{
continue;
}
string varname = token;
if ((token = get_token(0, " ,")))
@@ -788,23 +788,23 @@ void parser_generate(istream& psr_stream, ostream& c_stream)
{
char *asm_type = token;
char *var_type = convert_asm_type(asm_type);
if (var_type)
{
string initial_value = get_token(0, " ,\n");
if (((initial_value[0] == '\"') && (initial_value[initial_value.length()-1] == '\"')) ||
((initial_value[0] == '\'') && (initial_value[initial_value.length()-1] == '\'')))
{
//Make sure it's double quoted
initial_value[0] = '\"';
initial_value[initial_value.length()-1] = '\"';
if (!array)
{
array = initial_value.length()-1; //Size minus quotes plus null
}
c_stream << "char " << varname << "[" << array << "];";
ostringstream memset_line;
@@ -819,13 +819,13 @@ void parser_generate(istream& psr_stream, ostream& c_stream)
<< varname << "[" << array << "] = 0;";
}
memsets.push_back(memset_line.str());
add_config_var(varname, asm_type, quoted_value, 0);
}
else
{
ssize_t init_value_num = safe_atoi(initial_value);
if (init_value_num < 0)
{
var_type += strlen("unsigned ");
@@ -840,7 +840,7 @@ void parser_generate(istream& psr_stream, ostream& c_stream)
ostringstream memset_line;
memset_line << "memset(" << varname << ", " << init_value_num << ", " << array;
if (var_type_is_short(var_type))
{
memset_line << short_scale;
@@ -891,11 +891,11 @@ void parser_generate(istream& psr_stream, ostream& c_stream)
}
}
//Else already handled
}
}
else
{
show_error_loc("Could not get array size");
}
}
}
else
{
@@ -906,14 +906,14 @@ void parser_generate(istream& psr_stream, ostream& c_stream)
{
show_error_loc("Could not get variable name");
}
output_comment(c_stream, comment);
}
output_init_var(c_stream);
output_write_var(c_stream);
output_write_var(c_stream);
output_read_var(c_stream);
c_stream << "\n";
if (!ifs.empty())
@@ -934,7 +934,7 @@ int main(size_t argc, const char **argv)
else
{
break;
}
}
}
if ((argc-param_pos) != 2)
@@ -947,10 +947,10 @@ int main(size_t argc, const char **argv)
<< " -Ddefine Define a processor director. Example: -D__LINUX__\n"
<< " Can specify multiple defines.\n"
<< endl;
return(1);
}
const char *psr_file = argv[param_pos+1], *c_file = argv[param_pos];
int ret_val = 0;
@@ -961,7 +961,7 @@ int main(size_t argc, const char **argv)
if (c_stream)
{
parser_generate(psr_stream, c_stream);
c_stream.close();
}
else
@@ -969,7 +969,7 @@ int main(size_t argc, const char **argv)
cerr << "Error opening " << c_file << " for writing." << endl;
ret_val |= 2;
}
psr_stream.close();
}
else
@@ -977,7 +977,7 @@ int main(size_t argc, const char **argv)
cerr << "Error opening " << psr_file << " for reading." << endl;
ret_val |= 4;
}
return(0);
}
}

View File

@@ -73,7 +73,7 @@ bool reloadBuffer()
if (IPSPatch.proccessed == IPSPatch.file_size) { return(false); }
IPSPatch.buffer_total = IPSPatch.fp ?
/* Regular Files */ fread(IPSPatch.data, 1, BUFFER_SIZE, IPSPatch.fp) :
/* Regular Files */ fread(IPSPatch.data, 1, BUFFER_SIZE, IPSPatch.fp) :
/* Zip Files */ unzReadCurrentFile(IPSPatch.zipfile, IPSPatch.data, BUFFER_SIZE);
IPSPatch.current = IPSPatch.data;
@@ -113,20 +113,20 @@ bool initPatch()
IPSPatch.fp = 0;
IPSPatch.fp = fopen(patchfile, "rb");
if (!IPSPatch.fp) { return(false); }
return(reloadBuffer());
}
void deinitPatch()
{
if (IPSPatch.data)
{
{
free(IPSPatch.data);
IPSPatch.data = 0;
}
if (IPSPatch.fp)
{
{
fclose(IPSPatch.fp);
IPSPatch.fp = 0;
}
@@ -145,7 +145,7 @@ void PatchUsingIPS()
unsigned char *ROM = (unsigned char *)romdata;
int location = 0, length = 0, last = 0;
int sub = Header512 ? 512 : 0;
IPSPatched = false;
if (!AutoPatch)
@@ -153,11 +153,11 @@ void PatchUsingIPS()
deinitPatch(); //Needed if the call to this function was done from findZipIPS()
return;
}
if (patchfile) //Regular file, not Zip
{
if (!initPatch())
{
{
if (!initPatch())
{
deinitPatch(); //Needed because if it didn't fully init, some things could have
return;
}
@@ -177,7 +177,7 @@ void PatchUsingIPS()
int inloc = (IPSget() << 16) | (IPSget() << 8) | IPSget();
if (inloc == 0x454f46) //EOF
{
{
break;
}
@@ -187,7 +187,7 @@ void PatchUsingIPS()
//Length is a 2 byte value (max 64KB)
length = (IPSget() << 8) | IPSget();
if (length) // Not RLE
if (length) // Not RLE
{
int i;
for (i = 0; i < length; i++, location++)
@@ -208,7 +208,7 @@ void PatchUsingIPS()
{
int i;
unsigned char newVal;
length = (IPSget() << 8) | IPSget();
length = (IPSget() << 8) | IPSget();
newVal = (unsigned char)IPSget();
for (i = 0; i < length; i++, location++)
{
@@ -221,16 +221,16 @@ void PatchUsingIPS()
}
}
}
//We use gotos to break out of the nested loops,
//as well as a simple way to check for 'PATCH' in
//some cases like this one, goto is the way to go.
IPSDone:
deinitPatch();
IPSPatched = true;
//Adjust size values if the ROM was expanded
if (last > curromspace)
{
@@ -268,10 +268,10 @@ void findZipIPS(char *compressedfile)
//Gets info on current file, and places it in cFileInfo
unzGetCurrentFileInfo(IPSPatch.zipfile, &cFileInfo, cFileName, 256, NULL, 0, NULL, 0);
//Find IPS file
//Find IPS file
if (strlen(cFileName) >= 5) //Char + ".IPS"
{
char *ext = cFileName+strlen(cFileName)-4;
char *ext = cFileName+strlen(cFileName)-4;
if (!strncasecmp(ext, ".IPS", 4))
{
FoundIPS = true;
@@ -279,12 +279,12 @@ void findZipIPS(char *compressedfile)
}
}
//Go to next file in zip file
cFile = unzGoToNextFile(IPSPatch.zipfile);
//Go to next file in zip file
cFile = unzGoToNextFile(IPSPatch.zipfile);
}
if (!FoundIPS)
{
{
unzClose(IPSPatch.zipfile);
IPSPatch.zipfile = 0;
return;

View File

@@ -244,7 +244,7 @@ void zstart ()
asm_call(setnoise);
asm_call(InitSPC);
#endif
asm_call(allocmem);
if (!soundon && (SPCDisable != 1))

View File

@@ -27,16 +27,16 @@ char *VERSION_STR;
//Place compilation date at the end of VERSION_STR
void placedate()
{
strcpy(VERSION_STR +
strlen(VERSION_STR) -
strcpy(VERSION_STR +
strlen(VERSION_STR) -
strlen(__DATE__), __DATE__);
}
//Place compilation time at the end of VERSION_STR
void placetime()
{
strcpy(VERSION_STR +
strlen(VERSION_STR) -
strcpy(VERSION_STR +
strlen(VERSION_STR) -
strlen(__TIME__), __TIME__);
}

View File

@@ -117,7 +117,7 @@ NEWSYM _2xSaISuper2xSaILine
mov ebx, [ebp+srcPitch] ;ebx contains the source pitch
mov ecx, [ebp+width] ;ecx contains the number of pixels to process
; eax now points to colorB1
sub eax, ebx ;eax points to B1 which is the base
sub eax, ebx ;eax points to B1 which is the base
; Main Loop
.Loop: push ecx
@@ -168,7 +168,7 @@ NEWSYM _2xSaISuper2xSaILine
packsswb mm7, mm7
movd ecx, mm7
test ecx, ecx
test ecx, ecx
jz near .SKIP_PROCESS ;no, so we can skip
;End Delta
@@ -455,7 +455,7 @@ NEWSYM _2xSaISuper2xSaILine
;Start the ASSEMBLY !!! eh... compose all the results together to form the final image...
movq mm0, [eax+ebx+color5]
movq mm1, [eax+ebx+ebx+color2]
movq mm2, mm0
@@ -531,7 +531,7 @@ NEWSYM _2xSaISuper2xSaILine
pand mm6, mm2
por mm7, mm6
movq mm6, mm7
pcmpeqw mm6, mm5
pand mm7, mm0
@@ -542,8 +542,8 @@ NEWSYM _2xSaISuper2xSaILine
movq [final1a], mm7 ;finished 1a
;--------------------------------
;--------------------------------
movq mm7, [Mask35]
push eax
@@ -583,7 +583,7 @@ NEWSYM _2xSaISuper2xSaILine
pand mm6, mm2
por mm7, mm6
movq mm6, mm7
pcmpeqw mm6, mm5
pand mm7, mm0
@@ -595,7 +595,7 @@ NEWSYM _2xSaISuper2xSaILine
;--------------------------------------------
%ifdef dfhsdfhsdahdsfhdsfh
if (color6 == color3 && color3 == colorA1 && color2 != colorA2 && color3 != colorA0)
@@ -675,7 +675,7 @@ NEWSYM _2xSaISuper2xSaILine
movq [final2b], mm0
;-----------------------------------
pxor mm7, mm7
movq mm0, [eax+colorB0]
@@ -732,7 +732,7 @@ NEWSYM _2xSaISuper2xSaILine
por mm0, mm3
por mm0, mm2
movq [final1b], mm0
;---------
movq mm0, [final1a]
@@ -2023,7 +2023,7 @@ Bits565:
mov [eax+4], edx
mov eax, 0
jmp end1
end1:
end1:
pop edx
mov esp, ebp
pop ebp

View File

@@ -95,7 +95,7 @@ NEWSYM _2xSaISuper2xSaILineW
mov ebx, [ebp+srcPitch] ;ebx contains the source pitch
mov ecx, [ebp+width] ;ecx contains the number of pixels to process
; eax now points to colorB1
sub eax, ebx ;eax points to B1 which is the base
sub eax, ebx ;eax points to B1 which is the base
; Main Loop
.Loop: push ecx
@@ -146,7 +146,7 @@ NEWSYM _2xSaISuper2xSaILineW
packsswb mm7, mm7
movd ecx, mm7
test ecx, ecx
test ecx, ecx
jz near .SKIP_PROCESS ;no, so we can skip
;End Delta
@@ -432,7 +432,7 @@ NEWSYM _2xSaISuper2xSaILineW
;Start the ASSEMBLY !!! eh... compose all the results together to form the final image...
movq mm0, [eax+ebx+color5]
movq mm1, [eax+ebx+ebx+color2]
movq mm2, mm0
@@ -507,7 +507,7 @@ NEWSYM _2xSaISuper2xSaILineW
pand mm6, mm2
por mm7, mm6
movq mm6, mm7
pcmpeqw mm6, mm5
pand mm7, mm0
@@ -518,8 +518,8 @@ NEWSYM _2xSaISuper2xSaILineW
movq [final1a], mm7 ;finished 1a
;--------------------------------
;--------------------------------
movq mm7, [Mask35]
push eax
@@ -559,7 +559,7 @@ NEWSYM _2xSaISuper2xSaILineW
pand mm6, mm2
por mm7, mm6
movq mm6, mm7
pcmpeqw mm6, mm5
pand mm7, mm0
@@ -571,7 +571,7 @@ NEWSYM _2xSaISuper2xSaILineW
;--------------------------------------------
%ifdef dfhsdfhsdahdsfhdsfh
if (color6 == color3 && color3 == colorA1 && color2 != colorA2 && color3 != colorA0)
@@ -637,7 +637,7 @@ NEWSYM _2xSaISuper2xSaILineW
movq mm4, [Mask35]
movq mm3, [Mask26]
movq mm6, mm4
pand mm6, mm7
pxor mm4, mm6
@@ -669,7 +669,7 @@ NEWSYM _2xSaISuper2xSaILineW
movq [final2b], mm0
;-----------------------------------
pxor mm7, mm7
movq mm0, [eax+colorB0]
@@ -711,7 +711,7 @@ NEWSYM _2xSaISuper2xSaILineW
movq mm4, [Mask35]
movq mm3, [Mask26]
movq mm6, mm4
pand mm6, mm7
pxor mm4, mm6
@@ -741,7 +741,7 @@ NEWSYM _2xSaISuper2xSaILineW
por mm0, mm3
por mm0, mm2
movq [final1b], mm0
;---------
movq mm0, [final1a]
@@ -2032,7 +2032,7 @@ Bits565:
mov [eax+4], edx
mov eax, 0
jmp end1
end1:
end1:
pop edx
mov esp, ebp
pop ebp

View File

@@ -341,7 +341,7 @@ PreTripleBuffer:
.failed
mov byte[Triplebufen],0
ret
%endif
%endif
SECTION .data
; Please don't break this again. :)
@@ -405,7 +405,7 @@ ScreenShow:
je near copyvesa2320x480x8b
cmp byte[cvidmode],10
je near copyvesa2320x480x16b
cmp byte[cvidmode],11
cmp byte[cvidmode],11
je near copyvesa2512x384x8b
cmp byte[cvidmode],12
je near copyvesa2512x384x16b
@@ -1015,7 +1015,7 @@ NEWSYM copyvesa2320x480x8b
ret
;copyvesa2320x480x8ng:
;copyvesa2320x480x8ng:
; jmp .mode7hires
; mov ebx,1
;.loopa
@@ -1289,7 +1289,7 @@ NEWSYM copyvesa2800x600x16b
add edi,144*2+800*2+144*2
dec dl
jnz near .interpolate
.done
pop es
ret

View File

@@ -34,8 +34,8 @@ EXTSYM ScrDispl
and bx,0001111111111111b ; 13 -> 16 bit signed value
test bx,0001000000000000b
jz .nonega
or bx,1110000000000000b
or word[mode7X0],1110000000000000b
or bx,1110000000000000b
or word[mode7X0],1110000000000000b
.nonega
mov [.cxloc],bx
mov bx,dx
@@ -58,7 +58,7 @@ EXTSYM ScrDispl
test bx,0001000000000000b
jz .nonegd
or bx,1110000000000000b
or word[mode7Y0],1110000000000000b
or word[mode7Y0],1110000000000000b
.nonegd
sub word[.cyloc],bx
@@ -117,8 +117,8 @@ EXTSYM ScrDispl
and bx,0001111111111111b ; 13 -> 16 bit signed value
test bx,0001000000000000b
jz .nonega
or bx,1110000000000000b
or word[mode7X0],1110000000000000b
or bx,1110000000000000b
or word[mode7X0],1110000000000000b
.nonega
mov [.cxloc],bx
mov bx,dx
@@ -141,7 +141,7 @@ EXTSYM ScrDispl
test bx,0001000000000000b
jz .nonegd
or bx,1110000000000000b
or word[mode7Y0],1110000000000000b
or word[mode7Y0],1110000000000000b
.nonegd
add bx,bx
sub word[.cyloc],bx

View File

@@ -108,8 +108,8 @@ EXTSYM pesimpng,ScrDispl
and bx,0001111111111111b ; 13 -> 16 bit signed value
test bx,0001000000000000b
jz .nonega
or bx,1110000000000000b
or word[mode7X0],1110000000000000b
or bx,1110000000000000b
or word[mode7X0],1110000000000000b
.nonega
mov [mcxloc],bx
mov bx,dx
@@ -132,7 +132,7 @@ EXTSYM pesimpng,ScrDispl
test bx,0001000000000000b
jz .nonegd
or bx,1110000000000000b
or word[mode7Y0],1110000000000000b
or word[mode7Y0],1110000000000000b
.nonegd
sub word[mcyloc],bx
@@ -191,8 +191,8 @@ EXTSYM pesimpng,ScrDispl
and bx,0001111111111111b ; 13 -> 16 bit signed value
test bx,0001000000000000b
jz .nonegacb
or word[mode7X0],1110000000000000b
or bx,1110000000000000b
or word[mode7X0],1110000000000000b
or bx,1110000000000000b
.nonegacb
mov [mcxloc],bx
mov bx,dx
@@ -213,7 +213,7 @@ EXTSYM pesimpng,ScrDispl
and bx,0001111111111111b ; 13 -> 16 bit signed value
test bx,0001000000000000b
jz .nonegdcb
or word[mode7Y0],1110000000000000b
or word[mode7Y0],1110000000000000b
or bx,1110000000000000b
.nonegdcb
add bx,bx

View File

@@ -35,7 +35,7 @@
and bx,0001111111111111b ; 13 -> 16 bit signed value
test bx,0001000000000000b
jz .nonega
or bx,1110000000000000b
or bx,1110000000000000b
.nonega
mov [.cxloc],bx
mov bx,dx

View File

@@ -51,7 +51,7 @@ NEWSYM drawmode7extbg
and bx,0001111111111111b ; 13 -> 16 bit signed value
test bx,0001000000000000b
jz .nonega
or bx,1110000000000000b
or bx,1110000000000000b
.nonega
mov [.cxloc],bx
mov bx,dx

View File

@@ -15,7 +15,7 @@
#define IDC_EDITPASS 1084
// Next default values for new objects
//
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 121

View File

@@ -473,7 +473,7 @@ BOOL InputRead(void)
HRESULT hr;
aquireagain:;
hr=MouseInput->GetDeviceState(sizeof(DIMOUSESTATE),&dims);
if (hr==DIERR_INPUTLOST)
{
hr=MouseInput->Acquire();
@@ -860,7 +860,7 @@ BOOL InitSound()
return FALSE;
}
}
SoundEnabled=1;
FirstSound=0;
return TRUE;
@@ -989,7 +989,7 @@ BOOL ReInitSound()
return FALSE;
}
}
SoundEnabled=1;
FirstSound=0;
return TRUE;
@@ -1285,7 +1285,7 @@ bool InitInput()
hr=KeyboardInput->SetDataFormat(&c_dfDIKeyboard);
if (FAILED(hr)) {DInputError();return FALSE;}
hr=KeyboardInput->SetCooperativeLevel(hMainWindow,DISCL_NONEXCLUSIVE | DISCL_FOREGROUND );
hr=DInput->CreateDevice(GUID_SysMouse, &MouseInput,NULL);
@@ -1293,7 +1293,7 @@ bool InitInput()
hr=MouseInput->SetDataFormat(&c_dfDIMouse);
if (FAILED(hr)) {DInputError();return FALSE;}
hr=MouseInput->SetCooperativeLevel(hMainWindow,DISCL_EXCLUSIVE|DISCL_FOREGROUND);
if (FAILED(hr)) {DInputError();return FALSE;}
@@ -1614,7 +1614,7 @@ int InitDirectDraw()
MessageBox(NULL, "IDirectDrawSurface7::GetPixelFormat failed.", "DirectDraw Error", MB_ICONERROR);
return FALSE;
}
BitDepth=format.dwRGBBitCount;
GBitMask=format.dwGBitMask; // 0x07E0 or not
@@ -2514,7 +2514,7 @@ void drawscreenwin(void)
break;
}
case 32:
{
{
DrawWin256x224x32();
break;
}

View File

@@ -54,7 +54,7 @@ void ZLog_Message (char *Message, ...)
va_start(ap,Message);
vsprintf(Msg,Message,ap );
va_end(ap);
strcat(Msg,"\r\n\0");
fwrite(Msg,strlen(Msg),1,ZFILELog);
fflush(ZFILELog);
@@ -67,7 +67,7 @@ void ZStart_Log (void)
// [4/15/2001] char *p;
strcpy(LogFileName,"zfile.log\0");
ZFILELog = fopen(LogFileName,"wb");
}
@@ -179,7 +179,7 @@ int InitTCPFile()
/* Verify version number and exit on wrong version */
if (wsadata.wVersion != versionneeded)
{
{
return(-1);
}
gameServerSocket=INVALID_SOCKET;
@@ -320,7 +320,7 @@ LPTHREAD_START_ROUTINE MonitorThreadProc(SOCKET s)
hwndNCD = CreateDialog(hModule, MAKEINTRESOURCE
(IDD_NO_CONNECT), NULL, NULL);
while(destruct > 0)
{
{
if (destruct == 10)
clockstart = timeGetTime();
@@ -399,15 +399,15 @@ OpenConnection(char *User, char *Password, char *FileName)
if(!strstr(temp,"ok"))
{
ZLog_Message("Sending user name");
sprintf(temp,"%s",User);
sendCommand(temp,strlen(temp));
receiveData(temp,512);
if(!strstr(temp,"ok")) return 0;
ZLog_Message("Sending password");
sprintf(temp,"%s",Password);
sendCommand(temp,strlen(temp));
receiveData(temp,512);
@@ -518,7 +518,7 @@ LRESULT CALLBACK UPDialogMain(HWND hDlg, UINT message, WPARAM wParam,
DWORD ZFileSystemInit()
{
ZStart_Log();
ZStart_Log();
#ifdef __GZIP__
TextFile = 0;
#else
@@ -552,7 +552,7 @@ DWORD ZOpenFile()
UPDialogDone=0;
hwndNCD = DialogBox(hModule, MAKEINTRESOURCE
(IDD_USERPASS), NULL, UPDialogMain);
while(!UPDialogDone)
{
Sleep(1000);
@@ -560,7 +560,7 @@ DWORD ZOpenFile()
DestroyWindow(hwndNCD);
ZLog_Message("User : %s Pass : %s",user,pass);
ZLog_Message("User : %s Pass : %s",user,pass);
}
else
{
@@ -569,14 +569,14 @@ DWORD ZOpenFile()
for(i=0;i<endstr-startstr;i++)
user[i]=startstr[i];
user[endstr-startstr]=0;
startstr=endstr+1;
if((endstr=strstr(startstr,"@"))==NULL) return 0xFFFFFFFF;
if((endstr-startstr)>512) return 0xFFFFFFFF;
for(i=0;i<endstr-startstr;i++)
pass[i]=startstr[i];
pass[endstr-startstr]=0;
ZLog_Message("User : %s Pass : %s",user,pass);
pass[endstr-startstr]=0;
ZLog_Message("User : %s Pass : %s",user,pass);
startstr=endstr+1;
}
@@ -620,7 +620,7 @@ DWORD ZOpenFile()
#endif
if(ZOpenMode==0)
{
if (TextFile)
if (TextFile)
FILEHANDLE[CurrentHandle]=fopen(ZOpenFileName,"rb");
else
FILEHANDLE[CurrentHandle]=(FILE *)gzopen(ZOpenFileName,"rb");
@@ -633,11 +633,11 @@ DWORD ZOpenFile()
}
if(ZOpenMode==1)
{
if (TextFile)
if (TextFile)
FILEHANDLE[CurrentHandle]=fopen(ZOpenFileName,"wb");
else
FILEHANDLE[CurrentHandle]=(FILE *)gzopen(ZOpenFileName,"wb");
if(FILEHANDLE[CurrentHandle]!=NULL)
if(FILEHANDLE[CurrentHandle]!=NULL)
{
CurrentHandle+=1;
return(CurrentHandle-1);
@@ -646,11 +646,11 @@ DWORD ZOpenFile()
}
if(ZOpenMode==2)
{
if (TextFile)
if (TextFile)
FILEHANDLE[CurrentHandle]=fopen(ZOpenFileName,"r+b");
else
FILEHANDLE[CurrentHandle]=gzopen(ZOpenFileName,"r+b");
if(FILEHANDLE[CurrentHandle]!=NULL)
if(FILEHANDLE[CurrentHandle]!=NULL)
{
CurrentHandle+=1;
return(CurrentHandle-1);
@@ -695,7 +695,7 @@ DWORD ZFileSeek()
}
else
{
{
#endif
int res = 0;
int mode = 0;
@@ -703,10 +703,10 @@ DWORD ZFileSeek()
mode = SEEK_SET;
else if (ZFileSeekMode==1) {
mode = SEEK_END;
if (TextFile==0)
if (TextFile==0)
printf("Warning : gzseek(SEEK_END) not supported");
} else return (0xFFFFFFFF);
if (TextFile) {
fseek(FILEHANDLE[ZFileSeekHandle], ZFileSeekPos, mode);
return 0;
@@ -742,7 +742,7 @@ DWORD ZFileRead()
return ZFileReadSize;
}
else
{
{
#endif
if (TextFile)
return(fread(ZFileReadBlock,
@@ -750,8 +750,8 @@ DWORD ZFileRead()
ZFileReadSize,
FILEHANDLE[ZFileReadHandle]));
else
return(gzread(FILEHANDLE[ZFileReadHandle],
ZFileReadBlock,
return(gzread(FILEHANDLE[ZFileReadHandle],
ZFileReadBlock,
ZFileReadSize));
#ifdef CCBETA
}
@@ -768,7 +768,7 @@ DWORD ZFileWrite()
}
else
{
{
#endif
//MK: this will fail if we write 2GB files
@@ -780,11 +780,11 @@ DWORD ZFileWrite()
ZFileWriteSize,
FILEHANDLE[ZFileWriteHandle]);
else
res = gzwrite(FILEHANDLE[ZFileWriteHandle],
ZFileWriteBlock,
res = gzwrite(FILEHANDLE[ZFileWriteHandle],
ZFileWriteBlock,
ZFileWriteSize);
if (res!=(int)ZFileWriteSize)
if (res!=(int)ZFileWriteSize)
return(0xFFFFFFFF);
#ifdef CCBETA
}

View File

@@ -1,4 +1,4 @@
/* unzip.c -- IO on .zip files using zlib
/* unzip.c -- IO on .zip files using zlib
Version 0.15 beta, Mar 19th, 1998,
Read unzip.h for more info
@@ -150,7 +150,7 @@ local int unzlocal_getByte(fin,pi)
}
else
{
if (ferror(fin))
if (ferror(fin))
return UNZ_ERRNO;
else
return UNZ_EOF;
@@ -159,7 +159,7 @@ local int unzlocal_getByte(fin,pi)
/* ===========================================================================
Reads a long in LSB order from the given gz_stream. Sets
Reads a long in LSB order from the given gz_stream. Sets
*/
local int unzlocal_getShort (fin,pX)
FILE* fin;
@@ -171,11 +171,11 @@ local int unzlocal_getShort (fin,pX)
err = unzlocal_getByte(fin,&i);
x = (uLong)i;
if (err==UNZ_OK)
err = unzlocal_getByte(fin,&i);
x += ((uLong)i)<<8;
if (err==UNZ_OK)
*pX = x;
else
@@ -193,7 +193,7 @@ local int unzlocal_getLong (fin,pX)
err = unzlocal_getByte(fin,&i);
x = (uLong)i;
if (err==UNZ_OK)
err = unzlocal_getByte(fin,&i);
x += ((uLong)i)<<8;
@@ -205,7 +205,7 @@ local int unzlocal_getLong (fin,pX)
if (err==UNZ_OK)
err = unzlocal_getByte(fin,&i);
x += ((uLong)i)<<24;
if (err==UNZ_OK)
*pX = x;
else
@@ -249,7 +249,7 @@ local int strcmpcasenosensitive_internal (fileName1,fileName2)
#define STRCMPCASENOSENTIVEFUNCTION strcmpcasenosensitive_internal
#endif
/*
/*
Compare two filename (fileName1,fileName2).
If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp)
If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi
@@ -270,7 +270,7 @@ extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSensitivit
return strcmp(fileName1,fileName2);
return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2);
}
}
#define BUFREADCOMMENT (0x400)
@@ -286,13 +286,13 @@ local uLong unzlocal_SearchCentralDir(fin)
uLong uBackRead;
uLong uMaxBack=0xffff; /* maximum size of global comment */
uLong uPosFound=0;
if (fseek(fin,0,SEEK_END) != 0)
return 0;
uSizeFile = ftell( fin );
if (uMaxBack>uSizeFile)
uMaxBack = uSizeFile;
@@ -305,13 +305,13 @@ local uLong unzlocal_SearchCentralDir(fin)
{
uLong uReadSize,uReadPos ;
int i;
if (uBackRead+BUFREADCOMMENT>uMaxBack)
if (uBackRead+BUFREADCOMMENT>uMaxBack)
uBackRead = uMaxBack;
else
uBackRead+=BUFREADCOMMENT;
uReadPos = uSizeFile-uBackRead ;
uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
(BUFREADCOMMENT+4) : (uSizeFile-uReadPos);
if (fseek(fin,uReadPos,SEEK_SET)!=0)
break;
@@ -320,7 +320,7 @@ local uLong unzlocal_SearchCentralDir(fin)
break;
for (i=(int)uReadSize-3; (i--)>0;)
if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06))
{
uPosFound = uReadPos+i;
@@ -351,12 +351,12 @@ extern unzFile ZEXPORT unzOpen (path)
uLong central_pos,uL;
FILE * fin ;
uLong number_disk; /* number of the current dist, used for
uLong number_disk; /* number of the current dist, used for
spaning ZIP, unsupported, always 0*/
uLong number_disk_with_CD; /* number the the disk with central dir, used
for spaning ZIP, unsupported, always 0*/
uLong number_entry_CD; /* total number of entries in
the central dir
the central dir
(same than number_entry on nospan) */
int err=UNZ_OK;
@@ -404,7 +404,7 @@ extern unzFile ZEXPORT unzOpen (path)
if (unzlocal_getLong(fin,&us.size_central_dir)!=UNZ_OK)
err=UNZ_ERRNO;
/* offset of start of central directory with respect to the
/* offset of start of central directory with respect to the
starting disk number */
if (unzlocal_getLong(fin,&us.offset_central_dir)!=UNZ_OK)
err=UNZ_ERRNO;
@@ -413,7 +413,7 @@ extern unzFile ZEXPORT unzOpen (path)
if (unzlocal_getShort(fin,&us.gi.size_comment)!=UNZ_OK)
err=UNZ_ERRNO;
if ((central_pos<us.offset_central_dir+us.size_central_dir) &&
if ((central_pos<us.offset_central_dir+us.size_central_dir) &&
(err==UNZ_OK))
err=UNZ_BADZIPFILE;
@@ -428,12 +428,12 @@ extern unzFile ZEXPORT unzOpen (path)
(us.offset_central_dir+us.size_central_dir);
us.central_pos = central_pos;
us.pfile_in_zip_read = NULL;
s=(unz_s*)ALLOC(sizeof(unz_s));
*s=us;
unzGoToFirstFile((unzFile)s);
return (unzFile)s;
unzGoToFirstFile((unzFile)s);
return (unzFile)s;
}
@@ -499,7 +499,7 @@ local void unzlocal_DosDateToTmuDate (ulDosDate, ptm)
*/
local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file,
unz_file_info *pfile_info,
unz_file_info_internal
unz_file_info_internal
*pfile_info_internal,
char *szFileName,
uLong fileNameBufferSize,
@@ -612,7 +612,7 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
lSeek -= uSizeRead;
}
if ((err==UNZ_OK) && (extraField!=NULL))
{
uLong uSizeRead ;
@@ -634,9 +634,9 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
lSeek += file_info.size_file_extra - uSizeRead;
}
else
lSeek+=file_info.size_file_extra;
lSeek+=file_info.size_file_extra;
if ((err==UNZ_OK) && (szComment!=NULL))
{
uLong uSizeRead ;
@@ -729,7 +729,7 @@ extern int ZEXPORT unzGoToFirstFile (file)
extern int ZEXPORT unzGoToNextFile (file)
unzFile file;
{
unz_s* s;
unz_s* s;
int err;
if (file==NULL)
@@ -764,10 +764,10 @@ extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity)
const char *szFileName;
int iCaseSensitivity;
{
unz_s* s;
unz_s* s;
int err;
uLong num_fileSaved;
uLong pos_in_central_dirSaved;
@@ -877,7 +877,7 @@ local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* size uncompr */
err=UNZ_ERRNO;
else if ((err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) &&
else if ((err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) &&
((uFlags & 8)==0))
err=UNZ_BADZIPFILE;
@@ -899,7 +899,7 @@ local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
return err;
}
/*
Open for reading data the current file in the zipfile.
If there is no error and the file is opened, the return value is UNZ_OK.
@@ -945,7 +945,7 @@ extern int ZEXPORT unzOpenCurrentFile (file)
}
pfile_in_zip_read_info->stream_initialised=0;
if ((s->cur_file_info.compression_method!=0) &&
(s->cur_file_info.compression_method!=Z_DEFLATED))
err=UNZ_BADZIPFILE;
@@ -964,29 +964,29 @@ extern int ZEXPORT unzOpenCurrentFile (file)
{
pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
pfile_in_zip_read_info->stream.zfree = (free_func)0;
pfile_in_zip_read_info->stream.opaque = (voidpf)0;
pfile_in_zip_read_info->stream.opaque = (voidpf)0;
err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS);
if (err == Z_OK)
pfile_in_zip_read_info->stream_initialised=1;
/* windowBits is passed < 0 to tell that there is no zlib header.
* Note that in this case inflate *requires* an extra "dummy" byte
* after the compressed stream in order to complete decompression and
* return Z_STREAM_END.
* In unzip, i don't wait absolutely Z_STREAM_END because I known the
* return Z_STREAM_END.
* In unzip, i don't wait absolutely Z_STREAM_END because I known the
* size of both compressed and uncompressed data
*/
}
pfile_in_zip_read_info->rest_read_compressed =
pfile_in_zip_read_info->rest_read_compressed =
s->cur_file_info.compressed_size ;
pfile_in_zip_read_info->rest_read_uncompressed =
pfile_in_zip_read_info->rest_read_uncompressed =
s->cur_file_info.uncompressed_size ;
pfile_in_zip_read_info->pos_in_zipfile =
s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER +
pfile_in_zip_read_info->pos_in_zipfile =
s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER +
iSizeVar;
pfile_in_zip_read_info->stream.avail_in = (uInt)0;
@@ -1031,9 +1031,9 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len)
pfile_in_zip_read_info->stream.next_out = (Bytef*)buf;
pfile_in_zip_read_info->stream.avail_out = (uInt)len;
if (len>pfile_in_zip_read_info->rest_read_uncompressed)
pfile_in_zip_read_info->stream.avail_out =
pfile_in_zip_read_info->stream.avail_out =
(uInt)pfile_in_zip_read_info->rest_read_uncompressed;
while (pfile_in_zip_read_info->stream.avail_out>0)
@@ -1047,7 +1047,7 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len)
if (uReadThis == 0)
return UNZ_EOF;
if (fseek(pfile_in_zip_read_info->file,
pfile_in_zip_read_info->pos_in_zipfile +
pfile_in_zip_read_info->pos_in_zipfile +
pfile_in_zip_read_info->byte_before_the_zipfile,SEEK_SET)!=0)
return UNZ_ERRNO;
if (fread(pfile_in_zip_read_info->read_buffer,uReadThis,1,
@@ -1056,8 +1056,8 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len)
pfile_in_zip_read_info->pos_in_zipfile += uReadThis;
pfile_in_zip_read_info->rest_read_compressed-=uReadThis;
pfile_in_zip_read_info->stream.next_in =
pfile_in_zip_read_info->stream.next_in =
(Bytef*)pfile_in_zip_read_info->read_buffer;
pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis;
}
@@ -1065,16 +1065,16 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len)
if (pfile_in_zip_read_info->compression_method==0)
{
uInt uDoCopy,i ;
if (pfile_in_zip_read_info->stream.avail_out <
if (pfile_in_zip_read_info->stream.avail_out <
pfile_in_zip_read_info->stream.avail_in)
uDoCopy = pfile_in_zip_read_info->stream.avail_out ;
else
uDoCopy = pfile_in_zip_read_info->stream.avail_in ;
for (i=0;i<uDoCopy;i++)
*(pfile_in_zip_read_info->stream.next_out+i) =
*(pfile_in_zip_read_info->stream.next_in+i);
pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,
pfile_in_zip_read_info->stream.next_out,
uDoCopy);
@@ -1106,8 +1106,8 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len)
uTotalOutAfter = pfile_in_zip_read_info->stream.total_out;
uOutThis = uTotalOutAfter-uTotalOutBefore;
pfile_in_zip_read_info->crc32 =
pfile_in_zip_read_info->crc32 =
crc32(pfile_in_zip_read_info->crc32,bufBefore,
(uInt)(uOutThis));
@@ -1115,10 +1115,10 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len)
uOutThis;
iRead += (uInt)(uTotalOutAfter - uTotalOutBefore);
if (err==Z_STREAM_END)
return (iRead==0) ? UNZ_EOF : iRead;
if (err!=Z_OK)
if (err!=Z_OK)
break;
}
}
@@ -1150,7 +1150,7 @@ extern z_off_t ZEXPORT unztell (file)
/*
return 1 if the end of file was reached, 0 elsewhere
return 1 if the end of file was reached, 0 elsewhere
*/
extern int ZEXPORT unzeof (file)
unzFile file;
@@ -1164,7 +1164,7 @@ extern int ZEXPORT unzeof (file)
if (pfile_in_zip_read_info==NULL)
return UNZ_PARAMERROR;
if (pfile_in_zip_read_info->rest_read_uncompressed == 0)
return 1;
else
@@ -1182,7 +1182,7 @@ extern int ZEXPORT unzeof (file)
if buf!=NULL, len is the size of the buffer, the extra header is copied in
buf.
the return value is the number of bytes copied in buf, or (if <0)
the return value is the number of bytes copied in buf, or (if <0)
the error code
*/
extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
@@ -1203,12 +1203,12 @@ extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
if (pfile_in_zip_read_info==NULL)
return UNZ_PARAMERROR;
size_to_read = (pfile_in_zip_read_info->size_local_extrafield -
size_to_read = (pfile_in_zip_read_info->size_local_extrafield -
pfile_in_zip_read_info->pos_local_extrafield);
if (buf==NULL)
return (int)size_to_read;
if (len>size_to_read)
read_now = (uInt)size_to_read;
else
@@ -1216,9 +1216,9 @@ extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
if (read_now==0)
return 0;
if (fseek(pfile_in_zip_read_info->file,
pfile_in_zip_read_info->offset_local_extrafield +
pfile_in_zip_read_info->offset_local_extrafield +
pfile_in_zip_read_info->pos_local_extrafield,SEEK_SET)!=0)
return UNZ_ERRNO;

View File

@@ -5,7 +5,7 @@
#ifdef __WIN32__
#include <windows.h>
#include <sys/stat.h>
#ifdef __WIN32DBG__
#include <crtdbg.h>
#endif
@@ -42,7 +42,7 @@ int Png_Dump(const char * filename, unsigned short width, unsigned short height,
{
return (-1);
}
fake_pal.red = 0;
fake_pal.green = 0;
fake_pal.blue = 0;
@@ -52,14 +52,14 @@ int Png_Dump(const char * filename, unsigned short width, unsigned short height,
user_error_fn*/NULL, NULL/*user_warning_fn*/);
if (!png_ptr)
return (-1);
/*set png I/O source.*/
png_init_io(png_ptr, fp);
/* set the zlib compression level */
png_set_compression_level(png_ptr,
Z_BEST_COMPRESSION);
/* set other zlib parameters */
png_set_compression_mem_level(png_ptr, 8);
png_set_compression_strategy(png_ptr,
@@ -77,12 +77,12 @@ int Png_Dump(const char * filename, unsigned short width, unsigned short height,
return (-1);
}
/*set a lot of image info (code adapted from libpng documentation!)*/
png_set_IHDR(png_ptr, info_ptr, width, height,
8, PNG_COLOR_TYPE_RGB_ALPHA, PNG_INTERLACE_NONE,
PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
info_ptr->color_type=PNG_COLOR_TYPE_RGB_ALPHA;
/*Allocate an array of scanline pointers*/
@@ -107,10 +107,10 @@ int Png_Dump(const char * filename, unsigned short width, unsigned short height,
/*close file*/
fclose(fp);
/*Destroy PNG structs*/
png_destroy_write_struct(&png_ptr, &info_ptr);
/*clean up dynamically allocated RAM.*/
free(row_pointers);

View File

@@ -1,4 +1,4 @@
/* unzip.h -- IO for uncompress .zip files using zlib
/* unzip.h -- IO for uncompress .zip files using zlib
Version 0.15 beta, Mar 19th, 1998,
Copyright (C) 1998 Gilles Vollant
@@ -33,7 +33,7 @@
*/
/* for more info about .ZIP format, see
/* for more info about .ZIP format, see
ftp://ftp.cdrom.com/pub/infozip/doc/appnote-970311-iz.zip
PkWare has also a specification at :
ftp://ftp.pkware.com/probdesc.zip */
@@ -50,7 +50,7 @@ extern "C" {
#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP)
/* like the STRICT of WIN32, we define a pointer that cannot be converted
from (void*) without cast */
typedef struct TagunzFile__ { int unused; } unzFile__;
typedef struct TagunzFile__ { int unused; } unzFile__;
typedef unzFile__ *unzFile;
#else
typedef voidp unzFile;
@@ -67,7 +67,7 @@ typedef voidp unzFile;
#define UNZ_CRCERROR (-105)
/* tm_unz contain date/time info */
typedef struct tm_unz_s
typedef struct tm_unz_s
{
uInt tm_sec; /* seconds after the minute - [0,59] */
uInt tm_min; /* minutes after the hour - [0,59] */
@@ -96,8 +96,8 @@ typedef struct unz_file_info_s
uLong compression_method; /* compression method 2 bytes */
uLong dosDate; /* last mod file date in Dos fmt 4 bytes */
uLong crc; /* crc-32 4 bytes */
uLong compressed_size; /* compressed size 4 bytes */
uLong uncompressed_size; /* uncompressed size 4 bytes */
uLong compressed_size; /* compressed size 4 bytes */
uLong uncompressed_size; /* uncompressed size 4 bytes */
uLong size_filename; /* filename length 2 bytes */
uLong size_file_extra; /* extra field length 2 bytes */
uLong size_file_comment; /* file comment length 2 bytes */
@@ -174,7 +174,7 @@ extern int ZEXPORT unzGoToNextFile OF((unzFile file));
return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
*/
extern int ZEXPORT unzLocateFile OF((unzFile file,
extern int ZEXPORT unzLocateFile OF((unzFile file,
const char *szFileName,
int iCaseSensitivity));
/*
@@ -225,8 +225,8 @@ extern int ZEXPORT unzCloseCurrentFile OF((unzFile file));
Return UNZ_CRCERROR if all the file was read but the CRC is not good
*/
extern int ZEXPORT unzReadCurrentFile OF((unzFile file,
extern int ZEXPORT unzReadCurrentFile OF((unzFile file,
voidp buf,
unsigned len));
/*
@@ -247,7 +247,7 @@ extern z_off_t ZEXPORT unztell OF((unzFile file));
extern int ZEXPORT unzeof OF((unzFile file));
/*
return 1 if the end of file was reached, 0 elsewhere
return 1 if the end of file was reached, 0 elsewhere
*/
extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file,
@@ -262,7 +262,7 @@ extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file,
if buf!=NULL, len is the size of the buffer, the extra header is copied in
buf.
the return value is the number of bytes copied in buf, or (if <0)
the return value is the number of bytes copied in buf, or (if <0)
the error code
*/

View File

@@ -195,13 +195,13 @@ static void display_help()
put_line(" C = C (Chat first), L (load game first)");
put_line(" D = N (Stay in ZSNES after disconnect), Q (Quit after disconnect)");
put_line(" E = # of connections (Keep it 2 for now)");
#ifdef __WIN32__
#ifdef __WIN32__
put_line(" eg: ZSNESW /UCCN2 nickname d:\\snesroms 202.36.124.28");
#else
put_line(" eg: zsnes /UCCN2 nickname /home/zuser/snesroms 202.36.124.28");
#endif
#endif
exit(1);
}
@@ -488,7 +488,7 @@ static void handle_params(int argc, char *argv[])
{
ZMVRawDump = 1;
}
else if (tolower(argv[i][1]) == 'o' && tolower(argv[i][2]) == 'm') //Enable MMX support
{
MMXSupport = 1;
@@ -533,7 +533,7 @@ static void handle_params(int argc, char *argv[])
exit(1);
}
}
else
{
display_help();

View File

@@ -649,7 +649,7 @@ static size_t pad_bit_encoder(unsigned char pad, unsigned char *buffer, size_t s
case 1:
last_state = zmv_vars.last_joy_state.A;
break;
case 2:
last_state = zmv_vars.last_joy_state.B;
break;
@@ -664,7 +664,7 @@ static size_t pad_bit_encoder(unsigned char pad, unsigned char *buffer, size_t s
case 5:
last_state = zmv_vars.last_joy_state.E;
break;
break;
}
switch (pad)
@@ -674,15 +674,15 @@ static size_t pad_bit_encoder(unsigned char pad, unsigned char *buffer, size_t s
{
unsigned int xdata = (zmv_vars.last_joy_state.latchx - 40) & 0xFF;
unsigned int ydata = zmv_vars.last_joy_state.latchy & 0xFF;
skip_bits = bit_encoder(last_state, SCOPE_MASK, buffer, skip_bits);
skip_bits = bit_encoder(xdata, 0x000000FF, buffer, skip_bits);
skip_bits = bit_encoder(ydata, 0x000000FF, buffer, skip_bits);
break;
}
case 1:
case 1:
if ((zmv_vars.inputs_enabled & ((pad == 1) ? BIT(0xA) : BIT(0x9)))) //Mouse ?
{
skip_bits = bit_encoder(last_state, MOUSE_MASK, buffer, skip_bits);
@@ -715,7 +715,7 @@ static size_t pad_bit_decoder(unsigned char pad, unsigned char *buffer, size_t s
last_state = &zmv_vars.last_joy_state.A;
input_enable_mask = BIT(0xF);
break;
case 2:
last_state = &zmv_vars.last_joy_state.B;
input_enable_mask = BIT(0xE);
@@ -734,7 +734,7 @@ static size_t pad_bit_decoder(unsigned char pad, unsigned char *buffer, size_t s
case 5:
last_state = &zmv_vars.last_joy_state.E;
input_enable_mask = BIT(0xB);
break;
break;
}
switch (pad)
@@ -743,7 +743,7 @@ static size_t pad_bit_decoder(unsigned char pad, unsigned char *buffer, size_t s
if ((zmv_vars.inputs_enabled & BIT(0x8))) //Super Scope
{
unsigned int xdata, ydata;
skip_bits = bit_decoder(last_state, SCOPE_MASK, buffer, skip_bits);
skip_bits = bit_decoder(&xdata, 0x000000FF, buffer, skip_bits);
skip_bits = bit_decoder(&ydata, 0x000000FF, buffer, skip_bits);
@@ -752,10 +752,10 @@ static size_t pad_bit_decoder(unsigned char pad, unsigned char *buffer, size_t s
zmv_vars.last_joy_state.latchx = (unsigned short)(xdata + 40);
zmv_vars.last_joy_state.latchy = (unsigned short)ydata;
break;
break;
}
case 1:
case 1:
if (zmv_vars.inputs_enabled & ((pad == 1) ? BIT(0xA) : BIT(0x9))) //Mouse ?
{
skip_bits = bit_decoder(last_state, MOUSE_MASK, buffer, skip_bits);
@@ -971,7 +971,7 @@ static void record_pad(unsigned char pad, unsigned char *flag, unsigned char *bu
current_state = JoyAOrig;
bit_mask = BIT(7);
break;
case 2:
last_state = &zmv_vars.last_joy_state.B;
current_state = JoyBOrig;
@@ -994,16 +994,16 @@ static void record_pad(unsigned char pad, unsigned char *flag, unsigned char *bu
last_state = &zmv_vars.last_joy_state.E;
current_state = JoyEOrig;
bit_mask = BIT(3);
break;
break;
}
if ((current_state != *last_state) ||
((zmv_vars.inputs_enabled & BIT(0x8)) &&
((zmv_vars.last_joy_state.latchx != latchx) || (zmv_vars.last_joy_state.latchy != latchy))))
{
zmv_vars.last_joy_state.latchx = latchx;
zmv_vars.last_joy_state.latchy = latchy;
*last_state = current_state;
*flag |= bit_mask;
*skip_bits = pad_bit_encoder(pad, buffer, *skip_bits);
@@ -1024,13 +1024,13 @@ static void zmv_record(bool pause, unsigned char combos_used, unsigned char slow
zmv_vars.header.key_combos += combos_used;
debug_input;
record_pad(1, &flag, press_buf, &skip_bits);
record_pad(2, &flag, press_buf, &skip_bits);
record_pad(3, &flag, press_buf, &skip_bits);
record_pad(4, &flag, press_buf, &skip_bits);
record_pad(5, &flag, press_buf, &skip_bits);
if (flag)
{
unsigned char buffer_used = skip_bits/8 + ((skip_bits&7) ? 1 : 0);
@@ -1225,7 +1225,7 @@ static void replay_pad(unsigned char pad, unsigned char flag, unsigned char *buf
current_state = &JoyAOrig;
bit_mask = BIT(7);
break;
case 2:
last_state = &zmv_vars.last_joy_state.B;
current_state = &JoyBOrig;
@@ -1248,7 +1248,7 @@ static void replay_pad(unsigned char pad, unsigned char flag, unsigned char *buf
last_state = &zmv_vars.last_joy_state.E;
current_state = &JoyEOrig;
bit_mask = BIT(3);
break;
break;
}
if (flag & bit_mask)
@@ -1256,7 +1256,7 @@ static void replay_pad(unsigned char pad, unsigned char flag, unsigned char *buf
size_t bits_needed = pad_bit_decoder(pad, buffer, 0);
size_t leftover_bits = (8 - (*skip_bits&7)) & 7;
bits_needed -= leftover_bits;
fread(buffer + (*skip_bits>>3), 1, (bits_needed>>3) + ((bits_needed&7) ? 1 : 0), zmv_vars.fp);
*skip_bits = pad_bit_decoder(pad, buffer, *skip_bits);
}

View File

@@ -299,13 +299,13 @@ void RestoreCVFrame()
if (PauseRewind || EMUPause)
{
PauseFrameMode = EMUPause = true;
}
}
}
copy_state_data(RewindBufferPos, memcpyrinc, csm_load_rewind);
ClearCacheCheck();
RewindTimer = ActualRewindFrames;
}
@@ -601,7 +601,7 @@ void statesaver()
INSERT_POSITION_NUMBER(txtsavemsg, txtsavenum);
INSERT_POSITION_NUMBER(txtrrsvmsg, txtrrsvnum);
//Save State code
#ifdef __LINUX__
SRAMChdir();
@@ -856,14 +856,14 @@ void stateloader (unsigned char *statename, unsigned char keycheck, unsigned cha
static unsigned char *txtconvnum = 0;
static unsigned char *txtnfndnum = 0;
static unsigned char *txtrrldnum = 0;
//Get the state number
INSERT_POSITION_NUMBER(txtloadmsg, txtloadnum);
INSERT_POSITION_NUMBER(txtconvmsg, txtconvnum);
INSERT_POSITION_NUMBER(txtnfndmsg, txtnfndnum);
INSERT_POSITION_NUMBER(txtrrldmsg, txtrrldnum);
#ifdef __LINUX__
SRAMChdir();
#endif
@@ -895,20 +895,20 @@ void stateloader (unsigned char *statename, unsigned char keycheck, unsigned cha
case 2:
if (mzt_load(statename, false))
{
Msgptr = txtrrldmsg;
MessageOn = MsgCount;
if (PauseLoad || EMUPause)
{
PauseFrameMode = EMUPause = true;
}
}
}
else
{
Msgptr = txtnfndmsg;
}
MessageOn = MsgCount;
MessageOn = MsgCount;
return;
}
@@ -922,7 +922,7 @@ void stateloader (unsigned char *statename, unsigned char keycheck, unsigned cha
if (zst_load(fhandle, 0))
{
Msgptr = txtloadmsg; // 'STATE X LOADED.'
if (PauseLoad || EMUPause)
{
PauseFrameMode = EMUPause = true;