Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
console.log(
"Buffer underrun, running another frame to try and catch up"
);
this.frameTimer.generateFrame();
// desiredSize will be 2048, and the NES produces 1468 samples on each
// frame so we might need a second frame to be run. Give up after that
// though -- the system is not catching up
if (this.speakers.buffer.size() < desiredSize) {
console.log("Still buffer underrun, running a second frame");
this.frameTimer.generateFrame();
}
}
});
this.nes = new NES({
onFrame: this.screen.setBuffer,
onStatusUpdate: console.log,
onAudioSample: this.speakers.writeSample,
sampleRate: this.speakers.getSampleRate()
});
// For debugging. (["nes"] instead of .nes to avoid VS Code type errors.)
window["nes"] = this.nes;
this.frameTimer = new FrameTimer({
onGenerateFrame: Raven.wrap(this.nes.frame),
onWriteFrame: Raven.wrap(this.screen.writeBuffer)
});
// Set up gamepad and keyboard
this.gamepadController = new GamepadController({
import { Controller } from "jsnes";
// Mapping keyboard code to [controller, button]
const KEYS = {
88: [1, Controller.BUTTON_A, "X"], // X
89: [1, Controller.BUTTON_B, "Y"], // Y (Central European keyboard)
90: [1, Controller.BUTTON_B, "Z"], // Z
17: [1, Controller.BUTTON_SELECT, "Right Ctrl"], // Right Ctrl
13: [1, Controller.BUTTON_START, "Enter"], // Enter
38: [1, Controller.BUTTON_UP, "Up"], // Up
40: [1, Controller.BUTTON_DOWN, "Down"], // Down
37: [1, Controller.BUTTON_LEFT, "Left"], // Left
39: [1, Controller.BUTTON_RIGHT, "Right"], // Right
103: [2, Controller.BUTTON_A, "Num-7"], // Num-7
105: [2, Controller.BUTTON_B, "Num-9"], // Num-9
99: [2, Controller.BUTTON_SELECT, "Num-3"], // Num-3
97: [2, Controller.BUTTON_START, "Num-1"], // Num-1
104: [2, Controller.BUTTON_UP, "Num-8"], // Num-8
98: [2, Controller.BUTTON_DOWN, "Num-2"], // Num-2
100: [2, Controller.BUTTON_LEFT, "Num-4"], // Num-4
102: [2, Controller.BUTTON_RIGHT, "Num-6"] // Num-6
};
export default class KeyboardController {
constructor(options) {
this.onButtonDown = options.onButtonDown;
this.onButtonUp = options.onButtonUp;
}
loadKeys = () => {
import { Controller } from "jsnes";
// Mapping keyboard code to [controller, button]
const KEYS = {
88: [1, Controller.BUTTON_A, "X"], // X
89: [1, Controller.BUTTON_B, "Y"], // Y (Central European keyboard)
90: [1, Controller.BUTTON_B, "Z"], // Z
17: [1, Controller.BUTTON_SELECT, "Right Ctrl"], // Right Ctrl
13: [1, Controller.BUTTON_START, "Enter"], // Enter
38: [1, Controller.BUTTON_UP, "Up"], // Up
40: [1, Controller.BUTTON_DOWN, "Down"], // Down
37: [1, Controller.BUTTON_LEFT, "Left"], // Left
39: [1, Controller.BUTTON_RIGHT, "Right"], // Right
103: [2, Controller.BUTTON_A, "Num-7"], // Num-7
105: [2, Controller.BUTTON_B, "Num-9"], // Num-9
99: [2, Controller.BUTTON_SELECT, "Num-3"], // Num-3
97: [2, Controller.BUTTON_START, "Num-1"], // Num-1
104: [2, Controller.BUTTON_UP, "Num-8"], // Num-8
98: [2, Controller.BUTTON_DOWN, "Num-2"], // Num-2
100: [2, Controller.BUTTON_LEFT, "Num-4"], // Num-4
102: [2, Controller.BUTTON_RIGHT, "Num-6"] // Num-6
};
const KEYS = {
88: [1, Controller.BUTTON_A, "X"], // X
89: [1, Controller.BUTTON_B, "Y"], // Y (Central European keyboard)
90: [1, Controller.BUTTON_B, "Z"], // Z
17: [1, Controller.BUTTON_SELECT, "Right Ctrl"], // Right Ctrl
13: [1, Controller.BUTTON_START, "Enter"], // Enter
38: [1, Controller.BUTTON_UP, "Up"], // Up
40: [1, Controller.BUTTON_DOWN, "Down"], // Down
37: [1, Controller.BUTTON_LEFT, "Left"], // Left
39: [1, Controller.BUTTON_RIGHT, "Right"], // Right
103: [2, Controller.BUTTON_A, "Num-7"], // Num-7
105: [2, Controller.BUTTON_B, "Num-9"], // Num-9
99: [2, Controller.BUTTON_SELECT, "Num-3"], // Num-3
97: [2, Controller.BUTTON_START, "Num-1"], // Num-1
104: [2, Controller.BUTTON_UP, "Num-8"], // Num-8
98: [2, Controller.BUTTON_DOWN, "Num-2"], // Num-2
100: [2, Controller.BUTTON_LEFT, "Num-4"], // Num-4
102: [2, Controller.BUTTON_RIGHT, "Num-6"] // Num-6
};
export default class KeyboardController {
constructor(options) {
this.onButtonDown = options.onButtonDown;
this.onButtonUp = options.onButtonUp;
}
loadKeys = () => {
var keys;
try {
keys = localStorage.getItem("keys");
if (keys) {
keys = JSON.parse(keys);
88: [1, Controller.BUTTON_A, "X"], // X
89: [1, Controller.BUTTON_B, "Y"], // Y (Central European keyboard)
90: [1, Controller.BUTTON_B, "Z"], // Z
17: [1, Controller.BUTTON_SELECT, "Right Ctrl"], // Right Ctrl
13: [1, Controller.BUTTON_START, "Enter"], // Enter
38: [1, Controller.BUTTON_UP, "Up"], // Up
40: [1, Controller.BUTTON_DOWN, "Down"], // Down
37: [1, Controller.BUTTON_LEFT, "Left"], // Left
39: [1, Controller.BUTTON_RIGHT, "Right"], // Right
103: [2, Controller.BUTTON_A, "Num-7"], // Num-7
105: [2, Controller.BUTTON_B, "Num-9"], // Num-9
99: [2, Controller.BUTTON_SELECT, "Num-3"], // Num-3
97: [2, Controller.BUTTON_START, "Num-1"], // Num-1
104: [2, Controller.BUTTON_UP, "Num-8"], // Num-8
98: [2, Controller.BUTTON_DOWN, "Num-2"], // Num-2
100: [2, Controller.BUTTON_LEFT, "Num-4"], // Num-4
102: [2, Controller.BUTTON_RIGHT, "Num-6"] // Num-6
};
export default class KeyboardController {
constructor(options) {
this.onButtonDown = options.onButtonDown;
this.onButtonUp = options.onButtonUp;
}
loadKeys = () => {
var keys;
try {
keys = localStorage.getItem("keys");
if (keys) {
keys = JSON.parse(keys);
}
89: [1, Controller.BUTTON_B, "Y"], // Y (Central European keyboard)
90: [1, Controller.BUTTON_B, "Z"], // Z
17: [1, Controller.BUTTON_SELECT, "Right Ctrl"], // Right Ctrl
13: [1, Controller.BUTTON_START, "Enter"], // Enter
38: [1, Controller.BUTTON_UP, "Up"], // Up
40: [1, Controller.BUTTON_DOWN, "Down"], // Down
37: [1, Controller.BUTTON_LEFT, "Left"], // Left
39: [1, Controller.BUTTON_RIGHT, "Right"], // Right
103: [2, Controller.BUTTON_A, "Num-7"], // Num-7
105: [2, Controller.BUTTON_B, "Num-9"], // Num-9
99: [2, Controller.BUTTON_SELECT, "Num-3"], // Num-3
97: [2, Controller.BUTTON_START, "Num-1"], // Num-1
104: [2, Controller.BUTTON_UP, "Num-8"], // Num-8
98: [2, Controller.BUTTON_DOWN, "Num-2"], // Num-2
100: [2, Controller.BUTTON_LEFT, "Num-4"], // Num-4
102: [2, Controller.BUTTON_RIGHT, "Num-6"] // Num-6
};
export default class KeyboardController {
constructor(options) {
this.onButtonDown = options.onButtonDown;
this.onButtonUp = options.onButtonUp;
}
loadKeys = () => {
var keys;
try {
keys = localStorage.getItem("keys");
if (keys) {
keys = JSON.parse(keys);
}
} catch (e) {
import { Controller } from "jsnes";
// Mapping keyboard code to [controller, button]
const KEYS = {
88: [1, Controller.BUTTON_A, "X"], // X
89: [1, Controller.BUTTON_B, "Y"], // Y (Central European keyboard)
90: [1, Controller.BUTTON_B, "Z"], // Z
17: [1, Controller.BUTTON_SELECT, "Right Ctrl"], // Right Ctrl
13: [1, Controller.BUTTON_START, "Enter"], // Enter
38: [1, Controller.BUTTON_UP, "Up"], // Up
40: [1, Controller.BUTTON_DOWN, "Down"], // Down
37: [1, Controller.BUTTON_LEFT, "Left"], // Left
39: [1, Controller.BUTTON_RIGHT, "Right"], // Right
103: [2, Controller.BUTTON_A, "Num-7"], // Num-7
105: [2, Controller.BUTTON_B, "Num-9"], // Num-9
99: [2, Controller.BUTTON_SELECT, "Num-3"], // Num-3
97: [2, Controller.BUTTON_START, "Num-1"], // Num-1
104: [2, Controller.BUTTON_UP, "Num-8"], // Num-8
98: [2, Controller.BUTTON_DOWN, "Num-2"], // Num-2
100: [2, Controller.BUTTON_LEFT, "Num-4"], // Num-4
102: [2, Controller.BUTTON_RIGHT, "Num-6"] // Num-6
};
export default class KeyboardController {
import { Controller } from "jsnes";
// Mapping keyboard code to [controller, button]
const KEYS = {
88: [1, Controller.BUTTON_A, "X"], // X
89: [1, Controller.BUTTON_B, "Y"], // Y (Central European keyboard)
90: [1, Controller.BUTTON_B, "Z"], // Z
17: [1, Controller.BUTTON_SELECT, "Right Ctrl"], // Right Ctrl
13: [1, Controller.BUTTON_START, "Enter"], // Enter
38: [1, Controller.BUTTON_UP, "Up"], // Up
40: [1, Controller.BUTTON_DOWN, "Down"], // Down
37: [1, Controller.BUTTON_LEFT, "Left"], // Left
39: [1, Controller.BUTTON_RIGHT, "Right"], // Right
103: [2, Controller.BUTTON_A, "Num-7"], // Num-7
105: [2, Controller.BUTTON_B, "Num-9"], // Num-9
99: [2, Controller.BUTTON_SELECT, "Num-3"], // Num-3
97: [2, Controller.BUTTON_START, "Num-1"], // Num-1
104: [2, Controller.BUTTON_UP, "Num-8"], // Num-8
98: [2, Controller.BUTTON_DOWN, "Num-2"], // Num-2
100: [2, Controller.BUTTON_LEFT, "Num-4"], // Num-4
102: [2, Controller.BUTTON_RIGHT, "Num-6"] // Num-6
};
export default class KeyboardController {
constructor(options) {
import { Controller } from "jsnes";
// Mapping keyboard code to [controller, button]
const KEYS = {
88: [1, Controller.BUTTON_A, "X"], // X
89: [1, Controller.BUTTON_B, "Y"], // Y (Central European keyboard)
90: [1, Controller.BUTTON_B, "Z"], // Z
17: [1, Controller.BUTTON_SELECT, "Right Ctrl"], // Right Ctrl
13: [1, Controller.BUTTON_START, "Enter"], // Enter
38: [1, Controller.BUTTON_UP, "Up"], // Up
40: [1, Controller.BUTTON_DOWN, "Down"], // Down
37: [1, Controller.BUTTON_LEFT, "Left"], // Left
39: [1, Controller.BUTTON_RIGHT, "Right"], // Right
103: [2, Controller.BUTTON_A, "Num-7"], // Num-7
105: [2, Controller.BUTTON_B, "Num-9"], // Num-9
99: [2, Controller.BUTTON_SELECT, "Num-3"], // Num-3
97: [2, Controller.BUTTON_START, "Num-1"], // Num-1
104: [2, Controller.BUTTON_UP, "Num-8"], // Num-8
98: [2, Controller.BUTTON_DOWN, "Num-2"], // Num-2
100: [2, Controller.BUTTON_LEFT, "Num-4"], // Num-4
102: [2, Controller.BUTTON_RIGHT, "Num-6"] // Num-6
};
export default class KeyboardController {
constructor(options) {
this.onButtonDown = options.onButtonDown;
handleClick={this.listenForKey}
gamepadConfig={this.state.gamepadConfig}
/>