{"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","corgssim","name","description","url","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","savedRomInfo","localStorage","getItem","existingLibrary","JSON","parse","added","Date","now","newRomInfo","stringify","concat","setItem","delete","removeItem","filter","ListPage","Component","constructor","props","super","deleteRom","updateLibrary","setState","romLibrary","handleDragOver","e","preventDefault","dataTransfer","dropEffect","handleDrop","items","getAsFile","files","history","push","pathname","state","render","className","onDragOver","onDrop","href","ListGroup","Object","keys","sort","key","to","encodeURIComponent","a","onClick","title","ControlMapperRow","playerOneButton","playerTwoButton","waitingForKey","handleClick","bind","componentDidMount","button","playerButtons","console","log","componentDidUpdate","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","ControlsModal","undefined","modified","handleKeyDown","handleGamepadButtonDown","listenForKey","controllerIcon","gamepadId","controllerIconAlt","componentWillUnmount","setKeys","setGamepadConfig","removeKeyListener","promptButton","document","addEventListener","buttonInfo","playerId","slice","newConfig","assign","event","newKeys","keyCode","String","toUpperCase","removeEventListener","Modal","isOpen","toggle","ModalHeader","ModalBody","Table","src","alt","Controller","BUTTON_LEFT","BUTTON_SELECT","BUTTON_RIGHT","BUTTON_UP","BUTTON_DOWN","BUTTON_A","BUTTON_B","BUTTON_START","ModalFooter","Button","outline","color","FrameTimer","onAnimationFrame","time","requestAnimationFrame","excess","interval","newFrameTime","lastFrameTime","numFrames","Math","round","generateFrame","onWriteFrame","timeToNextFrame","setTimeout","onGenerateFrame","running","start","stop","_requestID","window","cancelAnimationFrame","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","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","setBuffer","y","x","buf32","writeBuffer","imageData","data","set","buf8","context","putImageData","fitInParent","parent","canvas","parentNode","parentWidth","clientWidth","parentHeight","clientHeight","style","width","height","handleMouseDown","onMouseDown","scale","parseFloat","rect","getBoundingClientRect","clientX","left","clientY","top","onMouseUp","ref","initCanvas","getContext","getImageData","fillStyle","fillRect","buf","Uint8ClampedArray","Uint32Array","screenshot","img","Image","toDataURL","handleError","error","errorInfo","Raven","captureException","extra","Speakers","onBufferUnderrun","writeSample","right","size","bufferSize","deqN","enq","onaudioprocess","outputBuffer","getChannelData","samples","j","RingBuffer","getSampleRate","AudioContext","myCtx","sampleRate","close","audioCtx","scriptNode","createScriptProcessor","connect","destination","disconnect","catch","Emulator","frameTimer","speakers","fpsInterval","setInterval","nes","getFPS","clearInterval","screen","frame","zapperMove","zapperFireDown","zapperFireUp","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","abort","App","recordPageview","GoogleAnalytics","pageview","initialize","exact","component","componentDidCatch","install","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.d6b7746e.chunk.js","sourcesContent":["import React from \"react\";\n\nconst config = {\n ROMS: {\n corgssim: {\n name: \"CORGS Simulator (U)\",\n description: \"A Retro Video Game Convention Simulator\",\n url: \"/roms/corgssim.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 } 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 \n Source on GitHub.\n \n
\nPreviously played:
\n\nButton | \n\n Player 1\n | \n \n Player 2\n | \n
---|