RetroArch
Classes | Macros | Typedefs | Enumerations | Functions | Variables
retroarch.c File Reference
#include <stdlib.h>
#include <stdarg.h>
#include <stdint.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <setjmp.h>
#include <math.h>
#include <boolean.h>
#include <string/stdstring.h>
#include <lists/string_list.h>
#include <retro_timers.h>
#include <compat/strl.h>
#include <compat/getopt.h>
#include <audio/audio_mixer.h>
#include <compat/posix_string.h>
#include <streams/file_stream.h>
#include <file/file_path.h>
#include <retro_assert.h>
#include <retro_miscellaneous.h>
#include <queues/message_queue.h>
#include <queues/task_queue.h>
#include <features/features_cpu.h>
#include "autosave.h"
#include "config.features.h"
#include "content.h"
#include "core_type.h"
#include "core_info.h"
#include "dynamic.h"
#include "driver.h"
#include "input/input_driver.h"
#include "msg_hash.h"
#include "movie.h"
#include "dirs.h"
#include "paths.h"
#include "file_path_special.h"
#include "ui/ui_companion_driver.h"
#include "verbosity.h"
#include "frontend/frontend_driver.h"
#include "audio/audio_driver.h"
#include "camera/camera_driver.h"
#include "record/record_driver.h"
#include "core.h"
#include "configuration.h"
#include "list_special.h"
#include "managers/core_option_manager.h"
#include "managers/cheat_manager.h"
#include "managers/state_manager.h"
#include "tasks/tasks_internal.h"
#include "performance_counters.h"
#include "version.h"
#include "version_git.h"
#include "retroarch.h"
#include "command.h"

Classes

struct  runloop_ctx_msg_info
 

Macros

#define _PSUPP(var, name, desc)   printf(" %s:\n\t\t%s: %s\n", name, desc, _##var##_supp ? "yes" : "no")
 
#define FAIL_CPU(simd_type)
 
#define DEFAULT_EXT   ""
 
#define SHADER_FILE_WATCH_DELAY_MSEC   500
 
#define HOLD_START_DELAY_SEC   2
 
#define FFMPEG_RECORD_ARG   "r:"
 
#define DYNAMIC_ARG
 
#define NETPLAY_ARG
 
#define BSV_MOVIE_ARG   "P:R:M:"
 
#define time_to_exit(quit_key_pressed)   (runloop_shutdown_initiated || quit_key_pressed || !is_alive || bsv_movie_is_end_of_file() || ((runloop_max_frames != 0) && (frame_count >= runloop_max_frames)) || runloop_exec)
 
#define runloop_check_cheevos()   (settings->bools.cheevos_enable && cheevos_loaded && (!cheats_are_enabled && !cheats_were_enabled))
 
#define runloop_netplay_pause()   ((void)0)
 

Typedefs

typedef struct runloop_ctx_msg_info runloop_ctx_msg_info_t
 

Enumerations

enum  {
  RA_OPT_MENU = 256, RA_OPT_STATELESS, RA_OPT_CHECK_FRAMES, RA_OPT_PORT,
  RA_OPT_SPECTATE, RA_OPT_NICK, RA_OPT_COMMAND, RA_OPT_APPENDCONFIG,
  RA_OPT_BPS, RA_OPT_IPS, RA_OPT_NO_PATCH, RA_OPT_RECORDCONFIG,
  RA_OPT_SUBSYSTEM, RA_OPT_SIZE, RA_OPT_FEATURES, RA_OPT_VERSION,
  RA_OPT_EOF_EXIT, RA_OPT_LOG_FILE, RA_OPT_MAX_FRAMES, RA_OPT_MAX_FRAMES_SCREENSHOT,
  RA_OPT_MAX_FRAMES_SCREENSHOT_PATH
}
 
enum  runloop_state {
  RUNLOOP_STATE_ITERATE = 0, RUNLOOP_STATE_POLLED_AND_SLEEP, RUNLOOP_STATE_SLEEP, RUNLOOP_STATE_MENU_ITERATE,
  RUNLOOP_STATE_END, RUNLOOP_STATE_QUIT
}
 

