static void Main(string[] args) { var zelda1 = new NESGame("The Legend of Zelda", "Action/RPG", 1987); var megaman2 = new NESGame("Mega Man 2", "Action/Adventure", 1989); var punchout = new NesGame("Mike Tyson's Punch Out", "Sports", 1987); var robocop = new Movies("Robocop", "Sci-Fi/Action", 1987); var pulpfiction = new Movies("Pulp Fiction", "Drama", 1994); var threeamigos = new Movies("Three Amigos", "Comedy", 1986); var wutang = new Bands("Wu-Tang Clan", "HipHop", "Enter The 36 Chambers"); var midnight = new Bands("The Midnight", "SynthWave", "Endless Summer"); var prince = new Bands("Prince", "Pop", "Purple Rain"); var batman = new Comics("Batman", "DC", "Justice League"); var punisher = new Comics("The Punisher", "Marvel", "Defenders"); var wolverine = new Comics("Wolverine", "Marvel", "X-Men"); // Calling The NES Games // Console.WriteLine("These are a few of my favorite NES games:"); Console.WriteLine(zelda1.Name + " is a " + zelda1.Genre + " game released in " + zelda1.Year); Console.WriteLine(megaman2.Name + " is a " + megaman2.Genre + " game released in " + megaman2.Year); Console.WriteLine(punchout.Name + " is a " + punchout.Genre + " game released in " + punchout.Year); Console.WriteLine(""); // Calling The Movies // Console.WriteLine("These are a few of my favorite movies:"); Console.WriteLine(robocop.Name + " is an " + robocop.Genre + " movie released in " + robocop.Year); Console.WriteLine(pulpfiction.Name + " is an " + pulpfiction.Genre + " movie released in " + pulpfiction.Year); Console.WriteLine(threeamigos.Name + " is an " + threeamigos.Genre + " movie released in " + threeamigos.Year); Console.WriteLine(""); // Calling The Artists // Console.WriteLine("These are a few of my favorite artists:"); Console.WriteLine(wutang.Name + " is a " + wutang.Genre + " artist. " + wutang.Album + " is my favorite album."); Console.WriteLine(midnight.Name + " is a " + midnight.Genre + " artist. " + midnight.Album + " is my favorite album."); Console.WriteLine(prince.Name + " is a " + prince.Genre + " artist. " + prince.Album + " is my favorite album."); Console.WriteLine(""); // Calling The Comics // Console.WriteLine("These are a few of my favorite comics:"); Console.WriteLine(batman.Name + " is a " + batman.Brand + " comic. The " + batman.Affilation + " is his affilation."); Console.WriteLine(punisher.Name + " is a " + punisher.Brand + " comic. The " + punisher.Affilation + " is his affilation."); Console.WriteLine(wolverine.Name + " is a " + wolverine.Brand + " comic. The " + wolverine.Affilation + " is his affilation."); Console.ReadKey(); }
private void buttonShowGameGenieDatabase_Click(object sender, EventArgs e) { if (!(currentApp is NesGame)) { return; } NesGame nesGame = currentApp as NesGame; GameGenieCodeForm lFrm = new GameGenieCodeForm(nesGame); if (lFrm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { textBoxGameGenie.Text = nesGame.GameGenie; } }
public override void Execute() { ReportProgress(0); try { var apps = new List <NesMiniApplication>(); addedApplications = null; //bool NoForAllUnsupportedMappers = false; bool YesForAllUnsupportedMappers = false; YesForAllPatches = false; int count = 0; ReportStatus(Properties.Resources.AddingGames); foreach (var sourceFileName in _GamesToAdd) { NesMiniApplication app = null; try { var fileName = sourceFileName; var ext = Path.GetExtension(sourceFileName).ToLower(); bool? needPatch = YesForAllPatches ? (bool?)true : null; byte[] rawData = null; string tmp = null; if (ext == ".7z" || ext == ".zip" || ext == ".rar") { SevenZipExtractor.SetLibraryPath(Path.Combine(Program.BaseDirectoryInternal, IntPtr.Size == 8 ? @"tools\7z64.dll" : @"tools\7z.dll")); using (var szExtractor = new SevenZipExtractor(sourceFileName)) { var filesInArchive = new List <string>(); var gameFilesInArchive = new List <string>(); foreach (var f in szExtractor.ArchiveFileNames) { var e = Path.GetExtension(f).ToLower(); if (e == ".desktop" || Manager.EmulatorManager.getInstance().isFileValidRom(e)) { gameFilesInArchive.Add(f); } filesInArchive.Add(f); } if (gameFilesInArchive.Count == 1) // Only one NES file (or app) { fileName = gameFilesInArchive[0]; } else if (gameFilesInArchive.Count > 1) // Many NES files, need to select { var r = SelectFile(gameFilesInArchive.ToArray()); if (r == DialogResult.OK) { fileName = selectedFile; } else if (r == DialogResult.Ignore) { fileName = sourceFileName; } else { continue; } } else if (filesInArchive.Count == 1) // No NES files but only one another file { fileName = filesInArchive[0]; } else // Need to select { var r = SelectFile(filesInArchive.ToArray()); if (r == DialogResult.OK) { fileName = selectedFile; } else if (r == DialogResult.Ignore) { fileName = sourceFileName; } else { continue; } } if (fileName != sourceFileName) { var o = new MemoryStream(); if (Path.GetExtension(fileName).ToLower() == ".desktop" || // App in archive, need the whole directory szExtractor.ArchiveFileNames.Contains(Path.GetFileNameWithoutExtension(fileName) + ".jpg") || // Or it has cover in archive szExtractor.ArchiveFileNames.Contains(Path.GetFileNameWithoutExtension(fileName) + ".png")) { tmp = Path.Combine(Path.GetTempPath(), fileName); Directory.CreateDirectory(tmp); szExtractor.ExtractArchive(tmp); fileName = Path.Combine(tmp, fileName); } else { szExtractor.ExtractFile(fileName, o); rawData = new byte[o.Length]; o.Seek(0, SeekOrigin.Begin); o.Read(rawData, 0, (int)o.Length); } } } } if (Path.GetExtension(fileName).ToLower() == ".nes") { try { app = NesGame.Import(fileName, sourceFileName, YesForAllUnsupportedMappers ? (bool?)true : null, ref needPatch, needPatchCallback, null, rawData); // Trying to import Game Genie codes var lGameGeniePath = Path.Combine(Path.GetDirectoryName(fileName), Path.GetFileNameWithoutExtension(fileName) + ".xml"); if (File.Exists(lGameGeniePath)) { GameGenieDataBase lGameGenieDataBase = new GameGenieDataBase(app); lGameGenieDataBase.ImportCodes(lGameGeniePath, true); lGameGenieDataBase.Save(); } } catch (Exception ex) { if (ex is UnsupportedMapperException || ex is UnsupportedFourScreenException) { var r = MessageBoxFromThread( (ex is UnsupportedMapperException) ? string.Format(Properties.Resources.MapperNotSupported, Path.GetFileName(fileName), (ex as UnsupportedMapperException).ROM.Mapper) : string.Format(Properties.Resources.FourScreenNotSupported, Path.GetFileName(fileName)), Properties.Resources.AreYouSure, _GamesToAdd.Count() <= 1 ? MessageBoxButtons.YesNo : MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, true); if (r == DialogResult.Abort) { YesForAllUnsupportedMappers = true; } if (r == DialogResult.Yes || r == DialogResult.Abort || r == DialogResult.Retry) { app = NesGame.Import(fileName, sourceFileName, true, ref needPatch, needPatchCallback, null, rawData); } else { continue; } } else { throw ex; } } } else { app = NesMiniApplication.Import(fileName, sourceFileName, rawData); } if (!string.IsNullOrEmpty(tmp) && Directory.Exists(tmp)) { Directory.Delete(tmp, true); } ConfigIni.SelectedGames += ";" + app.Code; } catch (Exception ex) { if (ex is System.Threading.ThreadAbortException) { ReportCompleted(); } Debug.WriteLine(ex.Message + ex.StackTrace); ReportError(ex.Message, false); } if (app != null) { apps.Add(app); } ReportProgress((++count * 100 / _GamesToAdd.Count())); } addedApplications = apps; ReportCompleted(); } catch (Exception exc) { ReportError(exc.Message, true); } }