Skip to content

Commit 15351dc

Browse files
authored
Merge branch 'libretro:master' into wp_presentation
2 parents b5f2df5 + 2d1f507 commit 15351dc

File tree

276 files changed

+28854
-7720
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

276 files changed

+28854
-7720
lines changed

.dir-locals.el

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22
;;; See Info node `(emacs) Directory Variables' for more information.
33

44
(
5-
(c-mode . ((c-basic-offset . 3)
5+
(c-mode . ((standard-indent . 3)
6+
(c-basic-offset . 3)
67
(c-file-offsets . ((arglist-intro . ++)
7-
(arglist-cont-nonempty . ++)))
8+
(arglist-cont-nonempty . ++)
9+
(block-close . 0)
10+
(block-open . 0)))
811
(eval . (setq-local c-cleanup-list
912
(cl-set-difference c-cleanup-list
1013
'(brace-else-brace

CHANGES.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
11
# Future
2+
- ANDROID: OnNewIntent handler to allow launchers start new content without closing first
23
- APPLE: Include sameduck, gearcoleco, geargrafx cores in App Store builds
34
- APPLE: Include reminiscence, virtualjaguar, vitaquake2 cores in App Store builds
5+
- APPLE: Include gam4980 core in App Store builds
46
- APPLE: Bundle identifier added to Information menu
57
- APPLE: Option to control the usage of Metal argument buffers
68
- APPLE: Don't force fullscreen, allow multitasking on iPad
9+
- APPLE: AppIntents for Siri, Shortcuts
10+
- APPLE: Fix ffmpeg camera driver
711
- AUDIO: Microphone CoreAudio driver for iOS and macOS
12+
- AUTOCONF: Autoconfig match extended with a physical identifier
813
- CAMERA: Use ffmpeg libavfilter virtual input device as default
914
- CHEEVOS: Show additional message for unsupported achievements
15+
- CHEEVOS: Upgrade to rcheevos 12.0
16+
- DATABASE: Filter in Database Manager now works for genre and region
1017
- CLOUDSYNC: Enable icloud_drive cloud sync backend on MacOS / iOS
1118
- CLOUDSYNC: Don't always trust the server hash
1219
- CLOUDSYNC: Enable WebDAV support for Android
1320
- CLOUDSYNC: Speed up cloudsync on Apple
1421
- DATABASE: Improve multidisk game scanning
22+
- EMSCRIPTEN: Support core switching
1523
- EMSCRIPTEN: Support suspend screensaver
1624
- EMSCRIPTEN/RWEBCAM: Fix camera driver
1725
- EMSCRIPTEN/RWEBINPUT: Add accelerometer/gyroscope support
@@ -23,10 +31,23 @@
2331
- INPUT: Fix menu usage when OK/Cancel has mouse binds
2432
- INPUT: Ignore menu mouse startup position before moving
2533
- INPUT: Fix heavy slowdown when using Bluetooth XInput controllers with rumble
34+
- INPUT: Reset and close content hotkeys now require confirmation, similar to quit
35+
- INPUT: Menu toggle and hotkey enable can now be assigned to the same key
36+
- INPUT/ANDROID: Favor mouse coordinates for lightgun
2637
- INPUT/UDEV: Fix lost terminal settings after restart from menu
38+
- INPUT/BSV/REPLAY: Bumped replay format version to 2. Old replays will still play back fine.
39+
- INPUT/BSV/REPLAY: Add option to skip deserializing checkpoints from replay files (it introduces jank in some emulators).
40+
- INPUT/BSV/REPLAY: Add checkpoint and initial savestate compression, following the `savestate_file_compression` config boolean. Use zstd if available, or fall back to zlib.
41+
- INPUT/BSV/REPLAY: Add incremental checkpoints based on statestreams (depending on `HAVE_STATESTREAM` compile time flag). As an example, 60 `pcsx_rearmed` savestates would take 267MB uncompressed; with incremental encoding this is reduced to 77MB. Compressing the result can reduce the size to just 4MB.
42+
- INPUT/BSV/REPLAY: Checkpoint compression and encoding can be combined. For example, 60 `pcsx_rearmed` checkpoints can take up just 15MB if each state is incremental and compressed. This is not as optimal as using incremental states without save state compression followed by offline compression, but is a good compromise in many use cases.
43+
- INPUT/BSV/REPLAY: Add hotkeys and text commands to force a checkpoint insertion into the currently recording replay, and to seek backwards to the previous checkpoint and forwards to the next checkpoint.
44+
- INPUT/BSV/REPLAY: Add a text command to seek to a specific frame of the currently playing/recording replay; it will return via the command replier the actual seeked-to frame (right now it only supports seeking to checkpoints).
2745
- INTL: Add Irish Gaelic to selectable languages
2846
- IOS: Fix crash on iOS9 when fetching refresh rate
47+
- LIBRETRO: Deprecate intfstream_open_writable_memory
48+
- LIBRETRO: New environment function RETRO_ENVIRONMENT_GET_TARGET_SAMPLE_RATE
2949
- LINUX: Add full complement of key/value pairs to desktop entry
50+
- MACOS: Fix coreaudio microphone handling
3051
- MENU: Common Thumbnail Background option for all menu drivers
3152
- MENU: Move core options reset from Settings/Configuration to Main Menu / Configuration Files
3253
- MENU: Use right analog stick for thumbnail cycling in playlists
@@ -40,27 +61,45 @@
4061
- MENU: Unwanted input is prevented when menu is triggered by toggle combo
4162
- MENU: 32-bit values in cheats and rumble are not presented as huge lists
4263
- MENU: Less important widgets are now sized like task notifications
64+
- MENU: Play count is added to runtime log
65+
- MENU: Configurable startup page (several options beside default Main Menu)
66+
- MENU: Shader menu rework, combined save/remove menus, save current, Y and Start hotkeys for shader parameters and background opacity toggle
67+
- MENU: Single-click start option from playlists and Explore view
68+
- MENU: Allow kiosk mode and hiding of Settings menu also in GLUI and RGUI
69+
- MENU: Task widget improvements
70+
- MENU/GLUI: Show thumbnails in Explore view
4371
- MENU/XMB: Select button toggles thumbnails in playlists
4472
- MENU/XMB,OZONE: Fix content icons when playlist tabs are hidden
4573
- MENU/OZONE: Horizontal padding factor option
4674
- MENU/OZONE: Custom font selection and scaling factor
75+
- MENU/RGUI: Clock format is now configurable and moved to top header
4776
- NETWORK: Fixes for nmcli wifi driver
4877
- NETWORK: Network command interface enabled for Android, iOS, TVOS
4978
- OTHER: ZStandard support and libchdr update for support of chd files converted with createdvd option
5079
- OVERLAY: Speed limit on touch pointer tracking
80+
- OVERLAY: Dedicate each touch pointer to hitboxes or pointing devices
5181
- PLAYLIST: Built-in playlists are now stored under playlists/builtin
5282
- PLAYLIST: Fix subsystem information in playlists
83+
- PS3: Fix psl1ght target of dist-cores.sh
5384
- REPLAY: Bugs fixed regarding rewind
5485
- REPLAY: Same timeline check and future state check for replays vs. savestates
5586
- SAVESTATES: Savestate thumbnails are default enabled for x86_64 builds
87+
- SAVESTATES: Slot is now remembered using the runtime log file
88+
- SAVESTATES: Slot hotkey widget shows save state thumbnail
5689
- VIDEO: Fix auto swap interval setup
5790
- VIDEO: Improvements for integer scale half scaling
5891
- VIDEO: Frame delay improvements for the automatic setting
92+
- VIDEO: Auto-enable GPU recording with HW context cores
93+
- VIDEO: Fix viewport bias when using custom aspect ratio
5994
- VIDEO/D3D11/D3D12: snappy extra vsync presentation mode
95+
- VIDEO/GL: Fallback OpenGL symbol loader for Linux devices with EGL < 1.5
96+
- VIDEO/GL: Support for Cg and GLSL shaders in the GLCore video driver
6097
- VIDEO/SHADER: Shader hold function, useful for some lightguns and shader comparison
6198
- VIDEO/SWITCHRES: Horizontal and vertical geometry adjustment options added
6299
- VIDEO/SWITCHRES: Game overrides
63100
- VIDEO/WAYLAND: Support for xdg-toplevel-icon-v1
101+
- VIDEO/WAYLAND: Fix deadlock when using Wayland Vulkan driver
102+
- VITA: Touchscreen support for PS Vita
64103
- WEBOS: Various fixes and tunings
65104
- WEBOS: Disable core dumps
66105
- WEBOS: Debug builds enabled

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
HAVE_FILE_LOGGER=1
2+
HAVE_STATESTREAM?=1
23
NEED_CXX_LINKER?=0
34
NEED_GOLD_LINKER?=0
45
MISSING_DECLS =0

Makefile.common

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,12 @@ endif
451451

452452
ifeq ($(HAVE_BSV_MOVIE), 1)
453453
DEFINES += -DHAVE_BSV_MOVIE
454+
OBJ += input/bsv/bsvmovie.o
455+
endif
456+
457+
ifeq ($(HAVE_STATESTREAM), 1)
458+
DEFINES += -DHAVE_STATESTREAM
459+
OBJ += input/bsv/uint32s_index.o
454460
endif
455461

456462
ifeq ($(HAVE_RUNAHEAD), 1)

Makefile.ctr

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ ifeq ($(GRIFFIN_BUILD), 1)
6868
#DEFINES += -DHAVE_SOCKET_LEGACY
6969
#-DHAVE_SSL -DHAVE_BUILTINMBEDTLS -DMBEDTLS_SSL_DEBUG_ALL
7070
#ssl is currently incompatible with griffin due to use of the "static" flag on repeating functions that will conflict when included in one file
71+
CFLAGS += -I. \
72+
-Ideps \
73+
-Ideps/7zip \
74+
-Ideps/stb \
75+
-Ideps/mbedtls \
76+
-Ideps/rcheevos/include \
77+
-Ilibretro-common/include \
78+
-Ilibretro-common/include/compat/zlib
7179
else
7280
HAVE_CC_RESAMPLER = 1
7381
HAVE_MENU_COMMON = 1
@@ -104,7 +112,7 @@ else
104112
HAVE_CLOUDSYNC = 1
105113

106114
include Makefile.common
107-
CFLAGS += $(DEF_FLAGS)
115+
CFLAGS += $(DEF_FLAGS) -I. $(INCLUDE_DIRS)
108116
endif
109117

110118
ifeq ($(strip $(DEVKITPRO)),)
@@ -180,14 +188,6 @@ ifeq ($(WHOLE_ARCHIVE_LINK), 1)
180188
WHOLE_END := -Wl,--no-whole-archive
181189
endif
182190

183-
CFLAGS += -I. \
184-
-Ideps \
185-
-Ideps/7zip \
186-
-Ideps/stb \
187-
-Ideps/mbedtls \
188-
-Ideps/rcheevos/include \
189-
-Ilibretro-common/include \
190-
-Ilibretro-common/include/compat/zlib
191191

192192
CFLAGS += -DRARCH_INTERNAL -DRARCH_CONSOLE
193193
CFLAGS += -DHAVE_FILTERS_BUILTIN $(DEFINES)

Makefile.emscripten

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ OBJ :=
1414
DEFINES := -DRARCH_INTERNAL -DHAVE_MAIN -DEMSCRIPTEN
1515
DEFINES += -DHAVE_FILTERS_BUILTIN -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORE_INFO
1616

17+
HAVE_STATESTREAM ?= 1
1718
HAVE_PATCH = 1
1819
HAVE_DSP_FILTER = 1
1920
HAVE_VIDEO_FILTER = 1
@@ -161,7 +162,7 @@ ifeq ($(HAVE_SDL2), 1)
161162
endif
162163

163164
LDFLAGS := -L. --no-heap-copy -s STACK_SIZE=$(STACK_SIZE) -s INITIAL_MEMORY=$(INITIAL_HEAP) \
164-
-s EXPORTED_RUNTIME_METHODS=$(EXPORTS) \
165+
-s EXPORTED_RUNTIME_METHODS=$(EXPORTS) -s EXIT_RUNTIME=1 \
165166
-s ALLOW_MEMORY_GROWTH=1 -s EXPORTED_FUNCTIONS="$(EXPORTED_FUNCTIONS)" \
166167
-s MODULARIZE=1 -s EXPORT_ES6=1 -s EXPORT_NAME="libretro_$(subst -,_,$(LIBRETRO))" \
167168
-s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=0 \

audio/drivers/audioworklet.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,19 @@ bool audioworklet_external_block(void)
431431
}
432432
#endif
433433

434+
/* called on program exit */
435+
void audioworklet_close(void)
436+
{
437+
audioworklet_data_t *audioworklet = audioworklet_static_data;
438+
439+
if (!audioworklet)
440+
return;
441+
442+
MAIN_THREAD_EM_ASM({
443+
emscriptenGetAudioObject($0).close();
444+
}, audioworklet->context);
445+
}
446+
434447
static bool audioworklet_stop(void *data)
435448
{
436449
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;

audio/drivers/coreaudio.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ static bool coreaudio_start(void *data, bool is_shutdown)
383383
if (dev)
384384
{
385385
dev->is_paused = (AudioOutputUnitStart(dev->dev) == noErr) ? false : true;
386-
if (dev->is_paused)
386+
if (!dev->is_paused)
387387
return true;
388388
}
389389
return false;

0 commit comments

Comments
 (0)