Functions

static void retroarch_msg_queue_deinit (void)
 
static void retroarch_msg_queue_init (void)
 
static void retroarch_override_setting_free_state (void)
 
static void global_free (void)
 
static void retroarch_print_features (void)
 
static void retroarch_print_version (void)
 
static void retroarch_print_help (const char *arg0)
 
static void retroarch_parse_input_and_config (int argc, char *argv[])
 
static bool retroarch_init_state (void)
 
bool retroarch_validate_game_options (char *s, size_t len, bool mkdir)
 
static void retroarch_validate_cpu_features (void)
 
static void retroarch_main_init_media (void)
 
bool retroarch_main_init (int argc, char *argv[])
 
bool retroarch_is_on_main_thread (void)
 
void rarch_menu_running (void)
 
void rarch_menu_running_finished (void)
 
static bool rarch_game_specific_options (char **output)
 
bool rarch_ctl (enum rarch_ctl_state state, void *data)
 
bool retroarch_is_forced_fullscreen (void)
 
void retroarch_unset_forced_fullscreen (void)
 
bool retroarch_is_switching_display_mode (void)
 
void retroarch_set_switching_display_mode (void)
 
void retroarch_unset_switching_display_mode (void)
 
void retroarch_set_shader_preset (const char *preset)
 
void retroarch_unset_shader_preset (void)
 
char * retroarch_get_shader_preset (void)
 
bool retroarch_override_setting_is_set (enum rarch_override_setting enum_idx, void *data)
 
void retroarch_override_setting_set (enum rarch_override_setting enum_idx, void *data)
 
void retroarch_override_setting_unset (enum rarch_override_setting enum_idx, void *data)
 
int retroarch_get_capabilities (enum rarch_capabilities type, char *s, size_t len)
 
void retroarch_set_current_core_type (enum rarch_core_type type, bool explicitly_set)
 
void retroarch_fail (int error_code, const char *error)
 
bool retroarch_main_quit (void)
 
global_tglobal_get_ptr (void)
 
void runloop_msg_queue_push (const char *msg, unsigned prio, unsigned duration, bool flush)
 
void runloop_get_status (bool *is_paused, bool *is_idle, bool *is_slowmotion, bool *is_perfcnt_enable)
 
bool runloop_msg_queue_pull (const char **ret)
 
static enum runloop_state runloop_check_state (settings_t *settings, bool input_nonblock_state, unsigned *sleep_ms)
 
void runloop_set (enum runloop_action action)
 
void runloop_unset (enum runloop_action action)
 
int runloop_iterate (unsigned *sleep_ms)
 
rarch_system_info_trunloop_get_system_info (void)
 
struct retro_system_inforunloop_get_libretro_system_info (void)
 

Variables

static jmp_buf error_sjlj_context
 
static enum rarch_core_type current_core_type = CORE_TYPE_PLAIN
 
static enum rarch_core_type explicit_current_core_type = CORE_TYPE_PLAIN
 
static char error_string [255] = {0}
 
static char runtime_shader_preset [255] = {0}
 
static retro_bits_t has_set_libretro_device
 
static bool has_set_core = false
 
static bool has_set_username = false
 
static bool rarch_is_inited = false
 
static bool rarch_error_on_init = false
 
static bool rarch_block_config_read = false
 
static bool rarch_force_fullscreen = false
 
static bool rarch_is_switching_display_mode = false
 
static bool has_set_verbosity = false
 
static bool has_set_libretro = false
 
static bool has_set_libretro_directory = false
 
static bool has_set_save_path = false
 
static bool has_set_state_path = false
 
static bool has_set_netplay_mode = false
 
static bool has_set_netplay_ip_address = false
 
static bool has_set_netplay_ip_port = false
 
static bool has_set_netplay_stateless_mode = false
 
static bool has_set_netplay_check_frames = false
 
