UNPKG

nostalgist

Version:

Nostalgist.js is a JavaScript library that allows you to run emulators of retro consoles within web browsers.

80 lines (79 loc) 2.63 kB
import type { RetroArchCommand } from '../types/retroarch-command.ts'; import type { RetroArchEmscriptenModule } from '../types/retroarch-emscripten'; import type { EmulatorOptions } from './emulator-options'; import type { ResolvableFile } from './resolvable-file.ts'; type GameStatus = 'initial' | 'paused' | 'running' | 'terminated'; type EmulatorEvent = 'beforeLaunch' | 'onLaunch'; interface EmulatorEmscripten { AL: any; Browser: any; exit: (code: number) => void; JSEvents: any; Module: RetroArchEmscriptenModule; } export declare class Emulator { private canvasInitialSize; private emscripten; private eventListeners; private fileSystem; private gameStatus; private globalDOMEventListeners; private messageQueue; private options; private get coreFullName(); private get fs(); private get romBaseName(); private get sramFileDirectory(); private get sramFilePath(); private get stateFileDirectory(); private get stateFilePath(); private get stateThumbnailFilePath(); constructor(options: EmulatorOptions); callCommand(command: string): void; exit(statusCode?: number): void; getEmscripten(): EmulatorEmscripten; getOptions(): EmulatorOptions; getStatus(): GameStatus; launch(): Promise<void>; loadState(state: ResolvableFile): Promise<void>; on(event: EmulatorEvent, callback: (...args: unknown[]) => unknown): this; pause(): void; press(button: string, player?: number, time?: number): Promise<void>; pressDown(button: string, player?: number): void; pressUp(button: string, player?: number): void; resize({ height, width }: { height: number; width: number; }): void; restart(): void; resume(): void; saveSRAM(): Promise<Blob>; saveState(): Promise<{ state: Blob; thumbnail: Blob | undefined; }>; screenshot(): Promise<Blob>; sendCommand(msg: RetroArchCommand): void; setup(): Promise<void>; private clearStateFile; private fireKeyboardEvent; private getCurrentRetroarchConfig; private getElementSize; private getKeyboardCode; private guessScreenshotFileName; private keyboardDown; private keyboardPress; private keyboardUp; private postRun; private recordGlobalDOMEventListeners; private removeGlobalDOMEventListeners; private runEventListeners; private runMain; private setupEmscripten; private setupFileSystem; private setupRaConfigFiles; private setupRaShaderFiles; private stdin; private updateKeyboardEventHandlers; } export {};