{"version":3,"sources":["config.js","RomLibrary.js","ListPage.js","ControlMapperRow.js","ControlsModal.js","FrameTimer.js","GamepadController.js","KeyboardController.js","Screen.js","utils.js","Speakers.js","Emulator.js","RunPage.js","App.js","index.js"],"names":["config","ROMS","montgri","name","description","react_default","a","createElement","url","level3","GOOGLE_ANALYTICS_CODE","process","REACT_APP_GOOGLE_ANALYTICS_CODE","SENTRY_URI","REACT_APP_SENTRY_URI","RomLibrary","getRomInfoByHash","hash","this","load","find","rom","save","file","Promise","resolve","reject","reader","FileReader","onload","readAsBinaryString","pFileReader","then","readFile","byteString","target","result","ab","ArrayBuffer","length","ia","Uint8Array","i","charCodeAt","crypto","subtle","digest","buffer","Array","from","map","b","toString","padStart","join","hashFile","_ref","savedRomInfo","localStorage","getItem","existingLibrary","JSON","parse","added","Date","now","newRomInfo","stringify","concat","setItem","delete","removeItem","filter","ListPage","props","_this","Object","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","deleteRom","updateLibrary","setState","romLibrary","handleDragOver","e","preventDefault","dataTransfer","dropEffect","handleDrop","items","getAsFile","files","history","push","pathname","state","_this2","className","onDragOver","onDrop","href","ListGroup","keys","sort","key","Link","to","encodeURIComponent","onClick","title","Component","ControlMapperRow","playerOneButton","playerTwoButton","waitingForKey","handleClick","bind","assertThisInitialized","button","playerButtons","console","log","prevProps","prevState","gamepadButton","newButton","searchButton","gamepadConfig","buttonId","buttons","searchNewButton","prevGamepadConfig","some","b2","waitingForKeyPlayer","gamepadButtonName","type","code","value","playerGamepadId","configs","prevButton","newState","currentPromptButton","player","buttonName","GAMEPAD_ICON","KEYBOARD_ICON","ControlsModal","undefined","modified","handleKeyDown","handleGamepadButtonDown","listenForKey","controllerIcon","gamepadId","controllerIconAlt","setKeys","setGamepadConfig","removeKeyListener","promptButton","document","addEventListener","buttonInfo","playerId","slice","newConfig","assign","event","newKeys","objectSpread","defineProperty","keyCode","toConsumableArray","String","toUpperCase","removeEventListener","Modal","isOpen","toggle","ModalHeader","ModalBody","Table","src","alt","src_ControlMapperRow","Controller","BUTTON_LEFT","BUTTON_SELECT","BUTTON_RIGHT","BUTTON_UP","BUTTON_DOWN","BUTTON_A","BUTTON_B","BUTTON_START","ModalFooter","Button","outline","color","FrameTimer","onAnimationFrame","calibrating","calibrationStartTime","getTime","calibrationCurrentFrames","calibrationFrames","fps","desiredFPS","calibrationTolerance","startBodgeMode","requestAnimationFrame","running","bodgeMode","onGenerateFrame","onWriteFrame","bodgeInterval","setInterval","onBodge","calibrationDelay","_requestID","window","cancelAnimationFrame","clearInterval","GamepadController","options","disableIfGamepadEnabled","callback","self","_getPlayerNumberFromGamepad","gamepad","id","poll","gamepads","navigator","getGamepads","webkitGetGamepads","usedPlayers","gamepadIndex","previousGamepad","gamepadState","previousButtons","buttonCallback","axes","axis","previousAxis","previousButton","pressed","playerNumber","indexOf","configButtons","configButton","onButtonDown","onButtonUp","f","loadGamepadConfig","startPolling","stop","stopped","loop","KEYS","88","89","90","17","13","38","40","37","39","103","105","99","97","104","98","100","102","KeyboardController","loadKeys","handleKeyUp","handleKeyPress","SCREEN_WIDTH","SCREEN_HEIGHT","Screen","setBuffer","y","x","buf32","writeBuffer","imageData","data","set","buf8","context","putImageData","fitInParent","parent","canvas","parentNode","parentWidth","clientWidth","parentHeight","clientHeight","desiredRatio","style","width","Math","round","height","handleMouseDown","onMouseDown","scale","parseFloat","rect","getBoundingClientRect","clientX","left","clientY","top","onMouseUp","ref","initCanvas","getContext","getImageData","fillStyle","fillRect","buf","Uint8ClampedArray","Uint32Array","img","Image","toDataURL","handleError","error","errorInfo","Raven","captureException","extra","Speakers","onBufferUnderrun","writeSample","right","size","bufferSize","enq","onaudioprocess","outputBuffer","getChannelData","samples","deqN","j","RingBuffer","AudioContext","audioCtx","scriptNode","createScriptProcessor","connect","destination","disconnect","close","catch","Emulator","start","frameTimer","speakers","fpsInterval","nes","getFPS","src_Screen_0","screen","frame","zapperMove","zapperFireDown","zapperFireUp","_this3","actualSize","desiredSize","paused","NES","onFrame","onStatusUpdate","onAudioSample","wrap","gamepadController","buttonDown","buttonUp","gamepadPolling","keyboardController","loadROM","romData","RunPage","match","params","slug","isLocalROM","test","romHash","split","romInfo","romName","localROMData","handleLoaded","currentRequest","path","handleProgress","req","XMLHttpRequest","open","overrideMimeType","status","responseText","Error","statusText","onerror","onprogress","send","loadBinary","err","message","location","lengthComputable","loadedPercent","loaded","total","loading","handlePauseResume","layout","navbarHeight","getComputedStyle","navbar","screenContainer","innerHeight","emulator","toggleControlsModal","controlsModalOpen","el","disabled","Progress","position","src_Emulator","src_ControlsModal","abort","App","recordPageview","GoogleAnalytics","pageview","initialize","BrowserRouter","Route","exact","component","render","install","ReactDOM","src_App_0","getElementById"],"mappings":"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","file":"static/js/main.08893c64.chunk.js","sourcesContent":["import React from \"react\";\n\nconst config = {\n ROMS: {\n montgri: {\n name: \"Montgri Adventures\",\n description: This is my own homebrew NES rom,\n url: \"https://jespicas.bitbucket.io/roms/montgriadventures/cart.nes\"\n },\n level3: {\n name: \"Montgri Adventures Level3\",\n description: This is level 3 for OKR,\n url: \"https://jespicas.bitbucket.io/roms/level3/cart.nes\"\n }\n },\n GOOGLE_ANALYTICS_CODE: process.env.REACT_APP_GOOGLE_ANALYTICS_CODE,\n SENTRY_URI: process.env.REACT_APP_SENTRY_URI\n};\n\nexport default config;\n","const pFileReader = function(file) {\n return new Promise((resolve, reject) => {\n var reader = new FileReader();\n reader.onload = resolve;\n reader.readAsBinaryString(file);\n });\n};\n\nconst hashFile = function(byteString) {\n const asHex = buffer => {\n return Array.from(new Uint8Array(buffer))\n .map(b => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n };\n\n const ab = new ArrayBuffer(byteString.length);\n var ia = new Uint8Array(ab);\n\n for (var i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n return crypto.subtle.digest(\"SHA-1\", ab).then(asHex);\n};\n\nconst RomLibrary = {\n getRomInfoByHash: function(hash) {\n return this.load().find(rom => rom.hash === hash);\n },\n save: function(file) {\n return pFileReader(file)\n .then(function(readFile) {\n const byteString = readFile.target.result;\n return hashFile(byteString).then(hash => {\n return { hash, byteString };\n });\n })\n .then(({ hash, byteString }) => {\n const savedRomInfo = localStorage.getItem(\"savedRomInfo\");\n const existingLibrary = savedRomInfo ? JSON.parse(savedRomInfo) : [];\n\n const rom = {\n name: file.name,\n hash: hash,\n added: Date.now()\n };\n\n const newRomInfo = JSON.stringify(existingLibrary.concat([rom]));\n\n localStorage.setItem(\"savedRomInfo\", newRomInfo);\n localStorage.setItem(\"blob-\" + hash, byteString);\n\n return rom;\n });\n },\n load: function() {\n const localData = localStorage.getItem(\"savedRomInfo\");\n if (!localData) return [];\n const savedRomInfo = JSON.parse(localStorage.getItem(\"savedRomInfo\"));\n return savedRomInfo || [];\n },\n delete: function(hash) {\n const existingLibrary = this.load();\n localStorage.removeItem(\"blob-\" + hash);\n localStorage.setItem(\n \"savedRomInfo\",\n JSON.stringify(existingLibrary.filter(rom => rom.hash !== hash))\n );\n }\n};\n\nexport default RomLibrary;\n","import React, { Component } from \"react\";\nimport \"./ListPage.css\";\nimport { ListGroup, Button } from \"reactstrap\";\nimport { Link } from \"react-router-dom\";\nimport config from \"./config\";\n\nimport RomLibrary from \"./RomLibrary\";\n\nclass ListPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n romLibrary: RomLibrary.load()\n };\n }\n render() {\n return (\n
\n A JavaScript NES emulator.{\" \"}\n Source on GitHub.\n
\n\n Or, drag and drop a ROM file onto the page to play it. (Google may\n help you find them.)\n
\n\n {this.state.romLibrary.length > 0 ? (\nPreviously played:
\n\nButton | \n\n Player 1\n | \n \n Player 2\n | \n
---|