segacrpt.c

来自「这个是延伸mame的在wince平台下的游戏模拟器的代码」· C语言 代码 · 共 1,003 行 · 第 1/4 页

C
1,003
字号
	{
		int A1;
		unsigned char temp;

		A1 = (A & 0xffcf) | ((A & 0x0010) << 1) | ((A & 0x0020) >> 1);
		if (A < A1)
		{
			temp = RAM[A];
			RAM[A] = RAM[A1];
			RAM[A1] = temp;
		}
	}
}


void pengo_decode(void)
{
	static const unsigned char xortable[32][4] =
	{
		/*       opcode                   data                     address      */
		/*  A    B    C    D         A    B    C    D                           */
		{ 0xa0,0x88,0x88,0xa0 }, { 0x28,0xa0,0x28,0xa0 },	/* ...0...0...0...0 */
		{ 0x28,0xa0,0x28,0xa0 }, { 0xa0,0x88,0x88,0xa0 },	/* ...0...0...0...1 */
		{ 0xa0,0x88,0x00,0x28 }, { 0xa0,0x88,0x00,0x28 },	/* ...0...0...1...0 */
		{ 0x08,0x20,0xa8,0x80 }, { 0xa0,0x88,0x88,0xa0 },	/* ...0...0...1...1 */
		{ 0x08,0x08,0xa8,0xa8 }, { 0x28,0xa0,0x28,0xa0 },	/* ...0...1...0...0 */
		{ 0xa0,0x88,0x00,0x28 }, { 0x08,0x08,0xa8,0xa8 },	/* ...0...1...0...1 */
		{ 0xa0,0x88,0x00,0x28 }, { 0xa0,0x88,0x00,0x28 },	/* ...0...1...1...0 */
		{ 0xa0,0x88,0x00,0x28 }, { 0x00,0x00,0x00,0x00 },	/* ...0...1...1...1 */
		{ 0x88,0x88,0x28,0x28 }, { 0xa0,0x88,0x00,0x28 },	/* ...1...0...0...0 */
		{ 0x88,0x88,0x28,0x28 }, { 0x00,0x00,0x00,0x00 },	/* ...1...0...0...1 */
		{ 0x08,0x20,0xa8,0x80 }, { 0x08,0x20,0xa8,0x80 },	/* ...1...0...1...0 */
		{ 0xa0,0x88,0x88,0xa0 }, { 0xa0,0x88,0x00,0x28 },	/* ...1...0...1...1 */
		{ 0x08,0x08,0xa8,0xa8 }, { 0x88,0x88,0x28,0x28 },	/* ...1...1...0...0 */
		{ 0x00,0x00,0x00,0x00 }, { 0x88,0x88,0x28,0x28 },	/* ...1...1...0...1 */
		{ 0x08,0x20,0xa8,0x80 }, { 0x08,0x20,0xa8,0x80 },	/* ...1...1...1...0 */
		{ 0x08,0x08,0xa8,0xa8 }, { 0xa0,0x88,0x00,0x28 }	/* ...1...1...1...1 */
	};


	sega_decode(xortable);
}


