private void Setup(ISnesData data)
 {
     Running         = true;
     streamProcessor = new BsnesImportStreamProcessor();
     taskManager     = CreateWorkerTaskManager();
     importer        = CreateTraceLogImporter(data);
 }
Ejemplo n.º 2
0
    public BsnesTraceLogImporter(ISnesData?snesData)
    {
        this.snesData    = snesData;
        romSizeCached    = this.snesData?.GetRomSize() ?? 0;
        romMapModeCached = this.snesData?.RomMapMode ?? default;

        InitStats();
        InitObjectPool();
    }
Ejemplo n.º 3
0
    // 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();
     }
 }
Ejemplo n.º 5
0
 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));
 }