static bool has_set_ups_pref = false
 
static bool has_set_bps_pref = false
 
static bool has_set_ips_pref = false
 
static bool rarch_is_sram_load_disabled = false
 
static bool rarch_is_sram_save_disabled = false
 
static bool rarch_use_sram = false
 
static bool rarch_ups_pref = false
 
static bool rarch_bps_pref = false
 
static bool rarch_ips_pref = false
 
static bool rarch_patch_blocked = false
 
static bool rarch_first_start = true
 
static bool runloop_force_nonblock = false
 
static bool runloop_paused = false
 
static bool runloop_idle = false
 
static bool runloop_exec = false
 
static bool runloop_slowmotion = false
 
bool runloop_fastmotion = false
 
static bool runloop_shutdown_initiated = false
 
static bool runloop_core_shutdown_initiated = false
 
static bool runloop_perfcnt_enable = false
 
static bool runloop_overrides_active = false
 
static bool runloop_remaps_core_active = false
 
static bool runloop_remaps_game_active = false
 
static bool runloop_remaps_content_dir_active = false
 
static bool runloop_game_options_active = false
 
static bool runloop_missing_bios = false
 
static bool runloop_autosave = false
 
static rarch_system_info_t runloop_system
 
static struct retro_frame_time_callback runloop_frame_time
 
static retro_keyboard_event_t runloop_key_event = NULL
 
static retro_keyboard_event_t runloop_frontend_key_event = NULL
 
static core_option_manager_trunloop_core_options = NULL
 
static msg_queue_trunloop_msg_queue = NULL
 
static unsigned runloop_pending_windowed_scale = 0
 
static unsigned runloop_max_frames = 0
 
static bool runloop_max_frames_screenshot = false
 
static char runloop_max_frames_screenshot_path [PATH_MAX_LENGTH] = {0}
 
static unsigned fastforward_after_frames = 0
 
static retro_usec_t runloop_frame_time_last = 0
 
static retro_time_t frame_limit_minimum_time = 0.0
 
static retro_time_t frame_limit_last_time = 0.0
 
bool input_driver_flushing_input
 

Macro Definition Documentation

◆ _PSUPP

