mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Merge branch 'master' into translation-update-script
This commit is contained in:
commit
a4bb8f130b
10
CHANGES.md
10
CHANGES.md
@ -1,10 +1,20 @@
|
||||
# Future
|
||||
- ANDROID/CHROMEBOOK/CRASH: Fix Chromebook crashes (on x86 x64) when touching the screen
|
||||
- BUGFIX: Fix mouse capture hotkey not working
|
||||
- CHEEVOS/BUGFIX: Achievement triggers could cause Retroarch to Crash
|
||||
- CHEEVOS: Don't block Sameboy core because it only exposes some memory
|
||||
- CHEEVOS: Support for extended Sega CD memory
|
||||
- CHEEVOS: Show RetroAchievements Hash in content information list
|
||||
- DISK CONTROL: Add disk labels to 'disk inserted' notifications
|
||||
- EMSCRIPTEN: Recreate input event listeners properly
|
||||
- FFMPEG CORE: Fix crash on seeking when using HW decoding in some cases
|
||||
- LIBRETRO: Add disk control interface API extension
|
||||
- LOCALIZATION: Update Polish translation
|
||||
- LOCALIZATION: Update Spanish translation
|
||||
- MENU/WIDGETS: Allow notifications to use full screen width when not displaying menu
|
||||
- NETPLAY/MENU/BUGFIX: Fix Netplay Stateless Mode doesn't save. Affects other netplay settings which can be overridden by commandline option
|
||||
- NETPLAY/ROOMS/BUGFIX: Prevent out-of-bounds array indexing when displaying/selecting netplay rooms in menus
|
||||
- VIDEO: Set hardware 'Bilinear filtering' off by default
|
||||
|
||||
# 1.8.4
|
||||
- ANDROID/BUGFIX: Prevent crash when Android device is minimized and you go back to the app
|
||||
|
@ -231,10 +231,8 @@ OBJ += \
|
||||
managers/state_manager.o \
|
||||
gfx/drivers_font_renderer/bitmapfont.o \
|
||||
tasks/task_autodetect.o \
|
||||
tasks/task_autodetect_blissbox.o \
|
||||
input/input_autodetect_builtin.o \
|
||||
input/input_keymaps.o \
|
||||
input/input_remapping.o \
|
||||
$(LIBRETRO_COMM_DIR)/queues/fifo_queue.o \
|
||||
$(LIBRETRO_COMM_DIR)/compat/compat_fnmatch.o \
|
||||
$(LIBRETRO_COMM_DIR)/compat/compat_posix_string.o \
|
||||
@ -265,6 +263,16 @@ OBJ += \
|
||||
manual_content_scan.o \
|
||||
disk_control_interface.o
|
||||
|
||||
ifeq ($(HAVE_CONFIGFILE), 1)
|
||||
DEFINES += -DHAVE_CONFIGFILE
|
||||
OBJ += input/input_remapping.o
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_BLISSBOX), 1)
|
||||
DEFINES += -DHAVE_BLISSBOX
|
||||
OBJ += tasks/task_autodetect_blissbox.o
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_AUDIOMIXER), 1)
|
||||
DEFINES += -DHAVE_AUDIOMIXER
|
||||
OBJ += tasks/task_audio_mixer.o \
|
||||
@ -274,8 +282,7 @@ endif
|
||||
|
||||
ifeq ($(HAVE_RUNAHEAD), 1)
|
||||
DEFINES += -DHAVE_RUNAHEAD
|
||||
OBJ += runahead/mem_util.o \
|
||||
runahead/mylist.o
|
||||
OBJ += runahead/mylist.o
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_CC_RESAMPLER), 1)
|
||||
@ -1120,10 +1127,6 @@ ifeq ($(HAVE_CACA), 1)
|
||||
OBJ += gfx/drivers/caca_gfx.o gfx/drivers_font/caca_font.o
|
||||
LIBS += $(CACA_LIBS)
|
||||
DEF_FLAGS += $(CACA_CFLAGS)
|
||||
|
||||
ifeq ($(HAVE_MENU_COMMON), 1)
|
||||
OBJ += menu/drivers_display/menu_display_caca.o
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_SIXEL), 1)
|
||||
@ -1133,10 +1136,6 @@ ifeq ($(HAVE_SIXEL), 1)
|
||||
gfx/drivers_context/sixel_ctx.o
|
||||
LIBS += $(SIXEL_LIBS)
|
||||
DEF_FLAGS += $(SIXEL_CFLAGS)
|
||||
|
||||
ifeq ($(HAVE_MENU_COMMON), 1)
|
||||
OBJ += menu/drivers_display/menu_display_sixel.o
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_NETWORK_VIDEO), 1)
|
||||
@ -1544,8 +1543,8 @@ ifeq ($(HAVE_SHADERS_COMMON), 1)
|
||||
OBJ += gfx/video_shader_parse.o
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_GLSLANG), 1)
|
||||
DEFINES += -DHAVE_GLSLANG
|
||||
ifeq ($(HAVE_BUILTINGLSLANG), 1)
|
||||
HAVE_GLSLANG_COMMON = 1
|
||||
|
||||
ifneq ($(findstring Win32,$(OS)),)
|
||||
GLSLANG_PLATFORM := Windows
|
||||
@ -1559,8 +1558,7 @@ ifeq ($(HAVE_GLSLANG), 1)
|
||||
-I$(DEPS_DIR)/glslang/glslang \
|
||||
-I$(DEPS_DIR)/glslang/glslang/glslang/MachineIndependent \
|
||||
-I$(DEPS_DIR)/glslang/glslang/glslang/Public \
|
||||
-I$(DEPS_DIR)/glslang/glslang/SPIRV \
|
||||
-I$(DEPS_DIR)/glslang
|
||||
-I$(DEPS_DIR)/glslang/glslang/SPIRV
|
||||
|
||||
GLSLANG_SOURCES := \
|
||||
$(wildcard $(DEPS_DIR)/glslang/*.cpp) \
|
||||
@ -1575,7 +1573,23 @@ ifeq ($(HAVE_GLSLANG), 1)
|
||||
DEFINES += -DENABLE_HLSL
|
||||
GLSLANG_SOURCES += $(wildcard $(DEPS_DIR)/glslang/glslang/hlsl/*.cpp)
|
||||
endif
|
||||
else ifeq ($(HAVE_GLSLANG),1)
|
||||
HAVE_GLSLANG_COMMON = 1
|
||||
GLSLANG_SOURCES := $(DEPS_DIR)/glslang/glslang.cpp
|
||||
|
||||
# The order of these libs are somewhat specific
|
||||
LIBS += $(GLSLANG_LIBS) \
|
||||
$(GLSLANG_OSDEPENDENT_LIBS) \
|
||||
$(GLSLANG_OGLCOMPILER_LIBS) \
|
||||
$(GLSLANG_HLSL_LIBS) \
|
||||
$(GLSLANG_SPIRV_LIBS) \
|
||||
$(GLSLANG_SPIRV_TOOLS_OPT_LIBS) \
|
||||
$(GLSLANG_SPIRV_TOOLS_LIBS)
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_GLSLANG_COMMON), 1)
|
||||
DEFINES += -DHAVE_GLSLANG
|
||||
INCLUDE_DIRS += -I$(DEPS_DIR)/glslang
|
||||
OBJ += $(GLSLANG_SOURCES:.cpp=.o)
|
||||
endif
|
||||
|
||||
@ -1952,8 +1966,7 @@ endif
|
||||
ifneq ($(findstring FPGA,$(OS)),)
|
||||
OBJ += gfx/drivers/fpga_gfx.o \
|
||||
gfx/drivers_context/fpga_ctx.o \
|
||||
gfx/drivers_font/fpga_font.o \
|
||||
menu/drivers_display/menu_display_fpga.o
|
||||
gfx/drivers_font/fpga_font.o
|
||||
endif
|
||||
|
||||
ifneq ($(findstring Win32,$(OS)),)
|
||||
@ -2019,10 +2032,6 @@ ifneq ($(findstring DOS,$(OS)),)
|
||||
input/drivers/dos_input.o \
|
||||
input/drivers_joypad/dos_joypad.o \
|
||||
frontend/drivers/platform_dos.o
|
||||
|
||||
ifeq ($(HAVE_MENU_COMMON), 1)
|
||||
OBJ += menu/drivers_display/menu_display_vga.o
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_STATIC_VIDEO_FILTERS), 1)
|
||||
|
@ -50,7 +50,7 @@ endif
|
||||
DEFINES :=
|
||||
ifeq ($(GRIFFIN_BUILD), 1)
|
||||
OBJ += griffin/griffin.o
|
||||
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_MENU -DHAVE_RGUI -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB -DHAVE_CC_RESAMPLER
|
||||
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_RGUI -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB -DHAVE_CC_RESAMPLER
|
||||
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA
|
||||
#DEFINES += -DHAVE_NETWORKING -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_SOCKET_LEGACY -DHAVE_THREADS
|
||||
#-DHAVE_SSL -DHAVE_BUILTINMBEDTLS -DMBEDTLS_SSL_DEBUG_ALL
|
||||
|
@ -61,6 +61,7 @@ HAVE_UDEV = 1
|
||||
HAVE_VIDEO_LAYOUT = 1
|
||||
HAVE_XMB = 1
|
||||
HAVE_ZLIB = 1
|
||||
HAVE_CONFIGFILE = 1
|
||||
|
||||
OS = Linux
|
||||
TARGET = retroarch
|
||||
|
@ -29,6 +29,7 @@ HAVE_SHADERPIPELINE = 1
|
||||
HAVE_STATIC_VIDEO_FILTERS = 1
|
||||
HAVE_STATIC_AUDIO_FILTERS = 1
|
||||
HAVE_STB_FONT = 1
|
||||
HAVE_CONFIGFILE = 1
|
||||
|
||||
MEMORY = 134217728
|
||||
|
||||
|
@ -197,6 +197,7 @@ else ifeq ($(libogc_platform), 1)
|
||||
HAVE_VIDEO_LAYOUT := 0
|
||||
HAVE_ZLIB := 1
|
||||
HAVE_7ZIP := 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
RARCH_CONSOLE = 1
|
||||
|
||||
ifeq ($(platform), wii)
|
||||
@ -236,6 +237,7 @@ else ifeq ($(platform), xenon360)
|
||||
HAVE_THREADS := 1
|
||||
HAVE_GETOPT_LONG := 1
|
||||
RARCH_CONSOLE = 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
|
||||
# PSP
|
||||
else ifeq ($(platform), psp1)
|
||||
@ -260,6 +262,7 @@ else ifeq ($(platform), psp1)
|
||||
HAVE_KERNEL_PRX := 1
|
||||
#HAVE_LANGEXTRA := 1
|
||||
RARCH_CONSOLE = 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
|
||||
ifeq ($(BUILD_PRX), 1)
|
||||
LDFLAGS += $(addprefix -L,$(PSPSDK)/lib) -specs=$(PSPSDK)/lib/prxspecs -Wl,-q,-T$(PSPSDK)/lib/linkfile.prx $(LDFLAGS)
|
||||
@ -317,6 +320,7 @@ else ifeq ($(platform), vita)
|
||||
HAVE_THREADS := 1
|
||||
HAVE_LIBRETRODB := 1
|
||||
RARCH_CONSOLE = 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
else ifeq ($(platform), windows_msvc6_x86)
|
||||
HAVE_RPNG := 1
|
||||
HAVE_RJPEG := 1
|
||||
@ -340,6 +344,7 @@ else ifeq ($(platform), windows_msvc6_x86)
|
||||
HAVE_DYLIB := 1
|
||||
HAVE_DYNAMIC := 1
|
||||
HAVE_GRIFFIN_CPP := 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
|
||||
EXT_TARGET := $(TARGET_NAME).exe
|
||||
EXT_INTER_TARGET := $(TARGET_NAME).exe
|
||||
@ -383,6 +388,7 @@ else ifeq ($(platform), windows_msvc2003_x86)
|
||||
HAVE_DYLIB := 1
|
||||
HAVE_DYNAMIC := 1
|
||||
HAVE_GRIFFIN_CPP := 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
|
||||
EXT_TARGET := $(TARGET_NAME).exe
|
||||
EXT_INTER_TARGET := $(TARGET_NAME).exe
|
||||
@ -432,6 +438,7 @@ else ifeq ($(platform), windows_msvc2005_x86)
|
||||
HAVE_DYNAMIC := 1
|
||||
HAVE_GRIFFIN_CPP := 1
|
||||
HAVE_DIRECTX ?= 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
|
||||
EXT_TARGET := $(TARGET_NAME).exe
|
||||
EXT_INTER_TARGET := $(TARGET_NAME).exe
|
||||
@ -483,6 +490,7 @@ else ifneq (,$(findstring windows_msvc2010,$(platform)))
|
||||
HAVE_GRIFFIN_CPP := 1
|
||||
HAVE_RUNAHEAD := 1
|
||||
HAVE_DIRECTX ?= 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
|
||||
EXT_TARGET := $(TARGET_NAME).exe
|
||||
EXT_INTER_TARGET := $(TARGET_NAME).exe
|
||||
@ -557,6 +565,7 @@ else ifneq (,$(findstring windows_msvc2012,$(platform)))
|
||||
HAVE_GRIFFIN_CPP := 1
|
||||
HAVE_RUNAHEAD := 1
|
||||
HAVE_DIRECTX ?= 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
|
||||
EXT_TARGET := $(TARGET_NAME).exe
|
||||
EXT_INTER_TARGET := $(TARGET_NAME).exe
|
||||
@ -635,6 +644,7 @@ else ifneq (,$(findstring windows_msvc2013,$(platform)))
|
||||
HAVE_GRIFFIN_CPP := 1
|
||||
HAVE_RUNAHEAD := 1
|
||||
HAVE_DIRECTX ?= 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
|
||||
EXT_TARGET := $(TARGET_NAME).exe
|
||||
EXT_INTER_TARGET := $(TARGET_NAME).exe
|
||||
@ -713,6 +723,7 @@ else ifneq (,$(findstring windows_msvc2015,$(platform)))
|
||||
HAVE_GRIFFIN_CPP := 1
|
||||
HAVE_RUNAHEAD := 1
|
||||
HAVE_DIRECTX ?= 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
|
||||
EXT_TARGET := $(TARGET_NAME).exe
|
||||
EXT_INTER_TARGET := $(TARGET_NAME).exe
|
||||
@ -804,9 +815,10 @@ else ifneq (,$(findstring unix,$(platform)))
|
||||
HAVE_DYLIB := 1
|
||||
HAVE_DYNAMIC := 1
|
||||
HAVE_GRIFFIN_CPP := 1
|
||||
WANT_GLSLANG := 1
|
||||
WANT_GLSLANG := 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
|
||||
PLATCFLAGS += -D__MMX__ -D__SSE__ -DHAVE_OPENGL -DHAVE_OPENGL1 -DHAVE_GLSL -DHAVE_SHADERPIPELINE -DHAVE_OZONE -DHAVE_CC_RESAMPLER -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_FBO -DHAVE_GL_SYNC -DHAVE_SLANG -DHAVE_GLSLANG -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_RUNAHEAD -DHAVE_MENU_WIDGETS -DHAVE_SPIRV_CROSS -DHAVE_STB_FONT -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DHAVE_VULKAN -DHAVE_XMB -DRARCH_INTERNAL -DWANT_GLSLANG -DHAVE_X11 -DHAVE_XCB -DHAVE_UDEV -DHAVE_PULSE
|
||||
PLATCFLAGS += -D__MMX__ -D__SSE__ -DHAVE_OPENGL -DHAVE_OPENGL1 -DHAVE_GLSL -DHAVE_SHADERPIPELINE -DHAVE_OZONE -DHAVE_CC_RESAMPLER -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_FBO -DHAVE_GL_SYNC -DHAVE_SLANG -DHAVE_GLSLANG -DHAVE_BUILTINGLSLANG -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_RUNAHEAD -DHAVE_MENU_WIDGETS -DHAVE_CONFIGFILE -DHAVE_SPIRV_CROSS -DHAVE_STB_FONT -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DHAVE_VULKAN -DHAVE_XMB -DRARCH_INTERNAL -DWANT_GLSLANG -DHAVE_X11 -DHAVE_XCB -DHAVE_UDEV -DHAVE_PULSE
|
||||
EXT_TARGET := $(TARGET_NAME)
|
||||
EXT_INTER_TARGET := $(TARGET_NAME)
|
||||
INCLUDE += -Ilibretro-common/include -Igfx/include -Ideps -Ideps/stb -Ideps/rcheevos/include -Ideps/SPIRV-Cross -Ideps/glslang -I.
|
||||
@ -972,6 +984,10 @@ ifeq ($(HAVE_THREADS), 1)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_CONFIGFILE), 1)
|
||||
CFLAGS += -DHAVE_CONFIGFILE
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_RSOUND), 1)
|
||||
CFLAGS += -DHAVE_RSOUND
|
||||
endif
|
||||
|
@ -36,6 +36,7 @@ HAVE_LIBRETRODB = 1
|
||||
HAVE_STATIC_VIDEO_FILTERS = 1
|
||||
HAVE_STATIC_AUDIO_FILTERS = 1
|
||||
HAVE_MENU = 1
|
||||
HAVE_CONFIGFILE = 1
|
||||
HAVE_RUNAHEAD = 1
|
||||
HAVE_NETWORKING = 1
|
||||
HAVE_NETPLAYDISCOVERY = 1
|
||||
|
@ -31,6 +31,7 @@ HAVE_WINMM := 1
|
||||
|
||||
HAVE_RPNG := 1
|
||||
HAVE_ZLIB := 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
HAVE_MENU := 1
|
||||
HAVE_RGUI := 1
|
||||
HAVE_XMB := 1
|
||||
|
@ -15,7 +15,7 @@ LDFLAGS = -L$(PNDSDK)/usr/lib -Wl,-rpath,$(PNDSDK)/usr/lib
|
||||
|
||||
LIBS = -lGLESv2 -lEGL -ldl -lm -lpthread -lrt -lasound
|
||||
DEFINES = -std=gnu99 -DHAVE_THREADS -DHAVE_GETOPT_LONG=1 -DHAVE_GRIFFIN -DRARCH_INTERNAL
|
||||
DEFINES += -D__ARM_ARCH_6__ -DHAVE_OPENGL -DHAVE_OPENGLES -DHAVE_OPENGLES2 -DHAVE_GLSL -DHAVE_DYNAMIC -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_OVERLAY -DHAVE_VIDEO_LAYOUT -DHAVE_ALSA -DHAVE_ZLIB -D__linux__
|
||||
DEFINES += -DHAVE_CONFIGFILE -D__ARM_ARCH_6__ -DHAVE_OPENGL -DHAVE_OPENGLES -DHAVE_OPENGLES2 -DHAVE_GLSL -DHAVE_DYNAMIC -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_OVERLAY -DHAVE_VIDEO_LAYOUT -DHAVE_ALSA -DHAVE_ZLIB -D__linux__
|
||||
DEFINES += $(INCDIRS)
|
||||
DEFINES += -D__OPENPANDORA__ -DPANDORA
|
||||
DEFINES += -marm -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize
|
||||
|
@ -16,7 +16,7 @@ DEFINES :=
|
||||
ifeq ($(GRIFFIN_BUILD), 1)
|
||||
OBJ += griffin/griffin.o
|
||||
DEFINES += -DHAVE_GRIFFIN=1
|
||||
DEFINES += -DHAVE_MENU -DHAVE_LIBRETRODB
|
||||
DEFINES += -DHAVE_MENU -DHAVE_LIBRETRODB -DHAVE_CONFIGFILE
|
||||
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_CC_RESAMPLER
|
||||
ifeq ($(DEBUG), 1)
|
||||
DEFINES += -DHAVE_NETLOGGER
|
||||
@ -41,6 +41,7 @@ else
|
||||
HAVE_SOCKET_LEGACY := 0
|
||||
HAVE_MENU := 1
|
||||
HAVE_MENU_COMMON := 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
HAVE_RGUI := 0
|
||||
HAVE_MATERIALUI := 0
|
||||
HAVE_XMB := 1
|
||||
|
@ -38,7 +38,7 @@ CFLAGS = $(OPTIMIZE_LV) $(DISABLE_WARNINGS) -ffast-math -fsingle-precision-const
|
||||
ASFLAGS = $(CFLAGS)
|
||||
|
||||
RARCH_DEFINES += -DPS2 -DUSE_IOP_CTYPE_MACRO -D_MIPS_ARCH_R5900 -DHAVE_ZLIB -DHAVE_NO_BUILTINZLIB -DHAVE_RPNG -DHAVE_RJPEG
|
||||
RARCH_DEFINES += -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_RGUI -DHAVE_FILTERS_BUILTIN -DHAVE_7ZIP -DHAVE_CC_RESAMPLER
|
||||
RARCH_DEFINES += -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_RGUI -DHAVE_FILTERS_BUILTIN -DHAVE_7ZIP -DHAVE_CC_RESAMPLER
|
||||
|
||||
LIBDIR =
|
||||
LDFLAGS += -L$(PS2SDK)/ports/lib -L$(PS2DEV)/gsKit/lib -L$(PS2SDK)/ee/lib -L$(CDVD_DIR)/lib -L.
|
||||
|
@ -69,8 +69,8 @@ endif
|
||||
|
||||
PPU_SRCS = griffin/griffin.c
|
||||
|
||||
#DEFINES += -DHAVE_VIDEO_LAYOUT
|
||||
DEFINES += -DHAVE_MENU -DHAVE_MENU_WIDGETS -DHAVE_RGUI -DHAVE_XMB -DHAVE_OZONE -DHAVE_LIBRETRODB -DHAVE_MATERIALUI -DHAVE_SHADERPIPELINE -DRARCH_INTERNAL -DMSB_FIRST -DHAVE_OVERLAY -DHAVE_CC_RESAMPLER -DHAVE_STB_VORBIS -DHAVE_STB_FONT -DHAVE_RUNAHEAD -DHAVE_DR_MP3 -DHAVE_DR_FLAC
|
||||
DEFINES += -DHAVE_VIDEO_LAYOUT
|
||||
DEFINES += -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_MENU_WIDGETS -DHAVE_RGUI -DHAVE_XMB -DHAVE_OZONE -DHAVE_LIBRETRODB -DHAVE_MATERIALUI -DHAVE_SHADERPIPELINE -DRARCH_INTERNAL -DMSB_FIRST -DHAVE_OVERLAY -DHAVE_CC_RESAMPLER -DHAVE_STB_VORBIS -DHAVE_STB_FONT -DHAVE_RUNAHEAD -DHAVE_DR_MP3 -DHAVE_DR_FLAC
|
||||
DEFINES += -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
|
||||
|
||||
ifeq ($(DEX_BUILD), 1)
|
||||
|
@ -91,8 +91,8 @@ endif
|
||||
|
||||
SHARED_FLAGS :=
|
||||
|
||||
#SHARED_FLAGS += -DHAVE_VIDEO_LAYOUT
|
||||
SHARED_FLAGS += -DRARCH_CONSOLE -DHAVE_OPENGL -DHAVE_OVERLAY -DHAVE_HEADSET -DHAVE_OPENGLES -DHAVE_OPENGLES1 -DHAVE_PSGL -DHAVE_CG -DHAVE_CG_RUNTIME_COMPILER -DHAVE_GCMGL -DHAVE_SYSMODULES -DHAVE_SYSUTILS -DHAVE_RARCH_EXEC -DHAVE_MOUSE -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_GRIFFIN=1 -DHAVE_NETWORKING=1 -DHAVE_SOCKET_LEGACY=1 -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) -Wno-char-subscripts -DHAVE_CC_RESAMPLER
|
||||
SHARED_FLAGS += -DHAVE_VIDEO_LAYOUT
|
||||
SHARED_FLAGS += -DHAVE_MENU -DHAVE_CONFIGFILE -DRARCH_CONSOLE -DHAVE_OPENGL -DHAVE_OVERLAY -DHAVE_HEADSET -DHAVE_OPENGLES -DHAVE_OPENGLES1 -DHAVE_PSGL -DHAVE_CG -DHAVE_CG_RUNTIME_COMPILER -DHAVE_GCMGL -DHAVE_SYSMODULES -DHAVE_SYSUTILS -DHAVE_RARCH_EXEC -DHAVE_MOUSE -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_GRIFFIN=1 -DHAVE_NETWORKING=1 -DHAVE_SOCKET_LEGACY=1 -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) -Wno-char-subscripts -DHAVE_CC_RESAMPLER
|
||||
CFLAGS += -std=gnu99 $(SHARED_FLAGS)
|
||||
CXXFLAGS += $(SHARED_FLAGS)
|
||||
|
||||
|
@ -25,7 +25,7 @@ INCDIR = deps deps/stb deps/7zip deps/pthreads deps/pthreads/platform/psp deps/p
|
||||
CFLAGS = $(OPTIMIZE_LV) -G0 -std=gnu99 -ffast-math -fsingle-precision-constant
|
||||
ASFLAGS = $(CFLAGS)
|
||||
|
||||
RARCH_DEFINES = -DPSP -D_MIPS_ARCH_ALLEGREX -DHAVE_LANGEXTRA -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_RGUI -DHAVE_FILTERS_BUILTIN -DHAVE_7ZIP -DHAVE_CC_RESAMPLER
|
||||
RARCH_DEFINES = -DPSP -D_MIPS_ARCH_ALLEGREX -DHAVE_LANGEXTRA -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_RGUI -DHAVE_FILTERS_BUILTIN -DHAVE_7ZIP -DHAVE_CC_RESAMPLER
|
||||
|
||||
LIBDIR =
|
||||
LDFLAGS =
|
||||
@ -72,4 +72,4 @@ pspsh-run:
|
||||
|
||||
debug: clean all pspsh-debug
|
||||
|
||||
run: clean all pspsh-run
|
||||
run: clean all pspsh-run
|
||||
|
@ -13,6 +13,7 @@ ifeq ($(GRIFFIN_BUILD), 1)
|
||||
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_NEON -DHAVE_MATERIALUI -DHAVE_LIBRETRODB -DHAVE_CC_RESAMPLER
|
||||
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA
|
||||
DEFINES += -DHAVE_RUNAHEAD -DHAVE_DYNAMIC
|
||||
DEFINES += -DHAVE_CONFIGFILE
|
||||
else
|
||||
HAVE_AUDIOMIXER = 1
|
||||
HAVE_CC_RESAMPLER = 1
|
||||
@ -30,6 +31,7 @@ else
|
||||
HAVE_STATIC_VIDEO_FILTERS = 1
|
||||
HAVE_STATIC_AUDIO_FILTERS = 1
|
||||
HAVE_MENU = 1
|
||||
HAVE_CONFIGFILE = 1
|
||||
HAVE_RUNAHEAD = 1
|
||||
HAVE_DYNAMIC = 1
|
||||
|
||||
|
@ -17,7 +17,7 @@ INCDIRS :=
|
||||
ifeq ($(GRIFFIN_BUILD), 1)
|
||||
OBJ += griffin/griffin.o
|
||||
DEFINES += -DHAVE_GRIFFIN=1
|
||||
DEFINES += -DHAVE_NEON -DHAVE_MENU -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB DEFINES -DHAVE_KEYMAPPER
|
||||
DEFINES += -DHAVE_NEON -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB DEFINES -DHAVE_KEYMAPPER
|
||||
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_CC_RESAMPLER
|
||||
ifeq ($(DEBUG), 1)
|
||||
DEFINES += -DHAVE_NETLOGGER
|
||||
@ -43,7 +43,8 @@ else
|
||||
HAVE_SOCKET_LEGACY := 1
|
||||
HAVE_MENU := 1
|
||||
HAVE_MENU_COMMON := 1
|
||||
HAVE_MENU_WIDGETS = 1
|
||||
HAVE_MENU_WIDGETS := 1
|
||||
HAVE_CONFIGFILE := 1
|
||||
HAVE_OVERLAY := 1
|
||||
HAVE_VIDEO_LAYOUT := 0
|
||||
HAVE_MATERIALUI := 1
|
||||
|
@ -107,7 +107,7 @@ endif
|
||||
INCDIRS += -Ideps/SPIRV-Cross
|
||||
|
||||
DEFINES += -DHAVE_AUDIOMIXER
|
||||
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_MENU -DHAVE_RGUI -DHAVE_LIBRETRODB
|
||||
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_RGUI -DHAVE_LIBRETRODB
|
||||
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_CC_RESAMPLER
|
||||
DEFINES += -DHAVE_SPIRV_CROSS -DHAVE_SLANG
|
||||
DEFINES += -DHAVE_STB_FONT -DHAVE_STB_VORBIS -DHAVE_LANGEXTRA -DHAVE_LIBRETRODB -DHAVE_NETWORKING -DHAVE_NETPLAYDISCOVERY
|
||||
@ -126,6 +126,7 @@ endif
|
||||
HAVE_RPNG = 1
|
||||
HAVE_RJPEG = 1
|
||||
HAVE_RBMP = 1
|
||||
HAVE_CONFIGFILE = 1
|
||||
HAVE_MENU = 1
|
||||
HAVE_RGUI = 1
|
||||
HAVE_7ZIP = 1
|
||||
|
@ -14,6 +14,7 @@ HAVE_STDIN_CMD = 1
|
||||
HAVE_COMMAND = 1
|
||||
HAVE_THREADS = 1
|
||||
HAVE_MENU = 1
|
||||
HAVE_CONFIGFILE = 1
|
||||
HAVE_RGUI = 1
|
||||
HAVE_MATERIALUI = 1
|
||||
HAVE_7ZIP = 1
|
||||
|
@ -245,7 +245,7 @@ static void *coreaudio_init(const char *device,
|
||||
#else
|
||||
comp = AudioComponentFindNext(NULL, &desc);
|
||||
#endif
|
||||
if (comp == NULL)
|
||||
if (!comp)
|
||||
goto error;
|
||||
|
||||
#if (defined(__MACH__) && (defined(__ppc__) || defined(__ppc64__)))
|
||||
|
@ -238,75 +238,45 @@ static ssize_t sl_write(void *data, const void *buf_, size_t size)
|
||||
size_t written = 0;
|
||||
const uint8_t *buf = (const uint8_t*)buf_;
|
||||
|
||||
if (sl->nonblock)
|
||||
while (size)
|
||||
{
|
||||
while (size)
|
||||
{
|
||||
size_t avail_write;
|
||||
size_t avail_write;
|
||||
|
||||
if (sl->nonblock)
|
||||
{
|
||||
if (sl->buffered_blocks == sl->buf_count)
|
||||
break;
|
||||
|
||||
avail_write = MIN(sl->buf_size - sl->buffer_ptr, size);
|
||||
|
||||
if (avail_write)
|
||||
{
|
||||
memcpy(sl->buffer[sl->buffer_index] + sl->buffer_ptr, buf, avail_write);
|
||||
sl->buffer_ptr += avail_write;
|
||||
buf += avail_write;
|
||||
size -= avail_write;
|
||||
written += avail_write;
|
||||
}
|
||||
|
||||
if (sl->buffer_ptr >= sl->buf_size)
|
||||
{
|
||||
SLresult res = (*sl->buffer_queue)->Enqueue(sl->buffer_queue, sl->buffer[sl->buffer_index], sl->buf_size);
|
||||
sl->buffer_index = (sl->buffer_index + 1) % sl->buf_count;
|
||||
__sync_fetch_and_add(&sl->buffered_blocks, 1);
|
||||
sl->buffer_ptr = 0;
|
||||
|
||||
if (res != SL_RESULT_SUCCESS)
|
||||
{
|
||||
RARCH_ERR("[OpenSL]: Failed to write! (Error: 0x%x)\n", (unsigned)res);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
while (size)
|
||||
else
|
||||
{
|
||||
size_t avail_write;
|
||||
|
||||
slock_lock(sl->lock);
|
||||
while (sl->buffered_blocks == sl->buf_count)
|
||||
scond_wait(sl->cond, sl->lock);
|
||||
slock_unlock(sl->lock);
|
||||
}
|
||||
|
||||
avail_write = MIN(sl->buf_size - sl->buffer_ptr, size);
|
||||
avail_write = MIN(sl->buf_size - sl->buffer_ptr, size);
|
||||
|
||||
if (avail_write)
|
||||
if (avail_write)
|
||||
{
|
||||
memcpy(sl->buffer[sl->buffer_index] + sl->buffer_ptr, buf, avail_write);
|
||||
sl->buffer_ptr += avail_write;
|
||||
buf += avail_write;
|
||||
size -= avail_write;
|
||||
written += avail_write;
|
||||
}
|
||||
|
||||
if (sl->buffer_ptr >= sl->buf_size)
|
||||
{
|
||||
SLresult res = (*sl->buffer_queue)->Enqueue(sl->buffer_queue, sl->buffer[sl->buffer_index], sl->buf_size);
|
||||
sl->buffer_index = (sl->buffer_index + 1) % sl->buf_count;
|
||||
__sync_fetch_and_add(&sl->buffered_blocks, 1);
|
||||
sl->buffer_ptr = 0;
|
||||
|
||||
if (res != SL_RESULT_SUCCESS)
|
||||
{
|
||||
memcpy(sl->buffer[sl->buffer_index] + sl->buffer_ptr, buf, avail_write);
|
||||
sl->buffer_ptr += avail_write;
|
||||
buf += avail_write;
|
||||
size -= avail_write;
|
||||
written += avail_write;
|
||||
}
|
||||
|
||||
if (sl->buffer_ptr >= sl->buf_size)
|
||||
{
|
||||
SLresult res = (*sl->buffer_queue)->Enqueue(sl->buffer_queue, sl->buffer[sl->buffer_index], sl->buf_size);
|
||||
sl->buffer_index = (sl->buffer_index + 1) % sl->buf_count;
|
||||
__sync_fetch_and_add(&sl->buffered_blocks, 1);
|
||||
sl->buffer_ptr = 0;
|
||||
|
||||
if (res != SL_RESULT_SUCCESS)
|
||||
{
|
||||
RARCH_ERR("[OpenSL]: Failed to write! (Error: 0x%x)\n", (unsigned)res);
|
||||
return -1;
|
||||
}
|
||||
RARCH_ERR("[OpenSL]: Failed to write! (Error: 0x%x)\n", (unsigned)res);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ static void *ra_init(const char *device, unsigned rate, unsigned latency,
|
||||
|
||||
(void)latency;
|
||||
|
||||
if ((vss = roar_vs_new_simple(device, "RetroArch", rate, 2, ROAR_CODEC_PCM_S, 16, ROAR_DIR_PLAY, &err)) == NULL)
|
||||
if (!(vss = roar_vs_new_simple(device, "RetroArch", rate, 2, ROAR_CODEC_PCM_S, 16, ROAR_DIR_PLAY, &err)))
|
||||
{
|
||||
RARCH_ERR("RoarAudio: \"%s\"\n", roar_vs_strerr(err));
|
||||
free(roar);
|
||||
|
@ -234,7 +234,7 @@ static int rsnd_connect_server( rsound_t *rd )
|
||||
if (!isdigit(rd->host[0]))
|
||||
{
|
||||
struct hostent *host = gethostbyname(rd->host);
|
||||
if (host == NULL)
|
||||
if (!host)
|
||||
return -1;
|
||||
|
||||
addr.sin_addr.s_addr = inet_addr(host->h_addr_list[0]);
|
||||
@ -295,7 +295,7 @@ static int rsnd_send_header_info(rsound_t *rd)
|
||||
/* Defines the size of a wave header */
|
||||
#define HEADER_SIZE 44
|
||||
char *header = calloc(1, HEADER_SIZE);
|
||||
if (header == NULL)
|
||||
if (!header)
|
||||
{
|
||||
RSD_ERR("[RSound] Could not allocate memory.");
|
||||
return -1;
|
||||
@ -472,7 +472,7 @@ static int rsnd_get_backend_info ( rsound_t *rd )
|
||||
if ( rd->fifo_buffer != NULL )
|
||||
fifo_free(rd->fifo_buffer);
|
||||
rd->fifo_buffer = fifo_new (rd->buffer_size);
|
||||
if ( rd->fifo_buffer == NULL )
|
||||
if (!rd->fifo_buffer)
|
||||
{
|
||||
RSD_ERR("[RSound] Failed to create FIFO buffer.\n");
|
||||
return -1;
|
||||
@ -963,7 +963,7 @@ static int rsnd_close_ctl(rsound_t *rd)
|
||||
return -1;
|
||||
|
||||
subchar = strrchr(buf, 'R');
|
||||
if ( subchar == NULL )
|
||||
if (!subchar)
|
||||
index = 0;
|
||||
else
|
||||
{
|
||||
@ -1023,7 +1023,7 @@ static int rsnd_update_server_info(rsound_t *rd)
|
||||
|
||||
temp[RSD_PROTO_CHUNKSIZE] = '\0';
|
||||
|
||||
if ( (substr = strstr(temp, "RSD")) == NULL )
|
||||
if (!(substr = strstr(temp, "RSD")))
|
||||
return -1;
|
||||
|
||||
// Jump over "RSD" in header
|
||||
@ -1038,7 +1038,7 @@ static int rsnd_update_server_info(rsound_t *rd)
|
||||
|
||||
// We only bother if this is an INFO message.
|
||||
substr = strstr(temp, "INFO");
|
||||
if ( substr == NULL )
|
||||
if (!substr)
|
||||
continue;
|
||||
|
||||
// Jump over "INFO" in header
|
||||
@ -1548,7 +1548,7 @@ int rsd_pause(rsound_t* rsound, int enable)
|
||||
int rsd_init(rsound_t** rsound)
|
||||
{
|
||||
*rsound = calloc(1, sizeof(rsound_t));
|
||||
if ( *rsound == NULL )
|
||||
if (*rsound == NULL)
|
||||
return -1;
|
||||
|
||||
retro_assert(rsound != NULL);
|
||||
|
@ -57,7 +57,7 @@ static void *android_camera_init(const char *device, uint64_t caps,
|
||||
goto dealloc;
|
||||
|
||||
GET_OBJECT_CLASS(env, class, android_app->activity->clazz);
|
||||
if (class == NULL)
|
||||
if (!class)
|
||||
goto dealloc;
|
||||
|
||||
GET_METHOD_ID(env, androidcamera->onCameraInit, class,
|
||||
|
@ -132,6 +132,7 @@ typedef struct
|
||||
rcheevos_fixups_t fixups;
|
||||
|
||||
char token[32];
|
||||
char hash[33];
|
||||
} rcheevos_locals_t;
|
||||
|
||||
typedef struct
|
||||
@ -165,6 +166,7 @@ static rcheevos_locals_t rcheevos_locals =
|
||||
NULL, /* lboards */
|
||||
{0}, /* fixups */
|
||||
{0}, /* token */
|
||||
"N/A",/* hash */
|
||||
};
|
||||
|
||||
bool rcheevos_loaded = false;
|
||||
@ -401,14 +403,28 @@ static int rcheevos_parse(const char* json)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Achievement memory accesses are 0-based, regardless of where the memory is accessed by the
|
||||
* emulated code. As such, address 0 should always be accessible and serves as an indicator that
|
||||
* other addresses will also be accessible. Individual achievements will be "Unsupported" if
|
||||
* they contain addresses that cannot be resolved. This check gives the user immediate feedback
|
||||
* if the core they're trying to use will disable all achievements as "Unsupported".
|
||||
*/
|
||||
if (!rcheevos_patch_address(0, rcheevos_locals.patchdata.console_id))
|
||||
{
|
||||
CHEEVOS_ERR(RCHEEVOS_TAG "No memory exposed by core\n");
|
||||
/* Special case: the sameboy core exposes the RAM at $8000, but not the ROM at $0000. NES and
|
||||
* Gameboy achievements do attempt to map the entire bus, and it's unlikely that an achievement
|
||||
* will reference the ROM data, so if the RAM is still present, allow the core to load. If any
|
||||
* achievements do reference the ROM data, they'll be marked "Unsupported" individually.
|
||||
*/
|
||||
if (!rcheevos_patch_address(0x8000, rcheevos_locals.patchdata.console_id))
|
||||
{
|
||||
CHEEVOS_ERR(RCHEEVOS_TAG "No memory exposed by core\n");
|
||||
|
||||
if (settings->bools.cheevos_verbose_enable)
|
||||
runloop_msg_queue_push("Cannot activate achievements using this core.", 0, 4 * 60, false, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_WARNING);
|
||||
if (settings->bools.cheevos_verbose_enable)
|
||||
runloop_msg_queue_push("Cannot activate achievements using this core.", 0, 4 * 60, false, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_WARNING);
|
||||
|
||||
goto error;
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
|
||||
/* Allocate memory. */
|
||||
@ -1198,6 +1214,11 @@ int rcheevos_get_console(void)
|
||||
return rcheevos_locals.patchdata.console_id;
|
||||
}
|
||||
|
||||
const char* rcheevos_get_hash(void)
|
||||
{
|
||||
return rcheevos_locals.hash;
|
||||
}
|
||||
|
||||
static void rcheevos_unlock_cb(unsigned id, void* userdata)
|
||||
{
|
||||
rcheevos_cheevo_t* cheevo = NULL;
|
||||
@ -1698,6 +1719,7 @@ static int rcheevos_iterate(rcheevos_coro_t* coro)
|
||||
}
|
||||
|
||||
CHEEVOS_LOG(RCHEEVOS_TAG "this game doesn't feature achievements\n");
|
||||
strcpy(rcheevos_locals.hash, "N/A");
|
||||
rcheevos_hardcore_paused = true;
|
||||
CORO_STOP();
|
||||
|
||||
@ -2219,11 +2241,13 @@ found:
|
||||
CORO_RET();
|
||||
}
|
||||
|
||||
CHEEVOS_LOG(RCHEEVOS_TAG "checking %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n",
|
||||
sprintf(rcheevos_locals.hash, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
|
||||
coro->hash[0], coro->hash[1], coro->hash[2], coro->hash[3],
|
||||
coro->hash[4], coro->hash[5], coro->hash[6], coro->hash[7],
|
||||
coro->hash[8], coro->hash[9], coro->hash[10], coro->hash[11],
|
||||
coro->hash[12], coro->hash[13], coro->hash[14], coro->hash[15]);
|
||||
|
||||
CHEEVOS_LOG(RCHEEVOS_TAG "checking %s\n", rcheevos_locals.hash);
|
||||
rcheevos_log_url(RCHEEVOS_TAG "rc_url_get_gameid: %s\n", coro->url);
|
||||
CORO_GOSUB(RCHEEVOS_HTTP_GET);
|
||||
|
||||
|
@ -64,6 +64,8 @@ bool rcheevos_get_support_cheevos(void);
|
||||
|
||||
int rcheevos_get_console(void);
|
||||
|
||||
const char* rcheevos_get_hash(void);
|
||||
|
||||
extern bool rcheevos_loaded;
|
||||
extern bool rcheevos_hardcore_active;
|
||||
extern bool rcheevos_hardcore_paused;
|
||||
|
@ -210,11 +210,10 @@ enum event_command
|
||||
CMD_EVENT_CHEAT_INDEX_PLUS,
|
||||
CMD_EVENT_CHEAT_INDEX_MINUS,
|
||||
CMD_EVENT_CHEAT_TOGGLE,
|
||||
CMD_EVENT_AI_SERVICE_CALL
|
||||
CMD_EVENT_AI_SERVICE_CALL,
|
||||
CMD_EVENT_SAVE_FILES
|
||||
};
|
||||
|
||||
bool command_set_shader(const char *arg);
|
||||
|
||||
/**
|
||||
* command_event:
|
||||
* @cmd : Command index.
|
||||
|
299
config.def.h
299
config.def.h
@ -329,7 +329,11 @@
|
||||
#endif
|
||||
|
||||
/* Smooths picture. */
|
||||
#if defined(_3DS) || defined(GEKKO) || defined(HW_RVL) || defined(PSP) || defined(VITA) || defined(SN_TARGET_PSP2) || defined(PS2) || defined(_XBOX)
|
||||
#define DEFAULT_VIDEO_SMOOTH true
|
||||
#else
|
||||
#define DEFAULT_VIDEO_SMOOTH false
|
||||
#endif
|
||||
|
||||
/* On resize and fullscreen, rendering area will stay 4:3 */
|
||||
#define DEFAULT_FORCE_ASPECT true
|
||||
@ -448,93 +452,96 @@
|
||||
|
||||
#define DEFAULT_QUICK_MENU_SHOW_CLOSE_CONTENT true
|
||||
|
||||
static bool quick_menu_show_take_screenshot = true;
|
||||
static bool quick_menu_show_save_load_state = true;
|
||||
static bool quick_menu_show_undo_save_load_state = true;
|
||||
static bool quick_menu_show_add_to_favorites = true;
|
||||
static bool quick_menu_show_start_recording = true;
|
||||
static bool quick_menu_show_start_streaming = true;
|
||||
static bool quick_menu_show_set_core_association = true;
|
||||
static bool quick_menu_show_reset_core_association = true;
|
||||
static bool quick_menu_show_options = true;
|
||||
static bool quick_menu_show_controls = true;
|
||||
static bool quick_menu_show_cheats = true;
|
||||
static bool quick_menu_show_shaders = true;
|
||||
static bool quick_menu_show_information = true;
|
||||
static bool quick_menu_show_recording = true;
|
||||
static bool quick_menu_show_streaming = true;
|
||||
#define DEFAULT_QUICK_MENU_SHOW_TAKE_SCREENSHOT true
|
||||
|
||||
static bool quick_menu_show_save_core_overrides = true;
|
||||
static bool quick_menu_show_save_game_overrides = true;
|
||||
static bool quick_menu_show_save_content_dir_overrides = true;
|
||||
#define DEFAULT_QUICK_MENU_SHOW_SAVE_LOAD_STATE true
|
||||
|
||||
#define DEFAULT_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE true
|
||||
|
||||
static const bool quick_menu_show_add_to_favorites = true;
|
||||
static const bool quick_menu_show_start_recording = true;
|
||||
static const bool quick_menu_show_start_streaming = true;
|
||||
static const bool quick_menu_show_set_core_association = true;
|
||||
static const bool quick_menu_show_reset_core_association = true;
|
||||
static const bool quick_menu_show_options = true;
|
||||
static const bool quick_menu_show_controls = true;
|
||||
static const bool quick_menu_show_cheats = true;
|
||||
static const bool quick_menu_show_shaders = true;
|
||||
static const bool quick_menu_show_information = true;
|
||||
static const bool quick_menu_show_recording = true;
|
||||
static const bool quick_menu_show_streaming = true;
|
||||
|
||||
static const bool quick_menu_show_save_core_overrides = true;
|
||||
static const bool quick_menu_show_save_game_overrides = true;
|
||||
static const bool quick_menu_show_save_content_dir_overrides = true;
|
||||
|
||||
#ifdef HAVE_NETWORKING
|
||||
static bool quick_menu_show_download_thumbnails = true;
|
||||
static const bool quick_menu_show_download_thumbnails = true;
|
||||
#endif
|
||||
|
||||
static bool kiosk_mode_enable = false;
|
||||
#define DEFAULT_KIOSK_MODE_ENABLE false
|
||||
|
||||
#define DEFAULT_MENU_HORIZONTAL_ANIMATION true
|
||||
|
||||
static bool menu_show_online_updater = true;
|
||||
static bool menu_show_load_core = true;
|
||||
static bool menu_show_load_content = true;
|
||||
static const bool menu_show_online_updater = true;
|
||||
static const bool menu_show_load_core = true;
|
||||
static const bool menu_show_load_content = true;
|
||||
#ifdef HAVE_CDROM
|
||||
static bool menu_show_load_disc = true;
|
||||
static bool menu_show_dump_disc = true;
|
||||
static const bool menu_show_load_disc = true;
|
||||
static const bool menu_show_dump_disc = true;
|
||||
#endif
|
||||
static bool menu_show_information = true;
|
||||
static bool menu_show_configurations = true;
|
||||
static bool menu_show_help = true;
|
||||
static bool menu_show_quit_retroarch = true;
|
||||
static bool menu_show_restart_retroarch = true;
|
||||
static bool menu_show_reboot = true;
|
||||
static bool menu_show_shutdown = true;
|
||||
static const bool menu_show_information = true;
|
||||
static const bool menu_show_configurations = true;
|
||||
static const bool menu_show_help = true;
|
||||
static const bool menu_show_quit_retroarch = true;
|
||||
static const bool menu_show_restart_retroarch = true;
|
||||
static const bool menu_show_reboot = true;
|
||||
static const bool menu_show_shutdown = true;
|
||||
#if defined(HAVE_LAKKA) || defined(VITA) || defined(_3DS)
|
||||
static bool menu_show_core_updater = false;
|
||||
static const bool menu_show_core_updater = false;
|
||||
#else
|
||||
static bool menu_show_core_updater = true;
|
||||
static const bool menu_show_core_updater = true;
|
||||
#endif
|
||||
static bool menu_show_legacy_thumbnail_updater = false;
|
||||
static bool menu_show_sublabels = true;
|
||||
static const bool menu_show_legacy_thumbnail_updater = false;
|
||||
static const bool menu_show_sublabels = true;
|
||||
|
||||
static unsigned menu_ticker_type = TICKER_TYPE_BOUNCE;
|
||||
static float menu_ticker_speed = 1.0f;
|
||||
static const unsigned menu_ticker_type = TICKER_TYPE_BOUNCE;
|
||||
static const float menu_ticker_speed = 1.0f;
|
||||
|
||||
#define DEFAULT_MENU_TICKER_SMOOTH true
|
||||
|
||||
#if defined(HAVE_THREADS)
|
||||
static bool menu_savestate_resume = true;
|
||||
static const bool menu_savestate_resume = true;
|
||||
#else
|
||||
static bool menu_savestate_resume = false;
|
||||
static const bool menu_savestate_resume = false;
|
||||
#endif
|
||||
|
||||
#define DEFAULT_MENU_INSERT_DISK_RESUME true
|
||||
|
||||
static bool content_show_settings = true;
|
||||
static bool content_show_favorites = true;
|
||||
static const bool content_show_settings = true;
|
||||
static const bool content_show_favorites = true;
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
static bool content_show_images = true;
|
||||
static const bool content_show_images = true;
|
||||
#endif
|
||||
static bool content_show_music = true;
|
||||
static const bool content_show_music = true;
|
||||
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
||||
static bool content_show_video = true;
|
||||
static const bool content_show_video = true;
|
||||
#endif
|
||||
#ifdef HAVE_NETWORKING
|
||||
static bool content_show_netplay = true;
|
||||
static const bool content_show_netplay = true;
|
||||
#endif
|
||||
static bool content_show_history = true;
|
||||
static bool content_show_add = true;
|
||||
static bool content_show_playlists = true;
|
||||
static const bool content_show_history = true;
|
||||
static const bool content_show_add = true;
|
||||
static const bool content_show_playlists = true;
|
||||
|
||||
#ifdef HAVE_XMB
|
||||
static unsigned xmb_alpha_factor = 75;
|
||||
static unsigned menu_font_color_red = 255;
|
||||
static unsigned menu_font_color_green = 255;
|
||||
static unsigned menu_font_color_blue = 255;
|
||||
static unsigned xmb_menu_layout = 0;
|
||||
static unsigned xmb_icon_theme = XMB_ICON_THEME_MONOCHROME;
|
||||
static unsigned xmb_theme = XMB_THEME_ELECTRIC_BLUE;
|
||||
static const unsigned xmb_alpha_factor = 75;
|
||||
static const unsigned menu_font_color_red = 255;
|
||||
static const unsigned menu_font_color_green = 255;
|
||||
static const unsigned menu_font_color_blue = 255;
|
||||
static const unsigned xmb_menu_layout = 0;
|
||||
static const unsigned xmb_icon_theme = XMB_ICON_THEME_MONOCHROME;
|
||||
static const unsigned xmb_theme = XMB_THEME_ELECTRIC_BLUE;
|
||||
|
||||
#if defined(HAVE_LAKKA) || defined(__arm__) || defined(__PPC64__) || defined(__ppc64__) || defined(__powerpc64__) || defined(__powerpc__) || defined(__ppc__) || defined(__POWERPC__)
|
||||
#define DEFAULT_XMB_SHADOWS_ENABLE false
|
||||
@ -543,13 +550,13 @@ static unsigned xmb_theme = XMB_THEME_ELECTRIC_BLUE;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static float menu_framebuffer_opacity = 0.900;
|
||||
static const float menu_framebuffer_opacity = 0.900;
|
||||
|
||||
static float menu_wallpaper_opacity = 0.300;
|
||||
static const float menu_wallpaper_opacity = 0.300;
|
||||
|
||||
static float menu_footer_opacity = 1.000;
|
||||
static const float menu_footer_opacity = 1.000;
|
||||
|
||||
static float menu_header_opacity = 1.000;
|
||||
static const float menu_header_opacity = 1.000;
|
||||
|
||||
#if defined(HAVE_OPENGLES2) || (defined(__MACH__) && (defined(__ppc__) || defined(__ppc64__)))
|
||||
#define DEFAULT_MENU_SHADER_PIPELINE 1
|
||||
@ -561,18 +568,18 @@ static float menu_header_opacity = 1.000;
|
||||
|
||||
#define DEFAULT_RGUI_COLOR_THEME RGUI_THEME_CLASSIC_GREEN
|
||||
|
||||
static bool rgui_inline_thumbnails = false;
|
||||
static bool rgui_swap_thumbnails = false;
|
||||
static unsigned rgui_thumbnail_downscaler = RGUI_THUMB_SCALE_POINT;
|
||||
static unsigned rgui_thumbnail_delay = 0;
|
||||
static unsigned rgui_internal_upscale_level = RGUI_UPSCALE_NONE;
|
||||
static bool rgui_full_width_layout = true;
|
||||
static unsigned rgui_aspect = RGUI_ASPECT_RATIO_4_3;
|
||||
static unsigned rgui_aspect_lock = RGUI_ASPECT_RATIO_LOCK_NONE;
|
||||
static bool rgui_shadows = false;
|
||||
static unsigned rgui_particle_effect = RGUI_PARTICLE_EFFECT_NONE;
|
||||
static const bool rgui_inline_thumbnails = false;
|
||||
static const bool rgui_swap_thumbnails = false;
|
||||
static const unsigned rgui_thumbnail_downscaler = RGUI_THUMB_SCALE_POINT;
|
||||
static const unsigned rgui_thumbnail_delay = 0;
|
||||
static const unsigned rgui_internal_upscale_level = RGUI_UPSCALE_NONE;
|
||||
static const bool rgui_full_width_layout = true;
|
||||
static const unsigned rgui_aspect = RGUI_ASPECT_RATIO_4_3;
|
||||
static const unsigned rgui_aspect_lock = RGUI_ASPECT_RATIO_LOCK_NONE;
|
||||
static const bool rgui_shadows = false;
|
||||
static const unsigned rgui_particle_effect = RGUI_PARTICLE_EFFECT_NONE;
|
||||
#define DEFAULT_RGUI_PARTICLE_EFFECT_SPEED 1.0f
|
||||
static bool rgui_extended_ascii = false;
|
||||
static const bool rgui_extended_ascii = false;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
@ -584,37 +591,37 @@ static bool rgui_extended_ascii = false;
|
||||
/* TODO/FIXME - this setting is thread-unsafe right now and can corrupt the stack - default to off */
|
||||
#define DEFAULT_AUTOMATICALLY_ADD_CONTENT_TO_PLAYLIST false
|
||||
|
||||
static bool default_game_specific_options = true;
|
||||
static bool default_auto_overrides_enable = true;
|
||||
static bool default_auto_remaps_enable = true;
|
||||
static bool default_global_core_options = true;
|
||||
static bool default_auto_shaders_enable = true;
|
||||
static const bool default_game_specific_options = true;
|
||||
static const bool default_auto_overrides_enable = true;
|
||||
static const bool default_auto_remaps_enable = true;
|
||||
static const bool default_global_core_options = true;
|
||||
static const bool default_auto_shaders_enable = true;
|
||||
|
||||
static bool default_sort_savefiles_enable = false;
|
||||
static bool default_sort_savestates_enable = false;
|
||||
static const bool default_sort_savefiles_enable = false;
|
||||
static const bool default_sort_savestates_enable = false;
|
||||
|
||||
static bool default_savestates_in_content_dir = false;
|
||||
static bool default_savefiles_in_content_dir = false;
|
||||
static bool default_systemfiles_in_content_dir = false;
|
||||
static bool default_screenshots_in_content_dir = false;
|
||||
static const bool default_savestates_in_content_dir = false;
|
||||
static const bool default_savefiles_in_content_dir = false;
|
||||
static const bool default_systemfiles_in_content_dir = false;
|
||||
static const bool default_screenshots_in_content_dir = false;
|
||||
|
||||
#if defined(__CELLOS_LV2__) || defined(_XBOX1) || defined(_XBOX360) || defined(DINGUX)
|
||||
static unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_L3_R3;
|
||||
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_L3_R3;
|
||||
#elif defined(PS2) || defined(PSP)
|
||||
static unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_HOLD_START;
|
||||
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_HOLD_START;
|
||||
#elif defined(VITA)
|
||||
static unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_L1_R1_START_SELECT;
|
||||
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_L1_R1_START_SELECT;
|
||||
#elif defined(SWITCH) || defined(ORBIS)
|
||||
static unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_START_SELECT;
|
||||
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_START_SELECT;
|
||||
#elif TARGET_OS_TV
|
||||
static unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_DOWN_Y_L_R;
|
||||
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_DOWN_Y_L_R;
|
||||
#else
|
||||
static unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_NONE;
|
||||
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_NONE;
|
||||
#endif
|
||||
|
||||
#if defined(VITA)
|
||||
static unsigned input_backtouch_enable = false;
|
||||
static unsigned input_backtouch_toggle = false;
|
||||
static const unsigned input_backtouch_enable = false;
|
||||
static const unsigned input_backtouch_toggle = false;
|
||||
#endif
|
||||
|
||||
#define DEFAULT_SHOW_PHYSICAL_INPUTS true
|
||||
@ -774,9 +781,10 @@ static const bool audio_enable_menu_bgm = false;
|
||||
|
||||
#ifdef HAVE_WASAPI
|
||||
/* WASAPI defaults */
|
||||
static const bool wasapi_exclusive_mode = true;
|
||||
static const bool wasapi_float_format = false;
|
||||
static const int wasapi_sh_buffer_length = -16; /* auto */
|
||||
#define DEFAULT_WASAPI_EXCLUSIVE_MODE true
|
||||
#define DEFAULT_WASAPI_FLOAT_FORMAT false
|
||||
/* auto */
|
||||
#define DEFAULT_WASAPI_SH_BUFFER_LENGTH -16
|
||||
#endif
|
||||
|
||||
/* MISC */
|
||||
@ -900,10 +908,10 @@ static const bool savestate_thumbnail_enable = false;
|
||||
#define DEFAULT_RUN_AHEAD_FRAMES 1
|
||||
|
||||
/* When using the Run Ahead feature, use a secondary instance of the core. */
|
||||
static const bool run_ahead_secondary_instance = true;
|
||||
#define DEFAULT_RUN_AHEAD_SECONDARY_INSTANCE true
|
||||
|
||||
/* Hide warning messages when using the Run Ahead feature. */
|
||||
static const bool run_ahead_hide_warnings = false;
|
||||
#define DEFAULT_RUN_AHEAD_HIDE_WARNINGS false
|
||||
|
||||
/* Enable stdin/network command interface. */
|
||||
static const bool network_cmd_enable = false;
|
||||
@ -944,7 +952,7 @@ static const unsigned playlist_sublabel_runtime_type = PLAYLIST_RUNTIME_PER_CORE
|
||||
static const unsigned playlist_entry_remove_enable = PLAYLIST_ENTRY_REMOVE_ENABLE_ALL;
|
||||
#endif
|
||||
|
||||
static const bool scan_without_core_match = false;
|
||||
#define DEFAULT_SCAN_WITHOUT_CORE_MATCH false
|
||||
|
||||
#ifdef __WINRT__
|
||||
/* Be paranoid about WinRT file I/O performance, and leave this disabled by
|
||||
@ -954,10 +962,10 @@ static const bool scan_without_core_match = false;
|
||||
#define DEFAULT_PLAYLIST_SHOW_SUBLABELS true
|
||||
#endif
|
||||
|
||||
static const bool playlist_fuzzy_archive_match = false;
|
||||
#define DEFAULT_PLAYLIST_FUZZY_ARCHIVE_MATCH false
|
||||
|
||||
/* Show Menu start-up screen on boot. */
|
||||
static const bool default_menu_show_start_screen = true;
|
||||
#define DEFAULT_MENU_SHOW_START_SCREEN true
|
||||
|
||||
/* Default scale factor for non-frambuffer-based menu
|
||||
* drivers and menu widgets */
|
||||
@ -981,11 +989,11 @@ static const bool default_menu_show_start_screen = true;
|
||||
|
||||
/* Axis threshold (between 0.0 and 1.0)
|
||||
* How far an axis must be tilted to result in a button press. */
|
||||
static const float axis_threshold = 0.5f;
|
||||
#define DEFAULT_AXIS_THRESHOLD 0.5f
|
||||
|
||||
static const float analog_deadzone = 0.0f;
|
||||
#define DEFAULT_ANALOG_DEADZONE 0.0f
|
||||
|
||||
static const float analog_sensitivity = 1.0f;
|
||||
#define DEFAULT_ANALOG_SENSITIVITY 1.0f
|
||||
|
||||
/* Describes speed of which turbo-enabled buttons toggle. */
|
||||
static const unsigned turbo_period = 6;
|
||||
@ -1037,7 +1045,7 @@ static const bool ui_companion_enable = false;
|
||||
static const bool ui_companion_toggle = false;
|
||||
|
||||
/* Only init the WIMP UI for this session if this is enabled */
|
||||
static const bool desktop_menu_enable = true;
|
||||
#define DEFAULT_DESKTOP_MENU_ENABLE true
|
||||
|
||||
/* Keep track of how long each core+content has been running for over time */
|
||||
|
||||
@ -1049,17 +1057,18 @@ static const bool desktop_menu_enable = true;
|
||||
#define DEFAULT_CONTENT_RUNTIME_LOG true
|
||||
#endif
|
||||
|
||||
/* Keep track of how long each content has been running for over time (ignores core) */
|
||||
static const bool content_runtime_log_aggregate = false;
|
||||
/* Keep track of how long each content has been running
|
||||
* for over time (ignores core) */
|
||||
#define DEFAULT_CONTENT_RUNTIME_LOG_AGGREGATE false
|
||||
|
||||
#define DEFAULT_UI_MENUBAR_ENABLE true
|
||||
|
||||
#if defined(__QNX__) || defined(_XBOX1) || defined(_XBOX360) || defined(__CELLOS_LV2__) || (defined(__MACH__) && defined(IOS)) || defined(ANDROID) || defined(WIIU) || defined(HAVE_NEON) || defined(GEKKO) || defined(__ARM_NEON__)
|
||||
static enum resampler_quality audio_resampler_quality_level = RESAMPLER_QUALITY_LOWER;
|
||||
static const enum resampler_quality audio_resampler_quality_level = RESAMPLER_QUALITY_LOWER;
|
||||
#elif defined(PSP) || defined(_3DS) || defined(VITA) || defined(PS2) || defined(DINGUX)
|
||||
static enum resampler_quality audio_resampler_quality_level = RESAMPLER_QUALITY_LOWEST;
|
||||
static const enum resampler_quality audio_resampler_quality_level = RESAMPLER_QUALITY_LOWEST;
|
||||
#else
|
||||
static enum resampler_quality audio_resampler_quality_level = RESAMPLER_QUALITY_NORMAL;
|
||||
static const enum resampler_quality audio_resampler_quality_level = RESAMPLER_QUALITY_NORMAL;
|
||||
#endif
|
||||
|
||||
/* MIDI */
|
||||
@ -1090,100 +1099,100 @@ static const bool enable_device_vibration = false;
|
||||
#endif
|
||||
|
||||
#if defined(HAKCHI)
|
||||
static char buildbot_server_url[] = "http://hakchicloud.com/Libretro_Cores/";
|
||||
static const char buildbot_server_url[] = "http://hakchicloud.com/Libretro_Cores/";
|
||||
#elif defined(ANDROID)
|
||||
#if defined(ANDROID_ARM_V7)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/armeabi-v7a/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/armeabi-v7a/";
|
||||
#elif defined(ANDROID_ARM)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/armeabi/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/armeabi/";
|
||||
#elif defined(ANDROID_AARCH64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/arm64-v8a/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/arm64-v8a/";
|
||||
#elif defined(ANDROID_X86)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/x86/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/x86/";
|
||||
#elif defined(ANDROID_X64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/x86_64/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/x86_64/";
|
||||
#else
|
||||
static char buildbot_server_url[] = "";
|
||||
static const char buildbot_server_url[] = "";
|
||||
#endif
|
||||
#elif defined(__QNX__)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/blackberry/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/blackberry/latest/";
|
||||
#elif defined(IOS)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/apple/ios/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/apple/ios/latest/";
|
||||
#elif defined(OSX)
|
||||
#if defined(__x86_64__)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/apple/osx/x86_64/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/apple/osx/x86_64/latest/";
|
||||
#elif defined(__i386__) || defined(__i486__) || defined(__i686__)
|
||||
static char buildbot_server_url[] = "http://bot.libretro.com/nightly/apple/osx/x86/latest/";
|
||||
static const char buildbot_server_url[] = "http://bot.libretro.com/nightly/apple/osx/x86/latest/";
|
||||
#else
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/apple/osx/ppc/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/apple/osx/ppc/latest/";
|
||||
#endif
|
||||
#elif defined(_WIN32) && !defined(_XBOX)
|
||||
#if _MSC_VER >= 1910
|
||||
#ifndef __WINRT__
|
||||
#if defined(__x86_64__) || defined(_M_X64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-desktop/x64/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-desktop/x64/latest/";
|
||||
#elif defined(__i386__) || defined(__i486__) || defined(__i686__) || defined(_M_IX86) || defined(_M_IA64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-desktop/x86/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-desktop/x86/latest/";
|
||||
#elif defined(__arm__) || defined(_M_ARM)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-desktop/arm/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-desktop/arm/latest/";
|
||||
#elif defined(__aarch64__) || defined(_M_ARM64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-desktop/arm64/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-desktop/arm64/latest/";
|
||||
#endif
|
||||
#else
|
||||
#if defined(__x86_64__) || defined(_M_X64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-uwp/x64/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-uwp/x64/latest/";
|
||||
#elif defined(__i386__) || defined(__i486__) || defined(__i686__) || defined(_M_IX86) || defined(_M_IA64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-uwp/x86/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-uwp/x86/latest/";
|
||||
#elif defined(__arm__) || defined(_M_ARM)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-uwp/arm/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-uwp/arm/latest/";
|
||||
#elif defined(__aarch64__) || defined(_M_ARM64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-uwp/arm64/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2017-uwp/arm64/latest/";
|
||||
#endif
|
||||
#endif
|
||||
#elif _MSC_VER == 1600
|
||||
#if defined(__x86_64__) || defined(_M_X64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2010/x86_64/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2010/x86_64/latest/";
|
||||
#elif defined(__i386__) || defined(__i486__) || defined(__i686__) || defined(_M_IX86) || defined(_M_IA64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2010/x86/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2010/x86/latest/";
|
||||
#endif
|
||||
#elif _MSC_VER == 1400
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2005/x86/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2005/x86/latest/";
|
||||
#elif _MSC_VER == 1310
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2003/x86/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows-msvc2003/x86/latest/";
|
||||
#else
|
||||
#if defined(__x86_64__) || defined(_M_X64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows/x86_64/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows/x86_64/latest/";
|
||||
#elif defined(__i386__) || defined(__i486__) || defined(__i686__) || defined(_M_IX86) || defined(_M_IA64)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows/x86/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/windows/x86/latest/";
|
||||
#endif
|
||||
#endif
|
||||
#elif defined(__linux__)
|
||||
#if defined(__x86_64__)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/linux/x86_64/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/linux/x86_64/latest/";
|
||||
#elif defined(__i386__) || defined(__i486__) || defined(__i686__)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/linux/x86/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/linux/x86/latest/";
|
||||
#elif defined(__arm__) && __ARM_ARCH == 7 && defined(__ARM_PCS_VFP)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/linux/armhf/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/linux/armhf/latest/";
|
||||
#else
|
||||
static char buildbot_server_url[] = "";
|
||||
static const char buildbot_server_url[] = "";
|
||||
#endif
|
||||
#elif defined(WIIU)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/nintendo/wiiu/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/nintendo/wiiu/latest/";
|
||||
#elif defined(HAVE_LIBNX)
|
||||
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/nintendo/switch/libnx/latest/";
|
||||
static const char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/nintendo/switch/libnx/latest/";
|
||||
#elif defined(__CELLOS_LV2__) && defined(DEX_BUILD)
|
||||
static char buildbot_server_url[] = "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/dex-ps3/";
|
||||
static const char buildbot_server_url[] = "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/dex-ps3/";
|
||||
#elif defined(__CELLOS_LV2__) && defined(CEX_BUILD)
|
||||
static char buildbot_server_url[] = "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/cex-ps3/";
|
||||
static const char buildbot_server_url[] = "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/cex-ps3/";
|
||||
#elif defined(__CELLOS_LV2__) && defined(ODE_BUILD)
|
||||
static char buildbot_server_url[] = "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/ode-ps3/";
|
||||
static const char buildbot_server_url[] = "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/ode-ps3/";
|
||||
#else
|
||||
static char buildbot_server_url[] = "";
|
||||
static const char buildbot_server_url[] = "";
|
||||
#endif
|
||||
|
||||
static char buildbot_assets_server_url[] = "http://buildbot.libretro.com/assets/";
|
||||
#define DEFAULT_BUILDBOT_ASSETS_SERVER_URL "http://buildbot.libretro.com/assets/"
|
||||
|
||||
static char default_discord_app_id[] = "475456035851599874";
|
||||
#define DEFAULT_DISCORD_APP_ID "475456035851599874"
|
||||
|
||||
#define DEFAULT_AI_SERVICE_SOURCE_LANG 0
|
||||
|
||||
|
181
configuration.c
181
configuration.c
@ -56,12 +56,6 @@
|
||||
#include "uwp/uwp_func.h"
|
||||
#endif
|
||||
|
||||
static const char* invalid_filename_chars[] = {
|
||||
/* https://support.microsoft.com/en-us/help/905231/information-about-the-characters-that-you-cannot-use-in-site-names--fo */
|
||||
"~", "#", "%", "&", "*", "{", "}", "\\", ":", "[", "]", "?", "/", "|", "\'", "\"",
|
||||
NULL
|
||||
};
|
||||
|
||||
/* All config related settings go here. */
|
||||
|
||||
struct config_bool_setting
|
||||
@ -1176,7 +1170,7 @@ static struct config_array_setting *populate_settings_array(settings_t *settings
|
||||
SETTING_ARRAY("midi_output", settings->arrays.midi_output, true, midi_output, true);
|
||||
SETTING_ARRAY("youtube_stream_key", settings->arrays.youtube_stream_key, true, NULL, true);
|
||||
SETTING_ARRAY("twitch_stream_key", settings->arrays.twitch_stream_key, true, NULL, true);
|
||||
SETTING_ARRAY("discord_app_id", settings->arrays.discord_app_id, true, default_discord_app_id, true);
|
||||
SETTING_ARRAY("discord_app_id", settings->arrays.discord_app_id, true, DEFAULT_DISCORD_APP_ID, true);
|
||||
SETTING_ARRAY("ai_service_url", settings->arrays.ai_service_url, true, DEFAULT_AI_SERVICE_URL, true);
|
||||
|
||||
*size = count;
|
||||
@ -1344,7 +1338,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("ui_companion_start_on_boot", &settings->bools.ui_companion_start_on_boot, true, ui_companion_start_on_boot, false);
|
||||
SETTING_BOOL("ui_companion_enable", &settings->bools.ui_companion_enable, true, ui_companion_enable, false);
|
||||
SETTING_BOOL("ui_companion_toggle", &settings->bools.ui_companion_toggle, false, ui_companion_toggle, false);
|
||||
SETTING_BOOL("desktop_menu_enable", &settings->bools.desktop_menu_enable, true, desktop_menu_enable, false);
|
||||
SETTING_BOOL("desktop_menu_enable", &settings->bools.desktop_menu_enable, true, DEFAULT_DESKTOP_MENU_ENABLE, false);
|
||||
SETTING_BOOL("video_gpu_record", &settings->bools.video_gpu_record, true, DEFAULT_GPU_RECORD, false);
|
||||
SETTING_BOOL("input_remap_binds_enable", &settings->bools.input_remap_binds_enable, true, true, false);
|
||||
SETTING_BOOL("all_users_control_menu", &settings->bools.input_all_users_control_menu, true, DEFAULT_ALL_USERS_CONTROL_MENU, false);
|
||||
@ -1392,8 +1386,8 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("apply_cheats_after_toggle", &settings->bools.apply_cheats_after_toggle, true, DEFAULT_APPLY_CHEATS_AFTER_TOGGLE, false);
|
||||
SETTING_BOOL("apply_cheats_after_load", &settings->bools.apply_cheats_after_load, true, DEFAULT_APPLY_CHEATS_AFTER_LOAD, false);
|
||||
SETTING_BOOL("run_ahead_enabled", &settings->bools.run_ahead_enabled, true, false, false);
|
||||
SETTING_BOOL("run_ahead_secondary_instance", &settings->bools.run_ahead_secondary_instance, true, false, false);
|
||||
SETTING_BOOL("run_ahead_hide_warnings", &settings->bools.run_ahead_hide_warnings, true, false, false);
|
||||
SETTING_BOOL("run_ahead_secondary_instance", &settings->bools.run_ahead_secondary_instance, true, DEFAULT_RUN_AHEAD_SECONDARY_INSTANCE, false);
|
||||
SETTING_BOOL("run_ahead_hide_warnings", &settings->bools.run_ahead_hide_warnings, true, DEFAULT_RUN_AHEAD_HIDE_WARNINGS, false);
|
||||
SETTING_BOOL("audio_sync", &settings->bools.audio_sync, true, DEFAULT_AUDIO_SYNC, false);
|
||||
SETTING_BOOL("video_shader_enable", &settings->bools.video_shader_enable, true, DEFAULT_SHADER_ENABLE, false);
|
||||
SETTING_BOOL("video_shader_watch_files", &settings->bools.video_shader_watch_files, true, DEFAULT_VIDEO_SHADER_WATCH_FILES, false);
|
||||
@ -1493,10 +1487,9 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("quick_menu_show_close_content", &settings->bools.quick_menu_show_close_content, true, DEFAULT_QUICK_MENU_SHOW_CLOSE_CONTENT, false);
|
||||
SETTING_BOOL("quick_menu_show_recording", &settings->bools.quick_menu_show_recording, true, quick_menu_show_recording, false);
|
||||
SETTING_BOOL("quick_menu_show_streaming", &settings->bools.quick_menu_show_streaming, true, quick_menu_show_streaming, false);
|
||||
SETTING_BOOL("quick_menu_show_save_load_state", &settings->bools.quick_menu_show_save_load_state, true, quick_menu_show_save_load_state, false);
|
||||
SETTING_BOOL("quick_menu_show_take_screenshot", &settings->bools.quick_menu_show_take_screenshot, true, quick_menu_show_take_screenshot, false);
|
||||
SETTING_BOOL("quick_menu_show_save_load_state", &settings->bools.quick_menu_show_save_load_state, true, quick_menu_show_save_load_state, false);
|
||||
SETTING_BOOL("quick_menu_show_undo_save_load_state", &settings->bools.quick_menu_show_undo_save_load_state, true, quick_menu_show_undo_save_load_state, false);
|
||||
SETTING_BOOL("quick_menu_show_save_load_state", &settings->bools.quick_menu_show_save_load_state, true, DEFAULT_QUICK_MENU_SHOW_SAVE_LOAD_STATE, false);
|
||||
SETTING_BOOL("quick_menu_show_take_screenshot", &settings->bools.quick_menu_show_take_screenshot, true, DEFAULT_QUICK_MENU_SHOW_TAKE_SCREENSHOT, false);
|
||||
SETTING_BOOL("quick_menu_show_undo_save_load_state", &settings->bools.quick_menu_show_undo_save_load_state, true, DEFAULT_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE, false);
|
||||
SETTING_BOOL("quick_menu_show_add_to_favorites", &settings->bools.quick_menu_show_add_to_favorites, true, quick_menu_show_add_to_favorites, false);
|
||||
SETTING_BOOL("quick_menu_show_start_recording", &settings->bools.quick_menu_show_start_recording, true, quick_menu_show_start_recording, false);
|
||||
SETTING_BOOL("quick_menu_show_start_streaming", &settings->bools.quick_menu_show_start_streaming, true, quick_menu_show_start_streaming, false);
|
||||
@ -1513,7 +1506,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
#ifdef HAVE_NETWORKING
|
||||
SETTING_BOOL("quick_menu_show_download_thumbnails", &settings->bools.quick_menu_show_download_thumbnails, true, quick_menu_show_download_thumbnails, false);
|
||||
#endif
|
||||
SETTING_BOOL("kiosk_mode_enable", &settings->bools.kiosk_mode_enable, true, kiosk_mode_enable, false);
|
||||
SETTING_BOOL("kiosk_mode_enable", &settings->bools.kiosk_mode_enable, true, DEFAULT_KIOSK_MODE_ENABLE, false);
|
||||
SETTING_BOOL("menu_use_preferred_system_color_theme", &settings->bools.menu_use_preferred_system_color_theme, true, DEFAULT_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME, false);
|
||||
SETTING_BOOL("content_show_settings", &settings->bools.menu_content_show_settings, true, content_show_settings, false);
|
||||
SETTING_BOOL("content_show_favorites", &settings->bools.menu_content_show_favorites, true, content_show_favorites, false);
|
||||
@ -1623,7 +1616,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("auto_remaps_enable", &settings->bools.auto_remaps_enable, true, default_auto_remaps_enable, false);
|
||||
SETTING_BOOL("global_core_options", &settings->bools.global_core_options, true, default_global_core_options, false);
|
||||
SETTING_BOOL("auto_shaders_enable", &settings->bools.auto_shaders_enable, true, default_auto_shaders_enable, false);
|
||||
SETTING_BOOL("scan_without_core_match", &settings->bools.scan_without_core_match, true, scan_without_core_match, false);
|
||||
SETTING_BOOL("scan_without_core_match", &settings->bools.scan_without_core_match, true, DEFAULT_SCAN_WITHOUT_CORE_MATCH, false);
|
||||
SETTING_BOOL("sort_savefiles_enable", &settings->bools.sort_savefiles_enable, true, default_sort_savefiles_enable, false);
|
||||
SETTING_BOOL("sort_savestates_enable", &settings->bools.sort_savestates_enable, true, default_sort_savestates_enable, false);
|
||||
SETTING_BOOL("config_save_on_exit", &settings->bools.config_save_on_exit, true, DEFAULT_CONFIG_SAVE_ON_EXIT, false);
|
||||
@ -1631,8 +1624,8 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("input_autodetect_enable", &settings->bools.input_autodetect_enable, true, input_autodetect_enable, false);
|
||||
SETTING_BOOL("audio_rate_control", &settings->bools.audio_rate_control, true, DEFAULT_RATE_CONTROL, false);
|
||||
#ifdef HAVE_WASAPI
|
||||
SETTING_BOOL("audio_wasapi_exclusive_mode", &settings->bools.audio_wasapi_exclusive_mode, true, wasapi_exclusive_mode, false);
|
||||
SETTING_BOOL("audio_wasapi_float_format", &settings->bools.audio_wasapi_float_format, true, wasapi_float_format, false);
|
||||
SETTING_BOOL("audio_wasapi_exclusive_mode", &settings->bools.audio_wasapi_exclusive_mode, true, DEFAULT_WASAPI_EXCLUSIVE_MODE, false);
|
||||
SETTING_BOOL("audio_wasapi_float_format", &settings->bools.audio_wasapi_float_format, true, DEFAULT_WASAPI_FLOAT_FORMAT, false);
|
||||
#endif
|
||||
|
||||
SETTING_BOOL("savestates_in_content_dir", &settings->bools.savestates_in_content_dir, true, default_savestates_in_content_dir, false);
|
||||
@ -1652,10 +1645,10 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
|
||||
SETTING_BOOL("playlist_use_old_format", &settings->bools.playlist_use_old_format, true, playlist_use_old_format, false);
|
||||
SETTING_BOOL("content_runtime_log", &settings->bools.content_runtime_log, true, DEFAULT_CONTENT_RUNTIME_LOG, false);
|
||||
SETTING_BOOL("content_runtime_log_aggregate", &settings->bools.content_runtime_log_aggregate, true, content_runtime_log_aggregate, false);
|
||||
SETTING_BOOL("content_runtime_log_aggregate", &settings->bools.content_runtime_log_aggregate, true, DEFAULT_CONTENT_RUNTIME_LOG_AGGREGATE, false);
|
||||
SETTING_BOOL("playlist_show_sublabels", &settings->bools.playlist_show_sublabels, true, DEFAULT_PLAYLIST_SHOW_SUBLABELS, false);
|
||||
SETTING_BOOL("playlist_sort_alphabetical", &settings->bools.playlist_sort_alphabetical, true, playlist_sort_alphabetical, false);
|
||||
SETTING_BOOL("playlist_fuzzy_archive_match", &settings->bools.playlist_fuzzy_archive_match, true, playlist_fuzzy_archive_match, false);
|
||||
SETTING_BOOL("playlist_fuzzy_archive_match", &settings->bools.playlist_fuzzy_archive_match, true, DEFAULT_PLAYLIST_FUZZY_ARCHIVE_MATCH, false);
|
||||
|
||||
SETTING_BOOL("quit_press_twice", &settings->bools.quit_press_twice, true, DEFAULT_QUIT_PRESS_TWICE, false);
|
||||
SETTING_BOOL("vibrate_on_keypress", &settings->bools.vibrate_on_keypress, true, vibrate_on_keypress, false);
|
||||
@ -1713,9 +1706,9 @@ static struct config_float_setting *populate_settings_float(settings_t *settings
|
||||
SETTING_FLOAT("video_font_size", &settings->floats.video_font_size, true, DEFAULT_FONT_SIZE, false);
|
||||
SETTING_FLOAT("fastforward_ratio", &settings->floats.fastforward_ratio, true, DEFAULT_FASTFORWARD_RATIO, false);
|
||||
SETTING_FLOAT("slowmotion_ratio", &settings->floats.slowmotion_ratio, true, DEFAULT_SLOWMOTION_RATIO, false);
|
||||
SETTING_FLOAT("input_axis_threshold", input_driver_get_float(INPUT_ACTION_AXIS_THRESHOLD), true, axis_threshold, false);
|
||||
SETTING_FLOAT("input_analog_deadzone", &settings->floats.input_analog_deadzone, true, analog_deadzone, false);
|
||||
SETTING_FLOAT("input_analog_sensitivity", &settings->floats.input_analog_sensitivity, true, analog_sensitivity, false);
|
||||
SETTING_FLOAT("input_axis_threshold", input_driver_get_float(INPUT_ACTION_AXIS_THRESHOLD), true, DEFAULT_AXIS_THRESHOLD, false);
|
||||
SETTING_FLOAT("input_analog_deadzone", &settings->floats.input_analog_deadzone, true, DEFAULT_ANALOG_DEADZONE, false);
|
||||
SETTING_FLOAT("input_analog_sensitivity", &settings->floats.input_analog_sensitivity, true, DEFAULT_ANALOG_SENSITIVITY, false);
|
||||
SETTING_FLOAT("video_msg_bgcolor_opacity", &settings->floats.video_msg_bgcolor_opacity, true, message_bgcolor_opacity, false);
|
||||
|
||||
*size = count;
|
||||
@ -1932,7 +1925,7 @@ static struct config_int_setting *populate_settings_int(settings_t *settings, in
|
||||
SETTING_OVERRIDE(RARCH_OVERRIDE_SETTING_NETPLAY_CHECK_FRAMES);
|
||||
#endif
|
||||
#ifdef HAVE_WASAPI
|
||||
SETTING_INT("audio_wasapi_sh_buffer_length", &settings->ints.audio_wasapi_sh_buffer_length, true, wasapi_sh_buffer_length, false);
|
||||
SETTING_INT("audio_wasapi_sh_buffer_length", &settings->ints.audio_wasapi_sh_buffer_length, true, DEFAULT_WASAPI_SH_BUFFER_LENGTH, false);
|
||||
#endif
|
||||
SETTING_INT("crt_switch_center_adjust", &settings->ints.crt_switch_center_adjust, false, DEFAULT_CRT_SWITCH_CENTER_ADJUST, false);
|
||||
#ifdef HAVE_VULKAN
|
||||
@ -2093,7 +2086,7 @@ void config_set_defaults(void *data)
|
||||
#endif
|
||||
|
||||
strlcpy(settings->arrays.discord_app_id,
|
||||
default_discord_app_id, sizeof(settings->arrays.discord_app_id));
|
||||
DEFAULT_DISCORD_APP_ID, sizeof(settings->arrays.discord_app_id));
|
||||
|
||||
strlcpy(settings->arrays.ai_service_url,
|
||||
DEFAULT_AI_SERVICE_URL, sizeof(settings->arrays.ai_service_url));
|
||||
@ -2145,7 +2138,8 @@ void config_set_defaults(void *data)
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
if (first_initialized)
|
||||
settings->bools.menu_show_start_screen = default_menu_show_start_screen;
|
||||
settings->bools.menu_show_start_screen =
|
||||
DEFAULT_MENU_SHOW_START_SCREEN;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_CHEEVOS
|
||||
@ -2155,7 +2149,9 @@ void config_set_defaults(void *data)
|
||||
#endif
|
||||
|
||||
input_config_reset();
|
||||
#ifdef HAVE_CONFIGFILE
|
||||
input_remapping_set_defaults(true);
|
||||
#endif
|
||||
input_autoconfigure_reset();
|
||||
|
||||
/* Verify that binds are in proper order. */
|
||||
@ -2171,7 +2167,8 @@ void config_set_defaults(void *data)
|
||||
|
||||
strlcpy(settings->paths.network_buildbot_url, buildbot_server_url,
|
||||
sizeof(settings->paths.network_buildbot_url));
|
||||
strlcpy(settings->paths.network_buildbot_assets_url, buildbot_assets_server_url,
|
||||
strlcpy(settings->paths.network_buildbot_assets_url,
|
||||
DEFAULT_BUILDBOT_ASSETS_SERVER_URL,
|
||||
sizeof(settings->paths.network_buildbot_assets_url));
|
||||
|
||||
*settings->arrays.input_keyboard_layout = '\0';
|
||||
@ -2430,17 +2427,68 @@ void config_set_defaults(void *data)
|
||||
strlcpy(settings->arrays.midi_output,
|
||||
midi_output, sizeof(settings->arrays.midi_output));
|
||||
|
||||
#ifdef HAVE_CONFIGFILE
|
||||
/* Avoid reloading config on every content load */
|
||||
if (DEFAULT_BLOCK_CONFIG_READ)
|
||||
rarch_ctl(RARCH_CTL_SET_BLOCK_CONFIG_READ, NULL);
|
||||
else
|
||||
rarch_ctl(RARCH_CTL_UNSET_BLOCK_CONFIG_READ, NULL);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
first_initialized = false;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* config_load:
|
||||
*
|
||||
* Loads a config file and reads all the values into memory.
|
||||
*
|
||||
*/
|
||||
void config_load(void *data)
|
||||
{
|
||||
global_t *global = (global_t*)data;
|
||||
config_set_defaults(global);
|
||||
#ifdef HAVE_CONFIGFILE
|
||||
config_parse_file(global);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef HAVE_CONFIGFILE
|
||||
|
||||
#if defined(HAVE_MENU) && defined(HAVE_RGUI)
|
||||
static bool check_menu_driver_compatibility(settings_t *settings)
|
||||
{
|
||||
char *video_driver = settings->arrays.video_driver;
|
||||
char *menu_driver = settings->arrays.menu_driver;
|
||||
|
||||
if ( string_is_equal(menu_driver, "rgui") ||
|
||||
string_is_equal(menu_driver, "null") ||
|
||||
string_is_equal(video_driver, "null"))
|
||||
return true;
|
||||
|
||||
/* TODO/FIXME - maintenance hazard */
|
||||
if (string_is_equal(video_driver, "d3d9") ||
|
||||
string_is_equal(video_driver, "d3d10") ||
|
||||
string_is_equal(video_driver, "d3d11") ||
|
||||
string_is_equal(video_driver, "d3d12") ||
|
||||
string_is_equal(video_driver, "caca") ||
|
||||
string_is_equal(video_driver, "gdi") ||
|
||||
string_is_equal(video_driver, "gl") ||
|
||||
string_is_equal(video_driver, "gl1") ||
|
||||
string_is_equal(video_driver, "gx2") ||
|
||||
string_is_equal(video_driver, "vulkan") ||
|
||||
string_is_equal(video_driver, "glcore") ||
|
||||
string_is_equal(video_driver, "metal") ||
|
||||
string_is_equal(video_driver, "ctr") ||
|
||||
string_is_equal(video_driver, "vita2d"))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* open_default_config_file
|
||||
*
|
||||
@ -2650,40 +2698,6 @@ error:
|
||||
free(app_path);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#if defined(HAVE_MENU) && defined(HAVE_RGUI)
|
||||
static bool check_menu_driver_compatibility(void)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
char *video_driver = settings->arrays.video_driver;
|
||||
char *menu_driver = settings->arrays.menu_driver;
|
||||
|
||||
if (string_is_equal (menu_driver, "rgui") ||
|
||||
string_is_equal(menu_driver, "null") ||
|
||||
string_is_equal(video_driver, "null"))
|
||||
return true;
|
||||
|
||||
/* TODO/FIXME - maintenance hazard */
|
||||
if (string_is_equal(video_driver, "d3d9") ||
|
||||
string_is_equal(video_driver, "d3d10") ||
|
||||
string_is_equal(video_driver, "d3d11") ||
|
||||
string_is_equal(video_driver, "d3d12") ||
|
||||
string_is_equal(video_driver, "caca") ||
|
||||
string_is_equal(video_driver, "gdi") ||
|
||||
string_is_equal(video_driver, "gl") ||
|
||||
string_is_equal(video_driver, "gl1") ||
|
||||
string_is_equal(video_driver, "gx2") ||
|
||||
string_is_equal(video_driver, "vulkan") ||
|
||||
string_is_equal(video_driver, "glcore") ||
|
||||
string_is_equal(video_driver, "metal") ||
|
||||
string_is_equal(video_driver, "ctr") ||
|
||||
string_is_equal(video_driver, "vita2d"))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* config_load:
|
||||
* @path : path to be read from.
|
||||
@ -3162,7 +3176,7 @@ static bool config_load_file(global_t *global,
|
||||
config_read_keybinds_conf(conf);
|
||||
|
||||
#if defined(HAVE_MENU) && defined(HAVE_RGUI)
|
||||
if (!check_menu_driver_compatibility())
|
||||
if (!check_menu_driver_compatibility(settings))
|
||||
strlcpy(settings->arrays.menu_driver, "rgui", sizeof(settings->arrays.menu_driver));
|
||||
#endif
|
||||
|
||||
@ -3234,7 +3248,7 @@ end:
|
||||
* Returns: false if there was an error or no action was performed.
|
||||
*
|
||||
*/
|
||||
bool config_load_override(void)
|
||||
bool config_load_override(void *data)
|
||||
{
|
||||
size_t path_size = PATH_MAX_LENGTH * sizeof(char);
|
||||
char *buf = NULL;
|
||||
@ -3243,7 +3257,7 @@ bool config_load_override(void)
|
||||
char *content_path = NULL;
|
||||
char *config_directory = NULL;
|
||||
bool should_append = false;
|
||||
rarch_system_info_t *system = runloop_get_system_info();
|
||||
rarch_system_info_t *system = (rarch_system_info_t*)data;
|
||||
const char *core_name = system ?
|
||||
system->info.library_name : NULL;
|
||||
const char *rarch_path_basename = path_get(RARCH_PATH_BASENAME);
|
||||
@ -3458,7 +3472,8 @@ bool config_unload_override(void)
|
||||
*
|
||||
* Returns: false if there was an error or no action was performed.
|
||||
*/
|
||||
bool config_load_remap(const char *directory_input_remapping)
|
||||
bool config_load_remap(const char *directory_input_remapping,
|
||||
void *data)
|
||||
{
|
||||
size_t path_size = PATH_MAX_LENGTH * sizeof(char);
|
||||
config_file_t *new_conf = NULL;
|
||||
@ -3466,7 +3481,7 @@ bool config_load_remap(const char *directory_input_remapping)
|
||||
char *core_path = NULL;
|
||||
char *game_path = NULL;
|
||||
char *content_path = NULL;
|
||||
rarch_system_info_t *system = runloop_get_system_info();
|
||||
rarch_system_info_t *system = (rarch_system_info_t*)data;
|
||||
const char *core_name = system ? system->info.library_name : NULL;
|
||||
const char *rarch_path_basename = path_get(RARCH_PATH_BASENAME);
|
||||
const char *game_name = path_basename(rarch_path_basename);
|
||||
@ -3520,7 +3535,9 @@ bool config_load_remap(const char *directory_input_remapping)
|
||||
".rmp",
|
||||
path_size);
|
||||
|
||||
#ifdef HAVE_CONFIGFILE
|
||||
input_remapping_set_defaults(false);
|
||||
#endif
|
||||
|
||||
/* If a game remap file exists, load it. */
|
||||
if ((new_conf = config_file_new_from_path_to_string(game_path)))
|
||||
@ -3599,20 +3616,6 @@ void config_parse_file(void *data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* config_load:
|
||||
*
|
||||
* Loads a config file and reads all the values into memory.
|
||||
*
|
||||
*/
|
||||
void config_load(void *data)
|
||||
{
|
||||
global_t *global = (global_t*)data;
|
||||
config_set_defaults(global);
|
||||
config_parse_file(global);
|
||||
}
|
||||
|
||||
/**
|
||||
* config_save_autoconf_profile:
|
||||
* @path : Path that shall be written to.
|
||||
@ -3621,6 +3624,11 @@ void config_load(void *data)
|
||||
**/
|
||||
bool config_save_autoconf_profile(const char *path, unsigned user)
|
||||
{
|
||||
static const char* invalid_filename_chars[] = {
|
||||
/* https://support.microsoft.com/en-us/help/905231/information-about-the-characters-that-you-cannot-use-in-site-names--fo */
|
||||
"~", "#", "%", "&", "*", "{", "}", "\\", ":", "[", "]", "?", "/", "|", "\'", "\"",
|
||||
NULL
|
||||
};
|
||||
unsigned i;
|
||||
config_file_t *conf = NULL;
|
||||
size_t path_size = PATH_MAX_LENGTH * sizeof(char);
|
||||
@ -3639,7 +3647,7 @@ bool config_save_autoconf_profile(const char *path, unsigned user)
|
||||
|
||||
for (i = 0; invalid_filename_chars[i]; i++)
|
||||
{
|
||||
while (1)
|
||||
for (;;)
|
||||
{
|
||||
char *tmp = strstr(path_new, invalid_filename_chars[i]);
|
||||
|
||||
@ -3953,7 +3961,7 @@ bool config_save_file(const char *path)
|
||||
*
|
||||
* Returns: true (1) on success, otherwise returns false (0).
|
||||
**/
|
||||
bool config_save_overrides(int override_type)
|
||||
bool config_save_overrides(enum override_type type, void *data)
|
||||
{
|
||||
size_t path_size = PATH_MAX_LENGTH * sizeof(char);
|
||||
int tmp_i = 0;
|
||||
@ -3988,7 +3996,7 @@ bool config_save_overrides(int override_type)
|
||||
int size_settings_size = sizeof(settings->sizes) / sizeof(settings->sizes.placeholder);
|
||||
int array_settings_size = sizeof(settings->arrays) / sizeof(settings->arrays.placeholder);
|
||||
int path_settings_size = sizeof(settings->paths) / sizeof(settings->paths.placeholder);
|
||||
rarch_system_info_t *system = runloop_get_system_info();
|
||||
rarch_system_info_t *system = (rarch_system_info_t*)data;
|
||||
const char *core_name = system ? system->info.library_name : NULL;
|
||||
const char *rarch_path_basename = path_get(RARCH_PATH_BASENAME);
|
||||
const char *game_name = path_basename(rarch_path_basename);
|
||||
@ -4143,23 +4151,21 @@ bool config_save_overrides(int override_type)
|
||||
|
||||
ret = false;
|
||||
|
||||
switch (override_type)
|
||||
switch (type)
|
||||
{
|
||||
case OVERRIDE_CORE:
|
||||
/* Create a new config file from core_path */
|
||||
RARCH_LOG ("[Overrides] path %s\n", core_path);
|
||||
ret = config_file_write(conf, core_path, true);
|
||||
break;
|
||||
case OVERRIDE_GAME:
|
||||
/* Create a new config file from core_path */
|
||||
RARCH_LOG ("[Overrides] path %s\n", game_path);
|
||||
ret = config_file_write(conf, game_path, true);
|
||||
break;
|
||||
case OVERRIDE_CONTENT_DIR:
|
||||
/* Create a new config file from content_path */
|
||||
RARCH_LOG ("[Overrides] path %s\n", content_path);
|
||||
ret = config_file_write(conf, content_path, true);
|
||||
break;
|
||||
case OVERRIDE_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -4229,3 +4235,4 @@ bool config_replace(bool config_replace_save_on_exit, char *path)
|
||||
|
||||
return task_push_start_dummy_core(&content_info);
|
||||
}
|
||||
#endif
|
||||
|
@ -817,6 +817,7 @@ const char *config_get_default_record(void);
|
||||
*/
|
||||
void config_parse_file(void *data);
|
||||
|
||||
#ifdef HAVE_CONFIGFILE
|
||||
/**
|
||||
* config_load_override:
|
||||
*
|
||||
@ -827,7 +828,7 @@ void config_parse_file(void *data);
|
||||
* Returns: false if there was an error or no action was performed.
|
||||
*
|
||||
*/
|
||||
bool config_load_override(void);
|
||||
bool config_load_override(void *data);
|
||||
|
||||
/**
|
||||
* config_unload_override:
|
||||
@ -847,7 +848,8 @@ bool config_unload_override(void);
|
||||
* Returns: false if there was an error or no action was performed.
|
||||
*
|
||||
*/
|
||||
bool config_load_remap(const char *directory_input_remapping);
|
||||
bool config_load_remap(const char *directory_input_remapping,
|
||||
void *data);
|
||||
|
||||
/**
|
||||
* config_save_autoconf_profile:
|
||||
@ -875,12 +877,13 @@ bool config_save_file(const char *path);
|
||||
*
|
||||
* Returns: true (1) on success, otherwise returns false (0).
|
||||
**/
|
||||
bool config_save_overrides(int override_type);
|
||||
bool config_save_overrides(enum override_type type, void *data);
|
||||
|
||||
/* Replaces currently loaded configuration file with
|
||||
* another one. Will load a dummy core to flush state
|
||||
* properly. */
|
||||
bool config_replace(bool config_save_on_exit, char *path);
|
||||
#endif
|
||||
|
||||
bool config_overlay_enable_default(void);
|
||||
|
||||
|
@ -21,14 +21,12 @@
|
||||
#include <file/file_path.h>
|
||||
#include <lists/dir_list.h>
|
||||
#include <file/archive_file.h>
|
||||
#include <streams/file_stream.h>
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "retroarch.h"
|
||||
#include "verbosity.h"
|
||||
|
||||
#include "core_info.h"
|
||||
#include "file_path_special.h"
|
||||
@ -610,10 +608,7 @@ static bool core_info_list_update_missing_firmware_internal(
|
||||
info->firmware[i].path, path_size);
|
||||
info->firmware[i].missing = !path_is_valid(path);
|
||||
if (info->firmware[i].missing && !info->firmware[i].optional)
|
||||
{
|
||||
*set_missing_bios = true;
|
||||
RARCH_WARN("Firmware missing: %s\n", info->firmware[i].path);
|
||||
}
|
||||
}
|
||||
|
||||
free(path);
|
||||
|
@ -497,9 +497,6 @@ static void seek_frame(int seek_frames)
|
||||
}
|
||||
audio_frames = frame_cnt * media.sample_rate / media.interpolate_fps;
|
||||
|
||||
tpool_wait(tpool);
|
||||
video_buffer_clear(video_buffer);
|
||||
|
||||
if (audio_decode_fifo)
|
||||
fifo_clear(audio_decode_fifo);
|
||||
scond_signal(fifo_decode_cond);
|
||||
@ -512,7 +509,6 @@ static void seek_frame(int seek_frames)
|
||||
}
|
||||
|
||||
slock_unlock(fifo_lock);
|
||||
|
||||
}
|
||||
|
||||
void CORE_PREFIX(retro_run)(void)
|
||||
@ -1363,7 +1359,8 @@ static void decode_video(AVCodecContext *ctx, AVPacket *pkt, size_t frame_size)
|
||||
{
|
||||
if (main_sleeping)
|
||||
{
|
||||
log_cb(RETRO_LOG_ERROR, "[FFMPEG] Thread: Video deadlock detected.\n");
|
||||
if (!do_seek)
|
||||
log_cb(RETRO_LOG_ERROR, "[FFMPEG] Thread: Video deadlock detected.\n");
|
||||
tpool_wait(tpool);
|
||||
video_buffer_clear(video_buffer);
|
||||
return;
|
||||
@ -1449,7 +1446,7 @@ static int16_t *decode_audio(AVCodecContext *ctx, AVPacket *pkt,
|
||||
return buffer;
|
||||
}
|
||||
|
||||
while(true)
|
||||
for (;;)
|
||||
{
|
||||
ret = avcodec_receive_frame(ctx, frame);
|
||||
if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
|
||||
|
@ -99,7 +99,7 @@ void packet_buffer_get_packet(packet_buffer_t *packet_buffer, AVPacket *pkt)
|
||||
{
|
||||
AVPacketNode_t *new_tail = NULL;
|
||||
|
||||
if (packet_buffer->tail == NULL)
|
||||
if (!packet_buffer->tail)
|
||||
return;
|
||||
|
||||
av_packet_move_ref(pkt, packet_buffer->tail->data);
|
||||
|
@ -19,10 +19,11 @@ static int exec_3dsx_actual(const char* path, const char** args, bool appendPath
|
||||
bool fileExists;
|
||||
bool inited;
|
||||
|
||||
if(path == NULL || path[0] == '\0'){
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
if (!path || path[0] == '\0')
|
||||
{
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
fileExists = stat(path, &sBuff) == 0;
|
||||
if(!fileExists){
|
||||
@ -80,4 +81,4 @@ int exec_3dsx(const char* path, const char** args){
|
||||
|
||||
int exec_3dsx_no_path_in_args(const char* path, const char** args){
|
||||
return exec_3dsx_actual(path, args, false/*appendPath*/);
|
||||
}
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ static int isCiaInstalled(u64 titleId, u16 version){
|
||||
return -1;
|
||||
|
||||
titleIds = malloc(titlesToRetrieve * sizeof(uint64_t));
|
||||
if(titleIds == NULL)
|
||||
if (!titleIds)
|
||||
return -1;
|
||||
|
||||
failed = AM_GetTitleList(&titlesRetrieved, MEDIATYPE_SD, titlesToRetrieve, titleIds);
|
||||
@ -116,10 +116,11 @@ int exec_cia(const char* path, const char** args){
|
||||
bool fileExists;
|
||||
bool inited;
|
||||
|
||||
if(path == NULL || path[0] == '\0'){
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
if (!path || path[0] == '\0')
|
||||
{
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
fileExists = stat(path, &sBuff) == 0;
|
||||
if(!fileExists){
|
||||
@ -127,7 +128,7 @@ int exec_cia(const char* path, const char** args){
|
||||
return -1;
|
||||
}
|
||||
else if(S_ISDIR(sBuff.st_mode)){
|
||||
errno = EINVAL;;
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,6 @@
|
||||
|
||||
#include "core_info.h"
|
||||
#include "database_info.h"
|
||||
#include "verbosity.h"
|
||||
|
||||
int database_info_build_query_enum(char *s, size_t len,
|
||||
enum database_query_type type,
|
||||
@ -105,7 +104,6 @@ int database_info_build_query_enum(char *s, size_t len,
|
||||
add_quotes = false;
|
||||
break;
|
||||
case DATABASE_QUERY_NONE:
|
||||
RARCH_LOG("Unknown type: %d\n", type);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -122,10 +120,6 @@ int database_info_build_query_enum(char *s, size_t len,
|
||||
|
||||
strlcat(s, "}", len);
|
||||
|
||||
#if 0
|
||||
RARCH_LOG("query: %s\n", s);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -289,10 +283,6 @@ static int database_cursor_iterate(libretrodb_cursor_t *cur,
|
||||
else if (string_is_equal(str, "md5"))
|
||||
db_info->md5 = bin_to_hex_alloc(
|
||||
(uint8_t*)val->val.binary.buff, val->val.binary.len);
|
||||
else
|
||||
{
|
||||
RARCH_LOG("Unknown key: %s\n", str);
|
||||
}
|
||||
}
|
||||
|
||||
rmsgpack_dom_value_free(&item);
|
||||
|
5
deps/glslang/glslang.cpp
vendored
5
deps/glslang/glslang.cpp
vendored
@ -15,8 +15,13 @@
|
||||
|
||||
#include "glslang.hpp"
|
||||
|
||||
#ifdef HAVE_BUILTINGLSLANG
|
||||
#include "glslang/glslang/Public/ShaderLang.h"
|
||||
#include "glslang/SPIRV/GlslangToSpv.h"
|
||||
#elif HAVE_GLSLANG
|
||||
#include <glslang/Public/ShaderLang.h>
|
||||
#include <glslang/SPIRV/GlslangToSpv.h>
|
||||
#endif
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
#include <cstring>
|
||||
|
@ -467,7 +467,7 @@ void discord_update(enum discord_presence presence, bool fuzzy_archive_match)
|
||||
discord_status = presence;
|
||||
}
|
||||
|
||||
void discord_init(const char *discord_app_id)
|
||||
void discord_init(const char *discord_app_id, char *args)
|
||||
{
|
||||
char full_path[PATH_MAX_LENGTH];
|
||||
char command[PATH_MAX_LENGTH];
|
||||
@ -489,17 +489,15 @@ void discord_init(const char *discord_app_id)
|
||||
|
||||
#ifdef _WIN32
|
||||
fill_pathname_application_path(full_path, sizeof(full_path));
|
||||
if (strstr(get_retroarch_launch_arguments(), full_path))
|
||||
strlcpy(command, get_retroarch_launch_arguments(), sizeof(command));
|
||||
if (strstr(args, full_path))
|
||||
strlcpy(command, args, sizeof(command));
|
||||
else
|
||||
{
|
||||
path_basedir(full_path);
|
||||
snprintf(command, sizeof(command), "%s%s",
|
||||
full_path, get_retroarch_launch_arguments());
|
||||
snprintf(command, sizeof(command), "%s%s", full_path, args);
|
||||
}
|
||||
#else
|
||||
snprintf(command, sizeof(command), "sh -c %s",
|
||||
get_retroarch_launch_arguments());
|
||||
snprintf(command, sizeof(command), "sh -c %s", args);
|
||||
#endif
|
||||
RARCH_LOG("[discord] registering startup command: %s\n", command);
|
||||
Discord_Register(discord_app_id, command);
|
||||
|
@ -41,7 +41,7 @@ typedef struct discord_userdata
|
||||
enum discord_presence status;
|
||||
} discord_userdata_t;
|
||||
|
||||
void discord_init(const char *discord_app_id);
|
||||
void discord_init(const char *discord_app_id, char *args);
|
||||
|
||||
void discord_shutdown(void);
|
||||
|
||||
|
@ -243,6 +243,61 @@ error:
|
||||
/* Setters */
|
||||
/***********/
|
||||
|
||||
/* Generates an appropriate log/notification message
|
||||
* for a disk index change event */
|
||||
static void disk_control_get_index_set_msg(
|
||||
disk_control_interface_t *disk_control,
|
||||
unsigned num_images, unsigned index, bool success,
|
||||
unsigned *msg_duration, char *msg, size_t len)
|
||||
{
|
||||
bool has_label = false;
|
||||
char image_label[PATH_MAX_LENGTH];
|
||||
|
||||
image_label[0] = '\0';
|
||||
|
||||
if (!disk_control || !msg_duration || !msg || len < 1)
|
||||
return;
|
||||
|
||||
/* Attempt to get image label */
|
||||
if (index < num_images)
|
||||
{
|
||||
disk_control_get_image_label(
|
||||
disk_control, index, image_label, sizeof(image_label));
|
||||
has_label = !string_is_empty(image_label);
|
||||
}
|
||||
|
||||
/* Get message duration
|
||||
* > Default is 60
|
||||
* > If a label is shown, then increase duration by 50%
|
||||
* > For errors, duration is always 180 */
|
||||
*msg_duration = success ?
|
||||
(has_label ? 90 : 60) :
|
||||
180;
|
||||
|
||||
/* Check whether image was inserted or removed */
|
||||
if (index < num_images)
|
||||
{
|
||||
if (has_label)
|
||||
snprintf(
|
||||
msg, len, "%s: %u/%u - %s",
|
||||
success ? msg_hash_to_str(MSG_SETTING_DISK_IN_TRAY) :
|
||||
msg_hash_to_str(MSG_FAILED_TO_SET_DISK),
|
||||
index + 1, num_images, image_label);
|
||||
else
|
||||
snprintf(
|
||||
msg, len, "%s: %u/%u",
|
||||
success ? msg_hash_to_str(MSG_SETTING_DISK_IN_TRAY) :
|
||||
msg_hash_to_str(MSG_FAILED_TO_SET_DISK),
|
||||
index + 1, num_images);
|
||||
}
|
||||
else
|
||||
strlcpy(
|
||||
msg,
|
||||
success ? msg_hash_to_str(MSG_REMOVED_DISK_FROM_TRAY) :
|
||||
msg_hash_to_str(MSG_FAILED_TO_REMOVE_DISK_FROM_TRAY),
|
||||
len);
|
||||
}
|
||||
|
||||
/* Sets the eject state of the virtual disk tray */
|
||||
bool disk_control_set_eject_state(
|
||||
disk_control_interface_t *disk_control,
|
||||
@ -301,9 +356,10 @@ bool disk_control_set_index(
|
||||
disk_control_interface_t *disk_control,
|
||||
unsigned index, bool verbose)
|
||||
{
|
||||
bool error = false;
|
||||
unsigned num_images = 0;
|
||||
char msg[128];
|
||||
bool error = false;
|
||||
unsigned num_images = 0;
|
||||
unsigned msg_duration = 0;
|
||||
char msg[PATH_MAX_LENGTH];
|
||||
|
||||
msg[0] = '\0';
|
||||
|
||||
@ -319,37 +375,18 @@ bool disk_control_set_index(
|
||||
if (!disk_control->cb.get_eject_state())
|
||||
return false;
|
||||
|
||||
/* Get current number of disk images */
|
||||
num_images = disk_control->cb.get_num_images();
|
||||
|
||||
if (disk_control->cb.set_image_index(index))
|
||||
{
|
||||
if (index < num_images)
|
||||
snprintf(
|
||||
msg, sizeof(msg), "%s: %u/%u",
|
||||
msg_hash_to_str(MSG_SETTING_DISK_IN_TRAY),
|
||||
index + 1, num_images);
|
||||
else
|
||||
strlcpy(
|
||||
msg,
|
||||
msg_hash_to_str(MSG_REMOVED_DISK_FROM_TRAY),
|
||||
sizeof(msg));
|
||||
}
|
||||
else
|
||||
{
|
||||
error = true;
|
||||
/* Perform 'set index' action */
|
||||
error = !disk_control->cb.set_image_index(index);
|
||||
|
||||
if (index < num_images)
|
||||
snprintf(
|
||||
msg, sizeof(msg), "%s %u/%u",
|
||||
msg_hash_to_str(MSG_FAILED_TO_SET_DISK),
|
||||
index + 1, num_images);
|
||||
else
|
||||
strlcpy(
|
||||
msg,
|
||||
msg_hash_to_str(MSG_FAILED_TO_REMOVE_DISK_FROM_TRAY),
|
||||
sizeof(msg));
|
||||
}
|
||||
/* Get log/notification message */
|
||||
disk_control_get_index_set_msg(
|
||||
disk_control, num_images, index, !error,
|
||||
&msg_duration, msg, sizeof(msg));
|
||||
|
||||
/* Output log/notification message */
|
||||
if (!string_is_empty(msg))
|
||||
{
|
||||
if (error)
|
||||
@ -360,7 +397,7 @@ bool disk_control_set_index(
|
||||
/* Errors should always be displayed */
|
||||
if (verbose || error)
|
||||
runloop_msg_queue_push(
|
||||
msg, 1, error ? 180 : 60,
|
||||
msg, 1, msg_duration,
|
||||
true, NULL,
|
||||
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
}
|
||||
@ -724,20 +761,20 @@ bool disk_control_verify_initial_index(disk_control_interface_t *disk_control)
|
||||
* is available */
|
||||
if (disk_control->initial_num_images > 1)
|
||||
{
|
||||
char msg[128];
|
||||
unsigned msg_duration = 0;
|
||||
char msg[PATH_MAX_LENGTH];
|
||||
|
||||
msg[0] = '\0';
|
||||
|
||||
snprintf(
|
||||
msg, sizeof(msg), "%s: %u/%u",
|
||||
msg_hash_to_str(MSG_SETTING_DISK_IN_TRAY),
|
||||
image_index + 1, disk_control->initial_num_images);
|
||||
disk_control_get_index_set_msg(
|
||||
disk_control, disk_control->initial_num_images, image_index, true,
|
||||
&msg_duration, msg, sizeof(msg));
|
||||
|
||||
RARCH_LOG("%s\n", msg);
|
||||
|
||||
runloop_msg_queue_push(
|
||||
msg,
|
||||
0, 60,
|
||||
0, msg_duration,
|
||||
true, NULL,
|
||||
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
}
|
||||
|
1
driver.h
1
driver.h
@ -57,7 +57,6 @@ enum
|
||||
enum driver_ctl_state
|
||||
{
|
||||
RARCH_DRIVER_CTL_NONE = 0,
|
||||
RARCH_DRIVER_CTL_DEINIT,
|
||||
|
||||
/* Sets monitor refresh rate to new value by calling
|
||||
* video_monitor_set_refresh_rate(). Subsequently
|
||||
|
@ -60,32 +60,33 @@
|
||||
static enum frontend_fork ctr_fork_mode = FRONTEND_FORK_NONE;
|
||||
static const char* elf_path_cst = "sdmc:/retroarch/retroarch.3dsx";
|
||||
|
||||
static void get_first_valid_core(char* path_return)
|
||||
#ifdef IS_SALAMANDER
|
||||
static void get_first_valid_core(char* path_return, size_t len)
|
||||
{
|
||||
DIR* dir;
|
||||
struct dirent* ent;
|
||||
const char* extension = envIsHomebrew() ? ".3dsx" : ".cia";
|
||||
DIR *dir = opendir("sdmc:/retroarch/cores");
|
||||
|
||||
path_return[0] = '\0';
|
||||
path_return[0] = '\0';
|
||||
|
||||
dir = opendir("sdmc:/retroarch/cores");
|
||||
if (dir != NULL)
|
||||
if (dir)
|
||||
{
|
||||
while (ent = readdir(dir))
|
||||
{
|
||||
if (ent == NULL)
|
||||
if (!ent)
|
||||
break;
|
||||
if (strlen(ent->d_name) > strlen(extension) && !strcmp(ent->d_name + strlen(ent->d_name) - strlen(extension), extension))
|
||||
if (strlen(ent->d_name) > strlen(extension)
|
||||
&& !strcmp(ent->d_name + strlen(ent->d_name) - strlen(extension), extension))
|
||||
{
|
||||
strcpy(path_return, "sdmc:/retroarch/cores");
|
||||
strcat(path_return, "/");
|
||||
strcat(path_return, ent->d_name);
|
||||
strlcpy(path_return, "sdmc:/retroarch/cores/", len);
|
||||
strlcat(path_return, ent->d_name, len);
|
||||
break;
|
||||
}
|
||||
}
|
||||
closedir(dir);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static void frontend_ctr_get_environment_settings(int* argc, char* argv[],
|
||||
void* args, void* params_data)
|
||||
@ -212,7 +213,7 @@ static void frontend_ctr_exec(const char* path, bool should_load_game)
|
||||
#ifndef IS_SALAMANDER
|
||||
if (should_load_game && !path_is_empty(RARCH_PATH_CONTENT))
|
||||
{
|
||||
strcpy(game_path, path_get(RARCH_PATH_CONTENT));
|
||||
strlcpy(game_path, path_get(RARCH_PATH_CONTENT), sizeof(game_path));
|
||||
arg_data[args] = game_path;
|
||||
arg_data[args + 1] = NULL;
|
||||
args++;
|
||||
@ -233,7 +234,7 @@ static void frontend_ctr_exec(const char* path, bool should_load_game)
|
||||
core_path[0] = '\0';
|
||||
|
||||
/* find first valid core and load it if the target core doesnt exist */
|
||||
get_first_valid_core(&core_path[0]);
|
||||
get_first_valid_core(&core_path[0], sizeof(core_path));
|
||||
|
||||
if (core_path[0] == '\0')
|
||||
{
|
||||
@ -299,7 +300,7 @@ static bool frontend_ctr_set_fork(enum frontend_fork fork_mode)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void frontend_ctr_exitspawn(char* s, size_t len)
|
||||
static void frontend_ctr_exitspawn(char* s, size_t len, char *args)
|
||||
{
|
||||
bool should_load_game = false;
|
||||
#ifndef IS_SALAMANDER
|
||||
|
@ -91,7 +91,7 @@ static void emscripten_mainloop(void)
|
||||
|
||||
void cmd_savefiles(void)
|
||||
{
|
||||
event_save_files();
|
||||
command_event(CMD_EVENT_SAVE_FILES, NULL);
|
||||
}
|
||||
|
||||
void cmd_save_state(void)
|
||||
|
@ -166,7 +166,7 @@ static void frontend_gx_get_environment_settings(
|
||||
|
||||
/* This situation can happen on some loaders so we really need some
|
||||
fake args or else retroarch will just crash on parsing NULL pointers */
|
||||
if(*argc == 0 || argv == NULL)
|
||||
if(*argc == 0 || !argv)
|
||||
{
|
||||
struct rarch_main_wrap *args = (struct rarch_main_wrap*)params_data;
|
||||
if (args)
|
||||
@ -366,7 +366,7 @@ static void frontend_gx_exec(const char *path, bool should_load_game)
|
||||
#endif
|
||||
}
|
||||
|
||||
static void frontend_gx_exitspawn(char *s, size_t len)
|
||||
static void frontend_gx_exitspawn(char *s, size_t len, char *args)
|
||||
{
|
||||
bool should_load_game = false;
|
||||
#if defined(IS_SALAMANDER)
|
||||
|
@ -293,7 +293,7 @@ static bool frontend_orbis_set_fork(enum frontend_fork fork_mode)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void frontend_orbis_exitspawn(char *s, size_t len)
|
||||
static void frontend_orbis_exitspawn(char *s, size_t len, char *args)
|
||||
{
|
||||
bool should_load_game = false;
|
||||
#ifndef IS_SALAMANDER
|
||||
|
@ -298,9 +298,9 @@ static bool frontend_ps2_set_fork(enum frontend_fork fork_mode)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void frontend_ps2_exitspawn(char *core_path, size_t core_path_size)
|
||||
static void frontend_ps2_exitspawn(char *s, size_t len, char *args)
|
||||
{
|
||||
bool should_load_game = false;
|
||||
bool should_load_content = false;
|
||||
#ifndef IS_SALAMANDER
|
||||
if (ps2_fork_mode == FRONTEND_FORK_NONE)
|
||||
return;
|
||||
@ -308,14 +308,14 @@ static void frontend_ps2_exitspawn(char *core_path, size_t core_path_size)
|
||||
switch (ps2_fork_mode)
|
||||
{
|
||||
case FRONTEND_FORK_CORE_WITH_ARGS:
|
||||
should_load_game = true;
|
||||
should_load_content = true;
|
||||
break;
|
||||
case FRONTEND_FORK_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
frontend_ps2_exec(core_path, should_load_game);
|
||||
frontend_ps2_exec(s, should_load_content);
|
||||
}
|
||||
|
||||
static void frontend_ps2_shutdown(bool unused)
|
||||
|
@ -465,7 +465,7 @@ static void frontend_ps3_exec(const char *path, bool should_load_game)
|
||||
#endif
|
||||
}
|
||||
|
||||
static void frontend_ps3_exitspawn(char *core_path, size_t core_path_size)
|
||||
static void frontend_ps3_exitspawn(char *s, size_t len, char *args)
|
||||
{
|
||||
#ifdef HAVE_RARCH_EXEC
|
||||
bool should_load_game = false;
|
||||
@ -495,7 +495,7 @@ static void frontend_ps3_exitspawn(char *core_path, size_t core_path_size)
|
||||
}
|
||||
#endif
|
||||
|
||||
frontend_ps3_exec(core_path, should_load_game);
|
||||
frontend_ps3_exec(s, should_load_game);
|
||||
|
||||
#ifdef IS_SALAMANDER
|
||||
cellSysmoduleUnloadModule(CELL_SYSMODULE_SYSUTIL_GAME);
|
||||
|
@ -374,9 +374,9 @@ static bool frontend_psp_set_fork(enum frontend_fork fork_mode)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void frontend_psp_exitspawn(char *s, size_t len)
|
||||
static void frontend_psp_exitspawn(char *s, size_t len, char *args)
|
||||
{
|
||||
bool should_load_game = false;
|
||||
bool should_load_content = false;
|
||||
#ifndef IS_SALAMANDER
|
||||
if (psp_fork_mode == FRONTEND_FORK_NONE)
|
||||
return;
|
||||
@ -384,14 +384,14 @@ static void frontend_psp_exitspawn(char *s, size_t len)
|
||||
switch (psp_fork_mode)
|
||||
{
|
||||
case FRONTEND_FORK_CORE_WITH_ARGS:
|
||||
should_load_game = true;
|
||||
should_load_content = true;
|
||||
break;
|
||||
case FRONTEND_FORK_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
frontend_psp_exec(s, should_load_game);
|
||||
frontend_psp_exec(s, should_load_content);
|
||||
}
|
||||
|
||||
static int frontend_psp_get_rating(void)
|
||||
|
@ -145,7 +145,7 @@ static void on_applet_hook(AppletHookType hook, void *param)
|
||||
#endif /* HAVE_LIBNX */
|
||||
|
||||
#ifdef IS_SALAMANDER
|
||||
static void get_first_valid_core(char *path_return)
|
||||
static void get_first_valid_core(char *path_return, size_t len)
|
||||
{
|
||||
DIR *dir;
|
||||
struct dirent *ent;
|
||||
@ -162,9 +162,9 @@ static void get_first_valid_core(char *path_return)
|
||||
break;
|
||||
if (strlen(ent->d_name) > strlen(extension) && !strcmp(ent->d_name + strlen(ent->d_name) - strlen(extension), extension))
|
||||
{
|
||||
strcpy(path_return, SD_PREFIX "/retroarch/cores");
|
||||
strcat(path_return, "/");
|
||||
strcat(path_return, ent->d_name);
|
||||
strlcpy(path_return, SD_PREFIX "/retroarch/cores", len);
|
||||
strlcat(path_return, "/", len);
|
||||
strlcat(path_return, ent->d_name, len);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -332,7 +332,7 @@ static void frontend_switch_exec(const char *path, bool should_load_game)
|
||||
#ifndef IS_SALAMANDER
|
||||
if (should_load_game && !path_is_empty(RARCH_PATH_CONTENT))
|
||||
{
|
||||
strcpy(game_path, path_get(RARCH_PATH_CONTENT));
|
||||
strlcpy(game_path, path_get(RARCH_PATH_CONTENT), sizeof(game_path));
|
||||
arg_data[args] = game_path;
|
||||
arg_data[args + 1] = NULL;
|
||||
args++;
|
||||
@ -351,7 +351,7 @@ static void frontend_switch_exec(const char *path, bool should_load_game)
|
||||
char core_path[PATH_MAX];
|
||||
|
||||
/* find first valid core and load it if the target core doesnt exist */
|
||||
get_first_valid_core(&core_path[0]);
|
||||
get_first_valid_core(&core_path[0], PATH_MAX);
|
||||
|
||||
if (core_path[0] == '\0')
|
||||
svcExitProcess();
|
||||
@ -395,9 +395,9 @@ static bool frontend_switch_set_fork(enum frontend_fork fork_mode)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void frontend_switch_exitspawn(char *s, size_t len)
|
||||
static void frontend_switch_exitspawn(char *s, size_t len, char *args)
|
||||
{
|
||||
bool should_load_game = false;
|
||||
bool should_load_content = false;
|
||||
#ifndef IS_SALAMANDER
|
||||
if (switch_fork_mode == FRONTEND_FORK_NONE)
|
||||
return;
|
||||
@ -405,13 +405,13 @@ static void frontend_switch_exitspawn(char *s, size_t len)
|
||||
switch (switch_fork_mode)
|
||||
{
|
||||
case FRONTEND_FORK_CORE_WITH_ARGS:
|
||||
should_load_game = true;
|
||||
should_load_content = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
frontend_switch_exec(s, should_load_game);
|
||||
frontend_switch_exec(s, should_load_content);
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
@ -2066,7 +2066,7 @@ static bool frontend_unix_set_fork(enum frontend_fork fork_mode)
|
||||
return true;
|
||||
}
|
||||
|
||||
static void frontend_unix_exec(const char *path, bool should_load_game)
|
||||
static void frontend_unix_exec(const char *path, bool should_load_content)
|
||||
{
|
||||
char *newargv[] = { NULL, NULL };
|
||||
size_t len = strlen(path);
|
||||
@ -2078,9 +2078,9 @@ static void frontend_unix_exec(const char *path, bool should_load_game)
|
||||
execv(path, newargv);
|
||||
}
|
||||
|
||||
static void frontend_unix_exitspawn(char *core_path, size_t core_path_size)
|
||||
static void frontend_unix_exitspawn(char *s, size_t len, char *args)
|
||||
{
|
||||
bool should_load_game = false;
|
||||
bool should_load_content = false;
|
||||
|
||||
if (unix_fork_mode == FRONTEND_FORK_NONE)
|
||||
return;
|
||||
@ -2088,14 +2088,14 @@ static void frontend_unix_exitspawn(char *core_path, size_t core_path_size)
|
||||
switch (unix_fork_mode)
|
||||
{
|
||||
case FRONTEND_FORK_CORE_WITH_ARGS:
|
||||
should_load_game = true;
|
||||
should_load_content = true;
|
||||
break;
|
||||
case FRONTEND_FORK_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
frontend_unix_exec(core_path, should_load_game);
|
||||
frontend_unix_exec(s, should_load_content);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -148,7 +148,7 @@ void system_exec_wii(const char *_path, bool should_load_game)
|
||||
RARCH_LOG("Attempt to load executable: [%s]\n", path);
|
||||
|
||||
fp = fopen(path, "rb");
|
||||
if (fp == NULL)
|
||||
if (!fp)
|
||||
{
|
||||
RARCH_ERR("Could not open DOL file %s.\n", path);
|
||||
goto exit;
|
||||
|
@ -69,10 +69,11 @@
|
||||
static enum frontend_fork wiiu_fork_mode = FRONTEND_FORK_NONE;
|
||||
static const char *elf_path_cst = WIIU_SD_PATH "retroarch/retroarch.elf";
|
||||
|
||||
static bool exists(char *path) {
|
||||
static bool exists(char *path)
|
||||
{
|
||||
struct stat stat_buf = {0};
|
||||
|
||||
if(!path)
|
||||
if (!path)
|
||||
return false;
|
||||
|
||||
return (stat(path, &stat_buf) == 0);
|
||||
@ -85,7 +86,7 @@ static void fix_asset_directory(void) {
|
||||
fill_pathname_join(src_path_buf, g_defaults.dirs[DEFAULT_DIR_PORT], "media", sizeof(g_defaults.dirs[DEFAULT_DIR_PORT]));
|
||||
fill_pathname_join(dst_path_buf, g_defaults.dirs[DEFAULT_DIR_PORT], "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_PORT]));
|
||||
|
||||
if(exists(dst_path_buf) || !exists(src_path_buf))
|
||||
if (exists(dst_path_buf) || !exists(src_path_buf))
|
||||
return;
|
||||
|
||||
rename(src_path_buf, dst_path_buf);
|
||||
@ -191,7 +192,7 @@ static int frontend_wiiu_parse_drive_list(void *data, bool load_content)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void frontend_wiiu_exec(const char *path, bool should_load_game)
|
||||
static void frontend_wiiu_exec(const char *path, bool should_load_content)
|
||||
{
|
||||
|
||||
struct
|
||||
@ -204,7 +205,7 @@ static void frontend_wiiu_exec(const char *path, bool should_load_game)
|
||||
int len = 0;
|
||||
param->argc = 0;
|
||||
|
||||
if(!path || !*path)
|
||||
if (!path || !*path)
|
||||
{
|
||||
RARCH_LOG("No executable path provided, cannot Restart\n");
|
||||
}
|
||||
@ -218,7 +219,7 @@ static void frontend_wiiu_exec(const char *path, bool should_load_game)
|
||||
|
||||
RARCH_LOG("Attempt to load core: [%s].\n", path);
|
||||
#ifndef IS_SALAMANDER
|
||||
if (should_load_game && !path_is_empty(RARCH_PATH_CONTENT))
|
||||
if (should_load_content && !path_is_empty(RARCH_PATH_CONTENT))
|
||||
{
|
||||
strcpy(param->args + len, path_get(RARCH_PATH_CONTENT));
|
||||
param->argv[param->argc] = param->args + len;
|
||||
@ -272,9 +273,9 @@ static bool frontend_wiiu_set_fork(enum frontend_fork fork_mode)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void frontend_wiiu_exitspawn(char *s, size_t len)
|
||||
static void frontend_wiiu_exitspawn(char *s, size_t len, char *args)
|
||||
{
|
||||
bool should_load_game = false;
|
||||
bool should_load_content = false;
|
||||
#ifndef IS_SALAMANDER
|
||||
if (wiiu_fork_mode == FRONTEND_FORK_NONE)
|
||||
return;
|
||||
@ -282,13 +283,13 @@ static void frontend_wiiu_exitspawn(char *s, size_t len)
|
||||
switch (wiiu_fork_mode)
|
||||
{
|
||||
case FRONTEND_FORK_CORE_WITH_ARGS:
|
||||
should_load_game = true;
|
||||
should_load_content = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
frontend_wiiu_exec(s, should_load_game);
|
||||
frontend_wiiu_exec(s, should_load_content);
|
||||
}
|
||||
|
||||
frontend_ctx_driver_t frontend_ctx_wiiu =
|
||||
@ -389,7 +390,7 @@ int main(int argc, char **argv)
|
||||
static void get_arguments(int *argc, char ***argv)
|
||||
{
|
||||
DEBUG_VAR(ARGV_PTR);
|
||||
if(ARGV_PTR && ((u32)ARGV_PTR < 0x01000000))
|
||||
if (ARGV_PTR && ((u32)ARGV_PTR < 0x01000000))
|
||||
{
|
||||
struct
|
||||
{
|
||||
@ -397,7 +398,8 @@ static void get_arguments(int *argc, char ***argv)
|
||||
u32 argc;
|
||||
char *argv[3];
|
||||
} *param = ARGV_PTR;
|
||||
if(param->magic == ARGV_MAGIC)
|
||||
|
||||
if (param->magic == ARGV_MAGIC)
|
||||
{
|
||||
*argc = param->argc;
|
||||
*argv = param->argv;
|
||||
@ -435,9 +437,9 @@ static void main_loop(void)
|
||||
OSTime start_time;
|
||||
int status;
|
||||
|
||||
do
|
||||
for (;;)
|
||||
{
|
||||
if(video_driver_get_ptr(false))
|
||||
if (video_driver_get_ptr(false))
|
||||
{
|
||||
start_time = OSGetSystemTime();
|
||||
task_queue_wait(swap_is_pending, &start_time);
|
||||
@ -449,7 +451,7 @@ static void main_loop(void)
|
||||
|
||||
if (status == -1)
|
||||
break;
|
||||
} while(true);
|
||||
}
|
||||
}
|
||||
|
||||
static void SaveCallback(void)
|
||||
@ -488,14 +490,14 @@ int getBroadcastAddress(ACIpAddress *broadcast)
|
||||
ACIpAddress myIp, mySubnet;
|
||||
ACResult result;
|
||||
|
||||
if(broadcast == NULL)
|
||||
if (!broadcast)
|
||||
return -1;
|
||||
|
||||
result = ACGetAssignedAddress(&myIp);
|
||||
if(result < 0)
|
||||
if (result < 0)
|
||||
return -1;
|
||||
result = ACGetAssignedSubnet(&mySubnet);
|
||||
if(result < 0)
|
||||
if (result < 0)
|
||||
return -1;
|
||||
|
||||
*broadcast = myIp | (~mySubnet);
|
||||
@ -520,7 +522,7 @@ static void deinit_logging(void)
|
||||
static int broadcast_init(int port)
|
||||
{
|
||||
ACIpAddress broadcast_ip;
|
||||
if(getBroadcastAddress(&broadcast_ip) < 0)
|
||||
if (getBroadcastAddress(&broadcast_ip) < 0)
|
||||
return -1;
|
||||
|
||||
memset(&broadcast, 0, sizeof(broadcast));
|
||||
@ -535,15 +537,15 @@ static void wiiu_log_init(int port)
|
||||
{
|
||||
wiiu_log_lock = 0;
|
||||
|
||||
if(wiiu_log_socket >= 0)
|
||||
if (wiiu_log_socket >= 0)
|
||||
return;
|
||||
|
||||
if(broadcast_init(port) < 0)
|
||||
if (broadcast_init(port) < 0)
|
||||
return;
|
||||
|
||||
wiiu_log_socket = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
if(wiiu_log_socket < 0)
|
||||
if (wiiu_log_socket < 0)
|
||||
return;
|
||||
|
||||
struct sockaddr_in connect_addr;
|
||||
@ -552,7 +554,7 @@ static void wiiu_log_init(int port)
|
||||
connect_addr.sin_port = 0;
|
||||
connect_addr.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||
|
||||
if( bind(wiiu_log_socket, (struct sockaddr *)&connect_addr, sizeof(connect_addr)) < 0)
|
||||
if ( bind(wiiu_log_socket, (struct sockaddr *)&connect_addr, sizeof(connect_addr)) < 0)
|
||||
{
|
||||
socketclose(wiiu_log_socket);
|
||||
wiiu_log_socket = -1;
|
||||
@ -562,7 +564,7 @@ static void wiiu_log_init(int port)
|
||||
|
||||
static void wiiu_log_deinit(void)
|
||||
{
|
||||
if(wiiu_log_socket >= 0)
|
||||
if (wiiu_log_socket >= 0)
|
||||
{
|
||||
socketclose(wiiu_log_socket);
|
||||
wiiu_log_socket = -1;
|
||||
@ -604,7 +606,7 @@ void net_print_exp(const char *str)
|
||||
|
||||
static ssize_t wiiu_log_write(struct _reent *r, void *fd, const char *ptr, size_t len)
|
||||
{
|
||||
if( wiiu_log_socket < 0)
|
||||
if (wiiu_log_socket < 0)
|
||||
return len;
|
||||
|
||||
while(wiiu_log_lock)
|
||||
@ -620,7 +622,7 @@ static ssize_t wiiu_log_write(struct _reent *r, void *fd, const char *ptr, size_
|
||||
int block = remaining < DGRAM_SIZE ? remaining : DGRAM_SIZE;
|
||||
sent = sendto(wiiu_log_socket, ptr, block, 0, (struct sockaddr *)&broadcast, sizeof(broadcast));
|
||||
|
||||
if(sent < 0)
|
||||
if (sent < 0)
|
||||
break;
|
||||
|
||||
remaining -= sent;
|
||||
|
@ -45,7 +45,6 @@
|
||||
#include "../frontend_driver.h"
|
||||
#include "../../configuration.h"
|
||||
#include "../../defaults.h"
|
||||
#include "../../retroarch.h"
|
||||
#include "../../verbosity.h"
|
||||
#include "../../ui/drivers/ui_win32.h"
|
||||
#include "../../paths.h"
|
||||
@ -69,9 +68,8 @@ static char win32_cpu_model_name[64] = {0};
|
||||
|
||||
VOID (WINAPI *DragAcceptFiles_func)(HWND, BOOL);
|
||||
|
||||
static bool dwm_composition_disabled;
|
||||
|
||||
static bool console_needs_free;
|
||||
static bool dwm_composition_disabled = false;
|
||||
static bool console_needs_free = false;
|
||||
|
||||
#if defined(HAVE_LANGEXTRA) && !defined(_XBOX)
|
||||
#if (defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0500) || !defined(_MSC_VER)
|
||||
@ -676,7 +674,7 @@ enum retro_language frontend_win32_get_user_language(void)
|
||||
#if defined(_WIN32) && !defined(_XBOX)
|
||||
enum frontend_fork win32_fork_mode;
|
||||
|
||||
static void frontend_win32_respawn(char *s, size_t len)
|
||||
static void frontend_win32_respawn(char *s, size_t len, char *args)
|
||||
{
|
||||
STARTUPINFO si;
|
||||
PROCESS_INFORMATION pi;
|
||||
@ -685,22 +683,21 @@ static void frontend_win32_respawn(char *s, size_t len)
|
||||
if (win32_fork_mode != FRONTEND_FORK_RESTART)
|
||||
return;
|
||||
|
||||
memset(&si, 0, sizeof(si));
|
||||
si.cb = sizeof(si);
|
||||
memset(&pi, 0, sizeof(pi));
|
||||
|
||||
fill_pathname_application_path(executable_path,
|
||||
sizeof(executable_path));
|
||||
path_set(RARCH_PATH_CORE, executable_path);
|
||||
RARCH_LOG("Restarting RetroArch with commandline: %s and %s\n",
|
||||
executable_path, get_retroarch_launch_arguments());
|
||||
executable_path, args);
|
||||
|
||||
if(!CreateProcess( executable_path, get_retroarch_launch_arguments(),
|
||||
memset(&si, 0, sizeof(si));
|
||||
si.cb = sizeof(si);
|
||||
memset(&pi, 0, sizeof(pi));
|
||||
|
||||
if(!CreateProcess( executable_path, args,
|
||||
NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
|
||||
{
|
||||
RARCH_LOG("Failed to restart RetroArch\n");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
static bool frontend_win32_set_fork(enum frontend_fork fork_mode)
|
||||
|
@ -251,7 +251,7 @@ static void frontend_xdk_init(void *data)
|
||||
#endif
|
||||
}
|
||||
|
||||
static void frontend_xdk_exec(const char *path, bool should_load_game)
|
||||
static void frontend_xdk_exec(const char *path, bool should_load_content)
|
||||
{
|
||||
#ifndef IS_SALAMANDER
|
||||
bool original_verbose = verbosity_is_enabled();
|
||||
@ -261,7 +261,6 @@ static void frontend_xdk_exec(const char *path, bool should_load_game)
|
||||
#elif defined(_XBOX360)
|
||||
char game_path[1024] = {0};
|
||||
#endif
|
||||
(void)should_load_game;
|
||||
|
||||
#ifdef IS_SALAMANDER
|
||||
if (!string_is_empty(path))
|
||||
@ -270,13 +269,13 @@ static void frontend_xdk_exec(const char *path, bool should_load_game)
|
||||
#if defined(_XBOX1)
|
||||
memset(&ptr, 0, sizeof(ptr));
|
||||
|
||||
if (should_load_game && !path_is_empty(RARCH_PATH_CONTENT))
|
||||
if (should_load_content && !path_is_empty(RARCH_PATH_CONTENT))
|
||||
snprintf((char*)ptr.Data, sizeof(ptr.Data), "%s", path_get(RARCH_PATH_CONTENT));
|
||||
|
||||
if (!string_is_empty(path))
|
||||
XLaunchNewImage(path, !string_is_empty((const char*)ptr.Data) ? &ptr : NULL);
|
||||
#elif defined(_XBOX360)
|
||||
if (should_load_game && !path_is_empty(RARCH_PATH_CONTENT))
|
||||
if (should_load_content && !path_is_empty(RARCH_PATH_CONTENT))
|
||||
{
|
||||
strlcpy(game_path, path_get(RARCH_PATH_CONTENT), sizeof(game_path));
|
||||
XSetLaunchData(game_path, MAX_LAUNCH_DATA_SIZE);
|
||||
@ -322,9 +321,9 @@ static bool frontend_xdk_set_fork(enum frontend_fork fork_mode)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void frontend_xdk_exitspawn(char *s, size_t len)
|
||||
static void frontend_xdk_exitspawn(char *s, size_t len, char *args)
|
||||
{
|
||||
bool should_load_game = false;
|
||||
bool should_load_content = false;
|
||||
#ifndef IS_SALAMANDER
|
||||
if (xdk_fork_mode == FRONTEND_FORK_NONE)
|
||||
return;
|
||||
@ -332,14 +331,14 @@ static void frontend_xdk_exitspawn(char *s, size_t len)
|
||||
switch (xdk_fork_mode)
|
||||
{
|
||||
case FRONTEND_FORK_CORE_WITH_ARGS:
|
||||
should_load_game = true;
|
||||
should_load_content = true;
|
||||
break;
|
||||
case FRONTEND_FORK_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
frontend_xdk_exec(s, should_load_game);
|
||||
frontend_xdk_exec(s, should_load_content);
|
||||
}
|
||||
|
||||
static int frontend_xdk_get_rating(void)
|
||||
|
@ -14,10 +14,12 @@
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <compat/strl.h>
|
||||
#include <string/stdstring.h>
|
||||
#include <retro_miscellaneous.h>
|
||||
#include <libretro.h>
|
||||
|
||||
#if defined(_3DS)
|
||||
@ -366,12 +368,12 @@ const struct video_driver *frontend_driver_get_video_driver(void)
|
||||
return frontend->get_video_driver();
|
||||
}
|
||||
|
||||
void frontend_driver_exitspawn(char *s, size_t len)
|
||||
void frontend_driver_exitspawn(char *s, size_t len, char *args)
|
||||
{
|
||||
frontend_ctx_driver_t *frontend = frontend_get_ptr();
|
||||
if (!frontend || !frontend->exitspawn)
|
||||
return;
|
||||
frontend->exitspawn(s, len);
|
||||
frontend->exitspawn(s, len, args);
|
||||
}
|
||||
|
||||
void frontend_driver_deinit(void *args)
|
||||
@ -398,6 +400,48 @@ enum frontend_architecture frontend_driver_get_cpu_architecture(void)
|
||||
return frontend->get_architecture();
|
||||
}
|
||||
|
||||
const void *frontend_driver_get_cpu_architecture_str(
|
||||
char *architecture, size_t size)
|
||||
{
|
||||
const frontend_ctx_driver_t
|
||||
*frontend = frontend_get_ptr();
|
||||
enum frontend_architecture arch = frontend_driver_get_cpu_architecture();
|
||||
|
||||
switch (arch)
|
||||
{
|
||||
case FRONTEND_ARCH_X86:
|
||||
strlcpy(architecture, "x86", size);
|
||||
break;
|
||||
case FRONTEND_ARCH_X86_64:
|
||||
strlcpy(architecture, "x64", size);
|
||||
break;
|
||||
case FRONTEND_ARCH_PPC:
|
||||
strlcpy(architecture, "PPC", size);
|
||||
break;
|
||||
case FRONTEND_ARCH_ARM:
|
||||
strlcpy(architecture, "ARM", size);
|
||||
break;
|
||||
case FRONTEND_ARCH_ARMV7:
|
||||
strlcpy(architecture, "ARMv7", size);
|
||||
break;
|
||||
case FRONTEND_ARCH_ARMV8:
|
||||
strlcpy(architecture, "ARMv8", size);
|
||||
break;
|
||||
case FRONTEND_ARCH_MIPS:
|
||||
strlcpy(architecture, "MIPS", size);
|
||||
break;
|
||||
case FRONTEND_ARCH_TILE:
|
||||
strlcpy(architecture, "Tilera", size);
|
||||
break;
|
||||
case FRONTEND_ARCH_NONE:
|
||||
default:
|
||||
strlcpy(architecture, "N/A", size);
|
||||
break;
|
||||
}
|
||||
|
||||
return frontend;
|
||||
}
|
||||
|
||||
uint64_t frontend_driver_get_total_memory(void)
|
||||
{
|
||||
frontend_ctx_driver_t *frontend = frontend_get_ptr();
|
||||
|
@ -81,7 +81,7 @@ typedef struct frontend_ctx_driver
|
||||
environment_get_t environment_get;
|
||||
void (*init)(void *data);
|
||||
void (*deinit)(void *data);
|
||||
void (*exitspawn)(char *s, size_t len);
|
||||
void (*exitspawn)(char *s, size_t len, char *args);
|
||||
|
||||
process_args_t process_args;
|
||||
void (*exec)(const char *, bool);
|
||||
@ -172,6 +172,9 @@ void frontend_driver_free(void);
|
||||
|
||||
enum frontend_architecture frontend_driver_get_cpu_architecture(void);
|
||||
|
||||
const void *frontend_driver_get_cpu_architecture_str(
|
||||
char *frontend_architecture, size_t size);
|
||||
|
||||
environment_get_t frontend_driver_environment_get_ptr(void);
|
||||
|
||||
bool frontend_driver_has_get_video_driver_func(void);
|
||||
@ -182,7 +185,7 @@ void frontend_driver_shutdown(bool a);
|
||||
|
||||
void frontend_driver_deinit(void *args);
|
||||
|
||||
void frontend_driver_exitspawn(char *s, size_t len);
|
||||
void frontend_driver_exitspawn(char *s, size_t len, char *args);
|
||||
|
||||
bool frontend_driver_has_fork(void);
|
||||
|
||||
|
@ -192,7 +192,7 @@ int main(int argc, char *argv[])
|
||||
frontend_ctx->deinit(args);
|
||||
|
||||
if (frontend_ctx && frontend_ctx->exitspawn)
|
||||
frontend_ctx->exitspawn(libretro_path, sizeof(libretro_path));
|
||||
frontend_ctx->exitspawn(libretro_path, sizeof(libretro_path), NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -182,7 +182,7 @@ bool d3d12_init_base(d3d12_video_t* d3d12)
|
||||
|
||||
d3d12->gpu_list = string_list_new();
|
||||
|
||||
while (true)
|
||||
for (;;)
|
||||
{
|
||||
char str[128];
|
||||
union string_list_elem_attr attr = {0};
|
||||
|
@ -261,7 +261,7 @@
|
||||
|
||||
_viewport->full_width = width;
|
||||
_viewport->full_height = height;
|
||||
video_driver_set_size(&_viewport->full_width, &_viewport->full_height);
|
||||
video_driver_set_size(_viewport->full_width, _viewport->full_height);
|
||||
_layer.drawableSize = CGSizeMake(width, height);
|
||||
video_driver_update_viewport(_viewport, forceFull, _keepAspect);
|
||||
|
||||
|
@ -3296,7 +3296,7 @@ void vulkan_framebuffer_generate_mips(
|
||||
for (i = 1; i < levels; i++)
|
||||
{
|
||||
unsigned src_width, src_height, target_width, target_height;
|
||||
VkImageBlit blit_region = {};
|
||||
VkImageBlit blit_region = {0};
|
||||
|
||||
/* For subsequent passes, we have to transition
|
||||
* from DST_OPTIMAL to SRC_OPTIMAL,
|
||||
|
@ -176,7 +176,7 @@ static void x11_set_window_pid(Display *dpy, Window win)
|
||||
errno = 0;
|
||||
if ((scret = sysconf(_SC_HOST_NAME_MAX)) == -1 && errno)
|
||||
return;
|
||||
if ((hostname = (char*)malloc(scret + 1)) == NULL)
|
||||
if (!(hostname = (char*)malloc(scret + 1)))
|
||||
return;
|
||||
|
||||
if (gethostname(hostname, scret + 1) == -1)
|
||||
|
@ -62,7 +62,7 @@ static void caca_gfx_create(void)
|
||||
caca_dither = caca_create_dither(16, caca_video_width, caca_video_height, caca_video_pitch,
|
||||
0xf800, 0x7e0, 0x1f, 0x0);
|
||||
|
||||
video_driver_set_size(&caca_video_width, &caca_video_height);
|
||||
video_driver_set_size(caca_video_width, caca_video_height);
|
||||
}
|
||||
|
||||
static void *caca_gfx_init(const video_info_t *video,
|
||||
@ -192,7 +192,7 @@ static void caca_gfx_set_nonblock_state(void *data, bool toggle)
|
||||
static bool caca_gfx_alive(void *data)
|
||||
{
|
||||
(void)data;
|
||||
video_driver_set_size(&caca_video_width, &caca_video_height);
|
||||
video_driver_set_size(caca_video_width, caca_video_height);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -345,7 +345,7 @@ static void* ctr_init(const video_info_t* video,
|
||||
ctr->vp.height = CTR_TOP_FRAMEBUFFER_HEIGHT;
|
||||
ctr->vp.full_width = CTR_TOP_FRAMEBUFFER_WIDTH;
|
||||
ctr->vp.full_height = CTR_TOP_FRAMEBUFFER_HEIGHT;
|
||||
video_driver_set_size(&ctr->vp.width, &ctr->vp.height);
|
||||
video_driver_set_size(ctr->vp.width, ctr->vp.height);
|
||||
|
||||
ctr->drawbuffers.top.left = vramAlloc(CTR_TOP_FRAMEBUFFER_WIDTH * CTR_TOP_FRAMEBUFFER_HEIGHT * 2 * sizeof(uint32_t));
|
||||
ctr->drawbuffers.top.right = (void*)((uint32_t*)ctr->drawbuffers.top.left + CTR_TOP_FRAMEBUFFER_WIDTH * CTR_TOP_FRAMEBUFFER_HEIGHT);
|
||||
|
@ -700,7 +700,7 @@ static void *d3d10_gfx_init(const video_info_t* video,
|
||||
|
||||
D3D10SetRenderTargets(d3d10->device, 1, &d3d10->renderTargetView, NULL);
|
||||
|
||||
video_driver_set_size(&d3d10->vp.full_width, &d3d10->vp.full_height);
|
||||
video_driver_set_size(d3d10->vp.full_width, d3d10->vp.full_height);
|
||||
d3d10->viewport.Width = d3d10->vp.full_width;
|
||||
d3d10->viewport.Height = d3d10->vp.full_height;
|
||||
d3d10->resize_viewport = true;
|
||||
@ -1008,7 +1008,7 @@ static void *d3d10_gfx_init(const video_info_t* video,
|
||||
|
||||
d3d10_gpu_list = string_list_new();
|
||||
|
||||
while (true)
|
||||
for (;;)
|
||||
{
|
||||
DXGI_ADAPTER_DESC desc = {0};
|
||||
union string_list_elem_attr attr = {0};
|
||||
@ -1222,7 +1222,7 @@ static bool d3d10_gfx_frame(
|
||||
d3d10->resize_chain = false;
|
||||
d3d10->resize_viewport = true;
|
||||
|
||||
video_driver_set_size(&video_info->width, &video_info->height);
|
||||
video_driver_set_size(video_info->width, video_info->height);
|
||||
}
|
||||
|
||||
PERF_START();
|
||||
@ -1540,8 +1540,10 @@ static bool d3d10_gfx_alive(void* data)
|
||||
|
||||
win32_check_window(&quit, &d3d10->resize_chain, &d3d10->vp.full_width, &d3d10->vp.full_height);
|
||||
|
||||
if (d3d10->resize_chain && d3d10->vp.full_width != 0 && d3d10->vp.full_height != 0)
|
||||
video_driver_set_size(&d3d10->vp.full_width, &d3d10->vp.full_height);
|
||||
if ( d3d10->resize_chain
|
||||
&& d3d10->vp.full_width != 0
|
||||
&& d3d10->vp.full_height != 0)
|
||||
video_driver_set_size(d3d10->vp.full_width, d3d10->vp.full_height);
|
||||
|
||||
return !quit;
|
||||
}
|
||||
|
@ -777,7 +777,7 @@ static void *d3d11_gfx_init(const video_info_t* video,
|
||||
|
||||
D3D11SetRenderTargets(d3d11->context, 1, &d3d11->renderTargetView, NULL);
|
||||
|
||||
video_driver_set_size(&d3d11->vp.full_width, &d3d11->vp.full_height);
|
||||
video_driver_set_size(d3d11->vp.full_width, d3d11->vp.full_height);
|
||||
d3d11->viewport.Width = d3d11->vp.full_width;
|
||||
d3d11->viewport.Height = d3d11->vp.full_height;
|
||||
d3d11->resize_viewport = true;
|
||||
@ -1079,7 +1079,7 @@ static void *d3d11_gfx_init(const video_info_t* video,
|
||||
|
||||
d3d11_gpu_list = string_list_new();
|
||||
|
||||
while (true)
|
||||
for (;;)
|
||||
{
|
||||
DXGI_ADAPTER_DESC desc = {0};
|
||||
char str[128];
|
||||
@ -1303,7 +1303,7 @@ static bool d3d11_gfx_frame(
|
||||
|
||||
d3d11->resize_chain = false;
|
||||
d3d11->resize_viewport = true;
|
||||
video_driver_set_size(&video_info->width, &video_info->height);
|
||||
video_driver_set_size(video_info->width, video_info->height);
|
||||
}
|
||||
|
||||
#ifdef __WINRT__
|
||||
@ -1619,7 +1619,7 @@ static bool d3d11_gfx_alive(void* data)
|
||||
win32_check_window(&quit, &d3d11->resize_chain, &d3d11->vp.full_width, &d3d11->vp.full_height);
|
||||
|
||||
if (d3d11->resize_chain && d3d11->vp.full_width != 0 && d3d11->vp.full_height != 0)
|
||||
video_driver_set_size(&d3d11->vp.full_width, &d3d11->vp.full_height);
|
||||
video_driver_set_size(d3d11->vp.full_width, d3d11->vp.full_height);
|
||||
|
||||
return !quit;
|
||||
}
|
||||
|
@ -992,7 +992,7 @@ static void *d3d12_gfx_init(const video_info_t* video,
|
||||
}
|
||||
|
||||
d3d12_gfx_set_rotation(d3d12, 0);
|
||||
video_driver_set_size(&d3d12->vp.full_width, &d3d12->vp.full_height);
|
||||
video_driver_set_size(d3d12->vp.full_width, d3d12->vp.full_height);
|
||||
d3d12->chain.viewport.Width = d3d12->vp.full_width;
|
||||
d3d12->chain.viewport.Height = d3d12->vp.full_height;
|
||||
d3d12->resize_viewport = true;
|
||||
@ -1194,7 +1194,7 @@ static bool d3d12_gfx_frame(
|
||||
d3d12->ubo_values.OutputSize.width = d3d12->chain.viewport.Width;
|
||||
d3d12->ubo_values.OutputSize.height = d3d12->chain.viewport.Height;
|
||||
|
||||
video_driver_set_size(&video_info->width, &video_info->height);
|
||||
video_driver_set_size(video_info->width, video_info->height);
|
||||
}
|
||||
|
||||
D3D12ResetCommandAllocator(d3d12->queue.allocator);
|
||||
@ -1608,8 +1608,10 @@ static bool d3d12_gfx_alive(void* data)
|
||||
|
||||
win32_check_window(&quit, &d3d12->resize_chain, &d3d12->vp.full_width, &d3d12->vp.full_height);
|
||||
|
||||
if (d3d12->resize_chain && d3d12->vp.full_width != 0 && d3d12->vp.full_height != 0)
|
||||
video_driver_set_size(&d3d12->vp.full_width, &d3d12->vp.full_height);
|
||||
if ( d3d12->resize_chain
|
||||
&& d3d12->vp.full_width != 0
|
||||
&& d3d12->vp.full_height != 0)
|
||||
video_driver_set_size(d3d12->vp.full_width, d3d12->vp.full_height);
|
||||
|
||||
return !quit;
|
||||
}
|
||||
|
@ -699,7 +699,7 @@ static void d3d8_make_d3dpp(void *data,
|
||||
unsigned height = 0;
|
||||
|
||||
d3d8_get_video_size(d3d, &width, &height);
|
||||
video_driver_set_size(&width, &height);
|
||||
video_driver_set_size(width, height);
|
||||
#endif
|
||||
video_driver_get_size(&d3dpp->BackBufferWidth,
|
||||
&d3dpp->BackBufferHeight);
|
||||
@ -1026,7 +1026,7 @@ static bool d3d8_set_resize(d3d8_video_t *d3d,
|
||||
RARCH_LOG("[D3D8]: Resize %ux%u.\n", new_width, new_height);
|
||||
d3d->video_info.width = new_width;
|
||||
d3d->video_info.height = new_height;
|
||||
video_driver_set_size(&new_width, &new_height);
|
||||
video_driver_set_size(new_width, new_height);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -1060,7 +1060,7 @@ static bool d3d8_alive(void *data)
|
||||
ret = !quit;
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -1168,7 +1168,7 @@ static bool d3d8_init_internal(d3d8_video_t *d3d,
|
||||
{
|
||||
unsigned new_width = info->fullscreen ? full_x : info->width;
|
||||
unsigned new_height = info->fullscreen ? full_y : info->height;
|
||||
video_driver_set_size(&new_width, &new_height);
|
||||
video_driver_set_size(new_width, new_height);
|
||||
}
|
||||
|
||||
#ifdef HAVE_WINDOW
|
||||
|
@ -98,7 +98,7 @@ static bool d3d9_set_resize(d3d9_video_t *d3d,
|
||||
RARCH_LOG("[D3D9]: Resize %ux%u.\n", new_width, new_height);
|
||||
d3d->video_info.width = new_width;
|
||||
d3d->video_info.height = new_height;
|
||||
video_driver_set_size(&new_width, &new_height);
|
||||
video_driver_set_size(new_width, new_height);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -709,7 +709,7 @@ void d3d9_make_d3dpp(void *data,
|
||||
unsigned width = 0;
|
||||
unsigned height = 0;
|
||||
d3d9_get_video_size(d3d, &width, &height);
|
||||
video_driver_set_size(&width, &height);
|
||||
video_driver_set_size(width, height);
|
||||
#endif
|
||||
video_driver_get_size(&d3dpp->BackBufferWidth,
|
||||
&d3dpp->BackBufferHeight);
|
||||
@ -1077,7 +1077,7 @@ static bool d3d9_alive(void *data)
|
||||
|
||||
if ( temp_width != 0 &&
|
||||
temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -1192,7 +1192,7 @@ static bool d3d9_init_internal(d3d9_video_t *d3d,
|
||||
{
|
||||
unsigned new_width = info->fullscreen ? full_x : info->width;
|
||||
unsigned new_height = info->fullscreen ? full_y : info->height;
|
||||
video_driver_set_size(&new_width, &new_height);
|
||||
video_driver_set_size(new_width, new_height);
|
||||
}
|
||||
|
||||
#ifdef HAVE_WINDOW
|
||||
|
@ -507,7 +507,7 @@ static void dispmanx_set_texture_frame(void *data, const void *frame, bool rgb32
|
||||
return;
|
||||
|
||||
/* If menu is active in this frame but our menu surface is NULL, we allocate a new one.*/
|
||||
if (_dispvars->menu_surface == NULL)
|
||||
if (!_dispvars->menu_surface)
|
||||
{
|
||||
_dispvars->menu_width = width;
|
||||
_dispvars->menu_height = height;
|
||||
|
@ -198,7 +198,7 @@ static void *fpga_gfx_init(const video_info_t *video,
|
||||
/* Get real known video size, which might have been altered by context. */
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
video_driver_get_size(&temp_width, &temp_height);
|
||||
|
||||
@ -365,7 +365,7 @@ static bool fpga_gfx_alive(void *data)
|
||||
video_context_driver_check_window(&size_data);
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ static void *gdi_gfx_init(const video_info_t *video,
|
||||
/* Get real known video size, which might have been altered by context. */
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
video_driver_get_size(&temp_width, &temp_height);
|
||||
|
||||
@ -393,7 +393,7 @@ static bool gdi_gfx_alive(void *data)
|
||||
ret = !quit;
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -3789,7 +3789,7 @@ static void *gl2_init(const video_info_t *video,
|
||||
/* Get real known video size, which might have been altered by context. */
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
video_driver_get_size(&temp_width, &temp_height);
|
||||
gl->video_width = temp_width;
|
||||
@ -3980,7 +3980,7 @@ static bool gl2_alive(void *data)
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
{
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
gl->video_width = temp_width;
|
||||
gl->video_height = temp_height;
|
||||
}
|
||||
|
@ -347,7 +347,7 @@ static void *gl1_gfx_init(const video_info_t *video,
|
||||
/* Get real known video size, which might have been altered by context. */
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
video_driver_get_size(&temp_width, &temp_height);
|
||||
|
||||
@ -972,7 +972,7 @@ static bool gl1_gfx_alive(void *data)
|
||||
ret = !quit;
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -1299,7 +1299,7 @@ static void *gl_core_init(const video_info_t *video,
|
||||
/* Get real known video size, which might have been altered by context. */
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
video_driver_get_size(&temp_width, &temp_height);
|
||||
gl->video_width = temp_width;
|
||||
gl->video_height = temp_height;
|
||||
@ -1565,7 +1565,7 @@ static bool gl_core_alive(void *data)
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
{
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
gl->video_width = temp_width;
|
||||
gl->video_height = temp_height;
|
||||
}
|
||||
|
@ -442,7 +442,7 @@ static void *wiiu_gfx_init(const video_info_t *video,
|
||||
wiiu->vp.height = wiiu->render_mode.height;
|
||||
wiiu->vp.full_width = wiiu->render_mode.width;
|
||||
wiiu->vp.full_height = wiiu->render_mode.height;
|
||||
video_driver_set_size(&wiiu->vp.width, &wiiu->vp.height);
|
||||
video_driver_set_size(wiiu->vp.width, wiiu->vp.height);
|
||||
|
||||
driver_ctl(RARCH_DRIVER_CTL_SET_REFRESH_RATE, &refresh_rate);
|
||||
|
||||
|
@ -348,7 +348,7 @@ static bool network_gfx_alive(void *data)
|
||||
&quit, &resize, &temp_width, &temp_height, is_shutdown);
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -337,8 +337,6 @@ static int omapfb_setup_pages(omapfb_data_t *pdata)
|
||||
|
||||
static int omapfb_mmap(omapfb_data_t *pdata)
|
||||
{
|
||||
retro_assert(pdata->fb_mem == NULL);
|
||||
|
||||
pdata->fb_mem = mmap(NULL, pdata->current_state->mi.size, PROT_WRITE,
|
||||
MAP_SHARED, pdata->fd, 0);
|
||||
|
||||
@ -357,8 +355,6 @@ static int omapfb_backup_state(omapfb_data_t *pdata)
|
||||
{
|
||||
void* mem = NULL;
|
||||
|
||||
retro_assert(pdata->saved_state == NULL);
|
||||
|
||||
pdata->saved_state = calloc(1, sizeof(omapfb_state_t));
|
||||
if (!pdata->saved_state) return -1;
|
||||
|
||||
@ -383,7 +379,7 @@ static int omapfb_backup_state(omapfb_data_t *pdata)
|
||||
pdata->saved_state->mem = malloc(pdata->saved_state->mi.size);
|
||||
mem = mmap(NULL, pdata->saved_state->mi.size, PROT_WRITE|PROT_READ,
|
||||
MAP_SHARED, pdata->fd, 0);
|
||||
if (pdata->saved_state->mem == NULL || mem == MAP_FAILED)
|
||||
if (!pdata->saved_state->mem || mem == MAP_FAILED)
|
||||
{
|
||||
RARCH_ERR("[video_omap]: backup layer (mem backup) failed\n");
|
||||
munmap(mem, pdata->saved_state->mi.size);
|
||||
@ -404,8 +400,6 @@ static int omapfb_alloc_mem(omapfb_data_t *pdata)
|
||||
const struct retro_game_geometry *geom = NULL;
|
||||
struct retro_system_av_info *av_info = NULL;
|
||||
|
||||
retro_assert(pdata->current_state == NULL);
|
||||
|
||||
pdata->current_state = (omapfb_state_t*)calloc(1, sizeof(omapfb_state_t));
|
||||
|
||||
if (!pdata->current_state)
|
||||
|
@ -450,7 +450,7 @@ static bool sixel_gfx_alive(void *data)
|
||||
&quit, &resize, &temp_width, &temp_height, is_shutdown);
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ static void *switch_init(const video_info_t *video,
|
||||
sw->vp.height = 720;
|
||||
sw->vp.full_width = 1280;
|
||||
sw->vp.full_height = 720;
|
||||
video_driver_set_size(&sw->vp.width, &sw->vp.height);
|
||||
video_driver_set_size(sw->vp.width, sw->vp.height);
|
||||
|
||||
sw->vsync = video->vsync;
|
||||
sw->rgb32 = video->rgb32;
|
||||
|
@ -140,7 +140,7 @@ static void *vg_init(const video_info_t *video,
|
||||
RARCH_LOG("[VG]: Detecting screen resolution %ux%u.\n", temp_width, temp_height);
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
interval = video->vsync ? 1 : 0;
|
||||
|
||||
@ -193,7 +193,7 @@ static void *vg_init(const video_info_t *video,
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
{
|
||||
RARCH_LOG("[VG]: Verified window resolution %ux%u.\n", temp_width, temp_height);
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
}
|
||||
|
||||
video_driver_get_size(&temp_width, &temp_height);
|
||||
@ -463,7 +463,7 @@ static bool vg_alive(void *data)
|
||||
&quit, &resize, &temp_width, &temp_height, is_shutdown);
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
|
||||
return !quit;
|
||||
}
|
||||
|
@ -257,7 +257,7 @@ static void vga_gfx_set_nonblock_state(void *data, bool toggle)
|
||||
static bool vga_gfx_alive(void *data)
|
||||
{
|
||||
(void)data;
|
||||
video_driver_set_size(&vga_video_width, &vga_video_height);
|
||||
video_driver_set_size(vga_video_width, vga_video_height);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -92,7 +92,7 @@ static void *vita2d_gfx_init(const video_info_t *video,
|
||||
vita->tex_filter = video->smooth
|
||||
? SCE_GXM_TEXTURE_FILTER_LINEAR : SCE_GXM_TEXTURE_FILTER_POINT;
|
||||
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
vita2d_gfx_set_viewport(vita, temp_width, temp_height, false, true);
|
||||
|
||||
if (input && input_data)
|
||||
|
@ -1225,7 +1225,7 @@ static void *vulkan_init(const video_info_t *video,
|
||||
temp_height = mode.height;
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
video_driver_get_size(&temp_width, &temp_height);
|
||||
vk->video_width = temp_width;
|
||||
vk->video_height = temp_height;
|
||||
@ -1357,7 +1357,7 @@ static bool vulkan_alive(void *data)
|
||||
|
||||
if (temp_width != 0 && temp_height != 0)
|
||||
{
|
||||
video_driver_set_size(&temp_width, &temp_height);
|
||||
video_driver_set_size(temp_width, temp_height);
|
||||
vk->video_width = temp_width;
|
||||
vk->video_height = temp_height;
|
||||
}
|
||||
|
@ -448,7 +448,7 @@ static void *xv_init(const video_info_t *video,
|
||||
|
||||
g_x11_dpy = XOpenDisplay(NULL);
|
||||
|
||||
if (g_x11_dpy == NULL)
|
||||
if (!g_x11_dpy)
|
||||
{
|
||||
RARCH_ERR("[XVideo]: Cannot connect to the X server.\n");
|
||||
RARCH_ERR("[XVideo]: Check DISPLAY variable and if X is running.\n");
|
||||
|
@ -2368,11 +2368,11 @@ Framebuffer::Framebuffer(
|
||||
const VkPhysicalDeviceMemoryProperties &mem_props,
|
||||
const Size2D &max_size, VkFormat format,
|
||||
unsigned max_levels) :
|
||||
memory_properties(mem_props),
|
||||
device(device),
|
||||
size(max_size),
|
||||
format(format),
|
||||
max_levels(max(max_levels, 1u))
|
||||
max_levels(max(max_levels, 1u)),
|
||||
memory_properties(mem_props),
|
||||
device(device)
|
||||
{
|
||||
RARCH_LOG("[Vulkan filter chain]: Creating framebuffer %u x %u (max %u level(s)).\n",
|
||||
max_size.width, max_size.height, max_levels);
|
||||
|
@ -211,13 +211,13 @@ static bool slang_process_reflection(
|
||||
slang_semantic_meta& src = sl_reflection.semantics[semantic];
|
||||
if (src.push_constant || src.uniform)
|
||||
{
|
||||
uniform_sem_t uniform = { map->uniforms[semantic],
|
||||
uniform_sem_t uniform = { map->uniforms[semantic],
|
||||
src.num_components
|
||||
* (unsigned)sizeof(float) };
|
||||
string uniform_id = get_semantic_name(
|
||||
sl_reflection, (slang_semantic)semantic, 0);
|
||||
const char *uniform_id = get_semantic_name(
|
||||
sl_reflection, (slang_semantic)semantic, 0).c_str();
|
||||
|
||||
strlcpy(uniform.id, uniform_id.c_str(), sizeof(uniform.id));
|
||||
strlcpy(uniform.id, uniform_id, sizeof(uniform.id));
|
||||
|
||||
if (src.push_constant)
|
||||
{
|
||||
@ -241,9 +241,9 @@ static bool slang_process_reflection(
|
||||
uniform_sem_t uniform = {
|
||||
&shader_info->parameters[i].current, sizeof(float) };
|
||||
|
||||
string uniform_id = get_semantic_name(
|
||||
sl_reflection, SLANG_SEMANTIC_FLOAT_PARAMETER, i);
|
||||
strlcpy(uniform.id, uniform_id.c_str(), sizeof(uniform.id));
|
||||
const char *uniform_id = get_semantic_name(
|
||||
sl_reflection, SLANG_SEMANTIC_FLOAT_PARAMETER, i).c_str();
|
||||
strlcpy(uniform.id, uniform_id, sizeof(uniform.id));
|
||||
|
||||
if (src.push_constant)
|
||||
{
|
||||
@ -309,12 +309,12 @@ static bool slang_process_reflection(
|
||||
4 * sizeof(float)
|
||||
};
|
||||
|
||||
string uniform_id =
|
||||
const char *uniform_id =
|
||||
get_size_semantic_name(
|
||||
sl_reflection,
|
||||
(slang_texture_semantic)semantic, index);
|
||||
(slang_texture_semantic)semantic, index).c_str();
|
||||
|
||||
strlcpy(uniform.id, uniform_id.c_str(), sizeof(uniform.id));
|
||||
strlcpy(uniform.id, uniform_id, sizeof(uniform.id));
|
||||
|
||||
if (src.push_constant)
|
||||
{
|
||||
|
@ -3,6 +3,8 @@
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include <compat/strl.h>
|
||||
|
||||
#include "scope.h"
|
||||
|
||||
union number
|
||||
@ -17,8 +19,7 @@ typedef struct generator
|
||||
union number value;
|
||||
union number increment;
|
||||
int shift;
|
||||
}
|
||||
generator_t;
|
||||
} generator_t;
|
||||
|
||||
struct param
|
||||
{
|
||||
@ -258,9 +259,10 @@ const char *scope_eval(scope_t *scope, const char *src)
|
||||
tmp[len] = '\0';
|
||||
|
||||
if ((param = param_find(scope, tmp, 0)))
|
||||
strcat(scope->eval, param->value);
|
||||
strlcat(scope->eval, param->value,
|
||||
sizeof(scope->eval));
|
||||
else
|
||||
strcat(scope->eval, tmp);
|
||||
strlcat(scope->eval, tmp, sizeof(scope->eval));
|
||||
|
||||
++next;
|
||||
}
|
||||
@ -273,7 +275,7 @@ const char *scope_eval(scope_t *scope, const char *src)
|
||||
{
|
||||
if (in_var)
|
||||
--cur;
|
||||
strcat(scope->eval, cur);
|
||||
strlcat(scope->eval, cur, sizeof(scope->eval));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -947,19 +947,16 @@ static void shader_write_fbo(config_file_t *conf,
|
||||
fbo->scale_y, fbo->abs_y, i);
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
static void make_relative_path_portable(char *path)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
/* use '/' instead of '\' for maximum portability */
|
||||
if (!path_is_absolute(path))
|
||||
{
|
||||
char *p;
|
||||
for (p = path; *p; p++)
|
||||
if (*p == '\\')
|
||||
*p = '/';
|
||||
}
|
||||
#endif
|
||||
char *p;
|
||||
for (p = path; *p; p++)
|
||||
if (*p == '\\')
|
||||
*p = '/';
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* video_shader_write_conf_preset:
|
||||
@ -1008,7 +1005,10 @@ void video_shader_write_conf_preset(config_file_t *conf,
|
||||
{
|
||||
strlcpy(tmp, pass->source.path, tmp_size);
|
||||
path_relative_to(tmp_rel, tmp, tmp_base, tmp_size);
|
||||
make_relative_path_portable(tmp_rel);
|
||||
#ifdef _WIN32
|
||||
if (!path_is_absolute(tmp_rel))
|
||||
make_relative_path_portable(tmp_rel);
|
||||
#endif
|
||||
|
||||
config_set_path(conf, key, tmp_rel);
|
||||
}
|
||||
@ -1096,7 +1096,10 @@ void video_shader_write_conf_preset(config_file_t *conf,
|
||||
{
|
||||
strlcpy(tmp, shader->lut[i].path, tmp_size);
|
||||
path_relative_to(tmp_rel, tmp, tmp_base, tmp_size);
|
||||
make_relative_path_portable(tmp_rel);
|
||||
#ifdef _WIN32
|
||||
if (!path_is_absolute(tmp_rel))
|
||||
make_relative_path_portable(tmp_rel);
|
||||
#endif
|
||||
|
||||
config_set_path(conf, shader->lut[i].id, tmp_rel);
|
||||
}
|
||||
|
@ -607,12 +607,16 @@ FONTS
|
||||
INPUT
|
||||
============================================================ */
|
||||
#include "../tasks/task_autodetect.c"
|
||||
#ifdef HAVE_BLISSBOX
|
||||
#include "../tasks/task_autodetect_blissbox.c"
|
||||
#endif
|
||||
#ifdef HAVE_AUDIOMIXER
|
||||
#include "../tasks/task_audio_mixer.c"
|
||||
#endif
|
||||
#include "../input/input_keymaps.c"
|
||||
#ifdef HAVE_CONFIGFILE
|
||||
#include "../input/input_remapping.c"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_OVERLAY
|
||||
#include "../led/drivers/led_overlay.c"
|
||||
@ -1332,14 +1336,6 @@ MENU
|
||||
#include "../menu/drivers_display/menu_display_switch.c"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_CACA
|
||||
#include "../menu/drivers_display/menu_display_caca.c"
|
||||
#endif
|
||||
|
||||
#ifdef DJGPP
|
||||
#include "../menu/drivers_display/menu_display_vga.c"
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(_XBOX) && !defined(__WINRT__)
|
||||
#ifdef HAVE_GDI
|
||||
#include "../menu/drivers_display/menu_display_gdi.c"
|
||||
@ -1384,7 +1380,6 @@ MENU
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_RUNAHEAD
|
||||
#include "../runahead/mem_util.c"
|
||||
#include "../runahead/mylist.c"
|
||||
#endif
|
||||
|
||||
|
@ -52,9 +52,8 @@ extern pad_connection_interface_t wiiu_gca_pad_connection;
|
||||
|
||||
static void *wiiu_gca_init(void *handle)
|
||||
{
|
||||
RARCH_LOG("[gca]: allocating driver instance...\n");
|
||||
hid_wiiu_gca_instance_t *instance = calloc(1, sizeof(hid_wiiu_gca_instance_t));
|
||||
if(instance == NULL)
|
||||
if (!instance)
|
||||
return NULL;
|
||||
memset(instance, 0, sizeof(hid_wiiu_gca_instance_t));
|
||||
instance->handle = handle;
|
||||
@ -129,12 +128,12 @@ static void wiiu_gca_update_pad_state(hid_wiiu_gca_instance_t *instance)
|
||||
|
||||
if(port_connected > GCA_PORT_POWERED)
|
||||
{
|
||||
if(pad == NULL)
|
||||
if (!pad)
|
||||
{
|
||||
RARCH_LOG("[gca]: Gamepad at port %d connected.\n", port+1);
|
||||
instance->pads[port] = hid_pad_register(instance, &wiiu_gca_pad_connection);
|
||||
pad = instance->pads[port];
|
||||
if(pad == NULL)
|
||||
if (!pad)
|
||||
{
|
||||
RARCH_ERR("[gca]: Failed to register pad.\n");
|
||||
break;
|
||||
@ -153,11 +152,12 @@ static void wiiu_gca_update_pad_state(hid_wiiu_gca_instance_t *instance)
|
||||
|
||||
static void wiiu_gca_unregister_pad(hid_wiiu_gca_instance_t *instance, int slot)
|
||||
{
|
||||
if(!instance || slot < 0 || slot >= 4 || instance->pads[slot] == NULL)
|
||||
joypad_connection_t *pad = NULL;
|
||||
if(!instance || slot < 0 || slot >= 4 || !instance->pads[slot])
|
||||
return;
|
||||
|
||||
joypad_connection_t *pad = instance->pads[slot];
|
||||
instance->pads[slot] = NULL;
|
||||
pad = instance->pads[slot];
|
||||
instance->pads[slot] = NULL;
|
||||
|
||||
hid_pad_deregister(pad);
|
||||
}
|
||||
|
@ -423,7 +423,7 @@ static int wiimote_handshake(struct connect_wii_wiimote_t* wm,
|
||||
if (!wm)
|
||||
return 0;
|
||||
|
||||
do
|
||||
for (;;)
|
||||
{
|
||||
switch (wm->handshake_state)
|
||||
{
|
||||
@ -605,7 +605,7 @@ static int wiimote_handshake(struct connect_wii_wiimote_t* wm,
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}while(1);
|
||||
}
|
||||
}
|
||||
|
||||
static void hidpad_wii_deinit(void *data)
|
||||
|
@ -417,7 +417,7 @@ static void android_input_poll_main_cmd(void)
|
||||
|
||||
if ((android_app->sensor_state_mask
|
||||
& (UINT64_C(1) << RETRO_SENSOR_ACCELEROMETER_ENABLE))
|
||||
&& android_app->accelerometerSensor == NULL)
|
||||
&& !android_app->accelerometerSensor)
|
||||
input_sensor_set_state(0,
|
||||
RETRO_SENSOR_ACCELEROMETER_ENABLE,
|
||||
android_app->accelerometer_event_rate);
|
||||
@ -522,7 +522,7 @@ static bool android_input_init_handle(void)
|
||||
#ifdef HAVE_DYNAMIC
|
||||
if (libandroid_handle != NULL) /* already initialized */
|
||||
return true;
|
||||
#ifdef ANDROID_AARCH64
|
||||
#if defined (ANDROID_AARCH64) || defined(ANDROID_X64)
|
||||
if ((libandroid_handle = dlopen("/system/lib64/libandroid.so",
|
||||
RTLD_LOCAL | RTLD_LAZY)) == 0)
|
||||
return false;
|
||||
@ -673,7 +673,7 @@ static INLINE void android_mouse_calculate_deltas(android_input_t *android,
|
||||
{
|
||||
/* Adjust mouse speed based on ratio
|
||||
* between core resolution and system resolution */
|
||||
float x, y;
|
||||
float x = 0, y = 0;
|
||||
float x_scale = 1;
|
||||
float y_scale = 1;
|
||||
struct retro_system_av_info *av_info = video_viewport_get_system_av_info();
|
||||
@ -687,8 +687,11 @@ static INLINE void android_mouse_calculate_deltas(android_input_t *android,
|
||||
}
|
||||
|
||||
/* This axis is only available on Android Nougat and on Android devices with NVIDIA extensions */
|
||||
x = AMotionEvent_getAxisValue(event,AMOTION_EVENT_AXIS_RELATIVE_X, motion_ptr);
|
||||
y = AMotionEvent_getAxisValue(event,AMOTION_EVENT_AXIS_RELATIVE_Y, motion_ptr);
|
||||
if (p_AMotionEvent_getAxisValue)
|
||||
{
|
||||
x = AMotionEvent_getAxisValue(event,AMOTION_EVENT_AXIS_RELATIVE_X, motion_ptr);
|
||||
y = AMotionEvent_getAxisValue(event,AMOTION_EVENT_AXIS_RELATIVE_Y, motion_ptr);
|
||||
}
|
||||
|
||||
/* If AXIS_RELATIVE had 0 values it might be because we're not running Android Nougat or on a device
|
||||
* with NVIDIA extension, so re-calculate deltas based on AXIS_X and AXIS_Y. This has limitations
|
||||
|
@ -623,7 +623,7 @@ static void qnx_handle_navigator_event(
|
||||
{
|
||||
case NAVIGATOR_WINDOW_THUMBNAIL:
|
||||
case NAVIGATOR_WINDOW_INVISIBLE:
|
||||
while(true)
|
||||
for (;;)
|
||||
{
|
||||
unsigned event_code;
|
||||
|
||||
@ -699,7 +699,7 @@ static void qnx_input_poll(void *data)
|
||||
qnx_input_t *qnx = (qnx_input_t*)data;
|
||||
|
||||
/* Request and process all available BPS events. */
|
||||
while(true)
|
||||
for (;;)
|
||||
{
|
||||
bps_event_t *event = NULL;
|
||||
int rc = bps_get_event(&event, 0);
|
||||
|
@ -597,7 +597,7 @@ static void iohidmanager_hid_device_add_device(
|
||||
for (i=0; i<MAX_USERS; i++)
|
||||
{
|
||||
struct iohidmanager_hid_adapter *a = (struct iohidmanager_hid_adapter*)hid->slots[i].data;
|
||||
if (a == NULL)
|
||||
if (!a)
|
||||
continue;
|
||||
if (a->uniqueId == deviceUniqueId)
|
||||
return;
|
||||
@ -1003,12 +1003,12 @@ static int iohidmanager_hid_manager_set_device_matching(
|
||||
|| IOHIDDeviceConformsTo(dev, kHIDPage_GenericDesktop, kHIDUsage_GD_GamePad)
|
||||
)
|
||||
{
|
||||
if ( devList == NULL )
|
||||
if (!devList)
|
||||
{
|
||||
devList = (hid_list_t *)malloc(sizeof(hid_list_t));
|
||||
devList->device = dev;
|
||||
devList->lid = iohidmanager_hid_device_get_location_id(dev);
|
||||
devList->next = NULL;
|
||||
devList = (hid_list_t *)malloc(sizeof(hid_list_t));
|
||||
devList->device = dev;
|
||||
devList->lid = iohidmanager_hid_device_get_location_id(dev);
|
||||
devList->next = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -374,7 +374,7 @@ static int remove_adapter(void *data, struct libusb_device *dev)
|
||||
struct libusb_adapter *adapter = (struct libusb_adapter*)&adapters;
|
||||
struct libusb_hid *hid = (struct libusb_hid*)data;
|
||||
|
||||
while (adapter->next == NULL)
|
||||
while (!adapter->next)
|
||||
return -1;
|
||||
|
||||
if (adapter->next->device == dev)
|
||||
|
@ -331,7 +331,7 @@ static void log_device(HIDDevice *device)
|
||||
static uint8_t try_init_driver(wiiu_adapter_t *adapter)
|
||||
{
|
||||
adapter->driver_handle = adapter->driver->init(adapter);
|
||||
if (adapter->driver_handle == NULL)
|
||||
if (!adapter->driver_handle)
|
||||
{
|
||||
RARCH_ERR("[hid]: Failed to initialize driver: %s\n",
|
||||
adapter->driver->name);
|
||||
|
@ -551,7 +551,6 @@ void input_config_save_keybind(void *data, const char *prefix,
|
||||
void input_config_reset(void);
|
||||
|
||||
void set_connection_listener(pad_connection_listener_t *listener);
|
||||
void fire_connection_listener(unsigned port, input_device_driver_t *driver);
|
||||
|
||||
extern input_device_driver_t dinput_joypad;
|
||||
extern input_device_driver_t linuxraw_joypad;
|
||||
|
@ -42,10 +42,6 @@ MSG_HASH(
|
||||
MSG_UNKNOWN_COMPILER,
|
||||
"未知的编译器"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NATIVE,
|
||||
"Native"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_DEVICE_DISCONNECTED_FROM_PORT,
|
||||
"设备已从端口上断开"
|
||||
@ -74,10 +70,6 @@ MSG_HASH(
|
||||
MSG_NO_ARGUMENTS_SUPPLIED_AND_NO_MENU_BUILTIN,
|
||||
"未提供参数也没有内建菜单,显示帮助..."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_SETTING_DISK_IN_TRAY,
|
||||
"Setting disk in tray"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_WAITING_FOR_CLIENT,
|
||||
"等待客户端 ..."
|
||||
@ -90,14 +82,6 @@ MSG_HASH(
|
||||
MSG_NETPLAY_YOU_HAVE_JOINED_AS_PLAYER_N,
|
||||
"你已作为玩家 %d 加入"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NETPLAY_ENDIAN_DEPENDENT,
|
||||
"This core does not support inter-architecture netplay between these systems"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NETPLAY_PLATFORM_DEPENDENT,
|
||||
"This core does not support inter-architecture netplay"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NETPLAY_ENTER_PASSWORD,
|
||||
"输入联机游戏服务器的密码:"
|
||||
@ -138,14 +122,6 @@ MSG_HASH(
|
||||
MSG_NETPLAY_CHANGED_NICK,
|
||||
"你的昵称已修改为「%s」"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_SHARED_CONTEXT,
|
||||
"Give hardware-rendered cores their own private context. Avoids having to assume hardware state changes inbetween frames."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_MENU_HORIZONTAL_ANIMATION,
|
||||
"Enable horizontal animation for the menu. This will have a performance hit."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_MENU_SETTINGS,
|
||||
"调整菜单屏幕相关的设置。"
|
||||
@ -3551,10 +3527,6 @@ MSG_HASH(MENU_ENUM_SUBLABEL_MIXER_ACTION_REMOVE,
|
||||
"这将停止播放音频流,并将其完全从内存中删除。")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_MIXER_ACTION_VOLUME,
|
||||
"调整音频流的音量。")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_ADD_TO_MIXER,
|
||||
"Add this audio track to an available audio stream slot. If no slots are currently available, it will be ignored.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_ADD_TO_MIXER_AND_PLAY,
|
||||
"Add this audio track to an available audio stream slot and play it. If no slots are currently available, it will be ignored.")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_MIXER_ACTION_PLAY,
|
||||
"播放")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_MIXER_ACTION_PLAY_LOOPED,
|
||||
@ -3844,14 +3816,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT,
|
||||
"直播 UDP 端口"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ACCOUNTS_TWITCH,
|
||||
"Twitch"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ACCOUNTS_YOUTUBE,
|
||||
"YouTube"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_TWITCH_STREAM_KEY,
|
||||
"Twitch 直播密钥")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_YOUTUBE_STREAM_KEY,
|
||||
|
@ -3876,10 +3876,6 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_XMB_MAIN_MENU_ENABLE_SETTINGS,
|
||||
"Ενεργοποιεί την καρτέλα Ρυθμίσεις. Χρειάζεται επανεκκίνηση για να εμφανιστεί η καρτέλα."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CONTENT_SHOW_SETTINGS_PASSWORD,
|
||||
"Supplying a password when hiding the settings tab makes it possible to later restore it from the menu, by going to the Main Menu tab, selecting Enable Settings Tab and entering the password."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_RENAME,
|
||||
"Επίτρεψη μετονομασίας καταχωρήσεων"
|
||||
@ -4329,10 +4325,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE,
|
||||
"Απευθείας Μετάδοση"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_CHEEVOS_HARDCORE_MODE_DISABLED,
|
||||
"A savestate was loaded, Achievements Hardcore Mode disabled for the current session. Restart to enable hardcore mode."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY,
|
||||
"Ποιότητα Εγγραφής"
|
||||
|
@ -292,7 +292,7 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NETPLAY_TAB,
|
||||
"Salas de juego en red"
|
||||
"Juego en red"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ASK_ARCHIVE,
|
||||
@ -808,14 +808,46 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_DIRECTORY_SETTINGS,
|
||||
"Carpeta"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_DISK_TRAY_EJECT,
|
||||
"Expulsar disco"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_DISK_TRAY_EJECT,
|
||||
"Abre la bandeja de disco virtual y retira el disco que esté cargado. NOTA: Si RetroArch está configurado para pausarse al acceder al menú, algunos núcleos pueden no registrar los cambios hasta que se haya reanudado el contenido y hayan pasado unos segundos entre cada acción de control de disco."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_DISK_TRAY_INSERT,
|
||||
"Introducir disco"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_DISK_TRAY_INSERT,
|
||||
"Introduce el disco correspondiente al índice de disco actual y cierra la bandeja de disco virtual. NOTA: Si RetroArch está configurado para pausarse al acceder al menú, algunos núcleos pueden no registrar los cambios hasta que se haya reanudado el contenido y hayan pasado unos segundos entre cada acción de control de disco."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_DISK_INDEX,
|
||||
"Índice de disco"
|
||||
"Índice de disco actual"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_DISK_INDEX,
|
||||
"Selecciona el disco actual en la lista de imágenes disponibles. El disco se cargará una vez se haya seleccionado «Introducir disco»."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_DISK_IMAGE_APPEND,
|
||||
"Cargar disco nuevo"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND,
|
||||
"Expulsa el disco actual, selecciona uno nuevo en el sistema de archivos, lo introduce y cierra la bandeja de disco virtual. NOTA: Esta es una característica antigua. Se recomienda cargar títulos multidisco utilizando listas de reproducción en formato M3U, las cuales permiten cambiar de disco mediante las opciones «Expulsar/Introducir disco» e «Índice de disco actual»."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_DISK_OPTIONS,
|
||||
"Control de disco"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_DISK,
|
||||
"No se ha seleccionado un disco"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_DONT_CARE,
|
||||
"No importa"
|
||||
@ -880,6 +912,10 @@ MSG_HASH(
|
||||
MSG_ALL_CORES_UPDATED,
|
||||
"Todos los núcleos instalados están al día"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NUM_CORES_UPDATED,
|
||||
"núcleos actualizados: "
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR,
|
||||
"Escala del menú"
|
||||
@ -2167,6 +2203,14 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_NETWORK_ON_DEMAND_THUMBNAILS,
|
||||
"Descarga automáticamente las miniaturas mientras se navega por las listas de reproducción. Provoca una bajada importante en el rendimiento."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NETWORK_HOSTING_SETTINGS,
|
||||
"Anfitrión"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_SUBSYSTEM_SETTINGS,
|
||||
"Subsistemas"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NETWORK_SETTINGS,
|
||||
"Red"
|
||||
@ -2375,6 +2419,14 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_MENU_SAVESTATE_RESUME,
|
||||
"Cierra el menú y reanuda el contenido actual de forma automática tras seleccionar «Guardado rápido» o «Cargar guardado rápido» en el menú rápido. Si se desactiva esta opción, puede mejorar el rendimiento de los guardados rápidos en dispositivos lentos."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_INSERT_DISK_RESUME,
|
||||
"Reanudar contenido tras cambiar de disco"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_MENU_INSERT_DISK_RESUME,
|
||||
"Cierra el menú de forma automática y reanuda el contenido actual tras seleccionar las opciones «Introducir disco» o «Cargar disco nuevo» en el menú de Control de disco."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PAUSE_NONACTIVE,
|
||||
"Pausar al pasar a segundo plano"
|
||||
@ -2467,6 +2519,22 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_THUMBNAIL_MODE_DEFAULT,
|
||||
"Valores predeterminados del sistema"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_CLEAN_PLAYLIST,
|
||||
"Limpiar lista de reproducción"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_CLEAN_PLAYLIST,
|
||||
"Elimina las entradas duplicadas o no válidas y confirma las asociaciones de núcleos."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_PLAYLIST_MANAGER_CLEANING_PLAYLIST,
|
||||
"Limpiando lista de reproducción: "
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_PLAYLIST_MANAGER_PLAYLIST_CLEANED,
|
||||
"Lista de reproducción limpiada: "
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Soporte táctil"
|
||||
@ -2646,6 +2714,10 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CONTENT_INFO_LAST_PLAYED,
|
||||
"Última partida"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CONTENT_INFO_CHEEVOS_HASH,
|
||||
"Hash de RetroAchievements"
|
||||
)
|
||||
#ifdef HAVE_LAKKA_SWITCH
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_REBOOT,
|
||||
@ -4734,6 +4806,10 @@ MSG_HASH(
|
||||
MSG_APPENDED_DISK,
|
||||
"Disco en cola"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_FAILED_TO_APPEND_DISK,
|
||||
"Error al poner disco en cola"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_APPLICATION_DIR,
|
||||
"Carpeta de la aplicación"
|
||||
@ -5550,6 +5626,14 @@ MSG_HASH(
|
||||
MSG_VIRTUAL_DISK_TRAY,
|
||||
"bandeja de discos virtual."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_VIRTUAL_DISK_TRAY_EJECT,
|
||||
"expulsar"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_VIRTUAL_DISK_TRAY_CLOSE,
|
||||
"cerrar"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_AUDIO_LATENCY,
|
||||
"Selecciona la latencia de audio deseada en milisegundos. Este valor puede ser ignorado si el controlador no puede generar dicha latencia."
|
||||
@ -8920,6 +9004,10 @@ MSG_HASH(
|
||||
MSG_FAILED_TO_SET_DISK,
|
||||
"Error al asignar disco"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_FAILED_TO_SET_INITIAL_DISK,
|
||||
"Error al asignar el último disco utilizado..."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_QT_CORE_OPTIONS,
|
||||
"Opciones del núcleo"
|
||||
@ -10045,6 +10133,10 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_DELETE_PLAYLIST,
|
||||
"Borrar lista de reproducción"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_DELETE_PLAYLIST,
|
||||
"Elimina la lista de reproducción del sistema de archivos."
|
||||
)
|
||||
#ifdef HAVE_LAKKA
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_LOCALAP_ENABLE,
|
||||
|
@ -2392,14 +2392,10 @@ MSG_HASH(MSG_UNDOING_SAVE_STATE,
|
||||
"Annullamento del salvataggio")
|
||||
MSG_HASH(MSG_UNKNOWN,
|
||||
"Sconosciuto")
|
||||
MSG_HASH(MSG_UNPAUSED,
|
||||
"Unpaused.")
|
||||
MSG_HASH(MSG_UNRECOGNIZED_COMMAND,
|
||||
"Comando non riconosciuto")
|
||||
MSG_HASH(MSG_USING_CORE_NAME_FOR_NEW_CONFIG,
|
||||
"Utilizzo del nome di un core per la nuova configurazione.")
|
||||
MSG_HASH(MSG_USING_LIBRETRO_DUMMY_CORE_RECORDING_SKIPPED,
|
||||
"Using libretro dummy core. Skipping recording.")
|
||||
MSG_HASH(MSG_VALUE_CONNECT_DEVICE_FROM_A_VALID_PORT,
|
||||
"Collegare il dispositivo a una porta valida.")
|
||||
MSG_HASH(MSG_VALUE_DISCONNECTING_DEVICE_FROM_PORT,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user