Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/BizHawk.Client.Common/movie/import/PXMImport.cs
2 views
using System.IO;

namespace BizHawk.Client.Common.movie.import
{

	// PXM files are directly compatible with binary-format PJM files, with the only
	// difference being fewer flags implemented in the header, hence just calling the
	// base class methods via a subclass.
	//
	// However, the magic number/file signature is slightly different, requiring some
	// refactoring to avoid PXM-specific code in the PJMImport class.
	[ImportExtension(".pxm")]
	class PXMImport : PJMImport
	{
		protected override void RunImport()
		{
			Bk2Movie movie = Result.Movie;
			MiscHeaderInfo info;

			movie.HeaderEntries[HeaderKeys.PLATFORM] = "PSX";

			using (var fs = SourceFile.OpenRead())
			{
				using (var br = new BinaryReader(fs))
				{
					info = parseHeader(movie, "PXM ", br);

					fs.Seek(info.controllerDataOffset, SeekOrigin.Begin);

					if (info.binaryFormat)
					{
						parseBinaryInputLog(br, movie, info);
					}
					else
					{
						parseTextInputLog(br, movie, info);
					}
				}
			}

			movie.Save();
		}
	}
}