#define _PSUPP (   var,
  name,
  desc 
)    printf(" %s:\n\t\t%s: %s\n", name, desc, _##var##_supp ? "yes" : "no")

◆ BSV_MOVIE_ARG

#define BSV_MOVIE_ARG   "P:R:M:"

◆ DEFAULT_EXT

#define DEFAULT_EXT   ""

◆ DYNAMIC_ARG

#define DYNAMIC_ARG

◆ FAIL_CPU

#define FAIL_CPU (   simd_type)
Value:
do { \
RARCH_ERR(simd_type " code is compiled in, but CPU does not support this feature. Cannot continue.\n"); \
retroarch_fail(1, "validate_cpu_features()"); \
} while(0)

◆ FFMPEG_RECORD_ARG

#define FFMPEG_RECORD_ARG   "r:"

◆ HOLD_START_DELAY_SEC

#define HOLD_START_DELAY_SEC   2

◆ NETPLAY_ARG

#define NETPLAY_ARG

◆ runloop_check_cheevos

#define runloop_check_cheevos ( )    (settings->bools.cheevos_enable && cheevos_loaded && (!cheats_are_enabled && !cheats_were_enabled))

◆ runloop_netplay_pause

#define runloop_netplay_pause ( )    ((void)0)

◆ SHADER_FILE_WATCH_DELAY_MSEC

#define SHADER_FILE_WATCH_DELAY_MSEC   500

◆ time_to_exit

#define time_to_exit (   quit_key_pressed)    (runloop_shutdown_initiated || quit_key_pressed || !is_alive || bsv_movie_is_end_of_file() || ((runloop_max_frames != 0) && (frame_count >= runloop_max_frames)) || runloop_exec)

Typedef Documentation

◆ runloop_ctx_msg_info_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
RA_OPT_MENU 
RA_OPT_STATELESS 
RA_OPT_CHECK_FRAMES 
RA_OPT_PORT 
RA_OPT_SPECTATE 
RA_OPT_NICK 
RA_OPT_COMMAND 
RA_OPT_APPENDCONFIG 
RA_OPT_BPS 
RA_OPT_IPS 
RA_OPT_NO_PATCH 
RA_OPT_RECORDCONFIG 
RA_OPT_SUBSYSTEM 
RA_OPT_SIZE 
RA_OPT_FEATURES 
RA_OPT_VERSION 
RA_OPT_EOF_EXIT 
RA_OPT_LOG_FILE 
RA_OPT_MAX_FRAMES 
RA_OPT_MAX_FRAMES_SCREENSHOT 
RA_OPT_MAX_FRAMES_SCREENSHOT_PATH 

◆ runloop_state

Enumerator
RUNLOOP_STATE_ITERATE 
RUNLOOP_STATE_POLLED_AND_SLEEP 
RUNLOOP_STATE_SLEEP 
RUNLOOP_STATE_MENU_ITERATE 
RUNLOOP_STATE_END 
RUNLOOP_STATE_QUIT 

Function Documentation

◆ global_free()

static void global_free ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ global_get_ptr()

global_t* global_get_ptr ( void  )

◆ rarch_ctl()

bool rarch_ctl ( enum rarch_ctl_state  state,
void data 
)
Here is the call graph for this function:

◆ rarch_game_specific_options()

static bool rarch_game_specific_options ( char **  output)
static

rarch_game_specific_options:

Returns: true (1) if a game specific core options path has been found, otherwise false (0).

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rarch_menu_running()

void rarch_menu_running ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rarch_menu_running_finished()

void rarch_menu_running_finished ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_fail()

void retroarch_fail ( int  error_code,
const char *  error 
)

retroarch_fail: : Error code. : Error message to show.

Sanely kills the program.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_get_capabilities()

int retroarch_get_capabilities ( enum rarch_capabilities  type,
char *  s,
size_t  len 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_get_shader_preset()

char* retroarch_get_shader_preset ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_init_state()

static bool retroarch_init_state ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_is_forced_fullscreen()

bool retroarch_is_forced_fullscreen ( void  )
Here is the caller graph for this function:

◆ retroarch_is_on_main_thread()

bool retroarch_is_on_main_thread ( void  )

◆ retroarch_is_switching_display_mode()

bool retroarch_is_switching_display_mode ( void  )
Here is the caller graph for this function:

◆ retroarch_main_init()

bool retroarch_main_init ( int  argc,
char *  argv[] 
)

retroarch_main_init: : Count of (commandline) arguments. : (Commandline) arguments.

Initializes the program.

Returns: true on success, otherwise false if there was an error.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_main_init_media()

static void retroarch_main_init_media ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_main_quit()

bool retroarch_main_quit ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_msg_queue_deinit()

static void retroarch_msg_queue_deinit ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_msg_queue_init()

static void retroarch_msg_queue_init ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_override_setting_free_state()

static void retroarch_override_setting_free_state ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_override_setting_is_set()

bool retroarch_override_setting_is_set ( enum rarch_override_setting  enum_idx,
void data 
)
Here is the caller graph for this function:

◆ retroarch_override_setting_set()

void retroarch_override_setting_set ( enum rarch_override_setting  enum_idx,
void data 
)
Here is the caller graph for this function:

◆ retroarch_override_setting_unset()

void retroarch_override_setting_unset ( enum rarch_override_setting  enum_idx,
void data 
)
Here is the caller graph for this function:

◆ retroarch_parse_input_and_config()

static void retroarch_parse_input_and_config ( int  argc,
char *  argv[] 
)
static

retroarch_parse_input_and_config: : Count of (commandline) arguments. : (Commandline) arguments.

Parses (commandline) arguments passed to program and loads the config file, with command line options overriding the config file.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_print_features()

static void retroarch_print_features ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_print_help()

static void retroarch_print_help ( const char *  arg0)
static

retroarch_print_help:

Prints help message explaining the program's commandline switches.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_print_version()

static void retroarch_print_version ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_set_current_core_type()

void retroarch_set_current_core_type ( enum rarch_core_type  type,
bool  explicitly_set 
)
Here is the caller graph for this function:

◆ retroarch_set_shader_preset()

void retroarch_set_shader_preset ( const char *  preset)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_set_switching_display_mode()

void retroarch_set_switching_display_mode ( void  )
Here is the caller graph for this function:

◆ retroarch_unset_forced_fullscreen()

void retroarch_unset_forced_fullscreen ( void  )
Here is the caller graph for this function:

◆ retroarch_unset_shader_preset()

void retroarch_unset_shader_preset ( void  )
Here is the caller graph for this function:

◆ retroarch_unset_switching_display_mode()

void retroarch_unset_switching_display_mode ( void  )
Here is the caller graph for this function:

◆ retroarch_validate_cpu_features()

static void retroarch_validate_cpu_features ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retroarch_validate_game_options()

bool retroarch_validate_game_options ( char *  s,
size_t  len,
bool  mkdir 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ runloop_check_state()

static enum runloop_state runloop_check_state ( settings_t settings,
bool  input_nonblock_state,
unsigned *  sleep_ms 
)
static
Here is the caller graph for this function:

◆ runloop_get_libretro_system_info()

struct retro_system_info* runloop_get_libretro_system_info ( void  )
Here is the caller graph for this function:

◆ runloop_get_status()

void runloop_get_status ( bool is_paused,
bool is_idle,
bool is_slowmotion,
bool is_perfcnt_enable 
)
Here is the caller graph for this function:

◆ runloop_get_system_info()

rarch_system_info_t* runloop_get_system_info ( void  )
Here is the caller graph for this function:

◆ runloop_iterate()

int runloop_iterate ( unsigned *  sleep_ms)

runloop_iterate:

Run Libretro core in RetroArch for one frame.

Returns: 0 on success, 1 if we have to wait until button input in order to wake up the loop, -1 if we forcibly quit out of the RetroArch iteration loop.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ runloop_msg_queue_pull()

bool runloop_msg_queue_pull ( const char **  ret)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ runloop_msg_queue_push()

void runloop_msg_queue_push ( const char *  msg,
unsigned  prio,
unsigned  duration,
bool  flush 
)
Here is the call graph for this function:

◆ runloop_set()

void runloop_set ( enum runloop_action  action)
Here is the caller graph for this function:

◆ runloop_unset()

void runloop_unset ( enum runloop_action  action)
Here is the caller graph for this function:

Variable Documentation

◆ current_core_type

enum rarch_core_type current_core_type = CORE_TYPE_PLAIN
static

◆ error_sjlj_context

jmp_buf error_sjlj_context
static

◆ error_string

char error_string[255] = {0}
static

◆ explicit_current_core_type

enum rarch_core_type explicit_current_core_type = CORE_TYPE_PLAIN
static

◆ fastforward_after_frames

unsigned fastforward_after_frames = 0
static

◆ frame_limit_last_time

retro_time_t frame_limit_last_time = 0.0
static

◆ frame_limit_minimum_time

retro_time_t frame_limit_minimum_time = 0.0
static

◆ has_set_bps_pref

bool has_set_bps_pref = false
static

◆ has_set_core

bool has_set_core = false
static

◆ has_set_ips_pref

bool has_set_ips_pref = false
static

◆ has_set_libretro

bool has_set_libretro = false
static

◆ has_set_libretro_device

retro_bits_t has_set_libretro_device
static

◆ has_set_libretro_directory

bool has_set_libretro_directory = false
static

◆ has_set_netplay_check_frames

bool has_set_netplay_check_frames = false
static

◆ has_set_netplay_ip_address

bool has_set_netplay_ip_address = false
static

◆ has_set_netplay_ip_port

bool has_set_netplay_ip_port = false
static

◆ has_set_netplay_mode

bool has_set_netplay_mode = false
static

◆ has_set_netplay_stateless_mode

bool has_set_netplay_stateless_mode = false
static

◆ has_set_save_path

bool has_set_save_path = false
static

◆ has_set_state_path

bool has_set_state_path = false
static

◆ has_set_ups_pref

bool has_set_ups_pref = false
static

◆ has_set_username

bool has_set_username = false
static

◆ has_set_verbosity

bool has_set_verbosity = false
static

◆ input_driver_flushing_input

bool input_driver_flushing_input

◆ rarch_block_config_read

bool rarch_block_config_read = false
static

◆ rarch_bps_pref

bool rarch_bps_pref = false
static

◆ rarch_error_on_init

bool rarch_error_on_init = false
static

◆ rarch_first_start

bool rarch_first_start = true
static

◆ rarch_force_fullscreen

bool rarch_force_fullscreen = false
static

◆ rarch_ips_pref

bool rarch_ips_pref = false
static

◆ rarch_is_inited

bool rarch_is_inited = false
static

◆ rarch_is_sram_load_disabled

bool rarch_is_sram_load_disabled = false
static

◆ rarch_is_sram_save_disabled

bool rarch_is_sram_save_disabled = false
static

◆ rarch_is_switching_display_mode

bool rarch_is_switching_display_mode = false
static

◆ rarch_patch_blocked

bool rarch_patch_blocked = false
static

◆ rarch_ups_pref

bool rarch_ups_pref = false
static

◆ rarch_use_sram

bool rarch_use_sram = false
static

◆ runloop_autosave

bool runloop_autosave = false
static

◆ runloop_core_options

core_option_manager_t* runloop_core_options = NULL
static

◆ runloop_core_shutdown_initiated

bool runloop_core_shutdown_initiated = false
static

◆ runloop_exec

bool runloop_exec = false
static

◆ runloop_fastmotion

bool runloop_fastmotion = false

◆ runloop_force_nonblock

bool runloop_force_nonblock = false
static

◆ runloop_frame_time

struct retro_frame_time_callback runloop_frame_time
static

◆ runloop_frame_time_last

retro_usec_t runloop_frame_time_last = 0
static

◆ runloop_frontend_key_event

retro_keyboard_event_t runloop_frontend_key_event = NULL
static

◆ runloop_game_options_active

bool runloop_game_options_active = false
static

◆ runloop_idle

bool runloop_idle = false
static

◆ runloop_key_event

retro_keyboard_event_t runloop_key_event = NULL
static

◆ runloop_max_frames

unsigned runloop_max_frames = 0
static

◆ runloop_max_frames_screenshot

bool runloop_max_frames_screenshot = false
static

◆ runloop_max_frames_screenshot_path

char runloop_max_frames_screenshot_path[PATH_MAX_LENGTH] = {0}
static

◆ runloop_missing_bios

bool runloop_missing_bios = false
static

◆ runloop_msg_queue

msg_queue_t* runloop_msg_queue = NULL
static

◆ runloop_overrides_active

bool runloop_overrides_active = false
static

◆ runloop_paused

bool runloop_paused = false
static

◆ runloop_pending_windowed_scale

unsigned runloop_pending_windowed_scale = 0
static

◆ runloop_perfcnt_enable

bool runloop_perfcnt_enable = false
static

◆ runloop_remaps_content_dir_active

bool runloop_remaps_content_dir_active = false
static

◆ runloop_remaps_core_active

bool runloop_remaps_core_active = false
static

◆ runloop_remaps_game_active

bool runloop_remaps_game_active = false
static

◆ runloop_shutdown_initiated

bool runloop_shutdown_initiated = false
static

◆ runloop_slowmotion

bool runloop_slowmotion = false
static

◆ runloop_system

rarch_system_info_t runloop_system
static

◆ runtime_shader_preset

char runtime_shader_preset[255] = {0}
static