diff options
author | Ben Firshman <ben@firshman.co.uk> | 2010-06-10 16:08:50 +0100 |
---|---|---|
committer | Ben Firshman <ben@firshman.co.uk> | 2010-06-10 16:08:50 +0100 |
commit | 0eb5bcd82a332cfa6d7c3c8ec38ef3f95245b964 (patch) | |
tree | 426c6fe281cdc7054f18738259288dec07876ecd | |
parent | 7a21e5d0c40d5d6188fb2afa3bfeb307aa76b9d8 (diff) | |
download | jsnes-0eb5bcd82a332cfa6d7c3c8ec38ef3f95245b964.zip jsnes-0eb5bcd82a332cfa6d7c3c8ec38ef3f95245b964.tar.gz jsnes-0eb5bcd82a332cfa6d7c3c8ec38ef3f95245b964.tar.bz2 |
Cleaned up UI and ROM loading code. There is now nothing leaked to the global namespace - you can run more than one NES on a page!
-rw-r--r-- | index.html | 159 | ||||
-rw-r--r-- | js.2/nes.js | 16 | ||||
-rw-r--r-- | js.2/ppu.js | 3 | ||||
-rw-r--r-- | js.2/roms.js | 1536 | ||||
-rw-r--r-- | js.2/ui.js | 146 | ||||
-rw-r--r-- | jsnes.3.css | 6 |
6 files changed, 957 insertions, 909 deletions
@@ -10,7 +10,6 @@ charset="utf-8"> charset="utf-8"> <script src="js.2/jquery-1.4.2.min.js" type="text/javascript" charset="utf-8"></script> - <script src="js.2/jquery.dimensions.min.js" type="text/javascript" charset="utf-8"></script> <script src="js.2/dynamicaudio-min.js" type="text/javascript" charset="utf-8"></script> <script src="js.2/nes.js" type="text/javascript" charset="utf-8"></script> <script src="js.2/utils.js" type="text/javascript" charset="utf-8"></script> @@ -20,24 +19,35 @@ charset="utf-8"> <script src="js.2/papu.js" type="text/javascript" charset="utf-8"></script> <script src="js.2/ppu.js" type="text/javascript" charset="utf-8"></script> <script src="js.2/rom.js" type="text/javascript" charset="utf-8"></script> - <script src="js.2/roms.js" type="text/javascript" charset="utf-8"></script> + <script src="js.2/ui.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" charset="utf-8"> - var nes; - var roms = {}; - - $(document).ready(function() { - $("#status").text("Initialising..."); - $("<option>Select a ROM...</option>").appendTo("#roms"); - for (c in roms_list) { - var optgroup = $('<optgroup></optgroup>').attr("label", c); - for (i in roms_list[c]) if (roms_list[c].hasOwnProperty(i)) { - $('<option>'+roms_list[c][i]+'</option>') - .attr("value", roms_list[c][i]) - .appendTo(optgroup); - } - $("#roms").append(optgroup); - } - nes = new NES(); + $(function() { + var nes = new NES('#emulator'); + nes.ui.setRoms({ + "Working": [ + ['Bubble Bobble', 'roms/Bubble Bobble (U).nes'], + ['Contra', 'roms/Contra (U) [!].nes'], + ['Donkey Kong', 'roms/Donkey Kong (JU).nes'], + ['Dr. Mario', 'roms/Dr. Mario (JU).nes'], + ['Golf', 'roms/Golf (JU).nes'], + ['The Legend of Zelda', 'roms/Legend of Zelda, The (U) (PRG1).nes'], + ['Lemmings', 'roms/Lemmings (U).nes'], + ['Lifeforce', 'roms/Lifeforce (U).nes'], + ['Mario Bros.', 'roms/Mario Bros. (JU) [!].nes'], + ['Mega Man', 'roms/Mega Man (U).nes'], + ['Pac-Man', 'roms/Pac-Man (U) [!].nes'], + ['Super Mario Bros.', 'roms/Super Mario Bros. (JU) (PRG0) [!].nes'], + ['Tennis', 'roms/Tennis (JU) [!].nes'], + ['Tetris', 'roms/Tetris (U) [!].nes'], + ['Tetris 2', 'roms/Tetris 2 (U) [!].nes'], + ['Zelda II - The Adventure of Link', 'roms/Zelda II - The Adventure of Link (U).nes'] + ], + + "Nearly Working": [ + ['Duck Hunt', 'roms/Duck Hunt (JUE) [!].nes'], + ['Super Mario Bros. 3', 'roms/Super Mario Bros. 3 (U) (PRG1) [!].nes'] + ] + }); }); </script> </head> @@ -45,16 +55,9 @@ charset="utf-8"> <body><div id="wrapper"> <h1>JSNES</h1> <p class="summary">A JavaScript <a href="http://en.wikipedia.org/wiki/Nintendo_Entertainment_System">NES</a> emulator. <small>By <a href="/">Ben Firshman</a> <a href="http://twitter.com/bfirsh">@bfirsh</a></small></p> - <div id="emulator"> - <canvas id="screen" width="256" height="240"></canvas> - <div id="controls"> - <select id="roms"></select> - <input type="button" value="pause" id="pause" disabled="disabled"> - <input type="button" value="restart" id="restart" disabled="disabled"> - <input type="button" value="enable sound" id="enablesound" disabled="disabled"> - <input type="button" value="zoom in" id="zoom"> - </div> - <p id="status">Loading...</p> + + <div id="emulator"></div> + <script type="text/javascript"> digg_url = 'http://digg.com/playable_web_games/JSNES_A_NES_emulator_written_entirely_in_Javascript'; @@ -62,7 +65,6 @@ digg_url = 'http://digg.com/playable_web_games/JSNES_A_NES_emulator_written_enti <script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script> <script type="text/javascript" src="http://www.reddit.com/button.js?t=1"></script> - </div> <h2>Controls</h2> <table id="controls"> <tr> @@ -123,105 +125,6 @@ digg_url = 'http://digg.com/playable_web_games/JSNES_A_NES_emulator_written_enti <p>Playing sound probably won't run at full speed, but Chrome appears to be fastest.</p> <script type="text/javascript" charset="utf-8"> - // Mouse events - $("#screen").mousedown(function(e){ - if (nes && nes.mmap) { - nes.mmap.mousePressed = true; - nes.mmap.mouseX = e.pageX-$("#screen").offset()["left"]; - nes.mmap.mouseY = e.pageY-$("#screen").offset()["top"]; - } - }); - - $("#screen").mouseup(function(){ - setTimeout(function(){ - if (nes && nes.mmap) { - nes.mmap.mousePressed = false; - nes.mmap.mouseX = 0; - nes.mmap.mouseY = 0; - } - }, 500); - }); - - function resetButtons() { - $("#pause").attr("disabled", null).attr("value", "pause"); - $("#restart").attr("disabled", null); - $("#enablesound").attr("disabled", null); - if (nes.opts.emulateSound) { - $("#enablesound").attr("value", "disable sound"); - } - else { - $("#enablesound").attr("value", "enable sound"); - } - } - - $("#roms").change(function() { - resetButtons(); - var romName = $("#roms").val(); - $("#status").text("Downloading "+romName); - $.ajax({ - url: "roms/"+escape(romName), - xhr: function() { - var xhr = $.ajaxSettings.xhr() - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - return xhr; - }, - success: function(data) { - nes.loadRom(data); - nes.start(); - } - }); - }); - - $("#pause").click(function() { - b = $("#pause"); - if (b.attr("value") == "pause") { - nes.stop(); - $("#status").text("Paused") - b.attr("value", "resume"); - } - else { - nes.start(); - b.attr("value", "pause"); - } - }); - - $("#enablesound").click(function() { - b = $("#enablesound"); - if (b.attr("value") == "enable sound") { - nes.opts.emulateSound = true; - b.attr("value", "disable sound"); - } - else { - nes.opts.emulateSound = false; - b.attr("value", "enable sound"); - } - }); - - var zoomed = false; - $("#zoom").click(function() { - if (zoomed) { - $('#screen').animate({ - width: '256px', - height: '240px' - }); - $('#zoom').attr("value", "zoom in"); - zoomed = false; - } - else { - $('#screen').animate({ - width: '512px', - height: '480px' - }); - $('#zoom').attr("value", "zoom out"); - zoomed = true; - } - }); - - $("#restart").click(function() { - nes.reloadRom(); - nes.start(); - }); - var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> diff --git a/js.2/nes.js b/js.2/nes.js index 3395ed2..f6b259f 100644 --- a/js.2/nes.js +++ b/js.2/nes.js @@ -1,5 +1,5 @@ -function NES() { +var NES = function(parent) { this.opts = { preferredFrameRate: 60, fpsInterval: 500, // Time between updating FPS in ms @@ -13,13 +13,14 @@ function NES() { } this.frameTime = 1000/this.opts.preferredFrameRate; + this.ui = new NES.UI(this, parent); this.cpu = new NES.CPU(this); this.ppu = new NES.PPU(this); this.papu = new NES.PAPU(this); this.mmap = null; // set in loadRom() this.keyboard = new NES.Keyboard(); - $("#status").text("Initialised. Ready to load a ROM."); + this.ui.updateStatus("Ready to load a ROM."); } @@ -65,7 +66,7 @@ NES.prototype = { frame: function() { this.ppu.startFrame(); var cycles = 0; - var emulateSound = nes.opts.emulateSound; + var emulateSound = this.opts.emulateSound; var cpu = this.cpu; var ppu = this.ppu; var papu = this.papu; @@ -138,13 +139,12 @@ NES.prototype = { if (this.lastFpsTime) { s += ': '+(this.fpsFrameCount/((now-this.lastFpsTime)/1000)).toFixed(2)+' FPS'; } - $("#status").text(s); + this.ui.updateStatus(s); this.fpsFrameCount = 0; this.lastFpsTime = now; }, stop: function() { - //$("#status").text("Stopped."); clearInterval(this.frameInterval); clearInterval(this.fpsInterval); this.isRunning = false; @@ -163,7 +163,7 @@ NES.prototype = { this.stop(); } - $("#status").text("Loading..."); + this.ui.updateStatus("Loading ROM..."); // Load ROM file: this.rom = new NES.ROM(this); @@ -179,10 +179,10 @@ NES.prototype = { this.ppu.setMirroring(this.rom.getMirroringType()); this.romData = data; - $("#status").text("Successfully loaded. Ready to be started."); + this.ui.updateStatus("Successfully loaded. Ready to be started."); } else { - $("#status").text("Invalid ROM!"); + this.ui.updateStatus("Invalid ROM!"); } return this.rom.valid; }, diff --git a/js.2/ppu.js b/js.2/ppu.js index 92d03a9..de22523 100644 --- a/js.2/ppu.js +++ b/js.2/ppu.js @@ -78,8 +78,7 @@ NES.PPU = function(nes) { this.showSpr0Hit = false; this.clipToTvSize = true; - this.canvas = document.getElementById('screen'); - this.canvasContext = this.canvas.getContext('2d'); + this.canvasContext = this.nes.ui.screen[0].getContext('2d'); this.canvasImageData = this.canvasContext.getImageData(0, 0, 256, 240); this.canvasContext.fillStyle = 'black'; this.canvasContext.fillRect(0, 0, 256, 240); /* set alpha to opaque */ diff --git a/js.2/roms.js b/js.2/roms.js index 906909e..8ba7645 100644 --- a/js.2/roms.js +++ b/js.2/roms.js @@ -1,777 +1,777 @@ var roms_list = { - "Working": new Array( - 'Bubble Bobble (U).nes', - 'Contra (U) [!].nes', - 'Donkey Kong (JU).nes', - 'Dr. Mario (JU).nes', - 'Duck Hunt (JUE) [!].nes', - 'Golf (JU).nes', - 'Legend of Zelda, The (U) (PRG1).nes', - 'Lemmings (U).nes', - 'Lifeforce (U).nes', - 'Mario Bros. (JU) [!].nes', - 'Mega Man (U).nes', - 'Pac-Man (U) [!].nes', - 'Super Mario Bros. (JU) (PRG0) [!].nes', - 'Tennis (JU) [!].nes', - 'Tetris (U) [!].nes', - 'Tetris 2 (U) [!].nes', - 'Zelda II - The Adventure of Link (U).nes' - ), + "Working": [ + ['Bubble Bobble', 'roms/Bubble Bobble (U).nes'], + ['Contra', 'roms/Contra (U) [!].nes'], + ['Donkey Kong', 'roms/Donkey Kong (JU).nes'], + ['Dr. Mario', 'roms/Dr. Mario (JU).nes'], + ['Golf', 'roms/Golf (JU).nes'], + ['The Legend of Zelda', 'roms/Legend of Zelda, The (U) (PRG1).nes'], + ['Lemmings', 'roms/Lemmings (U).nes'], + ['Lifeforce', 'roms/Lifeforce (U).nes'], + ['Mario Bros.', 'roms/Mario Bros. (JU) [!].nes'], + ['Mega Man', 'roms/Mega Man (U).nes'], + ['Pac-Man', 'roms/Pac-Man (U) [!].nes'], + ['Super Mario Bros.', 'roms/Super Mario Bros. (JU) (PRG0) [!].nes'], + ['Tennis', 'roms/Tennis (JU) [!].nes'], + ['Tetris', 'roms/Tetris (U) [!].nes'], + ['Tetris 2', 'roms/Tetris 2 (U) [!].nes'], + ['Zelda II - The Adventure of Link', 'roms/Zelda II - The Adventure of Link (U).nes'] + ], - "Nearly Working": new Array( - 'Super Mario Bros. 3 (U) (PRG1) [!].nes' - ) + "Nearly Working": [ + ['Duck Hunt', 'roms/Duck Hunt (JUE) [!].nes'], + ['Super Mario Bros. 3', 'roms/Super Mario Bros. 3 (U) (PRG1) [!].nes'] + ] /* - "Broken": new Array( - 'Mega Man 2 (U).nes', - 'Metroid (U) [!].nes' - ) - "Untested": new Array( - '10-Yard Fight (U).nes', - '1942 (JU) [!].nes', - '1943 - The Battle of Midway (U).nes', - '3-D Battles of World Runner, The (U).nes', - '720 (U).nes', - '8 Eyes (U).nes', - 'Abadox (U).nes', - 'Action 52 (U) [!].nes', - 'Addams Family, The (U).nes', - 'Addams Family, The - Pugsley\'s Scavenger Hunt (U).nes', - 'Advanced Dungeons & Dragons - Dragon Strike (U).nes', - 'Advanced Dungeons & Dragons - Heroes of the Lance (U).nes', - 'Advanced Dungeons & Dragons - Hillsfar (U) [!].nes', - 'Advanced Dungeons & Dragons - Pool of Radiance (U).nes', - 'Adventures in the Magic Kingdom (U).nes', - 'Adventures of Bayou Billy, The (U).nes', - 'Adventures of Captain Comic, The (U).nes', - 'Adventures of Dino Riki, The (U).nes', - 'Adventures of Lolo (U) [!].nes', - 'Adventures of Lolo 2 (U).nes', - 'Adventures of Lolo 3 (U).nes', - 'Adventures of Rad Gravity, The (U).nes', - 'Adventures of Rocky and Bullwinkle and Friends, The (U).nes', - 'Adventures of Tom Sawyer (U).nes', - 'After Burner (U).nes', - 'Air Fortress (U).nes', - 'Airwolf (U).nes', - 'Al Unser Jr. Turbo Racing (U).nes', - 'Aladdin (Unl).nes', - 'Alfred Chicken (U).nes', - 'Alien 3 (U).nes', - 'Alien Syndrome (U).nes', - 'All-Pro Basketball (U).nes', - 'Alpha Mission (U).nes', - 'Amagon (U).nes', - 'American Gladiators (U).nes', - 'Anticipation (U).nes', - 'Arch Rivals - A Basket Brawl! (U).nes', - 'Archon (U).nes', - 'Arkanoid (U).nes', - 'Arkista\'s Ring (U) [!].nes', - 'Astyanax (U).nes', - 'Athena (U).nes', - 'Athletic World (U).nes', - 'Attack of the Killer Tomatoes (U).nes', - 'Baby Boomer (U).nes', - 'Back to the Future (U).nes', - 'Back to the Future II & III (U).nes', - 'Bad Dudes (U).nes', - 'Bad News Baseball (U).nes', - 'Bad Street Brawler (U).nes', - 'Balloon Fight (JU) [!].nes', - 'Bandai Golf - Challenge Pebble Beach (U).nes', - 'Bandit Kings of Ancient China (U).nes', - 'Barbie (U) (Rev 3).nes', - 'Bard\'s Tale, The - Tales of the Unknown (U) [!].nes', - 'Barker Bill\'s Trick Shooting (U).nes', - 'Base Wars (U).nes', - 'Baseball (UE) [!].nes', - 'Baseball Simulator 1.000 (U).nes', - 'Baseball Stars (U).nes', - 'Baseball Stars II (U).nes', - 'Bases Loaded (U).nes', - 'Bases Loaded 3 (U).nes', - 'Bases Loaded 4 (U).nes', - 'Bases Loaded II (U).nes', - 'Batman (U).nes', - 'Batman - Return of the Joker (U).nes', - 'Batman Returns (U).nes', - 'Battle Chess (U).nes', - 'Battle of Olympus, The (U).nes', - 'Battle Tank (U).nes', - 'Battleship (U).nes', - 'Battletoads & Double Dragon - The Ultimate Team (U).nes', - 'Battletoads (U).nes', - 'Bee 52 (U).nes', - 'Beetlejuice (U) [!].nes', - 'Best of the Best - Championship Karate (U).nes', - 'Bible Adventures (U) (V1.3).nes', - 'Bible Buffet (U).nes', - 'Big Bird\'s Hide & Speak (U).nes', - 'Big Nose Freaks Out (U).nes', - 'Big Nose the Caveman (U).nes', - 'Bigfoot (U).nes', - 'Bill & Ted\'s Excellent Video Game Adventure (U).nes', - 'Bill Elliott\'s NASCAR Challenge (U).nes', - 'Bionic Commando (U) [!].nes', - 'Black Bass USA, The (U).nes', - 'Blackjack (U).nes', - 'Blades of Steel (U).nes', - 'Blaster Master (U).nes', - 'Blue Marlin, The (U).nes', - 'Blues Brothers, The (U).nes', - 'Bo Jackson Baseball (U).nes', - 'Bomberman (U).nes', - 'Bomberman II (U).nes', - 'Bonk\'s Adventure (U).nes', - 'Boulder Dash (U).nes', - 'Boy and His Blob, A - Trouble on Blobolonia (U).nes', - 'Bram Stoker\'s Dracula (U).nes', - 'Break Time - The National Pool Tour (U).nes', - 'BreakThru (U).nes', - 'Bubble Bath Babes (UE) [!].nes', - 'Bubble Bobble (U).nes', - 'Bubble Bobble Part 2 (U).nes', - 'Bucky O\'Hare (U) [!].nes', - 'Bugs Bunny Birthday Blowout, The (U).nes', - 'Bugs Bunny Crazy Castle, The (U).nes', - 'Bugs Bunny Fun House (U) (Prototype).nes', - 'Bump\'n\'Jump (U).nes', - 'Burai Fighter (U).nes', - 'Burger Time (U) [!].nes', - 'Cabal (U).nes', - 'Caesars Palace (U).nes', - 'California Games (U).nes', - 'California Raisins - The Grape Escape (U).nes', - 'Caltron 6-in-1 (U).nes', - 'Captain America and The Avengers (U).nes', - 'Captain Planet and The Planeteers (U).nes', - 'Captain Skyhawk (U).nes', - 'Casino Kid (U).nes', - 'Casino Kid 2 (U).nes', - 'Castelian (U).nes', - 'Castle of Deceit (U).nes', - 'Castle of Dragon (U).nes', - 'Castlequest (U).nes', - 'Castlevania (U) (PRG1).nes', - 'Castlevania II - Simon\'s Quest (U).nes', - 'Castlevania III - Dracula\'s Curse (U) [!].nes', - 'Caveman Games (U).nes', - 'Challenge of the Dragon (U).nes', - 'Championship Bowling (U) [!].nes', - 'Championship Pool (U).nes', - 'Cheetah Men II (U).nes', - 'Chessmaster, The (U).nes', - 'Chiller (U) [!].nes', - 'Chip \'n Dale Rescue Rangers (U) [!].nes', - 'Chip \'n Dale Rescue Rangers 2 (U).nes', - 'Chubby Cherub (U).nes', - 'Circus Caper (U).nes', - 'City Connection (U).nes', - 'Clash at Demonhead (U).nes', - 'Classic Concentration (U).nes', - 'Cliffhanger (U).nes', - 'Clu Clu Land (JU).nes', - 'Cobra Command (U).nes', - 'Cobra Triangle (U).nes', - 'Code Name - Viper (U).nes', - 'Color A Dinosaur (U).nes', - 'Commando (U).nes', - 'Conan (U).nes', - 'Conflict (U) [!].nes', - 'Conquest of the Crystal Palace (U).nes', - 'Contra Force (U).nes', - 'Cool World (U).nes', - 'Cowboy Kid (U).nes', - 'Crash \'n the Boys - Street Challenge (U).nes', - 'Crystal Mines (U).nes', - 'Crystalis (U).nes', - 'Cyberball (U).nes', - 'Cybernoid - The Fighting Machine (U).nes', - 'Danny Sullivan\'s Indy Heat (U).nes', - 'Darkman (U).nes', - 'Darkwing Duck (U).nes', - 'Dash Galaxy in the Alien Asylum (U).nes', - 'Day Dreamin\' Davey (U).nes', - 'Days of Thunder (U).nes', - 'Deadly Towers (U).nes', - 'Death Race (U).nes', - 'Deathbots (U).nes', - 'Defender II (U).nes', - 'Defender of the Crown (U).nes', - 'Defenders of Dynatron City (U).nes', - 'Deja Vu (U).nes', - 'Demon Sword (U).nes', - 'Desert Commander (U).nes', - 'Destination Earthstar (U).nes', - 'Destiny of an Emperor (U).nes', - 'Dick Tracy (U).nes', - 'Die Hard (U).nes', - 'Dig Dug II (U) [!].nes', - 'Digger - The Legend of the Lost City (U).nes', - 'Dirty Harry (U).nes', - 'Dizzy The Adventurer (U).nes', - 'Donkey Kong 3 (JUE).nes', - 'Donkey Kong Classics (U) [!].nes', - 'Donkey Kong Jr. (JU).nes', - 'Donkey Kong Jr. Math (U).nes', - 'Double Dare (U).nes', - 'Double Dragon (U).nes', - 'Double Dragon II - The Revenge (U).nes', - 'Double Dragon III - The Sacred Stones (U).nes', - 'Double Dribble (U) (PRG1) [!].nes', - 'Double Strike (U) (V1.1).nes', - 'Dr. Chaos (U).nes', - 'Dr. Jekyll and Mr. Hyde (U).nes', - 'Dragon Fighter (U).nes', - 'Dragon Power (U).nes', - 'Dragon Spirit - The New Legend (U).nes', - 'Dragon Warrior (U) (PRG1).nes', - 'Dragon Warrior II (U).nes', - 'Dragon Warrior III (U).nes', - 'Dragon Warrior IV (U).nes', - 'Dragon\'s Lair (U).nes', - 'Duck Tales (U).nes', - 'Duck Tales 2 (U).nes', - 'Dudes With Attitude (U).nes', - 'Dungeon Magic - Sword of the Elements (U).nes', - 'Dusty Diamond\'s All-Star Softball (U).nes', - 'Dynowarz - Destruction of Spondylus (U).nes', - 'Elevator Action (U).nes', - 'Eliminator Boat Duel (U).nes', - 'Excitebike (JU) [!].nes', - 'Exodus (U) (V4.0) [!].nes', - 'F-117A Stealth Fighter (U) [!].nes', - 'F-15 City War (U).nes', - 'F-15 Strike Eagle (U).nes', - 'Family Feud (U).nes', - 'Fantastic Adventures of Dizzy, The (U).nes', - 'Fantasy Zone (U).nes', - 'Faria - A World of Mystery and Danger! (U).nes', - 'Faxanadu (U).nes', - 'Felix the Cat (U).nes', - 'Ferrari - Grand Prix Challenge (U) [!].nes', - 'Fester\'s Quest (U) [!].nes', - 'Final Fantasy (U) [!].nes', - 'Fire \'n Ice (U).nes', - 'Fire Hawk (Unl).nes', - 'Firehouse Rescue (U).nes', - 'Fist of the North Star (U).nes', - 'Flight of the Intruder (U).nes', - 'Flintstones, The - The Rescue of Dino & Hoppy (U).nes', - 'Flintstones, The - The Surprise at Dinosaur Peak! (U).nes', - 'Flying Dragon - The Secret Scroll (U).nes', - 'Flying Warriors (U).nes', - 'Formula One - Built To Win (U) [o1].nes', - 'Frankenstein - The Monster Returns (U).nes', - 'Freedom Force (U) [!].nes', - 'Friday the 13th (U).nes', - 'Fun House (U).nes', - 'G.I. Joe (U).nes', - 'G.I. Joe - The Atlantis Factor (U).nes', - 'Galaga (U).nes', - 'Galaxy 5000 (U).nes', - 'Gargoyle\'s Quest II - The Demon Darkness (U).nes', - 'Gauntlet (U) [!].nes', - 'Gauntlet II (U).nes', - 'Gemfire (U).nes', - 'Genghis Khan (U).nes', - 'George Foreman\'s KO Boxing (U).nes', - 'Ghostbusters (U).nes', - 'Ghostbusters 2 (U).nes', - 'Ghosts\'n Goblins (U) [!].nes', - 'Ghoul School (U).nes', - 'Gilligan\'s Island (U).nes', - 'Goal! (U).nes', - 'Goal! Two (U).nes', - 'Godzilla - Monster of Monsters! (U).nes', - 'Godzilla 2 - War of the Monsters (U).nes', - 'Gold Medal Challenge \'92 (U).nes', - 'Golf Grand Slam (U).nes', - 'Golgo 13 - Top Secret Episode (U).nes', - 'Goonies II, The (U).nes', - 'Gotcha! - The Sport! (U).nes', - 'Gradius (U).nes', - 'Great Waldo Search, The (U).nes', - 'Greg Norman\'s Golf Power (U).nes', - 'Gremlins 2 - The New Batch (U).nes', - 'Guardian Legend, The (U).nes', - 'Guerrilla War (U).nes', - 'Gumshoe (UE).nes', - 'Gun Nac (U).nes', - 'Gun.Smoke (U).nes', - 'Gyromite (JUE).nes', - 'Gyruss (U).nes', - 'Harlem Globetrotters (U).nes', - 'Hatris (U).nes', - 'Heavy Barrel (U).nes', - 'Heavy Shreddin\' (U).nes', - 'High Speed (U).nes', - 'Hogan\'s Alley (JU) [!].nes', - 'Hollywood Squares (U).nes', - 'Home Alone (U) [!].nes', - 'Home Alone 2 - Lost in New York (U).nes', - 'Hook (U).nes', - 'Hoops (U).nes', - 'Hot Slot (UE).nes', - 'Hudson Hawk (U).nes', - 'Hudson\'s Adventure Island (U).nes', - 'Hudson\'s Adventure Island II (U).nes', - 'Hudson\'s Adventure Island III (U).nes', - 'Hunt for Red October, The (U).nes', - 'Hydlide (U).nes', - 'I Can Remember (U).nes', - 'Ice Climber (U) [!].nes', - 'Ice Hockey (U) [!].nes', - 'Ikari III - The Rescue (U).nes', - 'Ikari Warriors (U) (PRG1) [!].nes', - 'Ikari Warriors II - Victory Road (U).nes', - 'Image Fight (U).nes', - 'Immortal, The (U).nes', - 'Impossible Mission II (U).nes', - 'Incredible Crash Dummies, The (U).nes', - 'Indiana Jones and the Last Crusade (U) (Taito).nes', - 'Indiana Jones and the Temple of Doom (U) (Tengen).nes', - 'Infiltrator (U).nes', - 'Iron Tank (U).nes', - 'Ironsword - Wizards & Warriors II (U).nes', - 'Isolated Warrior (U).nes', - 'Ivan Ironman Stewart\'s Super Off-Road (U).nes', - 'Jack Nicklaus\' Greatest 18 Holes of Major Championship Golf (U).nes', - 'Jackal (U).nes', - 'Jackie Chan\'s Action Kung Fu (U).nes', - 'James Bond Jr (U).nes', - 'Jaws (U) [!].nes', - 'Jeopardy! (U).nes', - 'Jeopardy! 25th Anniversary Edition (U).nes', - 'Jeopardy! Junior Edition (U).nes', - 'Jetsons, The - Cogswell\'s Caper! (U).nes', - 'Jimmy Connor\'s Tennis (U).nes', - 'Joe & Mac (U).nes', - 'John Elway\'s Quarterback (U).nes', - 'Joshua (U) (V6.0) [!].nes', - 'Journey to Silius (U).nes', - 'Joust (U).nes', - 'Jungle Book, The (U).nes', - 'Jurassic Park (U).nes', - 'Kabuki - Quantum Fighter (U).nes', - 'Karate Champ (U).nes', - 'Karate Kid, The (U).nes', - 'Karnov (U).nes', - 'Kick Master (U).nes', - 'Kickle Cubicle (U).nes', - 'Kid Icarus (UE).nes', - 'Kid Klown (U).nes', - 'Kid Kool (U).nes', - 'Kid Niki - Radical Ninja (U) (PRG1) [!].nes', - 'King Neptune\'s Adventure (U).nes', - 'King of Kings, The (U) (V1.2) [!].nes', - 'King\'s Knight (U).nes', - 'King\'s Quest V (U).nes', - 'Kings of the Beach (U).nes', - 'Kirby\'s Adventure (U) (PRG1) [!].nes', - 'Kiwi Kraze (U).nes', - 'Klash Ball (U).nes', - 'Klax (U).nes', - 'Knight Rider (U).nes', - 'Krazy Kreatures (U).nes', - 'Krion Conquest, The (U).nes', - 'Krusty\'s Fun House (U).nes', - 'Kung Fu (U) [!].nes', - 'Kung-Fu Heroes (U).nes', - 'L\'Empereur (U).nes', - 'Laser Invasion (U).nes', - 'Last Action Hero (U) [!].nes', - 'Last Ninja, The (U).nes', - 'Last Starfighter, The (U).nes', - 'Lee Trevino\'s Fighting Golf (U).nes', - 'Legacy of the Wizard (U).nes', - 'Legend of Kage, The (U).nes', - 'Legend of the Ghost Lion (U).nes', - 'Legendary Wings (U).nes', - 'Legends of the Diamond (U).nes', - 'Lethal Weapon (U).nes', - 'Lifeforce (U).nes', - 'Linus Spacehead\'s Cosmic Crusade (Aladdin) (U).nes', - 'Little League Baseball - Championship Series (U).nes', - 'Little Mermaid, The (U).nes', - 'Little Nemo - The Dream Master (U).nes', - 'Little Ninja Brothers (U).nes', - 'Little Samson (U).nes', - 'Lode Runner (U).nes', - 'Lone Ranger, The (U).nes', - 'Loopz (U).nes', - 'Low G Man (U) [!].nes', - 'Lunar Pool (U).nes', - 'M.C. Kids (U).nes', - 'M.U.L.E. (U).nes', - 'M.U.S.C.L.E. (U).nes', - 'Mach Rider (JU).nes', - 'Mad Max (U) [!].nes', - 'Mafat Conspiracy - Golgo 13 (U).nes', - 'Magic Darts (U).nes', - 'Magic Johnson\'s Fast Break (U).nes', - 'Magic of Scheherazade, The (U).nes', - 'Magician (U).nes', - 'Magmax (U).nes', - 'Major League Baseball (U).nes', - 'Maniac Mansion (U).nes', - 'Mappy-Land (U).nes', - 'Marble Madness (U).nes', - 'Mario is Missing! (U).nes', - 'Mario\'s Time Machine! (U).nes', - 'Marvel\'s X-Men (U).nes', - 'Master Chu & The Drunkard Hu (U).nes', - 'Mechanized Attack (U).nes', - 'Mega Man (U).nes', - 'Mega Man 2 (U).nes', - 'Mega Man 3 (U) [!].nes', - 'Mega Man 4 (U).nes', - 'Mega Man 5 (U).nes', - 'Mega Man 6 (U).nes', - 'Menace Beach (U).nes', - 'Mendel Palace (U).nes', - 'Mermaids of Atlantis (U).nes', - 'Metal Fighter (U).nes', - 'Metal Gear (U).nes', - 'Metal Mech (U).nes', - 'Metal Storm (U).nes', + "Broken": [ + ['Mega Man 2', 'roms/Mega Man 2 (U).nes'], + ['Metroid', 'roms/Metroid (U) [!].nes'] + ], + "Untested": [ + ['10-Yard Fight', 'roms/10-Yard Fight (U).nes'], + ['1942', 'roms/1942 (JU) [!].nes'], + ['1943 - The Battle of Midway', 'roms/1943 - The Battle of Midway (U).nes'], + ['3-D Battles of World Runner, The', 'roms/3-D Battles of World Runner, The (U).nes'], + ['720', 'roms/720 (U).nes'], + ['8 Eyes', 'roms/8 Eyes (U).nes'], + ['Abadox', 'roms/Abadox (U).nes'], + ['Action 52', 'roms/Action 52 (U) [!].nes'], + ['Addams Family, The', 'roms/Addams Family, The (U).nes'], + ['Addams Family, The - Pugsley\'s Scavenger Hunt', 'roms/Addams Family, The - Pugsley\'s Scavenger Hunt (U).nes'], + ['Advanced Dungeons & Dragons - Dragon Strike', 'roms/Advanced Dungeons & Dragons - Dragon Strike (U).nes'], + ['Advanced Dungeons & Dragons - Heroes of the Lance', 'roms/Advanced Dungeons & Dragons - Heroes of the Lance (U).nes'], + ['Advanced Dungeons & Dragons - Hillsfar', 'roms/Advanced Dungeons & Dragons - Hillsfar (U) [!].nes'], + ['Advanced Dungeons & Dragons - Pool of Radiance', 'roms/Advanced Dungeons & Dragons - Pool of Radiance (U).nes'], + ['Adventures in the Magic Kingdom', 'roms/Adventures in the Magic Kingdom (U).nes'], + ['Adventures of Bayou Billy, The', 'roms/Adventures of Bayou Billy, The (U).nes'], + ['Adventures of Captain Comic, The', 'roms/Adventures of Captain Comic, The (U).nes'], + ['Adventures of Dino Riki, The', 'roms/Adventures of Dino Riki, The (U).nes'], + ['Adventures of Lolo', 'roms/Adventures of Lolo (U) [!].nes'], + ['Adventures of Lolo 2', 'roms/Adventures of Lolo 2 (U).nes'], + ['Adventures of Lolo 3', 'roms/Adventures of Lolo 3 (U).nes'], + ['Adventures of Rad Gravity, The', 'roms/Adventures of Rad Gravity, The (U).nes'], + ['Adventures of Rocky and Bullwinkle and Friends, The', 'roms/Adventures of Rocky and Bullwinkle and Friends, The (U).nes'], + ['Adventures of Tom Sawyer', 'roms/Adventures of Tom Sawyer (U).nes'], + ['After Burner', 'roms/After Burner (U).nes'], + ['Air Fortress', 'roms/Air Fortress (U).nes'], + ['Airwolf', 'roms/Airwolf (U).nes'], + ['Al Unser Jr. Turbo Racing', 'roms/Al Unser Jr. Turbo Racing (U).nes'], + ['Aladdin', 'roms/Aladdin (Unl).nes'], + ['Alfred Chicken', 'roms/Alfred Chicken (U).nes'], + ['Alien 3', 'roms/Alien 3 (U).nes'], + ['Alien Syndrome', 'roms/Alien Syndrome (U).nes'], + ['All-Pro Basketball', 'roms/All-Pro Basketball (U).nes'], + ['Alpha Mission', 'roms/Alpha Mission (U).nes'], + ['Amagon', 'roms/Amagon (U).nes'], + ['American Gladiators', 'roms/American Gladiators (U).nes'], + ['Anticipation', 'roms/Anticipation (U).nes'], + ['Arch Rivals - A Basket Brawl!', 'roms/Arch Rivals - A Basket Brawl! (U).nes'], + ['Archon', 'roms/Archon (U).nes'], + ['Arkanoid', 'roms/Arkanoid (U).nes'], + ['Arkista\'s Ring', 'roms/Arkista\'s Ring (U) [!].nes'], + ['Astyanax', 'roms/Astyanax (U).nes'], + ['Athena', 'roms/Athena (U).nes'], + ['Athletic World', 'roms/Athletic World (U).nes'], + ['Attack of the Killer Tomatoes', 'roms/Attack of the Killer Tomatoes (U).nes'], + ['Baby Boomer', 'roms/Baby Boomer (U).nes'], + ['Back to the Future', 'roms/Back to the Future (U).nes'], + ['Back to the Future II & III', 'roms/Back to the Future II & III (U).nes'], + ['Bad Dudes', 'roms/Bad Dudes (U).nes'], + ['Bad News Baseball', 'roms/Bad News Baseball (U).nes'], + ['Bad Street Brawler', 'roms/Bad Street Brawler (U).nes'], + ['Balloon Fight', 'roms/Balloon Fight (JU) [!].nes'], + ['Bandai Golf - Challenge Pebble Beach', 'roms/Bandai Golf - Challenge Pebble Beach (U).nes'], + ['Bandit Kings of Ancient China', 'roms/Bandit Kings of Ancient China (U).nes'], + ['Barbie', 'roms/Barbie (U) (Rev 3).nes'], + ['Bard\'s Tale, The - Tales of the Unknown', 'roms/Bard\'s Tale, The - Tales of the Unknown (U) [!].nes'], + ['Barker Bill\'s Trick Shooting', 'roms/Barker Bill\'s Trick Shooting (U).nes'], + ['Base Wars', 'roms/Base Wars (U).nes'], + ['Baseball', 'roms/Baseball (UE) [!].nes'], + ['Baseball Simulator 1.000', 'roms/Baseball Simulator 1.000 (U).nes'], + ['Baseball Stars', 'roms/Baseball Stars (U).nes'], + ['Baseball Stars II', 'roms/Baseball Stars II (U).nes'], + ['Bases Loaded', 'roms/Bases Loaded (U).nes'], + ['Bases Loaded 3', 'roms/Bases Loaded 3 (U).nes'], + ['Bases Loaded 4', 'roms/Bases Loaded 4 (U).nes'], + ['Bases Loaded II', 'roms/Bases Loaded II (U).nes'], + ['Batman', 'roms/Batman (U).nes'], + ['Batman - Return of the Joker', 'roms/Batman - Return of the Joker (U).nes'], + ['Batman Returns', 'roms/Batman Returns (U).nes'], + ['Battle Chess', 'roms/Battle Chess (U).nes'], + ['Battle of Olympus, The', 'roms/Battle of Olympus, The (U).nes'], + ['Battle Tank', 'roms/Battle Tank (U).nes'], + ['Battleship', 'roms/Battleship (U).nes'], + ['Battletoads & Double Dragon - The Ultimate Team', 'roms/Battletoads & Double Dragon - The Ultimate Team (U).nes'], + ['Battletoads', 'roms/Battletoads (U).nes'], + ['Bee 52', 'roms/Bee 52 (U).nes'], + ['Beetlejuice', 'roms/Beetlejuice (U) [!].nes'], + ['Best of the Best - Championship Karate', 'roms/Best of the Best - Championship Karate (U).nes'], + ['Bible Adventures', 'roms/Bible Adventures (U) (V1.3).nes'], + ['Bible Buffet', 'roms/Bible Buffet (U).nes'], + ['Big Bird\'s Hide & Speak', 'roms/Big Bird\'s Hide & Speak (U).nes'], + ['Big Nose Freaks Out', 'roms/Big Nose Freaks Out (U).nes'], + ['Big Nose the Caveman', 'roms/Big Nose the Caveman (U).nes'], + ['Bigfoot', 'roms/Bigfoot (U).nes'], + ['Bill & Ted\'s Excellent Video Game Adventure', 'roms/Bill & Ted\'s Excellent Video Game Adventure (U).nes'], + ['Bill Elliott\'s NASCAR Challenge', 'roms/Bill Elliott\'s NASCAR Challenge (U).nes'], + ['Bionic Commando', 'roms/Bionic Commando (U) [!].nes'], + ['Black Bass USA, The', 'roms/Black Bass USA, The (U).nes'], + ['Blackjack', 'roms/Blackjack (U).nes'], + ['Blades of Steel', 'roms/Blades of Steel (U).nes'], + ['Blaster Master', 'roms/Blaster Master (U).nes'], + ['Blue Marlin, The', 'roms/Blue Marlin, The (U).nes'], + ['Blues Brothers, The', 'roms/Blues Brothers, The (U).nes'], + ['Bo Jackson Baseball', 'roms/Bo Jackson Baseball (U).nes'], + ['Bomberman', 'roms/Bomberman (U).nes'], + ['Bomberman II', 'roms/Bomberman II (U).nes'], + ['Bonk\'s Adventure', 'roms/Bonk\'s Adventure (U).nes'], + ['Boulder Dash', 'roms/Boulder Dash (U).nes'], + ['Boy and His Blob, A - Trouble on Blobolonia', 'roms/Boy and His Blob, A - Trouble on Blobolonia (U).nes'], + ['Bram Stoker\'s Dracula', 'roms/Bram Stoker\'s Dracula (U).nes'], + ['Break Time - The National Pool Tour', 'roms/Break Time - The National Pool Tour (U).nes'], + ['BreakThru', 'roms/BreakThru (U).nes'], + ['Bubble Bath Babes', 'roms/Bubble Bath Babes (UE) [!].nes'], + ['Bubble Bobble', 'roms/Bubble Bobble (U).nes'], + ['Bubble Bobble Part 2', 'roms/Bubble Bobble Part 2 (U).nes'], + ['Bucky O\'Hare', 'roms/Bucky O\'Hare (U) [!].nes'], + ['Bugs Bunny Birthday Blowout, The', 'roms/Bugs Bunny Birthday Blowout, The (U).nes'], + ['Bugs Bunny Crazy Castle, The', 'roms/Bugs Bunny Crazy Castle, The (U).nes'], + ['Bugs Bunny Fun House', 'roms/Bugs Bunny Fun House (U) (Prototype).nes'], + ['Bump\'n\'Jump', 'roms/Bump\'n\'Jump (U).nes'], + ['Burai Fighter', 'roms/Burai Fighter (U).nes'], + ['Burger Time', 'roms/Burger Time (U) [!].nes'], + ['Cabal', 'roms/Cabal (U).nes'], + ['Caesars Palace', 'roms/Caesars Palace (U).nes'], + ['California Games', 'roms/California Games (U).nes'], + ['California Raisins - The Grape Escape', 'roms/California Raisins - The Grape Escape (U).nes'], + ['Caltron 6-in-1', 'roms/Caltron 6-in-1 (U).nes'], + ['Captain America and The Avengers', 'roms/Captain America and The Avengers (U).nes'], + ['Captain Planet and The Planeteers', 'roms/Captain Planet and The Planeteers (U).nes'], + ['Captain Skyhawk', 'roms/Captain Skyhawk (U).nes'], + ['Casino Kid', 'roms/Casino Kid (U).nes'], + ['Casino Kid 2', 'roms/Casino Kid 2 (U).nes'], + ['Castelian', 'roms/Castelian (U).nes'], + ['Castle of Deceit', 'roms/Castle of Deceit (U).nes'], + ['Castle of Dragon', 'roms/Castle of Dragon (U).nes'], + ['Castlequest', 'roms/Castlequest (U).nes'], + ['Castlevania', 'roms/Castlevania (U) (PRG1).nes'], + ['Castlevania II - Simon\'s Quest', 'roms/Castlevania II - Simon\'s Quest (U).nes'], + ['Castlevania III - Dracula\'s Curse', 'roms/Castlevania III - Dracula\'s Curse (U) [!].nes'], + ['Caveman Games', 'roms/Caveman Games (U).nes'], + ['Challenge of the Dragon', 'roms/Challenge of the Dragon (U).nes'], + ['Championship Bowling', 'roms/Championship Bowling (U) [!].nes'], + ['Championship Pool', 'roms/Championship Pool (U).nes'], + ['Cheetah Men II', 'roms/Cheetah Men II (U).nes'], + ['Chessmaster, The', 'roms/Chessmaster, The (U).nes'], + ['Chiller', 'roms/Chiller (U) [!].nes'], + ['Chip \'n Dale Rescue Rangers', 'roms/Chip \'n Dale Rescue Rangers (U) [!].nes'], + ['Chip \'n Dale Rescue Rangers 2', 'roms/Chip \'n Dale Rescue Rangers 2 (U).nes'], + ['Chubby Cherub', 'roms/Chubby Cherub (U).nes'], + ['Circus Caper', 'roms/Circus Caper (U).nes'], + ['City Connection', 'roms/City Connection (U).nes'], + ['Clash at Demonhead', 'roms/Clash at Demonhead (U).nes'], + ['Classic Concentration', 'roms/Classic Concentration (U).nes'], + ['Cliffhanger', 'roms/Cliffhanger (U).nes'], + ['Clu Clu Land', 'roms/Clu Clu Land (JU).nes'], + ['Cobra Command', 'roms/Cobra Command (U).nes'], + ['Cobra Triangle', 'roms/Cobra Triangle (U).nes'], + ['Code Name - Viper', 'roms/Code Name - Viper (U).nes'], + ['Color A Dinosaur', 'roms/Color A Dinosaur (U).nes'], + ['Commando', 'roms/Commando (U).nes'], + ['Conan', 'roms/Conan (U).nes'], + ['Conflict', 'roms/Conflict (U) [!].nes'], + ['Conquest of the Crystal Palace', 'roms/Conquest of the Crystal Palace (U).nes'], + ['Contra Force', 'roms/Contra Force (U).nes'], + ['Cool World', 'roms/Cool World (U).nes'], + ['Cowboy Kid', 'roms/Cowboy Kid (U).nes'], + ['Crash \'n the Boys - Street Challenge', 'roms/Crash \'n the Boys - Street Challenge (U).nes'], + ['Crystal Mines', 'roms/Crystal Mines (U).nes'], + ['Crystalis', 'roms/Crystalis (U).nes'], + ['Cyberball', 'roms/Cyberball (U).nes'], + ['Cybernoid - The Fighting Machine', 'roms/Cybernoid - The Fighting Machine (U).nes'], + ['Danny Sullivan\'s Indy Heat', 'roms/Danny Sullivan\'s Indy Heat (U).nes'], + ['Darkman', 'roms/Darkman (U).nes'], + ['Darkwing Duck', 'roms/Darkwing Duck (U).nes'], + ['Dash Galaxy in the Alien Asylum', 'roms/Dash Galaxy in the Alien Asylum (U).nes'], + ['Day Dreamin\' Davey', 'roms/Day Dreamin\' Davey (U).nes'], + ['Days of Thunder', 'roms/Days of Thunder (U).nes'], + ['Deadly Towers', 'roms/Deadly Towers (U).nes'], + ['Death Race', 'roms/Death Race (U).nes'], + ['Deathbots', 'roms/Deathbots (U).nes'], + ['Defender II', 'roms/Defender II (U).nes'], + ['Defender of the Crown', 'roms/Defender of the Crown (U).nes'], + ['Defenders of Dynatron City', 'roms/Defenders of Dynatron City (U).nes'], + ['Deja Vu', 'roms/Deja Vu (U).nes'], + ['Demon Sword', 'roms/Demon Sword (U).nes'], + ['Desert Commander', 'roms/Desert Commander (U).nes'], + ['Destination Earthstar', 'roms/Destination Earthstar (U).nes'], + ['Destiny of an Emperor', 'roms/Destiny of an Emperor (U).nes'], + ['Dick Tracy', 'roms/Dick Tracy (U).nes'], + ['Die Hard', 'roms/Die Hard (U).nes'], + ['Dig Dug II', 'roms/Dig Dug II (U) [!].nes'], + ['Digger - The Legend of the Lost City', 'roms/Digger - The Legend of the Lost City (U).nes'], + ['Dirty Harry', 'roms/Dirty Harry (U).nes'], + ['Dizzy The Adventurer', 'roms/Dizzy The Adventurer (U).nes'], + ['Donkey Kong 3', 'roms/Donkey Kong 3 (JUE).nes'], + ['Donkey Kong Classics', 'roms/Donkey Kong Classics (U) [!].nes'], + ['Donkey Kong Jr.', 'roms/Donkey Kong Jr. (JU).nes'], + ['Donkey Kong Jr. Math', 'roms/Donkey Kong Jr. Math (U).nes'], + ['Double Dare', 'roms/Double Dare (U).nes'], + ['Double Dragon', 'roms/Double Dragon (U).nes'], + ['Double Dragon II - The Revenge', 'roms/Double Dragon II - The Revenge (U).nes'], + ['Double Dragon III - The Sacred Stones', 'roms/Double Dragon III - The Sacred Stones (U).nes'], + ['Double Dribble', 'roms/Double Dribble (U) (PRG1) [!].nes'], + ['Double Strike', 'roms/Double Strike (U) (V1.1).nes'], + ['Dr. Chaos', 'roms/Dr. Chaos (U).nes'], + ['Dr. Jekyll and Mr. Hyde', 'roms/Dr. Jekyll and Mr. Hyde (U).nes'], + ['Dragon Fighter', 'roms/Dragon Fighter (U).nes'], + ['Dragon Power', 'roms/Dragon Power (U).nes'], + ['Dragon Spirit - The New Legend', 'roms/Dragon Spirit - The New Legend (U).nes'], + ['Dragon Warrior', 'roms/Dragon Warrior (U) (PRG1).nes'], + ['Dragon Warrior II', 'roms/Dragon Warrior II (U).nes'], + ['Dragon Warrior III', 'roms/Dragon Warrior III (U).nes'], + ['Dragon Warrior IV', 'roms/Dragon Warrior IV (U).nes'], + ['Dragon\'s Lair', 'roms/Dragon\'s Lair (U).nes'], + ['Duck Tales', 'roms/Duck Tales (U).nes'], + ['Duck Tales 2', 'roms/Duck Tales 2 (U).nes'], + ['Dudes With Attitude', 'roms/Dudes With Attitude (U).nes'], + ['Dungeon Magic - Sword of the Elements', 'roms/Dungeon Magic - Sword of the Elements (U).nes'], + ['Dusty Diamond\'s All-Star Softball', 'roms/Dusty Diamond\'s All-Star Softball (U).nes'], + ['Dynowarz - Destruction of Spondylus', 'roms/Dynowarz - Destruction of Spondylus (U).nes'], + ['Elevator Action', 'roms/Elevator Action (U).nes'], + ['Eliminator Boat Duel', 'roms/Eliminator Boat Duel (U).nes'], + ['Excitebike', 'roms/Excitebike (JU) [!].nes'], + ['Exodus', 'roms/Exodus (U) (V4.0) [!].nes'], + ['F-117A Stealth Fighter', 'roms/F-117A Stealth Fighter (U) [!].nes'], + ['F-15 City War', 'roms/F-15 City War (U).nes'], + ['F-15 Strike Eagle', 'roms/F-15 Strike Eagle (U).nes'], + ['Family Feud', 'roms/Family Feud (U).nes'], + ['Fantastic Adventures of Dizzy, The', 'roms/Fantastic Adventures of Dizzy, The (U).nes'], + ['Fantasy Zone', 'roms/Fantasy Zone (U).nes'], + ['Faria - A World of Mystery and Danger!', 'roms/Faria - A World of Mystery and Danger! (U).nes'], + ['Faxanadu', 'roms/Faxanadu (U).nes'], + ['Felix the Cat', 'roms/Felix the Cat (U).nes'], + ['Ferrari - Grand Prix Challenge', 'roms/Ferrari - Grand Prix Challenge (U) [!].nes'], + ['Fester\'s Quest', 'roms/Fester\'s Quest (U) [!].nes'], + ['Final Fantasy', 'roms/Final Fantasy (U) [!].nes'], + ['Fire \'n Ice', 'roms/Fire \'n Ice (U).nes'], + ['Fire Hawk', 'roms/Fire Hawk (Unl).nes'], + ['Firehouse Rescue', 'roms/Firehouse Rescue (U).nes'], + ['Fist of the North Star', 'roms/Fist of the North Star (U).nes'], + ['Flight of the Intruder', 'roms/Flight of the Intruder (U).nes'], + ['Flintstones, The - The Rescue of Dino & Hoppy', 'roms/Flintstones, The - The Rescue of Dino & Hoppy (U).nes'], + ['Flintstones, The - The Surprise at Dinosaur Peak!', 'roms/Flintstones, The - The Surprise at Dinosaur Peak! (U).nes'], + ['Flying Dragon - The Secret Scroll', 'roms/Flying Dragon - The Secret Scroll (U).nes'], + ['Flying Warriors', 'roms/Flying Warriors (U).nes'], + ['Formula One - Built To Win', 'roms/Formula One - Built To Win (U) [o1].nes'], + ['Frankenstein - The Monster Returns', 'roms/Frankenstein - The Monster Returns (U).nes'], + ['Freedom Force', 'roms/Freedom Force (U) [!].nes'], + ['Friday the 13th', 'roms/Friday the 13th (U).nes'], + ['Fun House', 'roms/Fun House (U).nes'], + ['G.I. Joe', 'roms/G.I. Joe (U).nes'], + ['G.I. Joe - The Atlantis Factor', 'roms/G.I. Joe - The Atlantis Factor (U).nes'], + ['Galaga', 'roms/Galaga (U).nes'], + ['Galaxy 5000', 'roms/Galaxy 5000 (U).nes'], + ['Gargoyle\'s Quest II - The Demon Darkness', 'roms/Gargoyle\'s Quest II - The Demon Darkness (U).nes'], + ['Gauntlet', 'roms/Gauntlet (U) [!].nes'], + ['Gauntlet II', 'roms/Gauntlet II (U).nes'], + ['Gemfire', 'roms/Gemfire (U).nes'], + ['Genghis Khan', 'roms/Genghis Khan (U).nes'], + ['George Foreman\'s KO Boxing', 'roms/George Foreman\'s KO Boxing (U).nes'], + ['Ghostbusters', 'roms/Ghostbusters (U).nes'], + ['Ghostbusters 2', 'roms/Ghostbusters 2 (U).nes'], + ['Ghosts\'n Goblins', 'roms/Ghosts\'n Goblins (U) [!].nes'], + ['Ghoul School', 'roms/Ghoul School (U).nes'], + ['Gilligan\'s Island', 'roms/Gilligan\'s Island (U).nes'], + ['Goal!', 'roms/Goal! (U).nes'], + ['Goal! Two', 'roms/Goal! Two (U).nes'], + ['Godzilla - Monster of Monsters!', 'roms/Godzilla - Monster of Monsters! (U).nes'], + ['Godzilla 2 - War of the Monsters', 'roms/Godzilla 2 - War of the Monsters (U).nes'], + ['Gold Medal Challenge \'92', 'roms/Gold Medal Challenge \'92 (U).nes'], + ['Golf Grand Slam', 'roms/Golf Grand Slam (U).nes'], + ['Golgo 13 - Top Secret Episode', 'roms/Golgo 13 - Top Secret Episode (U).nes'], + ['Goonies II, The', 'roms/Goonies II, The (U).nes'], + ['Gotcha! - The Sport!', 'roms/Gotcha! - The Sport! (U).nes'], + ['Gradius', 'roms/Gradius (U).nes'], + ['Great Waldo Search, The', 'roms/Great Waldo Search, The (U).nes'], + ['Greg Norman\'s Golf Power', 'roms/Greg Norman\'s Golf Power (U).nes'], + ['Gremlins 2 - The New Batch', 'roms/Gremlins 2 - The New Batch (U).nes'], + ['Guardian Legend, The', 'roms/Guardian Legend, The (U).nes'], + ['Guerrilla War', 'roms/Guerrilla War (U).nes'], + ['Gumshoe', 'roms/Gumshoe (UE).nes'], + ['Gun Nac', 'roms/Gun Nac (U).nes'], + ['Gun.Smoke', 'roms/Gun.Smoke (U).nes'], + ['Gyromite', 'roms/Gyromite (JUE).nes'], + ['Gyruss', 'roms/Gyruss (U).nes'], + ['Harlem Globetrotters', 'roms/Harlem Globetrotters (U).nes'], + ['Hatris', 'roms/Hatris (U).nes'], + ['Heavy Barrel', 'roms/Heavy Barrel (U).nes'], + ['Heavy Shreddin\'', 'roms/Heavy Shreddin\' (U).nes'], + ['High Speed', 'roms/High Speed (U).nes'], + ['Hogan\'s Alley', 'roms/Hogan\'s Alley (JU) [!].nes'], + ['Hollywood Squares', 'roms/Hollywood Squares (U).nes'], + ['Home Alone', 'roms/Home Alone (U) [!].nes'], + ['Home Alone 2 - Lost in New York', 'roms/Home Alone 2 - Lost in New York (U).nes'], + ['Hook', 'roms/Hook (U).nes'], + ['Hoops', 'roms/Hoops (U).nes'], + ['Hot Slot', 'roms/Hot Slot (UE).nes'], + ['Hudson Hawk', 'roms/Hudson Hawk (U).nes'], + ['Hudson\'s Adventure Island', 'roms/Hudson\'s Adventure Island (U).nes'], + ['Hudson\'s Adventure Island II', 'roms/Hudson\'s Adventure Island II (U).nes'], + ['Hudson\'s Adventure Island III', 'roms/Hudson\'s Adventure Island III (U).nes'], + ['Hunt for Red October, The', 'roms/Hunt for Red October, The (U).nes'], + ['Hydlide', 'roms/Hydlide (U).nes'], + ['I Can Remember', 'roms/I Can Remember (U).nes'], + ['Ice Climber', 'roms/Ice Climber (U) [!].nes'], + ['Ice Hockey', 'roms/Ice Hockey (U) [!].nes'], + ['Ikari III - The Rescue', 'roms/Ikari III - The Rescue (U).nes'], + ['Ikari Warriors', 'roms/Ikari Warriors (U) (PRG1) [!].nes'], + ['Ikari Warriors II - Victory Road', 'roms/Ikari Warriors II - Victory Road (U).nes'], + ['Image Fight', 'roms/Image Fight (U).nes'], + ['Immortal, The', 'roms/Immortal, The (U).nes'], + ['Impossible Mission II', 'roms/Impossible Mission II (U).nes'], + ['Incredible Crash Dummies, The', 'roms/Incredible Crash Dummies, The (U).nes'], + ['Indiana Jones and the Last Crusade', 'roms/Indiana Jones and the Last Crusade (U) (Taito).nes'], + ['Indiana Jones and the Temple of Doom', 'roms/Indiana Jones and the Temple of Doom (U) (Tengen).nes'], + ['Infiltrator', 'roms/Infiltrator (U).nes'], + ['Iron Tank', 'roms/Iron Tank (U).nes'], + ['Ironsword - Wizards & Warriors II', 'roms/Ironsword - Wizards & Warriors II (U).nes'], + ['Isolated Warrior', 'roms/Isolated Warrior (U).nes'], + ['Ivan Ironman Stewart\'s Super Off-Road', 'roms/Ivan Ironman Stewart\'s Super Off-Road (U).nes'], + ['Jack Nicklaus\' Greatest 18 Holes of Major Championship Golf', 'roms/Jack Nicklaus\' Greatest 18 Holes of Major Championship Golf (U).nes'], + ['Jackal', 'roms/Jackal (U).nes'], + ['Jackie Chan\'s Action Kung Fu', 'roms/Jackie Chan\'s Action Kung Fu (U).nes'], + ['James Bond Jr', 'roms/James Bond Jr (U).nes'], + ['Jaws', 'roms/Jaws (U) [!].nes'], + ['Jeopardy!', 'roms/Jeopardy! (U).nes'], + ['Jeopardy! 25th Anniversary Edition', 'roms/Jeopardy! 25th Anniversary Edition (U).nes'], + ['Jeopardy! Junior Edition', 'roms/Jeopardy! Junior Edition (U).nes'], + ['Jetsons, The - Cogswell\'s Caper!', 'roms/Jetsons, The - Cogswell\'s Caper! (U).nes'], + ['Jimmy Connor\'s Tennis', 'roms/Jimmy Connor\'s Tennis (U).nes'], + ['Joe & Mac', 'roms/Joe & Mac (U).nes'], + ['John Elway\'s Quarterback', 'roms/John Elway\'s Quarterback (U).nes'], + ['Joshua', 'roms/Joshua (U) (V6.0) [!].nes'], + ['Journey to Silius', 'roms/Journey to Silius (U).nes'], + ['Joust', 'roms/Joust (U).nes'], + ['Jungle Book, The', 'roms/Jungle Book, The (U).nes'], + ['Jurassic Park', 'roms/Jurassic Park (U).nes'], + ['Kabuki - Quantum Fighter', 'roms/Kabuki - Quantum Fighter (U).nes'], + ['Karate Champ', 'roms/Karate Champ (U).nes'], + ['Karate Kid, The', 'roms/Karate Kid, The (U).nes'], + ['Karnov', 'roms/Karnov (U).nes'], + ['Kick Master', 'roms/Kick Master (U).nes'], + ['Kickle Cubicle', 'roms/Kickle Cubicle (U).nes'], + ['Kid Icarus', 'roms/Kid Icarus (UE).nes'], + ['Kid Klown', 'roms/Kid Klown (U).nes'], + ['Kid Kool', 'roms/Kid Kool (U).nes'], + ['Kid Niki - Radical Ninja', 'roms/Kid Niki - Radical Ninja (U) (PRG1) [!].nes'], + ['King Neptune\'s Adventure', 'roms/King Neptune\'s Adventure (U).nes'], + ['King of Kings, The', 'roms/King of Kings, The (U) (V1.2) [!].nes'], + ['King\'s Knight', 'roms/King\'s Knight (U).nes'], + ['King\'s Quest V', 'roms/King\'s Quest V (U).nes'], + ['Kings of the Beach', 'roms/Kings of the Beach (U).nes'], + ['Kirby\'s Adventure', 'roms/Kirby\'s Adventure (U) (PRG1) [!].nes'], + ['Kiwi Kraze', 'roms/Kiwi Kraze (U).nes'], + ['Klash Ball', 'roms/Klash Ball (U).nes'], + ['Klax', 'roms/Klax (U).nes'], + ['Knight Rider', 'roms/Knight Rider (U).nes'], + ['Krazy Kreatures', 'roms/Krazy Kreatures (U).nes'], + ['Krion Conquest, The', 'roms/Krion Conquest, The (U).nes'], + ['Krusty\'s Fun House', 'roms/Krusty\'s Fun House (U).nes'], + ['Kung Fu', 'roms/Kung Fu (U) [!].nes'], + ['Kung-Fu Heroes', 'roms/Kung-Fu Heroes (U).nes'], + ['L\'Empereur', 'roms/L\'Empereur (U).nes'], + ['Laser Invasion', 'roms/Laser Invasion (U).nes'], + ['Last Action Hero', 'roms/Last Action Hero (U) [!].nes'], + ['Last Ninja, The', 'roms/Last Ninja, The (U).nes'], + ['Last Starfighter, The', 'roms/Last Starfighter, The (U).nes'], + ['Lee Trevino\'s Fighting Golf', 'roms/Lee Trevino\'s Fighting Golf (U).nes'], + ['Legacy of the Wizard', 'roms/Legacy of the Wizard (U).nes'], + ['Legend of Kage, The', 'roms/Legend of Kage, The (U).nes'], + ['Legend of the Ghost Lion', 'roms/Legend of the Ghost Lion (U).nes'], + ['Legendary Wings', 'roms/Legendary Wings (U).nes'], + ['Legends of the Diamond', 'roms/Legends of the Diamond (U).nes'], + ['Lethal Weapon', 'roms/Lethal Weapon (U).nes'], + ['Lifeforce', 'roms/Lifeforce (U).nes'], + ['Linus Spacehead\'s Cosmic Crusade', 'roms/Linus Spacehead\'s Cosmic Crusade (Aladdin) (U).nes'], + ['Little League Baseball - Championship Series', 'roms/Little League Baseball - Championship Series (U).nes'], + ['Little Mermaid, The', 'roms/Little Mermaid, The (U).nes'], + ['Little Nemo - The Dream Master', 'roms/Little Nemo - The Dream Master (U).nes'], + ['Little Ninja Brothers', 'roms/Little Ninja Brothers (U).nes'], + ['Little Samson', 'roms/Little Samson (U).nes'], + ['Lode Runner', 'roms/Lode Runner (U).nes'], + ['Lone Ranger, The', 'roms/Lone Ranger, The (U).nes'], + ['Loopz', 'roms/Loopz (U).nes'], + ['Low G Man', 'roms/Low G Man (U) [!].nes'], + ['Lunar Pool', 'roms/Lunar Pool (U).nes'], + ['M.C. Kids', 'roms/M.C. Kids (U).nes'], + ['M.U.L.E.', 'roms/M.U.L.E. (U).nes'], + ['M.U.S.C.L.E.', 'roms/M.U.S.C.L.E. (U).nes'], + ['Mach Rider', 'roms/Mach Rider (JU).nes'], + ['Mad Max', 'roms/Mad Max (U) [!].nes'], + ['Mafat Conspiracy - Golgo 13', 'roms/Mafat Conspiracy - Golgo 13 (U).nes'], + ['Magic Darts', 'roms/Magic Darts (U).nes'], + ['Magic Johnson\'s Fast Break', 'roms/Magic Johnson\'s Fast Break (U).nes'], + ['Magic of Scheherazade, The', 'roms/Magic of Scheherazade, The (U).nes'], + ['Magician', 'roms/Magician (U).nes'], + ['Magmax', 'roms/Magmax (U).nes'], + ['Major League Baseball', 'roms/Major League Baseball (U).nes'], + ['Maniac Mansion', 'roms/Maniac Mansion (U).nes'], + ['Mappy-Land', 'roms/Mappy-Land (U).nes'], + ['Marble Madness', 'roms/Marble Madness (U).nes'], + ['Mario is Missing!', 'roms/Mario is Missing! (U).nes'], + ['Mario\'s Time Machine!', 'roms/Mario\'s Time Machine! (U).nes'], + ['Marvel\'s X-Men', 'roms/Marvel\'s X-Men (U).nes'], + ['Master Chu & The Drunkard Hu', 'roms/Master Chu & The Drunkard Hu (U).nes'], + ['Mechanized Attack', 'roms/Mechanized Attack (U).nes'], + ['Mega Man', 'roms/Mega Man (U).nes'], + ['Mega Man 2', 'roms/Mega Man 2 (U).nes'], + ['Mega Man 3', 'roms/Mega Man 3 (U) [!].nes'], + ['Mega Man 4', 'roms/Mega Man 4 (U).nes'], + ['Mega Man 5', 'roms/Mega Man 5 (U).nes'], + ['Mega Man 6', 'roms/Mega Man 6 (U).nes'], + ['Menace Beach', 'roms/Menace Beach (U).nes'], + ['Mendel Palace', 'roms/Mendel Palace (U).nes'], + ['Mermaids of Atlantis', 'roms/Mermaids of Atlantis (U).nes'], + ['Metal Fighter', 'roms/Metal Fighter (U).nes'], + ['Metal Gear', 'roms/Metal Gear (U).nes'], + ['Metal Mech', 'roms/Metal Mech (U).nes'], + ['Metal Storm', 'roms/Metal Storm (U).nes'], 'metalgear2.nes', - 'Metroid (U) [!].nes', - 'Michael Andretti\'s World Grand Prix (U).nes', - 'Mickey Mousecapade (U).nes', - 'Mickey\'s Adventures in Numberland (U).nes', - 'Mickey\'s Safari in Letterland (U).nes', - 'Micro Machines (U).nes', - 'MiG 29 - Soviet Fighter (U).nes', - 'Might and Magic (U).nes', - 'Mighty Bomb Jack (U).nes', - 'Mighty Final Fight (U).nes', - 'Mike Tyson\'s Punch-Out!! (U) (PRG1).nes', - 'Millipede (U).nes', - 'Milon\'s Secret Castle (U).nes', - 'Miracle Piano Teaching System, The (U).nes', - 'Mission Cobra (U).nes', - 'Mission Impossible (U).nes', - 'Monopoly (U).nes', - 'Monster In My Pocket (U).nes', - 'Monster Party (U).nes', - 'Monster Truck Rally (U).nes', - 'Moon Ranger (U).nes', - 'Motor City Patrol (U).nes', - 'Ms. Pac-Man (U) (Tengen).nes', - 'Muppet Adventure - Chaos at the Carnival (U).nes', - 'Mutant Virus, The (U).nes', - 'Mystery Quest (U).nes', - 'NARC (U).nes', - 'NES Open Tournament Golf (U).nes', - 'NES Play Action Football (U).nes', - 'NFL Football (U).nes', - 'Nigel Mansell\'s World Championship Challenge (U).nes', - 'Nightmare on Elm Street, A (U).nes', - 'Nightshade (U).nes', - 'Ninja Crusaders (U).nes', - 'Ninja Gaiden (U) [!].nes', - 'Ninja Gaiden 2 - The Dark Sword of Chaos (U).nes', - 'Ninja Gaiden 3 - The Ancient Ship of Doom (U) [!].nes', - 'Ninja Kid (U).nes', - 'Nintendo World Cup (U).nes', - 'Nobunaga\'s Ambition (U).nes', - 'Nobunaga\'s Ambition 2 (U).nes', - 'North & South (U).nes', + ['Metroid', 'roms/Metroid (U) [!].nes'], + ['Michael Andretti\'s World Grand Prix', 'roms/Michael Andretti\'s World Grand Prix (U).nes'], + ['Mickey Mousecapade', 'roms/Mickey Mousecapade (U).nes'], + ['Mickey\'s Adventures in Numberland', 'roms/Mickey\'s Adventures in Numberland (U).nes'], + ['Mickey\'s Safari in Letterland', 'roms/Mickey\'s Safari in Letterland (U).nes'], + ['Micro Machines', 'roms/Micro Machines (U).nes'], + ['MiG 29 - Soviet Fighter', 'roms/MiG 29 - Soviet Fighter (U).nes'], + ['Might and Magic', 'roms/Might and Magic (U).nes'], + ['Mighty Bomb Jack', 'roms/Mighty Bomb Jack (U).nes'], + ['Mighty Final Fight', 'roms/Mighty Final Fight (U).nes'], + ['Mike Tyson\'s Punch-Out!!', 'roms/Mike Tyson\'s Punch-Out!! (U) (PRG1).nes'], + ['Millipede', 'roms/Millipede (U).nes'], + ['Milon\'s Secret Castle', 'roms/Milon\'s Secret Castle (U).nes'], + ['Miracle Piano Teaching System, The', 'roms/Miracle Piano Teaching System, The (U).nes'], + ['Mission Cobra', 'roms/Mission Cobra (U).nes'], + ['Mission Impossible', 'roms/Mission Impossible (U).nes'], + ['Monopoly', 'roms/Monopoly (U).nes'], + ['Monster In My Pocket', 'roms/Monster In My Pocket (U).nes'], + ['Monster Party', 'roms/Monster Party (U).nes'], + ['Monster Truck Rally', 'roms/Monster Truck Rally (U).nes'], + ['Moon Ranger', 'roms/Moon Ranger (U).nes'], + ['Motor City Patrol', 'roms/Motor City Patrol (U).nes'], + ['Ms. Pac-Man', 'roms/Ms. Pac-Man (U) (Tengen).nes'], + ['Muppet Adventure - Chaos at the Carnival', 'roms/Muppet Adventure - Chaos at the Carnival (U).nes'], + ['Mutant Virus, The', 'roms/Mutant Virus, The (U).nes'], + ['Mystery Quest', 'roms/Mystery Quest (U).nes'], + ['NARC', 'roms/NARC (U).nes'], + ['NES Open Tournament Golf', 'roms/NES Open Tournament Golf (U).nes'], + ['NES Play Action Football', 'roms/NES Play Action Football (U).nes'], + ['NFL Football', 'roms/NFL Football (U).nes'], + ['Nigel Mansell\'s World Championship Challenge', 'roms/Nigel Mansell\'s World Championship Challenge (U).nes'], + ['Nightmare on Elm Street, A', 'roms/Nightmare on Elm Street, A (U).nes'], + ['Nightshade', 'roms/Nightshade (U).nes'], + ['Ninja Crusaders', 'roms/Ninja Crusaders (U).nes'], + ['Ninja Gaiden', 'roms/Ninja Gaiden (U) [!].nes'], + ['Ninja Gaiden 2 - The Dark Sword of Chaos', 'roms/Ninja Gaiden 2 - The Dark Sword of Chaos (U).nes'], + ['Ninja Gaiden 3 - The Ancient Ship of Doom', 'roms/Ninja Gaiden 3 - The Ancient Ship of Doom (U) [!].nes'], + ['Ninja Kid', 'roms/Ninja Kid (U).nes'], + ['Nintendo World Cup', 'roms/Nintendo World Cup (U).nes'], + ['Nobunaga\'s Ambition', 'roms/Nobunaga\'s Ambition (U).nes'], + ['Nobunaga\'s Ambition 2', 'roms/Nobunaga\'s Ambition 2 (U).nes'], + ['North & South', 'roms/North & South (U).nes'], 'official.nes', - 'Operation Secret Storm (U).nes', - 'Operation Wolf (U).nes', - 'Orb 3D (U).nes', - 'Othello (U).nes', - 'Overlord (U).nes', - 'P\'radikus Conflict, The (U).nes', - 'Pac-Mania (U).nes', - 'Palamedes (U).nes', - 'Panic Restaurant (U).nes', - 'Paperboy (U).nes', - 'Paperboy 2 (U).nes', - 'Peek-A-Boo Poker (UE) [!].nes', - 'Perfect Fit (U).nes', - 'Pesterminator - The Western Exterminator (U).nes', - 'Peter Pan & The Pirates (U).nes', - 'Phantom Fighter (U).nes', - 'Pictionary (U).nes', - 'Pinball (JU).nes', - 'Pinball Quest (U).nes', - 'Pinbot (U) [!].nes', - 'Pipe Dream (U).nes', - 'Pirates! (U).nes', - 'Platoon (U) (PRG1) [!].nes', - 'Popeye (JU) (PRG1) [!].nes', - 'POW - Prisoners of War (U).nes', - 'Power Blade (U) [!].nes', - 'Power Blade 2 (U).nes', - 'Power Pad Dance Aerobics (U).nes', - 'Power Punch 2 (U).nes', - 'Predator (U).nes', - 'Prince of Persia (U).nes', - 'Princess Tomato in Salad Kingdom (U).nes', - 'Pro Sport Hockey (U).nes', - 'Pro Wrestling (U) (PRG1) [!].nes', - 'Punch-Out!! (U).nes', - 'Punisher, The (U).nes', - 'Puss \'n Boots - Pero\'s Great Adventure (U).nes', - 'Puzznic (U).nes', - 'Q-bert (U).nes', - 'Qix (U).nes', - 'Quattro Adventure (U).nes', - 'Quattro Arcade (U).nes', - 'Quattro Sports (U).nes', - 'R.B.I. Baseball (U).nes', - 'R.B.I. Baseball 2 (U).nes', - 'R.B.I. Baseball 3 (U).nes', - 'R.C. Pro-Am (U) (PRG1).nes', - 'R.C. Pro-Am 2 (U).nes', - 'Race America (U).nes', - 'Racket Attack (U).nes', - 'Rad Racer (U).nes', - 'Rad Racer 2 (U) [!].nes', - 'Rad Racket - Deluxe Tennis II (U) [!].nes', - 'Raid 2020 (U) [!].nes', - 'Raid on Bungeling Bay (U).nes', - 'Rainbow Islands - The Story of Bubble Bobble 2 (U).nes', - 'Rally Bike (U).nes', - 'Rambo (U).nes', - 'Rampage (U).nes', - 'Rampart (U).nes', - 'Remote Control (U).nes', - 'Ren & Stimpy Show, The (U).nes', - 'Renegade (U).nes', - 'Rescue - The Embassy Mission (U).nes', - 'Ring King (U).nes', - 'River City Ransom (U).nes', - 'Road Runner (U).nes', - 'RoadBlasters (U).nes', - 'Robin Hood - Prince of Thieves (U).nes', - 'Robo Warrior (U).nes', - 'Robocop (U).nes', - 'Robocop 2 (U).nes', - 'Robocop 3 (U).nes', - 'Robodemons (U).nes', - 'Rock \'n\' Ball (U).nes', - 'Rocket Ranger (U) [!].nes', - 'Rocketeer, The (U).nes', - 'Rockin\' Kats (U) [!].nes', - 'Roger Clemens MVP Baseball (U).nes', - 'Rollerball (U).nes', - 'Rollerblade Racer (U).nes', - 'Rollergames (U) [!].nes', - 'Rolling Thunder (U).nes', - 'Romance of the Three Kingdoms (U).nes', - 'Romance of the Three Kingdoms II (U) [!].nes', - 'Roundball - 2-on-2 Challenge (U).nes', - 'Rush\'n Attack (U).nes', - 'Rygar (U).nes', - 'SCAT - Special Cybernetic Attack Team (U).nes', - 'Secret Scout (Unl).nes', - 'Section Z (U).nes', - 'Seicross (U).nes', - 'Sesame Street 123 (U).nes', - 'Sesame Street ABC (U).nes', - 'Sesame Street ABC - 123 (U).nes', - 'Sesame Street Countdown (U).nes', - 'Shadow of the Ninja (U).nes', - 'Shadowgate (U).nes', - 'Shatterhand (U).nes', - 'Shingen The Ruler (U).nes', - 'Shinobi (U).nes', - 'Shockwave (U).nes', - 'Shooting Range (U).nes', - 'Short Order - Eggsplode (U) [!].nes', - 'Side Pocket (U).nes', - 'Silent Assault (U).nes', - 'Silent Service (U).nes', - 'Silk Worm (U).nes', - 'Silver Surfer (U).nes', - 'Simpsons, The - Bart Vs. the Space Mutants (U).nes', - 'Simpsons, The - Bart Vs. the World (U).nes', - 'Simpsons, The - Bartman Meets Radioactive Man (U).nes', - 'Skate or Die 2 - The Search for Double Trouble (U).nes', - 'Skate or Die! (U).nes', - 'Ski or Die (U).nes', - 'Skull & Crossbones (U).nes', - 'Sky Kid (U).nes', - 'Sky Shark (U).nes', - 'Slalom (U).nes', - 'Smash T.V. (U) [!].nes', - 'Snake Rattle\'n Roll (U).nes', - 'Snake\'s Revenge (U).nes', - 'Snoopy\'s Silly Sports Spectacular (U).nes', - 'Snow Bros (U).nes', - 'Soccer (JU).nes', - 'Solar Jetman - Hunt for the Golden Warpship (U).nes', - 'Solitaire (U).nes', - 'Solomon\'s Key (U) [!].nes', - 'Solstice (U).nes', - 'Space Shuttle Project (U).nes', - 'Spelunker (U) [!].nes', - 'Spider-Man - Return of the Sinister Six (U) [!].nes', - 'Spiritual Warfare (U) (V6.1).nes', - 'Spot (U).nes', - 'Spy Hunter (U).nes', - 'Spy Vs Spy (U).nes', - 'Sqoon (U).nes', - 'Stack Up (Robot Block) (JU).nes', - 'Stadium Events (U) [!].nes', - 'Stanley - The Search for Dr. Livingston (U).nes', - 'Star Force (U).nes', - 'Star Soldier (U).nes', - 'Star Trek - 25th Anniversary (U).nes', - 'Star Trek - The Next Generation (U).nes', - 'Star Voyager (U).nes', - 'Star Wars (U).nes', - 'Star Wars - The Empire Strikes Back (U).nes', - 'Starship Hector (U).nes', - 'Startropics (U).nes', - 'Startropics 2 - Zoda\'s Revenge (U).nes', - 'Stealth ATF (U).nes', - 'Stinger (U).nes', + ['Operation Secret Storm', 'roms/Operation Secret Storm (U).nes'], + ['Operation Wolf', 'roms/Operation Wolf (U).nes'], + ['Orb 3D', 'roms/Orb 3D (U).nes'], + ['Othello', 'roms/Othello (U).nes'], + ['Overlord', 'roms/Overlord (U).nes'], + ['P\'radikus Conflict, The', 'roms/P\'radikus Conflict, The (U).nes'], + ['Pac-Mania', 'roms/Pac-Mania (U).nes'], + ['Palamedes', 'roms/Palamedes (U).nes'], + ['Panic Restaurant', 'roms/Panic Restaurant (U).nes'], + ['Paperboy', 'roms/Paperboy (U).nes'], + ['Paperboy 2', 'roms/Paperboy 2 (U).nes'], + ['Peek-A-Boo Poker', 'roms/Peek-A-Boo Poker (UE) [!].nes'], + ['Perfect Fit', 'roms/Perfect Fit (U).nes'], + ['Pesterminator - The Western Exterminator', 'roms/Pesterminator - The Western Exterminator (U).nes'], + ['Peter Pan & The Pirates', 'roms/Peter Pan & The Pirates (U).nes'], + ['Phantom Fighter', 'roms/Phantom Fighter (U).nes'], + ['Pictionary', 'roms/Pictionary (U).nes'], + ['Pinball', 'roms/Pinball (JU).nes'], + ['Pinball Quest', 'roms/Pinball Quest (U).nes'], + ['Pinbot', 'roms/Pinbot (U) [!].nes'], + ['Pipe Dream', 'roms/Pipe Dream (U).nes'], + ['Pirates!', 'roms/Pirates! (U).nes'], + ['Platoon', 'roms/Platoon (U) (PRG1) [!].nes'], + ['Popeye', 'roms/Popeye (JU) (PRG1) [!].nes'], + ['POW - Prisoners of War', 'roms/POW - Prisoners of War (U).nes'], + ['Power Blade', 'roms/Power Blade (U) [!].nes'], + ['Power Blade 2', 'roms/Power Blade 2 (U).nes'], + ['Power Pad Dance Aerobics', 'roms/Power Pad Dance Aerobics (U).nes'], + ['Power Punch 2', 'roms/Power Punch 2 (U).nes'], + ['Predator', 'roms/Predator (U).nes'], + ['Prince of Persia', 'roms/Prince of Persia (U).nes'], + ['Princess Tomato in Salad Kingdom', 'roms/Princess Tomato in Salad Kingdom (U).nes'], + ['Pro Sport Hockey', 'roms/Pro Sport Hockey (U).nes'], + ['Pro Wrestling', 'roms/Pro Wrestling (U) (PRG1) [!].nes'], + ['Punch-Out!!', 'roms/Punch-Out!! (U).nes'], + ['Punisher, The', 'roms/Punisher, The (U).nes'], + ['Puss \'n Boots - Pero\'s Great Adventure', 'roms/Puss \'n Boots - Pero\'s Great Adventure (U).nes'], + ['Puzznic', 'roms/Puzznic (U).nes'], + ['Q-bert', 'roms/Q-bert (U).nes'], + ['Qix', 'roms/Qix (U).nes'], + ['Quattro Adventure', 'roms/Quattro Adventure (U).nes'], + ['Quattro Arcade', 'roms/Quattro Arcade (U).nes'], + ['Quattro Sports', 'roms/Quattro Sports (U).nes'], + ['R.B.I. Baseball', 'roms/R.B.I. Baseball (U).nes'], + ['R.B.I. Baseball 2', 'roms/R.B.I. Baseball 2 (U).nes'], + ['R.B.I. Baseball 3', 'roms/R.B.I. Baseball 3 (U).nes'], + ['R.C. Pro-Am', 'roms/R.C. Pro-Am (U) (PRG1).nes'], + ['R.C. Pro-Am 2', 'roms/R.C. Pro-Am 2 (U).nes'], + ['Race America', 'roms/Race America (U).nes'], + ['Racket Attack', 'roms/Racket Attack (U).nes'], + ['Rad Racer', 'roms/Rad Racer (U).nes'], + ['Rad Racer 2', 'roms/Rad Racer 2 (U) [!].nes'], + ['Rad Racket - Deluxe Tennis II', 'roms/Rad Racket - Deluxe Tennis II (U) [!].nes'], + ['Raid 2020', 'roms/Raid 2020 (U) [!].nes'], + ['Raid on Bungeling Bay', 'roms/Raid on Bungeling Bay (U).nes'], + ['Rainbow Islands - The Story of Bubble Bobble 2', 'roms/Rainbow Islands - The Story of Bubble Bobble 2 (U).nes'], + ['Rally Bike', 'roms/Rally Bike (U).nes'], + ['Rambo', 'roms/Rambo (U).nes'], + ['Rampage', 'roms/Rampage (U).nes'], + ['Rampart', 'roms/Rampart (U).nes'], + ['Remote Control', 'roms/Remote Control (U).nes'], + ['Ren & Stimpy Show, The', 'roms/Ren & Stimpy Show, The (U).nes'], + ['Renegade', 'roms/Renegade (U).nes'], + ['Rescue - The Embassy Mission', 'roms/Rescue - The Embassy Mission (U).nes'], + ['Ring King', 'roms/Ring King (U).nes'], + ['River City Ransom', 'roms/River City Ransom (U).nes'], + ['Road Runner', 'roms/Road Runner (U).nes'], + ['RoadBlasters', 'roms/RoadBlasters (U).nes'], + ['Robin Hood - Prince of Thieves', 'roms/Robin Hood - Prince of Thieves (U).nes'], + ['Robo Warrior', 'roms/Robo Warrior (U).nes'], + ['Robocop', 'roms/Robocop (U).nes'], + ['Robocop 2', 'roms/Robocop 2 (U).nes'], + ['Robocop 3', 'roms/Robocop 3 (U).nes'], + ['Robodemons', 'roms/Robodemons (U).nes'], + ['Rock \'n\' Ball', 'roms/Rock \'n\' Ball (U).nes'], + ['Rocket Ranger', 'roms/Rocket Ranger (U) [!].nes'], + ['Rocketeer, The', 'roms/Rocketeer, The (U).nes'], + ['Rockin\' Kats', 'roms/Rockin\' Kats (U) [!].nes'], + ['Roger Clemens MVP Baseball', 'roms/Roger Clemens MVP Baseball (U).nes'], + ['Rollerball', 'roms/Rollerball (U).nes'], + ['Rollerblade Racer', 'roms/Rollerblade Racer (U).nes'], + ['Rollergames', 'roms/Rollergames (U) [!].nes'], + ['Rolling Thunder', 'roms/Rolling Thunder (U).nes'], + ['Romance of the Three Kingdoms', 'roms/Romance of the Three Kingdoms (U).nes'], + ['Romance of the Three Kingdoms II', 'roms/Romance of the Three Kingdoms II (U) [!].nes'], + ['Roundball - 2-on-2 Challenge', 'roms/Roundball - 2-on-2 Challenge (U).nes'], + ['Rush\'n Attack', 'roms/Rush\'n Attack (U).nes'], + ['Rygar', 'roms/Rygar (U).nes'], + ['SCAT - Special Cybernetic Attack Team', 'roms/SCAT - Special Cybernetic Attack Team (U).nes'], + ['Secret Scout', 'roms/Secret Scout (Unl).nes'], + ['Section Z', 'roms/Section Z (U).nes'], + ['Seicross', 'roms/Seicross (U).nes'], + ['Sesame Street 123', 'roms/Sesame Street 123 (U).nes'], + ['Sesame Street ABC', 'roms/Sesame Street ABC (U).nes'], + ['Sesame Street ABC - 123', 'roms/Sesame Street ABC - 123 (U).nes'], + ['Sesame Street Countdown', 'roms/Sesame Street Countdown (U).nes'], + ['Shadow of the Ninja', 'roms/Shadow of the Ninja (U).nes'], + ['Shadowgate', 'roms/Shadowgate (U).nes'], + ['Shatterhand', 'roms/Shatterhand (U).nes'], + ['Shingen The Ruler', 'roms/Shingen The Ruler (U).nes'], + ['Shinobi', 'roms/Shinobi (U).nes'], + ['Shockwave', 'roms/Shockwave (U).nes'], + ['Shooting Range', 'roms/Shooting Range (U).nes'], + ['Short Order - Eggsplode', 'roms/Short Order - Eggsplode (U) [!].nes'], + ['Side Pocket', 'roms/Side Pocket (U).nes'], + ['Silent Assault', 'roms/Silent Assault (U).nes'], + ['Silent Service', 'roms/Silent Service (U).nes'], + ['Silk Worm', 'roms/Silk Worm (U).nes'], + ['Silver Surfer', 'roms/Silver Surfer (U).nes'], + ['Simpsons, The - Bart Vs. the Space Mutants', 'roms/Simpsons, The - Bart Vs. the Space Mutants (U).nes'], + ['Simpsons, The - Bart Vs. the World', 'roms/Simpsons, The - Bart Vs. the World (U).nes'], + ['Simpsons, The - Bartman Meets Radioactive Man', 'roms/Simpsons, The - Bartman Meets Radioactive Man (U).nes'], + ['Skate or Die 2 - The Search for Double Trouble', 'roms/Skate or Die 2 - The Search for Double Trouble (U).nes'], + ['Skate or Die!', 'roms/Skate or Die! (U).nes'], + ['Ski or Die', 'roms/Ski or Die (U).nes'], + ['Skull & Crossbones', 'roms/Skull & Crossbones (U).nes'], + ['Sky Kid', 'roms/Sky Kid (U).nes'], + ['Sky Shark', 'roms/Sky Shark (U).nes'], + ['Slalom', 'roms/Slalom (U).nes'], + ['Smash T.V.', 'roms/Smash T.V. (U) [!].nes'], + ['Snake Rattle\'n Roll', 'roms/Snake Rattle\'n Roll (U).nes'], + ['Snake\'s Revenge', 'roms/Snake\'s Revenge (U).nes'], + ['Snoopy\'s Silly Sports Spectacular', 'roms/Snoopy\'s Silly Sports Spectacular (U).nes'], + ['Snow Bros', 'roms/Snow Bros (U).nes'], + ['Soccer', 'roms/Soccer (JU).nes'], + ['Solar Jetman - Hunt for the Golden Warpship', 'roms/Solar Jetman - Hunt for the Golden Warpship (U).nes'], + ['Solitaire', 'roms/Solitaire (U).nes'], + ['Solomon\'s Key', 'roms/Solomon\'s Key (U) [!].nes'], + ['Solstice', 'roms/Solstice (U).nes'], + ['Space Shuttle Project', 'roms/Space Shuttle Project (U).nes'], + ['Spelunker', 'roms/Spelunker (U) [!].nes'], + ['Spider-Man - Return of the Sinister Six', 'roms/Spider-Man - Return of the Sinister Six (U) [!].nes'], + ['Spiritual Warfare', 'roms/Spiritual Warfare (U) (V6.1).nes'], + ['Spot', 'roms/Spot (U).nes'], + ['Spy Hunter', 'roms/Spy Hunter (U).nes'], + ['Spy Vs Spy', 'roms/Spy Vs Spy (U).nes'], + ['Sqoon', 'roms/Sqoon (U).nes'], + ['Stack Up', 'roms/Stack Up (Robot Block) (JU).nes'], + ['Stadium Events', 'roms/Stadium Events (U) [!].nes'], + ['Stanley - The Search for Dr. Livingston', 'roms/Stanley - The Search for Dr. Livingston (U).nes'], + ['Star Force', 'roms/Star Force (U).nes'], + ['Star Soldier', 'roms/Star Soldier (U).nes'], + ['Star Trek - 25th Anniversary', 'roms/Star Trek - 25th Anniversary (U).nes'], + ['Star Trek - The Next Generation', 'roms/Star Trek - The Next Generation (U).nes'], + ['Star Voyager', 'roms/Star Voyager (U).nes'], + ['Star Wars', 'roms/Star Wars (U).nes'], + ['Star Wars - The Empire Strikes Back', 'roms/Star Wars - The Empire Strikes Back (U).nes'], + ['Starship Hector', 'roms/Starship Hector (U).nes'], + ['Startropics', 'roms/Startropics (U).nes'], + ['Startropics 2 - Zoda\'s Revenge', 'roms/Startropics 2 - Zoda\'s Revenge (U).nes'], + ['Stealth ATF', 'roms/Stealth ATF (U).nes'], + ['Stinger', 'roms/Stinger (U).nes'], 'Stinger.nes', - 'Street Cop (U).nes', - 'Street Fighter 2010 (U).nes', - 'Strider (U).nes', - 'Stunt Kids (U).nes', - 'Sunday Funday (U).nes', - 'Super C (U) [!].nes', - 'Super Cars (U).nes', - 'Super Dodge Ball (U).nes', - 'Super Glove Ball (U).nes', - 'Super Jeopardy! (U).nes', - 'Super Mario Bros. + Duck Hunt (U).nes', - 'Super Mario Bros. + Duck Hunt + World Class Track Meet (U).nes', - 'Super Mario Bros. 2 (U) (PRG0) [!].nes', - 'Super Pitfall (U).nes', - 'Super Spike V\'Ball (U).nes', - 'Super Spike V\'Ball + Nintendo World Cup (U) [!].nes', - 'Super Sprint (U).nes', - 'Super Spy Hunter (U).nes', - 'Super Team Games (U).nes', - 'Superman (U).nes', - 'Swamp Thing (U) [!].nes', - 'Sword Master (U).nes', - 'Swords and Serpents (U).nes', - 'T&C 2 - Thrilla\'s Surfari (U).nes', - 'T&C Surf Design (U).nes', - 'Taboo - The Sixth Sense (U).nes', - 'Tag Team Wrestling (U).nes', - 'Tagin\' Dragon (U).nes', - 'TaleSpin (U).nes', - 'Target Renegade (U).nes', - 'Tecmo Baseball (U).nes', - 'Tecmo Bowl (U) (PRG1).nes', - 'Tecmo Cup - Soccer Game (U).nes', - 'Tecmo NBA Basketball (U).nes', - 'Tecmo Super Bowl (U).nes', - 'Tecmo World Wrestling (U).nes', - 'Teenage Mutant Ninja Turtles (U) [!].nes', - 'Teenage Mutant Ninja Turtles - Tournament Fighters (U).nes', - 'Teenage Mutant Ninja Turtles II - The Arcade Game (U) [!].nes', - 'Teenage Mutant Ninja Turtles III - The Manhattan Project (U).nes', - 'Terminator 2 - Judgment Day (U).nes', - 'Terminator, The (U).nes', - 'Terra Cresta (U).nes', - 'Three Stooges (U).nes', - 'Thunder & Lightning (U).nes', - 'Thunderbirds (U).nes', - 'Thundercade (U).nes', - 'Tiger-Heli (U).nes', - 'Tiles of Fate (U).nes', - 'Time Lord (U).nes', - 'Times of Lore (U).nes', - 'Tiny Toon Adventures (U).nes', - 'Tiny Toon Adventures 2 - Trouble in Wackyland (U).nes', - 'Tiny Toon Adventures Cartoon Workshop (U).nes', - 'To The Earth (U).nes', - 'Toki (U).nes', - 'Tom & Jerry and Tuffy (U).nes', - 'Tombs and Treasure (U).nes', - 'Toobin\' (U).nes', - 'Top Gun (U) (PRG1).nes', - 'Top Gun - The Second Mission (U).nes', - 'Top Players\' Tennis - Featuring Chris Evert & Ivan Lendl (U).nes', - 'Total Recall (U).nes', - 'Totally Rad (U).nes', - 'Touch Down Fever (U).nes', - 'Toxic Crusaders (U).nes', - 'Track & Field (U).nes', - 'Track & Field 2 (U).nes', + ['Street Cop', 'roms/Street Cop (U).nes'], + ['Street Fighter 2010', 'roms/Street Fighter 2010 (U).nes'], + ['Strider', 'roms/Strider (U).nes'], + ['Stunt Kids', 'roms/Stunt Kids (U).nes'], + ['Sunday Funday', 'roms/Sunday Funday (U).nes'], + ['Super C', 'roms/Super C (U) [!].nes'], + ['Super Cars', 'roms/Super Cars (U).nes'], + ['Super Dodge Ball', 'roms/Super Dodge Ball (U).nes'], + ['Super Glove Ball', 'roms/Super Glove Ball (U).nes'], + ['Super Jeopardy!', 'roms/Super Jeopardy! (U).nes'], + ['Super Mario Bros. + Duck Hunt', 'roms/Super Mario Bros. + Duck Hunt (U).nes'], + ['Super Mario Bros. + Duck Hunt + World Class Track Meet', 'roms/Super Mario Bros. + Duck Hunt + World Class Track Meet (U).nes'], + ['Super Mario Bros. 2', 'roms/Super Mario Bros. 2 (U) (PRG0) [!].nes'], + ['Super Pitfall', 'roms/Super Pitfall (U).nes'], + ['Super Spike V\'Ball', 'roms/Super Spike V\'Ball (U).nes'], + ['Super Spike V\'Ball + Nintendo World Cup', 'roms/Super Spike V\'Ball + Nintendo World Cup (U) [!].nes'], + ['Super Sprint', 'roms/Super Sprint (U).nes'], + ['Super Spy Hunter', 'roms/Super Spy Hunter (U).nes'], + ['Super Team Games', 'roms/Super Team Games (U).nes'], + ['Superman', 'roms/Superman (U).nes'], + ['Swamp Thing', 'roms/Swamp Thing (U) [!].nes'], + ['Sword Master', 'roms/Sword Master (U).nes'], + ['Swords and Serpents', 'roms/Swords and Serpents (U).nes'], + ['T&C 2 - Thrilla\'s Surfari', 'roms/T&C 2 - Thrilla\'s Surfari (U).nes'], + ['T&C Surf Design', 'roms/T&C Surf Design (U).nes'], + ['Taboo - The Sixth Sense', 'roms/Taboo - The Sixth Sense (U).nes'], + ['Tag Team Wrestling', 'roms/Tag Team Wrestling (U).nes'], + ['Tagin\' Dragon', 'roms/Tagin\' Dragon (U).nes'], + ['TaleSpin', 'roms/TaleSpin (U).nes'], + ['Target Renegade', 'roms/Target Renegade (U).nes'], + ['Tecmo Baseball', 'roms/Tecmo Baseball (U).nes'], + ['Tecmo Bowl', 'roms/Tecmo Bowl (U) (PRG1).nes'], + ['Tecmo Cup - Soccer Game', 'roms/Tecmo Cup - Soccer Game (U).nes'], + ['Tecmo NBA Basketball', 'roms/Tecmo NBA Basketball (U).nes'], + ['Tecmo Super Bowl', 'roms/Tecmo Super Bowl (U).nes'], + ['Tecmo World Wrestling', 'roms/Tecmo World Wrestling (U).nes'], + ['Teenage Mutant Ninja Turtles', 'roms/Teenage Mutant Ninja Turtles (U) [!].nes'], + ['Teenage Mutant Ninja Turtles - Tournament Fighters', 'roms/Teenage Mutant Ninja Turtles - Tournament Fighters (U).nes'], + ['Teenage Mutant Ninja Turtles II - The Arcade Game', 'roms/Teenage Mutant Ninja Turtles II - The Arcade Game (U) [!].nes'], + ['Teenage Mutant Ninja Turtles III - The Manhattan Project', 'roms/Teenage Mutant Ninja Turtles III - The Manhattan Project (U).nes'], + ['Terminator 2 - Judgment Day', 'roms/Terminator 2 - Judgment Day (U).nes'], + ['Terminator, The', 'roms/Terminator, The (U).nes'], + ['Terra Cresta', 'roms/Terra Cresta (U).nes'], + ['Three Stooges', 'roms/Three Stooges (U).nes'], + ['Thunder & Lightning', 'roms/Thunder & Lightning (U).nes'], + ['Thunderbirds', 'roms/Thunderbirds (U).nes'], + ['Thundercade', 'roms/Thundercade (U).nes'], + ['Tiger-Heli', 'roms/Tiger-Heli (U).nes'], + ['Tiles of Fate', 'roms/Tiles of Fate (U).nes'], + ['Time Lord', 'roms/Time Lord (U).nes'], + ['Times of Lore', 'roms/Times of Lore (U).nes'], + ['Tiny Toon Adventures', 'roms/Tiny Toon Adventures (U).nes'], + ['Tiny Toon Adventures 2 - Trouble in Wackyland', 'roms/Tiny Toon Adventures 2 - Trouble in Wackyland (U).nes'], + ['Tiny Toon Adventures Cartoon Workshop', 'roms/Tiny Toon Adventures Cartoon Workshop (U).nes'], + ['To The Earth', 'roms/To The Earth (U).nes'], + ['Toki', 'roms/Toki (U).nes'], + ['Tom & Jerry and Tuffy', 'roms/Tom & Jerry and Tuffy (U).nes'], + ['Tombs and Treasure', 'roms/Tombs and Treasure (U).nes'], + ['Toobin\'', 'roms/Toobin\' (U).nes'], + ['Top Gun', 'roms/Top Gun (U) (PRG1).nes'], + ['Top Gun - The Second Mission', 'roms/Top Gun - The Second Mission (U).nes'], + ['Top Players\' Tennis - Featuring Chris Evert & Ivan Lendl', 'roms/Top Players\' Tennis - Featuring Chris Evert & Ivan Lendl (U).nes'], + ['Total Recall', 'roms/Total Recall (U).nes'], + ['Totally Rad', 'roms/Totally Rad (U).nes'], + ['Touch Down Fever', 'roms/Touch Down Fever (U).nes'], + ['Toxic Crusaders', 'roms/Toxic Crusaders (U).nes'], + ['Track & Field', 'roms/Track & Field (U).nes'], + ['Track & Field 2', 'roms/Track & Field 2 (U).nes'], 'Transformers.nes', - 'Treasure Master (U).nes', - 'Trog (U).nes', - 'Trojan (U).nes', - 'Trolls on Treasure Island (U).nes', - 'Twin Cobra (U).nes', - 'Twin Eagle (U).nes', - 'Ultima - Exodus (U).nes', - 'Ultima - Quest of the Avatar (U).nes', - 'Ultima - Warriors of Destiny (U).nes', - 'Ultimate Air Combat (U).nes', - 'Ultimate Basketball (U).nes', - 'Ultimate League Soccer (U).nes', - 'Ultimate Stuntman (U).nes', - 'Uncharted Waters (U).nes', - 'Uninvited (U).nes', - 'Untouchables, The (U).nes', - 'Urban Champion (JU).nes', - 'Vegas Dream (U).nes', - 'Venice Beach Volleyball (U).nes', - 'Vice - Project Doom (U).nes', - 'Videomation (U).nes', - 'Vindicators (U).nes', - 'Volleyball (U).nes', - 'Wacky Races (U).nes', - 'Wall Street Kid (U).nes', - 'Wally Bear and the No Gang (U).nes', - 'Wario\'s Woods (U) [!].nes', - 'Wayne Gretzky Hockey (U).nes', - 'Wayne\'s World (U).nes', - 'WCW World Championship Wrestling (U).nes', - 'Werewolf - The Last Warrior (U).nes', - 'Wheel of Fortune (U) (PRG1) [!].nes', - 'Wheel of Fortune - Starring Vanna White (U).nes', - 'Wheel of Fortune Family Edition (U).nes', - 'Wheel of Fortune Junior Edition (U).nes', - 'Where in Time is Carmen Sandiego (U).nes', - 'Where\'s Waldo (U).nes', - 'Who Framed Roger Rabbit (U).nes', - 'Whomp\'Em (U).nes', - 'Widget (U).nes', - 'Wild Gunman (U) (PRG1) [!].nes', - 'Willow (U).nes', - 'Win, Lose or Draw (U).nes', - 'Winter Games (U).nes', - 'Wizardry - Proving Grounds of the Mad Overlord (U).nes', - 'Wizardry - The Knight of Diamonds (U).nes', - 'Wizards & Warriors (U).nes', - 'Wizards & Warriors 3 (U).nes', - 'Wolverine (U).nes', - 'World Champ (U) [!].nes', - 'World Games (U).nes', - 'Wrath of the Black Manta (U).nes', - 'Wrecking Crew (JUE) [t1].nes', - 'Wurm (U).nes', - 'WWF King of the Ring (U).nes', - 'WWF Steel Cage Challenge (U).nes', - 'WWF Wrestlemania (U).nes', - 'WWF Wrestlemania Challenge (U).nes', - 'Xenophobe (U).nes', - 'Xevious (U).nes', - 'Xexyz (U).nes', - 'Yo! Noid (U).nes', + ['Treasure Master', 'roms/Treasure Master (U).nes'], + ['Trog', 'roms/Trog (U).nes'], + ['Trojan', 'roms/Trojan (U).nes'], + ['Trolls on Treasure Island', 'roms/Trolls on Treasure Island (U).nes'], + ['Twin Cobra', 'roms/Twin Cobra (U).nes'], + ['Twin Eagle', 'roms/Twin Eagle (U).nes'], + ['Ultima - Exodus', 'roms/Ultima - Exodus (U).nes'], + ['Ultima - Quest of the Avatar', 'roms/Ultima - Quest of the Avatar (U).nes'], + ['Ultima - Warriors of Destiny', 'roms/Ultima - Warriors of Destiny (U).nes'], + ['Ultimate Air Combat', 'roms/Ultimate Air Combat (U).nes'], + ['Ultimate Basketball', 'roms/Ultimate Basketball (U).nes'], + ['Ultimate League Soccer', 'roms/Ultimate League Soccer (U).nes'], + ['Ultimate Stuntman', 'roms/Ultimate Stuntman (U).nes'], + ['Uncharted Waters', 'roms/Uncharted Waters (U).nes'], + ['Uninvited', 'roms/Uninvited (U).nes'], + ['Untouchables, The', 'roms/Untouchables, The (U).nes'], + ['Urban Champion', 'roms/Urban Champion (JU).nes'], + ['Vegas Dream', 'roms/Vegas Dream (U).nes'], + ['Venice Beach Volleyball', 'roms/Venice Beach Volleyball (U).nes'], + ['Vice - Project Doom', 'roms/Vice - Project Doom (U).nes'], + ['Videomation', 'roms/Videomation (U).nes'], + ['Vindicators', 'roms/Vindicators (U).nes'], + ['Volleyball', 'roms/Volleyball (U).nes'], + ['Wacky Races', 'roms/Wacky Races (U).nes'], + ['Wall Street Kid', 'roms/Wall Street Kid (U).nes'], + ['Wally Bear and the No Gang', 'roms/Wally Bear and the No Gang (U).nes'], + ['Wario\'s Woods', 'roms/Wario\'s Woods (U) [!].nes'], + ['Wayne Gretzky Hockey', 'roms/Wayne Gretzky Hockey (U).nes'], + ['Wayne\'s World', 'roms/Wayne\'s World (U).nes'], + ['WCW World Championship Wrestling', 'roms/WCW World Championship Wrestling (U).nes'], + ['Werewolf - The Last Warrior', 'roms/Werewolf - The Last Warrior (U).nes'], + ['Wheel of Fortune', 'roms/Wheel of Fortune (U) (PRG1) [!].nes'], + ['Wheel of Fortune - Starring Vanna White', 'roms/Wheel of Fortune - Starring Vanna White (U).nes'], + ['Wheel of Fortune Family Edition', 'roms/Wheel of Fortune Family Edition (U).nes'], + ['Wheel of Fortune Junior Edition', 'roms/Wheel of Fortune Junior Edition (U).nes'], + ['Where in Time is Carmen Sandiego', 'roms/Where in Time is Carmen Sandiego (U).nes'], + ['Where\'s Waldo', 'roms/Where\'s Waldo (U).nes'], + ['Who Framed Roger Rabbit', 'roms/Who Framed Roger Rabbit (U).nes'], + ['Whomp\'Em', 'roms/Whomp\'Em (U).nes'], + ['Widget', 'roms/Widget (U).nes'], + ['Wild Gunman', 'roms/Wild Gunman (U) (PRG1) [!].nes'], + ['Willow', 'roms/Willow (U).nes'], + ['Win, Lose or Draw', 'roms/Win, Lose or Draw (U).nes'], + ['Winter Games', 'roms/Winter Games (U).nes'], + ['Wizardry - Proving Grounds of the Mad Overlord', 'roms/Wizardry - Proving Grounds of the Mad Overlord (U).nes'], + ['Wizardry - The Knight of Diamonds', 'roms/Wizardry - The Knight of Diamonds (U).nes'], + ['Wizards & Warriors', 'roms/Wizards & Warriors (U).nes'], + ['Wizards & Warriors 3', 'roms/Wizards & Warriors 3 (U).nes'], + ['Wolverine', 'roms/Wolverine (U).nes'], + ['World Champ', 'roms/World Champ (U) [!].nes'], + ['World Games', 'roms/World Games (U).nes'], + ['Wrath of the Black Manta', 'roms/Wrath of the Black Manta (U).nes'], + ['Wrecking Crew', 'roms/Wrecking Crew (JUE) [t1].nes'], + ['Wurm', 'roms/Wurm (U).nes'], + ['WWF King of the Ring', 'roms/WWF King of the Ring (U).nes'], + ['WWF Steel Cage Challenge', 'roms/WWF Steel Cage Challenge (U).nes'], + ['WWF Wrestlemania', 'roms/WWF Wrestlemania (U).nes'], + ['WWF Wrestlemania Challenge', 'roms/WWF Wrestlemania Challenge (U).nes'], + ['Xenophobe', 'roms/Xenophobe (U).nes'], + ['Xevious', 'roms/Xevious (U).nes'], + ['Xexyz', 'roms/Xexyz (U).nes'], + ['Yo! Noid', 'roms/Yo! Noid (U).nes'], 'Yo!Noid.nes', - 'Yoshi (U).nes', - 'Yoshi\'s Cookie (U).nes', - 'Young Indiana Jones Chronicles, The (U).nes', - 'Zanac (U).nes', - 'Zen Intergalactic Ninja (U).nes', - 'Zombie Nation (U).nes' - )*/ -}
\ No newline at end of file + ['Yoshi', 'roms/Yoshi (U).nes'], + ['Yoshi\'s Cookie', 'roms/Yoshi\'s Cookie (U).nes'], + ['Young Indiana Jones Chronicles, The', 'roms/Young Indiana Jones Chronicles, The (U).nes'], + ['Zanac', 'roms/Zanac (U).nes'], + ['Zen Intergalactic Ninja', 'roms/Zen Intergalactic Ninja (U).nes'], + ['Zombie Nation', 'roms/Zombie Nation (U).nes'] + ]*/ +};
\ No newline at end of file diff --git a/js.2/ui.js b/js.2/ui.js new file mode 100644 index 0000000..a0c6eca --- /dev/null +++ b/js.2/ui.js @@ -0,0 +1,146 @@ +(function($) { + NES.UI = function(nes, parent) { + var self = this; + self.nes = nes; + + self.root = $('<div></div>'); + self.screen = $('<canvas class="nes-screen" width="256" height="240"></canvas>').appendTo(self.root); + self.controls = $('<div class="nes-controls"></div>').appendTo(self.root); + self.romSelect = $('<select class="nes-roms"></select>').appendTo(self.controls) + self.buttons = { + pause: $('<input type="button" value="pause" class="nes-pause" disabled="disabled">').appendTo(self.controls), + restart: $('<input type="button" value="restart" class="nes-restart" disabled="disabled">').appendTo(self.controls), + sound: $('<input type="button" value="enable sound" class="nes-enablesound">').appendTo(self.controls), + zoom: $('<input type="button" value="zoom in" class="nes-zoom">').appendTo(self.controls) + }; + self.status = $('<p class="nes-status">Booting up...</p>').appendTo(self.root); + self.root.appendTo(parent); + + self.romSelect.change(function() { + self.updateStatus("Downloading..."); + $.ajax({ + url: escape(self.romSelect.val()), + xhr: function() { + var xhr = $.ajaxSettings.xhr() + // Download as binary + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + return xhr; + }, + success: function(data) { + self.nes.loadRom(data); + self.nes.start(); + self.enable(); + } + }); + }); + + self.buttons.pause.click(function() { + if (self.nes.isRunning) { + self.nes.stop(); + self.updateStatus("Paused"); + self.buttons.pause.attr("value", "resume"); + } + else { + self.nes.start(); + self.buttons.pause.attr("value", "pause"); + } + }); + + self.buttons.restart.click(function() { + self.nes.reloadRom(); + self.nes.start(); + }); + + self.buttons.sound.click(function() { + if (self.nes.opts.emulateSound) { + self.nes.opts.emulateSound = false; + self.buttons.sound.attr("value", "enable sound"); + } + else { + self.nes.opts.emulateSound = true; + self.buttons.sound.attr("value", "disable sound"); + } + }); + + self.zoomed = false; + self.buttons.zoom.click(function() { + if (self.zoomed) { + self.screen.animate({ + width: '256px', + height: '240px' + }); + self.buttons.zoom.attr("value", "zoom in"); + self.zoomed = false; + } + else { + self.screen.animate({ + width: '512px', + height: '480px' + }); + self.buttons.zoom.attr("value", "zoom out"); + self.zoomed = true; + } + }); + + // Mouse experiments. Requires jquery.dimensions.js + if ($.offset) { + self.screen.mousedown(function(e) { + if (self.nes.mmap) { + self.nes.mmap.mousePressed = true; + // FIXME: does not take into account zoom + self.nes.mmap.mouseX = e.pageX-self.screen.offset()["left"]; + self.nes.mmap.mouseY = e.pageY-self.screen.offset()["top"]; + } + }).mouseup(function() { + setTimeout(function() { + if (self.nes.mmap) { + self.nes.mmap.mousePressed = false; + self.nes.mmap.mouseX = 0; + self.nes.mmap.mouseY = 0; + } + }, 500); + }); + } + + }; + + NES.UI.prototype = { + updateStatus: function(s) { + this.status.text(s); + }, + + // Enable and reset UI elements + enable: function() { + this.buttons.pause.attr("disabled", null); + if (this.nes.isRunning) { + this.buttons.pause.attr("value", "pause"); + } + else { + this.buttons.pause.attr("value", "resume"); + } + this.buttons.restart.attr("disabled", null); + if (this.nes.opts.emulateSound) { + this.buttons.sound.attr("value", "disable sound"); + } + else { + this.buttons.sound.attr("value", "enable sound"); + } + }, + + setRoms: function(roms) { + this.romSelect.children().remove(); + $("<option>Select a ROM...</option>").appendTo(this.romSelect); + for (var groupName in roms) { + var optgroup = $('<optgroup></optgroup>') + .attr("label", groupName); + for (var i = 0; i < roms[groupName].length; i++) { + $('<option>'+roms[groupName][i][0]+'</option>') + .attr("value", roms[groupName][i][1]) + .appendTo(optgroup); + } + this.romSelect.append(optgroup); + } + } + }; + +})(jQuery); diff --git a/jsnes.3.css b/jsnes.3.css index 2dea2d4..0cfa886 100644 --- a/jsnes.3.css +++ b/jsnes.3.css @@ -2,16 +2,16 @@ text-align: center; } -#controls { +.nes-controls { margin-bottom: 2em; } -#status { +.nes-status { font-size: 0.8em; color: #999; } -#screen { +.nes-screen { display: block; margin: 0 auto 20px auto; } |