void szaxxon_decode(void)
{
	static const unsigned char xortable[32][4] =
	{
		/*       opcode                   data                     address      */
		/*  A    B    C    D         A    B    C    D                           */
		{ 0x88,0xa0,0xa0,0x88 }, { 0x28,0x28,0x88,0x88 },	/* ...0...0...0...0 */
		{ 0x08,0x20,0xa8,0x80 }, { 0x88,0x88,0x28,0x28 },	/* ...0...0...0...1 */
		{ 0xa8,0x20,0x80,0x08 }, { 0x20,0xa8,0x20,0xa8 },	/* ...0...0...1...0 */
		{ 0x88,0xa0,0xa0,0x88 }, { 0x28,0x28,0x88,0x88 },	/* ...0...0...1...1 */
		{ 0x08,0x20,0xa8,0x80 }, { 0x88,0x88,0x28,0x28 },	/* ...0...1...0...0 */
		{ 0x88,0xa0,0xa0,0x88 }, { 0x28,0x28,0x88,0x88 },	/* ...0...1...0...1 */
		{ 0xa8,0x20,0x80,0x08 }, { 0x20,0xa8,0x20,0xa8 },	/* ...0...1...1...0 */
		{ 0x08,0x20,0xa8,0x80 }, { 0x88,0x88,0x28,0x28 },	/* ...0...1...1...1 */
		{ 0x08,0x20,0xa8,0x80 }, { 0x88,0x88,0x28,0x28 },	/* ...1...0...0...0 */
		{ 0x88,0xa0,0xa0,0x88 }, { 0x28,0x28,0x88,0x88 },	/* ...1...0...0...1 */
		{ 0x88,0xa0,0xa0,0x88 }, { 0x28,0x28,0x88,0x88 },	/* ...1...0...1...0 */
		{ 0xa8,0x20,0x80,0x08 }, { 0x20,0xa8,0x20,0xa8 },	/* ...1...0...1...1 */
		{ 0xa8,0x20,0x80,0x08 }, { 0x20,0xa8,0x20,0xa8 },	/* ...1...1...0...0 */
		{ 0xa8,0x20,0x80,0x08 }, { 0x20,0xa8,0x20,0xa8 },	/* ...1...1...0...1 */
		{ 0x08,0x20,0xa8,0x80 }, { 0x88,0x88,0x28,0x28 },	/* ...1...1...1...0 */
		{ 0x88,0xa0,0xa0,0x88 }, { 0x28,0x28,0x88,0x88 }	/* ...1...1...1...1 */
	};


	sega_decode(xortable);
}


void sinbadm_decode(void)
{
	static const unsigned char xortable[32][4] =
	{
		/*       opcode                   data                     address      */
		/*  A    B    C    D         A    B    C    D                           */
		{ 0x28,0xa0,0x28,0xa0 }, { 0x88,0x88,0x28,0x28 },	/* ...0...0...0...0 */
		{ 0xa8,0xa8,0xa8,0xa8 }, { 0x00,0x28,0xa0,0x88 },	/* ...0...0...0...1 */
		{ 0xa8,0xa8,0xa8,0xa8 }, { 0x00,0x28,0xa0,0x88 },	/* ...0...0...1...0 */
		{ 0x28,0xa0,0x28,0xa0 }, { 0x88,0x88,0x28,0x28 },	/* ...0...0...1...1 */
		{ 0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff },	/* ...0...1...0...0 */
		{ 0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff },	/* ...0...1...0...1 */
		{ 0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff },	/* ...0...1...1...0 */
		{ 0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff },	/* ...0...1...1...1 */
		{ 0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0x28 },	/* ...1...0...0...0 */
		{ 0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0x28 },	/* ...1...0...0...1 */
		{ 0xff,0xff,0xff,0xff }, { 0x00,0xff,0xff,0xff },	/* ...1...0...1...0 */
		{ 0xff,0xff,0xff,0xff }, { 0x00,0xff,0xff,0xff },	/* ...1...0...1...1 */
		{ 0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0x28 },	/* ...1...1...0...0 */
		{ 0xff,0xff,0xff,0xff }, { 0xff,0xff,0x88,0xff },	/* ...1...1...0...1 */
		{ 0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0x28 },	/* ...1...1...1...0 */
		{ 0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0x28 }	/* ...1...1...1...1 */
	};

	sega_decode(xortable);
}


