code: function (partial) {
          let _that = this[PRIVATE];
          //Press required keys
          for (let i=_that.pressed.length-1; i>=0; i--) {
              if (_that.pressed[i]) {
                  _that.sendKey(i, true);
              }
          }
  
          _that.gameboy.frameDone = false;
          while(!_that.gameboy.frameDone) {
              _that.gameboy.run(); //Run internal logic until the entire frame as finished.
          }
  
          //Release all keys
          for (let i=_that.pressed.length-1; i>=0; i--) {
              _that.pressed[i] = false;
              _that.sendKey(i, false);
          }
  
          ++_that.frames;
  
          return partial ? _that.gameboy.partialScreen : _that.gameboy.currentScreen;
      }
docs: /*
  Emulates a single frame
  
  TODO: add documentation for imageData
  @param partial - DEPRECATED - whether or not to render the entire screen or just the changed bits
  @returns Array - image data for that frame, which can later be converted into a canvas writeable format