UNPKG

wasmboy

Version:

Gameboy / Gameboy Color Emulator written for Web Assembly using AssemblyScript. Shell/Debugger in Preact

76 lines (72 loc) 3.01 kB
// Build our public lib api import { WasmBoyLib } from './wasmboy/wasmboy'; import { WasmBoyPlugins } from './plugins/plugins'; import { WasmBoyAudio } from './audio/audio'; import { WasmBoyController } from './controller/controller'; import { WasmBoyMemory } from './memory/memory'; import { runNumberOfFrames, runWasmExport, getWasmMemorySection, getWasmConstant, getStepsAsString, getCyclesAsString } from './debug/debug'; // Get our package.json import packageJson from '../package.json'; // Debugging properties prepended with _ // export an object that public exposes parts of the singleton // Need to bind to preserve this // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Function/bind export const WasmBoy = { config: WasmBoyLib.config.bind(WasmBoyLib), getCoreType: WasmBoyLib.getCoreType.bind(WasmBoyLib), getConfig: WasmBoyLib.getConfig.bind(WasmBoyLib), setCanvas: WasmBoyLib.setCanvas.bind(WasmBoyLib), getCanvas: WasmBoyLib.getCanvas.bind(WasmBoyLib), addBootROM: WasmBoyLib.addBootROM.bind(WasmBoyLib), getBootROMs: WasmBoyLib.getBootROMs.bind(WasmBoyLib), loadROM: WasmBoyLib.loadROM.bind(WasmBoyLib), play: WasmBoyLib.play.bind(WasmBoyLib), pause: WasmBoyLib.pause.bind(WasmBoyLib), reset: WasmBoyLib.reset.bind(WasmBoyLib), addPlugin: WasmBoyPlugins.addPlugin.bind(WasmBoyPlugins), isPlaying: () => { return !WasmBoyLib.paused; }, isPaused: () => { return WasmBoyLib.paused; }, isReady: () => { return WasmBoyLib.ready; }, isLoadedAndStarted: () => { return WasmBoyLib.loadedAndStarted; }, getVersion: () => { return packageJson.version; }, getSavedMemory: WasmBoyLib.getSavedMemory.bind(WasmBoyLib), saveLoadedCartridge: WasmBoyLib.saveLoadedCartridge.bind(WasmBoyLib), deleteSavedCartridge: WasmBoyLib.deleteSavedCartridge.bind(WasmBoyLib), saveState: WasmBoyLib.saveState.bind(WasmBoyLib), getSaveStates: WasmBoyLib.getSaveStates.bind(WasmBoyLib), loadState: WasmBoyLib.loadState.bind(WasmBoyLib), deleteState: WasmBoyLib.deleteState.bind(WasmBoyLib), getFPS: WasmBoyLib.getFPS.bind(WasmBoyLib), setSpeed: WasmBoyLib.setSpeed.bind(WasmBoyLib), isGBC: WasmBoyLib.isGBC.bind(WasmBoyLib), ResponsiveGamepad: WasmBoyController.ResponsiveGamepad, enableDefaultJoypad: WasmBoyController.enableDefaultJoypad.bind(WasmBoyController), disableDefaultJoypad: WasmBoyController.disableDefaultJoypad.bind(WasmBoyController), setJoypadState: WasmBoyController.setJoypadState.bind(WasmBoyController), resumeAudioContext: WasmBoyAudio.resumeAudioContext.bind(WasmBoyAudio), _getAudioChannels: WasmBoyAudio.getAudioChannels.bind(WasmBoyAudio), _getCartridgeInfo: WasmBoyMemory.getCartridgeInfo.bind(WasmBoyMemory), _runNumberOfFrames: runNumberOfFrames, _runWasmExport: runWasmExport, _getWasmMemorySection: getWasmMemorySection, _getWasmConstant: getWasmConstant, _getStepsAsString: getStepsAsString, _getCyclesAsString: getCyclesAsString };