UNPKG

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
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