wasmboy
Version:
Gameboy / Gameboy Color Emulator written for Web Assembly using AssemblyScript. Shell/Debugger in Preact
76 lines (72 loc) • 3.01 kB
JavaScript
// 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
};