964 lines
24 KiB
C#
964 lines
24 KiB
C#
using MAME.Core.run_interface;
|
|
|
|
namespace mame
|
|
{
|
|
public partial class Capcom
|
|
{
|
|
public static void loop_inputports_gng()
|
|
{
|
|
if (Keyboard.IsPressed(Key.D5))
|
|
{
|
|
bytes &= unchecked((byte)~0x40);
|
|
}
|
|
else
|
|
{
|
|
bytes |= 0x40;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D6))
|
|
{
|
|
bytes &= unchecked((byte)~0x80);
|
|
}
|
|
else
|
|
{
|
|
bytes |= 0x80;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D1))
|
|
{
|
|
bytes &= unchecked((byte)~0x01);
|
|
}
|
|
else
|
|
{
|
|
bytes |= 0x01;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D2))
|
|
{
|
|
bytes &= unchecked((byte)~0x02);
|
|
}
|
|
else
|
|
{
|
|
bytes |= 0x02;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D))
|
|
{
|
|
byte1 &= unchecked((byte)~0x01);
|
|
}
|
|
else
|
|
{
|
|
byte1 |= 0x01;
|
|
}
|
|
if (Keyboard.IsPressed(Key.A))
|
|
{
|
|
byte1 &= unchecked((byte)~0x02);
|
|
}
|
|
else
|
|
{
|
|
byte1 |= 0x02;
|
|
}
|
|
if (Keyboard.IsPressed(Key.S))
|
|
{
|
|
byte1 &= unchecked((byte)~0x04);
|
|
}
|
|
else
|
|
{
|
|
byte1 |= 0x04;
|
|
}
|
|
if (Keyboard.IsPressed(Key.W))
|
|
{
|
|
byte1 &= unchecked((byte)~0x08);
|
|
}
|
|
else
|
|
{
|
|
byte1 |= 0x08;
|
|
}
|
|
if (Keyboard.IsPressed(Key.J))
|
|
{
|
|
byte1 &= unchecked((byte)~0x10);
|
|
}
|
|
else
|
|
{
|
|
byte1 |= 0x10;
|
|
}
|
|
if (Keyboard.IsPressed(Key.K))
|
|
{
|
|
byte1 &= unchecked((byte)~0x20);
|
|
}
|
|
else
|
|
{
|
|
byte1 |= 0x20;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Right))
|
|
{
|
|
byte2 &= unchecked((byte)~0x01);
|
|
}
|
|
else
|
|
{
|
|
byte2 |= 0x01;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Left))
|
|
{
|
|
byte2 &= unchecked((byte)~0x02);
|
|
}
|
|
else
|
|
{
|
|
byte2 |= 0x02;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Down))
|
|
{
|
|
byte2 &= unchecked((byte)~0x04);
|
|
}
|
|
else
|
|
{
|
|
byte2 |= 0x04;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Up))
|
|
{
|
|
byte2 &= unchecked((byte)~0x08);
|
|
}
|
|
else
|
|
{
|
|
byte2 |= 0x08;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad1))
|
|
{
|
|
byte2 &= unchecked((byte)~0x10);
|
|
}
|
|
else
|
|
{
|
|
byte2 |= 0x10;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad2))
|
|
{
|
|
byte2 &= unchecked((byte)~0x20);
|
|
}
|
|
else
|
|
{
|
|
byte2 |= 0x20;
|
|
}
|
|
if (Keyboard.IsPressed(Key.R))
|
|
{
|
|
bytes &= unchecked((byte)~0x20);
|
|
}
|
|
else
|
|
{
|
|
bytes |= 0x20;
|
|
}
|
|
}
|
|
public static void loop_inputports_diamond()
|
|
{
|
|
if (Keyboard.IsPressed(Key.D5))
|
|
{
|
|
bytes &= unchecked((byte)~0x40);
|
|
}
|
|
else
|
|
{
|
|
bytes |= 0x40;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D6))
|
|
{
|
|
bytes &= unchecked((byte)~0x80);
|
|
}
|
|
else
|
|
{
|
|
bytes |= 0x80;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D1))
|
|
{
|
|
bytes &= unchecked((byte)~0x01);
|
|
}
|
|
else
|
|
{
|
|
bytes |= 0x01;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D2))
|
|
{
|
|
bytes &= unchecked((byte)~0x02);
|
|
}
|
|
else
|
|
{
|
|
bytes |= 0x02;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D))
|
|
{
|
|
byte1 &= unchecked((byte)~0x01);
|
|
}
|
|
else
|
|
{
|
|
byte1 |= 0x01;
|
|
}
|
|
if (Keyboard.IsPressed(Key.A))
|
|
{
|
|
byte1 &= unchecked((byte)~0x02);
|
|
}
|
|
else
|
|
{
|
|
byte1 |= 0x02;
|
|
}
|
|
if (Keyboard.IsPressed(Key.S))
|
|
{
|
|
byte1 &= unchecked((byte)~0x04);
|
|
}
|
|
else
|
|
{
|
|
byte1 |= 0x04;
|
|
}
|
|
if (Keyboard.IsPressed(Key.W))
|
|
{
|
|
byte1 &= unchecked((byte)~0x08);
|
|
}
|
|
else
|
|
{
|
|
byte1 |= 0x08;
|
|
}
|
|
if (Keyboard.IsPressed(Key.J))
|
|
{
|
|
byte1 &= unchecked((byte)~0x10);
|
|
}
|
|
else
|
|
{
|
|
byte1 |= 0x10;
|
|
}
|
|
}
|
|
public static void loop_inputports_sfus()
|
|
{
|
|
if (Keyboard.IsPressed(Key.D5))
|
|
{
|
|
short0 &= ~0x0001;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0001;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D6))
|
|
{
|
|
short0 &= ~0x0002;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0002;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D1))
|
|
{
|
|
shorts &= ~0x0001;
|
|
}
|
|
else
|
|
{
|
|
shorts |= 0x0001;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D2))
|
|
{
|
|
shorts &= ~0x0002;
|
|
}
|
|
else
|
|
{
|
|
shorts |= 0x0002;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D))
|
|
{
|
|
short1 &= ~0x0001;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0001;
|
|
}
|
|
if (Keyboard.IsPressed(Key.A))
|
|
{
|
|
short1 &= ~0x0002;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0002;
|
|
}
|
|
if (Keyboard.IsPressed(Key.S))
|
|
{
|
|
short1 &= ~0x0004;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0004;
|
|
}
|
|
if (Keyboard.IsPressed(Key.W))
|
|
{
|
|
short1 &= ~0x0008;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0008;
|
|
}
|
|
if (Keyboard.IsPressed(Key.J))
|
|
{
|
|
short1 &= ~0x0010;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0010;
|
|
}
|
|
if (Keyboard.IsPressed(Key.K))
|
|
{
|
|
short1 &= ~0x0020;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0020;
|
|
}
|
|
if (Keyboard.IsPressed(Key.L))
|
|
{
|
|
short0 &= ~0x0200;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0200;
|
|
}
|
|
if (Keyboard.IsPressed(Key.U))
|
|
{
|
|
short1 &= ~0x0040;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0040;
|
|
}
|
|
if (Keyboard.IsPressed(Key.I))
|
|
{
|
|
short1 &= ~0x0080;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0080;
|
|
}
|
|
if (Keyboard.IsPressed(Key.O))
|
|
{
|
|
short0 &= ~0x0004;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0004;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Right))
|
|
{
|
|
short1 &= ~0x0100;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0100;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Left))
|
|
{
|
|
short1 &= ~0x0200;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0200;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Down))
|
|
{
|
|
short1 &= ~0x0400;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0400;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Up))
|
|
{
|
|
short1 &= ~0x0800;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0800;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad1))
|
|
{
|
|
short1 &= ~0x1000;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x1000;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad2))
|
|
{
|
|
short1 &= ~0x2000;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x2000;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad3))
|
|
{
|
|
short0 &= ~0x0400;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0400;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad4))
|
|
{
|
|
short1 &= ~0x4000;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x4000;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad5))
|
|
{
|
|
short1 &= unchecked((short)~0x8000);
|
|
}
|
|
else
|
|
{
|
|
short1 |= unchecked((short)0x8000);
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad6))
|
|
{
|
|
short0 &= ~0x0100;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0100;
|
|
}
|
|
if (Keyboard.IsPressed(Key.R))
|
|
{
|
|
shorts &= ~0x0004;
|
|
}
|
|
else
|
|
{
|
|
shorts |= 0x0004;
|
|
}
|
|
if (Keyboard.IsPressed(Key.T))
|
|
{
|
|
//sbyte0 &= ~0x40;
|
|
}
|
|
else
|
|
{
|
|
//sbyte0 |= 0x40;
|
|
}
|
|
}
|
|
public static void loop_inputports_sfjp()
|
|
{
|
|
if (Keyboard.IsPressed(Key.D5))
|
|
{
|
|
shortc &= ~0x0001;
|
|
}
|
|
else
|
|
{
|
|
shortc |= 0x0001;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D6))
|
|
{
|
|
shortc &= ~0x0002;
|
|
}
|
|
else
|
|
{
|
|
shortc |= 0x0002;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D1))
|
|
{
|
|
shorts &= ~0x0001;
|
|
}
|
|
else
|
|
{
|
|
shorts |= 0x0001;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D2))
|
|
{
|
|
shorts &= ~0x0002;
|
|
}
|
|
else
|
|
{
|
|
shorts |= 0x0002;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D))
|
|
{
|
|
short1 &= ~0x0001;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0001;
|
|
}
|
|
if (Keyboard.IsPressed(Key.A))
|
|
{
|
|
short1 &= ~0x0002;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0002;
|
|
}
|
|
if (Keyboard.IsPressed(Key.S))
|
|
{
|
|
short1 &= ~0x0004;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0004;
|
|
}
|
|
if (Keyboard.IsPressed(Key.W))
|
|
{
|
|
short1 &= ~0x0008;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0008;
|
|
}
|
|
if (Keyboard.IsPressed(Key.J))
|
|
{
|
|
short1 &= ~0x0100;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0100;
|
|
}
|
|
if (Keyboard.IsPressed(Key.K))
|
|
{
|
|
short1 &= ~0x0200;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0200;
|
|
}
|
|
if (Keyboard.IsPressed(Key.L))
|
|
{
|
|
short1 &= ~0x0400;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x0400;
|
|
}
|
|
if (Keyboard.IsPressed(Key.U))
|
|
{
|
|
short1 &= ~0x1000;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x1000;
|
|
}
|
|
if (Keyboard.IsPressed(Key.I))
|
|
{
|
|
short1 &= ~0x2000;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x2000;
|
|
}
|
|
if (Keyboard.IsPressed(Key.O))
|
|
{
|
|
short1 &= ~0x4000;
|
|
}
|
|
else
|
|
{
|
|
short1 |= 0x4000;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Right))
|
|
{
|
|
short2 &= ~0x0001;
|
|
}
|
|
else
|
|
{
|
|
short2 |= 0x0001;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Left))
|
|
{
|
|
short2 &= ~0x0002;
|
|
}
|
|
else
|
|
{
|
|
short2 |= 0x0002;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Down))
|
|
{
|
|
short2 &= ~0x0004;
|
|
}
|
|
else
|
|
{
|
|
short2 |= 0x0004;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Up))
|
|
{
|
|
short2 &= ~0x0008;
|
|
}
|
|
else
|
|
{
|
|
short2 |= 0x0008;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad1))
|
|
{
|
|
short2 &= ~0x0100;
|
|
}
|
|
else
|
|
{
|
|
short2 |= 0x0100;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad2))
|
|
{
|
|
short2 &= ~0x0200;
|
|
}
|
|
else
|
|
{
|
|
short2 |= 0x0200;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad3))
|
|
{
|
|
short2 &= ~0x0400;
|
|
}
|
|
else
|
|
{
|
|
short2 |= 0x0400;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad4))
|
|
{
|
|
short2 &= ~0x1000;
|
|
}
|
|
else
|
|
{
|
|
short2 |= 0x1000;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad5))
|
|
{
|
|
short2 &= ~0x2000;
|
|
}
|
|
else
|
|
{
|
|
short2 |= 0x2000;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad6))
|
|
{
|
|
short2 &= ~0x4000;
|
|
}
|
|
else
|
|
{
|
|
short2 |= 0x4000;
|
|
}
|
|
if (Keyboard.IsPressed(Key.R))
|
|
{
|
|
shorts &= ~0x0004;
|
|
}
|
|
else
|
|
{
|
|
shorts |= 0x0004;
|
|
}
|
|
if (Keyboard.IsPressed(Key.T))
|
|
{
|
|
//sbyte0 &= ~0x40;
|
|
}
|
|
else
|
|
{
|
|
//sbyte0 |= 0x40;
|
|
}
|
|
}
|
|
public static void loop_inputports_sfan()
|
|
{
|
|
if (Keyboard.IsPressed(Key.D5))
|
|
{
|
|
shortc &= ~0x0001;
|
|
}
|
|
else
|
|
{
|
|
shortc |= 0x0001;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D6))
|
|
{
|
|
shortc &= ~0x0002;
|
|
}
|
|
else
|
|
{
|
|
shortc |= 0x0002;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D1))
|
|
{
|
|
shorts &= ~0x0001;
|
|
}
|
|
else
|
|
{
|
|
shorts |= 0x0001;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D2))
|
|
{
|
|
shorts &= ~0x0002;
|
|
}
|
|
else
|
|
{
|
|
shorts |= 0x0002;
|
|
}
|
|
if (Keyboard.IsPressed(Key.D))
|
|
{
|
|
short0 &= ~0x0001;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0001;
|
|
}
|
|
if (Keyboard.IsPressed(Key.A))
|
|
{
|
|
short0 &= ~0x0002;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0002;
|
|
}
|
|
if (Keyboard.IsPressed(Key.S))
|
|
{
|
|
short0 &= ~0x0004;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0004;
|
|
}
|
|
if (Keyboard.IsPressed(Key.W))
|
|
{
|
|
short0 &= ~0x0008;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0008;
|
|
}
|
|
if (Keyboard.IsPressed(Key.J))
|
|
{
|
|
sbyte1 |= 0x01;
|
|
}
|
|
else
|
|
{
|
|
sbyte1 &= ~0x01;
|
|
}
|
|
if (Keyboard.IsPressed(Key.K))
|
|
{
|
|
sbyte1 |= 0x02;
|
|
}
|
|
else
|
|
{
|
|
sbyte1 &= ~0x02;
|
|
}
|
|
if (Keyboard.IsPressed(Key.L))
|
|
{
|
|
sbyte1 |= 0x04;
|
|
}
|
|
else
|
|
{
|
|
sbyte1 &= ~0x04;
|
|
}
|
|
if (Keyboard.IsPressed(Key.U))
|
|
{
|
|
sbyte2 |= 0x01;
|
|
}
|
|
else
|
|
{
|
|
sbyte2 &= ~0x01;
|
|
}
|
|
if (Keyboard.IsPressed(Key.I))
|
|
{
|
|
sbyte2 |= 0x02;
|
|
}
|
|
else
|
|
{
|
|
sbyte2 &= ~0x02;
|
|
}
|
|
if (Keyboard.IsPressed(Key.O))
|
|
{
|
|
sbyte2 |= 0x04;
|
|
}
|
|
else
|
|
{
|
|
sbyte2 &= ~0x04;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Right))
|
|
{
|
|
short0 &= ~0x0100;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0100;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Left))
|
|
{
|
|
short0 &= ~0x0200;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0200;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Down))
|
|
{
|
|
short0 &= ~0x0400;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0400;
|
|
}
|
|
if (Keyboard.IsPressed(Key.Up))
|
|
{
|
|
short0 &= ~0x0800;
|
|
}
|
|
else
|
|
{
|
|
short0 |= 0x0800;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad1))
|
|
{
|
|
sbyte3 |= 0x01;
|
|
}
|
|
else
|
|
{
|
|
sbyte3 &= ~0x01;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad2))
|
|
{
|
|
sbyte3 |= 0x02;
|
|
}
|
|
else
|
|
{
|
|
sbyte3 &= ~0x02;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad3))
|
|
{
|
|
sbyte3 |= 0x04;
|
|
}
|
|
else
|
|
{
|
|
sbyte3 &= ~0x04;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad4))
|
|
{
|
|
sbyte4 |= 0x01;
|
|
}
|
|
else
|
|
{
|
|
sbyte4 &= ~0x01;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad5))
|
|
{
|
|
sbyte4 &= ~0x02;
|
|
}
|
|
else
|
|
{
|
|
sbyte4 |= 0x02;
|
|
}
|
|
if (Keyboard.IsPressed(Key.NumPad6))
|
|
{
|
|
sbyte4 |= 0x04;
|
|
}
|
|
else
|
|
{
|
|
sbyte4 &= ~0x04;
|
|
}
|
|
if (Keyboard.IsPressed(Key.R))
|
|
{
|
|
shorts &= ~0x0004;
|
|
}
|
|
else
|
|
{
|
|
shorts |= 0x0004;
|
|
}
|
|
if (Keyboard.IsPressed(Key.T))
|
|
{
|
|
//sbyte0 &= ~0x40;
|
|
}
|
|
else
|
|
{
|
|
//sbyte0 |= 0x40;
|
|
}
|
|
}
|
|
public static void record_port_gng()
|
|
{
|
|
if (bytes != bytes_old || byte1 != byte1_old || byte2 != byte2_old)
|
|
{
|
|
bytes_old = bytes;
|
|
byte1_old = byte1;
|
|
byte2_old = byte2;
|
|
Mame.bwRecord.Write(Video.screenstate.frame_number);
|
|
Mame.bwRecord.Write(bytes);
|
|
Mame.bwRecord.Write(byte1);
|
|
Mame.bwRecord.Write(byte2);
|
|
}
|
|
}
|
|
public static void replay_port_gng()
|
|
{
|
|
if (Inptport.bReplayRead)
|
|
{
|
|
try
|
|
{
|
|
Video.frame_number_obj = Mame.brRecord.ReadInt64();
|
|
bytes_old = Mame.brRecord.ReadByte();
|
|
byte1_old = Mame.brRecord.ReadByte();
|
|
byte2_old = Mame.brRecord.ReadByte();
|
|
}
|
|
catch
|
|
{
|
|
Mame.playState = Mame.PlayState.PLAY_REPLAYEND;
|
|
}
|
|
Inptport.bReplayRead = false;
|
|
}
|
|
if (Video.screenstate.frame_number == Video.frame_number_obj)
|
|
{
|
|
bytes = bytes_old;
|
|
byte1 = byte1_old;
|
|
byte2 = byte2_old;
|
|
Inptport.bReplayRead = true;
|
|
}
|
|
else
|
|
{
|
|
Inptport.bReplayRead = false;
|
|
}
|
|
}
|
|
public static void record_port_sf()
|
|
{
|
|
if (short0 != short0_old || short1!=short1_old|| short2!=short2_old||shorts!=shorts_old||shortc!=shortc_old|| sbyte1 != sbyte1_old || sbyte2 != sbyte2_old || sbyte3 != sbyte3_old || sbyte4 != sbyte4_old)
|
|
{
|
|
short0_old = short0;
|
|
short1_old = short1;
|
|
short2_old = short2;
|
|
shorts_old = shorts;
|
|
shortc_old = shortc;
|
|
sbyte1_old = sbyte1;
|
|
sbyte2_old = sbyte2;
|
|
sbyte3_old = sbyte3;
|
|
sbyte4_old = sbyte4;
|
|
Mame.bwRecord.Write(Video.screenstate.frame_number);
|
|
Mame.bwRecord.Write(short0);
|
|
Mame.bwRecord.Write(short1);
|
|
Mame.bwRecord.Write(short2);
|
|
Mame.bwRecord.Write(shorts);
|
|
Mame.bwRecord.Write(shortc);
|
|
Mame.bwRecord.Write(sbyte1);
|
|
Mame.bwRecord.Write(sbyte2);
|
|
Mame.bwRecord.Write(sbyte3);
|
|
Mame.bwRecord.Write(sbyte4);
|
|
}
|
|
}
|
|
public static void replay_port_sf()
|
|
{
|
|
if (Inptport.bReplayRead)
|
|
{
|
|
try
|
|
{
|
|
Video.frame_number_obj = Mame.brRecord.ReadInt64();
|
|
short0_old = Mame.brRecord.ReadInt16();
|
|
short1_old = Mame.brRecord.ReadInt16();
|
|
short2_old = Mame.brRecord.ReadInt16();
|
|
shorts_old = Mame.brRecord.ReadInt16();
|
|
shortc_old = Mame.brRecord.ReadInt16();
|
|
sbyte1_old = Mame.brRecord.ReadSByte();
|
|
sbyte2_old = Mame.brRecord.ReadSByte();
|
|
sbyte3_old = Mame.brRecord.ReadSByte();
|
|
sbyte4_old = Mame.brRecord.ReadSByte();
|
|
}
|
|
catch
|
|
{
|
|
Mame.playState = Mame.PlayState.PLAY_REPLAYEND;
|
|
}
|
|
Inptport.bReplayRead = false;
|
|
}
|
|
if (Video.screenstate.frame_number == Video.frame_number_obj)
|
|
{
|
|
short0 = short0_old;
|
|
short1 = short1_old;
|
|
short2 = short2_old;
|
|
shorts = shorts_old;
|
|
shortc = shortc_old;
|
|
sbyte1 = sbyte1_old;
|
|
sbyte2 = sbyte2_old;
|
|
sbyte3 = sbyte3_old;
|
|
sbyte4 = sbyte4_old;
|
|
Inptport.bReplayRead = true;
|
|
}
|
|
else
|
|
{
|
|
Inptport.bReplayRead = false;
|
|
}
|
|
}
|
|
}
|
|
}
|