void regulus_decode(void)
{
	static const unsigned char xortable[32][4] =
	{
		/*       opcode                   data                     address      */
		/*  A    B    C    D         A    B    C    D                           */
		{ 0x28,0x00,0x88,0xa0 }, { 0x88,0x88,0x28,0x28 },	/* ...0...0...0...0 */
		{ 0x28,0x00,0x88,0xa0 }, { 0x28,0xa0,0x28,0xa0 },	/* ...0...0...0...1 */
		{ 0x88,0x88,0x28,0x28 }, { 0x88,0x00,0xa0,0x28 },	/* ...0...0...1...0 */
		{ 0x88,0x00,0xa0,0x28 }, { 0x28,0xa0,0x28,0xa0 },	/* ...0...0...1...1 */
		{ 0x28,0x00,0x88,0xa0 }, { 0x88,0x88,0x28,0x28 },	/* ...0...1...0...0 */
		{ 0x88,0x88,0x28,0x28 }, { 0x88,0x88,0x28,0x28 },	/* ...0...1...0...1 */
		{ 0x88,0x00,0xa0,0x28 }, { 0x88,0x00,0xa0,0x28 },	/* ...0...1...1...0 */
		{ 0xa0,0x88,0x88,0xa0 }, { 0xa0,0x88,0x88,0xa0 },	/* ...0...1...1...1 */
		{ 0x80,0xa8,0x20,0x08 }, { 0x28,0x00,0x88,0xa0 },	/* ...1...0...0...0 */
		{ 0x28,0xa0,0x28,0xa0 }, { 0x28,0x00,0x88,0xa0 },	/* ...1...0...0...1 */
		{ 0x80,0xa8,0x20,0x08 }, { 0x80,0xa8,0x20,0x08 },	/* ...1...0...1...0 */
		{ 0x28,0xa0,0x28,0xa0 }, { 0x80,0xa8,0x20,0x08 },	/* ...1...0...1...1 */
		{ 0xa0,0x88,0x88,0xa0 }, { 0x28,0x00,0x88,0xa0 },	/* ...1...1...0...0 */
		{ 0x80,0xa8,0x20,0x08 }, { 0xa0,0x88,0x88,0xa0 },	/* ...1...1...0...1 */
		{ 0xa0,0x88,0x88,0xa0 }, { 0x80,0xa8,0x20,0x08 },	/* ...1...1...1...0 */
		{ 0xa0,0x88,0x88,0xa0 }, { 0xa0,0x88,0x88,0xa0 }	/* ...1...1...1...1 */
	};


	sega_decode(xortable);
}


void mrviking_decode(void)
{
	static const unsigned char xortable[32][4] =
	{
		/*       opcode                   data                     address      */
		/*  A    B    C    D         A    B    C    D                           */
		{ 0x28,0xa0,0x28,0xa0 }, { 0x88,0x88,0x28,0x28 },	/* ...0...0...0...0 */
		{ 0x88,0x00,0xa0,0x28 }, { 0x88,0x88,0x28,0x28 },	/* ...0...0...0...1 */
		{ 0x28,0x00,0x88,0xa0 }, { 0x28,0xa0,0x28,0xa0 },	/* ...0...0...1...0 */
		{ 0x88,0x00,0xa0,0x28 }, { 0x88,0x00,0xa0,0x28 },	/* ...0...0...1...1 */
		{ 0x28,0x00,0x88,0xa0 }, { 0x88,0x88,0x28,0x28 },	/* ...0...1...0...0 */
		{ 0x88,0x88,0x28,0x28 }, { 0x28,0xa0,0x28,0xa0 },	/* ...0...1...0...1 */
		{ 0xa0,0x88,0x88,0xa0 }, { 0x28,0x00,0x88,0xa0 },	/* ...0...1...1...0 */
		{ 0xa0,0x88,0x88,0xa0 }, { 0xa0,0x88,0x88,0xa0 },	/* ...0...1...1...1 */
		{ 0x88,0x88,0x28,0x28 }, { 0x88,0x88,0x28,0x28 },	/* ...1...0...0...0 */
		{ 0x88,0x00,0xa0,0x28 }, { 0x88,0x88,0x28,0x28 },	/* ...1...0...0...1 */
		{ 0xa0,0x88,0x00,0x28 }, { 0x28,0x00,0x88,0xa0 },	/* ...1...0...1...0 */
		{ 0xa0,0x88,0x00,0x28 }, { 0x88,0x00,0xa0,0x28 },	/* ...1...0...1...1 */
		{ 0x28,0x00,0x88,0xa0 }, { 0xa0,0x88,0x00,0x28 },	/* ...1...1...0...0 */
		{ 0xa0,0x88,0x00,0x28 }, { 0xa0,0x88,0x00,0x28 },	/* ...1...1...0...1 */
		{ 0xa0,0x88,0x88,0xa0 }, { 0x28,0x00,0x88,0xa0 },	/* ...1...1...1...0 */
		{ 0xa0,0x88,0x00,0x28 }, { 0xa0,0x88,0x88,0xa0 }	/* ...1...1...1...1 */
	};


	sega_decode(xortable);
}


