5 个版本
0.1.5 | 2020年5月31日 |
---|---|
0.1.4 | 2020年5月31日 |
0.1.2 | 2020年5月29日 |
0.1.1 | 2020年5月29日 |
0.1.0 | 2020年5月29日 |
#255 in 模拟器
155KB
2.5K SLoC
gc_nes_web
gc_nes_web 封装了我 gc_nes_core crate 公开的公共函数,通过 Web Assembly - Javascript 互操作在浏览器中使用。它提供加载和运行 NES ROM、提供输入以及提取渲染图像数据的功能。音频目前不支持。
在 NPM 项目中安装
npm install gc_nes_web
使用 JavaScript 与 NES 模拟器
// Import the package
const wasm = await import ("gc_nes_web");
// Create the NES object
let nes = this.state.wasm.nes(romArrayOfBytes);
// Run the emulator to the completion of the next frame and retrieve it
let frame = nes.frame();
// Or run just one cycle and get the frame separately
nes.cycle();
let frame = nes.get_screen();
// Drawing to a Canvas
let offscreenCanvas = new OffscreenCanvas(256, 240);
let offscreenCanvasContext = offscreenCanvas.getContext("2d");
let imageData = offscreenCanvasContext?.createImageData(256, 240);
imageData.data.set(frame);
offscreenCanvasContext.putImageData(imageData, 0, 0);
// mainCanvasContext is the 2D context for the Canvas you actually want to draw to.
mainCanvasContext.drawImage(offscreenCanvas, 0, 0);
通过 wasm-pack,gc_nes_web 完全支持 TypeScript
立即尝试
您可以在我的网站上尝试 gc_nes_emulator,网址为 https://garettcooper.com/#/nes-emulator
当前版本:0.1.5
依赖项
~1.6–2.5MB
~38K SLoC