static void Main(string[] args) { Console.Title = "Ryujinx Console"; IGalRenderer Renderer = new OGLRenderer(); IAalOutput AudioOut = new OpenALAudioOut(); Switch Device = new Switch(Renderer, AudioOut); Config.Read(Device); Device.Log.Updated += ConsoleLog.PrintLog; if (args.Length == 1) { if (Directory.Exists(args[0])) { string[] RomFsFiles = Directory.GetFiles(args[0], "*.istorage"); if (RomFsFiles.Length == 0) { RomFsFiles = Directory.GetFiles(args[0], "*.romfs"); } if (RomFsFiles.Length > 0) { Console.WriteLine("Loading as cart with RomFS."); Device.LoadCart(args[0], RomFsFiles[0]); } else { Console.WriteLine("Loading as cart WITHOUT RomFS."); Device.LoadCart(args[0]); } } else if (File.Exists(args[0])) { Console.WriteLine("Loading as homebrew."); Device.LoadProgram(args[0]); } } else { Console.WriteLine("Please specify the folder with the NSOs/IStorage or a NSO/NRO."); } using (GLScreen Screen = new GLScreen(Device, Renderer)) { Screen.MainLoop(); Device.Dispose(); } AudioOut.Dispose(); }
static void Main(string[] args) { Config.Read(); AOptimizations.DisableMemoryChecks = !Config.EnableMemoryChecks; Console.Title = "Ryujinx Console"; IGalRenderer Renderer = new OpenGLRenderer(); IAalOutput AudioOut = new OpenALAudioOut(); Switch Ns = new Switch(Renderer, AudioOut); if (args.Length == 1) { if (Directory.Exists(args[0])) { string[] RomFsFiles = Directory.GetFiles(args[0], "*.istorage"); if (RomFsFiles.Length > 0) { Logging.Info("Loading as cart with RomFS."); Ns.LoadCart(args[0], RomFsFiles[0]); } else { Logging.Info("Loading as cart WITHOUT RomFS."); Ns.LoadCart(args[0]); } } else if (File.Exists(args[0])) { Logging.Info("Loading as homebrew."); Ns.LoadProgram(args[0]); } } else { Logging.Error("Please specify the folder with the NSOs/IStorage or a NSO/NRO."); } using (GLScreen Screen = new GLScreen(Ns, Renderer)) { Ns.Finish += (Sender, Args) => { Screen.Exit(); }; Screen.Run(60.0); } Environment.Exit(0); }
private void InitializeSwitchInstance() { _virtualFileSystem.Reload(); IRenderer renderer = new Renderer(); IAalOutput audioEngine = new DummyAudioOut(); if (ConfigurationState.Instance.System.AudioBackend.Value == AudioBackend.SoundIo) { if (SoundIoAudioOut.IsSupported) { audioEngine = new SoundIoAudioOut(); } else { Logger.Warning?.Print(LogClass.Audio, "SoundIO is not supported, falling back to dummy audio out."); } } else if (ConfigurationState.Instance.System.AudioBackend.Value == AudioBackend.OpenAl) { if (OpenALAudioOut.IsSupported) { audioEngine = new OpenALAudioOut(); } else { Logger.Warning?.Print(LogClass.Audio, "OpenAL is not supported, trying to fall back to SoundIO."); if (SoundIoAudioOut.IsSupported) { Logger.Warning?.Print(LogClass.Audio, "Found SoundIO, changing configuration."); ConfigurationState.Instance.System.AudioBackend.Value = AudioBackend.SoundIo; SaveConfig(); audioEngine = new SoundIoAudioOut(); } else { Logger.Warning?.Print(LogClass.Audio, "SoundIO is not supported, falling back to dummy audio out."); } } } _emulationContext = new HLE.Switch(_virtualFileSystem, _contentManager, _userChannelPersistence, renderer, audioEngine) { UiHandler = _uiHandler }; _emulationContext.Initialize(); }
static void Main(string[] args) { Console.Title = "Ryujinx Console"; IGalRenderer Renderer = new OGLRenderer(); IAalOutput AudioOut = new OpenALAudioOut(); Switch Device = new Switch(Renderer, AudioOut); Config.Read(Device); Logger.Updated += ConsoleLog.Log; if (args.Length == 1) { if (Directory.Exists(args[0])) { string[] RomFsFiles = Directory.GetFiles(args[0], "*.istorage"); if (RomFsFiles.Length == 0) { RomFsFiles = Directory.GetFiles(args[0], "*.romfs"); } if (RomFsFiles.Length > 0) { Console.WriteLine("Loading as cart with RomFS."); Device.LoadCart(args[0], RomFsFiles[0]); } else { Console.WriteLine("Loading as cart WITHOUT RomFS."); Device.LoadCart(args[0]); } } else if (File.Exists(args[0])) { switch (Path.GetExtension(args[0]).ToLowerInvariant()) { case ".xci": Console.WriteLine("Loading as XCI."); Device.LoadXci(args[0]); break; case ".nca": Console.WriteLine("Loading as NCA."); Device.LoadNca(args[0]); break; case ".nsp": Console.WriteLine("Loading as NSP."); Device.LoadNsp(args[0]); break; default: Console.WriteLine("Loading as homebrew."); Device.LoadProgram(args[0]); break; } } } else { Console.WriteLine("Please specify the folder with the NSOs/IStorage or a NSO/NRO."); } using (GLScreen Screen = new GLScreen(Device, Renderer)) { Screen.MainLoop(); Device.Dispose(); } AudioOut.Dispose(); }
static void Main(string[] args) { Console.Title = "Ryujinx Console"; IGalRenderer Renderer = new OpenGLRenderer(); IAalOutput AudioOut = new OpenALAudioOut(); Switch Ns = new Switch(Renderer, AudioOut); Config.Read(Ns.Log); Ns.Log.Updated += ConsoleLog.PrintLog; if (args.Length == 1) { if (Directory.Exists(args[0])) { string[] RomFsFiles = Directory.GetFiles(args[0], "*.istorage"); if (RomFsFiles.Length == 0) { RomFsFiles = Directory.GetFiles(args[0], "*.romfs"); } if (RomFsFiles.Length > 0) { Console.WriteLine("Loading as cart with RomFS."); Ns.LoadCart(args[0], RomFsFiles[0]); } else { Console.WriteLine("Loading as cart WITHOUT RomFS."); Ns.LoadCart(args[0]); } } else if (File.Exists(args[0])) { Console.WriteLine("Loading as homebrew."); Ns.LoadProgram(args[0]); } } else { Console.WriteLine("Please specify the folder with the NSOs/IStorage or a NSO/NRO."); } using (GLScreen Screen = new GLScreen(Ns, Renderer)) { Ns.Finish += (Sender, Args) => { Screen.Exit(); }; Screen.Run(60.0); } Environment.Exit(0); }