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
TypeScript
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 {};