diff --git a/.gitignore b/.gitignore
index 7cb4fe57f0..e50728c20d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -55,7 +55,6 @@ DerivedData
apple/tmp
apple/*.mobileprovision
apple/RetroArch_iOS.xcodeproj/project.xcworkspace/*
-menu/driverspzarch.c
/Cg/
/GL/
/SDL/
@@ -76,6 +75,7 @@ libretro-super
run.sh
convert_rumble.awk
*~
+assets
# Wii U
*.depend
@@ -121,7 +121,6 @@ wiiu/wut/elf2rpl/elf2rpl
/media/libretrodb/
pkg/apple/iOS/build/
-pkg/apple/iOS/modules/
pkg/apple/build/
ui/drivers/qt/moc_*
ui/drivers/moc_*
diff --git a/.travis.yml b/.travis.yml
index 6fea0eee65..7be5f133d8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -39,9 +39,8 @@ matrix:
script:
- xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch.xcodeproj
- os: osx
- osx_image: xcode9.3
+ osx_image: xcode10.1
script:
- - brew update
- brew install --force-bottle qt5
- xcodebuild -target RetroArchQt -configuration Release -project pkg/apple/RetroArch_Metal.xcodeproj
deploy:
diff --git a/CHANGES.md b/CHANGES.md
index 782daae2ed..c15ae1dc99 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,14 +1,27 @@
-# 1.7.6 (future)
-- ANDROID: Fix Xperia Play input binding
-- CHEEVOS: Reset when hardcore mode is toggled
-- COMMON: Add new JSON playlist format
-- CORE UPDATER: Allow sideloading cores from the menu
+# 1.7.7 (future)
+
+# 1.7.6
+- ANDROID: Fix Xperia Play input binding.
+- CHEEVOS: Reset when hardcore mode is toggled.
+- CHEEVOS: Update the hashing methods to identify NES, SNES and Lynx games (more accurate and accepting headerless ROMs).
+- COMMON: Add new JSON playlist format.
+- COMMON: Fix playlist corruption when deleting items.
+- COMMON: Fix archive progress display calculation.
+- COMMON: Fix playlist entries appearing with previously used names.
+- COMMON: Fix screenshot filename with no core or content.
+- COMMON: Allow compiling without menu support.
+- CORE UPDATER: Allow sideloading cores from the menu.
- CPU FILTERS: Add Normal2x filter.
+- CRT/LINUX: New Linux switching method partially implemented.
+- CRT/LINUX: Linux restore desktop resolution fixed.
+- CRT/LINUX: Monitor index switching and auto enumerate for output detection in Linux (still working on the windows method).
+- CRT/RASPBERRY PI: Initial support.
- DATE: Add Date / Time style options.
- DEBUGGING: Add an integrated crash handler for debug builds (see https://docs.libretro.com/tech/debugging)
- DISCORD: Register the application name properly.
- DISK CONTROL: Remember the last used folder / current active folder to make disk-swapping faster.
- INPUT: Add new menu toggle (hold start button for 2 seconds)
+- INPUT: Fix arrow keys being incorrectly bound as numpad keys
- INPUT/SDL: Flush the joypad events. Decreases cpu usage over time with the SDL joypad driver.
- LOCALIZATION: Add Greek translation.
- LOCALIZATION: Update German translation.
@@ -16,11 +29,24 @@
- LOCALIZATION: Update Japanese translation.
- LOCALIZATION: Update Simplified Chinese translation.
- LOCALIZATION: Update Spanish translation.
+- MENU: New "ozone" menu driver.
- MENU: Only show CRT SwitchRes if video display server is implemented (Windows/Linux for now)
- MENU: User Interface -> Appearance -> 'Menu Font Green/Blue Color' settings now work properly.
+- MENU: Add option to enable in-menu sound effects.
+- MENU/D3D: Scissoring support (will be used for Ozone and menu widgets).
+- MENU/QT/WIMP: Allow building with MSVC2017.
+- MENU/QT/WIMP: Add detailed file browser table.
+- MENU/QT/WIMP: New grid view implementation that is faster and loads thumbnails on-demand.
+- MENU/QT/WIMP: Thumbnail drag and drop support.
+- MENU/RGUI: Overhaul custom theme interface + add wallpaper support.
+- MENU/RGUI: Thumbnail support and thumbnail downscaling.
+- MENU: Hide password values.
+- MENU/SOUNDS: Implement in-menu sound effects (not enabled by default for now, still experimental).
- MIDI: Add a Linux ALSA driver for MIDI.
-- NETPLAY: Force fast-save-states when netlay is enabled
-- NETPLAY: Allow quick joining subsystem lobbies
+- NETPLAY: Force fast-save-states when netplay is enabled.
+- NETPLAY: Allow quick joining subsystem lobbies.
+- OSX: Initial CoreAudio V3 audio driver (not yet used in release builds).
+- OSX: OpenGL 3.2 Core support for cores.
- PS2: Initial PlayStation2 port.
- PS4: Initial PlayStation4 port.
- RECORDING: Implement recording options in the menu complete with quality profiles, streaming, and proper file naming
@@ -31,17 +57,23 @@
- SUBSYSTEM: Remember the last used folder to make loading subsystem type content faster
- SWITCH/LIBNX: Improve touch scaling calculation.
- SWITCH: Proper button labels.
+- TVOS: Initial tvOS port.
- VULKAN: Fix RGUI crashing at startup.
+- VULKAN/RGUI: Enable 'Menu Linear Filter' option.
- VULKAN: Fix secondary screens in overlays not working.
- WAYLAND: Implement idle-inhibit support (needed for screensaver suspend).
+- WAYLAND: Fix fullscreen toggle.
- WIIU: Initial netplay peer-to-peer support. Network information working.
- WINDOWS/WSA: Network Information info is blank until first network operation.
-- WINDOWS: Fix an ancient bug that caused wrong mappings for keyboard arrows
-- WINDOWS: Remember window size and position if so desired
+- WINDOWS: Fix an ancient bug that caused wrong mappings for keyboard arrows.
+- WINDOWS: Remember window size and position if so desired.
- WINDOWS: SSL/TLS connections now work properly.
+- WINDOWS: Fall back to GDI driver if no accelerated graphics driver is found.
- UWP: Initial UWP port.
+- VFS: Update to version 3.
- XBONE: Initial Xbox One port.
- XMB/OZONE: Add more icons
+- XMB: Add Automatic Inverted theme
- ???: Easter Egg
# 1.7.5
diff --git a/Makefile b/Makefile
index 3243d38f0f..32e7a6b82b 100644
--- a/Makefile
+++ b/Makefile
@@ -19,6 +19,7 @@ TARGET = retroarch
OBJ :=
LIBS :=
DEF_FLAGS :=
+ASFLAGS :=
DEFINES := -DHAVE_CONFIG_H -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64
DEFINES += -DGLOBAL_CONFIG_DIR='"$(GLOBAL_CONFIG_DIR)"'
@@ -253,15 +254,9 @@ install: $(TARGET)
@if test -d media/assets && test $(HAVE_ASSETS); then \
echo "Installing media assets..."; \
mkdir -p $(DESTDIR)$(ASSETS_DIR)/assets; \
- if test $(HAVE_ZARCH) = 1; then \
- cp -r media/assets/zarch/ $(DESTDIR)$(ASSETS_DIR)/assets; \
- fi; \
if test $(HAVE_MATERIALUI) = 1; then \
cp -r media/assets/glui/ $(DESTDIR)$(ASSETS_DIR)/assets; \
fi; \
- if test $(HAVE_NUKLEAR) = 1; then \
- cp -r media/assets/nuklear/ $(DESTDIR)$(ASSETS_DIR)/assets; \
- fi; \
if test $(HAVE_XMB) = 1; then \
cp -r media/assets/xmb/ $(DESTDIR)$(ASSETS_DIR)/assets; \
fi; \
diff --git a/Makefile.common b/Makefile.common
index a6bf00da77..aea2d6d4c2 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -27,10 +27,6 @@ ifeq ($(HAVE_LIBRETRODB),)
HAVE_LIBRETRODB = 1
endif
-ifeq ($(HAVE_VIDEO_PROCESSOR), 1)
- DEFINES += -DHAVE_VIDEO_PROCESSOR
-endif
-
ifeq ($(HAVE_SOCKET_LEGACY), 1)
DEFINES += -DHAVE_SOCKET_LEGACY
endif
@@ -67,8 +63,14 @@ ifeq ($(VULKAN_DEBUG), 1)
DEF_FLAGS += -DVULKAN_DEBUG
endif
-ifeq ($(HAVE_HARD_FLOAT), 1)
- DEFINES += -mfloat-abi=hard
+ifeq ($(HAVE_FLOATHARD), 1)
+ DEF_FLAGS += $(FLOATHARD_CFLAGS)
+ ASFLAGS += $(FLOATHARD_CFLAGS)
+endif
+
+ifeq ($(HAVE_FLOATSOFTFP), 1)
+ DEF_FLAGS += $(FLOATSOFTFP_CFLAGS)
+ ASFLAGS += $(FLOATSOFTFP_CFLAGS)
endif
ifeq ($(TDM_GCC),)
@@ -374,6 +376,10 @@ ifeq ($(HAVE_SSA),1)
LIBS += $(SSA_LIBS)
endif
+ifeq ($(HAVE_SSE),1)
+ DEF_FLAGS += $(SSE_LIBS)
+endif
+
# LibretroDB
ifeq ($(HAVE_LIBRETRODB), 1)
@@ -504,9 +510,19 @@ endif
# Audio
+
ifeq ($(HAVE_COREAUDIO), 1)
OBJ += audio/drivers/coreaudio.o
- LIBS += -framework CoreServices -framework CoreAudio -framework AudioUnit
+ HAVE_COREAUDIO_LIBS = 1
+endif
+
+ifeq ($(HAVE_COREAUDIO3), 1)
+ OBJ += audio/drivers/coreaudio3.o
+ HAVE_COREAUDIO_LIBS = 1
+endif
+
+ifeq ($(HAVE_COREAUDIO_LIBS), 1)
+ LIBS += -framework CoreServices -framework CoreAudio -framework AudioUnit
endif
ifeq ($(HAVE_CORETEXT), 1)
@@ -625,7 +641,10 @@ ifeq ($(HAVE_NEON),1)
OBJ += $(LIBRETRO_COMM_DIR)/audio/resampler/drivers/sinc_resampler_neon.o \
audio/drivers_resampler/cc_resampler_neon.o \
memory/neon/memcpy-neon.o
- DEFINES += -DHAVE_NEON
+
+ DEFINES += -DHAVE_NEON
+ ASFLAGS += $(NEON_ASFLAGS)
+ DEF_FLAGS += $(NEON_CFLAGS)
endif
OBJ += $(LIBRETRO_COMM_DIR)/audio/conversion/s16_to_float.o \
@@ -651,10 +670,6 @@ endif
# XMB and MaterialUI are always enabled if supported and not explicitly disabled
ifeq ($(HW_CONTEXT_MENU_DRIVERS), 1)
- ifeq ($(HAVE_ZARCH),)
- HAVE_ZARCH = 0
- endif
-
ifeq ($(HAVE_RGUI),)
HAVE_RGUI = 1
endif
@@ -663,10 +678,6 @@ ifeq ($(HW_CONTEXT_MENU_DRIVERS), 1)
HAVE_MATERIALUI = 1
endif
- ifeq ($(HAVE_NUKLEAR),)
- HAVE_NUKLEAR = 0
- endif
-
ifeq ($(HAVE_XMB),)
HAVE_XMB = 1
endif
@@ -679,10 +690,8 @@ ifeq ($(HW_CONTEXT_MENU_DRIVERS), 1)
HAVE_OZONE = 1
endif
else
- HAVE_ZARCH ?= 0
HAVE_RGUI ?= 0
HAVE_MATERIALUI ?= 0
- HAVE_NUKLEAR ?= 0
HAVE_XMB ?= 0
HAVE_STRIPES ?= 0
HAVE_OZONE ?= 0
@@ -703,21 +712,6 @@ ifeq ($(HAVE_MENU), 1)
HAVE_ASSETS = 1
endif
- ifeq ($(HAVE_NUKLEAR), 1)
- OBJ += menu/drivers/nuklear/nk_common.o \
- menu/drivers/nuklear/nk_menu.o \
- menu/drivers/nuklear/nk_wnd_debug.o \
- menu/drivers/nuklear.o
- DEFINES += -DHAVE_NUKLEAR
- HAVE_ASSETS = 1
- endif
-
- ifeq ($(HAVE_ZARCH), 1)
- OBJ += menu/drivers/zarch.o
- DEFINES += -DHAVE_ZARCH
- HAVE_ASSETS = 1
- endif
-
ifeq ($(HAVE_XMB), 1)
OBJ += menu/drivers/xmb.o
DEFINES += -DHAVE_XMB
@@ -1061,9 +1055,7 @@ endif
ifeq ($(HAVE_GL_CONTEXT), 1)
DEFINES += -DHAVE_OPENGL -DHAVE_GLSL
OBJ += gfx/drivers/gl.o \
- gfx/drivers_renderchain/gl2_renderchain.o \
$(LIBRETRO_COMM_DIR)/gfx/gl_capabilities.o \
- gfx/common/gl_common.o \
gfx/drivers_font/gl_raster_font.o \
$(LIBRETRO_COMM_DIR)/glsym/rglgen.o
@@ -1160,7 +1152,6 @@ ifeq ($(HAVE_GL_CONTEXT), 1)
endif
OBJ += gfx/drivers_shader/shader_glsl.o
- DEFINES += -DHAVE_GLSL
endif
ifeq ($(HAVE_EGL), 1)
@@ -1170,36 +1161,27 @@ ifeq ($(HAVE_EGL), 1)
endif
ifeq ($(HAVE_SDL2), 1)
- HAVE_SDL=0
-endif
-
-ifeq ($(HAVE_SDL), 1)
- OBJ += gfx/drivers/sdl_gfx.o \
- input/drivers/sdl_input.o \
- input/drivers_joypad/sdl_joypad.o \
- audio/drivers/sdl_audio.o
-
- ifeq ($(HAVE_GL_CONTEXT), 1)
- OBJ += gfx/drivers_context/sdl_gl_ctx.o
- endif
-
- DEFINES += $(SDL_CFLAGS) $(BSD_LOCAL_INC)
+ HAVE_SDL_COMMON = 1
+ OBJ += gfx/drivers/sdl2_gfx.o
+ DEFINES += $(SDL2_CFLAGS)
+ LIBS += $(SDL2_LIBS)
+else ifeq ($(HAVE_SDL), 1)
+ HAVE_SDL_COMMON = 1
+ OBJ += gfx/drivers/sdl_gfx.o
+ DEFINES += $(SDL_CFLAGS)
LIBS += $(SDL_LIBS)
endif
-ifeq ($(HAVE_SDL2), 1)
- OBJ += gfx/drivers/sdl2_gfx.o \
- input/drivers/sdl_input.o \
+ifeq ($(HAVE_SDL_COMMON), 1)
+ OBJ += input/drivers/sdl_input.o \
input/drivers_joypad/sdl_joypad.o \
audio/drivers/sdl_audio.o
ifeq ($(HAVE_GL_CONTEXT), 1)
- OBJ += gfx/drivers_context/sdl_gl_ctx.o
+ OBJ += gfx/drivers_context/sdl_gl_ctx.o
endif
- DEFINES += $(SDL2_CFLAGS) $(BSD_LOCAL_INC)
- LIBS += $(SDL2_LIBS)
- HAVE_SDL = 0
+ DEFINES += $(BSD_LOCAL_INC)
endif
ifeq ($(HAVE_XSHM), 1)
@@ -1254,8 +1236,6 @@ endif
ifeq ($(HAVE_DISPMANX), 1)
OBJ += gfx/drivers/dispmanx_gfx.o
HAVE_VIDEOCORE = 1
- LIBS += $(DISPMANX_LIBS)
- DEFINES += $(DISPMANX_CFLAGS)
endif
ifeq ($(HAVE_SUNXI), 1)
@@ -1547,8 +1527,6 @@ ifeq ($(HAVE_ZLIB), 1)
else
LIBS += $(ZLIB_LIBS)
endif
-endif
-
ifeq ($(HAVE_CHD), 1)
DEF_FLAGS += -I$(LIBRETRO_COMM_DIR)/formats/libchdr
DEFINES += -DHAVE_CHD -DWANT_SUBCODE -DWANT_RAW_DATA_SECTOR
@@ -1558,18 +1536,17 @@ ifeq ($(HAVE_CHD), 1)
$(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_huffman.o \
$(LIBRETRO_COMM_DIR)/streams/chd_stream.o
- ifeq ($(HAVE_FLAC), 1)
+
+
+ OBJ += $(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_zlib.o
+ ifeq ($(HAVE_FLAC),1)
OBJ += $(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_flac.o \
$(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_flac_codec.o
endif
-
ifeq ($(HAVE_7ZIP), 1)
OBJ += $(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_lzma.o
endif
-
- ifeq ($(HAVE_ZLIB), 1)
- OBJ += $(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_zlib.o
- endif
+endif
endif
ifeq ($(HAVE_RTGA), 1)
@@ -1612,7 +1589,8 @@ endif
ifeq ($(HAVE_V4L2),1)
OBJ += camera/drivers/video4linux2.o
- ifeq ($(HAVE_VIDEO_PROCESSOR),1)
+ ifeq ($(HAVE_VIDEOPROCESSOR),1)
+ DEFINES += -DHAVE_VIDEOPROCESSOR
OBJ += cores/libretro-video-processor/video_processor_v4l2.o
endif
DEFINES += -DHAVE_V4L2
@@ -1665,54 +1643,78 @@ ifeq ($(HAVE_NETWORKING), 1)
network/netplay/netplay_buf.o \
network/netplay/netplay_room_parse.o
- # Retro Achievements
+ # RetroAchievements
ifeq ($(HAVE_CHEEVOS), 1)
DEFINES += -DHAVE_CHEEVOS
-
- OBJ += cheevos/cheevos.o \
- cheevos/badges.o \
- cheevos/var.o \
- cheevos/cond.o
- ifeq ($(HAVE_LUA), 1)
- DEFINES += -DHAVE_LUA \
- -DLUA_32BITS \
- -Ideps/lua/src
- OBJ += deps/lua/src/lapi.o \
- deps/lua/src/lcode.o \
- deps/lua/src/lctype.o \
- deps/lua/src/ldebug.o \
- deps/lua/src/ldo.o \
- deps/lua/src/ldump.o \
- deps/lua/src/lfunc.o \
- deps/lua/src/lgc.o \
- deps/lua/src/llex.o \
- deps/lua/src/lmem.o \
- deps/lua/src/lobject.o \
- deps/lua/src/lopcodes.o \
- deps/lua/src/lparser.o \
- deps/lua/src/lstate.o \
- deps/lua/src/lstring.o \
- deps/lua/src/ltable.o \
- deps/lua/src/ltm.o \
- deps/lua/src/lundump.o \
- deps/lua/src/lvm.o \
- deps/lua/src/lzio.o \
- deps/lua/src/lauxlib.o \
- deps/lua/src/lbaselib.o \
- deps/lua/src/lbitlib.o \
- deps/lua/src/lcorolib.o \
- deps/lua/src/ldblib.o \
- deps/lua/src/liolib.o \
- deps/lua/src/lmathlib.o \
- deps/lua/src/loslib.o \
- deps/lua/src/lstrlib.o \
- deps/lua/src/ltablib.o \
- deps/lua/src/lutf8lib.o \
- deps/lua/src/loadlib.o \
- deps/lua/src/linit.o
+ ifeq ($(HAVE_NEW_CHEEVOS), 1)
+ DEFINES += -DHAVE_NEW_CHEEVOS \
+ -Ideps/rcheevos/include \
+ -Ideps/lua/src
+ OBJ += cheevos-new/cheevos.o \
+ cheevos-new/badges.o \
+ cheevos-new/fixup.o \
+ cheevos-new/parser.o \
+ cheevos-new/hash.o \
+ deps/rcheevos/src/rcheevos/trigger.o \
+ deps/rcheevos/src/rcheevos/condset.o \
+ deps/rcheevos/src/rcheevos/condition.o \
+ deps/rcheevos/src/rcheevos/operand.o \
+ deps/rcheevos/src/rcheevos/term.o \
+ deps/rcheevos/src/rcheevos/expression.o \
+ deps/rcheevos/src/rcheevos/value.o \
+ deps/rcheevos/src/rcheevos/lboard.o \
+ deps/rcheevos/src/rcheevos/alloc.o \
+ deps/rcheevos/src/rcheevos/format.o \
+ deps/rcheevos/src/rurl/url.o
+
+ ifeq ($(HAVE_LUA), 1)
+ DEFINES += -DHAVE_LUA \
+ -DLUA_32BITS \
+ -Ideps/lua/src
+ OBJ += deps/lua/src/lapi.o \
+ deps/lua/src/lcode.o \
+ deps/lua/src/lctype.o \
+ deps/lua/src/ldebug.o \
+ deps/lua/src/ldo.o \
+ deps/lua/src/ldump.o \
+ deps/lua/src/lfunc.o \
+ deps/lua/src/lgc.o \
+ deps/lua/src/llex.o \
+ deps/lua/src/lmem.o \
+ deps/lua/src/lobject.o \
+ deps/lua/src/lopcodes.o \
+ deps/lua/src/lparser.o \
+ deps/lua/src/lstate.o \
+ deps/lua/src/lstring.o \
+ deps/lua/src/ltable.o \
+ deps/lua/src/ltm.o \
+ deps/lua/src/lundump.o \
+ deps/lua/src/lvm.o \
+ deps/lua/src/lzio.o \
+ deps/lua/src/lauxlib.o \
+ deps/lua/src/lbaselib.o \
+ deps/lua/src/lbitlib.o \
+ deps/lua/src/lcorolib.o \
+ deps/lua/src/ldblib.o \
+ deps/lua/src/liolib.o \
+ deps/lua/src/lmathlib.o \
+ deps/lua/src/loslib.o \
+ deps/lua/src/lstrlib.o \
+ deps/lua/src/ltablib.o \
+ deps/lua/src/lutf8lib.o \
+ deps/lua/src/loadlib.o \
+ deps/lua/src/linit.o
+ else
+ DEFINES += -DRC_DISABLE_LUA
+ endif
+
+ # if not HAVE_NEW_CHEEVOS
else
- DEFINES += -DRC_DISABLE_LUA
+ OBJ += cheevos/cheevos.o \
+ cheevos/badges.o \
+ cheevos/var.o \
+ cheevos/cond.o
endif
endif
@@ -1720,6 +1722,11 @@ ifeq ($(HAVE_NETWORKING), 1)
NEED_CXX_LINKER = 1
DEFINES += -DHAVE_DISCORD
DEFINES += -Ideps/discord-rpc/include/ -Ideps/discord-rpc/thirdparty/rapidjson-1.1.0/include/
+
+ ifneq ($(HAVE_THREADS), 1)
+ DEFINES += -DDISCORD_DISABLE_IO_THREAD
+ endif
+
OBJ += deps/discord-rpc/src/discord_rpc.o \
deps/discord-rpc/src/rpc_connection.o \
deps/discord-rpc/src/serialization.o \
diff --git a/Makefile.ctr b/Makefile.ctr
index c276e79b3e..9e96d6f6bc 100644
--- a/Makefile.ctr
+++ b/Makefile.ctr
@@ -68,7 +68,6 @@ else
HAVE_7ZIP = 1
HAVE_BUILTINZLIB = 1
HAVE_LIBRETRODB = 1
- HAVE_ZARCH = 0
HAVE_MATERIALUI = 1
HAVE_XMB = 1
HAVE_STATIC_VIDEO_FILTERS = 1
@@ -137,7 +136,6 @@ CFLAGS += -I. \
-Ideps/libz \
-Ideps/7zip \
-Ideps/stb \
- -Ideps/rcheevos/include \
-Ilibretro-common/include
CFLAGS += -DRARCH_INTERNAL -DRARCH_CONSOLE
diff --git a/Makefile.libnx b/Makefile.libnx
index 566730ecb3..df8a4de7cc 100644
--- a/Makefile.libnx
+++ b/Makefile.libnx
@@ -41,7 +41,7 @@ HAVE_NETWORKING = 1
HAVE_NETPLAYDISCOVERY = 1
HAVE_STB_FONT = 1
HAVE_CHEEVOS = 1
-HAVE_CHD = 1
+HAVE_CHD = 0 # disabled due to static libretro-common and libchdr conflicts between different cores
HAVE_STB_VORBIS = 1
# RetroArch libnx useful flags
@@ -56,18 +56,13 @@ HAVE_LANGEXTRA = 1
ifeq ($(HAVE_OPENGL), 1)
HAVE_EGL = 1
HAVE_SHADERPIPELINE = 1
-
HAVE_RGUI = 1
HAVE_MATERIALUI = 1
-
HAVE_XMB = 1
HAVE_OZONE = 1
-
HAVE_OVERLAY = 1
else
HAVE_RGUI = 1
-
- HAVE_ZARCH = 0
HAVE_MATERIALUI = 0
HAVE_XMB = 0
HAVE_OZONE = 0
diff --git a/Makefile.orbis b/Makefile.orbis
index ee0e5a8a44..b0cba71a20 100644
--- a/Makefile.orbis
+++ b/Makefile.orbis
@@ -30,18 +30,17 @@ else
HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_ZLIB := 1
- HAVE_OVERLAY := 1
+ HAVE_OVERLAY := 1
HAVE_7ZIP := 1
HAVE_EGL := 1
- HAVE_OPENGLES := 1
+ HAVE_OPENGLES := 1
HAVE_NETWORKING := 0
HAVE_SOCKET_LEGACY := 0
HAVE_MENU := 1
HAVE_MENU_COMMON := 1
HAVE_RGUI := 0
- HAVE_MATERIALUI := 0
- HAVE_XMB := 1
- HAVE_ZARCH := 0
+ HAVE_MATERIALUI := 0
+ HAVE_XMB := 1
HAVE_THREADS := 1
HAVE_LIBRETRODB := 1
HAVE_CC_RESAMPLER := 1
diff --git a/Makefile.switch b/Makefile.switch
index fb27990459..8c75e91dd4 100644
--- a/Makefile.switch
+++ b/Makefile.switch
@@ -24,7 +24,6 @@ else
HAVE_ZLIB = 1
HAVE_BUILTINZLIB = 1
HAVE_LIBRETRODB = 1
- HAVE_ZARCH = 0
HAVE_MATERIALUI = 0 # enable later?
HAVE_XMB = 0
HAVE_STATIC_VIDEO_FILTERS = 1
diff --git a/Makefile.wiiu b/Makefile.wiiu
index 58412548df..7515fc6eab 100644
--- a/Makefile.wiiu
+++ b/Makefile.wiiu
@@ -122,7 +122,6 @@ endif
HAVE_7ZIP = 1
HAVE_BUILTINZLIB = 0
HAVE_LIBRETRODB = 1
- HAVE_ZARCH = 0
HAVE_MATERIALUI = 1
HAVE_XMB = 1
HAVE_STB_FONT = 1
diff --git a/audio/audio_defines.h b/audio/audio_defines.h
new file mode 100644
index 0000000000..14693aa296
--- /dev/null
+++ b/audio/audio_defines.h
@@ -0,0 +1,88 @@
+/* RetroArch - A frontend for libretro.
+ * Copyright (C) 2010-2014 - Hans-Kristian Arntzen
+ * Copyright (C) 2011-2017 - Daniel De Matteis
+ *
+ * RetroArch is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Found-
+ * ation, either version 3 of the License, or (at your option) any later version.
+ *
+ * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with RetroArch.
+ * If not, see .
+ */
+
+#ifndef __AUDIO_DEFINES__H
+#define __AUDIO_DEFINES__H
+
+#include
+
+RETRO_BEGIN_DECLS
+
+#define AUDIO_CHUNK_SIZE_BLOCKING 512
+
+/* So we don't get complete line-noise when fast-forwarding audio. */
+#define AUDIO_CHUNK_SIZE_NONBLOCKING 2048
+
+#define AUDIO_MAX_RATIO 16
+
+#define AUDIO_MIXER_MAX_STREAMS 16
+
+#define AUDIO_MIXER_MAX_SYSTEM_STREAMS (AUDIO_MIXER_MAX_STREAMS + 4)
+
+/* do not define more than (MAX_SYSTEM_STREAMS - MAX_STREAMS) */
+enum audio_mixer_system_slot
+{
+ AUDIO_MIXER_SYSTEM_SLOT_OK = AUDIO_MIXER_MAX_STREAMS,
+ AUDIO_MIXER_SYSTEM_SLOT_CANCEL,
+ AUDIO_MIXER_SYSTEM_SLOT_NOTICE,
+ AUDIO_MIXER_SYSTEM_SLOT_BGM
+};
+
+enum audio_action
+{
+ AUDIO_ACTION_NONE = 0,
+ AUDIO_ACTION_RATE_CONTROL_DELTA,
+ AUDIO_ACTION_MIXER_MUTE_ENABLE,
+ AUDIO_ACTION_MUTE_ENABLE,
+ AUDIO_ACTION_VOLUME_GAIN,
+ AUDIO_ACTION_MIXER_VOLUME_GAIN,
+ AUDIO_ACTION_MIXER
+};
+
+enum audio_mixer_slot_selection_type
+{
+ AUDIO_MIXER_SLOT_SELECTION_AUTOMATIC = 0,
+ AUDIO_MIXER_SLOT_SELECTION_MANUAL
+};
+
+enum audio_mixer_stream_type
+{
+ AUDIO_STREAM_TYPE_NONE = 0,
+ AUDIO_STREAM_TYPE_USER,
+ AUDIO_STREAM_TYPE_SYSTEM
+};
+
+enum audio_mixer_state
+{
+ AUDIO_STREAM_STATE_NONE = 0,
+ AUDIO_STREAM_STATE_STOPPED,
+ AUDIO_STREAM_STATE_PLAYING,
+ AUDIO_STREAM_STATE_PLAYING_LOOPED,
+ AUDIO_STREAM_STATE_PLAYING_SEQUENTIAL
+};
+
+typedef struct audio_statistics
+{
+ float average_buffer_saturation;
+ float std_deviation_percentage;
+ float close_to_underrun;
+ float close_to_blocking;
+ unsigned samples;
+} audio_statistics_t;
+
+RETRO_END_DECLS
+
+#endif
diff --git a/audio/audio_driver.c b/audio/audio_driver.c
index 9290dc41b1..6633d8147b 100644
--- a/audio/audio_driver.c
+++ b/audio/audio_driver.c
@@ -21,10 +21,12 @@
#include
#include