void swat_decode(void)
{
	static const unsigned char xortable[32][4] =
	{
		/*       opcode                   data                     address      */
		/*  A    B    C    D         A    B    C    D                           */
		{ 0x88,0x00,0xa0,0x28 }, { 0xa0,0xa0,0xa0,0xa0 },	/* ...0...0...0...0 */
		{ 0x88,0x00,0xa0,0x28 }, { 0x88,0xa0,0xa0,0x88 },	/* ...0...0...0...1 */
		{ 0xa0,0x88,0x00,0x28 }, { 0x88,0x00,0xa0,0x28 },	/* ...0...0...1...0 */
		{ 0xa0,0xa0,0xa0,0xa0 }, { 0x88,0x00,0xa0,0x28 },	/* ...0...0...1...1 */
		{ 0x28,0x28,0x88,0x88 }, { 0xa0,0xa0,0xa0,0xa0 },	/* ...0...1...0...0 */
		{ 0x88,0xa0,0xa0,0x88 }, { 0x28,0x28,0x88,0x88 },	/* ...0...1...0...1 */
		{ 0xa0,0x88,0x00,0x28 }, { 0xa0,0xa0,0xa0,0xa0 },	/* ...0...1...1...0 */
		{ 0x28,0x28,0x88,0x88 }, { 0xa0,0xa0,0xa0,0xa0 },	/* ...0...1...1...1 */
		{ 0xa0,0x88,0x00,0x28 }, { 0xa0,0x88,0x00,0x28 },	/* ...1...0...0...0 */
		{ 0xa0,0x28,0xa0,0x28 }, { 0x88,0xa0,0xa0,0x88 },	/* ...1...0...0...1 */
		{ 0xa0,0x28,0xa0,0x28 }, { 0xa0,0x28,0xa0,0x28 },	/* ...1...0...1...0 */
		{ 0xa0,0x28,0xa0,0x28 }, { 0xa0,0x28,0xa0,0x28 },	/* ...1...0...1...1 */
		{ 0xa0,0x88,0x00,0x28 }, { 0xa0,0x88,0x00,0x28 },	/* ...1...1...0...0 */
		{ 0x88,0xa0,0xa0,0x88 }, { 0x28,0x28,0x88,0x88 },	/* ...1...1...0...1 */
		{ 0xa0,0xa0,0xa0,0xa0 }, { 0xa0,0x88,0x00,0x28 },	/* ...1...1...1...0 */
		{ 0x28,0x28,0x88,0x88 }, { 0xa0,0xa0,0xa0,0xa0 }	/* ...1...1...1...1 */
	};


	sega_decode(xortable);
}


