nostalgist
Version:
Nostalgist.js is a JavaScript library that allows you to run emulators of retro consoles within web browsers.
1,155 lines (1,154 loc) • 135 kB
TypeScript
import * as _$ini from "ini";
import * as _$path_browserify0 from "path-browserify";
//#region src/types/retroarch-emscripten.d.ts
interface RetroArchEmscriptenModule extends EmscriptenModule {
asm: any;
callMain: (args: string[]) => void;
canvas: HTMLCanvasElement;
EmscriptenSendCommand?: (command: string) => void;
ERRNO_CODES: any;
FS: any;
mainScriptUrlOrBlob: Blob | string;
monitorRunDependencies: (left?: number) => Promise<void> | void;
PATH: any;
preRun: ((...args: any) => void)[];
setCanvasSize: (width: number, height: number) => void;
}
type RetroArchEmscriptenModuleOptions = Partial<RetroArchEmscriptenModule>;
//#endregion
//#region src/libs/utils.d.ts
type ResolvableWrapped<T> = ((...args: any[]) => T) | Promise<T>;
type Resolvable<T> = ResolvableWrapped<ResolvableWrapped<T>> | ResolvableWrapped<T> | T;
//#endregion
//#region src/classes/resolvable-file.d.ts
type ResolvableFilePrimitive = ArrayBuffer | Blob | FileSystemFileHandle | Request | Response | string | Uint8Array | URL;
type ResolvableFileObjects = {
fileContent: Resolvable<ResolvableFilePrimitive>;
fileName: Resolvable<string>;
} | ResolvableFilePrimitive;
type ResolvableFileInput = Resolvable<ResolvableFilePrimitive> | ResolvableFileObjects;
type ResolvableFileInputs = Resolvable<ResolvableFileInput[]>;
interface ResolvableFileConstructorParameters {
blobType?: string;
name?: string;
raw: ResolvableFileInput;
signal?: AbortSignal | undefined;
urlResolver?: (raw: unknown) => unknown;
}
type ResolvableFileParameter = ResolvableFile | ResolvableFileConstructorParameters | ResolvableFileConstructorParameters['raw'];
declare class ResolvableFile {
name: string;
/** The base name of the file, without its extension. */
get baseName(): string;
/** The extension name of the file, with a leading ".". */
get extension(): string;
private arrayBuffer;
private blob;
private readonly blobType;
private objectUrl?;
private readonly raw;
private readonly signal;
private text;
private uint8Array;
private readonly urlResolver?;
constructor({
blobType,
name,
raw,
signal,
urlResolver
}: ResolvableFileConstructorParameters);
static create(rawOrOption: ResolvableFileParameter): Promise<ResolvableFile>;
dispose(): void;
getArrayBuffer(): Promise<ArrayBuffer>;
getBlob(): Blob;
getObjectUrl(): string;
getText(): Promise<string>;
getUint8Array(): Promise<Uint8Array<ArrayBufferLike>>;
private load;
private loadArrayBuffer;
private loadContent;
private loadFetchable;
private loadFileSystemFileHandle;
private loadObject;
private loadPlainText;
private loadResponse;
private loadUint8Array;
}
//#endregion
//#region src/types/retroarch-config/input.d.ts
type RetroArchInputButton$1 = number | string;
interface RetroArchInputConfig {
input_close_content: RetroArchInputButton$1;
input_close_content_axis: RetroArchInputButton$1;
input_close_content_btn: RetroArchInputButton$1;
input_close_content_mbtn: RetroArchInputButton$1;
input_desktop_menu_toggle: RetroArchInputButton$1;
input_desktop_menu_toggle_axis: RetroArchInputButton$1;
input_desktop_menu_toggle_btn: RetroArchInputButton$1;
input_desktop_menu_toggle_mbtn: RetroArchInputButton$1;
input_fps_toggle: RetroArchInputButton$1;
input_fps_toggle_axis: RetroArchInputButton$1;
input_fps_toggle_btn: RetroArchInputButton$1;
input_fps_toggle_mbtn: RetroArchInputButton$1;
input_game_focus_toggle: RetroArchInputButton$1;
input_game_focus_toggle_axis: RetroArchInputButton$1;
input_game_focus_toggle_btn: RetroArchInputButton$1;
input_game_focus_toggle_mbtn: RetroArchInputButton$1;
input_hold_fast_forward_btn: RetroArchInputButton$1;
input_hold_slowmotion: RetroArchInputButton$1;
input_netplay_game_watch: RetroArchInputButton$1;
input_netplay_player_chat: RetroArchInputButton$1;
input_netplay_player_chat_axis: RetroArchInputButton$1;
input_netplay_player_chat_btn: RetroArchInputButton$1;
input_netplay_player_chat_mbtn: RetroArchInputButton$1;
input_preempt_toggle: RetroArchInputButton$1;
input_preempt_toggle_axis: RetroArchInputButton$1;
input_preempt_toggle_btn: RetroArchInputButton$1;
input_preempt_toggle_mbtn: RetroArchInputButton$1;
input_record_replay: RetroArchInputButton$1;
input_record_replay_axis: RetroArchInputButton$1;
input_record_replay_btn: RetroArchInputButton$1;
input_record_replay_mbtn: RetroArchInputButton$1;
input_recording_toggle: RetroArchInputButton$1;
input_recording_toggle_axis: RetroArchInputButton$1;
input_recording_toggle_btn: RetroArchInputButton$1;
input_recording_toggle_mbtn: RetroArchInputButton$1;
input_replay_slot_decrease: RetroArchInputButton$1;
input_replay_slot_decrease_axis: RetroArchInputButton$1;
input_replay_slot_decrease_btn: RetroArchInputButton$1;
input_replay_slot_decrease_mbtn: RetroArchInputButton$1;
input_replay_slot_increase: RetroArchInputButton$1;
input_replay_slot_increase_axis: RetroArchInputButton$1;
input_replay_slot_increase_btn: RetroArchInputButton$1;
input_replay_slot_increase_mbtn: RetroArchInputButton$1;
input_reset_axis: RetroArchInputButton$1;
input_reset_btn: RetroArchInputButton$1;
input_reset_mbtn: RetroArchInputButton$1;
input_rewind_axis: RetroArchInputButton$1;
input_rewind_btn: RetroArchInputButton$1;
input_rewind_mbtn: RetroArchInputButton$1;
input_rumble_gain: RetroArchInputButton$1;
input_runahead_toggle: RetroArchInputButton$1;
input_runahead_toggle_axis: RetroArchInputButton$1;
input_runahead_toggle_btn: RetroArchInputButton$1;
input_runahead_toggle_mbtn: RetroArchInputButton$1;
input_save_state_axis: RetroArchInputButton$1;
input_save_state_btn: RetroArchInputButton$1;
input_save_state_mbtn: RetroArchInputButton$1;
input_screenshot_axis: RetroArchInputButton$1;
input_screenshot_btn: RetroArchInputButton$1;
input_screenshot_mbtn: RetroArchInputButton$1;
input_sensors_enable: RetroArchInputButton$1;
input_shader_next_axis: RetroArchInputButton$1;
input_shader_next_btn: RetroArchInputButton$1;
input_shader_next_mbtn: RetroArchInputButton$1;
input_shader_prev_axis: RetroArchInputButton$1;
input_shader_prev_btn: RetroArchInputButton$1;
input_shader_prev_mbtn: RetroArchInputButton$1;
input_shader_toggle_axis: RetroArchInputButton$1;
input_shader_toggle_btn: RetroArchInputButton$1;
input_shader_toggle_mbtn: RetroArchInputButton$1;
input_state_slot_decrease_axis: RetroArchInputButton$1;
input_state_slot_decrease_btn: RetroArchInputButton$1;
input_state_slot_decrease_mbtn: RetroArchInputButton$1;
input_state_slot_increase_axis: RetroArchInputButton$1;
input_state_slot_increase_btn: RetroArchInputButton$1;
input_state_slot_increase_mbtn: RetroArchInputButton$1;
input_streaming_toggle: RetroArchInputButton$1;
input_streaming_toggle_axis: RetroArchInputButton$1;
input_streaming_toggle_btn: RetroArchInputButton$1;
input_streaming_toggle_mbtn: RetroArchInputButton$1;
input_toggle_fast_forward_axis: RetroArchInputButton$1;
input_toggle_fast_forward_btn: RetroArchInputButton$1;
input_toggle_fast_forward_mbtn: RetroArchInputButton$1;
input_toggle_fullscreen_axis: RetroArchInputButton$1;
input_toggle_fullscreen_btn: RetroArchInputButton$1;
input_toggle_fullscreen_mbtn: RetroArchInputButton$1;
input_toggle_slowmotion: RetroArchInputButton$1;
input_toggle_slowmotion_axis: RetroArchInputButton$1;
input_toggle_slowmotion_btn: RetroArchInputButton$1;
input_toggle_slowmotion_mbtn: RetroArchInputButton$1;
input_toggle_statistics_axis: RetroArchInputButton$1;
input_toggle_statistics_btn: RetroArchInputButton$1;
input_toggle_statistics_mbtn: RetroArchInputButton$1;
input_toggle_vrr_runloop_axis: RetroArchInputButton$1;
input_toggle_vrr_runloop_btn: RetroArchInputButton$1;
input_toggle_vrr_runloop_mbtn: RetroArchInputButton$1;
input_touch_scale: RetroArchInputButton$1;
input_turbo_default_button: RetroArchInputButton$1;
input_turbo_mode: RetroArchInputButton$1;
input_volume_down_axis: RetroArchInputButton$1;
input_volume_down_btn: RetroArchInputButton$1;
input_volume_down_mbtn: RetroArchInputButton$1;
input_volume_up_axis: RetroArchInputButton$1;
input_volume_up_btn: RetroArchInputButton$1;
input_volume_up_mbtn: RetroArchInputButton$1;
}
//#endregion
//#region src/types/retroarch-config/input-player.d.ts
type RetroArchInputButton = number | string;
interface RetroArchInputPlayerConfig {
input_player1_a_axis: RetroArchInputButton;
input_player1_a_mbtn: RetroArchInputButton;
input_player1_analog_dpad_mode: RetroArchInputButton;
input_player1_b_axis: RetroArchInputButton;
input_player1_b_mbtn: RetroArchInputButton;
input_player1_down_mbtn: RetroArchInputButton;
input_player1_gun_aux_a: RetroArchInputButton;
input_player1_gun_aux_a_axis: RetroArchInputButton;
input_player1_gun_aux_a_btn: RetroArchInputButton;
input_player1_gun_aux_a_mbtn: RetroArchInputButton;
input_player1_gun_aux_b: RetroArchInputButton;
input_player1_gun_aux_b_axis: RetroArchInputButton;
input_player1_gun_aux_b_btn: RetroArchInputButton;
input_player1_gun_aux_b_mbtn: RetroArchInputButton;
input_player1_gun_aux_c: RetroArchInputButton;
input_player1_gun_aux_c_axis: RetroArchInputButton;
input_player1_gun_aux_c_btn: RetroArchInputButton;
input_player1_gun_aux_c_mbtn: RetroArchInputButton;
input_player1_gun_dpad_down: RetroArchInputButton;
input_player1_gun_dpad_down_axis: RetroArchInputButton;
input_player1_gun_dpad_down_btn: RetroArchInputButton;
input_player1_gun_dpad_down_mbtn: RetroArchInputButton;
input_player1_gun_dpad_left: RetroArchInputButton;
input_player1_gun_dpad_left_axis: RetroArchInputButton;
input_player1_gun_dpad_left_btn: RetroArchInputButton;
input_player1_gun_dpad_left_mbtn: RetroArchInputButton;
input_player1_gun_dpad_right: RetroArchInputButton;
input_player1_gun_dpad_right_axis: RetroArchInputButton;
input_player1_gun_dpad_right_btn: RetroArchInputButton;
input_player1_gun_dpad_right_mbtn: RetroArchInputButton;
input_player1_gun_dpad_up: RetroArchInputButton;
input_player1_gun_dpad_up_axis: RetroArchInputButton;
input_player1_gun_dpad_up_btn: RetroArchInputButton;
input_player1_gun_dpad_up_mbtn: RetroArchInputButton;
input_player1_gun_offscreen_shot: RetroArchInputButton;
input_player1_gun_offscreen_shot_axis: RetroArchInputButton;
input_player1_gun_offscreen_shot_btn: RetroArchInputButton;
input_player1_gun_offscreen_shot_mbtn: RetroArchInputButton;
input_player1_gun_select: RetroArchInputButton;
input_player1_gun_select_axis: RetroArchInputButton;
input_player1_gun_select_btn: RetroArchInputButton;
input_player1_gun_select_mbtn: RetroArchInputButton;
input_player1_gun_start: RetroArchInputButton;
input_player1_gun_start_axis: RetroArchInputButton;
input_player1_gun_start_btn: RetroArchInputButton;
input_player1_gun_start_mbtn: RetroArchInputButton;
input_player1_gun_trigger: RetroArchInputButton;
input_player1_gun_trigger_axis: RetroArchInputButton;
input_player1_gun_trigger_btn: RetroArchInputButton;
input_player1_gun_trigger_mbtn: RetroArchInputButton;
input_player1_l_axis: RetroArchInputButton;
input_player1_l_mbtn: RetroArchInputButton;
input_player1_l_x_minus_axis: RetroArchInputButton;
input_player1_l_x_minus_btn: RetroArchInputButton;
input_player1_l_x_minus_mbtn: RetroArchInputButton;
input_player1_l_x_plus_axis: RetroArchInputButton;
input_player1_l_x_plus_btn: RetroArchInputButton;
input_player1_l_x_plus_mbtn: RetroArchInputButton;
input_player1_l_y_minus_axis: RetroArchInputButton;
input_player1_l_y_minus_btn: RetroArchInputButton;
input_player1_l_y_minus_mbtn: RetroArchInputButton;
input_player1_l_y_plus_axis: RetroArchInputButton;
input_player1_l_y_plus_btn: RetroArchInputButton;
input_player1_l_y_plus_mbtn: RetroArchInputButton;
input_player1_l2_axis: RetroArchInputButton;
input_player1_l2_mbtn: RetroArchInputButton;
input_player1_l3_axis: RetroArchInputButton;
input_player1_l3_mbtn: RetroArchInputButton;
input_player1_left_mbtn: RetroArchInputButton;
input_player1_mouse_index: RetroArchInputButton;
input_player1_r_axis: RetroArchInputButton;
input_player1_r_mbtn: RetroArchInputButton;
input_player1_r_x_minus_axis: RetroArchInputButton;
input_player1_r_x_minus_btn: RetroArchInputButton;
input_player1_r_x_minus_mbtn: RetroArchInputButton;
input_player1_r_x_plus_axis: RetroArchInputButton;
input_player1_r_x_plus_btn: RetroArchInputButton;
input_player1_r_x_plus_mbtn: RetroArchInputButton;
input_player1_r_y_minus_axis: RetroArchInputButton;
input_player1_r_y_minus_btn: RetroArchInputButton;
input_player1_r_y_minus_mbtn: RetroArchInputButton;
input_player1_r_y_plus_axis: RetroArchInputButton;
input_player1_r_y_plus_btn: RetroArchInputButton;
input_player1_r_y_plus_mbtn: RetroArchInputButton;
input_player1_r2_axis: RetroArchInputButton;
input_player1_r2_mbtn: RetroArchInputButton;
input_player1_r3_axis: RetroArchInputButton;
input_player1_r3_mbtn: RetroArchInputButton;
input_player1_right_mbtn: RetroArchInputButton;
input_player1_select_axis: RetroArchInputButton;
input_player1_select_mbtn: RetroArchInputButton;
input_player1_start_axis: RetroArchInputButton;
input_player1_start_mbtn: RetroArchInputButton;
input_player1_turbo_axis: RetroArchInputButton;
input_player1_turbo_btn: RetroArchInputButton;
input_player1_turbo_mbtn: RetroArchInputButton;
input_player1_up_mbtn: RetroArchInputButton;
input_player1_x_axis: RetroArchInputButton;
input_player1_x_mbtn: RetroArchInputButton;
input_player1_y_axis: RetroArchInputButton;
input_player1_y_mbtn: RetroArchInputButton;
input_player2_a: RetroArchInputButton;
input_player2_a_axis: RetroArchInputButton;
input_player2_a_btn: RetroArchInputButton;
input_player2_a_mbtn: RetroArchInputButton;
input_player2_analog_dpad_mode: RetroArchInputButton;
input_player2_b: RetroArchInputButton;
input_player2_b_axis: RetroArchInputButton;
input_player2_b_btn: RetroArchInputButton;
input_player2_b_mbtn: RetroArchInputButton;
input_player2_down: RetroArchInputButton;
input_player2_down_axis: RetroArchInputButton;
input_player2_down_btn: RetroArchInputButton;
input_player2_down_mbtn: RetroArchInputButton;
input_player2_gun_aux_a: RetroArchInputButton;
input_player2_gun_aux_a_axis: RetroArchInputButton;
input_player2_gun_aux_a_btn: RetroArchInputButton;
input_player2_gun_aux_a_mbtn: RetroArchInputButton;
input_player2_gun_aux_b: RetroArchInputButton;
input_player2_gun_aux_b_axis: RetroArchInputButton;
input_player2_gun_aux_b_btn: RetroArchInputButton;
input_player2_gun_aux_b_mbtn: RetroArchInputButton;
input_player2_gun_aux_c: RetroArchInputButton;
input_player2_gun_aux_c_axis: RetroArchInputButton;
input_player2_gun_aux_c_btn: RetroArchInputButton;
input_player2_gun_aux_c_mbtn: RetroArchInputButton;
input_player2_gun_dpad_down: RetroArchInputButton;
input_player2_gun_dpad_down_axis: RetroArchInputButton;
input_player2_gun_dpad_down_btn: RetroArchInputButton;
input_player2_gun_dpad_down_mbtn: RetroArchInputButton;
input_player2_gun_dpad_left: RetroArchInputButton;
input_player2_gun_dpad_left_axis: RetroArchInputButton;
input_player2_gun_dpad_left_btn: RetroArchInputButton;
input_player2_gun_dpad_left_mbtn: RetroArchInputButton;
input_player2_gun_dpad_right: RetroArchInputButton;
input_player2_gun_dpad_right_axis: RetroArchInputButton;
input_player2_gun_dpad_right_btn: RetroArchInputButton;
input_player2_gun_dpad_right_mbtn: RetroArchInputButton;
input_player2_gun_dpad_up: RetroArchInputButton;
input_player2_gun_dpad_up_axis: RetroArchInputButton;
input_player2_gun_dpad_up_btn: RetroArchInputButton;
input_player2_gun_dpad_up_mbtn: RetroArchInputButton;
input_player2_gun_offscreen_shot: RetroArchInputButton;
input_player2_gun_offscreen_shot_axis: RetroArchInputButton;
input_player2_gun_offscreen_shot_btn: RetroArchInputButton;
input_player2_gun_offscreen_shot_mbtn: RetroArchInputButton;
input_player2_gun_select: RetroArchInputButton;
input_player2_gun_select_axis: RetroArchInputButton;
input_player2_gun_select_btn: RetroArchInputButton;
input_player2_gun_select_mbtn: RetroArchInputButton;
input_player2_gun_start: RetroArchInputButton;
input_player2_gun_start_axis: RetroArchInputButton;
input_player2_gun_start_btn: RetroArchInputButton;
input_player2_gun_start_mbtn: RetroArchInputButton;
input_player2_gun_trigger: RetroArchInputButton;
input_player2_gun_trigger_axis: RetroArchInputButton;
input_player2_gun_trigger_btn: RetroArchInputButton;
input_player2_gun_trigger_mbtn: RetroArchInputButton;
input_player2_l: RetroArchInputButton;
input_player2_l_axis: RetroArchInputButton;
input_player2_l_btn: RetroArchInputButton;
input_player2_l_mbtn: RetroArchInputButton;
input_player2_l_x_minus: RetroArchInputButton;
input_player2_l_x_minus_axis: RetroArchInputButton;
input_player2_l_x_minus_btn: RetroArchInputButton;
input_player2_l_x_minus_mbtn: RetroArchInputButton;
input_player2_l_x_plus: RetroArchInputButton;
input_player2_l_x_plus_axis: RetroArchInputButton;
input_player2_l_x_plus_btn: RetroArchInputButton;
input_player2_l_x_plus_mbtn: RetroArchInputButton;
input_player2_l_y_minus: RetroArchInputButton;
input_player2_l_y_minus_axis: RetroArchInputButton;
input_player2_l_y_minus_btn: RetroArchInputButton;
input_player2_l_y_minus_mbtn: RetroArchInputButton;
input_player2_l_y_plus: RetroArchInputButton;
input_player2_l_y_plus_axis: RetroArchInputButton;
input_player2_l_y_plus_btn: RetroArchInputButton;
input_player2_l_y_plus_mbtn: RetroArchInputButton;
input_player2_l2: RetroArchInputButton;
input_player2_l2_axis: RetroArchInputButton;
input_player2_l2_btn: RetroArchInputButton;
input_player2_l2_mbtn: RetroArchInputButton;
input_player2_l3: RetroArchInputButton;
input_player2_l3_axis: RetroArchInputButton;
input_player2_l3_btn: RetroArchInputButton;
input_player2_l3_mbtn: RetroArchInputButton;
input_player2_left: RetroArchInputButton;
input_player2_left_axis: RetroArchInputButton;
input_player2_left_btn: RetroArchInputButton;
input_player2_left_mbtn: RetroArchInputButton;
input_player2_mouse_index: RetroArchInputButton;
input_player2_r: RetroArchInputButton;
input_player2_r_axis: RetroArchInputButton;
input_player2_r_btn: RetroArchInputButton;
input_player2_r_mbtn: RetroArchInputButton;
input_player2_r_x_minus: RetroArchInputButton;
input_player2_r_x_minus_axis: RetroArchInputButton;
input_player2_r_x_minus_btn: RetroArchInputButton;
input_player2_r_x_minus_mbtn: RetroArchInputButton;
input_player2_r_x_plus: RetroArchInputButton;
input_player2_r_x_plus_axis: RetroArchInputButton;
input_player2_r_x_plus_btn: RetroArchInputButton;
input_player2_r_x_plus_mbtn: RetroArchInputButton;
input_player2_r_y_minus: RetroArchInputButton;
input_player2_r_y_minus_axis: RetroArchInputButton;
input_player2_r_y_minus_btn: RetroArchInputButton;
input_player2_r_y_minus_mbtn: RetroArchInputButton;
input_player2_r_y_plus: RetroArchInputButton;
input_player2_r_y_plus_axis: RetroArchInputButton;
input_player2_r_y_plus_btn: RetroArchInputButton;
input_player2_r_y_plus_mbtn: RetroArchInputButton;
input_player2_r2: RetroArchInputButton;
input_player2_r2_axis: RetroArchInputButton;
input_player2_r2_btn: RetroArchInputButton;
input_player2_r2_mbtn: RetroArchInputButton;
input_player2_r3: RetroArchInputButton;
input_player2_r3_axis: RetroArchInputButton;
input_player2_r3_btn: RetroArchInputButton;
input_player2_r3_mbtn: RetroArchInputButton;
input_player2_right: RetroArchInputButton;
input_player2_right_axis: RetroArchInputButton;
input_player2_right_btn: RetroArchInputButton;
input_player2_right_mbtn: RetroArchInputButton;
input_player2_select: RetroArchInputButton;
input_player2_select_axis: RetroArchInputButton;
input_player2_select_btn: RetroArchInputButton;
input_player2_select_mbtn: RetroArchInputButton;
input_player2_start: RetroArchInputButton;
input_player2_start_axis: RetroArchInputButton;
input_player2_start_btn: RetroArchInputButton;
input_player2_start_mbtn: RetroArchInputButton;
input_player2_turbo: RetroArchInputButton;
input_player2_turbo_axis: RetroArchInputButton;
input_player2_turbo_btn: RetroArchInputButton;
input_player2_turbo_mbtn: RetroArchInputButton;
input_player2_up: RetroArchInputButton;
input_player2_up_axis: RetroArchInputButton;
input_player2_up_btn: RetroArchInputButton;
input_player2_up_mbtn: RetroArchInputButton;
input_player2_x: RetroArchInputButton;
input_player2_x_axis: RetroArchInputButton;
input_player2_x_btn: RetroArchInputButton;
input_player2_x_mbtn: RetroArchInputButton;
input_player2_y: RetroArchInputButton;
input_player2_y_axis: RetroArchInputButton;
input_player2_y_btn: RetroArchInputButton;
input_player2_y_mbtn: RetroArchInputButton;
input_player3_a: RetroArchInputButton;
input_player3_a_axis: RetroArchInputButton;
input_player3_a_btn: RetroArchInputButton;
input_player3_a_mbtn: RetroArchInputButton;
input_player3_analog_dpad_mode: RetroArchInputButton;
input_player3_b: RetroArchInputButton;
input_player3_b_axis: RetroArchInputButton;
input_player3_b_btn: RetroArchInputButton;
input_player3_b_mbtn: RetroArchInputButton;
input_player3_down: RetroArchInputButton;
input_player3_down_axis: RetroArchInputButton;
input_player3_down_btn: RetroArchInputButton;
input_player3_down_mbtn: RetroArchInputButton;
input_player3_gun_aux_a: RetroArchInputButton;
input_player3_gun_aux_a_axis: RetroArchInputButton;
input_player3_gun_aux_a_btn: RetroArchInputButton;
input_player3_gun_aux_a_mbtn: RetroArchInputButton;
input_player3_gun_aux_b: RetroArchInputButton;
input_player3_gun_aux_b_axis: RetroArchInputButton;
input_player3_gun_aux_b_btn: RetroArchInputButton;
input_player3_gun_aux_b_mbtn: RetroArchInputButton;
input_player3_gun_aux_c: RetroArchInputButton;
input_player3_gun_aux_c_axis: RetroArchInputButton;
input_player3_gun_aux_c_btn: RetroArchInputButton;
input_player3_gun_aux_c_mbtn: RetroArchInputButton;
input_player3_gun_dpad_down: RetroArchInputButton;
input_player3_gun_dpad_down_axis: RetroArchInputButton;
input_player3_gun_dpad_down_btn: RetroArchInputButton;
input_player3_gun_dpad_down_mbtn: RetroArchInputButton;
input_player3_gun_dpad_left: RetroArchInputButton;
input_player3_gun_dpad_left_axis: RetroArchInputButton;
input_player3_gun_dpad_left_btn: RetroArchInputButton;
input_player3_gun_dpad_left_mbtn: RetroArchInputButton;
input_player3_gun_dpad_right: RetroArchInputButton;
input_player3_gun_dpad_right_axis: RetroArchInputButton;
input_player3_gun_dpad_right_btn: RetroArchInputButton;
input_player3_gun_dpad_right_mbtn: RetroArchInputButton;
input_player3_gun_dpad_up: RetroArchInputButton;
input_player3_gun_dpad_up_axis: RetroArchInputButton;
input_player3_gun_dpad_up_btn: RetroArchInputButton;
input_player3_gun_dpad_up_mbtn: RetroArchInputButton;
input_player3_gun_offscreen_shot: RetroArchInputButton;
input_player3_gun_offscreen_shot_axis: RetroArchInputButton;
input_player3_gun_offscreen_shot_btn: RetroArchInputButton;
input_player3_gun_offscreen_shot_mbtn: RetroArchInputButton;
input_player3_gun_select: RetroArchInputButton;
input_player3_gun_select_axis: RetroArchInputButton;
input_player3_gun_select_btn: RetroArchInputButton;
input_player3_gun_select_mbtn: RetroArchInputButton;
input_player3_gun_start: RetroArchInputButton;
input_player3_gun_start_axis: RetroArchInputButton;
input_player3_gun_start_btn: RetroArchInputButton;
input_player3_gun_start_mbtn: RetroArchInputButton;
input_player3_gun_trigger: RetroArchInputButton;
input_player3_gun_trigger_axis: RetroArchInputButton;
input_player3_gun_trigger_btn: RetroArchInputButton;
input_player3_gun_trigger_mbtn: RetroArchInputButton;
input_player3_l: RetroArchInputButton;
input_player3_l_axis: RetroArchInputButton;
input_player3_l_btn: RetroArchInputButton;
input_player3_l_mbtn: RetroArchInputButton;
input_player3_l_x_minus: RetroArchInputButton;
input_player3_l_x_minus_axis: RetroArchInputButton;
input_player3_l_x_minus_btn: RetroArchInputButton;
input_player3_l_x_minus_mbtn: RetroArchInputButton;
input_player3_l_x_plus: RetroArchInputButton;
input_player3_l_x_plus_axis: RetroArchInputButton;
input_player3_l_x_plus_btn: RetroArchInputButton;
input_player3_l_x_plus_mbtn: RetroArchInputButton;
input_player3_l_y_minus: RetroArchInputButton;
input_player3_l_y_minus_axis: RetroArchInputButton;
input_player3_l_y_minus_btn: RetroArchInputButton;
input_player3_l_y_minus_mbtn: RetroArchInputButton;
input_player3_l_y_plus: RetroArchInputButton;
input_player3_l_y_plus_axis: RetroArchInputButton;
input_player3_l_y_plus_btn: RetroArchInputButton;
input_player3_l_y_plus_mbtn: RetroArchInputButton;
input_player3_l2: RetroArchInputButton;
input_player3_l2_axis: RetroArchInputButton;
input_player3_l2_btn: RetroArchInputButton;
input_player3_l2_mbtn: RetroArchInputButton;
input_player3_l3: RetroArchInputButton;
input_player3_l3_axis: RetroArchInputButton;
input_player3_l3_btn: RetroArchInputButton;
input_player3_l3_mbtn: RetroArchInputButton;
input_player3_left: RetroArchInputButton;
input_player3_left_axis: RetroArchInputButton;
input_player3_left_btn: RetroArchInputButton;
input_player3_left_mbtn: RetroArchInputButton;
input_player3_mouse_index: RetroArchInputButton;
input_player3_r: RetroArchInputButton;
input_player3_r_axis: RetroArchInputButton;
input_player3_r_btn: RetroArchInputButton;
input_player3_r_mbtn: RetroArchInputButton;
input_player3_r_x_minus: RetroArchInputButton;
input_player3_r_x_minus_axis: RetroArchInputButton;
input_player3_r_x_minus_btn: RetroArchInputButton;
input_player3_r_x_minus_mbtn: RetroArchInputButton;
input_player3_r_x_plus: RetroArchInputButton;
input_player3_r_x_plus_axis: RetroArchInputButton;
input_player3_r_x_plus_btn: RetroArchInputButton;
input_player3_r_x_plus_mbtn: RetroArchInputButton;
input_player3_r_y_minus: RetroArchInputButton;
input_player3_r_y_minus_axis: RetroArchInputButton;
input_player3_r_y_minus_btn: RetroArchInputButton;
input_player3_r_y_minus_mbtn: RetroArchInputButton;
input_player3_r_y_plus: RetroArchInputButton;
input_player3_r_y_plus_axis: RetroArchInputButton;
input_player3_r_y_plus_btn: RetroArchInputButton;
input_player3_r_y_plus_mbtn: RetroArchInputButton;
input_player3_r2: RetroArchInputButton;
input_player3_r2_axis: RetroArchInputButton;
input_player3_r2_btn: RetroArchInputButton;
input_player3_r2_mbtn: RetroArchInputButton;
input_player3_r3: RetroArchInputButton;
input_player3_r3_axis: RetroArchInputButton;
input_player3_r3_btn: RetroArchInputButton;
input_player3_r3_mbtn: RetroArchInputButton;
input_player3_right: RetroArchInputButton;
input_player3_right_axis: RetroArchInputButton;
input_player3_right_btn: RetroArchInputButton;
input_player3_right_mbtn: RetroArchInputButton;
input_player3_select: RetroArchInputButton;
input_player3_select_axis: RetroArchInputButton;
input_player3_select_btn: RetroArchInputButton;
input_player3_select_mbtn: RetroArchInputButton;
input_player3_start: RetroArchInputButton;
input_player3_start_axis: RetroArchInputButton;
input_player3_start_btn: RetroArchInputButton;
input_player3_start_mbtn: RetroArchInputButton;
input_player3_turbo: RetroArchInputButton;
input_player3_turbo_axis: RetroArchInputButton;
input_player3_turbo_btn: RetroArchInputButton;
input_player3_turbo_mbtn: RetroArchInputButton;
input_player3_up: RetroArchInputButton;
input_player3_up_axis: RetroArchInputButton;
input_player3_up_btn: RetroArchInputButton;
input_player3_up_mbtn: RetroArchInputButton;
input_player3_x: RetroArchInputButton;
input_player3_x_axis: RetroArchInputButton;
input_player3_x_btn: RetroArchInputButton;
input_player3_x_mbtn: RetroArchInputButton;
input_player3_y: RetroArchInputButton;
input_player3_y_axis: RetroArchInputButton;
input_player3_y_btn: RetroArchInputButton;
input_player3_y_mbtn: RetroArchInputButton;
input_player4_a: RetroArchInputButton;
input_player4_a_axis: RetroArchInputButton;
input_player4_a_btn: RetroArchInputButton;
input_player4_a_mbtn: RetroArchInputButton;
input_player4_analog_dpad_mode: RetroArchInputButton;
input_player4_b: RetroArchInputButton;
input_player4_b_axis: RetroArchInputButton;
input_player4_b_btn: RetroArchInputButton;
input_player4_b_mbtn: RetroArchInputButton;
input_player4_down: RetroArchInputButton;
input_player4_down_axis: RetroArchInputButton;
input_player4_down_btn: RetroArchInputButton;
input_player4_down_mbtn: RetroArchInputButton;
input_player4_gun_aux_a: RetroArchInputButton;
input_player4_gun_aux_a_axis: RetroArchInputButton;
input_player4_gun_aux_a_btn: RetroArchInputButton;
input_player4_gun_aux_a_mbtn: RetroArchInputButton;
input_player4_gun_aux_b: RetroArchInputButton;
input_player4_gun_aux_b_axis: RetroArchInputButton;
input_player4_gun_aux_b_btn: RetroArchInputButton;
input_player4_gun_aux_b_mbtn: RetroArchInputButton;
input_player4_gun_aux_c: RetroArchInputButton;
input_player4_gun_aux_c_axis: RetroArchInputButton;
input_player4_gun_aux_c_btn: RetroArchInputButton;
input_player4_gun_aux_c_mbtn: RetroArchInputButton;
input_player4_gun_dpad_down: RetroArchInputButton;
input_player4_gun_dpad_down_axis: RetroArchInputButton;
input_player4_gun_dpad_down_btn: RetroArchInputButton;
input_player4_gun_dpad_down_mbtn: RetroArchInputButton;
input_player4_gun_dpad_left: RetroArchInputButton;
input_player4_gun_dpad_left_axis: RetroArchInputButton;
input_player4_gun_dpad_left_btn: RetroArchInputButton;
input_player4_gun_dpad_left_mbtn: RetroArchInputButton;
input_player4_gun_dpad_right: RetroArchInputButton;
input_player4_gun_dpad_right_axis: RetroArchInputButton;
input_player4_gun_dpad_right_btn: RetroArchInputButton;
input_player4_gun_dpad_right_mbtn: RetroArchInputButton;
input_player4_gun_dpad_up: RetroArchInputButton;
input_player4_gun_dpad_up_axis: RetroArchInputButton;
input_player4_gun_dpad_up_btn: RetroArchInputButton;
input_player4_gun_dpad_up_mbtn: RetroArchInputButton;
input_player4_gun_offscreen_shot: RetroArchInputButton;
input_player4_gun_offscreen_shot_axis: RetroArchInputButton;
input_player4_gun_offscreen_shot_btn: RetroArchInputButton;
input_player4_gun_offscreen_shot_mbtn: RetroArchInputButton;
input_player4_gun_select: RetroArchInputButton;
input_player4_gun_select_axis: RetroArchInputButton;
input_player4_gun_select_btn: RetroArchInputButton;
input_player4_gun_select_mbtn: RetroArchInputButton;
input_player4_gun_start: RetroArchInputButton;
input_player4_gun_start_axis: RetroArchInputButton;
input_player4_gun_start_btn: RetroArchInputButton;
input_player4_gun_start_mbtn: RetroArchInputButton;
input_player4_gun_trigger: RetroArchInputButton;
input_player4_gun_trigger_axis: RetroArchInputButton;
input_player4_gun_trigger_btn: RetroArchInputButton;
input_player4_gun_trigger_mbtn: RetroArchInputButton;
input_player4_l: RetroArchInputButton;
input_player4_l_axis: RetroArchInputButton;
input_player4_l_btn: RetroArchInputButton;
input_player4_l_mbtn: RetroArchInputButton;
input_player4_l_x_minus: RetroArchInputButton;
input_player4_l_x_minus_axis: RetroArchInputButton;
input_player4_l_x_minus_btn: RetroArchInputButton;
input_player4_l_x_minus_mbtn: RetroArchInputButton;
input_player4_l_x_plus: RetroArchInputButton;
input_player4_l_x_plus_axis: RetroArchInputButton;
input_player4_l_x_plus_btn: RetroArchInputButton;
input_player4_l_x_plus_mbtn: RetroArchInputButton;
input_player4_l_y_minus: RetroArchInputButton;
input_player4_l_y_minus_axis: RetroArchInputButton;
input_player4_l_y_minus_btn: RetroArchInputButton;
input_player4_l_y_minus_mbtn: RetroArchInputButton;
input_player4_l_y_plus: RetroArchInputButton;
input_player4_l_y_plus_axis: RetroArchInputButton;
input_player4_l_y_plus_btn: RetroArchInputButton;
input_player4_l_y_plus_mbtn: RetroArchInputButton;
input_player4_l2: RetroArchInputButton;
input_player4_l2_axis: RetroArchInputButton;
input_player4_l2_btn: RetroArchInputButton;
input_player4_l2_mbtn: RetroArchInputButton;
input_player4_l3: RetroArchInputButton;
input_player4_l3_axis: RetroArchInputButton;
input_player4_l3_btn: RetroArchInputButton;
input_player4_l3_mbtn: RetroArchInputButton;
input_player4_left: RetroArchInputButton;
input_player4_left_axis: RetroArchInputButton;
input_player4_left_btn: RetroArchInputButton;
input_player4_left_mbtn: RetroArchInputButton;
input_player4_mouse_index: RetroArchInputButton;
input_player4_r: RetroArchInputButton;
input_player4_r_axis: RetroArchInputButton;
input_player4_r_btn: RetroArchInputButton;
input_player4_r_mbtn: RetroArchInputButton;
input_player4_r_x_minus: RetroArchInputButton;
input_player4_r_x_minus_axis: RetroArchInputButton;
input_player4_r_x_minus_btn: RetroArchInputButton;
input_player4_r_x_minus_mbtn: RetroArchInputButton;
input_player4_r_x_plus: RetroArchInputButton;
input_player4_r_x_plus_axis: RetroArchInputButton;
input_player4_r_x_plus_btn: RetroArchInputButton;
input_player4_r_x_plus_mbtn: RetroArchInputButton;
input_player4_r_y_minus: RetroArchInputButton;
input_player4_r_y_minus_axis: RetroArchInputButton;
input_player4_r_y_minus_btn: RetroArchInputButton;
input_player4_r_y_minus_mbtn: RetroArchInputButton;
input_player4_r_y_plus: RetroArchInputButton;
input_player4_r_y_plus_axis: RetroArchInputButton;
input_player4_r_y_plus_btn: RetroArchInputButton;
input_player4_r_y_plus_mbtn: RetroArchInputButton;
input_player4_r2: RetroArchInputButton;
input_player4_r2_axis: RetroArchInputButton;
input_player4_r2_btn: RetroArchInputButton;
input_player4_r2_mbtn: RetroArchInputButton;
input_player4_r3: RetroArchInputButton;
input_player4_r3_axis: RetroArchInputButton;
input_player4_r3_btn: RetroArchInputButton;
input_player4_r3_mbtn: RetroArchInputButton;
input_player4_right: RetroArchInputButton;
input_player4_right_axis: RetroArchInputButton;
input_player4_right_btn: RetroArchInputButton;
input_player4_right_mbtn: RetroArchInputButton;
input_player4_select: RetroArchInputButton;
input_player4_select_axis: RetroArchInputButton;
input_player4_select_btn: RetroArchInputButton;
input_player4_select_mbtn: RetroArchInputButton;
input_player4_start: RetroArchInputButton;
input_player4_start_axis: RetroArchInputButton;
input_player4_start_btn: RetroArchInputButton;
input_player4_start_mbtn: RetroArchInputButton;
input_player4_turbo: RetroArchInputButton;
input_player4_turbo_axis: RetroArchInputButton;
input_player4_turbo_btn: RetroArchInputButton;
input_player4_turbo_mbtn: RetroArchInputButton;
input_player4_up: RetroArchInputButton;
input_player4_up_axis: RetroArchInputButton;
input_player4_up_btn: RetroArchInputButton;
input_player4_up_mbtn: RetroArchInputButton;
input_player4_x: RetroArchInputButton;
input_player4_x_axis: RetroArchInputButton;
input_player4_x_btn: RetroArchInputButton;
input_player4_x_mbtn: RetroArchInputButton;
input_player4_y: RetroArchInputButton;
input_player4_y_axis: RetroArchInputButton;
input_player4_y_btn: RetroArchInputButton;
input_player4_y_mbtn: RetroArchInputButton;
}
//#endregion
//#region src/types/retroarch-config/notification.d.ts
interface RetroArchNotificationConfig {
notification_show_autoconfig: boolean;
notification_show_cheats_applied: boolean;
notification_show_config_override_load: boolean;
notification_show_fast_forward: boolean;
notification_show_netplay_extra: boolean;
notification_show_patch_applied: boolean;
notification_show_refresh_rate: boolean;
notification_show_remap_load: boolean;
notification_show_save_state: boolean;
notification_show_screenshot: boolean;
notification_show_screenshot_duration: number;
notification_show_screenshot_flash: number;
notification_show_set_initial_disk: boolean;
notification_show_when_menu_is_alive: boolean;
}
//#endregion
//#region src/types/retroarch-config/quick-menu.d.ts
interface RetroArchQuickMenuConfig {
quick_menu_show_add_to_favorites: boolean;
quick_menu_show_cheats: boolean;
quick_menu_show_close_content: boolean;
quick_menu_show_controls: boolean;
quick_menu_show_core_options_flush: boolean;
quick_menu_show_download_thumbnails: boolean;
quick_menu_show_information: boolean;
quick_menu_show_options: boolean;
quick_menu_show_replay: boolean;
quick_menu_show_reset_core_association: boolean;
quick_menu_show_restart_content: boolean;
quick_menu_show_resume_content: boolean;
quick_menu_show_save_content_dir_overrides: boolean;
quick_menu_show_save_core_overrides: boolean;
quick_menu_show_save_game_overrides: boolean;
quick_menu_show_save_load_state: boolean;
quick_menu_show_savestate_submenu: boolean;
quick_menu_show_set_core_association: boolean;
quick_menu_show_shaders: boolean;
quick_menu_show_start_recording: boolean;
quick_menu_show_start_streaming: boolean;
quick_menu_show_take_screenshot: boolean;
quick_menu_show_undo_save_load_state: boolean;
}
//#endregion
//#region src/types/retroarch-config/rewind.d.ts
interface RetroArchRewindConfig {
rewind_buffer_size: number;
rewind_buffer_size_step: number;
rewind_enable: boolean;
rewind_granularity: number;
}
//#endregion
//#region src/types/retroarch-config/run-ahead.d.ts
interface RetroArchRunAheadConfig {
run_ahead_enabled: boolean;
run_ahead_frames: number;
run_ahead_hide_warnings: boolean;
run_ahead_secondary_instance: boolean;
}
//#endregion
//#region src/types/retroarch-config/save.d.ts
interface RetroArchSaveConfig {
save_file_compression: boolean;
savefile_directory: string;
savefiles_in_content_dir: boolean;
savestate_auto_index: boolean;
savestate_directory: string;
savestate_file_compression: boolean;
savestate_max_keep: number;
savestate_thumbnail_enable: boolean;
savestates_in_content_dir: boolean;
}
//#endregion
//#region src/types/retroarch-config/skeleton.d.ts
/**
* @see {@link https://github.com/libretro/RetroArch/blob/master/retroarch.cfg | RetroArch Skeleton config file in the repo of RetroArch}
*/
interface RetroArchSkeletonConfig {
/**
* If set to a directory, the content history playlist will be saved
* to this directory.
*/
content_history_dir: string;
savestate_auto_load: boolean;
/**
* Automatically saves a savestate at the end of RetroArch's lifetime.
* The path is $SRAM_PATH.auto.
* RetroArch will automatically load any savestate with this path on startup if savestate_auto_load is set.
*/
savestate_auto_save: boolean;
/**
* Path to a libretro implementation.
*/
libretro_path: string;
/**
* Sets log level for libretro cores (GET_LOG_INTERFACE).
* If a log level issued by a libretro core is below libretro_log_level, it is ignored.
* DEBUG logs are always ignored unless verbose mode is activated (--verbose).
* DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
*/
libretro_log_level: number | string;
/**
* Enable or disable verbosity level of frontend.
*/
log_verbosity: boolean;
/**
* If this option is enabled, every content file loaded in RetroArch will be
* automatically added to a history list.
*/
history_list_enable: boolean;
/**
* Enable performance counters
*/
perfcnt_enable: boolean;
/**
* Path to core options config file.
* This config file is used to expose core-specific options.
* It will be written to by RetroArch.
* A default path will be assigned if not set.
*/
core_options_path: string;
/**
* Path to content history file.
* RetroArch keeps track of all content loaded in the menu and from CLI directly for convenient quick loading.
* A default path will be assigned if not set.
*/
content_history_path: string;
/**
* Path to music content history file (optional).
* RetroArch keeps track of all music content loaded in the menu and from CLI directly for convenient quick loading.
* A default path will be assigned if not set.
*/
content_music_history_path: string;
/**
* Path to image content history file (optional).
* RetroArch keeps track of all image content loaded in the menu and from CLI directly for convenient quick loading.
* A default path will be assigned if not set.
*/
content_image_history_path: string;
/**
* Path to video content history file (optional).
* RetroArch keeps track of all video content loaded in the menu and from CLI directly for convenient quick loading.
* A default path will be assigned if not set.
*/
content_video_history_path: string;
/**
* Number of entries that will be kept in content history file.
*/
content_history_size: number;
/**
* Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
* Usually set by developers who bundle libretro/RetroArch apps to point to assets.
*/
content_directory: string;
/**
* Sets start directory for menu config browser.
*/
rgui_config_directory: string;
/**
* Show startup screen in menu.
* Is automatically set to false when seen for the first time.
* This is only updated in config if config_save_on_exit is set to true, however.
*/
rgui_show_start_screen: boolean;
/**
* Flushes config to disk on exit. Useful for menu as settings can be modified.
* Overwrites the config. #include's and comments are not preserved.
*/
config_save_on_exit: boolean;
/**
* Shows hidden files and folders in directory listings.
*/
show_hidden_files: false;
/**
* Input driver. Depending on video driver, it might force a different input driver.
*/
input_driver: string;
/**
* Joypad driver. ("udev", "linuxraw", "paraport", "sdl2", "hid", "dinput")
*/
input_joypad_driver: string;
/**
* Video driver to use. "gl", "xvideo", "sdl", "d3d"
*/
video_driver: string;
/**
* Which context implementation to use.
* Possible ones for desktop are: glx, x-egl, kms-egl, sdl-gl, wgl.
* By default, tries to use first suitable driver.
*/
video_context_driver: string;
/**
* Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
*/
audio_driver: string;
/**
* Audio resampler driver backend. Which audio resampler to use.
* Default will use "sinc".
*/
audio_resampler: string;
/**
* Camera driver.
*/
camera_driver: string;
/**
* Location driver.
*/
location_driver: string;
/**
* Menu driver to use. ("rgui", "xmb", "glui")
*/
menu_driver: string;
/**
* Record driver. Used when recording video.
*/
record_driver: string;
/**
* Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored
* by video driver.
*/
suspend_screensaver_enable: boolean;
/**
* Display framerate.
*/
fps_show: boolean;
/**
* Display memory.
*/
memory_show: boolean;
/**
* Display total number of frames rendered. (only displays if fps_show is enabled)
*/
framecount_show: string;
/**
* Which monitor to prefer. 0 (default) means no particular monitor is preferred, 1 and up (1 being first monitor),
* suggests RetroArch to use that particular monitor.
*/
video_monitor_index: number;
/**
* Start in fullscreen. Can be changed at runtime.
*/
video_fullscreen: boolean;
/**
* If fullscreen, prefer using a windowed fullscreen mode.
*/
video_windowed_fullscreen: boolean;
/**
* Fullscreen resolution. Resolution of 0 uses the resolution of the desktop.
*/
video_fullscreen_x: number;
/**
* Fullscreen resolution. Resolution of 0 uses the resolution of the desktop.
*/
video_fullscreen_y: number;
/**
* Video refresh rate of your CRT monitor.
* Used to calculate a suitable audio input rate.
*/
crt_video_refresh_rate: number;
/**
* Video refresh rate of your monitor.
* Used to calculate a suitable audio input rate.
*/
video_refresh_rate: number;
/**
* Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
* have video problems with sRGB FBO support enabled.
*/
video_force_srgb_disable: boolean;
/**
* If this is true and video_aspect_ratio is not set,
* aspect ratio is decided by libretro implementation.
* If this is false, 1:1 PAR will always be assumed if video_aspect_ratio is not set.
*/
video_aspect_ratio_auto: boolean;
/**
* A floating point value for video aspect ratio (width / height).
* If this is not set, aspect ratio is assumed to be automatic.
* Behavior then is defined by video_aspect_ratio_auto.
*/
video_aspect_ratio: string;
/**
* Windowed x resolution scale and y resolution scale
* (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
*/
video_scale: number;
/**
* Percentage of opacity to use for the window (100 is completely opaque).
*/
video_window_opacity: number;
/**
* Whether to enable the default window decorations like border, titlebar etc.
*/
video_window_show_decorations: boolean;
/**
* Forcibly disable composition. Only works in Windows Vista/7 for now.
*/
video_disable_composition: boolean;
/**
* Video vsync.
*/
video_vsync: boolean;
/**
* Interval at which a Vsync swap is performed.
* 1 is normal, 2 is doubled frames, 3 is tripled frames, etc.
*/
video_swap_interval: number;
/**
* Max amount of swapchain images.
* Single buffering = 1, Double buffering = 2, 3 = Triple buffering
*/
video_max_swapchain_images: number;
/**
* Attempts to hard-synchronize CPU and GPU. Can reduce latency at cost of performance.
*/
video_hard_sync: boolean;
/**
* Sets how many frames CPU can run ahead of GPU when using video_hard_sync.
* Maximum is 3.
*/
video_hard_sync_frames: number;
/**
* Sets how many milliseconds to delay after VSync before running the core.
* Can reduce latency at cost of higher risk of stuttering.
* Maximum is 15.
*/
video_frame_delay: number;
/**
* Inserts a black frame inbetween frames.
* Useful for 120 Hz monitors who want to play 60 Hz material with eliminated ghosting.
* video_refresh_rate should still be configured as if it is a 60 Hz monitor (divide refresh rate by 2).
*/
video_black_frame_insertion: boolean;
/**
* Use threaded video driver. Using this might improve performance at possible cost of latency and more video stuttering.
*/
video_threaded: boolean;
/**
* Use a shared context for HW rendered libretro cores.
* Avoids having to assume HW state changes inbetween frames.
*/
video_shared_context: boolean;
/**
* Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
*/
video_smooth: boolean;
/**
* Forces rendering area to stay equal to content aspect ratio or as defined in video_aspect_ratio.
*/
video_force_aspect: boolean;
/**
* Only scales video in integer steps.
* The base size depends on system-reported geometry and aspect ratio.
* If video_force_aspect is not set, X/Y will be integer scaled independently.
*/
video_scale_integer: boolean;
/**
* Index of the aspect ratio selection in the menu.
* 20 = Config, 21 = 1:1 PAR, 22 = Core Provided, 23 = Custom Aspect Ratio
*/
aspect_ratio_index: number;
/**
* Forces cropping of overscanned frames.
* Exact behavior of this option is implementation specific.
*/
video_crop_overscan: boolean;
/**
* Path to shader. Shader can be either Cg, CGP (Cg preset) or GLSL, GLSLP (GLSL preset)
*/
video_shader: string;
/**
* Load video_shader on startup.
* Other shaders can still be loaded later in runtime.
*/
video_shader_enable: boolean;
/**
* CPU-based video filter. Path to a dynamic library.
*/
video_filter: string;
/**
* Path to a font used for rendering messages. This path must be defined to enable fonts.
* Do note that the _full_ path of the font is necessary!
*/
video_font_path: string;
/**
* Size of the font rendered in points.
*/
video_font_size: number;
/**
* Enable usage of OSD messages.
*/
video_font_enable: boolean;
/**
* Offset for where messages will be placed on screen. Values are in range 0.0 to 1.0 for both x and y values.
* [0.0, 0.0] maps to the lower left corner of the screen.
*/
video_message_pos_x: number;
/**
* Offset for where messages will be placed on screen. Values are in range 0.0 to 1.0 for both x and y values.
* [0.0, 0.0] maps to the lower left corner of the screen.
*/
video_message_pos_y: number;
/**
* Color for message. The value is treated as a hexadecimal value.
* It is a regular RGB hex number, i.e. red is "ff0000".
*/
video_message_color: string;
/**
* Background color for OSD messages. Red/Green/Blue values are from 0 to 255 and opacity is 0.0 to 1.0.
*/
video_message_bgcolor_enable: boolean;
/**
* Background color for OSD messages. Red/Green/Blue values are from 0 to 255 and opacity is 0.0 to 1.0.
*/
video_message_bgcolor_red: number;
/**
* Background color for OSD messages. Red/Green/Blue values are from 0 to 255 and opacity is 0.0 to 1.0.
*/
video_message_bgcolor_green: number;
/**
* Background color for OSD messages. Red/Green/Blue values are from 0 to 255 and opac