private void Setup(ISnesData data) { Running = true; streamProcessor = new BsnesImportStreamProcessor(); taskManager = CreateWorkerTaskManager(); importer = CreateTraceLogImporter(data); }
public BsnesTraceLogImporter(ISnesData?snesData) { this.snesData = snesData; romSizeCached = this.snesData?.GetRomSize() ?? 0; romMapModeCached = this.snesData?.RomMapMode ?? default; InitStats(); InitObjectPool(); }
// input can be any length, and will be padded, using spaces, to the right size for SNES header public static void SetCartridgeTitle(this ISnesData @this, string utf8CartridgeTitle) { var rawShiftJisBytes = ByteUtil.GetRawShiftJisBytesFromStr(utf8CartridgeTitle); var paddedShiftJisBytes = ByteUtil.PadCartridgeTitleBytes(rawShiftJisBytes); // the BYTES need to be 21 in length. this is NOT the string length (which can be different because of multibyte chars) Debug.Assert(paddedShiftJisBytes.Length == RomUtil.LengthOfTitleName); @this.Data.RomBytes.SetBytesFrom(paddedShiftJisBytes, @this.CartridgeTitleStartingOffset); }
public void Run(ISnesData data) { Setup(data); try { Main(); taskManager.StartFinishing(); taskManager.WaitForAllTasksToComplete(); } finally { Shutdown(); } }
public static int ImportUsageMap(byte[] usageMap, ISnesData data) { return(new BsnesUsageMapImporter { usageMap = usageMap, snesData = data }.Run()); }
protected virtual BsnesTraceLogImporter CreateTraceLogImporter(ISnesData data) { // multi-threaded version // return new BsnesTraceLogImporter(data, streamProcessor.CancelToken.Token, taskManager); return(new BsnesTraceLogImporter(data)); }
protected override BsnesTraceLogImporter CreateTraceLogImporter(ISnesData data) { // single-threaded version return(new BsnesTraceLogImporter(data)); }