void flicky_decode(void)
{
	static const unsigned char xortable[32][4] =
	{
		/*       opcode                   data                     address      */
		/*  A    B    C    D         A    B    C    D                           */
		{ 0x08,0x80,0x20,0xa8 }, { 0xa0,0x88,0x88,0xa0 },	/* ...0...0...0...0 */
		{ 0x80,0x08,0x80,0x08 }, { 0x88,0x88,0x28,0x28 },	/* ...0...0...0...1 */
		{ 0xa0,0x88,0x88,0xa0 }, { 0x28,0x00,0x00,0x28 },	/* ...0...0...1...0 */
		{ 0x28,0x00,0x00,0x28 }, { 0xa0,0x88,0x88,0xa0 },	/* ...0...0...1...1 */
		{ 0x08,0x80,0x20,0xa8 }, { 0x80,0x08,0x80,0x08 },	/* ...0...1...0...0 */
		{ 0x80,0x08,0x80,0x08 }, { 0x88,0x88,0x28,0x28 },	/* ...0...1...0...1 */
		{ 0x28,0x00,0x00,0x28 }, { 0x28,0x00,0x00,0x28 },	/* ...0...1...1...0 */
		{ 0x28,0x00,0x00,0x28 }, { 0x88,0x88,0x28,0x28 },	/* ...0...1...1...1 */
		{ 0x08,0x80,0x20,0xa8 }, { 0xa8,0x80,0x08,0x20 },	/* ...1...0...0...0 */
		{ 0xa8,0x80,0x08,0x20 }, { 0x80,0x08,0x80,0x08 },	/* ...1...0...0...1 */
		{ 0x28,0x00,0x00,0x28 }, { 0x88,0x88,0x28,0x28 },	/* ...1...0...1...0 */
		{ 0xa8,0x80,0x08,0x20 }, { 0x88,0x88,0x28,0x28 },	/* ...1...0...1...1 */
		{ 0x08,0x80,0x20,0xa8 }, { 0x80,0x08,0x80,0x08 },	/* ...1...1...0...0 */
		{ 0xa8,0x80,0x08,0x20 }, { 0x80,0x08,0x80,0x08 },	/* ...1...1...0...1 */
		{ 0x28,0x00,0x00,0x28 }, { 0x28,0x00,0x00,0x28 },	/* ...1...1...1...0 */
		{ 0x08,0x80,0x20,0xa8 }, { 0x88,0x88,0x28,0x28 }	/* ...1...1...1...1 */
	};


	sega_decode(xortable);
}


void futspy_decode(void)
{
	static const unsigned char xortable[32][4] =
	{
		/*       opcode                   data                     address      */
		/*  A    B    C    D         A    B    C    D                           */
		{ 0x28,0x00,0x00,0x28 }, { 0x28,0x00,0x00,0x28 },	/* ...0...0...0...0 */
		{ 0x80,0x08,0x80,0x08 }, { 0x08,0x80,0x20,0xa8 },	/* ...0...0...0...1 */
		{ 0x80,0x08,0x80,0x08 }, { 0x08,0x80,0x20,0xa8 },	/* ...0...0...1...0 */
		{ 0xa0,0x88,0x00,0x28 }, { 0x20,0x20,0x80,0x80 },	/* ...0...0...1...1 */
		{ 0x28,0x00,0x00,0x28 }, { 0x88,0x88,0x88,0x88 },	/* ...0...1...0...0 */
		{ 0x80,0x08,0x80,0x08 }, { 0x08,0x80,0x20,0xa8 },	/* ...0...1...0...1 */
		{ 0x80,0x08,0x80,0x08 }, { 0x20,0x20,0x80,0x80 },	/* ...0...1...1...0 */
		{ 0x20,0x20,0x80,0x80 }, { 0x08,0x80,0x20,0xa8 },	/* ...0...1...1...1 */
		{ 0x88,0x88,0x88,0x88 }, { 0x28,0x00,0x00,0x28 },	/* ...1...0...0...0 */
		{ 0x80,0x08,0x80,0x08 }, { 0xa0,0x88,0x00,0x28 },	/* ...1...0...0...1 */
		{ 0x20,0x20,0x80,0x80 }, { 0x08,0x80,0x20,0xa8 },	/* ...1...0...1...0 */
		{ 0x80,0x08,0x80,0x08 }, { 0x20,0x20,0x80,0x80 },	/* ...1...0...1...1 */
		{ 0x88,0x88,0x88,0x88 }, { 0x88,0x88,0x88,0x88 },	/* ...1...1...0...0 */
		{ 0x80,0x08,0x80,0x08 }, { 0x08,0x80,0x20,0xa8 },	/* ...1...1...0...1 */
		{ 0x80,0x08,0x80,0x08 }, { 0x28,0x00,0x00,0x28 },	/* ...1...1...1...0 */
		{ 0x20,0x20,0x80,0x80 }, { 0xa0,0x88,0x00,0x28 }	/* ...1...1...1...1 */
	};


	sega_decode(xortable);
}


void bullfgtj_decode(void)
{
	static const unsigned char xortable[32][4] =
	{
		/*       opcode                   data                     address      */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?