/// <summary> /// Gets the single tag for a Cartridge. /// </summary> /// <param name="cartridge">The Cartridge to get the tag for.</param> /// <returns></returns> public CartridgeTag GetCartridgeTag(Cartridge cartridge) { lock (_syncRoot) { return(this.SingleOrDefault(ct => ct.Cartridge.Guid == cartridge.Guid)); } }
/// <summary> /// Gets a displayable full name of the author of this Cartridge. /// </summary> /// <param name="c"></param> /// <returns>The author name and company, aggregated in a presentable /// way.</returns> public static string GetFullAuthor(this Cartridge c) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); bool hasAuthor = !String.IsNullOrWhiteSpace(c.AuthorName); bool hasCompany = !String.IsNullOrWhiteSpace(c.AuthorCompany) && c.AuthorCompany != c.AuthorName; if (hasAuthor || hasCompany) { if (hasAuthor) { sb.Append(c.AuthorName); if (hasCompany) { sb.Append(" ("); } } if (hasCompany) { sb.Append(c.AuthorCompany); if (hasAuthor) { sb.Append(")"); } } } return(sb.ToString()); }
public void Add(ExpenseDTO item) { // Найти в бд связанные сущности для списания. Cartridge cart = Database.Cartridges.Get(item.Cartridge.Id); User user = Database.Users.Get(item.User.Id); Osp osp = Database.Osps.Get(item.OspId); // Найти баланс ОСП с картриджем списания. Balance balance = Database.Balances.Find(x => x.Osp.Id == item.OspId && x.Cartridge.Id == item.Cartridge.Id).FirstOrDefault(); // Вычесть из баланса количество картриджей в списании. balance.Count -= item.Count; // Найти последнее списание в ОСП. Expense lastExpense = Database.Expenses.Find(x => x.Osp.Id == item.OspId).LastOrDefault(); // Создать списание по данным DTO. Expense newExpense = new Expense() { Basis = item.Basis, Count = item.Count, Date = item.Date, Delete = item.Delete, Edit = item.Edit, Number = lastExpense is null ? 1 : lastExpense.Number + 1, Cartridge = cart, User = user, Osp = osp }; // Добавить созданное списание в бд. Database.Expenses.Create(newExpense); // Обновить баланс в БД. Database.Balances.Update(balance); // Сохранить изменения. Database.Save(); }
public Mapper001(Cartridge cartridge) { this.cartridge = cartridge; PRGOffsets[0] = 0; PRGOffsets[1] = (cartridge.PRGROM_16KBankCount - 1) * 0x4000; }
public string DeletePublicEndpoints(string cartName) { Manifest cart = Cartridge.GetCartridge(cartName); StringBuilder output = new StringBuilder(); Dictionary <string, string> env = Environ.ForGear(this.ContainerDir); try { foreach (Endpoint endpoint in cart.Endpoints) { string port = env[endpoint.PrivatePortName]; // TODO: will have to change this once prison is integrated Network.CloseFirewallPort(port); output.AppendFormat("NOTIFY_ENDPOINT_DELETE: {0} {1}", NodeConfig.Values["PUBLIC_IP"], port); } Logger.Warning(@"Deleted all public endpoints for cart {0} in gear {1}", cartName, this.Uuid); } catch (Exception ex) { Logger.Warning(@"Couldn't delete all public endpoints for cart {0} in gear {1}: {2} - {3}", cartName, this.Uuid, ex.Message, ex.StackTrace); } return(output.ToString()); }
public void MountCartridge(Cartridge cartridge) { if (cartridge == null) { throw new ArgumentNullException("cartridge"); } if (m_CurrentCartridge != null) { ReleaseCartridge(); } m_CurrentCartridge = cartridge; m_CurrentCartridge.Open(); OnCartridgeChanged(cartridge); logger.Trace("A catridge has been inserted into the slot"); logger.Trace("Cartridge Rom Header =========================="); logger.Trace("Name: " + m_CurrentCartridge.RomImage.Name); logger.Trace("Serial: " + m_CurrentCartridge.RomImage.Serial.ToString()); logger.Trace("Computed CIC: " + m_CurrentCartridge.RomImage.BootRomInformation.CIC.GetGoodName()); logger.Trace("Linked CIC: " + ((m_CurrentCartridge.LockoutKey != null) ? m_CurrentCartridge.LockoutKey.ToString() : "None")); logger.Trace("CRC1: " + m_CurrentCartridge.RomImage.CRC1.ToString("X8")); logger.Trace("CRC2: " + m_CurrentCartridge.RomImage.CRC2.ToString("X8")); logger.Trace("Region: " + m_CurrentCartridge.RomImage.Region.ToString()); logger.Trace("VI Rate: " + m_CurrentCartridge.RomImage.GetVIRate().ToString()); }
public void Run(CancellationToken token) { if (!Options.RomSpecified || !Options.RomFile.Exists) { throw new ArgumentException("The ROM path doesn't exist: " + Options.RomFile); } var rom = new Cartridge(Options); Gameboy = CreateGameboy(rom); if (Options.Headless) { Gameboy.Run(token); return; } if (Display is IRunnable runnableDisplay) { _runnables.Add(new Thread(() => runnableDisplay.Run(token)) { Priority = ThreadPriority.AboveNormal }); } _runnables.Add(new Thread(() => Gameboy.Run(token)) { Priority = ThreadPriority.AboveNormal }); _runnables.ForEach(t => t.Start()); }
private void buttonOverlay_Click(object sender, EventArgs e) { var selector = new SelectorOverlay(CurrentOverlay); selector.ShowDialog(); CurrentOverlay = selector.SelectedOverlay; if (selector.None) { buttonOverlay.BackgroundImage = Properties.Resources.none; CurrentOverlay = null; } else { if (CurrentOverlay != null) { buttonOverlay.BackgroundImage = CurrentOverlay.Image; if (CurrentOverlay.Asociate) { CurrentCartridge = Cartridge.Create(CurrentOverlay.Cartridge); buttonCart.Image = GetCartridgeImage(CurrentOverlay.Cartridge); } } } }
public CartridgeTest() { var obj = Resources.ResourceManager.GetObject("sample1"); var binaryStream = new MemoryStream((byte[])obj); sut = new Cartridge(binaryStream); }
public async Task <IActionResult> SendCartrige(Guid?id, [Bind("Id", "InventoryNumber", "PlaceId")] Cartridge cartrige) { if (cartrige.Id != id) { return(NotFound()); } if (!ModelState.IsValid) { ViewBag.Places = _context.Offices.Include(p => p.City); return(View(cartrige)); } cartrige.PendingConfirmation = true; try { var entry = _context.Cartridges.Attach(cartrige); entry.Property(c => c.PlaceId).IsModified = true; entry.Property(c => c.PendingConfirmation).IsModified = true; await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (_context.Cartridges.Any(c => c.Id == id)) { return(NotFound()); } } return(RedirectToAction(nameof(Index))); }
public ScreenController(AppDelegate appDelegate, Cartridge cart, Boolean restore) { // Save for later use this.appDelegate = appDelegate; this.cart = cart; this.restore = restore; // Set color of NavigationBar and NavigationButtons (TintColor) if (new Version(UIDevice.CurrentDevice.SystemVersion) >= new Version(7, 0)) { NavigationBar.SetBackgroundImage(Images.BlueTop, UIBarMetrics.Default); } else { NavigationBar.SetBackgroundImage(Images.Blue, UIBarMetrics.Default); } // Create Location Manager locationManager = new CLLocationManager(); locationManager.DesiredAccuracy = CLLocation.AccurracyBestForNavigation; if (CLLocationManager.LocationServicesEnabled) { locationManager.StartUpdatingLocation(); } // Now check, if location is accurate enough checkLocation = new CheckLocation(this, locationManager); PushViewController(checkLocation, true); }
static void Main(string[] args) { var cart = new Cartridge(); cart.LoadFromFile(@"/home/jp/ROMs/Tetris.gb"); var mmu = new Mmu(); var cpu = new Cpu(mmu, new Registers()); var gameboy = new GameBoy(cpu, mmu, cart); gameboy.PowerUp(); gameboy.Cpu.Registers.PC.Value = 0x00; var cycles = 0; while (true) { gameboy.Cpu.Cycle(); cycles++; if(cpu.Registers.PC.Value == 0x00e9) { Console.WriteLine("End of boot"); Console.ReadLine(); } Console.WriteLine($"Cycle: {cycles}"); // Hack: until we emulate interrupts properly, just set the vblank manually gameboy.Mmu.WriteByte(0xFF44, 144); } }
static void Main(string[] args) { var rifleInfo = new RifleInfo { Name = "My Rifle", BarrelTwist = Length.FromInches(11.25), //1:11.25 ZeroingConditions = new WeatherCondition { Altitude = Length.FromMeters(0), //sea level Barometer = Pressure.FromPsi(14.7), //sea level RelativeHumidity = 0.5, //in percentage from 0.0 to 1.0 (0% - 100%) Temperature = Temperature.FromDegreesCelsius(30) } }; var ammoInfo = new Cartridge { MuzzleVelocity = Speed.FromMetersPerSecond(790), BC = 0.505, DragFunction = DragFunction.G1, Name = "My Ammo", WeightGrains = 175, Length = Length.FromInches(1.240), Caliber = Length.FromInches(0.308) }; var scopeInfo = new Scope { Name = "My Scope", Height = Length.FromCentimeters(4), ZeroDistance = Length.FromMeters(100), ElevationClicksPerMOA = 1, WindageClicksPerMOA = 0.5 }; var locationInfo = new ShotLocationInfo { Latitude = 45, //degrees ShotAzimuth = 270 //degrees -> west }; var currentWeatherConditions = new WeatherCondition { Altitude = Length.FromMeters(0), //sea level Barometer = Pressure.FromPsi(14.7), //sea level RelativeHumidity = 0.5, //in percentage from 0.0 to 1.0 (0% - 100%) Temperature = Temperature.FromDegreesCelsius(30) }; var rifle = new Rifle(rifleInfo, scopeInfo, ammoInfo); var solution = rifle.Solve( 0.0, //shooting angle Speed.FromKilometersPerHour(10), 90, //wind direction angle (degrees) Length.FromMeters(500), currentWeatherConditions, locationInfo); }
public Gameboy( GameboyOptions options, Cartridge rom, IDisplay display, IController controller, ISoundOutput soundOutput, SerialEndpoint serialEndpoint) { _display = display; _gbc = rom.Gbc; SpeedMode = new SpeedMode(); var interruptManager = new InterruptManager(_gbc); _timer = new Timer(interruptManager, SpeedMode); Mmu = new Mmu(); var oamRam = new Ram(0xfe00, 0x00a0); _dma = new Dma(Mmu, oamRam, SpeedMode); _gpu = new Gpu(display, interruptManager, _dma, oamRam, _gbc); _hdma = new Hdma(Mmu); _sound = new Sound(soundOutput, _gbc); _serialPort = new SerialPort(interruptManager, serialEndpoint, SpeedMode); Mmu.AddAddressSpace(rom); Mmu.AddAddressSpace(_gpu); Mmu.AddAddressSpace(new Joypad(interruptManager, controller)); Mmu.AddAddressSpace(interruptManager); Mmu.AddAddressSpace(_serialPort); Mmu.AddAddressSpace(_timer); Mmu.AddAddressSpace(_dma); Mmu.AddAddressSpace(_sound); Mmu.AddAddressSpace(new Ram(0xc000, 0x1000)); if (_gbc) { Mmu.AddAddressSpace(SpeedMode); Mmu.AddAddressSpace(_hdma); Mmu.AddAddressSpace(new GbcRam()); Mmu.AddAddressSpace(new UndocumentedGbcRegisters()); } else { Mmu.AddAddressSpace(new Ram(0xd000, 0x1000)); } Mmu.AddAddressSpace(new Ram(0xff80, 0x7f)); Mmu.AddAddressSpace(new ShadowAddressSpace(Mmu, 0xe000, 0xc000, 0x1e00)); Cpu = new Cpu(Mmu, interruptManager, _gpu, display, SpeedMode); interruptManager.DisableInterrupts(false); if (!options.UseBootstrap) { InitiliseRegisters(); } }
void Start() { //int dis = Screen.currentResolution.refreshRate; //QualitySettings.vSyncCount = 2; Cartridge cart = new Cartridge(); processor = new NLuaPicoEmulator(); /* * WWW www = new WWW(filename); * while(!www.isDone); * * * cart.LoadFromP8PNG(new MemoryStream(www.bytes)); */ cart.LoadFromP8PNG(new FileStream(filename, FileMode.Open)); // Load script processor.LoadCartridge(cart); //processor2.LoadCartridge(cart); mesh.material.SetTexture("_MainTex", processor.Texture); //mesh2.material.SetTexture("_MainTex", processor2.Texture); /* * processor.Run(@"a = {5,6} b = {""haha""}"); * processor.Run(@"add(a, b)"); * processor.Run(@"foreach(a, dprint)"); * processor.Run(@"del(a, b)"); * processor.Run(@"foreach(a, dprint)"); * * processor.Run(@"function next_room() * dprint(""next_room"") * if room.x==2 and room.y==1 then * music(30,500,7) * elseif room.x==3 and room.y==1 then * music(20,500,7) * elseif room.x==4 and room.y==2 then * music(30,500,7) * elseif room.x==5 and room.y==3 then * music(30,500,7) * end * * if room.x==7 then * load_room(0,room.y+1) * else * load_room(room.x+1,room.y) * end * end");*/ #if UNITY_EDITOR QualitySettings.vSyncCount = 0; // VSync must be disabled #endif Application.targetFrameRate = 30; initialized = true; }
public void ReleaseCartridge() { if (m_CurrentCartridge != null) { m_CurrentCartridge = null; OnCartridgeChanged(null); } }
public void CorrectCartTypeRead() { cart = new Cartridge(testCartFile); Assert.That(cart.Info.Type, Is.EqualTo(CartridgeType.MBC1)); cart = new Cartridge(testCartFileRam); Assert.That(cart.Info.Type, Is.EqualTo(CartridgeType.MBC1_RAM_BATTERY)); }
public void MountCartridge(Cartridge cartridge) { if (this.ContainsKey(c_CartAddress)) throw new InvalidOperationException("There is a cartridge already mounted"); m_CartSize = cartridge.PiCartridgeStream.Length; Add(c_CartAddress, cartridge.PiCartridgeStream); }
public ActionResult DeleteConfirmed(int id) { Cartridge cartridge = db.Cartridges.Find(id); db.Cartridges.Remove(cartridge); db.SaveChanges(); return(RedirectToAction("Index")); }
public void Setup() { var c = GetTestCartridge(); Assert.IsNotNull(c); cartridge = c; }
public ActionResult DeleteConfirmed(int id) { Cartridge cartridge = db.CartridgeRepository.GetByID(id); db.CartridgeRepository.Delete(cartridge); db.Save(); return(RedirectToAction("Index")); }
public Cartridge Update(Cartridge cartridgeChanges) { var cartridge = context.Cartridges.Attach(cartridgeChanges); cartridge.State = Microsoft.EntityFrameworkCore.EntityState.Modified; context.SaveChanges(); return(cartridgeChanges); }
private void SyncAllByteArrayDomains() { SyncByteArrayDomain("BIOS1", BIOS01); SyncByteArrayDomain("BIOS2", BIOS02); Cartridge.SyncByteArrayDomain(this); //SyncByteArrayDomain("ROM", Rom); SyncByteArrayDomain("VRAM", VRAM); }
public Memory(Cartridge cartridge, GPU gpu, CPURegisters cpuRegisters, GPURegisters gpuRegisters, Keyboard keyboard) { this.cartridge = cartridge; this.gpu = gpu; this.cpuRegisters = cpuRegisters; this.gpuRegisters = gpuRegisters; this.keyboard = keyboard; }
static void Main(string[] args) { Cartridge c = null; Machine machine = Machine.FromType("Uprint SE"); c = new Cartridge(encrypted, machine, eepromUID); }
public void InsertCartridge(Cartridge cartridge) { if (gameThread.IsBusy) { throw new InvalidOperationException("Game is running."); } memory.Cartridge = cartridge; }
protected bool addFactoryCartridge(Brass brass, Bullet bullet, CartridgeLoad cartridgeLoad, bool addToStore) { try { using (var transaction = new TransactionScope()) { int brassId; if (this.brasses.OfType <Brass>().Where(b => b.CaliberId == brass.CaliberId && b.ManufacturerId == brass.ManufacturerId && b.MaterialId == brass.MaterialId && brass.TimesFired == 0).Any()) { var existingBrass = this.brasses.OfType <Brass>().Where(b => b.CaliberId == brass.CaliberId && b.ManufacturerId == brass.ManufacturerId && b.MaterialId == brass.MaterialId && b.TimesFired == 0).First(); brassId = existingBrass.Id; } else { brass.TimesFired = 0; brassId = this.brassService.Add(brass); } Bullet existingBullet; int bulletId; var calDiameter = this.calibers.OfType <Caliber>().Where(c => c.Id == brass.CaliberId).First(); bullet.Diameter = calDiameter.Diameter; if (this.bullets.OfType <Bullet>().Where(b => b.Diameter == bullet.Diameter && b.ManufacturerId == bullet.ManufacturerId && b.MaterialId == bullet.MaterialId && b.Mass == bullet.Mass).Any()) { existingBullet = this.bullets.OfType <Bullet>().Where(b => b.Diameter == bullet.Diameter && b.ManufacturerId == bullet.ManufacturerId && b.MaterialId == bullet.MaterialId && b.Mass == bullet.Mass).First(); bulletId = existingBullet.Id; } else { bullet.DiameterUnitId = calDiameter.DiameterUnitId; bulletId = this.bulletService.Add(bullet); } cartridgeLoad.BulletId = bulletId; var cartridgeLoadId = this.cartridgeLoadService.Add(cartridgeLoad); var cartridge = new Cartridge { CartridgeLoadId = cartridgeLoadId, BrassId = brassId, ManufacturerId = brass.ManufacturerId }; var cartridgeId = this.cartridgeService.Add(cartridge); if (addToStore) { } transaction.Complete(); } return(true); } catch (Exception ex) { return(false); } }
public override void RowSelected(UITableView tableView, NSIndexPath indexPath) { Cartridge activeCart = cartList [indexPath.Row]; if (OnSelect != null) { OnSelect(activeCart); } }
public void OnSelect(Cartridge cart) { if (cartDetail == null) { cartDetail = new CartridgeDetail(appDelegate); } NavigationController.PushViewController(cartDetail, true); cartDetail.Cartridge = cart; }
public GameBoy() { var ram = new Ram(); var cartridge = new Cartridge(); _memory = new MemoryController(ram, cartridge); _cpu = new Cpu(_memory); _compositor = new Compositor(_memory); }
private void OpenFileCommandExecute() { cartridge = OpenFileService.OpenCartridgeFile(); if (cartridge != null) { console.InsertCartridge(cartridge); (Reset as RelayCommand).Execute(); } }
protected override void Fire(Cartridge cartridge) { GameObject projectile = cartridge.InstantiateProjectile; projectile.transform.position = barrelDirection.position; projectile.transform.rotation = barrelDirection.rotation; projectile.GetComponent<Projectile>().RiflingTwist = riflingTwist; //检查是否配置消音器 if (HasInstalled("Silencer")) { Debug.LogWarning("This function is currently not available!"); return; } //生成火花 foreach (Transform flameEmissionPoint in flameEmissionPoints) { Object.Instantiate(flameEffect, flameEmissionPoint.position, flameEmissionPoint.rotation); } GetComponent<AudioSource>().PlayOneShot(firingSound); }
internal GWS( Cartridge cart, Character player, IPlatformHelper platformHelper, LuaDataFactory dataFactory) { this._dataFactory = dataFactory; this._cartridgeEntity = cart; this._cartridge = (LuaDataContainer)cart.DataContainer; this._player = (LuaDataContainer)player.DataContainer; this._platformHelper = platformHelper; ZonePoint pos = player.ObjectLocation; this._latitude = pos.Latitude; this._longitude = pos.Longitude; this._altitude = pos.Latitude; }
public CartridgeChangedEventArgs(Cartridge newCartridge) { m_NewCartridge = newCartridge; }
private void OnCartridgeChanged(Cartridge cartridge) { var e = CartridgeChanged; if (e != null) { e(this, new CartridgeChangedEventArgs(cartridge)); } }
public void LoadMetadata(Stream inputStream, Cartridge cart) { try { // Open binary reader for reading stream using (BinaryReader reader = new BinaryReader(inputStream)) { loadGWCHeader(reader, cart); } } catch (Exception e) { throw new Exception("An exception has occurred while reading the GWC file header.", e); } }
private void loadGWCHeader(BinaryReader reader, Cartridge cart) { int maxMediaFiles; int posterId; int iconId; Dictionary<int, int> objects; // Reads the file offsets. maxMediaFiles = loadGWCOffsets(reader, out objects); // Reads header length. int headerLength = reader.ReadInt32(); // Reads the starting location. cart.StartingLocationLatitude = reader.ReadDouble(); cart.StartingLocationLongitude = reader.ReadDouble(); cart.StartingLocationAltitude = reader.ReadDouble(); // The cartridge is playable anywhere if both its starting location coordinates are 360. if (cart.StartingLocationLatitude == 360 && cart.StartingLocationLongitude == 360) { cart.IsPlayAnywhere = true; } // Dates are in seconds beyond 2004-02-10 01:00 (it's a palindrom, if you write it as 10-02-2004 ;-) ) long seconds = reader.ReadInt64 (); cart.CreateDate = new DateTime (2004, 02, 10, 01, 00, 00); if (seconds != 0) cart.CreateDate = cart.CreateDate.AddSeconds (seconds); // Load ids for poster and incon posterId = reader.ReadInt16(); iconId = reader.ReadInt16(); // Get activity as string and convert it to type ActivityType string activity = readCString(reader); #if SILVERLIGHT int enumLength = 0; foreach (FieldInfo fi in cart.ActivityType.GetType().GetFields(BindingFlags.Static | BindingFlags.Public)) enumLength++; #else int enumLength = Enum.GetValues(cart.ActivityType.GetType()).Length; #endif for (int i = 0; i < enumLength; i++) if (((Live.WherigoCartridge.ActivityTypes)i).ToString().Equals(activity)) cart.ActivityType = (Live.WherigoCartridge.ActivityTypes)i; // Read name of player cart.Player = readCString(reader); reader.ReadInt32(); reader.ReadInt32(); cart.Name = readCString(reader); cart.Guid = readCString(reader); cart.LongDescription = readCString(reader); cart.StartingDescription = readCString(reader); cart.Version = readCString(reader); cart.AuthorName = readCString(reader); cart.AuthorCompany = readCString(reader); cart.Device = readCString(reader); reader.ReadInt32(); cart.CompletionCode = readCString(reader); // Saves the current reader position. long oldReaderPosition = reader.BaseStream.Position; // Read poster if (posterId > 0 && posterId < maxMediaFiles) cart.Poster = loadGWCMedia(reader, cart.Filename, objects[posterId], posterId, maxMediaFiles); // Read icon if (iconId > 0 && iconId < maxMediaFiles) cart.Icon = loadGWCMedia(reader, cart.Filename, objects[iconId], iconId, maxMediaFiles); // Restores the reader position reader.BaseStream.Position = oldReaderPosition; }
public void Load(Stream inputStream, Cartridge cart) { try { // Open binary reader for reading the gwc file using (BinaryReader reader = new BinaryReader(inputStream)) { // Loads the media file offsets. Dictionary<int, int> objects; int maxMediaFiles = loadGWCOffsets(reader, out objects); // Loads header loadGWCHeader(reader, cart); // Create array for resources cart.Resources = new Media[maxMediaFiles]; // Read Lua binary // Get pos of resources in stream, ... int pos = objects[0]; // ... jump to this position ... reader.BaseStream.Position = pos; // ... and read resources long fileSize = reader.ReadInt32(); cart.Resources[0] = new Media(); cart.Resources[0].Data = new byte[fileSize]; reader.Read(cart.Resources[0].Data, 0, cart.Resources[0].Data.Length); int i = 1; foreach (var item in objects.Where(kv => kv.Key > 0)) { Media media = loadGWCMedia(reader, cart.Filename, item.Value, item.Key, maxMediaFiles); cart.Resources[i] = media; i++; } } // The cartridge has been fully loaded. cart.IsLoaded = true; } catch (Exception e) { throw new Exception(String.Format("An exception has occurred while reading the GWC file: {0}.", e.Message), e); } }
void push(Cartridge cartridge) { cartridges.Push(cartridge); }
/// <summary> /// Load a cartridge file of unkown type into an Cartridge object. /// </summary> /// <param name="inputStream">Stream containing the cartridge file.</param> /// <param name="cart">Cartridge object, which should be used.</param> public static void Load(Stream inputStream, Cartridge cart) { // Gets the first loader that can load the stream. CartridgeFileFormat fFormat = GetFileFormat(inputStream); ICartridgeLoader loader = _loaders.FirstOrDefault(icl => icl.CanLoad(fFormat)); if (loader == null) throw new InvalidOperationException("The file format is not supported."); // Loads the cartridge. loader.Load(inputStream, cart); }
public void ReleaseCartridge() { if (m_CurrentCartridge != null) { m_PIDataStream.UnmountCartridge(); m_CurrentCartridge = null; OnCartridgeChanged(null); } }
protected virtual void Fire(Cartridge cartridge) { }
public void MountCartridge(Cartridge cartridge) { if (cartridge == null) throw new ArgumentNullException("cartridge"); if (m_CurrentCartridge != null) ReleaseCartridge(); m_CurrentCartridge = cartridge; m_CurrentCartridge.Open(); m_PIDataStream.MountCartridge(cartridge); OnCartridgeChanged(cartridge); logger.Trace("A catridge has been inserted into the slot"); logger.Trace("Cartridge Rom Header =========================="); logger.Trace("Name: " + m_CurrentCartridge.RomImage.Name); logger.Trace("Serial: " + m_CurrentCartridge.RomImage.Serial.ToString()); logger.Trace("Computed CIC: " + m_CurrentCartridge.RomImage.BootRomInformation.CIC.GetGoodName()); logger.Trace("Linked CIC: " + ((m_CurrentCartridge.LockoutKey != null) ? m_CurrentCartridge.LockoutKey.ToString() : "None")); logger.Trace("CRC1: " + m_CurrentCartridge.RomImage.CRC1.ToString("X8")); logger.Trace("CRC2: " + m_CurrentCartridge.RomImage.CRC2.ToString("X8")); logger.Trace("Region: " + m_CurrentCartridge.RomImage.Region.ToString()); logger.Trace("VI Rate: " + m_CurrentCartridge.RomImage.GetVIRate().ToString()); }
protected override void Fire(Cartridge cartridge) { GameObject shell = cartridge.InstantiateShell; EjectShell(shell); }