Compare commits

...

4263 Commits

Author SHA1 Message Date
zoltanvb b54b95a04d
Fix for potential crash in autodetect (#18198) 2025-08-25 12:07:38 +02:00
zoltanvb 84c5722180
Change list update until 2025-08-22 (#18193) 2025-08-24 10:36:19 +02:00
gouchi d1e36d9f11
Update com.libretro.RetroArch.desktop (#18195) 2025-08-24 10:36:09 +02:00
Eric Warmenhoven 3f21e88f09
apple: include ClownMDEmu in App Store builds 2025-08-23 23:29:33 -04:00
github-actions 6e4924bce6 Fetch translations from Crowdin 2025-08-24 00:18:06 +00:00
zoltanvb 5ac96e8c62
Refine input driver selection: enable fallback to linuxraw in more cases. (#18196) 2025-08-24 00:57:58 +02:00
github-actions 6c120d07a8 Fetch translations from Crowdin 2025-08-22 00:16:25 +00:00
zoltanvb f7877df578
Extend autoconfig matching with a physical identifier (#18190) 2025-08-21 18:13:37 +02:00
github-actions 853bd62730 Fetch translations from Crowdin 2025-08-21 00:15:26 +00:00
github-actions 42b33fd1c4 Fetch translations from Crowdin 2025-08-19 00:16:29 +00:00
github-actions cd6ee1b251 Fetch translations from Crowdin 2025-08-18 00:18:40 +00:00
sonninnos adc8739ccb msg_hash reorderings and cleanups 2025-08-17 17:39:56 +03:00
BinBashBanana 1cf24c5afe
update emscripten get_proc_address (#18180) 2025-08-17 06:34:40 +02:00
sonninnos 79dbd3f1c0
Add option for returning to Main Menu from tabs (#18184) 2025-08-17 06:34:07 +02:00
github-actions c31727344a Fetch translations from Crowdin 2025-08-17 00:18:32 +00:00
github-actions e6328b5707 Fetch translations from Crowdin 2025-08-16 00:16:02 +00:00
sonninnos 631eca2ba6 Content load failure logging cleanup 2025-08-15 18:13:32 +03:00
sonninnos 07f8777fa5 More widget category type corrections 2025-08-15 17:41:03 +03:00
sonninnos 79b5778c7a Menu Remember Selection ifdef cleanup 2025-08-15 16:17:17 +03:00
sonninnos dc782cadb2 Widget message error type corrections 2025-08-15 16:12:51 +03:00
sonninnos ac47eb2bce
Increase playlist sublabel tmp size (#18177) 2025-08-15 15:49:59 +03:00
sonninnos 3111f62521
Add menu startup page option (#18175) 2025-08-15 13:37:20 +02:00
github-actions 44746d541b Fetch translations from Crowdin 2025-08-15 00:17:50 +00:00
Aleksey Samoilov f0370a1bfb
ui/qt6: replace deprecated count() with size() (#18169)
* Bump required wayland-protocols

* ui/qt: replace deprecated count with size
2025-08-12 20:35:14 +02:00
github-actions e31f9c2963 Fetch translations from Crowdin 2025-08-12 00:17:11 +00:00
Eric Warmenhoven a35f91d95f
apple: AppIntents (Siri, Shortcuts) (#18167) 2025-08-11 21:41:11 +02:00
zoltanvb 9c9f5aa8d0
Touchscreen support for PS Vita (#18165) 2025-08-11 10:47:44 +02:00
sonninnos 887effcb76 Smaller widget size for refresh rate change 2025-08-10 15:20:28 +03:00
sonninnos b00ae41e41 Logging format unifications 2025-08-10 15:18:42 +03:00
sonninnos 7cdb5aefaf No core reloading without dynamic 2025-08-10 15:13:14 +03:00
sonninnos 80319a9918
GLUI: Show thumbnails in Explore (#18166) 2025-08-10 15:10:01 +03:00
github-actions 719a643fb2 Fetch translations from Crowdin 2025-08-10 00:19:18 +00:00
Eric Warmenhoven e6514de3a7
(audio) minor follow up fix to 3aa8db2.
Fixes #18164
2025-08-09 11:58:02 -04:00
Eric Warmenhoven c404e22a79
apple: default audio/mic drivers are coreaudio 2025-08-07 23:11:25 -04:00
Eric Warmenhoven 4bdaf7fd4c
Merge pull request #18162 from warmenhoven/warmenhoven/pr/macOS-Core-Audio-Mic-Fix
macos coreaudio mic fix
2025-08-07 22:56:03 -04:00
Eric Warmenhoven 752de1e2c5
Merge remote-tracking branch 'libretro/master' into warmenhoven/dev/macOS-Core-Audio-Mic-Fix 2025-08-07 22:51:24 -04:00
Eric Warmenhoven 282308d800
macos: fix coreaudio mic default device 2025-08-07 22:51:03 -04:00
libretroadmin 5e6a2984c7 Replace some usage of strchr with memchr 2025-08-08 04:12:08 +02:00
libretroadmin 07388c5ab2 slang_get_include_file - avoid strlen call 2025-08-08 03:51:41 +02:00
libretroadmin 448b6e3aa0 (net_http) Style nits/cleanups 2025-08-08 03:39:33 +02:00
libretroadmin 23d1e4977a net_http_urlencode_full - exit out of the loop after the last slash
isntead of always iterating over it 3 times
2025-08-08 03:20:51 +02:00
Eric Warmenhoven 9728e5914d
Merge remote-tracking branch 'libretro/master' into warmenhoven/dev/macOS-Core-Audio-Mic-Fix 2025-08-07 18:04:21 -04:00
刘皓 6775559c25
Fix deadlock in `flush_wayland_fd()` when using Wayland Vulkan driver (#18161) 2025-08-07 21:41:49 +02:00
libretroadmin b6c5615c58 (configuration.c) Remove more gotos 2025-08-07 18:55:46 +02:00
libretroadmin 57cf4011ec Reduce gotos in command.c/core_backup.c 2025-08-07 18:42:38 +02:00
libretroadmin 3aa8db2c08 (Audio) SOme control flow changes (no functional changes) and some cleanups 2025-08-07 17:35:00 +02:00
libretroadmin e3a5c5ea46 (XAudio2) Don't make xa_use_float hardcoded anymore 2025-08-07 16:24:33 +02:00
github-actions 31e54cabfe Fetch translations from Crowdin 2025-08-07 00:18:24 +00:00
刘皓 46045a1165
Fix FBO texture format in GLCore driver when using Cg/GLSL shaders (#18158) 2025-08-06 18:15:46 +02:00
Craig e4f1f25d10
webOS: Update to use new buildroot naming, add libatomic (#18157)
* webOS: add libatomic from toolchain for ppsspp

* webOS: Update naming scheme for buildroot
2025-08-06 18:15:29 +02:00
sonninnos 64c15f545f Use 'generic message' widget style in Disc Control 2025-08-06 15:29:02 +03:00
libretroadmin 9b6ddfb727 Turn iteration variables from unsigned to size_t or int 2025-08-06 08:04:11 +02:00
libretroadmin fe5ea7ad45 (rcheevos) CXX_BUILD compatibility 2025-08-06 04:53:00 +02:00
libretroadmin 7736095525 Update for CXX_BUILD 2025-08-06 04:44:32 +02:00
libretroadmin 4f70c5aa2a We dont need to use av_strlcpy - we already have libretro-common
strlcpy
2025-08-06 03:25:54 +02:00
libretroadmin b5530658a4 (Record FFMPEG) Get rid of all the cplusplus ifdefs 2025-08-06 03:21:02 +02:00
sonninnos 8376b06611 Fix broken replay checkpoint interval dropdown 2025-08-06 04:05:56 +03:00
sonninnos d5b33d8e29 Do screenshot widget aspect ratio correction always 2025-08-06 03:55:23 +03:00
sonninnos b129c605f6 Remove useless dupe rec state ptr get 2025-08-06 03:50:20 +03:00
sonninnos 39f840eedc Disable overlay mouse cursor by default 2025-08-06 03:43:31 +03:00
sonninnos 3164cdb352 Tab cleanup 2025-08-06 03:40:39 +03:00
sonninnos 02e932e21f Allow full savestate support without info file 2025-08-06 03:40:39 +03:00
github-actions 129616be88 Fetch translations from Crowdin 2025-08-06 00:18:18 +00:00
libretroadmin 9e78ad0c88 (AVFoundation/Camera) Fix some header includes 2025-08-06 01:01:36 +02:00
libretroadmin cf3de275a3 (FFMPEG) Linker fixes for CXX_BUILD 2025-08-06 00:59:11 +02:00
libretroadmin 50e8308027 CXX_BUILD buildfix for shader_Gl3 2025-08-06 00:42:28 +02:00
libretroadmin 661e5b55cb Some more malloc/realloc casts for C++ 2025-08-06 00:31:42 +02:00
libretroadmin 151d49311d Some CXX_BUILD buildfixes 2025-08-06 00:12:21 +02:00
libretroadmin 6efdb108ae Naming convention standardizations 2025-08-05 22:54:18 +02:00
libretroadmin 98d4d5faec slang_preprocess_parse_parameters - no more gotos 2025-08-05 22:11:50 +02:00
libretroadmin 8181583298 Try to reserve 'error' keyword for goto labels, use 'err' for
variables and arguments instead
2025-08-05 21:02:49 +02:00
sonninnos 93bd70cd48 Don't overwrite existing builtin playlist 2025-08-05 21:38:11 +03:00
libretroadmin 21773761d7 Silence some more code analysis warnings 2025-08-05 20:05:25 +02:00
libretroadmin 52e6566300 Some code analysis fixes 2025-08-05 19:52:00 +02:00
sonninnos d67da2d1b1
State slot hotkey refactor (#18152) 2025-08-05 19:47:11 +02:00
刘皓 351fd6a66b
Destroy feedback framebuffer/texture when GLCore driver is destroyed (#18153) 2025-08-05 19:46:52 +02:00
libretroadmin 83c3e589e5 Fix OpenAL logs 2025-08-05 19:45:55 +02:00
libretroadmin 27f27c351f Turn C++ comments to C comments 2025-08-05 19:14:03 +02:00
刘皓 c8ab73607c
Add support for Cg and GLSL shaders in the glcore video driver (#18151) 2025-08-05 18:55:29 +02:00
libretroadmin 248af45eaf Fix more static code analysis warnings - bunch of garbage values
and double frees fixed in core_info.c
2025-08-05 17:51:25 +02:00
libretroadmin 1d4f663506 Silence code analysis warnings 2025-08-05 17:32:30 +02:00
libretroadmin a39ed1a822 (SDL_audio) Add missing header include 2025-08-05 07:27:36 +02:00
libretroadmin d59adf7643 (SDL_Audio) Add device_list_new/device_list_free 2025-08-05 07:09:22 +02:00
刘皓 65d617e378
Implement fallback OpenGL symbol loader for Linux devices with EGL < 1.5 (#18135)
* Implement fallback OpenGL symbol loader for Linux devices with EGL < 1.5

The `eglGetProcAddress` in old versions of EGL can only get extension
functions, so we need to supplement it with another symbol loader that
can get non-extension functions.

* Close `g_egl_gl_dll` if `egl_init_context()` fails

* Close `g_egl_gl_dll` when VideoCore driver is destroyed

* Defer loading of `g_egl_gl_dll` until needed

* Fix typo in `egl_destroy_gl_dll`

* Remove redundant `ptr` variable in `egl_init_context`

* Remove redundant call to `egl_destroy_gl_dll` in `egl_init_context`

* Remove another redundant call to `egl_destroy_gl_dll` in `egl_init_context`
2025-08-05 06:50:22 +02:00
libretroadmin 5477ad32f6 (OpenAL) You're able to select the audio device now from the menu
and for it to be set on the fly
2025-08-05 04:49:55 +02:00
libretroadmin babd363987 Style nits/cleanups - control flow refactors 2025-08-05 04:22:41 +02:00
sonninnos 44bd3b21d5 Error widget category and size corrections 2025-08-05 03:22:11 +03:00
github-actions f39914de4a Fetch translations from Crowdin 2025-08-05 00:18:29 +00:00
sonninnos 95df52bf6b Load content widget fixes and cleanups 2025-08-05 03:10:51 +03:00
libretroadmin c14708e3ed (libretro-db) Get rid of goto 2025-08-05 00:01:35 +02:00
libretroadmin 546388a5bd Reduce some gotos in tasks 2025-08-04 23:34:53 +02:00
libretroadmin 274139dff1 (tasks) Get rid of some gotos 2025-08-04 23:34:53 +02:00
sonninnos 38fa199f7a Put these core info init things back 2025-08-05 00:23:32 +03:00
sonninnos 5fb551ae2e XMB: Fix dynamic wallpaper unwanted reset 2025-08-04 23:43:38 +03:00
sonninnos 85d59c0b65 XMB: Make sure wallpaper path is empty on init 2025-08-04 23:20:13 +03:00
sonninnos 139dd38f9d Always use the same swap button default 2025-08-04 21:42:11 +03:00
libretroadmin 10c6d45850 vulkan_draw_quad - buildfix 2025-08-04 19:42:55 +02:00
libretroadmin 7dabae94c5 Buildfix 2025-08-04 19:40:24 +02:00
libretroadmin 03dbcc53e7 Get rid of superfluous macros around memcmp and strcpy 2025-08-04 19:30:03 +02:00
sonninnos 563b687db8 Auto+entry state sanity checks and reorderings 2025-08-04 19:17:12 +03:00
Eric Warmenhoven 8b11aec44d
apple: include gam4980 core in App Store builds 2025-08-04 07:45:53 -04:00
libretroadmin e3435221d8 (OpenAL) Implement device_list_new/device_list_free 2025-08-04 07:49:26 +02:00
libretroadmin d9d951b92e Silence another warning 2025-08-04 07:14:10 +02:00
libretroadmin 917e29c039 Try to silence some more warnings 2025-08-04 06:57:29 +02:00
libretroadmin 86e65d10be (XAudio2) Buildfix, and implement non-mmdevice codepath for querying
the samplerate of the device
2025-08-04 06:49:16 +02:00
sonninnos d66dd00078
RGUI: Layout + date format adjustments (#18147) 2025-08-04 06:39:32 +02:00
libretroadmin cb9ed749db (XAudio) Replicate behavior of WASAPI - selecting the audio
device will set the samplerate set by the OS as well
NOTE: There is still something wrong with the XAudio2 driver
and the 'devices' it enumerates and shows in the menu. It seems
the index is wrong, i.e. the entries seem swapped around. This
was an issue even before this commit. WASAPI seems to work correctly
2025-08-04 05:33:06 +02:00
github-actions 780eac62e6 Fetch translations from Crowdin 2025-08-04 00:25:08 +00:00
libretroadmin fc98e894a6 Fix Griffin builds - MMDevice should be OK from Vista and up 2025-08-04 01:34:58 +02:00
libretroadmin 732f598fd0 Define LEGACY_WIN32 only in the files that need it 2025-08-04 00:54:15 +02:00
libretroadmin 537712a634 (MMDevice) Changes:
* Add mmdevice_samplerate
* _WIN32_WINNT checks will fail on modern MSYS2/MIngw-w64 setups (Win10/11) -
_WINN32_WINNT will be 0x0601 (1537) - i.e. Win7 and up. We can assume MMDevice
is available since Vista, so lower these checks to Vista and up
2025-08-03 22:07:33 +02:00
libretroadmin 1cb78161a6 (WASAPI/MMDevice) Move MMDevice specific code over to mmdevice_common.c 2025-08-03 16:34:35 +02:00
zoltanvb 3706c3b22d
Enable sdl12-compat and sdl-compat detection (#18142) 2025-08-03 15:47:08 +02:00
Eric Warmenhoven 7dc3d1ed9b
ios9: fix loading cores 2025-08-03 00:47:18 -04:00
sonninnos 0990e25022 Auto load state playlist entry band-aid 2025-08-03 05:23:38 +03:00
libretroadmin 51cc74d0e0 (Xaudio2) Move the set wave format up earlier before CreateMasteringVoice,
override the 'sampling rate' variable, and set the new sampling rate in
case it gest overwritten by a new value. Next step will be to query the
OS device's default sampling rate and use that
2025-08-03 02:42:19 +02:00
github-actions a30b3ce1e2 Fetch translations from Crowdin 2025-08-03 00:19:32 +00:00
sonninnos 5eca25067a
Add play count to runtime log (#18141) 2025-08-03 01:19:37 +02:00
sonninnos 405c3476f5
Save state slot improvements (#18140)
* Stop polluting playlists with redundant entry_slot numbers

* Playlist entry_slot improvements and cleanups

* Save current state slot to runtime log
2025-08-02 23:38:18 +02:00
libretroadmin ecbc05de6b (Audio drivers) Some cleanups 2025-08-02 21:18:50 +02:00
libretroadmin a018f54559 (DirectSound) Set DirectSound back to signed 16bit integer 2025-08-02 19:27:12 +02:00
libretroadmin f8e35e5f11 (DirectSound) Some refactors 2025-08-02 19:25:46 +02:00
libretroadmin a3754306c9 (WASAPI) Unique namespacing of functions
(XAudio2) More logging
2025-08-02 18:41:13 +02:00
Jamiras 0e3c82ecd6
use new hook for chd intercept (#18139) 2025-08-02 18:11:47 +02:00
libretroadmin 84b07468f3 (Xaudio2) Refinement of initialization code - add some logs and make it more
like WASAPI
2025-08-02 18:09:46 +02:00
libretroadmin e7944cc1a8 (XAudio) xa_write - return what is being written 2025-08-02 16:35:15 +02:00
libretroadmin 24eb75dda0 (audio) Audio chunk sizes in this file seem to be only used for
cores that implement non-batch audio callback
2025-08-02 15:22:43 +02:00
libretroadmin d89988f7d7 (GX) Move audio chunk size defines to gx_audio.c 2025-08-02 15:07:49 +02:00
libretroadmin a485bf7f16 Namespace cleanups and style nits 2025-08-02 15:00:43 +02:00
libretroadmin 63a146f0ea (Pipewire) Namespace all static globals and functions with 'pwire_' 2025-08-02 14:23:15 +02:00
libretroadmin 3e29213d5e (WASAPI) Fix mistake 2025-08-02 07:58:44 +02:00
zoltanvb 108bbc3879
Favor mouse coordinates for lightgun on Android. (#18134)
If mouse is detected, use the respective coordinates for reporting lightgun state.
Coordinate conversion adjusted to other input drivers.
2025-08-01 22:18:27 +02:00
libretroadmin 83cdca400b Turn iteration variables into int/size_t types 2025-08-01 21:53:52 +02:00
libretroadmin 320bb32406 use int types for iteration variables 2025-08-01 20:20:06 +02:00
libretroadmin 88e0a0e8ca return variable name consistency 2025-08-01 19:52:38 +02:00
libretroadmin 9567f3cbd9 (audioio) Add TODO/FIXME 2025-08-01 19:50:26 +02:00
libretroadmin ab47260fca (Audio) write functions - return variable name consistency 2025-08-01 19:48:34 +02:00
libretroadmin 34bc60e6d4 (openAL) More correct way of removing tmpbuf 2025-08-01 17:32:09 +02:00
libretroadmin 77185a734d (OpenAL) Unroll al_fill_internal_buf into al_write 2025-08-01 16:52:04 +02:00
libretroadmin dc2bf1226e (SDL_Audio) Make (reasonable) assumption that AUDIO_F32SYS (float)
is unavailable for SDL1
2025-08-01 16:25:51 +02:00
libretroadmin 4bcf5dd1a2 (SDL) Buildfix 2025-08-01 16:17:53 +02:00
libretroadmin 0f510fad39 Revert "(OpenAL) Don't need to copy into intermediary buffer anymore (tmpbuf)"
This reverts commit ab7a3e9ffa.
2025-08-01 16:16:54 +02:00
libretroadmin c6622f5f0a (OpenAL) Changes: don't need has_float variable anymore 2025-08-01 14:23:00 +02:00
libretroadmin 5d43932aee (SDL_Audio) Changes:
* Clean up some log messages
* More robust implementation of float/s16 buffer size determination
2025-08-01 14:20:52 +02:00
libretroadmin 5fec502174 (SDL_Audio) Changes:
* Put back log messages but this time implement them properly, we first
show the requested spec, then show the received spec afterwards
* Implement floating point sample support, should be more optimal
2025-08-01 14:16:18 +02:00
libretroadmin 80f2d91ef3 (SDL_Audio) Changes:
* sdl_microphone_find_num_frames - duplicate function
* Duplicate log message
2025-08-01 14:02:18 +02:00
libretroadmin ab7a3e9ffa (OpenAL) Don't need to copy into intermediary buffer anymore (tmpbuf) 2025-08-01 12:42:55 +02:00
libretroadmin ef69296be3 Rewrite al_fill_internal_buf - only call memcpy if 3rd argument
is non-0
2025-08-01 04:59:58 +02:00
libretroadmin 318e3ca9c1 (OpenAL) Bugfix: sizeof should be float for float sample format 2025-08-01 03:41:18 +02:00
libretroadmin 4d76e042ad (OpenAL) Implement float sample format support - query support with
alIsExtensionPresent("AL_EXT_FLOAT32")
2025-08-01 02:41:48 +02:00
libretroadmin 1e2500f736 (openAL) Changes:
* Don't use alGetError anymore in hot loop
* Turn off looping (doesn't seem to be needed?)
* Some loop optimization
2025-08-01 00:25:54 +02:00
libretroadmin 8f4990e835 (WASAPI) Changes/style nits:
* Value that gets returned gets called _len
* Less calls to macro FIFO_WRITE_AVAIL
2025-07-31 19:17:33 +02:00
libretroadmin 072d953b01 Only increment written if ir is > 0 2025-07-31 14:32:52 +02:00
libretroadmin b425abd0bb (WASAPI) Small cleanups:
* written variable changed from 'ssize_t' to 'size_t'
* for loop rewritten to while
2025-07-31 14:26:55 +02:00
Fancy2209 817428b772
Fix psl1ght target of dist-cores.sh (#18130) 2025-07-31 11:39:38 +02:00
github-actions 1191c964b1 Fetch translations from Crowdin 2025-07-31 00:17:44 +00:00
Jamiras 3acebdac0a
fix invalid pointer reference when iterator gets cloned (#18129) 2025-07-30 10:57:13 +02:00
github-actions 09b9aec72e Fetch translations from Crowdin 2025-07-30 00:18:24 +00:00
Eric Warmenhoven 77f2d8cce5 fix webOS github action 2025-07-28 22:15:25 -04:00
Eric Warmenhoven 1d17a50a9d
ios: fix crash when scanning files 2025-07-28 21:52:51 -04:00
github-actions 4a256179ad Fetch translations from Crowdin 2025-07-29 00:19:49 +00:00
zoltanvb 85aa59dc4f
Enable database filter for genre and region (#18122) 2025-07-28 10:48:06 +02:00
github-actions 5e5f047e5b Fetch translations from Crowdin 2025-07-27 00:19:32 +00:00
github-actions 58dcecea08 Fetch translations from Crowdin 2025-07-26 00:16:51 +00:00
github-actions 0747dc6eb0 Fetch translations from Crowdin 2025-07-25 00:18:00 +00:00
zoltanvb 7280859069
Change "Start in fullscreen" item name (#18116)
* Change "Start in fullscreen" item name

https://github.com/libretro/RetroArch/issues/9515

I agree that current wording does not cover the functionality, this may be better.

* Refine fullscreen menu items.
2025-07-24 05:26:41 +02:00
github-actions 2364ef7827 Fetch translations from Crowdin 2025-07-24 00:18:08 +00:00
libretroadmin 590a945cc2 fifo_read - only call memcpy if 3rd argument is greater than 0 2025-07-23 16:03:55 +02:00
Jamiras 3829672dc1
(cheevos) upgrade to rcheevos 12.0 (#18117) 2025-07-23 04:04:15 +02:00
sonninnos a86c031410
Make reset and close content follow quit confirm logic (#18118) 2025-07-23 04:03:54 +02:00
libretroadmin 312550f499 (task_content.c) Cut down on some gotos 2025-07-22 17:51:37 +02:00
libretroadmin d9dba4e376 Revert "(task_content) Silence warning"
This reverts commit c1862dccc8.
2025-07-22 17:29:13 +02:00
libretroadmin 8dfc31461e Revert "* task_content.c"
This reverts commit 9b1d67c03a.
2025-07-22 17:27:04 +02:00
libretroadmin 5ba1e7077e Revert "content_init - don't need the switch when error_enum is not null"
This reverts commit e18b01302d.
2025-07-22 17:26:54 +02:00
libretroadmin 4c3a88a2f8 Revert "No longer shows unnecessary content info runloop message"
This reverts commit a6b7cf459e.
2025-07-22 17:26:25 +02:00
libretroadmin 051c5cff77 Revert "(task_content.c) Get rid of some more unnecessary gotos"
This reverts commit 903501f183.
2025-07-22 17:26:15 +02:00
libretroadmin 13c6eb53c9 Some more static code analysis fixes/cleanups 2025-07-22 17:17:20 +02:00
libretroadmin c1862dccc8 (task_content) Silence warning 2025-07-22 16:43:45 +02:00
libretroadmin 903501f183 (task_content.c) Get rid of some more unnecessary gotos 2025-07-22 16:42:23 +02:00
libretroadmin a6b7cf459e No longer shows unnecessary content info runloop message 2025-07-22 16:02:16 +02:00
libretroadmin e18b01302d content_init - don't need the switch when error_enum is not null 2025-07-22 15:42:05 +02:00
libretroadmin 9b1d67c03a * task_content.c
* content_file_load refactor - simplify
* error_string no longer needs to be dynamically allocated, make
a small local string and pass it around
2025-07-22 15:39:46 +02:00
libretroadmin 9e31b35f1b (task_content) content_file_list_append_temporary - simplify 2025-07-22 15:14:43 +02:00
libretroadmin e453abc71b standardize return variable names 2025-07-22 14:36:50 +02:00
libretroadmin 327621938b Cut down on gotos 2025-07-22 14:16:31 +02:00
libretroadmin 341f6d3df4 task_autodetect - cleanups - get rid of gotos 2025-07-22 04:14:20 +02:00
LibretroAdmin 9e0b21da5e
Revert "Optimize wastefully encoded raster image files (#18113)" (#18114)
This reverts commit af28b06d02.
2025-07-22 03:25:27 +02:00
Peter J. Mello af28b06d02
Optimize wastefully encoded raster image files (#18113)
Apply an aggressive set of ultimately deterministic optimizations to
raster image files where an actual file size reduction of not less than
50% was possible without the removal of intrinsic properties such as
alpha channels. Rendered image dimensions were always left unchanged.

The primary mechanisms employed during optimization are:
- PNG color mode conversion from TrueColor to indexed palette
  + Accomplished using NeuQuant neural-net color quantization algorithm
- Stripping of data blocks containing irrelevant information, such as:
  + XMP metadata fields
  + Embedded comment fields
  + ICC color profiles (simple graphics with basic color schemes only)
  + EXIF profiles
- Re-compression using "best" or "smallest" profile presets

All modifications are performed on lossless image formats and closely
visually inspected after processing to ensure no loss of apparent
details or introduction of new, unwanted artifacts.

Toolset used:
- RIOT (Radical Image Optimization Tool), v2024.1.0 64-bit
- AdvanceCOMP (part of the Advance Projects), v2.6 64-bit
- optiPNG, v7.9.1 64-bit
- PNGOUT, v2015.02.13 32-bit

Signed-off-by: Peter J. Mello <admin@petermello.net>
2025-07-22 03:15:29 +02:00
sonninnos d452cb843b Database scan logging cleanups 2025-07-22 03:50:27 +03:00
sonninnos 5afbd5f53d Widget color unifications 2025-07-22 03:40:17 +03:00
github-actions 26293387c4 Fetch translations from Crowdin 2025-07-22 00:18:18 +00:00
sonninnos d3756624c8 Menu ticker spacer simplifications 2025-07-22 01:47:14 +03:00
libretroadmin 4b77ad663a task_content.c - small cleanups, initialize variables being passed 2025-07-21 05:59:09 +02:00
libretroadmin e24ca9da66 (task_content.c) replace one magic number 2025-07-21 05:38:18 +02:00
libretroadmin f1198c65a3 (task_content.c) Get rid of some of the obtuse macros 2025-07-21 05:20:46 +02:00
github-actions d99d8a8547 Fetch translations from Crowdin 2025-07-21 00:19:14 +00:00
sonninnos 2153ab55ad Ozone Buildfix 2025-07-20 21:52:30 +03:00
sonninnos 9ab7cd6a62 Ozone: Fix sidebar non-playlist font ticker 2025-07-20 21:38:47 +03:00
sonninnos 8e30bbe3e2 Fix quick playlist manager builtin paths 2025-07-20 21:04:46 +03:00
libretroadmin eb6f0c8dba Get rid of winraw_scancodes enums 2025-07-20 12:52:12 +02:00
libretroadmin dc9ffcce66 (sinc resampler) style nits 2025-07-20 09:37:15 +02:00
libretroadmin 99fe15be46 Fix wasapi_microphone 2025-07-20 08:31:12 +02:00
libretroadmin 7b66dec4f0 core_info_list_new - fix potential leak on error 2025-07-20 08:24:18 +02:00
libretroadmin b0e344a423 Silence some code analysis warnings 2025-07-20 08:11:36 +02:00
libretroadmin 6182e39938 Split libretro_d3d.h up into two separate files 2025-07-20 06:26:12 +02:00
libretroadmin d821ce1062 Some UCRT64 buildfixes 2025-07-20 06:19:58 +02:00
LibretroAdmin 26b806f860
Rewrite file_list_insert - use memmove instead of a malloc and copy (#18097)
* Rewrite file_list_insert - use memmove instead of a malloc and copy

* Use INLINE keyword - C89 buildfix
2025-07-20 05:22:49 +02:00
libretroadmin fa2ce70c5b fifo_write - only do second memcpy call if rest_write > 0 2025-07-20 03:26:50 +02:00
libretroadmin 954d202637 string_remove_all_chars - only write if the character is not the
one to remove
2025-07-20 03:14:20 +02:00
libretroadmin 02f3f31121 scaler_gen_filter - small simplification 2025-07-20 02:38:04 +02:00
github-actions 974c016241 Fetch translations from Crowdin 2025-07-20 00:19:40 +00:00
LibretroAdmin e011e710bd
Make last_slash concatenation parts consistent (#18102) 2025-07-19 23:37:31 +02:00
libretroadmin ff652ce22d Fix typo 2025-07-19 22:54:51 +02:00
libretroadmin f8840774e3 (WASAPI) Get rid of IFACE_RELEASE macro 2025-07-19 22:51:49 +02:00
libretroadmin 99e7a80314 Inline uwpgdi.h into wgl_ctx.c 2025-07-19 21:59:54 +02:00
libretroadmin 4b5b214dea Move gdi_texture to gdi_gfx.c 2025-07-19 21:51:58 +02:00
libretroadmin 8ecb7eefd7 Merge rsx_defines.h into rsx_gfx.c 2025-07-19 21:47:56 +02:00
libretroadmin c9452d9263 (d3d9_common) Simplifications 2025-07-19 21:41:22 +02:00
neil4 c89a44b15b
Overlays: Dedicate each touch pointer to hitboxes or pointing devices (#18108)
- A touch pointer controlling the mouse/lightgun/pointer will ignore hitboxes if it slides into any.
- A touch pointer pressing a button will not control the mouse/lightgun/pointer if it slides out of the hitbox.
2025-07-19 20:20:29 +02:00
zoltanvb e04985162a
Change list update up to July 18. (#18107) 2025-07-19 20:18:48 +02:00
libretroadmin 0efe022e9d Remove audio/common/alsathread.h 2025-07-19 20:18:06 +02:00
libretroadmin ae8dfc789d (CTR) Buildfix #2 2025-07-19 10:16:22 +02:00
libretroadmin dd5dc60520 (CTR) Attempted buildfix 2025-07-19 10:10:17 +02:00
libretroadmin d500a3ecc7 Remove some more gfx/common/ define files 2025-07-19 09:59:54 +02:00
Viačasłaŭ 43cec217b9
PipeWire buildfix (#18106) 2025-07-19 09:44:18 +02:00
libretroadmin 55a7e07959 Remove d3d8_defines.h 2025-07-19 07:03:59 +02:00
libretroadmin 9308f6650c (GX2) Header buildfixes 2025-07-19 07:00:21 +02:00
libretroadmin cb2f0ecbd2 Merge files 2025-07-19 06:58:33 +02:00
libretroadmin eff70a32e5 Merge D3D10 common files into D3D drivers 2025-07-19 05:07:42 +02:00
libretroadmin 59fd200b2c Merge files 2025-07-19 04:58:35 +02:00
libretroadmin d17f6eee1e Buildfixes 2025-07-19 04:53:32 +02:00
libretroadmin d86c1a89b8 Move structs to needed file 2025-07-19 04:42:10 +02:00
libretroadmin 9542a71c89 Move defines to source files 2025-07-19 03:41:09 +02:00
github-actions fb6f6467e0 Fetch translations from Crowdin 2025-07-19 00:16:50 +00:00
sonninnos 9187520222 Move SET_ROTATION env call to info log level 2025-07-19 02:53:02 +03:00
LibretroAdmin 58b686f661 Go back to old rthreads TLS code for now 2025-07-18 18:18:30 +02:00
LibretroAdmin 25546f864a Revert "Move code around"
This reverts commit a018f935d0.
2025-07-18 18:16:27 +02:00
LibretroAdmin b156ce2a42 Revert "Get rid of Inout_opt_bytecount"
This reverts commit 40671b293e.
2025-07-18 18:16:19 +02:00
LibretroAdmin 40671b293e Get rid of Inout_opt_bytecount 2025-07-18 17:46:40 +02:00
LibretroAdmin a018f935d0 Move code around 2025-07-18 17:24:46 +02:00
LibretroAdmin 57a8a731da More UCRT buildfixes 2025-07-18 16:07:10 +02:00
LibretroAdmin c9931cd936
Merge microphone drivers (#18103)
* Merge microphone drivers

* Some buildfixes

* * Merge audio/common/wasapi.c into audio/drivers/wassapi.c
* Buildfix for alsa/drivers/alsathread.c

* Merge more files

* Attempted buildfix

* Try to use enum values instead of eRender/eCapture

* Simplification of mmdevice_name
2025-07-18 15:47:31 +02:00
LibretroAdmin 25edbe17d2 Some UCRT buildfixes 2025-07-18 13:44:56 +02:00
libretroadmin 8bd60af8b7 Put input_st variable behind HAVE_BSV_MOVIE ifdef 2025-07-18 11:26:05 +02:00
libretroadmin cc408864af Silence some code analysis warnings 2025-07-18 10:06:16 +02:00
libretroadmin cd0f159238 Static code analysis warning fixes 2025-07-18 09:26:26 +02:00
LibretroAdmin 180b39cd3d
Merge pull request #18100 from saulfabregwiivc/lvorbis-link-libogc-platforms
allow passing HAVE_OGG_OGC to link to needed OGG libs in PPC portlibs on libOGC platforms (GameCube/Wii), needed for a few cores.
2025-07-18 08:13:20 +02:00
LibretroAdmin 6019fc863b
Merge pull request #18101 from RogueScholar/desktop-entry-file
Add full complement of key/value pairs to Desktop Entry file
2025-07-18 08:12:29 +02:00
libretroadmin 80b3ccebba Silence some static code analysis warnings + code formatting/style nits 2025-07-18 08:11:25 +02:00
Peter J. Mello a4535c4eac
Add all relevant KV pairs to Desktop Entry file
This commit extends the RetroArch desktop entry
file—responsible for integrating the app with
Linux desktop environments—to include all relevant
properties. Some notable aspects:

- **`TryExec`**/**`Exec`**: TryExec _should_
  contain the canonical path to the executable,
  however the RA buildsystem lacks a ready
  mechanism for populating the correct value for
  the target at build time, so we fallback to
  searching $PATH here. To Exec we add the %F
  token, meaning that RA is a "file handler" that
  users are able to drag files onto the launcher
  icon that become arguments to the launch command.
- **`MimeType`**: This key determines which file
  extensions the system should offer to open with RA.
  It should be regularly reviewed for any new MIME
  registrations which need to be represented going
  forward.
- **`PrefersNonDefaultGPU`**: Linux by default offers
  hardware to processes in order from least capable to
  most performant. This key reverses that behavior so
  more demanding emulation cores will run more
  smoothly.
- **`SingleMainWindow`**: Changes the default behavior
  when the launcher is clicked while an instance is
  already running from launch a second instance to
  elevate the main window of the already running one.

Version 1.5 of the Freedesktop [Desktop Entry
Specification](https://specifications.freedesktop.org/desktop-entry-spec/latest/) was the reference for these changes.

Signed-off-by: Peter J. Mello <admin@petermello.net>
2025-07-18 03:54:57 +01:00
github-actions dddc66c797 Fetch translations from Crowdin 2025-07-18 00:17:38 +00:00
libretroadmin b23cbf0a57 glslang_read_shader_file - small cleanup 2025-07-18 01:58:40 +02:00
libretroadmin 2f5d95b0cf Move non-essential string_list functions out of file 2025-07-18 01:43:03 +02:00
saulfabreg Wii VC Project 5ed20207f5 allow passing HAVE_OGG_OGC to link to needed OGG libs in PPC portlibs, needed for a few cores. 2025-07-17 18:28:49 -05:00
libretroadmin 9ca8e1c1c1 * Change variable names for characters being written
* menu_cbs_sublabel - skip some unnecessary copies
2025-07-18 00:00:43 +02:00
libretroadmin ae2465f0db Variable name changes 2025-07-17 23:41:27 +02:00
libretroadmin d822cf58a1 C89_BUILD buildfix 2025-07-17 23:03:59 +02:00
libretroadmin ab9535c827 Code analysis cleanups/fixes 2025-07-17 22:28:48 +02:00
libretroadmin dd480aac94 Silence some more code analysis warnings 2025-07-17 12:33:47 +02:00
libretroadmin 4c07e26649 Code analysis fixes - fix some warnings and prevent garbage data 2025-07-17 12:11:31 +02:00
libretroadmin 162d00d73b (libretro-db) Fix code analysis warning 2025-07-17 10:29:58 +02:00
libretroadmin 7b093cc55e More code analysis warning fixes 2025-07-17 10:00:39 +02:00
libretroadmin 195c19a1c9 Fix more static code analysis errors/warnings 2025-07-17 09:44:19 +02:00
libretroadmin 03573db27c Some more static code analysis warning fixes 2025-07-17 09:09:30 +02:00
libretroadmin f45fd77d68 Fix errors and warnings pointed out by static code analysis (Clang) 2025-07-17 08:49:53 +02:00
libretroadmin c6d72062e2 remove dead code 2025-07-17 08:02:06 +02:00
LibretroAdmin 3f4fd3b086
Merge pull request #18099 from JoeOsborn/replay-same-timeline-check
Add "same timeline check" and "future state check" for replays
2025-07-17 07:17:54 +02:00
LibretroAdmin b7479e934b
Merge pull request #18092 from JoeOsborn/replay-compress-checkpoints
Compress checkpoints in replays
2025-07-17 07:17:46 +02:00
libretroadmin efc1f7f8e1 Variable naming cleanups 2025-07-17 06:10:48 +02:00
libretroadmin 807866d799 Style nit 2025-07-17 05:54:24 +02:00
libretroadmin daeb46cf5a Variable name cleanups 2025-07-17 05:36:20 +02:00
libretroadmin cc826c4ca6 Cleanup some variable names and some other cleanups 2025-07-17 05:11:00 +02:00
libretroadmin d8725d77bb Small variable cleanups - should make no functional difference 2025-07-17 04:40:42 +02:00
Joseph C. Osborn 7c05359933 c89 fixes 2025-07-16 10:35:33 -07:00
Joseph C. Osborn 1cc76cd64d Add "same timeline check" and "future state check" for replays
When loading and saving states taken during a replay, their contents
should be compared with the current replay.

- If in playback mode, states from past the end of the current replay
should be disallowed, as should states from an alternate timeline of
the current replay (inconsistent input history)
  - This is because in playback mode, RA replays are read-only
- If in recording mode, states from the future or from another
timeline should overwrite the current replay's data with a warning
- In either playback or recording, loads of states from the past that
have a consistent series of inputs (same timeline) should be loaded
and the replay should be rewound (and truncated in case of recording)

This behavior is as specified in
https://tasvideos.org/LawsOfTAS/OnSavestates

The existing code only implemented some of these checks.
2025-07-16 10:09:09 -07:00
sonninnos 19f6d94a78 Limit core suggestion option only for dynamic platforms 2025-07-16 06:16:43 +03:00
LibretroAdmin df808f7663
Merge pull request #18095 from libretro/libretro-common-refactors
libretro-common refactors: file_path
2025-07-16 04:37:43 +02:00
github-actions c8cb58f1d2 Fetch translations from Crowdin 2025-07-16 00:17:38 +00:00
libretroadmin 2770470695 Rewrite find_last_slash - use one loop, skip two strrchr calls 2025-07-16 01:31:29 +02:00
libretroadmin 047f926540 use last_slash in file_path 2025-07-16 00:31:09 +02:00
libretroadmin d37068cfb8 Move code back 2025-07-15 23:35:37 +02:00
LibretroAdmin 3162b6a438
Merge pull request #18094 from pastalian/fix-disable-pipewire
Fix build with disable-pipewire on systems with pipewire installed
2025-07-15 18:35:53 +02:00
Takuya Wakazono 027564a0c9 Fix build with disable-pipewire on systems with pipewire installed
On systems where pipewire is installed but the build is configured with
--disable-pipewire, HAVE_PIPEWIRE_STABLE is set to 1 while HAVE_PIPEWIRE
is 0. Checking only HAVE_PIPEWIRE_STABLE leads to a build failure.

```
LD retroarch
/usr/lib/gcc/x86_64-pc-linux-gnu/15/../../../../x86_64-pc-linux-gnu/bin/ld: obj-unix/release/camera/camera_driver.o:(.data.rel+0x0): undefined reference to `camera_pipewire'
collect2: error: ld returned 1 exit status
```

Downstream Bug: https://bugs.gentoo.org/960043
2025-07-15 23:27:10 +09:00
Joseph C. Osborn 1e0c723ba3 Fix warnings under many platforms, unpack nested ifdefs in includes. 2025-07-15 07:25:09 -07:00
libretroadmin 14906fc489 Revert "- Cut down on strrchr calls inside loops"
This reverts commit f73d9dead3.
2025-07-15 09:30:13 +02:00
github-actions 6010c74559 Fetch translations from Crowdin 2025-07-15 00:17:55 +00:00
Joseph C. Osborn 6227156e73 Add new replay token type CHECKPOINT2
This can optionally encode and compress checkpoints.  For now, only
raw encoding is supported, but e.g. delta encoding, block-based
encoding, or deduplicated encoding could be supported in the future.

Three compression schemes are included (selected automatically based
on compilation flags): ZSTD, ZLIB, or NONE.

All three schemes are supported for decompression if available.

For compression, ZSTD is preferred over ZLIB is preferred over NONE.
2025-07-14 14:32:53 -07:00
Joseph C. Osborn 46be205b75 add zstd compression library (single-threaded only) 2025-07-14 14:32:48 -07:00
libretroadmin f73d9dead3 - Cut down on strrchr calls inside loops
- Replace string_replace_all_chars calls
2025-07-14 22:31:36 +02:00
LibretroAdmin 6fa73c3431
Merge pull request #18090 from JoeOsborn/fix-replay-rewind
fix three bugs with replays and rewinding
2025-07-14 19:31:53 +02:00
LibretroAdmin ad5a98f2d3
Merge pull request #18091 from JoeOsborn/emscripten-makefile-includedirs
Emscripten makefile should use INCLUDE_DIRS from Makefile.common
2025-07-14 19:31:30 +02:00
libretroadmin 4099b49483 (menu_cbs_title) SANITIZE_TO_STRING rewrite:
* Turn macro into function
* Don't use strchr (O(n^2), switch to single pass loop instead
2025-07-14 19:13:11 +02:00
libretroadmin 6e5e63b6d4 Reduce some strrchr double calls 2025-07-14 19:05:11 +02:00
libretroadmin 1cc0f3273f (file_path) Optimize find_last_slash:
* Do one loop iteration inside the function instead of two
strrchr(s) for finding the forward and backwards slash
2025-07-14 18:44:49 +02:00
libretroadmin 9b6641c951 (file_path) fill_pathname_join_special - small tweak 2025-07-14 17:37:33 +02:00
libretroadmin 2d632fed54 file_path changes:
* improve fill_pathname_slash, no longer call strlcat
  - strlcat call would have been done in strlcat regardless
2025-07-14 17:26:15 +02:00
Joseph C. Osborn 246caaec3f Emscripten makefile should use INCLUDE_DIRS from Makefile.common
With this change, HAVE_ZSTD or HAVE_CHD can successfully be set for
emscripten builds.

This mirrors how other Makefiles use Makefile.common.
2025-07-14 08:19:57 -07:00
Joseph C. Osborn 27f141a7a5 fix some bugs with replays and rewinding
- rewinding past the start clobbers part of the header
- during recording & rewind, should not push input events
- during recording or playback, getting to the end of the rewind
  buffer should not halt the movie
2025-07-14 08:09:25 -07:00
libretroadmin 3eb8589550 (file_list) Optimizations:
* file_list_insert - use memmove instead of malloc to add new
file item on top of the existing one
2025-07-14 17:04:44 +02:00
libretroadmin 9cfcc5ec8e Revert video_coord_array code 2025-07-14 06:00:44 +02:00
libretroadmin 215219dc51 Change libretro-common code back 2025-07-14 05:50:17 +02:00
libretroadmin 9c82213d19 Remove some else statements 2025-07-14 04:43:36 +02:00
libretroadmin b7db9a65af video_viewport_get_scaled_aspect2 - cleanup 2025-07-14 03:55:07 +02:00
libretroadmin 6010a53fec gfx_animation_ticker_loop - small refactor 2025-07-14 03:26:00 +02:00
libretroadmin 435849d00f (libetro-common) scaler simplifications 2025-07-14 03:00:08 +02:00
github-actions de298b18c4 Fetch translations from Crowdin 2025-07-14 00:18:31 +00:00
libretroadmin 3226361c1d Prevent some nbio windows mmap memory leaks when failing 2025-07-14 01:19:39 +02:00
libretroadmin 86b55c14ec (file_list)
Performance improvements:
* Various optimizations
* Reduced memory allocations - file_list_insert would call malloc
for every single item that would need to be shifted downwards. instead
it does a memmove call now
2025-07-14 00:17:12 +02:00
libretroadmin 2f9b0181dd video coord array improvements:
* single memory block allocation vs. several
* reduced memcpy calls
* simplified pointer arithmetic
* simplified code
2025-07-13 23:13:42 +02:00
libretroadmin f6da101330 (resampler) indentation cleanups 2025-07-13 18:40:11 +02:00
Eric Warmenhoven 43031d2154
apple: avfoundation camera driver fixes
better permissions check, delay starting camera until _start
2025-07-13 08:40:29 -04:00
libretroadmin de76511ee7 (file_path) Cleanups / refactors 2025-07-13 08:02:28 +02:00
LibretroAdmin 228f4b346d
Merge pull request #18087 from neil4/overlay-fix-speed-limit
Fix input_overlay_track_touch_inputs
2025-07-13 06:24:53 +02:00
nfore dabf543cde Fix input_overlay_track_touch_inputs
- Fixes bug introduced in 31014e99c0. Unmatched pointers were not considered outliers
2025-07-12 22:59:16 -05:00
libretroadmin 55bada6bda Rewrite strlcpy - add early return for len == 0 2025-07-13 04:59:24 +02:00
libretroadmin 311a64a413 (audio_conversion) small cleanups 2025-07-13 03:21:13 +02:00
github-actions e683017f45 Fetch translations from Crowdin 2025-07-13 00:19:28 +00:00
libretroadmin 4973e47cac (Resampler) Style nits/cleanups 2025-07-13 01:59:36 +02:00
libretroadmin 04af1a1e98 Put header includes inside ifdef guard 2025-07-12 22:08:09 +02:00
LibretroAdmin 72ff77347f
Merge pull request #18086 from neil4/overlay-touch-tracking-speed-limit 2025-07-12 21:27:47 +02:00
nfore 31014e99c0 Overlays: Put a speed limit on touch pointer tracking
A pointer is considered new if it travels ~25% of the screen in one poll.
2025-07-12 14:11:22 -05:00
libretroadmin 4a7b00f43e Rewrite string_list_join_concat and menu_entries_append function 2025-07-12 20:53:48 +02:00
libretroadmin 0d854fef31 remove strlcats from string_list_join_concat_special 2025-07-12 20:36:58 +02:00
libretroadmin cb02d1ffcf Stop using strlen_size, just use regular strlen 2025-07-12 20:27:41 +02:00
sonninnos 743e0406bd Environ logging cleanups 2025-07-12 08:41:54 +03:00
sonninnos 419007c1ca
Smaller regular widget notification option (#18085) 2025-07-12 04:37:38 +03:00
github-actions 1808a38deb Fetch translations from Crowdin 2025-07-12 00:16:34 +00:00
Eric Warmenhoven 4bdb68b9d9
apple: fix coretext bounds checking 2025-07-11 11:57:34 -04:00
libretroadmin 2dbb9f62d8 * Change some variable naming conventions
* Make return control paths less dependent on variables
2025-07-11 02:15:12 +02:00
libretroadmin bca5cafaa6 Rewrite nested_list functio
Rewrite core_info function - no more strlcat usage
2025-07-10 22:34:45 +02:00
sonninnos b2ca569521 Logging unification cleanups 2025-07-10 05:59:06 +03:00
github-actions 40e3b56d04 Fetch translations from Crowdin 2025-07-10 00:17:32 +00:00
sonninnos 3885f4f8a5 Core updater logging cleanups 2025-07-09 17:49:24 +03:00
sonninnos d5a5681612 More room for widget task progress percentage 2025-07-09 17:45:26 +03:00
Eric Warmenhoven 47bc1188ae
apple: fix some coretext alignment and rendering issues 2025-07-08 23:49:54 -04:00
Eric Warmenhoven d4fe2055f9
ios/tvos: no webserver/webdav server on simulator 2025-07-08 23:49:53 -04:00
sonninnos ac959fef26 Safety for menu_shader_get() 2025-07-08 22:36:38 +03:00
sonninnos 48f5677417 Auto Frame Delay tweaking 2025-07-08 19:53:21 +03:00
Eric Warmenhoven f10818b243
ios: fix iphone landscape rendering 2025-07-07 22:03:59 -04:00
libretroadmin 3e3f989d45 Turn some strlcats into strlcpy 2025-07-08 02:57:28 +02:00
github-actions 90f2c1f456 Fetch translations from Crowdin 2025-07-08 00:16:57 +00:00
Eric Warmenhoven d316c2cbc9 ipad: don't force fullscreen, allow multitasking 2025-07-07 10:36:26 -04:00
LibretroAdmin 0a2c1b2272
Merge pull request #18075 from warmenhoven/warmenhoven/pr/coretext
apple: fix coretext font renderer unicode handling, make default
2025-07-06 14:45:41 +02:00
LibretroAdmin 1dea6dfbf0
Merge pull request #18073 from XerTheSquirrel/fix-vfs-mmap-seekend
Correct SEEK_CUR and SEEK_END for memory mapped VFS files.
2025-07-06 13:56:35 +02:00
Eric Warmenhoven 7d09e380f4
apple: fix coretext font renderer unicode handling, make default 2025-07-06 01:07:03 -04:00
Eric Warmenhoven fd7f561fb6
griffin: fix debug build when including zstd 2025-07-06 01:07:02 -04:00
Eric Warmenhoven 0ca114701b fix webOS github action 2025-07-06 01:02:47 -04:00
github-actions 0ba251b7f2 Fetch translations from Crowdin 2025-07-06 00:18:47 +00:00
Stephanie Gawroriski 4704961eb9 Correct SEEK_CUR and SEEK_END for memory mapped VFS files as neither of their conditions were correct, SEEK_CUR never failed and SEEK_END effectively always failed. 2025-07-05 16:48:26 -04:00
Eric Warmenhoven 6046e29919
net_http: don't include port in Host header unnecessarily 2025-07-05 00:21:09 -04:00
github-actions f1d95f2deb Fetch translations from Crowdin 2025-07-05 00:15:54 +00:00
github-actions d165787296 Fetch translations from Crowdin 2025-07-04 00:16:56 +00:00
github-actions 68d8f98d47 Fetch translations from Crowdin 2025-07-03 00:17:11 +00:00
LibretroAdmin 5367d3ab63
Merge pull request #18065 from alphanu1/gameoride
CRT - Added Switchres Game Overrides
2025-07-02 12:05:04 +02:00
alphanu1 71dc58d20a Added Switchres Game Overrides 2025-07-01 21:07:27 +01:00
github-actions d8012c901b Fetch translations from Crowdin 2025-07-01 00:19:22 +00:00
LibretroAdmin c61845895e
Merge pull request #18054 from webosbrew/feature/update-sdl
[webOS] Update to SDL 2.30.12
2025-06-30 23:49:40 +02:00
github-actions 135da9597b Fetch translations from Crowdin 2025-06-30 00:18:07 +00:00
sonninnos 1389c15280 Fix filestream_copy+cmp 2025-06-29 10:41:20 +03:00
github-actions d40625b87c Fetch translations from Crowdin 2025-06-28 00:16:06 +00:00
Eric Warmenhoven 371ddf5889 macos build fix 2025-06-27 15:33:04 -04:00
Eric Warmenhoven 9ff5aaa679 macos x86 build fix 2025-06-27 15:07:48 -04:00
Mariotaku 70a39217c1
set EGL_PLATFORM if not set 2025-06-28 00:41:30 +09:00
Mariotaku 6c2a2a1b2c
Updated to SDL 2.30.12 2025-06-28 00:41:30 +09:00
Eric Warmenhoven eea37466fc apple: better mfi controller disconnect handling 2025-06-27 11:17:33 -04:00
Eric Warmenhoven 1e109e2927 apple: include zstd and nearest resampler 2025-06-27 11:17:25 -04:00
github-actions 4161099ddb Fetch translations from Crowdin 2025-06-27 00:17:02 +00:00
LibretroAdmin b365ab02a6
Merge pull request #18055 from JoeOsborn/rmsgpack-intfstream
Change RFILE to intfstream_t in libretro-db
2025-06-26 23:24:06 +02:00
Joseph C. Osborn f5e81aa01d Add more C files to libretrodb makefile 2025-06-26 10:15:57 -07:00
libretroadmin 6dcb727c62 Remove unused buffer (?) 2025-06-26 16:57:04 +02:00
Joseph C. Osborn f4bba523ab Change RFILE to intfstream_t in libretro-db 2025-06-26 06:44:59 -07:00
libretroadmin e13140ba04 Rewrite some strlcat calls into strlcpy 2025-06-26 14:47:53 +02:00
github-actions a8caac7142 Fetch translations from Crowdin 2025-06-26 00:16:49 +00:00
LibretroAdmin 46fd8f6532
Merge pull request #18053 from sonninnos/filestream-copy-cmp
Built-in playlist migration rework
2025-06-25 20:28:14 +02:00
sonninnos bc3f1c6487 Built-in playlist migration rework 2025-06-25 20:38:24 +03:00
LibretroAdmin b0294736ed
Merge pull request #18052 from Uukrull/zstd
webOS: Enable ZStandard
2025-06-25 13:35:23 +02:00
Uukrull c680a72a18 webOS: Enable ZStandard 2025-06-25 12:28:31 +02:00
LibretroAdmin c30d790854
Merge pull request #18049 from Skirlez/fix-32bit-cheats 2025-06-25 08:39:01 +02:00
github-actions 2590cc9120 Fetch translations from Crowdin 2025-06-25 00:17:08 +00:00
Skirlez f1289f60ef Avoid creating huge list of numbers for cheat-related settings 2025-06-25 00:53:10 +03:00
LibretroAdmin 69b82e1fc2
Merge pull request #18046 from sonninnos/database-multidisk
Improve multidisk game scanning
2025-06-24 21:18:01 +02:00
sonninnos 0fbce9680a
Fix playlist json flags (#18048) 2025-06-24 18:19:40 +03:00
Eric Warmenhoven 5e578f9fc4 apple: better mfi controller disconnect handling 2025-06-23 22:45:45 -04:00
sonninnos 6056a0e602 Improve multidisk game scanning 2025-06-24 05:36:05 +03:00
github-actions 6e1597970b Fetch translations from Crowdin 2025-06-24 00:17:04 +00:00
LibretroAdmin 243ed9d171
Merge pull request #18045 from zoltanvb/android_keyboard_fixes
Minor Android keymap fixes
2025-06-23 12:34:29 +02:00
github-actions 2553927119 Fetch translations from Crowdin 2025-06-23 00:18:05 +00:00
zoltanvb 69a9e05067 Minor Android keymap fixes
Some enhancement possibilities found while investigating another
issue - shift keys were swapped (especially noticeable in menu),
enter may be mapped to DPAD_CENTER by the system, but unfortunately
the 102. key can not be mapped separately.
2025-06-22 21:14:49 +02:00
Eric Warmenhoven 185971182d apple: provide option to disable metal argument buffers 2025-06-22 12:29:17 -04:00
LibretroAdmin c27e815808
Merge pull request #18040 from sonninnos/libchdr-zstd
Add Zstandard support + libchdr update
2025-06-22 15:48:52 +02:00
sonninnos 0575ee99c6
Fix info disable button (#18043) 2025-06-22 14:19:47 +03:00
Eric Warmenhoven 12599993c0 apple: speed up cloud sync 2025-06-21 23:57:03 -04:00
sonninnos 8c6744145e Capitalization fix 2025-06-22 05:12:57 +03:00
github-actions f30947840e Fetch translations from Crowdin 2025-06-22 00:18:29 +00:00
sonninnos ece640fd87 MSVC buildfix attempt 2025-06-22 01:47:13 +03:00
sonninnos 75719b2177 Buildfix attempt 2025-06-22 00:21:19 +03:00
sonninnos b3b8b1e340 Add ZStandard support + libchdr update 2025-06-22 00:03:01 +03:00
LibretroAdmin ac46d10e4a
Merge pull request #18039 from warmenhoven/warmenhoven/pr/reminiscence-vitaquake2-store 2025-06-21 22:11:57 +02:00
Eric Warmenhoven c16840444e apple: add reminiscence and vitaquake2 to App Store builds 2025-06-21 14:08:10 -04:00
Eric Warmenhoven d9d874712c apple: extremely minor cleanup 2025-06-21 13:27:22 -04:00
LibretroAdmin cc4373d7a4
Merge pull request #18037 from DisasterMo/add-irish-language
Add Irish Gaelic as a language option
2025-06-21 15:03:39 +02:00
github-actions dea40e01bc Fetch translations from Crowdin 2025-06-21 00:16:25 +00:00
DisasterMo 883d93f04c Add Irish Gaelic as a language option 2025-06-20 22:37:46 +02:00
sonninnos 3b7bea875e Log also analogs in SET_INPUT_DESCRIPTORS 2025-06-20 17:35:24 +03:00
github-actions cc2440fe7f Fetch translations from Crowdin 2025-06-20 00:16:25 +00:00
LibretroAdmin d3635843c9
Merge pull request #18030 from Ryunam/ozone-font-scale
Ozone: Add options to scale font size
2025-06-19 23:52:34 +02:00
github-actions e92be2a89d Fetch translations from Crowdin 2025-06-19 00:16:59 +00:00
Eric Warmenhoven 9e5f6f4d8a apple: fix bundle id display 2025-06-18 10:48:47 -04:00
github-actions 21c00e79f9 Fetch translations from Crowdin 2025-06-18 00:16:45 +00:00
sonninnos 6126413e92 Revert "Silence ffmpeg camera warnings"
This reverts commit 1f5804cb59.
2025-06-18 01:05:06 +03:00
sonninnos 1f5804cb59 Silence ffmpeg camera warnings 2025-06-18 00:36:29 +03:00
LibretroAdmin f85b738258
Merge pull request #18023 from schellingb/make_lists_static
Make a few large read-only arrays in menu code static
2025-06-17 23:05:53 +02:00
LibretroAdmin 26f6f7200a
Merge pull request #18024 from sonninnos/playlists-path-cleanups
Built-in playlist path rework
2025-06-17 23:05:37 +02:00
LibretroAdmin ceb99a0644
Merge pull request #18031 from webosbrew/webos
webOS: Improve compatibility, add debug build option, fix wrong arg removed, fix LF on Makefile.webos
2025-06-17 23:04:41 +02:00
Craig C. 9b9788873c
Merge pull request #11 from webosbrew/feature/debug-build
Enable Debug Build for webOS
2025-06-17 13:37:43 +01:00
Mariotaku 5907714842
Don't Remove First Argument if There is None on webOS 2025-06-17 18:33:34 +09:00
Mariotaku 8ba7a585cc
build without strip if debug is on 2025-06-17 18:26:55 +09:00
github-actions ab543fb8bd Fetch translations from Crowdin 2025-06-17 00:17:00 +00:00
Craig Carnell 0e4136537b Add environment variables missing from webOS 3 - 5 2025-06-17 00:48:19 +01:00
Ryunam d471cbce8a Ozone: Add options to scale font size 2025-06-16 22:15:49 +02:00
Eric Warmenhoven 42704b9311 apple: include correct git hash when uploading testflight build 2025-06-16 15:00:01 -04:00
sonninnos 383daa31cb Built-in playlist path rework 2025-06-16 19:18:55 +03:00
sonninnos db5c4d2758 Handle default config save path differently 2025-06-16 19:14:45 +03:00
Eric Warmenhoven b490195e0b iOS9: fix crash fetching refresh rate 2025-06-16 10:05:08 -04:00
sonninnos 9595904af1 Add missing path clear 2025-06-16 06:06:15 +03:00
sonninnos 2329cd10d0 Fix vanishing 'Load Core' 2025-06-16 05:57:29 +03:00
github-actions 3e3e4e6ce5 Fetch translations from Crowdin 2025-06-16 00:17:50 +00:00
sonninnos 293ca23197 Glui: Icon fixings 2025-06-15 15:22:16 +03:00
sonninnos bb0551bf1e Android crash fix attempt 2025-06-15 05:43:37 +03:00
sonninnos 3faf744b0f Unused variable cleanup buildfix 2025-06-15 05:12:28 +03:00
sonninnos 0785dd7548 Unused variable cleanups 2025-06-15 05:08:24 +03:00
github-actions fae1c6bcf6 Fetch translations from Crowdin 2025-06-15 00:18:32 +00:00
sonninnos b774a26bae Ozone: Add menu font selection 2025-06-15 01:11:26 +03:00
sonninnos 0fc847a176 Ozone: Entry ticker length correction 2025-06-14 23:51:06 +03:00
sonninnos fc6b1b9fab Show 'save as' config last 2025-06-14 21:20:08 +03:00
sonninnos c9eb36d4db Win32: Unused variable cleanup 2025-06-14 17:37:08 +03:00
sonninnos a7c195901f Better default config path deciding 2025-06-14 17:28:40 +03:00
sonninnos a034e9b61b Ozone+XMB: Blank dummy core output 2025-06-14 17:16:05 +03:00
sonninnos f86ae06c10
Ozone: Add horizontal padding factor option (#18022) 2025-06-14 17:14:07 +03:00
Bernhard Schelling 771fc523b2
Make large read-only arrays static
This can avoid unnecessary waste of performance at runtime to use static data instead of filling out an array on the stack every time. Some of the CBS functions are called for every menu item created so this improves performance of menu navigation, especially large menus like playlists.
2025-06-14 16:26:24 +09:00
github-actions 45c3f93e8b Fetch translations from Crowdin 2025-06-14 00:15:55 +00:00
sonninnos 2e4c29264e
Prevent menu input when using toggle combos (#18017) 2025-06-14 00:07:16 +03:00
Eric Warmenhoven f9c99288da android: try to avoid build-time heap space problems 2025-06-13 16:21:09 -04:00
github-actions 75a8193e62 Fetch translations from Crowdin 2025-06-13 00:16:53 +00:00
sonninnos 5cfb0a3e42
Add 'save as' and main config replacing options (#18014) 2025-06-13 03:03:36 +03:00
sonninnos 9d09ec3478 Show undo save/load state items order non-submenu addition 2025-06-12 16:06:28 +03:00
sonninnos 366bf083e4 Shader logging cleanup 2025-06-12 06:37:23 +03:00
sonninnos 9c7203bd6f Input bind+remap analog stick label unifications 2025-06-12 06:10:25 +03:00
sonninnos b65737f923 Show undo save/load state items in the same order 2025-06-12 05:25:07 +03:00
sonninnos a8de4dbe49
Show core info md5 note rows as sublabels (#18011) 2025-06-12 05:17:46 +03:00
github-actions 57fe5598b7 Fetch translations from Crowdin 2025-06-12 00:16:43 +00:00
sonninnos 68ffc370a9 Adaptive VSync menu cleanup 2025-06-12 01:32:58 +03:00
sonninnos 8fd0d552ca
D3D: Add alternative max frame latency hack mode (#18010) 2025-06-11 22:25:42 +03:00
Eric Warmenhoven aebfff2166 apple: better mfi controller disconnect handling 2025-06-11 11:01:28 -04:00
github-actions 46b7026978 Fetch translations from Crowdin 2025-06-11 00:17:03 +00:00
LibretroAdmin c5851487cc
Merge pull request #18008 from alphanu1/Geom 2025-06-11 00:08:58 +02:00
alphanu 0b001e46c0 Added temporary switch for windows geometry adjustments 2025-06-10 13:00:49 -07:00
LibretroAdmin 4abd8fa816
Merge pull request #17997 from libretro/warmenhoven/pr/mbedtls
minor mbedtls update
2025-06-10 19:59:00 +02:00
Joseph Mattiello 3344af01d7
extract delay to define, 10ms 2025-06-10 12:21:13 -04:00
LibretroAdmin 97ab384c00
Merge pull request #18001 from libretro/warmenhoven/pr/macos-jit 2025-06-10 12:58:14 +02:00
LibretroAdmin 166c394cf2
Merge pull request #18004 from libretro/warmenhoven/pr/macos-mem 2025-06-10 12:57:36 +02:00
LibretroAdmin 5f606b9df0
Merge pull request #18003 from libretro/warmenhoven/pr/emacs-dir-locals 2025-06-10 12:57:24 +02:00
LibretroAdmin a78826ee9e
Merge pull request #18002 from libretro/warmenhoven/pr/xcode-tweaks 2025-06-10 12:56:58 +02:00
LibretroAdmin 9795fd2daa
Merge pull request #17999 from libretro/warmenhoven/pr/apple-bundle-id 2025-06-10 12:56:24 +02:00
LibretroAdmin fec832a03c
Merge pull request #17998 from libretro/warmenhoven/pr/info-debug 2025-06-10 12:56:12 +02:00
LibretroAdmin 0c279b9dbc
Merge pull request #17995 from alphanu1/Geom 2025-06-10 12:55:59 +02:00
Eric Warmenhoven 8d579bba30 net_http: minor lock refactor 2025-06-09 23:49:49 -04:00
Eric Warmenhoven cc408b7ad5 macOS: better memory reporting 2025-06-09 22:34:33 -04:00
Eric Warmenhoven c1f7982ec0 add .dir-locals.el for emacs formatting 2025-06-09 22:25:48 -04:00
Eric Warmenhoven bb6a0c5772 apple: Xcode tweaks 2025-06-09 22:25:14 -04:00
Eric Warmenhoven 52bfb2a7c3 macOS: minor JIT debugging niceties 2025-06-09 22:24:40 -04:00
Eric Warmenhoven 631f318e28 apple: bundle identifier in Information menu 2025-06-09 22:23:06 -04:00
Eric Warmenhoven 4e4855b44c include "DEBUG" string in information menu for debug builds 2025-06-09 22:21:28 -04:00
Eric Warmenhoven e8da8f8d29 minor mbedtls update
This brings it in line with 2.6.0. Previously it had been taken from a
development branch somewhere between 2.5.1 and 2.6.0.

Only return VERIFY_FAILED from a single point

Everything else is a fatal error. Also improve documentation about that for
the vrfy callback.

Improve comments

Update doc of return value of verify()

Fix potential integer overflow parsing DER CRL

This patch prevents a potential signed integer overflow during the
CRL version verification checks.

Fix potential integer overflow parsing DER CRT

This patch prevents a potential signed integer overflow during the
certificate version verification checks.

Prevent signed integer overflow in CSR parsing

Modify the function mbedtls_x509_csr_parse_der() so that it checks the
parsed CSR version integer before it increments the value. This prevents
a potential signed integer overflow, as these have undefined behaviour
in the C standard.

Rename time and index parameter to avoid name conflict.

As noted in #557, several functions use 'index' resp. 'time'
as parameter names in their declaration and/or definition, causing name
conflicts with the functions in the C standard library of the same
name some compilers warn about.

This commit renames the arguments accordingly.

Update version number to 2.6.0
2025-06-09 22:20:05 -04:00
github-actions a21643b7fa Fetch translations from Crowdin 2025-06-10 00:17:11 +00:00
sonninnos 8b82cccb7a Remove unused var 2025-06-10 02:18:15 +03:00
alphanu 3f59af3f99 Fixed issues with warnings when compiling menu_cbs_sublabel.c after CRT geometry adjust PR 2025-06-09 10:32:21 -07:00
LibretroAdmin 30b0b39df1
Merge pull request #17992 from sonninnos/frame-delay-cleanup 2025-06-09 17:37:48 +02:00
sonninnos 3543080194 Frame Delay auto improvements 2025-06-09 17:35:51 +03:00
LibretroAdmin 84a5ded33c
Merge pull request #17987 from alphanu1/Geom
Added Horizontal and vertical geometry adjustments
2025-06-09 06:30:54 +02:00
LibretroAdmin 1fba899657
Merge pull request #17988 from zoltanvb/changelist_update
Change list updates up to 2025-06-08
2025-06-09 06:30:35 +02:00
Joseph Mattiello 663f318d5f
enable mic on macos
add mic usage to info.plist

enable micorphone in xcconfig

mic device selection macos

snapshot

revert ios driver

macos only driver, doesn’t deadlock now

macos driver seems to be doing something

looooooop

well, at least it doesn’t spin lock, no audio

audio capture working!

seems to be working now

cleanup some extra logging

clean up some extra logging

rename ios driver for clarity

remove some locks

better performance, but some noise

remove unused fifo_lock

clear the fifo

fix noise in buffer

some improvements, might not need

remove superfulous silent check

reduce latency

Signed-off-by: Joseph Mattiello <git@joemattiello.com>
2025-06-08 22:12:22 -04:00
github-actions ba156cee4d Fetch translations from Crowdin 2025-06-09 00:17:53 +00:00
zoltanvb 446a847aab
Missed one item from changes 2025-06-08 20:48:07 +02:00
zoltanvb 2561737403
Updates up to 2025-06-08 2025-06-08 20:38:25 +02:00
alphanu 4389c611ef Fixed horizontal offest. Removed action menu due to iteration bug 2025-06-08 10:44:34 -07:00
alphanu d6c9698353 Added Horizontal and vertical geometry adjustments 2025-06-08 08:33:24 -07:00
github-actions e613e2c08e Fetch translations from Crowdin 2025-06-08 00:18:20 +00:00
LibretroAdmin 67a46ae077
Merge pull request #17984 from libretro/revert-17980-master
Revert "Kiosk Mode Hotkey and Bug Fix ( For Empty Main Menu )"
2025-06-07 18:00:27 +02:00
LibretroAdmin c9360262ec
Revert "Kiosk Mode Hotkey and Bug Fix ( For Empty Main Menu )" 2025-06-07 18:00:14 +02:00
LibretroAdmin 5aefb761eb
Merge pull request #17982 from alphanu1/master 2025-06-07 07:49:34 +02:00
LibretroAdmin 28300fc606
Merge pull request #17980 from Lhaete/master 2025-06-07 07:49:11 +02:00
LibretroAdmin b353e8d972
Merge pull request #17977 from j0ki/master 2025-06-07 07:48:59 +02:00
LibretroAdmin 20c932e236
Merge pull request #17975 from Uukrull/coredump 2025-06-07 07:48:44 +02:00
github-actions 5dfd11257e Fetch translations from Crowdin 2025-06-07 00:16:17 +00:00
alphanu 434f41b935 Updated CRT menu items and added new CRT menu
item for upcomming Switchres changes.
2025-06-06 13:39:40 -07:00
Eric Warmenhoven ca405929ad
Merge pull request #17981 from warmenhoven/warmenhoven/pr/MicCoreAudio
Add Microphone CoreAudio driver for iOS
2025-06-06 14:40:45 -04:00
Eric Warmenhoven a0263db217 iOS: fix/enable coreaudio microphone driver 2025-06-06 14:10:02 -04:00
Eric Warmenhoven 720f5bca59 Merge remote-tracking branch 'libretro/master' into warmenhoven/dev/MicCoreAudio 2025-06-06 14:09:19 -04:00
Lhaete 49d4a580d9
Update xmb.c with kiosk mode
Linux Fix for mixing declaration and code, missed them the first time oops again!
2025-06-06 08:56:37 -04:00
Lhaete 67b5da6a50
Update retroarch.c with kiosk mode fix
Changed string check to function string_is_empty for PS4 compliance!
2025-06-06 08:46:48 -04:00
Lhaete 3315e96b2d
Update xmb.c with kiosk mode
Fixed Linux bug for mixing declaration with code, oops.
2025-06-06 08:41:03 -04:00
Lhaete 1ca2e08590
Update xmb.c with kiosk mode fix
Forgot to add the    settings_t *settings       = config_get_ptr(); ptr in xmb list cache
2025-06-06 08:24:27 -04:00
Lhaete 76b515cd38
Update retroarch.c wiht Kiosk Mode
Added kiosk hotkey case and function
2025-06-06 07:07:02 -04:00
Lhaete 824182a54a
Update command.h with kiosk mode
added kiosk mode
2025-06-06 07:01:19 -04:00
Lhaete 6cae1c91cb
Update configuration.c with kiosk mode
added the kiosk_toggle bind
2025-06-06 06:59:52 -04:00
Lhaete a6aa14208b
Update msg_hash_us.h with kiosk mode
added meta_kiosk
2025-06-06 06:58:42 -04:00
Lhaete d236ecfa28
Update msg_hash.h with kiosk mode
added input_meta_kiosk
2025-06-06 06:56:33 -04:00
Lhaete 390f1d3760
Update input_defines.h with kiosk mode 2025-06-06 06:54:40 -04:00
Lhaete 2d16bbd5a2
Update config.def.keybinds.h with Kiosk Mode
I used f5 as the hotkey, this conflicts with companion UI hotkey, so def needs changing..
2025-06-06 06:53:49 -04:00
Lhaete 19df62e737
Update win32_common.c with kiosk mode
added kiosk mode
2025-06-06 06:51:31 -04:00
Lhaete 9bc3d5e656
Update ui_win32_resource.h with kiosk mode
there needs to be an empty line as the last line! added kiosk mode
2025-06-06 06:49:28 -04:00
Lhaete 5531f743ea
Update rarch.rc with kiosk mode 2025-06-06 06:48:01 -04:00
Lhaete b63e982712
Update all_binds_empty.cfg with Kiosk Toggle
added kiosk toggle input hotkey test, f5 is used by companion so might have to use different hotkey
2025-06-06 06:45:58 -04:00
Lhaete 59442128a6
Update runloop.c wth Kiosk Mode Hotkey
added hotkey check cmd
2025-06-06 06:44:18 -04:00
Lhaete 01a3203a3a
Update menu_setting.c with "Kiosk Mode Fix"
added kiosk mode fixes
2025-06-06 06:41:05 -04:00
Lhaete 274f253e75
Update menu_displaylist.c with "Kiosk Mode Fix"
added Kiosk Mode fixes
2025-06-06 06:39:08 -04:00
Lhaete 3cbe9fa5c2
Update xmb.c with "Kiosk Mode Fix"
Added Kiosk Mode Fix
2025-06-06 06:34:12 -04:00
Eric Warmenhoven c74164c6d0 android: enable ssl
0c4bbda16a
2025-06-05 22:53:33 -04:00
sonninnos dcf4286d06
Port bind turbo fire icon + label cleanup (#17979) 2025-06-06 05:06:30 +03:00
j0ki 482b8241b8
udev_input.c: restore linux terminal in udev_input_free
Linux terminal settings were lost after restarting via menu.
This was caused by udev_input_init calling linux_terminal_disable_input multiple times.

New code follows the restore pattern of linuxraw_input.c
2025-06-06 02:18:20 +02:00
github-actions 9c7347c509 Fetch translations from Crowdin 2025-06-06 00:16:34 +00:00
sonninnos b2f86fa45f
Integer scale half scaling improvements (#17976) 2025-06-05 19:56:40 +03:00
Uukrull 04eb45b413 webOS: Disable core dumps 2025-06-05 11:21:48 +02:00
github-actions 2899bd183a Fetch translations from Crowdin 2025-06-05 00:16:53 +00:00
Eric Warmenhoven 01a3511445 iOS: rely on core info to re-find cores from old directory structure 2025-06-04 14:52:01 -04:00
Eric Warmenhoven 86f63e1f59 android: revert of enabling ssl 2025-06-04 14:52:01 -04:00
LibretroAdmin 9aac188d2c
Merge pull request #17972 from warmenhoven/warmenhoven/pr/android-ssl 2025-06-04 17:21:13 +02:00
LibretroAdmin a44c65f44c
Merge pull request #17973 from j0ki/master 2025-06-04 17:20:56 +02:00
j0ki bdd80921b5
video4linux2.c: do not close before open.
With no camera connected this would call close(0), causing  problems later.
2025-06-04 15:47:57 +02:00
Eric Warmenhoven 98852bd427 android: enable builtin mbed-tls
fixes #16847
2025-06-03 23:03:37 -04:00
github-actions 4b7806afe7 Fetch translations from Crowdin 2025-06-03 00:16:44 +00:00
github-actions 83130f47b5 Fetch translations from Crowdin 2025-06-02 00:17:08 +00:00
github-actions 9be49b9390 Fetch translations from Crowdin 2025-06-01 00:20:13 +00:00
Eric Warmenhoven 38a3b924ae iOS/tvOS: enable HAVE_NETWORK_COMMAND 2025-05-31 16:05:41 -04:00
github-actions 19398209ed Fetch translations from Crowdin 2025-05-31 00:15:57 +00:00
github-actions ca19b79960 Fetch translations from Crowdin 2025-05-30 00:16:44 +00:00
LibretroAdmin 0a4ff8187a
Merge pull request #17961 from zoltanvb/android_network_cmd
Enable HAVE_NETWORK_CMD for Android.
2025-05-29 23:33:00 +02:00
zoltanvb 15f4f1e63c Enable HAVE_NETWORK_CMD for Android. 2025-05-29 21:46:25 +02:00
Uukrull b7a29bd17c
Fix argv for webOS (#17960) 2025-05-29 21:21:56 +03:00
LibretroAdmin 6c54b2183b
Merge pull request #17956 from webosbrew/webos
Add target cpu and tune for webOS
2025-05-29 09:53:51 +02:00
sonninnos dd8fff113b Runloop content path cleanups 2025-05-29 08:40:23 +01:00
libretroadmin 15819612f7 Fix semicolon near end of conditional 2025-05-29 09:22:42 +02:00
libretroadmin 18ca0e671d (XInput) More C89 fixes and style nits 2025-05-29 09:17:52 +02:00
libretroadmin 82dde53f7d Forgot to update default.txt for tagged release 2025-05-29 07:22:16 +02:00
libretroadmin f1f50bf7f7 (audio_driver) Cache slowmotion_ratio variable into local variable -
used inside loop
2025-05-29 06:51:49 +02:00
libretroadmin 1ff8346eb5 Silence warnings/style nits 2025-05-29 06:19:04 +02:00
libretroadmin bd04f9154b C89 buildfix 2025-05-29 06:11:08 +02:00
libretroadmin c372dfad8b Rework xinput_joypad_rumble somewhat 2025-05-29 05:59:46 +02:00
libretroadmin b1ad554a14 C89_BUILD fixes 2025-05-29 04:59:41 +02:00
LibretroAdmin 2e91214404
Merge pull request #17954 from Ryunam/xinput-rumble-fix
XInput: Fix rumble performance drops on Bluetooth and reduce unnecessary polling
2025-05-29 04:53:50 +02:00
sonninnos dc4dd657f9 Runloop content path cleanups 2025-05-29 04:47:32 +03:00
github-actions f9db98194b Fetch translations from Crowdin 2025-05-29 00:16:15 +00:00
Ryunam 7ad10258f0 XInput: Reduce unnecessary polling and optimize performance 2025-05-29 00:21:43 +02:00
sonninnos fd7f8a3ea1 Use the existing ldci define 2025-05-29 01:21:26 +03:00
LibretroAdmin 8894d551e7
Merge pull request #17955 from sonninnos/menu-input-joypad-driver
Add input+controller driver under input settings
2025-05-29 00:18:59 +02:00
sonninnos 686c7997bc Add input+controller driver under input settings 2025-05-29 01:03:48 +03:00
libretroadmin c9bc941830 move microphone_driver.c inside audio_driver.c. This way we can move
some of the defines from audio_defines.h into audio_driver.c
2025-05-28 17:32:14 +02:00
Ryunam bd9561d93c XInput: Fix rumble overload by limiting on state changes and interval 2025-05-28 17:20:33 +02:00
libretroadmin 08c0221c27 (audio driver) Cleanups 2025-05-28 17:19:32 +02:00
libretroadmin 13790a0fad (Audio) Some cleanups 2025-05-28 16:40:56 +02:00
github-actions 4e30df6392 Fetch translations from Crowdin 2025-05-28 00:16:15 +00:00
LibretroAdmin 74599fd776
Merge pull request #17953 from sonninnos/import-content-rework
Default Import Content back to playlist sidebar/tabs
2025-05-28 01:53:29 +02:00
sonninnos cfa839f5b6 Default Import Content back to playlist sidebar/tabs 2025-05-28 01:01:11 +03:00
sonninnos a1a50afc9e Dinput: Ignore first mouse click on focus 2025-05-27 23:47:06 +03:00
sonninnos b3fd3e15ed WinRaw: Prevent stuck mouse buttons on unfocus 2025-05-27 22:43:15 +03:00
sonninnos 03be66836e GLUI: Even better entry height value 2025-05-27 21:08:23 +03:00
sonninnos 7426251263
GLUI: Minor entry height adjustment (#17952) 2025-05-27 18:32:22 +03:00
sonninnos 49ee835c82 Better menu mouse startup position ignore 2025-05-27 18:13:16 +03:00
sonninnos 0f664c739b
Ignore menu mouse startup position before moving (#17951) 2025-05-27 16:48:03 +03:00
sonninnos 4529d06a5a
Fix menu usage when OK/Cancel has mouse binds (#17950) 2025-05-27 14:01:09 +03:00
libretroadmin 5cb15e1cd7 Reapply "Allow Start button to quick manage media playlists (#17948)"
This reverts commit f877adb5d9.
2025-05-27 12:40:32 +02:00
libretroadmin f877adb5d9 Revert "Allow Start button to quick manage media playlists (#17948)"
This reverts commit 7d3740d4c0.
2025-05-27 12:39:52 +02:00
sonninnos 7d3740d4c0
Allow Start button to quick manage media playlists (#17948) 2025-05-27 04:25:16 +03:00
github-actions 3b44efe122 Fetch translations from Crowdin 2025-05-27 00:16:23 +00:00
sonninnos 1c0f945c21
Add media history playlists to playlist manager (#17945) 2025-05-26 23:18:16 +03:00
sonninnos d2a824c1a7 Playlists settings menu reorganizing 2025-05-26 17:42:18 +03:00
sonninnos 158ad0c4bc
Enable savestate thumbnails by default for x64 (#17944) 2025-05-26 16:51:25 +03:00
LibretroAdmin cd4894d627
Merge pull request #17928 from BinBashBanana/master
Rewrite RWebAudio driver
2025-05-26 12:53:27 +02:00
Eric Warmenhoven d8cd500316 macOS: Prompt for local network access 2025-05-26 00:40:56 -04:00
github-actions 0514f203eb Fetch translations from Crowdin 2025-05-26 00:17:13 +00:00
BinBashBanana 86308ef670 RWebAudio scheduling adjustments 2025-05-25 12:42:41 -07:00
LibretroAdmin 65f76bd514
Update audio_driver.c 2025-05-25 15:41:17 +02:00
LibretroAdmin a4f73c622d
Update audio_driver.c 2025-05-25 15:36:42 +02:00
LibretroAdmin 990cc9b0b2
Update audio_driver.c - small cleanup for code readability
Makes it apparent that these variables are rewind-specific
2025-05-25 15:31:46 +02:00
sonninnos e5d86c0ffb One more missing deprecation cleanup 2025-05-25 15:54:48 +03:00
sonninnos 3f2021249b Deprecated msg hash cleanups 2025-05-25 15:49:49 +03:00
LibretroAdmin df42b13bbc
Merge pull request #17901 from zoltanvb/lock_core_description
Lock core and save state explanations.
2025-05-25 14:47:54 +02:00
github-actions 1956b6e01f Fetch translations from Crowdin 2025-05-25 00:18:18 +00:00
sonninnos dd45f8cb0c Rewind logging cleanup 2025-05-24 22:18:49 +03:00
github-actions d5699457ca Fetch translations from Crowdin 2025-05-24 00:15:33 +00:00
sonninnos 4ba004a1e8
Add 'Show Favorites First' visibility option (#17933) 2025-05-23 16:06:53 +03:00
sonninnos 766f895948
Turbo fire override corrections (#17932) 2025-05-23 14:51:23 +03:00
github-actions 5514f71a00 Fetch translations from Crowdin 2025-05-23 00:16:34 +00:00
LibretroAdmin 99b4b66174
Merge pull request #17926 from warmenhoven/warmenhoven/pr/apple-gear
apple: add gearcoleco, geargrafx cores to app store builds
2025-05-22 12:32:19 +02:00
LibretroAdmin 65435d1703
Merge pull request #17927 from warmenhoven/warmenhoven/pr/apple-same
apple: add sameduck core to app store builds
2025-05-22 12:32:10 +02:00
Eric Warmenhoven 7e52201fb6 apple: add sameduck core to app store builds 2025-05-22 01:38:56 -04:00
Eric Warmenhoven 0c872e7c94 apple: add gearcoleco, geargrafx cores to app store builds 2025-05-22 00:11:54 -04:00
LibretroAdmin 91608d6bd0
Merge pull request #17925 from warmenhoven/warmenhoven/pr/macos-quit
macos: followup to runloop observer
2025-05-22 04:55:32 +02:00
Eric Warmenhoven 0a6db1088a macos: followup to runloop observer 2025-05-21 21:38:29 -04:00
BinBashBanana c2d7366ea1 Rewrite RWebAudio driver 2025-05-21 18:05:05 -07:00
github-actions ca190dbe0a Fetch translations from Crowdin 2025-05-22 00:16:17 +00:00
Eric Warmenhoven 79a05ef286 macos build fix for steam 2025-05-21 12:31:08 -04:00
sonninnos 610a6d0026 Internal core logging newlines 2025-05-21 18:18:14 +03:00
sonninnos 5afbca8904 video_driver_build_info crash fix 2025-05-21 16:46:45 +03:00
LibretroAdmin 8cfdfebb03
Merge pull request #17922 from warmenhoven/warmenhoven/pr/macos-run
macOS: use CFRunLoopObserver for running runloop
2025-05-21 10:16:22 +02:00
Eric Warmenhoven 14c5956ff8 macOS: use CFRunLoopObserver for running runloop 2025-05-20 23:44:11 -04:00
github-actions e2b725b5a3 Fetch translations from Crowdin 2025-05-21 00:17:00 +00:00
zoltanvb f5280fe526 Lock core and save state explanations. 2025-05-20 22:01:33 +02:00
sonninnos 0e4cf00d1f
Add option for suggesting cores when a core is loaded (#17920) 2025-05-20 15:54:22 +03:00
github-actions 7d98987f9d Fetch translations from Crowdin 2025-05-20 00:16:59 +00:00
LibretroAdmin 072142b5af
Merge pull request #17918 from Jamiras/feature/unsupported_warning
(cheevos) show additional warning message when unsupported achievements are detected
2025-05-19 22:33:14 +02:00
Jamiras 5568a1e25d show additional warning message when unsupported achievements are detected 2025-05-19 07:44:56 -06:00
github-actions 531a8d75a7 Fetch translations from Crowdin 2025-05-19 00:17:26 +00:00
LibretroAdmin ac3c83eca1
Merge pull request #17914 from warmenhoven/warmenhoven/pr/server-hash
cloud sync: don't always trust the server hash
2025-05-18 16:14:08 +02:00
LibretroAdmin f0dcd6810c
Merge pull request #17911 from pstef/psl1ght-make 2025-05-18 10:36:31 +02:00
Eric Warmenhoven 48f77a948f
vulkan: fix hdr (#17915)
fixes #17912
2025-05-18 06:09:06 +03:00
Eric Warmenhoven b632a1373e cloud sync: don't always trust the server hash 2025-05-17 21:59:27 -04:00
sonninnos 97bc2da36c Fix menu core unload 2025-05-17 18:53:33 +03:00
pstef 537bc2dbe9 Fix broken logic in the clean target 2025-05-17 09:17:07 +00:00
Craig Carnell f1538b1326 Add target cpu and tune for webOS 2025-05-16 12:53:10 +01:00
Aleksey Samoilov a77049b022
Bump required wayland-protocols (#17908) 2025-05-15 19:52:02 +03:00
LibretroAdmin 19239287bf
Merge pull request #17907 from sonninnos/menu-input-latency-cleanup
Clean up input + latency menus
2025-05-15 07:16:39 +02:00
github-actions 13616bafe0 Fetch translations from Crowdin 2025-05-15 00:15:17 +00:00
sonninnos b5cbe6eaed Clean up input + latency menus 2025-05-14 23:40:43 +03:00
sonninnos cc57bbc06e
Turbo mode corrections (#17905) 2025-05-14 22:37:05 +03:00
LibretroAdmin 45764673c7
Merge pull request #17904 from webosbrew/webos 2025-05-14 20:19:13 +02:00
Craig Carnell 667b16964b Add artifact build for webOS 2025-05-14 17:18:43 +01:00
Craig Carnell 9c9d68ae20 Fix missing package name on webos 2025-05-14 17:07:57 +01:00
Ningyuan Li 5b0fb96443 added release workflow 2025-05-14 17:07:37 +01:00
Ningyuan Li f260d3edab changed package version #7 2025-05-14 17:05:54 +01:00
Ningyuan Li ce406353cc added webOS default fonts 2025-05-14 17:05:42 +01:00
Ningyuan Li b1da352de6 Properly ships libSDL2 for webOS
Updated some build config
2025-05-14 17:03:59 +01:00
LibretroAdmin bd5f47afbb
Merge pull request #17902 from sonninnos/frame-delay-menu-fix
Frame delay menu string fix
2025-05-14 17:12:54 +02:00
sonninnos 1886f76bba Frame delay menu string fix 2025-05-14 15:12:04 +03:00
LibretroAdmin 7bc992437c
Merge pull request #17899 from sonninnos/bfi-shdrsub-stringrep-cleanup 2025-05-14 06:54:45 +02:00
LibretroAdmin 4f22a04436
Merge pull request #17898 from zoltanvb/core_options_reset_v2b 2025-05-14 06:54:28 +02:00
github-actions cd78050c79 Fetch translations from Crowdin 2025-05-14 00:16:16 +00:00
sonninnos 0f65f2f0f3 Display bfi + shader subframes strings without translations 2025-05-14 01:13:42 +03:00
sonninnos ee11b79738
Improve playlist thumbnail cycling (#17897)
* Improve playlist thumbnail cycling

* GLUI: Thumbnail cycling fixes
2025-05-13 22:14:49 +03:00
zoltanvb 30ffb042c6 Hide core reset from Configuration File when no core is loaded. 2025-05-13 19:48:45 +02:00
LibretroAdmin 57acb067b8
Merge pull request #17896 from zoltanvb/core_options_reset_v2 2025-05-13 04:29:46 +02:00
github-actions 0900cd7540 Fetch translations from Crowdin 2025-05-13 00:16:26 +00:00
zoltanvb c794376223 Move core options reset from Settings/Configuration to Main Menu / Configuration Files 2025-05-12 22:14:38 +02:00
Eric Warmenhoven 906c0be946 macos/ios: Enable icloud_drive cloud sync backend 2025-05-12 09:17:16 -04:00
Davide Andreoli 2f1ae73dd4 feat: added iCloud Drive Cloud Sync 2025-05-12 08:54:06 -04:00
github-actions 6ade319137 Fetch translations from Crowdin 2025-05-12 00:17:23 +00:00
sonninnos 1b61b88274
Refine menu info+search disable buttons (#17889) 2025-05-11 22:18:44 +03:00
sonninnos 5e03ef57ec
Ozone+XMB: Fix content icons when playlist tabs hidden (#17888) 2025-05-11 21:22:32 +03:00
Eric Warmenhoven 874cc00c2e macos: fix app store packaging 2025-05-11 12:01:20 -04:00
LibretroAdmin 1be64020f5
Merge pull request #17886 from BinBashBanana/master
RWebCam hotfix
2025-05-11 03:10:33 +02:00
github-actions 45e13e3f2d Fetch translations from Crowdin 2025-05-11 00:17:21 +00:00
BinBashBanana 84a52677b5 RWebCam hotfix 2025-05-10 13:52:09 -07:00
github-actions b590d843bc Fetch translations from Crowdin 2025-05-10 00:15:02 +00:00
sonninnos 0818feb131 Wasapi: Buffer correction 2025-05-09 19:09:55 +03:00
LibretroAdmin c90804c2ad
Merge pull request #17884 from Sunderland93/fix_libdecor 2025-05-09 17:10:50 +02:00
Aleksey Samoilov 759104acd4 Fix build with libdecor enabled 2025-05-09 19:01:31 +04:00
LibretroAdmin 79d78a6860
Merge pull request #17880 from Sunderland93/wayland_toplevel_icon
[Wayland]: Add support for xdg-toplevel-icon-v1
2025-05-09 06:14:58 +02:00
LibretroAdmin 73426f823d
Merge pull request #17872 from BinBashBanana/master
Emscripten improvements pt. 4
2025-05-09 02:49:30 +02:00
github-actions 8e154e0df6 Fetch translations from Crowdin 2025-05-09 00:16:12 +00:00
sonninnos df1c342cb2 Ozone: C89 buildfix 2025-05-09 02:05:44 +03:00
sonninnos cacff13799 Ozone: Improve metadata background fade 2025-05-09 01:44:20 +03:00
sonninnos ae9e8ba75c Ozone: Skip thumbnail background for metadata display 2025-05-09 01:29:57 +03:00
Aleksey Samoilov 6be300b07c Additional check for xdg-toplevel-icon for libdecor 2025-05-09 02:20:07 +04:00
Aleksey Samoilov 7264709776 Set toplevel icon for libdecor frame 2025-05-09 02:15:22 +04:00
Michael Burgardt f9bdd7bc87
Update language list in sample files (#17829) 2025-05-09 00:57:00 +03:00
sonninnos 7b37f85a99
XMB: Add temporary thumbnail toggle (#17881) 2025-05-09 00:56:13 +03:00
sonninnos c3cb4a8b5d D3D11+12: Minor cleanups 2025-05-08 22:11:53 +03:00
BinBashBanana 2d3c18e48d Emscripten improvements pt. 4 2025-05-08 11:01:43 -07:00
Aleksey Samoilov 9cf03289ec Check if icon_buffer is created 2025-05-08 18:55:51 +04:00
Aleksey Samoilov c4ee58a81a Fix intend 2025-05-08 18:10:28 +04:00
Aleksey Samoilov 6c7b648570 [Wayland]: Add support for xdg-toplevel-icon-v1 2025-05-08 17:58:20 +04:00
github-actions 7cffc6bb60 Fetch translations from Crowdin 2025-05-08 00:15:58 +00:00
sonninnos a8d65325a7
Set default lightgun Start+Select keybinds for port 1 (#17877) 2025-05-08 01:06:34 +03:00
sonninnos 10738f532c
Add shader hold hotkey and improve toggling logic (#17840) 2025-05-08 00:56:59 +03:00
sonninnos 0b547bdd49
Remove language mention from User menu sublabel (#17876) 2025-05-08 00:26:54 +03:00
pstef d3cf9aa651
Improve CLI --entryslot (#17874)
Accepted values are 0 to 999. Rewrite this part to use strtol and test
for values in that range.

Co-authored-by: pstef <3462925+pstef@users.noreply.github.com>
2025-05-08 00:15:39 +03:00
sonninnos eb35401e1a
Merge pull request #17868 from sonninnos/auto-swap-interval-fix
Auto swap interval correction
2025-05-08 00:07:37 +03:00
github-actions 67a2793ab4 Fetch translations from Crowdin 2025-05-07 00:16:24 +00:00
github-actions 3bfed628ff Fetch translations from Crowdin 2025-05-06 00:16:38 +00:00
sonninnos 2ddd9330fe Frame delay + swap interval correction 2025-05-05 15:50:45 +03:00
sonninnos ba8b97041e Auto swap interval correction 2025-05-05 15:50:42 +03:00
LibretroAdmin 0670d6d87e
Merge pull request #17853 from sonninnos/menu-thumbnail-background 2025-05-05 14:45:11 +02:00
LibretroAdmin 5ba3fa6fd4
Merge pull request #17855 from kwyxz/camera_haiku 2025-05-05 14:44:51 +02:00
LibretroAdmin 28f81e8e71
Merge pull request #17857 from jecaro/fix-nmcli-wifi-driver 2025-05-05 14:44:34 +02:00
LibretroAdmin 463770c3c2
Merge pull request #17854 from pstef/thumbnails-selection 2025-05-05 14:44:12 +02:00
jecaro 3637f49ddc
Fix nmcli wifi driver
- Use the password stored in the connection profile instead of asking
  each time to the user

- `Disconnect` menu item wasn't shown even when connected

   When entering the Wi-Fi menu first, `nmcli_connection_info` is called with
   `NULL`. If we return `false` here, the menu doesn't show the `Disconnect`
   menu item even when the wifi is on and connected.

- Don't consider wired connections when checking if the device is connected

   `cmd_file = popen("nmcli -f NAME c show --active | tail -n+2", "r");`

   That command returns all active connections, even the wired ones. That
   means that if the wifi is not connected but we have a wired connection,
   retroarch shows the Disconnect menu item to disconnect ... a
   non-existent wifi connection.
2025-05-05 12:38:12 +02:00
github-actions 19257e2190 Fetch translations from Crowdin 2025-05-05 00:17:08 +00:00
kwyxz e78898f379 default to FFmpeg libavfilter virtual input device 2025-05-04 01:48:15 +00:00
github-actions 015e515e9e Fetch translations from Crowdin 2025-05-04 00:17:35 +00:00
pstef 583687081c Revisit selection and size_t to silence warnings
There is a type mismatch between selection (size_t) and how it's passed
to some functions. In 4f3ae82 I got it backwards and changed the type in
savestate thumbnail function definitions to size_t, but in that case we
can assume that there won't be more than 999. So in this case it's OK to
keep the unsigned int and cast selection to that type.

Thumbnails on playlists are the other case and the limit is not so clear
to me, so I assume it's reasonable to promote the type of the function
parameter i from unsigned to size_t.
2025-05-03 19:08:56 +00:00
sonninnos e3583cbcbb Add common Thumbnail Background option for all menu drivers 2025-05-03 19:12:10 +03:00
LibretroAdmin 2a225a20dc
Merge pull request #17851 from pstef/ffast-math
Pop fast-math at the end of the file
2025-05-03 16:48:59 +02:00
LibretroAdmin 34e68a44ab
Merge pull request #17852 from pstef/mean-and-mean
Reapply "Define WIN32_LEAN_AND_MEAN to avoid collision with winsock2"
2025-05-03 16:48:46 +02:00
pstef 0c1402d92a Reapply "Define WIN32_LEAN_AND_MEAN to avoid collision with winsock2"
It was reverted in 309c67a205 because it
was suspected of breaking Windows releases, but the reason was
different.
2025-05-03 13:28:49 +00:00
pstef 2e868fc00b Pop fast-math at the end of the file
so that it doesn't affect the rest of the code in Griffin builds.

This is unfortunately GCC-only, but Clang will miss only 1 vectorization.
2025-05-03 12:29:42 +00:00
github-actions 63487e8ed8 Fetch translations from Crowdin 2025-05-03 00:15:28 +00:00
LibretroAdmin 4c30e94aa2
Merge pull request #17850 from pstef/ffast-math
Make -ffast-math exclusive to sinc_resampler.c
2025-05-03 00:12:06 +02:00
pstef 6bfb7862e7 Make -ffast-math exclusive to sinc_resampler.c
-ffast-math was added in ff14092d8d with a comment that it "helps SINC
resampler to auto-vectorize". The flag is an alias for "-fno-math-errno
-funsafe-math-optimizations -ffp-contract=fast -fno-honor-infinities
-fno-honor-nans". The last two of those cause compiler complaints
because while the flag was meant for this file, it's shared across the
codebase that includes statements that operate on infinities and NaNs.

GCC 13.3 with -fopt-info-vec reports 18 vectorizations for `-O3
-ffast-math`, 17 for `-O3 -fno-math-errno -funsafe-math-optimizations
-ffp-contract=fast` and also 17 for plain `-O3`. So using the subset of
-ffast-math without the offending flags buys nothing and loses 1
vectorization.

Both GCC and Clang provide the "fast-math" pragma directive, which I add
to this one file that benefits from it, under the condition that it's
supported. -ffast-math is removed from most of the makefiles.
2025-05-02 17:26:19 +00:00
github-actions 14c78b6c32 Fetch translations from Crowdin 2025-05-02 00:15:30 +00:00
LibretroAdmin 4b6d315ad6
Merge pull request #17844 from JoeOsborn/add-save-load-sram-commands 2025-05-02 00:09:31 +02:00
LibretroAdmin 28a300d00f
Merge pull request #17841 from pstef/silenter-makefiles 2025-05-02 00:08:41 +02:00
LibretroAdmin 811a32b982
Merge pull request #17843 from pstef/ozone-selection 2025-05-02 00:07:57 +02:00
github-actions baee906ef3 Fetch translations from Crowdin 2025-05-01 00:17:50 +00:00
pstef c968c1a51d Use size_t for new_selection as done everywhere else 2025-04-30 23:48:39 +00:00
Joseph C. Osborn fe5defea71 add new error message for sram load during hardcore cheevo 2025-04-30 15:05:39 -07:00
Joseph C. Osborn fb94043d48 Report errors from save/load, disable loads under hard cheevos 2025-04-30 14:44:56 -07:00
Joseph C. Osborn 6235f3138b Add command.h commands for saving/loading sram 2025-04-30 12:33:40 -07:00
github-actions 05f94af415 Fetch translations from Crowdin 2025-04-30 00:16:22 +00:00
pstef 48f842f307 CI: use the info target
These makefiles provide the info target that will print contents of each
variable that is not printed (unless V=1, which is not the case here) on
command invocation. Making this information available in the logs should
help debugging, but it doesn't need to be printed on each command
invocation.
2025-04-29 18:54:24 +00:00
pstef 0c838c14e9 Makefiles: don't print info unconditionally
The point of making the default "semi-silent" (each target is printed,
but not the entire invocation verbatim) was to factor out information
about invocation to a one-time target (info) and not repeating it ever
again. With V=1, the info target is silent, because each command
invocation will be printed verbatim, which needs no herald.

The undesired side effect of me introducing the info target and making
it a dependency of the default all target is that info doesn't respect
the --silent make option, so in this use case it was more noisy, not
less.

I believe the most elegant solution that satisfies all use cases is to
stop printing info unconditionally, and instead list it explicitly in
make invocations in CI, together with the all target. Then this info is
kept available for inspection from logs, but it's not repeated on each
invocation. The intention was to make the logs easier to read and scroll
in search for new compiler warnings.
2025-04-29 18:36:48 +00:00
github-actions 54af661d95 Fetch translations from Crowdin 2025-04-28 00:16:34 +00:00
LibretroAdmin a7fab4a394
Merge pull request #17833 from white-axe/emscripten-argb8
Fix feature test for `GL_CAPS_ARGB8` in Emscripten builds
2025-04-27 09:54:33 +02:00
github-actions 633ee296e7 Fetch translations from Crowdin 2025-04-27 00:17:17 +00:00
刘皓 ebd79bfa72
Fix feature test for `GL_CAPS_ARGB8` in Emscripten builds 2025-04-26 19:11:19 -04:00
LibretroAdmin 3036fecc7c
Merge pull request #17831 from pstef/Makefile.ctr
3DS: enable cloud sync
2025-04-26 12:32:57 +02:00
pstef fdcd4e78e8 3DS: enable Cloud Sync 2025-04-26 01:11:11 +00:00
pstef 57845fd3cf Remove commented-out needless HAVE_ features 2025-04-26 01:10:16 +00:00
github-actions 30aad19fae Fetch translations from Crowdin 2025-04-26 00:15:12 +00:00
github-actions 8af10c25a1 Fetch translations from Crowdin 2025-04-25 00:16:20 +00:00
LibretroAdmin 3ee6dd6481
Merge pull request #17828 from JoeOsborn/fix-uninitialized-variable
Fixes an uninitialized variable in extra wasmfs/fetchfs feature
2025-04-25 02:08:30 +02:00
Joseph C. Osborn 55f9f92eaf Fixes an uninitialized variable in extra wasmfs/fetchfs feature
Under some optimizations, this would lead to games using fetchfs
backend just crashing due to calling wasmfs functions on a garbage pointer.
2025-04-24 10:14:16 -07:00
LibretroAdmin 92fecf68b1
Merge pull request #17827 from white-axe/emscripten-webgl-get-proc-address 2025-04-24 07:25:17 -07:00
刘皓 1a5eb6e8b9
Implement `get_proc_address` for emscriptenwebgl_ctx 2025-04-23 22:12:10 -04:00
github-actions b2a5e97923 Fetch translations from Crowdin 2025-04-24 00:16:04 +00:00
github-actions ab515cd22d Fetch translations from Crowdin 2025-04-23 00:15:54 +00:00
github-actions 03525ffd5f Fetch translations from Crowdin 2025-04-22 00:15:59 +00:00
github-actions 547d739db4 Fetch translations from Crowdin 2025-04-21 00:16:40 +00:00
github-actions a2e512a094 Fetch translations from Crowdin 2025-04-20 00:17:09 +00:00
github-actions 76e7c9a3d9 Fetch translations from Crowdin 2025-04-19 00:15:24 +00:00
LibretroAdmin 056153ca5b
Merge pull request #17821 from pstef/mean-and-mean 2025-04-18 15:42:35 -07:00
pstef 309c67a205 Revert "Define WIN32_LEAN_AND_MEAN to avoid collision with winsock2"
The Windows builds have been missing some libraries, notably
avdevice-58.dll, avfilter-7.dll, and prostproc-55.dll as reported by a
user on Discord.  I suspect it's caused by cc842fd, although I don't
fully understand why that would happen.
2025-04-18 21:12:17 +00:00
LibretroAdmin 21c5c5db36
Merge pull request #17815 from DisasterMo/master
Update the core localisation sync scripts, workflows and instructions
2025-04-18 09:01:36 -07:00
LibretroAdmin 60c8a34039
Merge pull request #17820 from zoltanvb/menu_driver_warning_fix
Avoid format length warning in menu_driver.c.
2025-04-18 09:00:57 -07:00
zoltanvb 6160b71ecc Avoid format length warning. 2025-04-18 17:33:55 +02:00
github-actions 0d66d4b1b3 Fetch translations from Crowdin 2025-04-18 00:15:29 +00:00
LibretroAdmin 0fef644219
Merge pull request #17818 from zoltanvb/msg_state_size
Fix core descriptions not showing
2025-04-17 15:06:10 -07:00
zoltanvb 597405ba89 Fix core descriptions not showing
In core downloader, description can be brought up by pressing
Select. However, for those cores where the description is longer
than what would be possible to display, nothing was displayed.
Several such cores exist, one example is Dosbox-Core.

Since this array is used for the messagebox, it is needless to make
it larger than what would be displayed anyway, and it makes other
safeguards act reasonably, so now there is info, just truncated.
2025-04-17 22:27:23 +02:00
LibretroAdmin c14016d6a2
Merge pull request #17817 from pstef/changelog 2025-04-17 00:23:09 -07:00
pstef ce36ea176a Add a few 3DS items 2025-04-17 06:25:30 +00:00
Joseph Mattiello 3eaa9f15a9
Add Microphone CoreAudio driver for iOS and macOS
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
2025-04-16 15:37:11 -04:00
DisasterMo 453348afad Update the core localisation sync scripts, workflows and instructions 2025-04-16 18:58:02 +02:00
LibretroAdmin 94149644f9
Merge pull request #17812 from viachaslavic/fix_qt_dispatcher
Fix qt6 dispatcher
2025-04-16 07:24:16 -07:00
LibretroAdmin a5ddb4b007
Merge pull request #17813 from pstef/3ds-mrboom-audiomixer
Restore HAVE_AUDIOMIXER to fix MrBoom build
2025-04-16 07:24:01 -07:00
pstef 93b1d2c8d7 Restore HAVE_AUDIOMIXER to fix MrBoom build 2025-04-16 13:57:15 +00:00
LibretroAdmin f6cd9469ed
Merge pull request #17811 from pstef/new_selection-int 2025-04-16 05:58:14 -07:00
LibretroAdmin d3b2c08e8b
Merge pull request #17809 from pstef/3ds-compress-clean 2025-04-16 05:57:55 -07:00
Viačasłaŭ Chalikin 1736184f15
Fix qt6 dispatcher 2025-04-16 15:35:01 +03:00
pstef b9bee801fd Revert "Use size_t for new_selection as done everywhere else"
At least `case MENU_ACTION_UP` compares new_selection against 0, the
type needs to be signed. Revert 5710a7f6 now and revisit after a deeper
look.
2025-04-16 11:29:06 +00:00
pstef 4032fb47e8 Add missing compress.o object
Statically built cores like blueMSX call compress().
2025-04-16 06:30:25 +00:00
pstef fc15fce531 Fix logic in the clean target 2025-04-16 06:30:25 +00:00
LibretroAdmin 203fff1a11
Bump version 2025-04-14 23:04:09 -07:00
LibretroAdmin d14bf2f40d
Update CHANGES.md 2025-04-14 17:37:11 -07:00
github-actions fd54639965 Fetch translations from Crowdin 2025-04-15 00:16:12 +00:00
LibretroAdmin 7b99a7ce85
Merge pull request #17807 from pstef/fixes 2025-04-14 04:52:59 -07:00
pstef 011469d7ef Fix broken logic in the clean target 2025-04-14 08:07:55 +00:00
github-actions f9d79b6afd Fetch translations from Crowdin 2025-04-14 00:16:58 +00:00
LibretroAdmin 7a1c9bd0b1
Merge pull request #17805 from zoltanvb/x11_multimouse
Extend X11 input driver with XInput2 extensions for multi-mouse
2025-04-13 06:03:07 -07:00
LibretroAdmin d36bbb6b91
Merge pull request #17803 from tekdahl/tekdahl-video-processor-magewell-patch 2025-04-13 04:39:38 -07:00
zoltanvb 1678e25af0 Extend X11 input driver with XInput2 extensions for multi-mouse
Add multi-mouse support for X11, by using XInput2 extensions. Only
master pointers are considered as mice.

New behavior put behind HAVE_XI2 and configure script extended with
necessary detection.
2025-04-13 12:16:53 +02:00
github-actions 69f319d16e Fetch translations from Crowdin 2025-04-13 00:40:20 +00:00
tekdahl 4e35a3749e
Update video_processor_v4l2.c replaced/fixed list_resolutions function with code from pstef 2025-04-12 18:45:07 -05:00
pstef 6d2e7e4ec9 Remove unused variable 2025-04-12 23:02:22 +00:00
pstef cc842fd4b2 Define WIN32_LEAN_AND_MEAN to avoid collision with winsock2 2025-04-12 22:11:53 +00:00
pstef 89218d5640 Revert "Silence a -Wformat warning"
This reverts commit 4f9e86d24b.

Since uintmax_t is also a C99 feature, some other compiler complains.
2025-04-12 22:11:53 +00:00
LibretroAdmin 2ab308765d
Merge pull request #17802 from warmenhoven/warmenhoven/pr/ios-build-fix
ios: build fix
2025-04-12 14:56:03 -07:00
Eric Warmenhoven 41d33e631b ios: build fix 2025-04-12 16:45:04 -04:00
LibretroAdmin 274d8732ab
Merge pull request #17797 from pstef/makefiles 2025-04-12 10:10:26 -07:00
LibretroAdmin c6995c0b1d
Merge pull request #17801 from pstef/win32-socket 2025-04-12 10:09:56 -07:00
LibretroAdmin a3ba931113
Merge pull request #17799 from tekdahl/tekdahl-video-processor-magewell-patch
video_processor_v4l2.c updates to make it work with my magewell card and added resolution options
2025-04-12 06:13:40 -07:00
LibretroAdmin ca850d09fe
Merge pull request #17798 from warmenhoven/warmenhoven/pr/ios-man-scan
iOS: fix rescanning manual playlists after app update
2025-04-12 06:13:24 -07:00
LibretroAdmin 570290893b
Merge pull request #17800 from pstef/fixes
Corrections after recent fixes
2025-04-12 06:13:15 -07:00
pstef d6cc1847bf Finish converting to SOCKET type in _WIN32 code
fixes c048a21
2025-04-12 10:45:08 +00:00
pstef 66aa1424f0 Define WIN32_LEAN_AND_MEAN to avoid collision with winsock2 2025-04-12 10:45:08 +00:00
pstef ea9b86c9e7 dr: import upstream change to silence a spurious warning 2025-04-12 10:30:36 +00:00
pstef 57726895dd Finish converting selection variables to size_t
fixes 5710a7f6e5
2025-04-12 10:30:36 +00:00
pstef ab3b321c66 cpuid: finish converting to int32_t
fixes b25cb6ea63
2025-04-12 10:30:36 +00:00
github-actions 05adec60da Fetch translations from Crowdin 2025-04-12 00:14:47 +00:00
tekdahl c63bab4c02
video_processor_v4l2.c
Added resolution picker/forcing.
Rewrote logic for finding ALSA audio devices in enumerate_audio_devices function
Added a skip for some of the interface queries that fail and aren't required for magewell usb.
2025-04-11 18:32:56 -05:00
Eric Warmenhoven 7998511c41 iOS: fix rescanning manual playlists after app update 2025-04-11 18:07:48 -04:00
pstef 34a1b824b6 Github CI: use silent mode for Wii U
It's not clear why it was turned on just for this target.
2025-04-11 17:12:08 +00:00
pstef de280cad9a Makefile.wiiu: print variables once in silent mode 2025-04-11 17:12:08 +00:00
pstef c93a050465 Makefile.wii: make one more target silenceable 2025-04-11 17:12:08 +00:00
pstef eb6305136d Makefile.wii: print variables once in silent mode 2025-04-11 17:12:08 +00:00
pstef 308593693c Makefile.wii: don't print all objects removed by the clean target in silent mode 2025-04-11 17:12:08 +00:00
pstef 25a1f1bb41 Makefile.webos: print variables once in silent mode 2025-04-11 17:12:08 +00:00
pstef e08ecd6f94 Makefile.webos: don't print all objects removed by the clean target in silent mode 2025-04-11 17:12:07 +00:00
pstef 192ca4179b Makefile.webos: make silent mode toggable 2025-04-11 17:12:07 +00:00
pstef 7f3f0106de Makefile.vita: implement silent mode 2025-04-11 17:12:07 +00:00
pstef 4b2196af6c Makefile.rs90: print variables once in silent mode 2025-04-11 17:12:07 +00:00
pstef 6e68e2f0da Makefile.rs90: don't print all objects removed by the clean target in silent mode 2025-04-11 17:12:07 +00:00
pstef f9de17b7ed Makefile.rs90: make silent mode toggable 2025-04-11 17:12:07 +00:00
pstef eb53b4174f Makefile.retrofw: print variables once in silent mode 2025-04-11 17:12:07 +00:00
pstef e907399419 Makefile.retrofw: don't print all objects removed by the clean target in silent mode 2025-04-11 17:12:07 +00:00
pstef edbe0f032c Makefile.retrofw: make silent mode toggable 2025-04-11 17:12:07 +00:00
pstef 58dc568c24 Makefile.psl1ght: implement silent mode 2025-04-11 17:12:07 +00:00
pstef 29072a3ac8 Makefile.ps2: implement silent mode 2025-04-11 17:12:07 +00:00
pstef d631a5b632 Makefile.orbis: implement silent mode 2025-04-11 17:12:07 +00:00
pstef e7c5eef862 Makefile.ngc: silence more targets in silent mode 2025-04-11 17:12:07 +00:00
pstef 941173c0df Makefile.ngc: print variables once in silent mode 2025-04-11 17:12:07 +00:00
pstef d373adc873 Makefile.ngc: don't print all objects removed by the clean target in silent mode 2025-04-11 17:12:07 +00:00
pstef d25aaac625 Makefile.miyoo: print variables once in silent mode 2025-04-11 17:12:07 +00:00
pstef cc75358335 Makefile.miyoo: don't list all objects removed by the clean target in silent mode 2025-04-11 17:12:07 +00:00
pstef 685b937e2f Makefile.miyoo: make silent mode toggable 2025-04-11 17:12:07 +00:00
pstef 41bbbc55db Makefile.dos: implement silent mode 2025-04-11 17:12:07 +00:00
pstef 6a8338efe9 Makefile.ctr: silence more targets in silent mode 2025-04-11 17:12:06 +00:00
pstef ddcf5285d1 Makefile.ctr: print variables once in silent mode 2025-04-11 17:12:06 +00:00
pstef fbf97b2326 Makefile: don't print all objects removed by the clean target 2025-04-11 17:12:06 +00:00
pstef ab2e577c66 Makefile: print variables once in silent mode 2025-04-11 17:12:06 +00:00
LibretroAdmin 4c0744b644
Merge pull request #17795 from pstef/selection-size_t 2025-04-10 20:25:55 -07:00
LibretroAdmin d76c015e9a
Merge pull request #17796 from pstef/silence-warnings 2025-04-10 20:23:43 -07:00
github-actions ccc68a98bb Fetch translations from Crowdin 2025-04-11 00:15:51 +00:00
pstef c048a21aa4 Use platform-specific checks for invalid descriptors
Check network fd/socket validity using INVALID_SOCKET on Windows
(requiring conditional winsock2.h include) and < 0 otherwise.
Fixes -Wsign-compare warning.
2025-04-10 21:10:45 +00:00
pstef 6a302d0602 PSVita: add missing include 2025-04-10 21:10:45 +00:00
pstef b25cb6ea63 Use int32_t for x86_cpuid flags and handle MSVC types
Change the flags parameter to int32_t for explicit sizing. Add a check
and cast for MSVC __cpuid compatibility when int is 32-bit.

This silences a -Wincompatible-pointer-types warning where int32_t is
long int.
2025-04-10 21:10:45 +00:00
pstef 317c80a257 Silence a shorten-64-to-32 warning
The result of this multiplication will fit into a 32-bit int.
2025-04-10 21:10:45 +00:00
pstef 5710a7f6e5 Use size_t for new_selection as done everywhere else 2025-04-10 21:10:45 +00:00
pstef b5a4a0da79 Don't redefine _BSD_SOURCE
Imported from upstream.
2025-04-10 21:10:45 +00:00
pstef 620e440ab1 Silence an incompatible-pointer-types warning 2025-04-10 21:10:45 +00:00
pstef bcdb644bce Silence a discarded-qualifiers warning
waitUntilDeviceIsReady() should take a const char pointer as a
parameter, because it doesn't use it for writing. Since the function
prototype asks for a char pointer, cast it here.
2025-04-10 21:10:45 +00:00
pstef 4f9e86d24b Silence a -Wformat warning
Use %ju format specifier and cast the value to uintmax_t so that they
match on all platforms.
2025-04-10 21:10:45 +00:00
pstef 4d6c012009 Make space for three characters after a strlcpy call 2025-04-10 21:10:45 +00:00
pstef 187673fb2a Guard definition of an array just like its use is guarded 2025-04-10 21:10:45 +00:00
pstef bcc3ae448f Silence a -Waddress warning 2025-04-10 21:10:45 +00:00
pstef fbb093255a Check for string truncation to silence a warning 2025-04-10 21:10:44 +00:00
pstef 4f3ae82ed3 Savestate thumbnails: selection is usually size_t 2025-04-10 19:20:56 +00:00
LibretroAdmin 7a17ed09ee
Merge pull request #17736 from MrHuu/ctr_core_load_unload 2025-04-10 03:36:07 -07:00
LibretroAdmin 82d8b9630a
Merge pull request #17750 from BinBashBanana/master 2025-04-10 03:35:45 -07:00
github-actions aec5d1addd Fetch translations from Crowdin 2025-04-10 00:16:10 +00:00
LibretroAdmin af50c2fccb
Merge pull request #17792 from pstef/wii-fixes
Wii fixes
2025-04-09 15:36:02 -07:00
pstef 6f95b974ba Bring in changes for GEKKO from upstream 2025-04-09 20:43:09 +00:00
pstef 7dce21c7d5 Copy quiet compilation mode from other Makefiles 2025-04-09 20:43:09 +00:00
pstef d65c17f6b8 Add missing includes
malloc.h for memalign() and unistd.h for usleep().
2025-04-09 20:43:09 +00:00
pstef e8d43b3d99 Add missing function declarations
They are absent even in upstream, so I decided against copying to the
local copy of libogc. And a couple of function prototypes doesn't seem
to warrant a new header file.
2025-04-09 20:43:09 +00:00
pstef b28a805f9c Remove remnants of a rejected idea
This was replaced simply by importing 3DS support from upstream.
2025-04-09 20:43:09 +00:00
LibretroAdmin 4bf8855fda
Merge pull request #17754 from zoltanvb/udev_to_linuxraw_fallback
Save fallback to linuxraw driver in case of first boot.
2025-04-09 13:26:34 -07:00
LibretroAdmin 17ac0529c2
Merge pull request #17762 from pstef/ctr-mbedtls
3DS: enable mbedTLS
2025-04-09 13:25:38 -07:00
LibretroAdmin 634a0a9654
Merge pull request #17753 from pstef/ctr-nogriffin
Fix non-griffin build for 3DS and make it the default
2025-04-09 13:25:30 -07:00
pstef b98a730413
Use fabsf and intended threshold for refresh rate check (#17791)
Discussed with sonninnos

Co-authored-by: pstef <3462925+pstef@users.noreply.github.com>
2025-04-09 23:22:00 +03:00
LibretroAdmin 036df1e9b1
Merge pull request #17790 from pstef/gx2-update-uniform-block
Fix variable name collision
2025-04-09 10:55:34 -07:00
LibretroAdmin a10dbbc1d0
Merge pull request #17787 from warmenhoven/warmenhoven/pr/ios9-build-fix
ios: ios9 build fix
2025-04-09 10:55:22 -07:00
pstef 3b3065f736 Fix variable name collision
const char *id overshadowed the function parameter int id.
2025-04-09 16:59:49 +00:00
Eric Warmenhoven 0533debeab ios: ios9 build fix 2025-04-09 08:50:43 -04:00
LibretroAdmin 3fb20b49c8
Merge pull request #17786 from zoltanvb/android-patch-fix 2025-04-09 03:08:12 -07:00
zoltanvb 4ceea9d6ca Follow patched file changes. 2025-04-09 06:35:37 +02:00
LibretroAdmin de775c501c
Merge pull request #17780 from pstef/cheat-manager 2025-04-08 18:46:51 -07:00
LibretroAdmin b5424e7448
Merge pull request #17783 from pstef/switch-performance-profiles 2025-04-08 18:44:20 -07:00
LibretroAdmin 973cb76c1c
Merge pull request #17784 from warmenhoven/warmenhoven/pr/ios-screen-orient 2025-04-08 18:44:07 -07:00
github-actions bbafb16ea4 Fetch translations from Crowdin 2025-04-09 00:16:07 +00:00
Eric Warmenhoven afc32f02dc ios: screen orientation lock through display server 2025-04-08 15:39:04 -04:00
Ryunam fbd05aa185
Fix very minor build warning (#17781) 2025-04-08 20:24:51 +03:00
pstef e523a6c0be Relocate Switch CPU profile definitions
Move SWITCH_CPU_* array definitions from header to platform_switch.c.
Use extern declarations in the header. Add NULL/0 terminators to the
arrays and update size calculation and loops to use the terminators
where the number of elements can't be calculated.

The motivation for this change is to remove code duplication and silence
warnings about unused arrays in translation units that only used a
subset of them.
2025-04-08 17:12:03 +00:00
pstef 59c71b8db4 Rewrite part of cheat_manager_load_cb_second_pass()
This is to silence a stringop warning that I believe to be a false
positive.  Nevertheless, this change reduces verbosity of the code
and introduces a couple of checks that weren't there previously.

Note that the base parameter of this strtoul call is changed from 0
to 10, because previously the while loop rejected characters other
than 0-9 so strtoul didn't have to. Now that the loop is gone, the
call has to reject characters that are not decimal digits to keep
the logic as it was.
2025-04-08 06:16:59 +00:00
github-actions dc67ff6418 Fetch translations from Crowdin 2025-04-08 00:15:05 +00:00
LibretroAdmin 7ff7e49f56
Merge pull request #17776 from zoltanvb/delete_core_options
Enable core options reset without starting a core.
2025-04-07 16:02:50 -07:00
LibretroAdmin aca2d3a544
Merge pull request #17777 from JesseTG/jtg/fix-ffmpeg-camera-condition 2025-04-07 02:33:31 -07:00
github-actions 55df20c845 Fetch translations from Crowdin 2025-04-07 00:16:31 +00:00
Jesse Talavera 334519167b Make the condition for using `camera_ffmpeg` consistent with the Makefile
- Should fix a link error
2025-04-06 19:05:34 -04:00
zoltanvb 000c5dcd76 Enable core options reset before starting a core.
Add "Reset core options" menu to two more places:
- Manage Cores, where it can delete the options for the selected core
- Configuration, where it can delete the options for the loaded core

Current reset function is updated to delete the core options file if
reset is wanted for a specific core, or core was loaded but not yet
started. Meant as a recovery method for possibly fatal core option
changes.
2025-04-06 21:53:01 +02:00
pstef 1f26793fde 3DS: enable mbedTLS 2025-04-06 18:48:10 +00:00
pstef 4354fc331c Fix non-griffin build for 3DS and make it the default
While here:
* remove input_overlay and task_overlay from linking blacklist
* move -Werror to CC invocation since C++ refuses to use it
* copy the quiet build mode from the main Makefile and make it the
  default
* temporarily define DEPRECATED for gpu_old.h to allow succesful build
* replace the call to command_event() with one to retroarch_main_quit()
  in a failure case
2025-04-06 18:48:07 +00:00
pstef 70aaa0a55c Fix non-griffin build for 3DS and make it the default
While here:
* remove input_overlay and task_overlay from linking blacklist
* move -Werror to CC invocation since C++ refuses to use it
* copy the quiet build mode from the main Makefile and make it the
  default
* temporarily define DEPRECATED for gpu_old.h to allow succesful build
* replace the call to command_event() with one to retroarch_main_quit()
  in a failure case
* add missing uncompr.o in Makefile.common for HAVE_BUILTINZLIB
2025-04-06 18:35:41 +00:00
LibretroAdmin c9998dfb32
Merge pull request #17752 from neil4/fix-overlay-mouse-lightgun 2025-04-06 01:53:55 -07:00
LibretroAdmin d15c7f5669
Merge pull request #17772 from pstef/gamecube-fixes 2025-04-06 01:36:19 -07:00
pstef af8765cb3b Fix DCFlushRange size calculation
by correcting the operator precedence
2025-04-06 01:04:06 +00:00
pstef 3130717626 Don't redefine _SHIFTL and _SHIFTR macros 2025-04-06 00:59:15 +00:00
pstef a33542719f Guard nanosleep prototype behind _POSIX_TIMERS 2025-04-06 00:58:15 +00:00
pstef b3f1152049 Fix a callback function's type to enable compilation with GCC14 2025-04-06 00:57:34 +00:00
pstef 39fd1176dd Add a missing malloc.h include for memalign() 2025-04-06 00:56:04 +00:00
pstef 3c9d9373d2 Copy quiet compilation mode from other Makefiles 2025-04-06 00:55:37 +00:00
github-actions 44666bae9a Fetch translations from Crowdin 2025-04-06 00:17:06 +00:00
LibretroAdmin eca7fdcc99
Merge pull request #17770 from pstef/achievements-badges
Restore cheevos_badges_enable for HAVE_GFX_WIDGETS builds
2025-04-05 11:09:08 -07:00
pstef 9c4efa9af0 Restore cheevos_badges_enable for HAVE_GFX_WIDGETS builds
This change reduces stuttering when starting a game with
retroachievements enabled. I assume the stuttering is just postponed
until the badges are downloaded on demand, but it lets users pick their
poison.

This change helps but doesn't fix
https://github.com/libretro/RetroArch/issues/16470
https://github.com/libretro/RetroArch/issues/17027
https://github.com/libretro/RetroArch/issues/17758
2025-04-05 10:32:22 +00:00
github-actions d50825e5c7 Fetch translations from Crowdin 2025-04-05 00:14:42 +00:00
LibretroAdmin 3888bfd453
Merge pull request #17766 from pstef/pcsx_rearmed
CTR: fix type to re-enable compilation
2025-04-04 09:39:17 -07:00
odditude42 b8b11a6187
Excludes msvc compilation of Win11/MSYS2-specific registry-reading code to resolve (#17769)
MSVC2010 build issues.
2025-04-04 13:12:48 +03:00
github-actions 873ed01b7d Fetch translations from Crowdin 2025-04-04 00:16:08 +00:00
odditude42 9de225ed45
Moved declarations to fix MSVC2010 builds (C89 compliance) (#17768) 2025-04-04 01:42:02 +03:00
BinBashBanana f5a056b086 Fix safari file uploads 2025-04-03 10:24:06 -07:00
pstef 327ee894f4 CTR: fix type to re-enable compilation
with GCC14
2025-04-03 15:56:13 +00:00
LibretroAdmin 7a5fcd460d
Merge pull request #17764 from zoltanvb/qt_nonpng_display
Enable non-png thumbnails also for Qt interface.
2025-04-02 16:17:29 -07:00
LibretroAdmin a3eb6afe8d
Merge pull request #17765 from pstef/net-http-resolve-entry
Fix crash in net_http_resolve() in single-thread mode
2025-04-02 16:17:12 -07:00
pstef 71ddadfcfb Fix crash in net_http_resolve() in single-thread mode
Pass the right object to the resolving function
2025-04-02 21:32:11 +00:00
zoltanvb fb9aad1a3e Enable non-png thumbnails also for Qt interface. 2025-04-02 22:43:25 +02:00
github-actions d1a53e7d05 Fetch translations from Crowdin 2025-04-02 00:16:30 +00:00
zoltanvb 3bbbeca957 Save fallback to linuxraw driver in case of first boot.
When no devices can be detected and it is the initial boot, make
sure the driver is set to linuxraw, if supported.
2025-04-01 21:55:14 +02:00
LibretroAdmin 454dedf034
Merge pull request #17757 from kokoko3k/master
FIX shader wildcards.
2025-04-01 05:54:11 -07:00
LibretroAdmin 029469b3d9
Merge pull request #17760 from white-axe/vita-pic-veneer
Use `-Wl,--pic-veneer` instead of `-fno-optimize-sibling-calls` in Makefile.vita
2025-04-01 05:53:45 -07:00
刘皓 665d930823
Use `-Wl,--pic-veneer` instead of `-fno-optimize-sibling-calls` in Makefile.vita 2025-03-31 23:05:59 -04:00
BinBashBanana 4d95024bd6 Makefile compatibility fixes 2025-03-31 18:13:15 -07:00
github-actions 031a315329 Fetch translations from Crowdin 2025-04-01 00:18:16 +00:00
Antonio Orefice 97725bfac3 remove a debug message 2025-03-31 18:23:56 +02:00
Antonio Orefice d7c00869fb FIX shader wildcards.
All wildcards: Use strlen() because STRLEN_CONST cannot work on wildcard_tokens[i].token_name
CORE and VID-DRV wildcards: correctly update _len
2025-03-31 18:19:18 +02:00
github-actions 06eabf2d13 Fetch translations from Crowdin 2025-03-31 00:15:56 +00:00
BinBashBanana 393e1b4b98 Fixes for #17750 2025-03-30 13:15:50 -07:00
LibretroAdmin 1b3973edbc
Merge pull request #17747 from pstef/video-frame-delay-setting-rewrite 2025-03-30 01:11:13 -07:00
github-actions 57b1d5880f Fetch translations from Crowdin 2025-03-30 00:16:43 +00:00
nfore b9beaa8564 Fix overlay lightgun, mouse & pointer
- Ensure other touchscreen input is blocked when overlay buttons pressed
- Limit physical+overlay mouse input to iOS for now
- Reset overlay mouse deltas when there is no touch input
- Disable touch mouse in android_input.c for now. Too buggy
2025-03-29 08:56:35 -05:00
MrHuu 736e1b30f3 Static core loading 2025-03-29 11:26:58 +01:00
LibretroAdmin 76598f1016
Merge pull request #17745 from pstef/silence-warnings
Silence warnings
2025-03-29 03:12:00 -07:00
LibretroAdmin a3c144d6ca
Merge pull request #17749 from odditude42/master
Updated platform_win32.c to properly detect OS version info on Win11.
2025-03-29 03:11:51 -07:00
BinBashBanana 05cefc9a4d AudioWorklet driver, misc. emscripten fixes 2025-03-28 19:41:40 -07:00
odditude42 c23e6ff017 Updated platform_win32.c to properly detect OS version info on Win11.
Removed .vscode config files which were still cached in the index
  prior to the directory being added to .gitignore.
2025-03-28 19:25:25 -04:00
pstef bf1ff07fd0 Rewrite setting_get_string_representation_video_frame_delay()
Reduce indentation, squash a warning, simplify code.
2025-03-28 17:30:53 +00:00
pstef 80a74cca68 Remove unused variable
sonninnos says it might have been a copy and paste leftover.
2025-03-28 17:09:14 +00:00
pstef 83e974077f Guarantee space for string characters after strlcpy
to silence a couple of stringop-overflow warnings (3DS).
2025-03-28 11:11:09 +00:00
pstef 59a0665a20 Remove unused variable
unused since b5e01422e1
2025-03-28 10:57:53 +00:00
pstef df6e3dbda8 Silence warnings about sign mismatch 2025-03-28 10:57:53 +00:00
pstef b59b038a3e Silence an unreferenced local variable warning
Not used here since 106dc5d8b7
2025-03-28 09:48:21 +00:00
pstef a25a4d29a8 Silence a -Waddress warning 2025-03-28 09:48:21 +00:00
pstef 2daad9f89f Remove unused variables
They were never used and seem to have been copied from
action_ok_push_dropdown_item_input_device_type().
2025-03-28 09:48:21 +00:00
pstef 3bf6635ec6 Make printf format match the type 2025-03-28 09:48:20 +00:00
LibretroAdmin cb69d250b0
Merge pull request #17739 from zoltanvb/linuxraw_keyboard
Extend keyboard input for linuxraw input driver
2025-03-27 17:05:20 -07:00
pstef aa94f571e2 Silence an unused variable warning
This is not used since 73abaddd9c
2025-03-27 23:21:19 +00:00
pstef 5ef2b5a442 Silence a defined-but-not-used-function warning
Enclose the static function definitions in an ifdef like the one used
where they are called.
2025-03-27 19:06:28 +00:00
pstef c6fb0871e9 Simplify save_keybind_axis()
Also use matching sprintf format and type to silence a format warning.
2025-03-27 18:47:52 +00:00
pstef 626ef6ce4b Remove unused variable
It would be used only once in this context, so just remove it.
2025-03-27 18:33:55 +00:00
zoltanvb 5b2904930b Extend keyboard input for linuxraw input driver
The keyboard support for linuxraw driver was a bit spotty. Extended
with missing keyboard query, callback, and a few fixes against
over-indexing the status array.
2025-03-27 15:04:19 +01:00
github-actions a3b690ec58 Fetch translations from Crowdin 2025-03-27 00:15:32 +00:00
LibretroAdmin 999de04ace
Merge pull request #17733 from pstef/ozone-footer-label 2025-03-25 21:45:08 -07:00
LibretroAdmin f0aeeb7732
Merge pull request #17734 from pstef/silence-warnings 2025-03-25 21:44:30 -07:00
LibretroAdmin fbed58ff08
Merge pull request #17735 from pstef/freeze-ui-3ds 2025-03-25 21:43:17 -07:00
github-actions 0d39aa3d88 Fetch translations from Crowdin 2025-03-26 00:15:49 +00:00
pstef eb8819867b Partially revert 0033224c25
font_driver_get_message_width() can return -1 if it fails,
ozone_cache_footer_label() has a fallback for this case
2025-03-25 21:02:29 +00:00
pstef 870d57445a Move INLINE earlier in function declarations
to silence a warning.
2025-03-25 20:20:37 +00:00
pstef 052acd4e38 Reorder arguments in calls to calloc
to silence calloc-tran sposed-args warnings.
2025-03-25 20:15:20 +00:00
pstef ac38cfe8da Silence -Waddress
This is a continuation of c9149895f5
2025-03-25 20:06:33 +00:00
pstef 50ecf3877c Fix UI freeze when threaded rendering is enabled on 3DS
Before this change, there was at least one scenario in which the UI
would seemingly freeze and a restart was needed. That's when an update
of cores was attempted with threaded rendering enabled.

Fixes https://github.com/libretro/RetroArch/issues/17727
2025-03-25 17:18:29 +00:00
pstef a4bfd84cc7 Silence warnings about sign mismatch 2025-03-25 16:55:39 +00:00
pstef 281dff8956 Silence a stringop-overflow warning
Guard against an unlikely case.
2025-03-25 16:55:39 +00:00
pstef 39495ced67 Silence a type-limits warning
Before this change, an 8-bit value was guaranteed to be lesser than the
size of this array (256). Instead of removing the check, I make it
meaningful by reducing the size of the array.
2025-03-25 16:55:39 +00:00
LibretroAdmin 962afed9dd
Merge pull request #17729 from pstef/limit-stack-usage 2025-03-25 04:40:14 -07:00
LibretroAdmin 873c467240
Merge pull request #17728 from pstef/signed-slot 2025-03-25 04:39:59 -07:00
github-actions 2406935a58 Fetch translations from Crowdin 2025-03-25 00:16:11 +00:00
github-actions f6076a4203 Fetch translations from Crowdin 2025-03-24 00:16:01 +00:00
pstef b995db627b Change the type of slot to int
Everywhere around this function it is an int, and within this function
there is also a check for sign, which makes me think unsigned was a
mistake.
2025-03-23 22:33:17 +00:00
pstef b0109b5829 Reduce stack usage in task_database_cue.c
Move disc_data from stack to heap.
2025-03-23 13:28:28 +00:00
pstef d5ba7902a4 Reduce stack usage in command.c
by using PATH_MAX_LENGTH to define the length of buffers that store
paths.
2025-03-23 09:31:08 +00:00
LibretroAdmin 99af19b6fe
Merge pull request #17722 from pstef/extensions-rewrite
File extension list generation rewrite
2025-03-23 02:30:47 -07:00
LibretroAdmin a1ce57f11f
Merge pull request #17723 from pstef/cmd-special
Push the compiler to reserve space for negative commands
2025-03-23 02:29:55 -07:00
LibretroAdmin 8ae97ac91e
Merge pull request #17724 from pstef/negative-accumulator
Allow frame_time_accumulator to go negative
2025-03-23 02:29:41 -07:00
github-actions b0507c0235 Fetch translations from Crowdin 2025-03-23 00:16:41 +00:00
pstef d14801d65b File extension list generation rewrite
Only limit extensions under the condition that the valid_extensions list
is not empty and the user wishes to limit the extensions. Otherwise
present files of all recognized extensions.

Part of this logic was implemented in 8f32801292 where the
point was to show supported files when core info file is missing. The
other part is the filter_by_current_core option.
2025-03-22 20:37:05 +00:00
LibretroAdmin e05dc9837b
Merge pull request #17721 from mittonk/lr-dice_apple
Package lr-dice for the Apple Store.
2025-03-22 07:21:44 -07:00
Ken Mitton 59d1b94b65 Package lr-dice for the Apple Store. 2025-03-21 11:53:50 -04:00
LibretroAdmin 5adaaf7851
Merge pull request #17717 from pstef/silence-warnings
Silence even more warnings
2025-03-21 08:41:40 -07:00
pstef 3be0cfe09c Allow frame_time_accumulator to go negative
to be able to catch the underflow and correct it.
2025-03-20 21:44:39 +00:00
pstef c3dfc7ec63 Push the compiler to reserve space for negative commands
Cheevos define a special macro defined to -1 and uses it as one of the
values for enum event_command. Make this value a part of the enum
definition so that this type is not optimized to be unsigned.
2025-03-20 21:32:56 +00:00
pstef a28b79215f Silence warning about type sign mismatch
Make this enum act like a type, use it and let the compiler choose and
handle signedness so that it all matches.
2025-03-20 18:24:55 +00:00
LibretroAdmin a58ac85dbc
Merge pull request #17704 from zoltanvb/android_bind_hold
Change bind hold default on Android
2025-03-20 11:05:49 -07:00
pstef 3fb7d190bf Silence warning about possible truncation
Also simplify this part; the point here is to start the copy later, but
otherwise the buffer size is the same, and it's still a string, so needs
no special handling.
2025-03-20 16:51:58 +00:00
pstef b85bcb8e48 Adjust types of index and maxindex to unsigned 2025-03-20 16:21:27 +00:00
pstef ce6cd0000c Don't free members of struct before init 2025-03-20 16:12:12 +00:00
pstef c978717b61 Silence a warning about no return value from non-void function
It seems the idea is to continue with installation, regardless of what
happened within deleteCia, so I just change its return type to void.
2025-03-20 06:26:44 +00:00
pstef 29639b98b3 Use the return value of rbtree_insert to silence a warning
The function prototype wants us to be warned when the result is not
used, but it's not clear why - I assume to check for failure.
2025-03-20 06:26:44 +00:00
LibretroAdmin ee881cfd67
Merge pull request #17706 from zoltanvb/plain_drm_fix
Enable compilation with plain_drm without other video drivers.
2025-03-19 18:04:52 -07:00
LibretroAdmin e6887be45c
Merge pull request #17710 from warmenhoven/warmenhoven/pr/apple-strlcpy
apple: fix strlcpy where src and dst are the same
2025-03-19 18:04:41 -07:00
LibretroAdmin f7b4af89e9
Merge pull request #17713 from pstef/silence-warnings
Silence warnings
2025-03-19 18:04:22 -07:00
github-actions 9fe9cb0939 Fetch translations from Crowdin 2025-03-20 00:15:04 +00:00
pstef 17a05ea939 Silence a dangling-pointer warning in Lzma 2025-03-19 20:19:39 +00:00
pstef f7285ff405 Silence warning: left shift of negative value
Import the change from upstream 16c83cd5fc4c18954c1b6e3de16c37ba
2025-03-19 20:09:15 +00:00
pstef a27d49b6f2 Silence GCC stringop-overflow
At optimization level -O3, GCC generates a warning about its own
optimizations, likely due to loop unrolling. Manually unroll the loop to
eliminate any ambiguity and prevent the warning.
2025-03-19 19:57:50 +00:00
pstef 3dca8dbf66 Silence -Walloc-size-larger-than=byte-size
One of the GCC14's optimization heuristic triggered here, suggesting
that the special value of len (size_t) could potentially be lesser than
the file's size (int64_t) but greater than "maximum object size" (set by
byte-size, PTRDIFF_MAX by default).

Use the same type as the file size it's compared to, and adjust the
sentinel value to spell INT64_MAX.
2025-03-19 17:35:15 +00:00
github-actions 5c093a7211 Fetch translations from Crowdin 2025-03-19 00:22:56 +00:00
Eric Warmenhoven 86fddd5326 apple: fix strlcpy where src and dst are the same 2025-03-17 15:34:45 -04:00
sonninnos 5365639a36
Win32: Fix pick core dialog (#17709) 2025-03-17 18:10:50 +02:00
zoltanvb 6ce2a12c4d Enable compilation with plain_drm without other video drivers. 2025-03-17 06:04:06 +01:00
github-actions 81b74decb3 Fetch translations from Crowdin 2025-03-17 00:16:11 +00:00
LibretroAdmin fbcd3a77fb
Merge pull request #17705 from pstef/silence-warnings-ctr
CTR: more compiler warnings cleanup
2025-03-16 09:29:39 -07:00
pstef bad0e58372 CTR: more compiler warnings cleanup
* unsigned vs signed comparison
* copy DEBUG_VAR from wiiu - this one prints pointer values in a
  portable way
* prove GCC14 that a date formatted as "00/00/0000" can fit into 11
  bytes
* explicitly mention previously unhandled enum constants
* Adding GFX widgets in b9849f78f7 and 1235a7435e orphaned
  ctr_set_osd_msg(). Reinstate it instead of removing, since it's
  effectively the same as calling font_driver_render_msg, but with
  checks.
* remove sp from clobber list in inline assembly
2025-03-16 14:00:35 +00:00
zoltanvb 485b055d48 Change bind hold default on Android
Due to touchscreen quick tap function, binding runs into problems
with the default setting that works well on other platforms. Using
a nonzero value avoids that problem.
2025-03-16 14:28:21 +01:00
LibretroAdmin bf3752ed61
Merge pull request #17702 from pstef/silence-warnings-ctr 2025-03-15 18:08:22 -07:00
LibretroAdmin 98b1601fcb
Merge pull request #17701 from zoltanvb/reserved_device_multiple_instance 2025-03-15 18:07:03 -07:00
LibretroAdmin 040cbe00d6
Merge pull request #17698 from pstef/Makefile.ctr-debug 2025-03-15 18:06:49 -07:00
LibretroAdmin c2ffa044f9
Merge pull request #17700 from pstef/realloc-ext-list 2025-03-15 18:06:35 -07:00
pstef fc9f0b04be CTR: Silence a couple of GCC 14 warnings 2025-03-16 01:01:04 +00:00
github-actions b9de670da0 Fetch translations from Crowdin 2025-03-16 00:15:47 +00:00
zoltanvb ba5489128f Fix reserved device selection when multiple controller instances are present
If multiple instances of the same controller type are present, they will be
postfixed by (#2), (#3) etc. This made menu selection ineffective.
2025-03-15 18:40:33 +01:00
pstef 62ccd05e36 Try to avoid overflowing the stack
PATH_MAX_LENGTH is pretty short on CTR and not really adequate here
since this buffer is not storing a path.

Allocate and possibly reallocate from heap instead of using the
stack here.
2025-03-15 16:43:38 +00:00
pstef b8a340641a Make debugging on CTR easier
Only omit frame pointers on non-debug builds.
2025-03-15 10:30:06 +00:00
github-actions a186bdba06 Fetch translations from Crowdin 2025-03-15 00:14:20 +00:00
LibretroAdmin ea592051c7
Merge pull request #17696 from sonninnos/content-load-archive
Show load before open in archives
2025-03-14 13:46:28 -07:00
LibretroAdmin 4923c2e70b
Merge pull request #17697 from sonninnos/core-suggest
Suggest cores only when core is not loaded
2025-03-14 13:46:20 -07:00
sonninnos e64d52740b Suggest cores only when core is not loaded 2025-03-14 12:50:15 +02:00
sonninnos ee2cf436d4 Show load before open in archives 2025-03-14 12:47:58 +02:00
github-actions 113ff2f009 Fetch translations from Crowdin 2025-03-14 00:14:58 +00:00
LibretroAdmin 51b13fc58c
Merge pull request #17695 from sonninnos/core-load-unload
Core load+unload fixes
2025-03-13 09:17:44 -07:00
sonninnos ee8a641275 Core load+unload fixes 2025-03-13 15:09:38 +02:00
LibretroAdmin 0b2b933388
Merge pull request #17681 from SternXD/uwp-update-angle 2025-03-12 22:00:30 -07:00
LibretroAdmin bfad782acc
Merge pull request #17679 from SternXD/uwp-invalid-key 2025-03-12 22:00:19 -07:00
github-actions c0348de3db Fetch translations from Crowdin 2025-03-13 00:15:32 +00:00
LibretroAdmin 7e1c036fc0
Merge pull request #17693 from JesseTG/jtg/fix-light-sensor-parsing 2025-03-12 16:43:54 -07:00
LibretroAdmin faae5b1519
Merge pull request #17692 from JoeOsborn/fetch-single-backend 2025-03-12 16:43:40 -07:00
Jesse Talavera a52a63c381 Fix the light sensor reading on Linux input drivers
A previous `errno` was causing `linux_read_illuminance_sensor` to fail despite parsing the returned value correctly
2025-03-12 18:25:21 -04:00
Joseph C. Osborn 525e1cff49 Slightly more informative printf 2025-03-12 15:11:23 -07:00
Joseph C. Osborn 52e2ee9272 add abort in case only one of manifest/base dir defined 2025-03-12 15:10:49 -07:00
Joseph C. Osborn d4d3aee457 Strip newline from base_url, use wasmfs_create_file instead of open
Also style fixes
2025-03-12 15:06:29 -07:00
LibretroAdmin 919868aa0a
Merge pull request #17688 from zoltanvb/changelist_update 2025-03-11 22:02:35 -07:00
github-actions a36e380337 Fetch translations from Crowdin 2025-03-12 00:15:19 +00:00
zoltanvb 5cf14cc14c
Changes up to 2025-03-11 2025-03-11 23:20:48 +01:00
github-actions c94e4cff85 Fetch translations from Crowdin 2025-03-11 00:15:37 +00:00
Joseph C. Osborn 809e5d78be create a single fetchfs backend instead of 1 per file
symlinking manifest entries and using a baseurl gives us a way to
create just a single fetchfs backend (and a single thread) since
emscripten upstream is not willing to integrate manifest support to
fetchfs directly.

Retroarch embedders could use this to get assets or other resources
lazily or chunk-by-chunk for large files.
2025-03-10 15:04:38 -07:00
SternXD 37b349432f
UWP: Update invalid pfx key 2025-03-10 11:24:42 -04:00
SternXD 1761aa0814
UWP: Update x64 Angle Binaries 2025-03-10 11:01:27 -04:00
LibretroAdmin 9e64cce10f
Merge pull request #17678 from warmenhoven/warmenhoven/cloud-ignore 2025-03-10 04:35:37 -07:00
github-actions e7132c1c59 Fetch translations from Crowdin 2025-03-10 00:13:28 +00:00
Eric Warmenhoven 3943f5b6b0 cloud sync: properly handle ignored directories 2025-03-09 18:24:02 -04:00
LibretroAdmin 4c5cf5a8e5
Merge pull request #17671 from zoltanvb/remove_discord_avatar
Remove discord avatar references
2025-03-09 09:17:22 -07:00
zoltanvb 675909333d Remove discord avatar references
These additions were never enabled in current builds, discord
avatar stuff was disabled in #7964.
2025-03-09 09:00:25 +01:00
LibretroAdmin 4b368ae008
Merge pull request #17664 from BinBashBanana/master 2025-03-08 20:24:15 -08:00
github-actions 86800ed493 Fetch translations from Crowdin 2025-03-09 00:13:40 +00:00
github-actions 9cad6dd993 Fetch translations from Crowdin 2025-03-08 00:12:01 +00:00
LibretroAdmin 644fd891d7
Merge pull request #17665 from zoltanvb/android_pause_key
Remove special handling of pause key on Android
2025-03-07 09:21:18 -08:00
github-actions 0868c16564 Fetch translations from Crowdin 2025-03-07 00:15:02 +00:00
BinBashBanana c672730259 address issues 2025-03-06 15:38:40 -08:00
zoltanvb 176247d3bc Remove special handling of pause key 2025-03-06 17:55:37 +01:00
github-actions a6316465a3 Fetch translations from Crowdin 2025-03-06 00:14:36 +00:00
LibretroAdmin 7f1a348d03
Merge pull request #17663 from warmenhoven/warmenhoven/pr/apple-def-avf
apple: make avfoundation camera the default driver
2025-03-05 15:29:23 -08:00
BinBashBanana f6eb1ed5c5 Threaded emscripten improvements 2025-03-05 10:39:43 -08:00
Eric Warmenhoven 733bae3b3a apple: make avfoundation camera the default driver 2025-03-05 10:05:36 -05:00
LibretroAdmin 96a72e834a
Merge pull request #17660 from warmenhoven/warmenhoven/pr/ios9-ci
ios9 ci: move back to run on old xcode version
2025-03-05 06:11:35 -08:00
LibretroAdmin 978c84ee1e
Merge pull request #17662 from zoltanvb/android_game_focus
Fix keyboard_mapping_blocked usage on Android (game focus)
2025-03-05 06:09:02 -08:00
zoltanvb 27b67c1340 Fix keyboard_mapping_blocked usage (game focus) 2025-03-05 06:23:53 +01:00
github-actions eafd46d84e Fetch translations from Crowdin 2025-03-05 00:15:09 +00:00
Eric Warmenhoven 9d4a4e29fc ios9 ci: move back to run on old xcode version 2025-03-04 15:30:33 -05:00
LibretroAdmin 80b62db04e
Merge pull request #17657 from warmenhoven/warmenhoven/pr/apple-avf-camera
apple: enable JoeMatt's avfoundation-based camera driver
2025-03-04 07:32:13 -08:00
LibretroAdmin 9a8035bad1
Merge pull request #17656 from warmenhoven/warmenhoven/pr/macos-flto
macos: compile with -flto
2025-03-04 07:32:05 -08:00
LibretroAdmin c2933b91c2
Merge pull request #17655 from warmenhoven/warmenhoven/pr/apple-so-entitled
apple: add camera entitlements
2025-03-04 07:31:57 -08:00
LibretroAdmin fe11b3ffb1
Merge pull request #17654 from warmenhoven/warmenhoven/pr/apple-build
apple: by default build on apple silicon builder
2025-03-04 07:31:38 -08:00
Eric Warmenhoven 8c729fd029 apple: enable JoeMatt's avfoundation-based camera driver 2025-03-03 23:20:59 -05:00
Eric Warmenhoven 6c7b16df3c macos: compile with -flto 2025-03-03 22:51:16 -05:00
Eric Warmenhoven c1806ff994 apple: add camera entitlements 2025-03-03 22:46:43 -05:00
Eric Warmenhoven 6dcb0b22f2 apple: by default build on apple silicon builder 2025-03-03 21:54:46 -05:00
github-actions 58752d0755 Fetch translations from Crowdin 2025-03-04 00:15:10 +00:00
github-actions 6df846dc61 Fetch translations from Crowdin 2025-03-03 00:14:58 +00:00
LibretroAdmin 647bba1125
Merge pull request #17648 from warmenhoven/warmenhoven/pr/webdav-301
webdav: workaround for getting 301 redirects
2025-03-02 15:57:32 -08:00
LibretroAdmin fd5543cc2d
Merge pull request #17651 from zoltanvb/offset_sublabel_fix
Update viewport bias sublabels.
2025-03-02 15:57:22 -08:00
LibretroAdmin d862f87c28
Merge pull request #17652 from JesseTG/jtg/libavdevice-camera-driver
Add a ffmpeg-based camera driver
2025-03-02 15:57:13 -08:00
Jesse Talavera e9e12eed66 Move a variable declaration up to adhere to C89 rules 2025-03-02 17:00:40 -05:00
Jesse Talavera 80044dd282 Clarify a comment 2025-03-02 17:00:24 -05:00
zoltanvb 6294854990
Update viewport bias sublabels. 2025-03-02 16:29:16 +01:00
Eric Warmenhoven 962cc9b033 webdav: workaround for getting 301 redirects 2025-03-01 22:53:11 -05:00
Joe Osborn f2a86f34d1
Remove unnecessary rigmarole around importing the script as a blob (#17642) 2025-03-01 17:34:05 -08:00
sonninnos 23170b82ec
Add MIDI device menu item dropdowns (#17645) 2025-03-01 17:33:46 -08:00
github-actions 7cb27c965d Fetch translations from Crowdin 2025-03-02 00:16:20 +00:00
sonninnos 5c92055aef Fix cloud sync driver menu item refresh 2025-03-01 11:47:53 +02:00
Viačasłaŭ 6bfe3fcb43
(Win32) Unrevert TTS fallback (#17643)
Originally implemented in 274d47f
2025-03-01 01:04:29 -08:00
sonninnos 6a717fd44c Better way to count dropped frames 2025-03-01 10:40:59 +02:00
github-actions b3e2d5213d Fetch translations from Crowdin 2025-03-01 00:17:26 +00:00
Joseph C. Osborn c29cd046d0 Fixes asset paths/double bundle path for web player 2025-02-28 18:44:31 +01:00
sonninnos aaa7b272aa XMB: Gray theme color correction 2025-02-28 08:44:37 +02:00
zoltanvb 31de40b32a
Align GDI feature reporting with actual status (#17635)
Value of HAVE_GDI is always 1 unless explicitly disabled, however
it only takes effect on Windows platforms. Actual functionality
is behind multiple #ifdef's, but the feature indication was showing
up even on platforms like Linux.
2025-02-27 20:15:43 -08:00
sonninnos b62cc87e84
Turbo Fire overhaul (#17633) 2025-02-27 20:15:22 -08:00
Joe Osborn 7a7c208c85
Only read first frame of inputs under new movie formats (#17634) 2025-02-27 20:15:14 -08:00
zoltanvb 9970d45367
Make autoconfig failure notifications optional. (#17636)
Introduce a new setting that controls autoconfiguration messages
when the config fails, either with fallback or without.
2025-02-27 20:15:06 -08:00
Joe Osborn fa6d622031
Cancel bootup main loop before starting regular mainloop (#17638) 2025-02-27 20:14:57 -08:00
zoltanvb 8396d8e626
Fix bluetooth option ifdef (#17639) 2025-02-27 20:14:49 -08:00
github-actions e9dd1731ee Fetch translations from Crowdin 2025-02-28 00:14:51 +00:00
github-actions 62f32e5f63 Fetch translations from Crowdin 2025-02-26 00:15:19 +00:00
github-actions e16953b9af Fetch translations from Crowdin 2025-02-25 00:14:55 +00:00
Joe Osborn c413bcc626
Threaded emscripten fixes (#17614)
* Actually read CLI args in emscripten

* Fix fetchfs manifest parsing, increase download chunk size

The chunk size should probably be made a parameter in the future.  The
larger chunk size trades longer hitches for fewer hitches.

* Add exec command driver and API functions for emscripten.

Under WASMFS, stdin/stdout can't be customized the way they can with
the JS FS implementation.  Also, this approach frees up stdin/stdout
and simplifies interaction with the command interface for web embedders.

* fixup upload paths, show use of new emscripten cmd interface

* Add JS library function names to EXPORTS as well as EXPORTED_FUNCTIONS for older emsdk versions
2025-02-24 09:25:05 -08:00
github-actions 55b59262b9 Fetch translations from Crowdin 2025-02-24 00:15:28 +00:00
Jesse Talavera e7142903ea Use `av_dict_get` instead of `av_dict_iterate`
- The latter seems to be newer, and therefore not available in all common installations of libavdevice
2025-02-23 15:26:58 -05:00
Bernhard Schelling b725de086e
Fix netplay when using core netpacket interface after a recent change made for cheevos (#17619) 2025-02-23 04:26:02 -08:00
刘皓 b3376716f2
Add declaration for `libnx_apply_overclock()` in menu/menu_driver.c (#17620) 2025-02-23 04:25:49 -08:00
刘皓 c9ed5df025
Add PS3 build to GitHub Actions (#17621) 2025-02-23 04:25:39 -08:00
Eric Warmenhoven 84eb4f32e0
Small adjustment to coordinating mouse inputs (#17622) 2025-02-23 04:25:29 -08:00
sonninnos 4de34208ed Ozone: Messagebox font fix 2025-02-22 22:31:47 +02:00
github-actions b5fd91972c Fetch translations from Crowdin 2025-02-22 00:13:39 +00:00
sonninnos 3c1a1a44ae
Vulkan: Add adaptive vsync support (#17611) 2025-02-21 12:34:32 -08:00
Eric Warmenhoven f7d235f2d6
update core info list after updating core info files (#17613) 2025-02-21 12:34:06 -08:00
Hed0nium bc1bc2431d
Update AUTHORS.h: Edit name (#17610) 2025-02-21 12:33:48 -08:00
Eric Warmenhoven e26b3bca4e
allow mouse input while mouse overlay is active (#17615) 2025-02-21 12:33:27 -08:00
Eric Warmenhoven 273eb7bd7b
fix sublabel on "add to playlist" in quick menu (#17616) 2025-02-21 12:33:18 -08:00
Joe Osborn 9005e1b9fe
Use correct key into message data to get last asset fetch time (#17607) 2025-02-21 07:40:49 +01:00
Jesse Talavera 527b977587 Simplify ffmpeg backend selection 2025-02-20 16:35:06 -05:00
Jesse Talavera dd49f8fa0d Remove camera device list functions from camera drivers
- Those will come in a future PR instead
2025-02-20 15:42:02 -05:00
sonninnos 61de3a3260
Integer scaling improvements (#17606) 2025-02-20 19:51:19 +02:00
Jesse Talavera 63d965753f Merge branch 'refs/heads/master' into jtg/libavdevice-camera-driver
# Conflicts:
#	camera/camera_driver.c
#	configuration.c
2025-02-20 11:28:54 -05:00
sonninnos fce67c1fab
Use core fps instead of display rate when counting dropped frames (#17605) 2025-02-20 14:10:08 +02:00
sonninnos b5756a1b20
Prevent crash when Main Menu is empty (#17604) 2025-02-20 14:09:47 +02:00
github-actions 09a59edd6b Fetch translations from Crowdin 2025-02-20 00:14:51 +00:00
Joe Osborn 56014a27d6
Enable pthreads on Emscripten (#17586)
* workerized RA

* Workerized (non-async) web player, using OPFS

This patch eliminates the need for asyncify and uses modern filesystem
APIs instead of the deprecated, unmaintained BrowserFS.

This is a WIP patch because it won't fully work until these two
Emscripten PRs land and are released:

https://github.com/emscripten-core/emscripten/pull/23518
https://github.com/emscripten-core/emscripten/pull/23021

The former fixes an offscreen canvas context recreation bug, and the
latter adds an equivalent to BrowserFS's XHR filesystem (but without
the hazardous running-XHR-on-the-main-thread problem).

The biggest issue is that local storage of users who were using the
old version of the webplayer will be gone when they switch to the new
webplayer.  I don't have a good story for converting the old BrowserFS
IDBFS contents into the new OPFS filesystem (the move is worth doing
because OPFS supports seeking and reading only bits of a file, and
because BrowserFS is dead).

I've kept around the old libretro webplayer under
pkg/emscripten/libretro-classic, and with these make flags you can
build a non-workerized RA that uses asyncify to sleep as before:

make -f Makefile.emscripten libretro=$CORE HAVE_WORKER=0 HAVE_WASMFS=0 PTHREAD=0 HAVE_AL=1

I also moved the default directory for core content on emscripten to
not be a subdirectory of the local filesystem mount, because it's
confusing to have a subdirectory that's lazily fetched and not
mirrored to the local storage.  I think it won't impact existing users
of the classic web player because they already have a retroarch.cfg in
place.

* Get fetchfs working without manifest support

* makefile fixes

* fix scaling, remove zip dependency

* Support asset/cheats/etc downloaders for emscripten

- Add http transfer support for emscripten
  - At the task_http level, not the net_http level --- so no netplay
    or webdav.
- Change default paths to be more like other platforms
- Gives us smaller bundles and a faster boot time
- Had to work around a task queue bug on Emscripten
  - I made the smallest possible change to do it, but it may be better
    to fix in rthread.c

* Load an emscripten file_packager package on first run

If no ozone assets are present, load a libretro_minimal package
created using Emscripten's built-in file packager.

* updated readme, removed indexer from wasmfs libretro-web

* Put back zip dependency, load asset bundle into opfs on first run

* fix upload path

* Remove unused function

* easy testing setup for two multithreaded conditions

1. make PROXY_TO_PTHREAD=1 (slower)
2. make PROXY_TO_PTHREAD=0 (bad audio, because doesn't sleep in
openal.c)

* Remove condition on sleep in openal

also make input_driver check existence of drv->axis, drv->button
before calling them.

* Fix resizing under EGL

* Don't force config file path on emscripten

* Add time.h include to netplay, default HAVE_NETPLAYDISCOVERY to 0

* Remove nearly all proxied joypad calls under emscripten

* Fix file uploads under firefox

* Fix safari API uses, but Safari still hangs in OPFS filesystem mount

I think this can be fixed by moving the backend creation off the main
thread.

* Move filesystem init into emscripten C entry point

* Setup filesystems off of main thread

* re-set default player to async

Also improve Safari compatibility under proxy-to-pthread condition

* Safari upload file fixes

* Remove some excess prints

* Fix typo
2025-02-20 00:59:25 +01:00
Eric Warmenhoven 6ec4ffb2fa
apple, mouse overlay: fix relative mouse deltas (#17602)
makes sure that relative mouse movement deltas are based on last poll,
not last state check; checking state should not reset state
2025-02-20 00:59:14 +01:00
sonninnos 6c08bf003b
XMB: Title replace '/' with '-' instead of ' ' (#17603) 2025-02-19 21:49:55 +02:00
sonninnos 8f3347d9ab
GLUI: Limit save state thumbnail size (#17600) 2025-02-19 17:06:01 +02:00
sonninnos b5e01422e1
XMB: Trigger bg-image load on theme change (#17599) 2025-02-19 17:05:34 +02:00
Eric Warmenhoven 8bf7e76f45
apple: enable corelocation location driver (#17595) 2025-02-19 04:04:17 +01:00
github-actions d818cb8fe1 Fetch translations from Crowdin 2025-02-19 00:14:43 +00:00
Eric Warmenhoven 0ed66a79f1
glui: fix add to playlist icon in quick menu (#17596) 2025-02-18 22:55:04 +01:00
sonninnos e4fe551924
Gray Dark+Light theme adjustments (#17597) 2025-02-18 20:47:10 +02:00
Steve Cox 087d11b750
for iOS: updated app icon to additional iconset (#17582) 2025-02-18 17:13:13 +01:00
Eric Warmenhoven fe3e1b56b7
camera: don't reinit when core sets av info; don't poll if not allowed (#17588) 2025-02-18 17:12:18 +01:00
Joe Mattiello 9438d70ed9
Add CoreLocation location driver for macOS and iOS (#17591)
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
2025-02-18 17:12:08 +01:00
sonninnos 73abaddd9c
GLUI: Add save state thumbnails (#17592) 2025-02-18 17:11:46 +01:00
Tomáš Kelemen cd85a4dbf2
bluetoothctl: use two calls to disconnect/remove device (#17593)
the previous method does not remove the pairing of the selected device,
user must remove the pairing manually by modifying filesystem.

change tested on real system (Lakka-RPi4.aarch64).
2025-02-18 17:11:36 +01:00
Bernhard Schelling 754dbe37cc
Color the notification icon by message category (#17573)
Use yellow for warnings and red for errors, keep the current blue for everything else.
Additionally, flip the 'i' info icon upside down for warnings and errors so it becomes a '!' exclamation mark icon.
2025-02-17 01:38:16 +01:00
Eric Warmenhoven cf867395f8
apple: enable midi driver in macos/ios builds (#17580) 2025-02-17 01:38:07 +01:00
github-actions 660cf1f449 Fetch translations from Crowdin 2025-02-17 00:16:46 +00:00
Steve Cox d58394b4e6
for iOS: update Launch Screen to match icon & UI color scheme; add subtle drag shadow to app icon (#17574)
* for iOS: update launch screen to match UI

* use higher resolution invader

* adjust Y constraint (diff invader body proportion)

* for iOS: update Launch Screen to match app icon/ui

* update iOS icon—match shadow on other platforms

* icon source svgs to media folder for others’ reuse

* iOS App Icon revision, fix asset index mismatch
2025-02-16 23:12:33 +01:00
github-actions 73bc4092a1 Fetch translations from Crowdin 2025-02-16 00:15:52 +00:00
Joe Mattiello eb2928eb0c
CoreMIDI add driver (#17569)
CoreMIDI install into build

Signed-off-by: Joseph Mattiello <git@joemattiello.com>
2025-02-15 18:57:09 +01:00
github-actions 83c0c1fc43 Fetch translations from Crowdin 2025-02-15 00:14:14 +00:00
github-actions b4c15668bd Fetch translations from Crowdin 2025-02-14 00:14:34 +00:00
sonninnos 01a2da47a6
Ozone: Messagebox background asset fix (#17566) 2025-02-13 09:28:59 +01:00
Eric Warmenhoven 65e1436a23
iOS: set up shared gl context correctly (#17565) 2025-02-13 09:06:14 +01:00
github-actions a6ea47df15 Fetch translations from Crowdin 2025-02-13 00:14:41 +00:00
LibretroAdmin 8a22b87101 Revert rich_label changes 2025-02-12 17:46:32 +01:00
sonninnos 106dc5d8b7
GLUI: Allow fullscreen thumbnail browsing (#17562) 2025-02-12 16:50:17 +01:00
LibretroAdmin 135a228ac1 menu_entry - rich_label gets merged into label - make struct smaller 2025-02-12 15:17:58 +01:00
LibretroAdmin c864c50c9f (Menu) Cleanups 2025-02-12 14:52:17 +01:00
LibretroAdmin ebd9abb5f6 Get rid of sublabel_cache 2025-02-12 14:25:12 +01:00
LibretroAdmin 824209178c setting_list - remove unused original_value 2025-02-12 13:56:21 +01:00
LibretroAdmin 8e2e2cdbac Style nits 2025-02-12 13:06:40 +01:00
Lucas Cañero 64c7faf11b
Revert "enable CloudSync on libnx (switch) (#17516)" (#17561)
This reverts commit b18a6b644b.
2025-02-12 12:10:12 +01:00
LibretroAdmin a167fb1c2f Unused variables cleanup 2025-02-12 11:59:22 +01:00
LibretroAdmin d2d0e7a17d Style nits 2025-02-12 10:35:04 +01:00
LibretroAdmin f6006ae6ca Style nits 2025-02-12 10:17:35 +01:00
sonninnos bdf2e9407d
Label rewording and deprecation removal (#17560) 2025-02-12 09:52:12 +01:00
LibretroAdmin 0d57b59cd3 Another fix 2025-02-12 01:43:16 +01:00
LibretroAdmin 6556edd18e Fix remap screens 2025-02-12 01:32:26 +01:00
github-actions 49e625e750 Fetch translations from Crowdin 2025-02-12 00:14:33 +00:00
LibretroAdmin 366612fb82 Revert "Fix some string appending"
This reverts commit 65b9ea4e76.
2025-02-11 23:48:12 +01:00
sonninnos 2073b8abfc
XMB: Icon thumbnail improvements (#17558) 2025-02-11 23:09:47 +01:00
LibretroAdmin 65b9ea4e76 Fix some string appending 2025-02-11 23:08:55 +01:00
ScoochAside 9f5bc9c318
Fix issue #17438 (#17557) 2025-02-11 22:45:44 +01:00
LibretroAdmin c62de90430 Cleanups 2025-02-11 22:45:16 +01:00
LibretroAdmin 064372d787 Get rid of action_title_cache 2025-02-11 21:21:14 +01:00
Eric Warmenhoven 422a4310f3
Add To Playlist from quickmenu can't rely on the current playlist (#17556) 2025-02-11 21:01:42 +01:00
LibretroAdmin 5372f3fe84 Change signature of get_representation callbacks 2025-02-11 21:01:04 +01:00
Eric Warmenhoven b0999db885
properly initialize variable (#17555) 2025-02-11 16:09:05 +01:00
LibretroAdmin 71a4ff07e3 (Qt) Cleanups 2025-02-11 15:25:05 +01:00
LibretroAdmin 76233f8959 on/off labels no longer cached - language switches now immediately
change the on/off labels as well - and binary size is smaller
2025-02-11 12:44:03 +01:00
LibretroAdmin 653c6ed1e6 Cleanup 2025-02-11 11:58:57 +01:00
LibretroAdmin aadb290cc4 (Qt) More avoidance of unneeded heap allocations 2025-02-11 11:23:46 +01:00
LibretroAdmin 6c7522fef8 (Qt) Prevent some unneeded string heap allocations 2025-02-11 10:58:48 +01:00
LibretroAdmin 0f5a990141 Cleanups 2025-02-11 10:28:16 +01:00
LibretroAdmin 98681ace4a Cleanups - less settings pointer grabbing 2025-02-11 10:12:12 +01:00
LibretroAdmin 6559f4499c Cleanups - less settings_t pointer passing 2025-02-11 09:38:54 +01:00
LibretroAdmin 316077a135 Cleanups 2025-02-11 09:24:50 +01:00
github-actions 77c0950a1b Fetch translations from Crowdin 2025-02-11 00:15:00 +00:00
LibretroAdmin a9a9075f5f (Qt) Cleanups 2025-02-10 23:06:32 +01:00
zoltanvb cc9ff9870f
Create SECURITY.md (#17553) 2025-02-10 22:07:57 +01:00
LibretroAdmin 9489dd05bc Cleanups 2025-02-10 18:45:23 +01:00
LibretroAdmin 56d3042efd Change db_crc size back 2025-02-10 17:14:13 +01:00
LibretroAdmin 7a7c4df2a1 Settings cleanups 2025-02-10 17:12:02 +01:00
LibretroAdmin ef7b9830db (cheat_manager) No more dependency on configuration.h 2025-02-10 16:48:56 +01:00
LibretroAdmin d766a5b71e Cleanups 2025-02-10 16:31:30 +01:00
sonninnos afd290e289
XMB: Appearance menu cleanup (#17549) 2025-02-10 16:16:56 +01:00
LibretroAdmin 1a561ea0c2 Less passing around of settings_t pointer 2025-02-10 16:11:18 +01:00
LibretroAdmin ddd7ff2d33 get rid of some settings_t pointer passing 2025-02-10 15:47:18 +01:00
LibretroAdmin 50a0e17539 (Menu/XMB/Ozone) Less settings_t pointer grabbing 2025-02-10 15:13:59 +01:00
sonninnos 1a5e255c1b
Playlists menu label capitalization (#17551) 2025-02-10 15:07:21 +01:00
LibretroAdmin 1300dc4ef4 Do all netplay state checks upfront in runloop_iterate 2025-02-10 14:11:46 +01:00
LibretroAdmin c57c4fbd1a Style nits 2025-02-10 13:59:25 +01:00
Steve Cox 1170373494
update tvOS “Top Shelf” image (#17543) 2025-02-10 11:52:38 +01:00
sonninnos 87b3032139
XMB: Color tuning (#17547) 2025-02-10 11:52:08 +01:00
sonninnos c1077a5ef5
RGUI: Thumbnail fixes (#17546) 2025-02-10 11:51:56 +01:00
github-actions 5d3ff55b86 Fetch translations from Crowdin 2025-02-10 00:14:31 +00:00
sonninnos 372396d5b6
Add separate visibility toggle for playlist tabs (#17545) 2025-02-10 00:45:50 +01:00
sonninnos ad72af9d40
Enable perfcnt if saved in conf (#17544) 2025-02-10 00:45:32 +01:00
LibretroAdmin d34cfcdfef iSilence warnings 2025-02-09 22:26:36 +01:00
LibretroAdmin c4a9a3d3a2 Don't redefine menu_st again 2025-02-09 21:53:55 +01:00
LibretroAdmin 4d9af08881 Buildfix for platforms where HAVE_NETWORKING is not defined 2025-02-09 21:52:10 +01:00
LibretroAdmin 584ea45837 Less state grabbing between runloop_iterate and runloop_check_state 2025-02-09 21:39:05 +01:00
LibretroAdmin 72efcab3e7 Silence more warnings 2025-02-09 21:11:35 +01:00
LibretroAdmin 63704efd59 One less extraneous netplay check in runloop_check_state 2025-02-09 20:43:55 +01:00
LibretroAdmin afd73998e6 Silence warnings 2025-02-09 20:33:04 +01:00
LibretroAdmin 9267771422 * Less passing around of settings pointer
* Less calls to netplay_driver_ctl in runloop_iterate
2025-02-09 20:12:10 +01:00
LibretroAdmin 4faed7a84f Less passing around of settings_t pointer 2025-02-09 18:56:50 +01:00
LibretroAdmin f9fa557a95 Some refactors to make some video driver functions less dependent
on passing around the settings_t pointer
2025-02-09 18:23:42 +01:00
LibretroAdmin f71181d1c1 * Style nits
* task_database - db_crc allocated variable does not need to be of size PATH_MAX_LENGTH size
2025-02-09 17:49:44 +01:00
LibretroAdmin db99fe098d Simplify string_list_new_special 2025-02-09 16:58:11 +01:00
LibretroAdmin 91aa8034b1 Style nits/conventions 2025-02-09 16:43:51 +01:00
LibretroAdmin 0be8fe8e3f Style nits 2025-02-09 16:07:15 +01:00
LibretroAdmin 376e4b307c Style nits 2025-02-09 15:40:45 +01:00
sonninnos 0d46073bb9
Add mute on rewind option (#17541) 2025-02-09 14:24:14 +01:00
sonninnos 81df9b0491
GLUI: Also set navigation with long press (#17537) 2025-02-09 06:11:28 +01:00
sonninnos 3bf04c6034
GLUI: Fix null label icon (#17538) 2025-02-09 06:11:21 +01:00
sonninnos 2c06049a2f
Allow CLI --entryslot fallback to normal states (#17539) 2025-02-09 06:11:13 +01:00
github-actions 58d7879e1d Fetch translations from Crowdin 2025-02-09 00:14:47 +00:00
sonninnos 677e627278
GLUI: Touch related fixes (#17536) 2025-02-08 21:19:24 +01:00
Eric Warmenhoven 5471a9ebfe
ios: jump back to selected item after closing content (#17534) 2025-02-08 20:32:41 +01:00
sonninnos 4cbfa3ad47
GLUI: Use tab selection remember option (#17532) 2025-02-08 11:56:40 +01:00
github-actions 17bc1eba3f Fetch translations from Crowdin 2025-02-08 00:13:29 +00:00
sonninnos 4232700de5
GLUI: Fix menu back to switch tabs like other drivers (#17529) 2025-02-07 11:43:45 +01:00
github-actions 3f70ac54a5 Fetch translations from Crowdin 2025-02-07 00:14:43 +00:00
Eric Warmenhoven 4c8da979a5
fix a couple minor warnings (#17526) 2025-02-06 20:22:36 +01:00
sonninnos bb9f07569c
Video stats unit alignments (#17524) 2025-02-06 04:49:20 +01:00
Eric Warmenhoven 92c3800731
apple: include b2 core in App Store builds (#17525) 2025-02-06 04:49:08 +01:00
Viačasłaŭ 5b9d5a9086
Buildfix for Debian 12 (#17522) 2025-02-06 02:10:06 +01:00
github-actions 187463d355 Fetch translations from Crowdin 2025-02-06 00:14:50 +00:00
sonninnos 998200793d
File Browser settings + Directory list cleanup (#17519) 2025-02-05 07:19:50 +01:00
sonninnos 94d5223880
Random selector Explore View fix (#17518) 2025-02-04 20:29:20 +01:00
sonninnos ea22c7c16c
Main Menu unifications between drivers (#17517) 2025-02-04 16:32:37 +01:00
Lucas Cañero b18a6b644b
enable CloudSync on libnx (switch) (#17516) 2025-02-04 14:24:47 +01:00
David Demelier f73df57a1a
Fix non-integer cast to pthread_t (#17512) 2025-02-03 15:21:07 +01:00
Viačasłaŭ 359258a1b5
Add missing drivers to configuration (#17509)
`camera_pipewire` and `record_wav`
2025-02-03 09:04:23 +01:00
Viačasłaŭ 65014a46b4
Add PipeWire camera driver (#17507) 2025-02-03 04:30:13 +01:00
Viačasłaŭ 45586e83da
(PipeWire) Pass the new_rate to the audio driver (#17508)
Set the supported sample rate after initialization.
Also a few minor fixes.
2025-02-03 04:30:02 +01:00
github-actions 9b3b75aa93 Fetch translations from Crowdin 2025-02-03 00:14:45 +00:00
neil4 05f75b83c1
Overlays: Improve Analog Recentering (#17505)
- Use closest point on zone perimeter if first touch is outside zone
2025-02-02 01:27:18 +01:00
Eric Warmenhoven 089a51f674
apple: enable emulated mailbox (#17506) 2025-02-02 01:22:18 +01:00
Eric Warmenhoven 212ae55cfe
glui: extremely minor refactor. (#17501) 2025-02-01 04:57:46 +01:00
Rob Loach 7ba205ba34 common: Move audio_mixer_sound user_data to above the types union 2025-01-31 16:29:18 -05:00
Rob Loach 355b277c11
common: Add a user_data pointer to audio_mixer_sound (#17488) 2025-01-31 03:41:07 +01:00
LibretroAdmin 2870a0a8ad
Revert "Workerized emscripten retroarch (WIP) (#17484)" (#17492)
This reverts commit cacd5a9a23.
2025-01-30 21:35:58 +01:00
Joe Osborn cacd5a9a23
Workerized emscripten retroarch (WIP) (#17484)
* workerized RA

* Workerized (non-async) web player, using OPFS

This patch eliminates the need for asyncify and uses modern filesystem
APIs instead of the deprecated, unmaintained BrowserFS.

This is a WIP patch because it won't fully work until these two
Emscripten PRs land and are released:

https://github.com/emscripten-core/emscripten/pull/23518
https://github.com/emscripten-core/emscripten/pull/23021

The former fixes an offscreen canvas context recreation bug, and the
latter adds an equivalent to BrowserFS's XHR filesystem (but without
the hazardous running-XHR-on-the-main-thread problem).

The biggest issue is that local storage of users who were using the
old version of the webplayer will be gone when they switch to the new
webplayer.  I don't have a good story for converting the old BrowserFS
IDBFS contents into the new OPFS filesystem (the move is worth doing
because OPFS supports seeking and reading only bits of a file, and
because BrowserFS is dead).

I've kept around the old libretro webplayer under
pkg/emscripten/libretro-classic, and with these make flags you can
build a non-workerized RA that uses asyncify to sleep as before:

make -f Makefile.emscripten libretro=$CORE HAVE_WORKER=0 HAVE_WASMFS=0 PTHREAD=0 HAVE_AL=1

I also moved the default directory for core content on emscripten to
not be a subdirectory of the local filesystem mount, because it's
confusing to have a subdirectory that's lazily fetched and not
mirrored to the local storage.  I think it won't impact existing users
of the classic web player because they already have a retroarch.cfg in
place.

* Get fetchfs working without manifest support

* makefile fixes
2025-01-30 19:58:18 +01:00
Eric Warmenhoven 4b5f782fe4
iOS: Fix crash during scanning (#17489) 2025-01-30 19:57:19 +01:00
Eric Warmenhoven fd8ba559d7
net_http: fix memleak (#17487) 2025-01-30 04:06:59 +01:00
github-actions 97803f5627 Fetch translations from Crowdin 2025-01-30 00:14:14 +00:00
BinBashBanana ed1810de86
Emscripten improvements (#17422) 2025-01-29 05:29:16 +01:00
github-actions 104561e7aa Fetch translations from Crowdin 2025-01-29 00:14:29 +00:00
Eric Warmenhoven 12f66bebb7
net_http: expire dns lookup failures more quickly (#17481) 2025-01-28 23:27:51 +01:00
Eric Warmenhoven d00ee5a70b
net_http: handle redirects (#17482) 2025-01-28 23:27:28 +01:00
Eric Warmenhoven b982ff64c2
cheevos: fix crash entering achievements in quick menu when no client (#17472) 2025-01-26 04:10:25 +01:00
github-actions c11d9bee2e Fetch translations from Crowdin 2025-01-25 00:13:19 +00:00
zoltanvb 8814eb3eb6
Changes up to 2025-01-24 (#17469) 2025-01-24 23:49:41 +01:00
LibretroAdmin 120465d676 Fix runahead.c 2025-01-24 19:37:28 +01:00
Eric Warmenhoven 04cdf0aa4d
apple: acceleration should include gravity (#17467) 2025-01-24 18:05:32 +01:00
github-actions 81e443c4cf Fetch translations from Crowdin 2025-01-24 00:14:32 +00:00
Eric Warmenhoven 72df261ed0
Fix opening file inside archive with core detection (#17461) 2025-01-23 18:56:11 +01:00
Eric Warmenhoven d2eb49ccbc
net_http refactor (#17460)
* net_http: refactor net_http_new

The goal is to move calls to getaddrinfo() and connect() into
net_http_update(). This will make it possible for them to be replaced
with non-blocking alternatives later.

The net_http calling pattern right now allows callers to create the
http_connection_t, call net_http_new() which creates the http_t from
the http_connection_t, free the http_connection_t, and then start
calling net_http_update(). In order to preserve that, the http_t needs
to copy the values out of the http_connection_t on create. This also
preserves the http_connection_t values instead of freeing them, so the
connection would be able to be used later.

* net_http: implement dns cache

* net_http: separate out address resolution, connect, and request send

* net_http: perform getaddrinfo on separate thread

* net_http: implement basic connection pool

* net_http: refactor receive calls to read faster, do fewer reallocs

* net_http: build fix for platforms without SSL

* net_http: build fix for non-griffin builds

* net_http: build fix for non-threaded platforms
2025-01-23 01:29:47 +01:00
github-actions 14a28b81af Fetch translations from Crowdin 2025-01-23 00:14:36 +00:00
Mathieu Poliquin aa49c05524
Fix game_ai_lib.so loading path in game_ai.c (#17456) 2025-01-22 20:43:11 +01:00
Eric Warmenhoven 0903eead06
tvos: fix fetching refresh rate on tvos 13/14 (#17455) 2025-01-22 20:43:02 +01:00
MrHuu c276577b52
(3DS) Add unique ID's (#17459)
- Anarch
- Ardens
- Dice
- DoubleCherryGB
- Fbneocps12
- Fbneoneogeo
- Numero
- Tamalibretro
- Uw8
2025-01-22 20:42:23 +01:00
github-actions 5c53570446 Fetch translations from Crowdin 2025-01-22 00:14:25 +00:00
Eric Warmenhoven f1e3b83d26
macos: reset keyboard state when focus is lost (#17453) 2025-01-21 22:31:24 +01:00
Mathieu Poliquin 66e23fca79
New feature: Override player input with machine learning models (#17407)
* Add dummy game ai subsystem

* First working prototype of a machine learning model that can override player input

* Update README.md

* Update README.md

* Fix loading path on Windows

* Change ai override to player 2

* Added quick menu show game ai option

* Implemented Quick Menu entry for Game AI options

* Redirect debug logs to retroarch log system + properly support player override

* Added support to use framebuffer as input to the AI

* Added pixel format parameter to API

* Fix game name

* code clean-up of game_ai.cpp

* Update README.md - Windows Build

* Update README.md

* Update README.md

* Update README.md

* Update config.params.sh

turn off GAME_AI feature by default

* Fix compile error in menu_displaylist.c

* Add missing #define in menu_cbs_title.c

* Added new game_ai entry in griffin_cpp

* Remove GAME_AI entry in  msg_hash_us.c

* Fix compile error in menu_displaylist.h

* Removed GAME AI references from README.md

* Fixes coding style + add GameAI lib API header

* Convert comment to legacy + remove unused code

* Additional coding style fixes to game_ai.cpp

* Fix identation issues in game_ai.cpp

* Removed some debug code in game_ai.cpp

* Add game_ai_lib in deps

* Replace assert with retro_assert

* Update Makefile.common

* Converting game_ai from cpp to c. First step.

* Convert game_ai from CPP to C. STEP 2: add C function calls

* Convert game_ai from CPP to C. Final Step

* Added shutdown function for game ai lib

* Update game_ai_lib README

* Fix crash when loading/unloading multiple games
2025-01-21 13:05:43 +01:00
sonninnos 3797d4deb6
Fix latency header in video stats (#17451) 2025-01-21 04:31:13 +01:00
LibretroAdmin a49196ee30 (menu_cbs_get_value.c) Put protective guards around strlcpy copies
into s2
2025-01-21 03:57:08 +01:00
LibretroAdmin e9afd53351 Fix crash that can happen in menu_action_setting_disp_set_label_entry 2025-01-21 03:50:46 +01:00
Viačasłaŭ f84f829957
(PipeWire) reset playback buffer on stopping (#17449)
* Fix compile warnings
2025-01-21 02:40:15 +01:00
sonninnos 1c724f5355
RGUI: 'Use This Directory' cleanup (#17450) 2025-01-21 02:02:55 +01:00
github-actions 54debca4a3 Fetch translations from Crowdin 2025-01-21 00:14:16 +00:00
LibretroAdmin b443d9974a Cleanup 2025-01-21 00:17:18 +01:00
LibretroAdmin 1ecd83b0ab Change returntype of random to size_t 2025-01-20 23:59:09 +01:00
Eric Warmenhoven f55d028ae5
cloud sync: workaround bug of requests being duplicated (#17448) 2025-01-20 22:39:23 +01:00
Daniel Worley 565e1c7d2d
UWP: Fix slang shader compilation (#17447) 2025-01-20 22:10:57 +01:00
Eric Warmenhoven ef4512dd02
macOS: ensure bundled assets get extracted properly (#17444) 2025-01-20 21:38:29 +01:00
Eric Warmenhoven 6fda41900d
apple: include git hash in TestFlight message (#17445) 2025-01-20 21:38:20 +01:00
Viačasłaŭ d3a879638d
Fix PipeWire freezing (#17446)
* Fix freezing after restarting pipewire service
* Rewrite the logic for starting/stopping stream
* Reduce boilerplate code
2025-01-20 21:38:11 +01:00
sonninnos 66921e8549
RGUI: Entry value cleanup (#17443) 2025-01-20 20:38:40 +01:00
sonninnos 391ba55b81
Add playlist random selector (#17441)
* Add playlist random selector

* Buildfix attempt

* ORBIS buildfix attempt
2025-01-20 18:25:41 +01:00
Apteryks 52320dfaa8
* platform: Honor the LIBRETRO_CHEATS_DIRECTORY environment variable. (#17440)
* frontend/drivers/platform_unix.c
(libretro_cheats_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_CHEATS to the value of
the LIBRETRO_CHEATS_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* configuration.c (config_load_file)
<libretro_cheats_directory>: New variable. Use the values of
the LIBRETRO_CHEATS_DIRECTORY environment variables instead of their
corresponding configured values, when set.
* docs/retroarch.6: Document it.
* retroarch.c (retroarch_print_help): Extend help text.
2025-01-20 15:08:45 +01:00
LibretroAdmin 4020326f58 Style nits 2025-01-20 04:37:27 +01:00
LibretroAdmin 350e4faf79 Fix some warnings 2025-01-20 01:30:27 +01:00
github-actions 1f2b299e00 Fetch translations from Crowdin 2025-01-20 00:19:46 +00:00
LibretroAdmin a6c8c6c7ef Cleanups 2025-01-19 23:57:15 +01:00
LibretroAdmin 3549d8378c Style nits 2025-01-19 22:15:34 +01:00
LibretroAdmin 13bc41facc Buildfixes 2025-01-19 20:37:04 +01:00
LibretroAdmin cde82f532c * Naming convention changes for variable names/function arguments
* Try to fit lines within ANSI 80-char limit
2025-01-19 20:19:14 +01:00
Apteryks 274cd419fa
Honor the LIBRETRO_DATABASE_DIRECTORY environment variable. (#17431)
* Partially revert a change made in 69ceb95ddc.

The change caused the 'libretro_directory' config option to always
revert to the default value, which was not intended behavior.

Reported-by: Michael Cook

* platform: Honor the LIBRETRO_DATABASE_DIRECTORY environment variable.

This is a follow-up to commit 69ceb95ddc.

* frontend/drivers/platform_unix.c
(libretro_database_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_DATABASE to the value of
the LIBRETRO_DATABASE_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* configuration.c (config_load_file)
<libretro_database_directory>: New variable. Use the values of
the LIBRETRO_DATABASE_DIRECTORY environment variables instead of their
corresponding configured values, when set.
* docs/retroarch.6: Document.
* retroarch.c (retroarch_print_help): List supported environment
variables, and cross-reference the man page.
2025-01-19 15:25:28 +01:00
github-actions 5db9b7f8c9 Fetch translations from Crowdin 2025-01-19 00:15:40 +00:00
zoltanvb 976cb288c3
Update font size sublabel. (#17435) 2025-01-18 22:45:00 +01:00
Eric Warmenhoven 68b3e5d8e0
iOS: fix "clean playlist" (#17434) 2025-01-18 17:34:49 +01:00
LibretroAdmin 445547f00a Remove unused variable warning 2025-01-18 04:09:36 +01:00
LibretroAdmin 9bff7168e8 (input_driver.c) Style nits 2025-01-18 03:11:24 +01:00
sonninnos aefadc04c7
Analog to Digital refactor (#17429) 2025-01-18 02:19:01 +01:00
LibretroAdmin 984d591573 Silence some warnings 2025-01-18 01:48:33 +01:00
github-actions cf0ec85c35 Fetch translations from Crowdin 2025-01-18 00:13:21 +00:00
Kreijstal 90d3e0be17
Allowing compilation on msys2 (#17369)
## Description
Before there was no clear way of running msys2, and even if there was, there is no guarantee of it working, well I fixed it, and added a CI, so that we can always know if it works. Furthermore I added 2 targets more: UCRT64 and CLANG64, yes, compilation with clang64 means we can also compile with clang for windows on arm :D, plus clang has better error messages overall, anyway.

## Related Issues

#17367

## Reviewers
Anyone, it's my first PR here.
2025-01-18 01:00:09 +01:00
LibretroAdmin 48d903e811 print_buf_lines - cast to unsigned to avoid warnings 2025-01-17 21:52:50 +01:00
Eric Warmenhoven 8aa445dfe2
tvos build fix (#17426) 2025-01-17 21:45:01 +01:00
LibretroAdmin fce755127c Cleanups/style nits 2025-01-17 20:06:47 +01:00
Apteryks 69ceb95ddc
Add libretro assets directory search path, and have environment variables override configured values (#17054)
* platform_win32: Fix sizeof for DEFAULT_DIR_PLAYLIST.

* frontend/drivers/platform_win32.c (frontend_win32_env_get): Check
the size of correct destination array.

* frontend: Honor the LIBRETRO_ASSETS_DIRECTORY environment variable.

This builds on 763fcd8267 ("unix, win32: Allow set the default
libretro_directory via environment variable") to also allow specifying
the assets directory via an environment variable.

* frontend/drivers/platform_unix.c (frontend_unix_get_env)
<libretro_assets_directory> New variable. Use it to set
DEFAULT_DIR_ASSETS, when available.
* frontend/drivers/platform_win32.c (frontend_win32_env_get): Likewise.

* platform: Honor the LIBRETRO_DIRECTORY environment variable.

Until now, and unlike the defaut core directory, the default
core *info* directory would be hard-coded relative to the installation
directory. Honor the LIBRETRO_DIRECTORY environment variable the same
instead.

* frontend/drivers/platform_unix.c (frontend_unix_get_env): Set
DEFAULT_DIR_CORE_INFO default to the value of the LIBRETRO_DIRECTORY
environment variable, if available.
* frontend/drivers/platform_win32.c (frontend_win32_env_get): Likewise.

* platform: Honor the LIBRETRO_AUTOCONFIG_DIRECTORY environment variable.

* frontend/drivers/platform_unix.c
(libretro_autoconfig_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_AUTOCONFIG to the value of
the LIBRETRO_AUTOCONFIG_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.

* platform: Honor the LIBRETRO_VIDEO_FILTER_DIRECTORY environment variable.

* frontend/drivers/platform_unix.c
(libretro_video_filter_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_VIDEO_FILTER to the value of
the LIBRETRO_VIDEO_FILTER_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.

* platform: Honor the LIBRETRO_VIDEO_SHADER_DIRECTORY environment variable.

* frontend/drivers/platform_unix.c
(libretro_video_shader_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_SHADER to the value of
the LIBRETRO_VIDEO_SHADER_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.

* platform: Honor the LIBRETRO_SYSTEM_DIRECTORY environment variable.

* frontend/drivers/platform_unix.c
(libretro_system_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_SYSTEM to the value of
the LIBRETRO_SYSTEM_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.

* configuration: Have environment variables override configuration.

Because the configuration file is systematically written when
RetroArch terminates, persisting any previous default/configured
value, setting the LIBRETRO_DIRECTORY, LIBRETRO_ASSETS_DIRECTORY, etc.
environment variables would not have an effect unless the
retroarch.cfg configuration file was cleared.

This seems to go against the common expectation that environment
variables are set by users to *override* the default behavior or
configuration of an application.

* configuration.c (config_load_file) <libretro_directory>
<libretro_assets_directory, libretro_autoconfig_directory>
<libretro_system_directory, libretro_video_filter_directory>
<libretro_video_shader_directory>: New variables. Use the values of
the LIBRETRO_DIRECTORY, LIBRETRO_ASSETS_DIRECTORY,
LIBRETRO_AUTOCONFIG_DIRECTORY, LIBRETRO_SYSTEM_DIRECTORY,
LIBRETRO_VIDEO_FILTER_DIRECTORY and LIBRETRO_VIDEO_SHADER_DIRECTORY
environment variables instead of their corresponding configured
values, when set.
* docs/retroarch.6: Document the environment variables honored and
their behavior.
2025-01-17 20:04:23 +01:00
LibretroAdmin b211adaaca Function argument name standardization 2025-01-17 19:55:32 +01:00
Ethan O'Brien ec54cdfcf0
Add HAVE_CHD flag for emscripten makefile (#17423) 2025-01-17 19:55:02 +01:00
Eric Warmenhoven 2471082ced
macos: fix some sandbox handling for app store (#17424)
* minor safety check

* macos: fix some sandbox handling for app store
2025-01-17 19:54:54 +01:00
LibretroAdmin dda78a4fc8 Use find_last_slash where possible 2025-01-17 13:26:17 +01:00
LibretroAdmin b47e09534c Less string copies 2025-01-17 13:10:17 +01:00
LibretroAdmin 1e83bfb971 Reduce char arrays 2025-01-17 12:55:45 +01:00
LibretroAdmin 16209a0936 (configuration.c) Cleanups/remove some redundant char buffers
(rcheevos) Fix warning
2025-01-17 12:32:54 +01:00
LibretroAdmin e2c8e98be0 Buildfixes and warning fixes 2025-01-17 12:03:30 +01:00
LibretroAdmin 31b7812720 Function argument name standardization 2025-01-17 04:16:12 +01:00
LibretroAdmin 9b5007aefd (manual_content_scan) USe fill_pathname 2025-01-17 03:39:30 +01:00
LibretroAdmin a9b0e45013 (glslang_utill.c) One less string copy per iteration 2025-01-17 03:01:59 +01:00
github-actions 1975235fd7 Fetch translations from Crowdin 2025-01-17 00:14:25 +00:00
LibretroAdmin e4d7684246 Less string copies in fill_pathname_expanded_and_absolute 2025-01-17 01:01:43 +01:00
LibretroAdmin e982905eb4 content_get_subsystem_friendly_name - change function signature return
to size_t
2025-01-17 00:55:30 +01:00
LibretroAdmin 0b329018ee Less string buffers and less string copies 2025-01-16 23:59:22 +01:00
LibretroAdmin 86c9a43b08 Use path_get_extension_mutable 2025-01-16 21:09:19 +01:00
zoltanvb 7e00668181
Language update (#17418) 2025-01-16 20:00:16 +01:00
Jamiras 0113226936
(cheevos) include achievement state in netplay states (#17416)
* add achievement data to netplay save state

* honor achievement state from netplay server

* keep processing achievements if menu doesn't pause game

* remove unused variable

* only CRC coremem

* force send savestate on join and hardcore change

* allow hardcore enablement to be synced to clients

* still calculate cheevos_size for non-server

* use appropriate buffer

* optimizations for when achievements are disabled

* support interfacing with older protocols

* formatting

* c89
2025-01-16 20:00:02 +01:00
github-actions beceb88cd7 Fetch translations from Crowdin 2025-01-16 00:14:30 +00:00
LibretroAdmin a5c9d9520f * Use fill_pathname_basedir where possible
* Move static variable to only function where it's used
* Change signature of file_path.c function
2025-01-15 22:17:59 +01:00
LibretroAdmin e0f09f609f (video_shader_parse.c) token_name char size can be further reduced to 24 2025-01-15 18:30:11 +01:00
LibretroAdmin de3acd9017 (video_shader_parse.c) Go lighter on char stack usage, remove unnecessary
wildcard token_size
2025-01-15 18:28:14 +01:00
LibretroAdmin b2072dd3be Use strldup where possible, avoid strcpy_literal 2025-01-15 16:36:49 +01:00
LibretroAdmin 9da7af46c3 len variable/argument name standardization 2025-01-15 16:04:25 +01:00
LibretroAdmin 076c2bca3b video_shader_replace_wildcards - get rid of the 2D char arrays 2025-01-15 15:25:27 +01:00
LibretroAdmin 7456711eaa (video_shader_parse.c) Standardize replace_len variable name and
reduce char array buffers
2025-01-15 15:08:37 +01:00
LibretroAdmin 047e04ed3e Standardize local len variable naming conventions 2025-01-15 15:00:12 +01:00
LibretroAdmin 47d199297a runtime_file.c - Move scope of menu_driver_ident call 2025-01-15 12:45:05 +01:00
LibretroAdmin 2533bbdc0b Small cleanups 2025-01-15 12:37:35 +01:00
LibretroAdmin f7447d2e0d Add TODO/FIXME notes and cleanup argument naming 2025-01-15 12:19:02 +01:00
github-actions 5069b693a1 Fetch translations from Crowdin 2025-01-15 00:14:15 +00:00
Viačasłaŭ Chalikin 13bd14747a PipeWire improvements
* Use given latency
* Fix (non)blocking microphone
* Mute microphone on startuo
* Reset buffer when the microphone stops
* Delete client-info handler
* Refactor the naming conventions, styling
2025-01-14 21:31:32 +01:00
Eric Warmenhoven 2fdd8434df
tvOS: Fix 720p display (#17414) 2025-01-14 21:31:11 +01:00
zoltanvb 31534438bc
Enable also alternative device names (#17412)
Enable input_device_device_display_name to also have alt_ variants.
Tests updated.
2025-01-14 16:19:05 +01:00
Jesse Talavera 0bb0077358
Fix a crash when initializing an illuminance sensor on Linux (#17408) 2025-01-13 21:54:52 +01:00
LibretroAdmin 47d888364d Standardize len variables - argument should always be named 'len',
while local len variables should have '_' prefix
2025-01-13 21:53:49 +01:00
LibretroAdmin e081bde064 (core_info.c) Use fill_pathname where we can 2025-01-13 21:14:30 +01:00
LibretroAdmin bd413de842 Log messages are too small to hold entire path 2025-01-13 16:01:16 +01:00
LibretroAdmin 3c3611af6f Resync libretro-common 2025-01-13 15:37:59 +01:00
Viačasłaŭ 1d6badb1f1
(PipeWire) Fix speedup in the video threaded mode (#17406) 2025-01-13 04:36:17 +01:00
github-actions 41290bb1a8 Fetch translations from Crowdin 2025-01-13 00:16:05 +00:00
LibretroAdmin 7e7224196a Avoid some strlens, and also return size_t in more string
modification functions
2025-01-12 23:39:29 +01:00
LibretroAdmin 598764b860 rarch_file_log_set_override - size_t return 2025-01-12 23:09:12 +01:00
LibretroAdmin fb338b90bf Turn some functions to returntype size_t 2025-01-12 23:03:41 +01:00
LibretroAdmin 955eeed31a (playlist.c) -
* playlist_get_old_format_metadata_value - now returns size_t
* fix bug where string copy was being made with strdup before
anything got written to the string
2025-01-12 22:32:42 +01:00
LibretroAdmin e84ea6082c Fix 'Remove Preset' 2025-01-12 19:05:44 +01:00
LibretroAdmin e30fcb6da6 Remove unnnecessary null pointer check 2025-01-12 18:45:14 +01:00
LibretroAdmin 203c6218e4 Re-enable BFI menu setting for mobile 2025-01-12 17:35:50 +01:00
hizzlekizzle f7678abe8d
Add flicker warnings, only auto-apply preferred overlays on Android and iOS (#17398)
* disable default overlays except on Android and iOS

* add flicker warnings to BFI/Subframes/rolling scan

and remove the prohibitions against other settings, since those conflicts are handled automagically anyway

* formatting nit
2025-01-12 17:34:13 +01:00
zoltanvb e71a1620b0
Update core list based on what is compiled for 1.20.0 stable version. (#17404) 2025-01-12 17:34:01 +01:00
Viačasłaŭ 1039db7bf8
Fix Qt build (#17397)
Related to #17346
2025-01-12 14:21:27 +01:00
iyzsong f309266422
(Qt) Fix desktop menu crash with CHEEVOS disabled (#17400) 2025-01-12 14:21:01 +01:00
github-actions 62a85ae737 Fetch translations from Crowdin 2025-01-12 00:16:13 +00:00
sonninnos 8ef798ea51
Add human readable rotation logging (#17387) 2025-01-11 02:51:48 +01:00
Eric Warmenhoven fcda24be29
Files in archives should always be marked as such (#17390) 2025-01-11 02:51:04 +01:00
zoltanvb 9e048d8d77
Reset save state index on content load, if auto index is not enabled. (#17391) 2025-01-11 02:50:35 +01:00
github-actions 857dc8be5a Fetch translations from Crowdin 2025-01-11 00:14:13 +00:00
sonninnos 1e32a1e5e9
Save state logging and label unifications (#17384) 2025-01-10 14:47:28 +01:00
sonninnos 17e9aabd25
WINRAW: Invert mouse order (#17376) 2025-01-10 12:21:33 +01:00
Eric Warmenhoven 95dd1d8449
cloud sync: fix windows path issues (#17375) 2025-01-10 12:21:24 +01:00
zoltanvb 4b45499b97
Changes up to 01-09 (#17379)
...and one minor clarification in previous logs.
2025-01-10 12:20:46 +01:00
github-actions 2c57a35055 Fetch translations from Crowdin 2025-01-10 00:15:03 +00:00
zoltanvb 6f495dea04
Replace upload-artifact v3 with v4 (#17378) 2025-01-09 20:29:15 +01:00
github-actions 74e7a62e91 Fetch translations from Crowdin 2025-01-09 00:14:07 +00:00
Rob Loach 941806698e
Add SSL Support to the information list (#17370) 2025-01-09 00:09:56 +01:00
Viačasłaŭ 9886944f32
Fix launch app when pipewire service is stopped (#17365) 2025-01-07 18:31:45 +01:00
zoltanvb 65b9b1cd25
Fix compile failure (#17366) 2025-01-07 17:42:25 +01:00
LibretroAdmin 839b7654db More standardization of local len variables 2025-01-07 03:20:39 +01:00
LibretroAdmin fc48ecaa1d Local 'len' variables need to prefixed with '_', inner-loop len
variables need to be prefixed with '__'
2025-01-07 02:57:24 +01:00
LibretroAdmin e40f405b97 Play it on the safe side - go back to some of the code
from before
2025-01-07 02:47:37 +01:00
LibretroAdmin a98ab483cb Restore archive_file_7z.c 2025-01-07 02:22:57 +01:00
Eric Warmenhoven 69e8be6dc1
iOS: ensure webserver notice can be dismissed (#17356) 2025-01-07 02:03:00 +01:00
hizzlekizzle 8a3f25311b
partial revert of c09fd38 (#17363)
which was causing softpatching to break on games with periods/dots in the filename. This restores the previous patch-matching behavior
2025-01-07 01:58:53 +01:00
github-actions 3ba7d88cea Fetch translations from Crowdin 2025-01-07 00:14:59 +00:00
Tatsuya79 43a2e1003e
allow exact sync with shader subframes (#17355)
* allow exact sync with shader subframes

* Update menu_setting.c
2025-01-06 21:36:57 +01:00
zoltanvb 5399faaa9d
Fix savestate auto-index detection (#17351) 2025-01-06 11:45:00 +01:00
github-actions 9c6e772497 Fetch translations from Crowdin 2025-01-06 00:15:51 +00:00
zoltanvb ab3b175848
Restore missed absolute mouse conversion. (#17343) 2025-01-05 03:50:47 +01:00
sonninnos 0913263817
Integer Scale Axis sublabel correction (#17345) 2025-01-05 03:50:32 +01:00
Viačasłaŭ f7159c4380
Fix Qt5 build (#17346) 2025-01-05 03:50:22 +01:00
github-actions 51c1482062 Fetch translations from Crowdin 2025-01-05 00:16:02 +00:00
neil4 6412f4feef
Overlay: Add Analog Recentering Zone (#17339) 2025-01-04 03:19:02 +01:00
neil4 2ffe9fe15c
Overlay lightgun fixes (#17340)
- Fix the "Allow Off-Screen" setting not working since #17308
- Prevent offscreen shot from disabling the lightgun with some cores
- Fullscreen pointer coordinates no longer needed
2025-01-04 03:18:38 +01:00
github-actions 54c37cf16d Fetch translations from Crowdin 2025-01-04 00:16:33 +00:00
github-actions ee191f3064 Fetch translations from Crowdin 2025-01-03 00:14:50 +00:00
zoltanvb b6be01355a
Add more help text for custom options in general. (#17336) 2025-01-02 22:21:54 +01:00
zoltanvb 864ad02177
Quickfix: asset size has exceeded 4x30 MB, so now there are 5 chunks. (#17334) 2025-01-02 19:31:35 +01:00
Eric Warmenhoven 53d9452439
Change config_get_path/array return back to bool (#17333) 2025-01-02 14:35:33 +01:00
Viačasłaŭ 0dcf196ee3
(Qt) Fix setting value size (#17332) 2025-01-02 12:58:30 +01:00
Eric Warmenhoven 7161069cfc
overlay: reinitializing was causing the wrong overlay to show (#17331) 2025-01-02 07:24:57 +01:00
Eric Warmenhoven 9dd6e85d2f
fix writing before string when substring is not found (#17330) 2025-01-02 06:17:00 +01:00
sonninnos 50c943ac96
Audio stream state msg cleanup (#17328) 2025-01-02 01:49:54 +01:00
Eric Warmenhoven 01951a5a5a
Fix passing wrong length of message (#17329) 2025-01-02 01:49:25 +01:00
zoltanvb 401e169865
Pointer sanitization, rwebinput driver (#17327) 2025-01-01 23:14:42 +01:00
sonninnos 2e3fc4f52d
WIN32: Menubar hotkey corrections (#17326) 2025-01-01 23:13:58 +01:00
Ignacio Sanchez Gines b5a62fcdf8
Add lightgun support to cocoa input driver (#17318) 2025-01-01 23:11:08 +01:00
LibretroAdmin a590c514f9 (video_shader_parse.c) Code restored to pre-Dec 17 2025-01-01 03:00:09 +01:00
LibretroAdmin ae7951445a Remove unused variables 2024-12-31 11:49:02 +01:00
LibretroAdmin 4e5df036f9 action_get_Title_generic - fix warning 2024-12-31 11:40:00 +01:00
LibretroAdmin 20ec0c605a (courtesy of Psyraven) Fix crashes with Explore view 2024-12-31 11:22:43 +01:00
LibretroAdmin 953a2d011d Update version.all 2024-12-31 06:33:17 +01:00
LibretroAdmin 7d1d8322e6 Bump up to 1.20.0 2024-12-31 06:30:58 +01:00
LibretroAdmin 30b3760959 (menu_explore.c) Don't use fill_pathname here, go back to old code 2024-12-31 05:40:30 +01:00
github-actions 94dce4001e Fetch translations from Crowdin 2024-12-31 00:14:25 +00:00
LibretroAdmin 76d133f860 Get rid of if 0 codeparts in gfx_widgets.c 2024-12-30 23:56:54 +01:00
zoltanvb b66263a034
Adapt the sanitized pointer handling, discussed at libretro#17196 : (#17312)
Cocoa driver specific changes:

- make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
- enable pointer offscreen query
2024-12-30 23:50:02 +01:00
LibretroAdmin 33ec89306e Fix savestate thumbnails - '.png' needs to be appended to the total
filepath, so fill_pathname can't be used since it would overwrite
the existing extension
2024-12-30 23:39:36 +01:00
Viačasłaŭ 3a4330238a
Fix PulseAudio freeze (#17316)
* Fix freeze when close app/content after stopping/restarting
  pulse service
* Fix pa->devicelist memleak
* Logging improvements
2024-12-30 23:08:45 +01:00
LibretroAdmin 6be18bfee9 Standardize naming of local len variables 2024-12-30 14:27:24 +01:00
LibretroAdmin 1e656261b0 Local len variables need to have '_' prefix 2024-12-30 14:03:58 +01:00
LibretroAdmin 707f19640a (task_content_disc.c) Use fill_pathname 2024-12-30 10:29:06 +01:00
LibretroAdmin b4cf279b80 Fix gdi_find_track prototype 2024-12-30 10:13:05 +01:00
LibretroAdmin 8ebedcb6bd (menu_explore) Simplification of explore_load_icons
fill_pathname_application_special - return size_t
2024-12-30 10:07:58 +01:00
LibretroAdmin 28f6ee9c26 Use return value of fill_pathname_basedir 2024-12-30 09:56:02 +01:00
LibretroAdmin 56c63b8c19 Small cleanups - conventionalize char *s, size_t parameter usage 2024-12-30 09:44:40 +01:00
LibretroAdmin e07028e892 Buildfix for conmanctl 2024-12-30 09:10:48 +01:00
github-actions 9a19b49a4f Fetch translations from Crowdin 2024-12-30 00:15:25 +00:00
LibretroAdmin d2dae40b3a (gfx/video_shader_parse.c) Enlarge char buffers - was necessary for some large
paths - TODO/FIXME - we still need to find out exactly which of these buffers
needs size to be PATH_MAX_LENGTH
2024-12-29 20:08:50 +01:00
Viačasłaŭ 4124ca49e3
PipeWire improvements (#17305)
* Fix freeze when pipewire service is stopped/restarted
* Fix `device_list `memleak
* Refactor pipewire drivers
2024-12-29 18:57:54 +01:00
Viačasłaŭ 945d3ebc5f
Fix memleak (#17307) 2024-12-29 18:57:45 +01:00
zoltanvb fe1575bc54
Input sanitization, wayland enhancement and overlay (#17308)
Adapt the sanitized pointer handling, discussed at #17196 :

Overlay "driver" specific changes:

- make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
- enable pointer offscreen query
- report -0x8000 for lightgun if pointer is at the edge
- align lightgun offscreen reporting and button ID conversion with other drivers

Android driver specific changes:

- make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
- remove extra "inside" checks, general simplification
- enable pointer offscreen reporting
- report same value for all ports when querying mouse and lightgun
- fill missing lightgun support, with fixed button map

Udev and X11 driver specific changes:

- simulate max. 3 touches instead of 1 using different mouse buttons

Wayland driver specific changes:

- integrate touch input better to the overall handling (enabling overlay usage with mouse)
- simulate max. 3 touches instead of 1 using different mouse buttons
2024-12-29 18:57:27 +01:00
Aleksey Samoilov 9ffb458626
wayland: add support for single-pixel-buffer-v1 protocol (#17298)
* wayland: add support for single-pixel-buffer-v1 protocol

* Create single pixel buffer instead of checkerboard if available

* Fix identations
2024-12-29 18:56:32 +01:00
Colin Kinloch e3cc0341b9
wayland: Fix improperly sized commits (#17309)
* Revert "wayland: Ignore splash sized events during splash"

This reverts commit 5ef24debe4.

* wayland: Fix improperly sized commits

* Set viewport on splash commit
* Don't commit "set video mode" viewport update
* Hide the libdecor frame before transitioning to fullscreen
2024-12-29 18:56:17 +01:00
LibretroAdmin 3e6486db2b Small cleanups (Task_database_cue.c) 2024-12-29 00:25:22 +01:00
LibretroAdmin 4297f02544 Use returntype for fill_pathname_basedir 2024-12-28 23:11:24 +01:00
LibretroAdmin 9376b99ea6 - Make some functions static in command.c
- Set returntype to size_t for some functions, avoid strlen
2024-12-28 22:49:03 +01:00
Eric Warmenhoven ef1b325978
Change return types for some path functions to size_t (#17303) 2024-12-28 22:26:30 +01:00
LibretroAdmin 9d15900979 Small cleanups: * Prevent some unneccessary strlcpy calls and intermediary string copies * Name local length variables for strings '_len', parameter/argument 'len' 2024-12-28 22:22:07 +01:00
LibretroAdmin 0a7b409a04 (runtime_file.c) Use fill_pathname 2024-12-28 19:41:10 +01:00
Eric Warmenhoven b09b98ffd5
apple: include doukutsu_rs core in App Store builds (#17302) 2024-12-28 18:45:24 +01:00
LibretroAdmin a3f631e310 Fix label - 'Never' was always shown for playlist runtime 2024-12-28 18:43:46 +01:00
Aramis 2c3e53e4e8
fix for closing window (#17301) 2024-12-28 17:26:04 +01:00
LibretroAdmin b8c9665753 Fix typo 2024-12-28 00:44:56 +01:00
Jamiras a70eba3fd5
(cheevos) allow subframes in hardcore (#17296)
* allow subframes in hardcore

* remove unused message
2024-12-28 00:39:44 +01:00
LibretroAdmin 4951201b6b disp_set_label_menu_file_core - set *w to implicit 0 2024-12-28 00:38:04 +01:00
LibretroAdmin e6373f2869 Position Latency accurately in statistics 2024-12-28 00:33:40 +01:00
LibretroAdmin 1a751ef9a2 Remove core value label 2024-12-28 00:30:00 +01:00
Eric Warmenhoven 3989a62f60
Apple buildfix (#17294) 2024-12-27 20:36:12 +01:00
Aleksey Samoilov 4fc6bbe8c2
wayland: improve logging (#17291)
* wayland: improve logging

* wayland: minor cleanup
2024-12-27 15:51:13 +01:00
zoltanvb 26350527f3
Changes up to 2024-12-27. (#17292) 2024-12-27 15:51:05 +01:00
sonninnos da05947b41
GLUI: Restore core list icons (#17293) 2024-12-27 15:50:55 +01:00
LibretroAdmin 0d4eeb647a Warning cleanups/unused variables removal 2024-12-27 15:39:32 +01:00
LibretroAdmin b8cdaeae72 Buildfixes 2024-12-27 15:24:29 +01:00
LibretroAdmin 18c85b5ccd Cleanups -
* Less string copies
* Some general cleanups
* Add extra param to runloop_message_queue_push so we can pass size_t
of the message
* Consistent conventions for local variable usage for certain things
2024-12-27 15:13:45 +01:00
LibretroAdmin ed58e4a8d8 Conventionalize len variables:
* In function arguments, use 'size_t len'
* Inside the function, use '_len'
* If you need a seciondary len variable inside the function, use '__len'
2024-12-27 05:51:33 +01:00
hizzlekizzle bc819bb412
change increment on max Fast-Forward speed (#17290)
closes https://github.com/libretro/RetroArch/issues/15540

we can still tick through to higher values quite fast, but there's not much reason for someone to exceed, say, 3x without just setting it to 0 anyway, so I don't think there's any real usability loss.
2024-12-27 04:26:54 +01:00
github-actions d5d1c424c8 Fetch translations from Crowdin 2024-12-27 00:14:30 +00:00
Aleksey Samoilov a2d9c74978
wayland: add support for content-type-v1 protocol (#17288)
* wayland: add support for content-type-v1 protocol

* update gitignore, remove generated files

* Fix typos
2024-12-27 00:16:36 +01:00
libretroadmin 95f0297e7f Fix CLI shader loading 2024-12-26 05:10:00 +01:00
libretroadmin 5749a2179d Use members from path_data directly and bypass functions
in gfx_thumbnail_path
2024-12-26 02:48:05 +01:00
github-actions a2e9915532 Fetch translations from Crowdin 2024-12-26 00:14:21 +00:00
zoltanvb ac6b30471b
Pointer sanitization - sdl (#17286) 2024-12-25 17:55:13 -06:00
libretroadmin 92f134fb87 video_driver_frame - optimize string handling 2024-12-25 23:33:50 +01:00
libretroadmin c477956f23 Cleanups/style nits 2024-12-25 22:52:12 +01:00
libretroadmin 1450cc04de Reduce local string sizes 2024-12-25 22:36:13 +01:00
libretroadmin 9c71620c53 (gfx_widget_load_content_animation) icon_file can be reduced to NAME_MAX_LENGTH size 2024-12-25 21:34:02 +01:00
libretroadmin bd461a5f8e (core_info) core_info_get_file_id - return length of written
string and use it to avoid strlcat
2024-12-25 19:49:26 +01:00
libretroadmin 700b13654c Some string cleanups 2024-12-25 19:18:45 +01:00
libretroadmin 51e706007b String handling cleanups 2024-12-25 19:06:04 +01:00
Aleksey Samoilov 7887719d42
wayland: add support for cursor-shape-v1 protocol (#17284)
* wayland: add support for cursor-shape-v1 protocol

* Bump required wayland-protocols to 1.32
2024-12-25 08:18:45 -08:00
zoltanvb e5fde4dd09
Pointer sanitization - winraw, dinput, sdl (partial) (#17283)
Adapt the sanitized pointer handling, discussed at libretro#17196 :

winraw and dinput driver specific changes:

    make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
    remove extra "inside" checks, general simplification
    enable pointer offscreen reporting
    use common functions for edge detection and lightgun button ID conversion

sdl driver specific changes:

    pointer handling aligned with the other input drivers, as above
    added TODO for lightgun part - no suitable test env at the moment where SDL input can be used
2024-12-25 08:18:17 -08:00
Viačasłaŭ b124fe6e65
Fix build with GCC 14 (#17282) 2024-12-24 23:51:48 -08:00
libretroadmin 9a5b2063b7 Simplify video_shader_replace_wildcards 2024-12-25 06:49:58 +01:00
libretroadmin 44238e909f Consistent viewport naming conventions 2024-12-24 22:50:51 +01:00
libretroadmin 83a187784a Remove dependency on strlcpy for rjson.c 2024-12-24 21:09:15 +01:00
libretroadmin 8074a833aa Cleanups/less string copies and indirection 2024-12-24 21:07:31 +01:00
libretroadmin 2cfdccc085 Less string intermediary copies 2024-12-24 18:46:22 +01:00
zoltanvb 6a85844b41
Pointer sanitization - x11, udev (#17281)
Adapt the sanitized pointer handling, discussed at #17196 :

X11 driver specific changes:

    make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
    remove extra "inside" checks, general simplification
    enable pointer offscreen reporting

Udev driver specific changes:

    remove custom calculation and use common viewport translation
    unify pointer query instead of separate _x and _y
    enable pointer offscreen reporting

Other changes:

    more tuning of pointer conversion in video_driver.c for edges
    lightgun button ID conversion moved to input_driver.c
2024-12-24 07:08:58 -08:00
libretroadmin f8ffcef86c Cleanups 2024-12-24 06:42:59 +01:00
libretroadmin 279270ae5f string_list_join_concat_special - specialized version without bounds
check
2024-12-24 06:14:26 +01:00
libretroadmin 67b0147a59 Cleanups - menu_entries_get_title returns results of strlcpy 2024-12-24 05:35:36 +01:00
libretroadmin de8f979cb7 less string copies 2024-12-24 05:10:09 +01:00
libretroadmin 02bcbffbab fill_pathname - one less string copy 2024-12-24 00:08:04 +01:00
libretroadmin 2b94bccad2 (fill_pathname_join_delim) - no longer use strlen 2024-12-23 23:42:56 +01:00
libretroadmin 55c457e548 menu_displaylist - cleanups 2024-12-23 22:44:18 +01:00
Viačasłaŭ 284161057d
Add microphone support via PipeWire (#17279) 2024-12-23 13:40:35 -08:00
libretroadmin 1340e751e0 print_buf_lines - extended was never used as a parameter (always set to
false), so change function
2024-12-23 07:28:49 +01:00
libretroadmin 72acdb4eb1 datetime_cache can go now from the struct 2024-12-23 07:12:29 +01:00
libretroadmin cdef3ff9f7 strftime - write directly into string instead of using intermediary copies 2024-12-23 07:10:03 +01:00
libretroadmin 772620f6fa gfx_widget_load_content_animation - use fill_pathname more 2024-12-23 06:33:43 +01:00
libretroadmin 7317fa9ee9 Cut down on some strlen calls where possible 2024-12-23 06:24:01 +01:00
libretroadmin b789e6ee56 More style nits 2024-12-23 05:47:29 +01:00
libretroadmin 442b9bc3da Syntax style nits 2024-12-23 05:44:40 +01:00
Eric Warmenhoven 4ab58f66ec
apple: tweaks to fastfile to better handle versions and dirty repos (#17278) 2024-12-22 19:38:56 -08:00
github-actions 3ab3b32103 Fetch translations from Crowdin 2024-12-23 00:15:28 +00:00
libretroadmin 99c7e08445 Don't use string_trim_whitespace 2024-12-23 00:51:01 +01:00
libretroadmin ca7e53e3ca string_replace_substring - move out implicit strlen 2024-12-23 00:40:09 +01:00
libretroadmin b90c2d440c Another buildfix 2024-12-22 22:11:19 +01:00
libretroadmin f8317a2a7e C89_BUILD fix 2024-12-22 22:09:54 +01:00
libretroadmin e26a38c8d4 Buildfix 2024-12-22 22:08:22 +01:00
libretroadmin b3e5c578b3 Faster shader capabilities queries 2024-12-22 21:58:51 +01:00
libretroadmin c09fd38c1d * Use fill_pathname more
* Get rid of strlen in some locations
2024-12-22 20:43:54 +01:00
libretroadmin f429b15250 Cleanups 2024-12-22 20:01:28 +01:00
libretroadmin 70f55f5976 video_shader_replace_wildcards - do away with the string arrays
and do string concatenation instead
2024-12-22 19:31:46 +01:00
libretroadmin ab43347fdd C89_BUILD fix 2024-12-22 05:32:17 +01:00
libretroadmin ce88a46a05 Menu simplifications/cleanups 2024-12-22 05:21:25 +01:00
libretroadmin e01ef9e1de Cleanup unused menu_is_nonrunning_quickmenu 2024-12-22 05:07:30 +01:00
libretroadmin 6b8466f87a menu_driver_set_thumbnail_system/menu_driver_get_thumbnail_system
just small wrapper functions, remove
2024-12-22 04:53:04 +01:00
github-actions 12ddb1b6d7 Fetch translations from Crowdin 2024-12-22 00:16:12 +00:00
zoltanvb 072d949346
Pointer handling sanitization - wayland and libretro.h changes (#17277)
Adapt the sanitized pointer handling, discussed at #17196:

Wayland driver specific changes:
- make sure pointer position is always within [-0x7fff,0x7fff]
  by using the confined wrapper
- enable lightgun to report -0x8000 if pointer is really offscreen
- remove extra "inside" checks
- report same pointer/lightgun coordinates for all ports
- simplify pointer and lightgun handling

Other changes:
- unify "offscreen" condition through input_driver.c
- slight tuning of pointer conversion in video_driver.c
- update libretro.h with explanation and pointer offscreen value
- small fixes on remote retropad test screen
2024-12-21 13:28:27 -08:00
Eric Warmenhoven a7db10508c
ios9: re-enable web server/webdav server (#17275) 2024-12-21 11:39:44 -08:00
libretroadmin 5ddb9b990c Disable fetching Named_Logos for now - not only is it too much overhead
and bandwidth for our server but none of thse Named_Logos have been added to
any repos for now. We will also need to have settings for specifying how much
stuff we fetch at the same time (Named_Logos, Named_Snaps, Named_Titles, Named_Boxarts).
Trying to fetch all this stuff at the same time is prob a mistake
2024-12-21 17:59:59 +01:00
libretroadmin 123bfc1212 Disable ondemand thumbnails for all platforms by default 2024-12-21 17:47:16 +01:00
LibretroAdmin 739f2ff55c
Reduce calls to path_remove_extension - use fill_pathname instead (#17270)
* Reduce calls to path_remove_extension - use fill_pathname instead

* More fill_pathname usage
2024-12-20 21:40:58 -08:00
Zach Morris b16f04de0a
Add Named_Logos (#17216)
* Draft:  Add Named_Logos

* Allow selecting Content Logo as a thumbnail display

* Increase pl_thumbnail_download index

to 4 to match the 4 available thumb types

---------

Co-authored-by: Rob Loach <robloach@gmail.com>
2024-12-20 18:52:27 -08:00
Viačasłaŭ fbe135fb60
Fix displaying PipeWire help label, styling (#17274)
Update README
2024-12-20 18:51:48 -08:00
github-actions b252725394 Fetch translations from Crowdin 2024-12-21 00:14:09 +00:00
libretroadmin 6c914bed06 Add GDI system feature 2024-12-20 21:03:57 +01:00
libretroadmin 5c31d38137 (Griffin) Add pipewire 2024-12-20 20:46:42 +01:00
libretroadmin 97a4219dc7 Update 2024-12-20 20:42:48 +01:00
libretroadmin 8571847fda Filter system features 2024-12-20 20:41:59 +01:00
libretroadmin 8212bf60ef * Rewrite System Info - only shows builtin features relevant to the platform
* Add Pipewire to 'features' CLI switch and System Info screen
2024-12-20 20:10:24 +01:00
sonninnos dc7e8e1811
Prevent stuck Game Focus dupe keyboard event (#17273) 2024-12-20 09:38:01 -08:00
Viačasłaŭ 0ae2b87c57
(Audio/PipeWire) Fill rest buffer with silence. (#17272)
Formatting, fix typo
2024-12-20 07:59:43 -08:00
Viačasłaŭ 963ffc0e77
Add PipeWire audio driver (#17271) 2024-12-19 22:11:27 -08:00
github-actions cde4e9253b Fetch translations from Crowdin 2024-12-20 00:14:47 +00:00
zoltanvb 30a656738b
Introduce video_driver_translate_coord_viewport_wrap clamping variant. (#17196)
Add another version of the coordinate translation that will not
report -0x8000 for offscreen values, but instead map the position
to the respective edge (0x7fff/-0x7fff). Not yet in use.

Udev driver updated to use the wrapper, as all other input drivers do.
2024-12-19 13:30:43 -08:00
Eric Warmenhoven 8d640fc048
ios9: Fix using opengles2 context (#17269) 2024-12-19 13:30:01 -08:00
libretroadmin 17fc55c762 fill_pathname_parent_dir_name - small cleanups 2024-12-19 21:05:43 +01:00
libretroadmin c492e46d96 Change function signature of fill_pathname_parent_dir 2024-12-19 20:51:33 +01:00
libretroadmin d94cc3af72 Simplify fill_pathname_application_path 2024-12-19 20:17:09 +01:00
Jesse Talavera 3cdb95a602 Construct device URLs differently based on the ffmpeg backend 2024-12-18 21:05:30 -05:00
Jesse Talavera b68a588ede Split some ffmpeg camera logic into functions 2024-12-18 20:32:19 -05:00
Jesse Talavera 9ee56da6b0 Prioritize certain backends 2024-12-18 20:31:44 -05:00
libretroadmin 60e5858d51 fill_pathname_application_dir - use path_basedir instead of
path_basedir_wrapper
2024-12-18 23:39:24 +01:00
libretroadmin e53fb82066 Sync libretro-common 2024-12-18 23:00:50 +01:00
libretroadmin 7d71f94dc6 Fix misleading indentation warning 2024-12-18 22:15:35 +01:00
libretroadmin 6b801333e7 file_path - change function signatures - output char array always
is named 's', and size of it 'len'
2024-12-18 21:43:33 +01:00
Jesse Talavera 4beb80c290 Revert "Forward ffmpeg's logging to RetroArch"
This reverts commit 4aac4d5b9e.
2024-12-18 14:52:28 -05:00
Eric Warmenhoven 2650712cb3
Small tweaks to fill_pathname_application_path (#17268) 2024-12-18 11:29:58 -08:00
Jesse Talavera 4aac4d5b9e Forward ffmpeg's logging to RetroArch 2024-12-18 14:28:49 -05:00
libretroadmin 4521f6bcb2 Cleanups 2024-12-18 20:15:58 +01:00
Eric Warmenhoven 47709fe0d5
apple: include bsnes-js core in App Store builds (#17267) 2024-12-18 10:03:54 -08:00
Eric Warmenhoven 569f9a3282
apple: fastlane improvements (#17266)
- remove a lot of duplicated code across mac/ios/appletvos
- restore ability to use either login or app_store_connect_api_key
- pull version string from version.all instead of app store connect
- allow building from alternate branch
- allow skipping upload or making it publicly available
2024-12-18 10:03:42 -08:00
libretroadmin f047c247f9 (gfx/video_shader_parse) Readability 2024-12-18 15:54:42 +01:00
Jesse Talavera 7586ae7dbe Remove stray whitespace 2024-12-17 14:57:36 -05:00
Jesse Talavera 88b6342bb5 Move up some declarations 2024-12-17 14:57:06 -05:00
Jesse Talavera 7b21ed5f93 Set options for the camera and accompanying AV structures 2024-12-17 14:37:29 -05:00
Jesse Talavera d682917e44
Add Linux support for illuminance sensors (#17208)
* First crack at light sensor support for Linux

* Add light-sensor support to most Linux input drivers

* Fix a compiler error

- Whoops, forgot to declare `sdl`

* Refactor linux_illuminance_sensor_t

- Allow the poll rate to be specified
- Poll the sensor on a separate thread
- Open a file handle each time we poll the sensor, since sysfs doesn't update the contents of an existing handle

* Set the `done` flag when closing the light sensor

- Whoops

* Avoid a division by zero when updating the poll rate of an existing sensor

* Don't try to open illuminance sensors from ".", "..", or hidden files

* Never mind

* Fix some silly mistakes

* Skip hidden files, ".", and ".."

* Cancel the sensor poll thread mid-sleep when closing it

- POSIX says it's fine

* Add to CHANGES.md

* Address feedback given on PR

* Use libretro-common's file system instead of stdio
2024-12-17 05:49:39 -08:00
Eric Warmenhoven a4b478524a
iOS/tvOS: Fix more places where paths weren't expanded correctly (#17265) 2024-12-17 05:24:20 -08:00
zoltanvb b0114d4316
Stay on previous CI image for Android. (#17264) 2024-12-17 05:24:10 -08:00
Jesse Talavera ce1f31af8d Don't pass in the driver context to `camera_driver::device_list_new`
- Unlike some other drivers, the camera driver is only initialized when a core actually asks for it
- Therefore, the driver context isn't available when it's time to ask for devices
- I could refactor the camera driver to be created earlier, but then I'd need to refactor the other drivers as well
- That'll come later in another PR
2024-12-16 21:53:37 -05:00
Jesse Talavera 3c73b36cca Remove `const` from some fields 2024-12-16 16:45:12 -05:00
Jesse Talavera 7d31c65af1 Fix compatibility with libswscale < 6.1.100
- sws_scale_frame was introduced in 6.1.100
- Before this change, the driver wouldn't build on my Ubuntu Jammy VM
2024-12-16 16:38:15 -05:00
Jesse Talavera 47e0a163f3 Don't try to link the ffmpeg camera driver twice
- Whoops
2024-12-16 16:28:34 -05:00
Jesse Talavera c63a8d6705 Check for FFmpeg's constitutent libraries before adding flags for them 2024-12-16 15:21:56 -05:00
libretroadmin eb08faa434 Replace strpbrk with strchr - we only need to search for one char 2024-12-16 17:49:44 +01:00
libretroadmin 275c6c0267 (XMB) xmb_path_dynamic_wallpaper - don't use string_replace_substring
unless absolutely necessary - uses memory allocation - single strpbrk
instead gets the job done here
2024-12-16 17:38:09 +01:00
Eric Warmenhoven 7e49b3d3d3 overlay: fix crash on null pointer 2024-12-16 15:59:32 +01:00
Eric Warmenhoven 4351ea3098
apple: fix reinit of gcd task queue (#17262) 2024-12-16 06:00:45 -08:00
Jesse Talavera 33b574198c Swap the buffers after copying the most recent camera frame, but only upon success 2024-12-15 21:39:48 -05:00
Jesse Talavera 024fd873ec Moved polling in the new ffmpeg camera driver to another thread 2024-12-15 21:21:08 -05:00
github-actions 4d7dfd2848 Fetch translations from Crowdin 2024-12-16 00:16:24 +00:00
zoltanvb 5cfaf09f55
Support for analog L2/R2 values when a DS3 controller is used with PS Vita. (#17261) 2024-12-15 09:24:13 -08:00
redenvelope2000 7be52caff8
Update input_driver.c to improve the classic toggle turbo function (#17252)
Changed the logic of the classic toggle turbo mode code such that the pressing order of the turbo button and the button to enable/disable does not matter.
2024-12-15 09:23:59 -08:00
github-actions 928249b20b Fetch translations from Crowdin 2024-12-14 00:14:51 +00:00
Jesse Talavera 2bd45eeb6f Remove an unneeded comment 2024-12-13 14:52:11 -05:00
zoltanvb 7602b10688
Changes up to 2024-12-11 (#17254) 2024-12-13 09:57:25 -08:00
Eric Warmenhoven 48f156fefe
Fix uninitialized variable (#17256) 2024-12-13 09:55:38 -08:00
github-actions 840bee7297 Fetch translations from Crowdin 2024-12-13 00:16:02 +00:00
Jesse Talavera 391be66361 Unref the packet and frame correctly 2024-12-12 18:55:05 -05:00
Jesse Talavera 2d2e9d840c Fix the channels being swapped
- Whoops, wrong format
2024-12-12 18:54:49 -05:00
Jesse Talavera 0e347391e8 Clean up ffmpeg_camera_free
- Release resources in the opposite order they were initialized
- Don't release resources twice (even for cases of a noop)
2024-12-12 18:18:01 -05:00
Jesse Talavera 716be2bb22 Silence some warnings 2024-12-12 18:16:24 -05:00
Jesse Talavera 0bdf616836 Fix some swapped arguments 2024-12-12 18:13:14 -05:00
zoltanvb ccb7f4e0ce
Clarify latency setting. (#17253) 2024-12-12 12:42:52 -08:00
Jesse Talavera 22301bd3d5 Fix a crash when closing the ffmpeg camera driver
- Allocate the target buffer aligned to 4-byte addresses
- Consolidate resource cleanup to mitigate similar issues
2024-12-12 11:25:43 -05:00
Jesse Talavera b1eb37b394 Capture an image and display it (as tested with 3DEngine)
- Still crashes upon closing
- Colors are all wrong, too
2024-12-12 11:09:31 -05:00
Eric Warmenhoven 62c725579a
apple: use gcd for task queue (#17248) 2024-12-11 22:55:46 -08:00
Eric Warmenhoven 0e26bea0b2
icloud: properly report errors (#17249) 2024-12-11 22:54:53 -08:00
Eric Warmenhoven 8cd97d57f9
cleanup: remove now-unused net_http_special (#17250) 2024-12-11 22:54:45 -08:00
Eric Warmenhoven bee0d2226f
cleanup: minor tidying of unused code in task_http (#17251) 2024-12-11 22:54:26 -08:00
Jesse Talavera af1c4a3e7f First crack at implementing the ffmpeg camera driver 2024-12-11 21:26:15 -05:00
Eric Warmenhoven cf986c0424
overlay: don't rely on menu entry, it can be misleading (#17247) 2024-12-10 22:32:15 -08:00
github-actions 722fdd925e Fetch translations from Crowdin 2024-12-11 00:15:58 +00:00
Eric Warmenhoven f83841df38
probably fix crash setting overlay (#17243) 2024-12-09 20:47:29 -08:00
github-actions fc872a1f6c Fetch translations from Crowdin 2024-12-10 00:16:06 +00:00
github-actions 29bee5c55b Fetch translations from Crowdin 2024-12-09 00:16:15 +00:00
Jefferson Bezerra 5dbfbff6e3
Add upscale 1.66x filter (#17240) 2024-12-08 00:06:14 -08:00
Eric Warmenhoven 99c2676efa
Add option to load overlay based on system name (#17233) 2024-12-07 23:58:33 -08:00
github-actions 3b4d1aa0a4 Fetch translations from Crowdin 2024-12-08 00:16:56 +00:00
Eric Warmenhoven 7b29062e96
cloud sync: small bug fixes around handling deleted files (#17236) 2024-12-07 00:59:05 -08:00
Eric Warmenhoven 3bdc71c20f
apple: include yabause core on app store (#17237) 2024-12-07 00:58:55 -08:00
Licaon_Kter e3c1ebfbde
fetch-submodules.sh - fail on errors (#17234)
..else if a git clone fails the build carries on with the incomplete assets
2024-12-05 06:21:42 -08:00
Viačasłaŭ 6fcc19b8ed
Update ISSUE template (#17228)
Use the modern user-frendly issue template format
2024-12-03 23:37:11 -08:00
Eric Warmenhoven d642e38423
apple: extract bundled assets.zip based on bundle version (#17231) 2024-12-03 23:37:01 -08:00
Jesse Talavera 1d618bf232 Mark the `ffmpeg_camera` functions as `static`
- Other translation units don't need to worry about them
2024-12-03 14:59:14 -05:00
Jesse Talavera 4f88c4eb09 Forgot a comma 2024-12-02 20:41:28 -05:00
Eric Warmenhoven 14a0c186f3
tvOS: check task queue more aggressively (#17227) 2024-12-02 15:51:10 -08:00
Viačasłaŭ f9faa9974a
Update ISSUE template (#17226) 2024-12-02 12:08:15 -08:00
Jesse Talavera 29f31b3457 Remove some stray whitespace
- Excluding this trivial change from commits is gonna drive me nuts
2024-12-02 14:11:29 -05:00
Eric Warmenhoven 4d335c4855
iOS: Fix CAMetalLayer nativeScale confusion (#17225) 2024-12-02 07:52:38 -08:00
Jesse Talavera de3abdb556 Add some new camera_driver functions for retrieving a list of devices
- Only ffmpeg will support these right now
2024-12-01 19:34:08 -05:00
Eric Warmenhoven 6475791e07
iOS: fix reopening a recently-creatd file, and build flag cleanup (#17223) 2024-12-01 10:48:52 -08:00
github-actions 900ec71cba Fetch translations from Crowdin 2024-12-01 00:18:14 +00:00
Jesse Talavera ed04e1060a Allocate the ffmpeg camera driver 2024-11-30 18:59:26 -05:00
Jesse Talavera 9c82e9304b Merge branch 'master' into jtg/libavdevice-camera-driver 2024-11-30 16:37:54 -05:00
github-actions 67f2cf56d4 Fetch translations from Crowdin 2024-11-30 00:14:52 +00:00
github-actions b67ee2afeb Fetch translations from Crowdin 2024-11-28 00:15:51 +00:00
zoltanvb 7ee70c9224
Replace checkout action, remove upload (#17217)
Due to node v20 being incompatible with some of the CI images
(too old glibc), the checkout action is replaced by an alternative
which does not need node, and upload is removed for now.
2024-11-27 03:43:07 -08:00
LibretroAdmin a26cfa3787
Revert "Replace checkout action, remove upload (#17214)" (#17215)
This reverts commit 04b53ce692.
2024-11-26 15:12:53 -08:00
zoltanvb 04b53ce692
Replace checkout action, remove upload (#17214)
Due to node v20 being incompatible with some of the CI images
(too old glibc), the checkout action is replaced by an alternative
which does not need node, and upload is removed for now.
2024-11-26 15:10:44 -08:00
LibretroAdmin 03c8c12740
Revert "Revert Qt5 implementation (#17202)" (#17211)
This reverts commit 6de5ebadf9.
2024-11-26 04:20:39 -08:00
Alex Kiraly 0b05b1e3f4
Fix CloudSync on Windows, enable by default (#16475)
* Make paths portable for CloudSync when building manifest

* Enable CloudSync on Windows builds

* Fix "fetech server file" - Forgot to commit this, oops!

* Fix definition conflict with gzguts.h

* "Enable Cloud Sync for Windows UWP builds"

---------

Co-authored-by: WindowsDEV <WindowsDEV@WindowsDEV-VM.lan>
2024-11-25 09:47:27 -08:00
Eric Warmenhoven b2af02f9fb
apple: include mrboom core in App Store builds (#17207) 2024-11-25 09:21:07 -06:00
Eric Warmenhoven b6f798655a
cloud sync: fix file resurrection (#17204) 2024-11-25 03:18:59 -08:00
Eric Warmenhoven 6a17201d70
ios: fix saving overrides always including libretro_directory (#17205) 2024-11-25 03:18:51 -08:00
Tatsuya79 73efac6815
qt fix input panel (#17206) 2024-11-25 03:08:59 -08:00
github-actions 16123d4fdb Fetch translations from Crowdin 2024-11-25 00:16:07 +00:00
Viačasłaŭ 6de5ebadf9
Revert Qt5 implementation (#17202) 2024-11-24 14:50:56 -08:00
libretroadmin adcf146e7d Buildfix for Qt5 2024-11-24 21:25:37 +01:00
Viačasłaŭ 022288a925
(Qt) Refactoring the QVariant constructting (#17199) 2024-11-24 08:17:00 -06:00
Viačasłaŭ 3e2f0131ae
Migrate to Qt6 (#17167)
* (Qt) Migrate to Qt6

* basic support Qt6 with minimal changes required for compiling
* look `moc` in QT_HOST_LIBEXECS

* (Qt) Backward compatibility with Qt5
2024-11-24 04:30:47 -08:00
Eric Warmenhoven b95c15cfdf
apple: include noods core on app store (#17198) 2024-11-24 02:50:51 -06:00
github-actions 9b77959a48 Fetch translations from Crowdin 2024-11-24 00:19:41 +00:00
github-actions a894a20b83 Fetch translations from Crowdin 2024-11-23 00:14:25 +00:00
Camden Fullmer 89732bee54
Use the correct case for Xcode. (#17195) 2024-11-22 01:23:11 -08:00
github-actions 522b607809 Fetch translations from Crowdin 2024-11-22 00:15:42 +00:00
github-actions dd24e46ea1 Fetch translations from Crowdin 2024-11-21 00:15:53 +00:00
Antonio Orefice b0db968454
Ozone: Add a touch-sensitive "resume" button in the lower-right corner. (#17192)
This enhancement is particularly useful when using RetroArch with a touchscreen, as it allows you to resume content without needing to navigate back to the quick menu, thereby preserving the current menu screen.
2024-11-20 10:56:35 -08:00
Eric Warmenhoven aff99e3e10
apple: include holani core in App Store builds (#17190) 2024-11-19 00:18:24 -08:00
libretroadmin 2809421d4e Revert "static variables are initialized to '0' automatically as per C rules"
This reverts commit 2a0984b6e4.
2024-11-19 03:03:13 +01:00
libretroadmin 82e4504968 Revert "(pt. 2) static variables are initialized to '0' automatically as per C rules"
This reverts commit 47410df7a3.
2024-11-19 03:03:05 +01:00
libretroadmin 47410df7a3 (pt. 2) static variables are initialized to '0' automatically as per C rules 2024-11-18 15:59:46 +01:00
libretroadmin 2a0984b6e4 static variables are initialized to '0' automatically as per C rules 2024-11-18 15:33:34 +01:00
libretroadmin 62fd7e105d audio_driver_sample - fix potential crash 2024-11-18 14:21:18 +01:00
sonninnos 564dac40c8
XMB: Alpha adjustment for default basic icon (#17188) 2024-11-17 15:11:45 -08:00
github-actions 24b6f96ce5 Fetch translations from Crowdin 2024-11-17 00:16:05 +00:00
github-actions 38520faabf Fetch translations from Crowdin 2024-11-16 00:14:19 +00:00
github-actions 3d8c981ac9 Fetch translations from Crowdin 2024-11-15 00:15:36 +00:00
sonninnos e09039c77f
Disabled menu buildfixes (#17184)
* Disabled menu buildfixes

* Skip thumbnail features with menu disabled
2024-11-14 13:44:50 -08:00
Bernhard Schelling c039576441
Fix quick shift key presses getting ignored on dinput driver (#17185)
Because shift keys were ignored in the event message  and only issued during polling, a quick key press and release between polling would get ignored.
This change also fixes left alt up key events getting issued (and sent to the core) twice.
2024-11-14 13:44:41 -08:00
github-actions 61357712c1 Fetch translations from Crowdin 2024-11-14 00:14:39 +00:00
Antonio Orefice 2a56a827e8
Add Frametime Uniforms (#17155)
* Initial implementation of CoreAspect uniform

* float -> float_t

* Possibly fix wii_u building

* vulkan: use float instead of float_t;

* slangp: Advertise support of CoreAspect uniform
by defining _RARCH_HAS_COREASPECT_UNIFORM early in the shader source, just after "#extension GL_GOOGLE_cpp_style_line_directive : require"

* CoreAspect + glsl fix: use glUniform1f()

* Add CoreAspectRot uniform.
It reports CoreAspect value or 1/CoreAspect when the content is rotated by 90 or 270 deg.

* Fixed stupid typo

* Just use _HAS_COREASPECT_UNIFORMS to check for CoreAspect uniforms support (was _RARCH_HAS_COREASPECT_UNIFORMS)

* Rename CoreAspect, CoreAspectRot, _HAS_COREASPECT_UNIFORMS to OriginalAspect, OriginlAspectRot, _HAS_ORIGINALASPECT_UNIFORMS

* GLCore: void Pass::build_semantic_float needs glUniform1f.
...how on earth did it worked for UBO !?

* d3d10,11,12, wrong function called by overlook.

* Add test shader, will remove that before PR

* Fix metal rotated aspect reporting

* remove test shader

* Fix C89 Build

* Use OriginalAspectRotated instead of OriginalAspectRot

* Add CoreFPS and FrameTimeDelta Uniforms.
_HAS_ORIGINALASPECT_UNIFORMS is (#)defined and can be used to query for them.

* add test shader

* remote test shader

* Wrong paste.

* gx2: use float

* wrong indentation

* resolved merge conflict

* fix indentation

* Fix comment/Formatting

* Change uniform name from CoreFPS to OriginalFPS

* underliyng references: core_fps -> original_fps
2024-11-12 19:50:59 -08:00
github-actions 94525363f0 Fetch translations from Crowdin 2024-11-13 00:14:49 +00:00
github-actions 76cb1acefd Fetch translations from Crowdin 2024-11-12 00:14:23 +00:00
github-actions bb808dfc69 Fetch translations from Crowdin 2024-11-11 00:15:03 +00:00
sonninnos 8a853d53af
Set CLI content as last start content (#17179) 2024-11-10 15:02:10 -08:00
zoltanvb 2a6de277b1
Extend the sensor/pointer test screen (#17180)
Added extra edge indicators for special -0x8000 coordinates,
added touch press display, and fixed horizontal wheel display.
2024-11-10 15:02:00 -08:00
github-actions 7736237872 Fetch translations from Crowdin 2024-11-10 00:15:44 +00:00
Eric Warmenhoven 876cc19d49
griffin: include all audio filters (#17177) 2024-11-09 08:44:39 -08:00
sonninnos adade1b9da
Remove SD_FLAG_LAKKA_ADVANCED from custom viewport options (#17178) 2024-11-09 08:44:24 -08:00
github-actions 0e8d8c4811 Fetch translations from Crowdin 2024-11-09 00:13:43 +00:00
github-actions c752312a19 Fetch translations from Crowdin 2024-11-08 00:14:27 +00:00
sonninnos 522efc333c
Menu: Trigger scroll home+end on keyup (#17171) 2024-11-07 07:41:39 -08:00
LibretroAdmin e45bc853ec
Revert "Pointer confinement support (opt-in) (#17169)" (#17173)
This reverts commit 90ee413a81.
2024-11-07 07:31:47 -08:00
github-actions b3f3856db2 Fetch translations from Crowdin 2024-11-07 00:14:45 +00:00
zoltanvb 90ee413a81
Pointer confinement support (opt-in) (#17169)
New environment set call to enable a bit more sensible handling of
absolute pointing devices (pointer and lightgun). With the
confinement enabled, pointing devices will not return neither
-0x8000 nor (0,0), which was anyway dependent on the input driver,
instead they will stay at the extreme edge.
2024-11-06 15:19:08 -08:00
sonninnos ae202515f6
Integer scale crash fix (#17170) 2024-11-06 14:35:33 -08:00
sonninnos 767be489d9
Custom aspect ratio safeguards (#17168) 2024-11-06 11:06:21 -08:00
sonninnos c27075d9d6
Ignore other hotkeys with menu toggle (#17165) 2024-11-06 00:19:00 -08:00
github-actions c9fae44b03 Fetch translations from Crowdin 2024-11-06 00:14:28 +00:00
github-actions b0da8b1579 Fetch translations from Crowdin 2024-11-05 00:14:56 +00:00
sonninnos cd4bca9178
Core info page cleanup and firmware icons (#17153) 2024-11-03 18:14:53 -06:00
zoltanvb d5dd3689fc
Support for lightgun in Wayland input driver (#17152) 2024-11-03 18:14:41 -06:00
sonninnos 71ed81dc38
Integer scale Y axis half step tweak (#17154) 2024-11-03 18:14:27 -06:00
zoltanvb 3d221f2c99
Fix autoconf profile saving for devices not in their default port. (#17156)
User slot (player #) and joypad driver port is by default the same, but
it can be changed either manually or automatically (reserved device).
Use the correct index for detecting values associated with the port.
2024-11-03 15:59:30 -08:00
Eric Warmenhoven 7dfc001379
tvOS: bring minimum tvOS version of App Store builds back down to 13.0 (#17158) 2024-11-03 15:59:22 -08:00
Eric Warmenhoven f66d214b5c
macOS: default to https URLs for cores (#17159) 2024-11-03 15:59:15 -08:00
github-actions 02716844fd Fetch translations from Crowdin 2024-11-03 00:15:59 +00:00
sonninnos 273178b979
Integer scale X axis corrections (#17151)
* Integer scale X axis corrections

* Integer scale: Fall back to normal scale when content is larger than viewport
2024-11-02 09:40:11 -07:00
Antonio Orefice da5ecaa45a
Add OriginalAspect and OriginalAspectRot uniforms (#17123)
* Initial implementation of CoreAspect uniform

* float -> float_t

* Possibly fix wii_u building

* vulkan: use float instead of float_t;

* slangp: Advertise support of CoreAspect uniform
by defining _RARCH_HAS_COREASPECT_UNIFORM early in the shader source, just after "#extension GL_GOOGLE_cpp_style_line_directive : require"

* CoreAspect + glsl fix: use glUniform1f()

* Add CoreAspectRot uniform.
It reports CoreAspect value or 1/CoreAspect when the content is rotated by 90 or 270 deg.

* Fixed stupid typo

* Just use _HAS_COREASPECT_UNIFORMS to check for CoreAspect uniforms support (was _RARCH_HAS_COREASPECT_UNIFORMS)

* Rename CoreAspect, CoreAspectRot, _HAS_COREASPECT_UNIFORMS to OriginalAspect, OriginlAspectRot, _HAS_ORIGINALASPECT_UNIFORMS

* GLCore: void Pass::build_semantic_float needs glUniform1f.
...how on earth did it worked for UBO !?

* d3d10,11,12, wrong function called by overlook.

* Add test shader, will remove that before PR

* Fix metal rotated aspect reporting

* remove test shader

* Fix C89 Build

* Use OriginalAspectRotated instead of OriginalAspectRot
2024-11-02 04:04:12 -07:00
Eric Warmenhoven 99610f0de6
macOS: fix setting core download url based on rosetta (#17147) 2024-11-02 04:04:02 -07:00
Cathode Ray Dude e3a0973e30
Added check for filter_exts in compressed file case (#17149) 2024-11-02 04:03:50 -07:00
github-actions 5725e48081 Fetch translations from Crowdin 2024-11-02 00:13:43 +00:00
Eric Warmenhoven a51160a155
apple: small changes necessary to get ffmpeg record driver working (#17145) 2024-10-31 23:42:35 -07:00
github-actions b8b0de3716 Fetch translations from Crowdin 2024-11-01 00:16:20 +00:00
Eric Warmenhoven f175d0e091
tvOS: Add Settings.app option to reset retroarch.cfg (#17143) 2024-10-30 21:49:55 -07:00
Ninoh-FOX 89ca8495e1
better control for sound start/stop in menu is the core has RARCH_NETPLAY_CTL_USE_CORE_PACKET_INTERFACE (#17136) 2024-10-30 17:57:18 -07:00
sonninnos cbafa3b513
Integer scale 'smart' tweak (#17139) 2024-10-30 17:56:56 -07:00
sonninnos 8790178ae2
Win32: Filebrowser 'Show Hidden Files' corrections (#17140) 2024-10-30 17:56:47 -07:00
sonninnos 94f389ae30
Netplay Fade Chat label correction (#17141) 2024-10-30 17:56:38 -07:00
Bernhard Schelling cab85c6f8d
Menu support for loading directories as content if a core indicates supports for that (#17142)
A core needs to have "/" in its list of supported extensions to indicate support for loading directories.
If a core additionally supports the disk control interface, also support loading of directories as disk images.
2024-10-30 17:56:30 -07:00
Eric Warmenhoven 5cc9721ea3
Fix webos github action (#17138) 2024-10-30 09:38:19 -07:00
Eric Warmenhoven 1f99ba89ca
ios: buildfix (#17137) 2024-10-30 07:03:11 -07:00
Eric Warmenhoven cd574f7f33
tvOS: Add WebDAV server for adding files more easily (#17135)
Also update to latest (last) version of GCDWebServer.
2024-10-29 21:07:47 -07:00
github-actions 3b465be243 Fetch translations from Crowdin 2024-10-30 00:15:03 +00:00
Eric Warmenhoven 56810c4a46
apple: default to mfi controller instead of sdl2 (#17133) 2024-10-29 12:05:48 -07:00
Eric Warmenhoven a26f6f6b45
webdav: fixes for reauth and parallelism (#17132) 2024-10-29 12:03:46 -07:00
sonninnos 8ee6561a26
Vulkan: Use separate matrix for menu (#17134) 2024-10-29 12:03:37 -07:00
github-actions cb7cd6ef3b Fetch translations from Crowdin 2024-10-29 00:15:08 +00:00
Eric Warmenhoven f887ebe301
ios9: buildfix (#17131) 2024-10-28 16:38:19 -07:00
zoltanvb ede9ddcd05
Tests for pointer device and associated buttons. (#17130)
Sensor screen is extended with a pointer (a single white pixel)
and a few indicators for the mouse and lightgun buttons. Pointer
type is selectable from core options (mouse, lightgun, pointer,
old relative lightgun). An extra square indicator shows when
absolute pointer types get near the edge / to the very edge /
return to 0,0 position.
2024-10-28 14:33:17 -07:00
github-actions 320bd8b750 Fetch translations from Crowdin 2024-10-28 00:15:32 +00:00
Eric Warmenhoven dbf6c19209
macOS: generate up key event for command keys (#17124) (#17126) 2024-10-27 12:42:41 -07:00
Jamiras 758c61afbe
remove RC_CLIENT define (#17127) 2024-10-27 12:42:33 -07:00
github-actions a0bcf7945d Fetch translations from Crowdin 2024-10-27 00:15:59 +00:00
sonninnos c847b02206
Integer overscale GPU screenshot crash fixes (#17118) 2024-10-26 06:45:45 -07:00
Eric Warmenhoven 98c7f20eae
iOS: Fix some minor refresh issues (#17112) 2024-10-26 06:45:37 -07:00
Eric Warmenhoven b955a2ff8b
webdav: add logging around http transactions to try to track failures (#17114) 2024-10-26 06:45:17 -07:00
zoltanvb 55d6a036a7
Changes up to 2024-10-23 (#17116) 2024-10-26 06:45:02 -07:00
sonninnos 771dabbf56
Fix save state screenshot visibility (#17119) 2024-10-26 06:44:54 -07:00
zoltanvb 66eead3afa
Move cacert.h out of deps/, since it does not belong there. (#17122) 2024-10-26 06:44:45 -07:00
github-actions a118963dc9 Fetch translations from Crowdin 2024-10-26 00:14:01 +00:00
github-actions 562e4ba40f Fetch translations from Crowdin 2024-10-25 00:14:56 +00:00
github-actions be92b974d2 Fetch translations from Crowdin 2024-10-24 00:15:08 +00:00
github-actions 192c992725 Fetch translations from Crowdin 2024-10-23 00:14:50 +00:00
github-actions fe9d890331 Fetch translations from Crowdin 2024-10-22 00:14:55 +00:00
Antonio Orefice e1b2e29d51
slang shaders: add support for __has_include like C++17 macro. (#17109)
* slang shaders: add support for __has_include like C++17 macro.
This adds a new #pragma include_if_exist "filename" directive that acts like #include statements,
but does not return error if the file does not exists.

* removed unuseful define
2024-10-21 14:45:44 -07:00
pstef 790deebe42
Silence GCC 14 warning [-Warray-bounds=] (#17110)
* Silence GCC 14 warning [-Warray-bounds=]

GCC reports a couple of warnings like this example:
libretro-common/cdrom/cdrom.c:395:14: warning: array subscript 6 is outside array bounds of 'unsigned char[6]' [-Warray-bounds=]
  395 |       cmd[6] = cmd[3];
      |       ~~~~~~~^~~~~~~~
libretro-common/cdrom/cdrom.c: In function 'cdrom_unlock':
libretro-common/cdrom/cdrom.c:1268:18: note: at offset 6 into object 'cdb' of size 6
 1268 |    unsigned char cdb[] = {0x1E, 0, 0, 0, 0x2, 0};

The static analysis heuristic doesn't consider the fact that the writes to cmd[6] and later only happen under the condition that `if (cmd[0] == 0xBE || cmd[0] == 0xB9)` and that in all of those cases the array passed is wide enough. So this is a false positive.

Nevertheless, there seems to be an easy way to silence the warning without disabling it: just require all arrays passed to be at least 9 bytes long and explicitly set the size of those arrays that have been shorter to 9.

* Work around the requirement of C89

I used a C99 construct, but this is easy to work around
with a run-time check.

* Restore the check for non-null cmd

It was obsoleted in a previous version, but is needed back now.

---------

Co-authored-by: pstef <3462925+pstef@users.noreply.github.com>
2024-10-21 14:45:23 -07:00
github-actions fd9f242895 Fetch translations from Crowdin 2024-10-21 00:15:24 +00:00
github-actions 19b8946372 Fetch translations from Crowdin 2024-10-20 00:16:09 +00:00
github-actions ec4c11268b Fetch translations from Crowdin 2024-10-19 00:13:50 +00:00
Ninoh-FOX 09979e26b9
fixed audio drivers in RARCH_NETPLAY_CTL_USE_CORE_PACKET_INTERFACE (#17105)
* fixed audio drivers in RARCH_NETPLAY_CTL_USE_CORE_PACKET_INTERFACE

fixed audio problem with menu toggle with the new network fuction

* Fix type space
2024-10-18 13:10:42 -07:00
github-actions 9c7919dc58 Fetch translations from Crowdin 2024-10-18 00:14:45 +00:00
sonninnos 2b8d743a85
GLUI icon fixes (#17102) 2024-10-16 12:00:07 -07:00
sonninnos 73fc26c132
RGUI integer scale fix (#17099) 2024-10-15 19:08:58 -07:00
github-actions 73b9a5e899 Fetch translations from Crowdin 2024-10-16 00:14:56 +00:00
github-actions de38db7d10 Fetch translations from Crowdin 2024-10-15 00:14:20 +00:00
sonninnos 84b58dd001
Pixel perfect integer scaling improvements (#17098) 2024-10-14 14:44:10 -07:00
Joey Parrish b36d8da5d3
docs: Add missing command to emscripten docs (#17097) 2024-10-14 04:21:18 -07:00
neil4 f85c9693a0
Combine menu entries for RunAhead and Preemptive Frames (#17093) 2024-10-14 04:21:09 -07:00
github-actions f886f620df Fetch translations from Crowdin 2024-10-14 00:15:15 +00:00
github-actions 1e4b81c6b2 Fetch translations from Crowdin 2024-10-13 00:15:42 +00:00
Eric Warmenhoven d362c88ac2
osx: prefer moltenvk from retroarch-apple-deps (#17086) 2024-10-12 11:59:17 -07:00
Jamiras ec314b9e43
update to rcheevos 11.6 (#17088) 2024-10-12 11:59:08 -07:00
github-actions 228426880b Fetch translations from Crowdin 2024-10-11 00:14:36 +00:00
Eric Warmenhoven c60f4603cd
apple: Include vintaged stella2023 core in app store builds (#17085) 2024-10-10 04:57:19 -07:00
github-actions feb8dcede4 Fetch translations from Crowdin 2024-10-08 00:14:16 +00:00
LibretroAdmin c8fb1a2d6c
Update WiiU.yml 2024-10-07 03:39:12 -07:00
Eric Warmenhoven a565cae5d8
macOS: Update App Store packaging script (#17081) 2024-10-07 03:37:56 -07:00
github-actions 5d433adfc3 Fetch translations from Crowdin 2024-10-07 00:15:13 +00:00
Viačasłaŭ d544c78020
Bring the Chuncheon relay server back into intl (#17077) 2024-10-06 14:37:19 -07:00
github-actions 3c10575436 Fetch translations from Crowdin 2024-10-06 00:15:52 +00:00
Joe Osborn fbf2c70e0d
replay format extended to support external tools (#17042)
- replays now start each frame with the number of key events (8 bit
unsigned int, then key events) and the number of input events (16 bit
unsigned int, then the input events)
- this makes it possible to parse replay files without any core
loaded, and makes replays more portable if cores change their polling
strategies
- external tools can now parse replay files
- old (vsn 0) replays will still play back, but new (vsn 1) replays
will not play on old RA
- replay files grow faster now, with each input poll now taking 8
bytes instead of 2
2024-10-04 12:47:34 -07:00
Viačasłaŭ c84962a5e8
Fix displaying entry after renaming (#17072) 2024-10-04 12:47:12 -07:00
Eric Warmenhoven 4d999c24a8
macOS: fix steam automation build (#17073) 2024-10-04 12:46:59 -07:00
Eric Warmenhoven 7ae8597765
macOS: Create App Store build (#17074) 2024-10-04 12:46:51 -07:00
github-actions e1e341d003 Fetch translations from Crowdin 2024-10-04 00:14:42 +00:00
Eric Warmenhoven 48b71d5cf8
tvOS: Fix creation of frameworks for App Store build (#17070) 2024-10-02 17:32:58 -07:00
github-actions b112b5b9cc Fetch translations from Crowdin 2024-10-03 00:14:26 +00:00
bulzipke d5c6a4f997
Add east asian relay server (#17055) 2024-10-01 17:36:58 -07:00
sonninnos 5e2409471a
Dinput: Mouse pointer send proper return value instead of flag value (#17067) 2024-10-01 17:36:49 -07:00
Viačasłaŭ 3019b926c2
Fix typos (#17068) 2024-10-01 17:36:33 -07:00
Eric Warmenhoven ed574cd059
iOS/tvOS: Remove AltKit (#17069) 2024-10-01 17:36:02 -07:00
Eric Warmenhoven 1d2c9a8373
macOS: minor updates to GL build to fix compatibility with Xcode 16 (#17064) 2024-09-30 07:02:37 -07:00
github-actions f484ceffcf Fetch translations from Crowdin 2024-09-30 00:15:01 +00:00
Alex Kiraly 61e8dfc860
Enable Cloud Sync on Android (non-SSL) (#17060) 2024-09-29 11:12:26 -07:00
sonninnos 1cc2210185
Vulkan: Negative viewport position correction (#17063) 2024-09-29 11:12:12 -07:00
sonninnos 1e1b24c359
Show also current frame cache size in stats (#17056) 2024-09-28 23:53:26 -05:00
sonninnos 7cb1543edd
Use frame cache size in integer scaling instead of av info geometry (#17057) 2024-09-28 23:53:14 -05:00
Alex Kiraly d779654068
Disallow Cloud Sync with HTTPs when HAVE_SSL is disabled (#17059) 2024-09-28 23:52:54 -05:00
sonninnos ea9a086f82
MSVC buildfix (#17061) 2024-09-28 23:52:37 -05:00
github-actions 68c5b1f7a3 Fetch translations from Crowdin 2024-09-29 00:16:12 +00:00
github-actions d8927bea04 Fetch translations from Crowdin 2024-09-28 00:13:41 +00:00
Colin Kinloch 63bd0b75d5
Reapply "wayland: Commit viewport resizes (#16419)" (#17026) (#17030)
This reverts commit 3ee3f2ae52.

Removing roundtrips seems to keep things snappy whilst fixing COSMIC.
2024-09-27 14:37:47 -07:00
Joe Osborn abe7d01e74
Report replay frame number for active_replay stdout api (#17039)
This changes the replay movie's frame_ptr (a 20-bit number used to
point to a log of file offsets) into a frame counter, which is masked
against the 20-bit pattern for use in the file offset log but also
functions as a time index into the replay.  Right now that is reported
in `GET_CONFIG_PARAM active_replay` but in the future it could be used
to show how far into the replay we are during playback or how long the
replay is during recording.
2024-09-27 14:37:31 -07:00
gouchi 8a6eb2dfa8
Add Redox OS to the list of supported operating systems (#17040) 2024-09-27 14:37:20 -07:00
sonninnos ecd626ec5e
Automatic Frame Delay: More improvements (#17041) 2024-09-27 14:37:11 -07:00
Eric Warmenhoven 6403605f64
macOS: fix how vulkan gets linked/bundled (#17043) 2024-09-27 14:37:00 -07:00
Eric Warmenhoven 73439eeff8
iOS/tvOS: Add Beetle PC-FX to App Store build (#17044) 2024-09-27 14:36:53 -07:00
Eric Warmenhoven ea1b6852c5
apple: switch from MTKView to CAMetalLayer for vulkan (again) (#17045) 2024-09-27 14:36:45 -07:00
sonninnos 11103347c8
Fix playlist search index in XMB+Ozone (#17047) 2024-09-27 14:36:32 -07:00
Eric Warmenhoven d7839bbd7d
iOS: Let RApplication handle touch events when TouchMouse not enabled (#17046) 2024-09-27 14:36:22 -07:00
github-actions 443348f014 Fetch translations from Crowdin 2024-09-27 00:14:54 +00:00
github-actions cae587f7a6 Fetch translations from Crowdin 2024-09-26 00:14:05 +00:00
Eric Warmenhoven 10a1154b06
Avoid calling strlcpy when copying string onto itself (#17031) 2024-09-24 19:24:46 -05:00
Colin Kinloch c90f7aba6c
Use reverse DNS name for desktop file and icon (#16449)
Reverse DNS being com.libretro.RetroArch
2024-09-23 09:03:48 -07:00
Colin Kinloch ee55623678
wayland: Check for relative_pointer support (#17029) 2024-09-23 08:50:34 -07:00
alphabitserial 3ee3f2ae52
Revert "wayland: Commit viewport resizes (#16419)" (#17026)
This reverts commit 08496b302c.
2024-09-22 23:44:48 -07:00
github-actions c43bc65c7e Fetch translations from Crowdin 2024-09-23 00:14:44 +00:00
sonninnos 0c468f9a44
Honor 'perfcnt_enable' in logging (#17022) 2024-09-20 20:09:21 -07:00
sonninnos 4b177d0ac7
Refresh rate switching fixes and cleanups (#17021) 2024-09-20 20:09:02 -07:00
pastalian 4ce7dd6fd5
Explicitly cast to a pointer in wayland builds (#17019)
The build with `--enable-wayland --disable-kms` has a part where an
unsigned long is passed as a void*, but GCC 14 enforces
-Werror=int-conversion, causing the build to fail.
https://gcc.gnu.org/gcc-14/porting_to.html#int-conversion
2024-09-20 14:19:24 -07:00
github-actions 17c899fac3 Fetch translations from Crowdin 2024-09-20 00:14:10 +00:00
Eric Warmenhoven 187497eea8
Revert "apple: switch from MTKView to CAMetalLayer for vulkan (#16959)" (#17017)
This reverts commit 95d53183f5.
2024-09-19 11:48:40 -07:00
github-actions bec4107412 Fetch translations from Crowdin 2024-09-19 00:14:15 +00:00
sonninnos dbfb88721b
Automatic Frame Delay: Fix special overtime edge case (#17013) 2024-09-18 02:45:07 -07:00
sonninnos d08b867e7d
Fix pause toggle to not clear fast-forward state (#17010) 2024-09-17 10:23:12 -07:00
sonninnos 6713e3b7f7
(Vulkan) Prefer IMMEDIATE mode without vsync (#17009)
* (Vulkan) Prefer IMMEDIATE mode without vsync

* Clamp max_swapchain_images and hard_sync_frames

* (Vulkan) Improve fastforward frameskip option hack
2024-09-17 10:23:02 -07:00
github-actions 61a3397b67 Fetch translations from Crowdin 2024-09-17 00:12:22 +00:00
Eric Warmenhoven 1211b2d56a
Fix steam build (#17007) 2024-09-16 13:15:19 -07:00
libretroadmin bbfe078515 Reduce char arrays that are 8192 of size or bigger - reduce
them to PATH_MAX_LENGTH * 2 instead
2024-09-15 22:21:22 +02:00
github-actions b1aa7522fd Fetch translations from Crowdin 2024-09-15 00:15:17 +00:00
libretroadmin dc7473d046 See if this prevents some warnings 2024-09-15 00:03:48 +02:00
libretroadmin 0a396f0e71 Silence warning - second param for rc_alloc should be of type int32_t 2024-09-14 23:42:31 +02:00
Eric Warmenhoven b557bc9523
Fixing compiler warnings (#17001) 2024-09-14 13:11:20 -07:00
zoltanvb 39c48f7310
Support RETRO_ENVIRONMENT_GET_FILE_BROWSER_START_DIRECTORY (#17002) 2024-09-14 12:15:27 -07:00
ItsZariep 580efd41e4
Fix Selenium theme definition position (#17000) 2024-09-14 12:15:18 -07:00
neil4 53081f1794
Preemptive Frames updates (#17003)
* Preemptive Frames: input_poll and input_state improvements

- Check pointing devices when used by core; ignore input_libretro_device
- Use stored mouse x,y input state (lower level call might flush deltas)
- Remove port mapping code (unnecessary now)
- Fewer memsets

* Add Preemptive Frames to Qt options menu
2024-09-14 12:14:36 -07:00
github-actions 7601df9a4c Fetch translations from Crowdin 2024-09-14 00:13:13 +00:00
libretroadmin 71326a7eaa fill_pathnam_expanded_and_absolute - pass size parameter to function 2024-09-13 20:38:02 +02:00
libretroadmin bd8ed67205 Dehardcode size parameter for strlcpy call 2024-09-13 20:22:20 +02:00
Eric Warmenhoven 9135065bfc
Fix strlcpy being passed a length that's too long (#16998) 2024-09-13 11:11:24 -07:00
Eric Warmenhoven 381c3a5317
iOS/tvOS: flush save files on backgrounding (#16996) 2024-09-12 17:58:11 -07:00
github-actions 33c5c5341b Fetch translations from Crowdin 2024-09-13 00:14:00 +00:00
zoltanvb 05844c649f
Autoconfig extension with alternative name/vid/pid (#16990)
If there are several variants of a controller, but their button
layout is exactly the same, allow alternative identifiers, e.g.:
input_device_alt1
input_vendor_id_alt3
input_product_id_alt9
2024-09-12 11:50:46 -07:00
Eric Warmenhoven be7645024c
ozone: some fixes for better touchscreen handling (#16994) 2024-09-12 11:15:10 -07:00
Viačasłaŭ bb3e1d8be4
Make auto state while loading new content on the fly (#16835) 2024-09-12 08:24:03 -07:00
Eric Warmenhoven 2ecf5e79c5
apple: minor cleanup of Xcode project files (#16992) 2024-09-11 20:10:53 -07:00
Eric Warmenhoven 801a4af6f2
tvOS: better handling of siri remote (#16991) 2024-09-11 19:31:58 -07:00
github-actions 08dd2a8f7b Fetch translations from Crowdin 2024-09-12 00:14:19 +00:00
Eric Warmenhoven 6e2f0a4f30
apple: don't allow opening sdl2 microphone if not using sdl2 audio (#16989) 2024-09-11 12:33:41 -07:00
libretroadmin 14b1af9e1a Revert "Start reducing size of video_shader_pass struct to reduce"
This reverts commit 0ab10f73c2.
2024-09-11 19:17:20 +02:00
libretroadmin 787c1e1130 video_monitor_compute_fps_statistics - turn static 2024-09-11 17:23:28 +02:00
libretroadmin 23bd9686e5 Silence unused variable warnings 2024-09-11 15:48:43 +02:00
Vladimir Serbinenko dd489312ea
Enable chd hashing on libnx (#14034) 2024-09-11 06:29:59 -07:00
libretroadmin 8abe49abb4 Build with vendor-neutral OpenGL implementation by doing
./configure --disable-glx
2024-09-11 15:29:06 +02:00
Eric Warmenhoven 853c2cc14e
iOS: A few changes to fix/improve app store submission (#16988) 2024-09-10 22:13:25 -07:00
Jamiras a15d8d558a
(cheevos) use translated strings for achievement messages (#16987) 2024-09-10 23:31:34 -05:00
zoltanvb 4e063934fd
Add option to disable analog stick menu navigation (#16743)
Two new settings added to Settings / Input / Menu Control:
- disable left analog stick in menu navigation
- disable right analog stick in menu navigation

Since the corresponding logic is already a distinct logic flow in
input driver, no change was necessary to analog-to-digital settings
or the like.
2024-09-10 18:13:31 -07:00
Emanuel Haupt 7a0d568f04
Incorporate FreeBSD port patches (#16221)
This commit imports a series of patches from the FreeBSD port of RetroArch to
improve build compatibility and address specific issues encountered in the
FreeBSD environment. These patches, sourced from the FreeBSD Ports collection
(https://cgit.freebsd.org/ports/tree/games/retroarch/files), have been adapted
and tested to ensure they integrate seamlessly with the current build process.
2024-09-10 18:11:40 -07:00
Jay Paul e61b3ae2ba
Sort Remaps by Connected Controller (#16747)
* sort remaps by connected controller if option is enabled

* ensure dir name is valid based on input device name

* Fix comments

* Fix forbidden mixed declarations and code

* fixing build errors

* fix additional build warning/error

* Resolved code review change requests

* Changed strlcat to strlcpy as per recommendation

* Retrigger checks

* Use proper path separator.

* Ensure default value is toggled off.

* Ensure that gamepad device name is valid.
2024-09-10 17:39:35 -07:00
zoltanvb 8c2d2f5d74
Make individual thumbnail downloads obey filename match setting. (#16826) 2024-09-10 17:36:25 -07:00
Jason Breitweiser d4e5f7ac4b
Crash when pressing B button on playlists #16951 (#16971)
* Added check for null thumbnail path.  Applies to 16951

* Moved null check up the code to cover multiple accesses to the thumbnail path.

* Checked for null values before trying to get logo icons for playlists

* Rolled back the thumbnail_path_gfx changes and instead added
deinitialization of the icon thumbnails when a list was not a playlist.
2024-09-10 16:15:38 -07:00
libretroadmin 364d977027 (menU_driver) small cleanup 2024-09-11 01:13:50 +02:00
Eric Warmenhoven e38b9ff734
Fix scanning .chd files (#16986) 2024-09-10 15:47:37 -07:00
libretroadmin 4d88381481 Reduce some variables 2024-09-11 00:27:37 +02:00
libretroadmin d2eed0dabe Remove unused referenced variables 2024-09-10 23:39:14 +02:00
libretroadmin 5a539a31bd Transfer structs/enums over to task_screenshot.c 2024-09-10 23:17:19 +02:00
Eric Warmenhoven 4d20d08080
fix to avoid reacquiring a mutex reentrantly (#16985) 2024-09-10 12:03:04 -07:00
libretroadmin 8ba57c77e0 (winraw_input) Simplify code 2024-09-10 18:18:26 +02:00
libretroadmin 5892551f75 Avoid strlen calls in video_shader_replace_wildcards 2024-09-10 16:33:08 +02:00
libretroadmin 29f011acef * Inline find_last_slash
* explore_load_icons - fill_pathname_slash is equivalent to usage
of strlen here, no need to call strlen
2024-09-10 16:02:06 +02:00
libretroadmin 046c2375e7 Downsize big char arrays in shader structs - a lot of these get
allocated on the stack so this would cost a lot of memory
2024-09-10 07:03:50 +02:00
Eric Warmenhoven cfbfd01f38
iOS: Last bits of iOS 12 support, including loading an older MoltenVK library (#16982) 2024-09-09 21:27:29 -07:00
libretroadmin c961e79a0c Variable simplification 2024-09-10 06:25:00 +02:00
libretroadmin 3c23b2d04a (WASAPI) wasapi_write now one function, no more leaf function calls 2024-09-10 04:45:28 +02:00
libretroadmin 59ddb6731f Refactor WASAPI driver
- Use flags instead of bools
- Rewrite wasapi_write function
2024-09-10 04:12:10 +02:00
libretroadmin f2ad4071bc Buildfix for Android 2024-09-10 03:00:37 +02:00
libretroadmin 84508b2168 RARCH_LOG_V - lower char buffer from 2048 to 1024 2024-09-10 02:48:24 +02:00
libretroadmin f4ed638347 Rewrite libretro-common task_queue, use flags 2024-09-10 02:42:07 +02:00
libretroadmin 36bcbefc96 Cleanup some char variables - title variables will always be 128
in size
2024-09-10 00:15:23 +02:00
libretroadmin 285e38bd87 (video_shader_parse) Cleanups 2024-09-09 22:47:33 +02:00
libretroadmin 8db629ebae (Menu) Cleanups pt. 2 2024-09-09 22:18:23 +02:00
libretroadmin 6020877043 Cleanups 2024-09-09 22:01:37 +02:00
libretroadmin 13cf0fc79c Add more TODO/FIXME notes 2024-09-09 20:19:29 +02:00
libretroadmin 55f737195e (Winraw) Use flags 2024-09-09 19:06:43 +02:00
libretroadmin 0ab10f73c2 Start reducing size of video_shader_pass struct to reduce
massive size of video_shader struct
2024-09-09 18:28:38 +02:00
libretroadmin c79b02b1c8 Dehardcode some more variable sizes 2024-09-09 16:42:02 +02:00
libretroadmin 7f87a46744 More downsizing of variables 2024-09-09 16:18:32 +02:00
libretroadmin 27ffd4f00b Buildfix 2024-09-09 16:02:15 +02:00
libretroadmin 73e5d955c3 Downgrade some more variables to NAME_MAX_LENGTH 2024-09-09 16:01:29 +02:00
libretroadmin 998edca29d Update/rearrange settings struct and also add FIXME notes 2024-09-09 15:38:33 +02:00
libretroadmin fca38419f5 Add more TODO/FIXME notes 2024-09-09 15:34:32 +02:00
libretroadmin 0c91d77ae3 C89_BUILD buildfix 2024-09-09 15:27:52 +02:00
libretroadmin e675ea7e29 Variable cleanups - add TODO/FIXME notes for spurious variable sizes 2024-09-09 15:22:08 +02:00
libretroadmin 2be58b470d BUildfix 2024-09-09 05:51:20 +02:00
libretroadmin b8391e233f * PATH_MAX_LENGTH redefined from 4096 to 2048
* Massive reduction in heap space allocation, going from settings struct
264kb to 119Kb
* Use NAME_MAX_LENGTH for base paths/names, etc
* Use DIR_MAX_LENGTH for directory sizes
2024-09-09 05:47:32 +02:00
libretroadmin 01a9745f5b Settings struct now has a flags variable 2024-09-08 22:49:26 +02:00
libretroadmin 9efb498bde (config_file) Use flags 2024-09-08 18:12:12 +02:00
libretroadmin f4e2fbb660 (Menu/MaterialUI/RGUI) Integrate more bool flags into flags 2024-09-08 17:53:39 +02:00
Eric Warmenhoven 0d6b249dbc
iOS 9 build fix (#16980) 2024-09-08 07:59:19 -07:00
libretroadmin d60d320e76 Simplified parameter parsing to have all shader formats use the same slang method
(when HAVE_SLANG and HAVE_SPIRV_CROSS are defined) - backport of HyperSpaceMadness' PR
2024-09-08 15:25:40 +02:00
Eric Warmenhoven 42f66adbf2
iOS/tvOS: minor compiler flag optimization/cleanup (#16974) 2024-09-08 03:10:38 -07:00
Eric Warmenhoven d228c9d469
iOS: More fixes to enable running on iOS 12 (#16978) 2024-09-08 03:10:30 -07:00
zoltanvb 8562c16b4c
Fine-tune device reservation. (#16979)
- add reserved device check against device display name as well
- selected device name matching in menu with or without vid:pid
- cosmetical change in test input file
2024-09-08 03:10:21 -07:00
github-actions 5fcec5d342 Fetch translations from Crowdin 2024-09-08 00:14:53 +00:00
Jesse Talavera c0715fc420
Fix incorrect documentation for `retro_audio_sample_batch_t` (#16965)
retro_audio_sample_batch_t returns the number of processed frames, *not* samples.

- See `audio_driver_sample_batch` in `audio_driver.h`
2024-09-07 07:58:52 -07:00
github-actions c87a88f456 Fetch translations from Crowdin 2024-09-07 00:28:28 +00:00
Francisco Javier Trujillo Mata fe4a15b15c
Fix pthread support (#16970)
* enabled pthread usage

* unload modules before loading back
2024-09-06 15:45:15 -07:00
Eric Warmenhoven e34b57fd97
iOS: Add @available tags to enable compilation back to iOS 12 (#16969) 2024-09-06 14:57:36 -07:00
zoltanvb 17fefa7891
Invoke menu icon thumbnail loading only if needed. (#16966) 2024-09-06 11:33:06 -07:00
github-actions 5e14f7b914 Fetch translations from Crowdin 2024-09-06 00:13:57 +00:00
libretroadmin 22f4441cdd C89 buildfix 2024-09-05 17:44:05 +02:00
libretroadmin 0f7a665439 Resync libretro-common 2024-09-05 11:49:08 +02:00
libretroadmin 4b86886d30 (libretro-common) stdstring - get rid of these pointless functions 2024-09-05 11:44:57 +02:00
libretroadmin 8491aaf659 Shave off some bool variables from structs that are allocated a
lot on heap
2024-09-05 11:35:15 +02:00
libretroadmin 5fbb19ea85 Optimize some flag setting 2024-09-05 11:13:57 +02:00
libretroadmin 91516cdd49 (Menu input) Use flags 2024-09-05 10:58:29 +02:00
libretroadmin 99a763c4e8 Global - turn bools into flag 2024-09-05 10:05:57 +02:00
libretroadmin 070e018c6c (Playlist) Use flags 2024-09-05 09:50:11 +02:00
libretroadmin 239ea7ef0e (Ozone) Move some more bools into flags 2024-09-05 08:58:24 +02:00
libretroadmin 77eb564abc (menu_setting) turn default_value into flag 2024-09-05 08:35:58 +02:00
Antonio Orefice 139f461d06
Check for shader parameter step set to 0.0 and handle it outside the otherwise neverending loop; should fix #16958 (#16962) 2024-09-04 22:53:24 -07:00
Eric Warmenhoven 43e5492002
apple: to use the microphone apple requires we ask, and be entitled (#16964) 2024-09-04 22:53:06 -07:00
Eric Warmenhoven 60ee32b879
apple: display server, including ProMotion support (#16963) 2024-09-04 22:52:59 -07:00
github-actions 0c6a93311c Fetch translations from Crowdin 2024-09-05 00:13:49 +00:00
sonninnos 5ed4a3c291
Input reserved device menu item cleanup (#16946) 2024-09-04 04:01:33 -07:00
zoltanvb 98c79b3f14
Add savestate wraparound. (#16947)
When save state auto indexing is enabled, and maximum kept states
are limited, wrap around after reaching the configured maximum.

A gap in the indexing is used to keep track of most recent state.
If e.g. maximum kept amount is 5, then indexes 0..5 will be used,
if 3 is empty, most recent state is 2.
2024-09-03 22:01:41 -07:00
ItzSelenux cbfe2a7279
Add Selenium theme for Ozone (#16960) 2024-09-03 22:00:14 -07:00
Eric Warmenhoven 156b9f3487
iOS: Use BaseConfig xcconfig file, shared with macOS (#16955) 2024-09-03 19:02:08 -07:00
Eric Warmenhoven 95d53183f5
apple: switch from MTKView to CAMetalLayer for vulkan (#16959) 2024-09-03 19:02:00 -07:00
github-actions a32c43cc3a Fetch translations from Crowdin 2024-09-04 00:13:40 +00:00
github-actions 329b16d267 Fetch translations from Crowdin 2024-09-03 00:13:17 +00:00
Eric Warmenhoven 76026398ad
Update Vulkan headers to v1.1.130 (#16952) 2024-09-02 08:39:44 -07:00
zoltanvb 585e70ec6d
Updates up to 2024-08-31 (#16948) 2024-09-01 20:15:04 -07:00
github-actions 7e70851d38 Fetch translations from Crowdin 2024-09-02 00:14:07 +00:00
github-actions 3c93054f5b Fetch translations from Crowdin 2024-09-01 00:16:16 +00:00
michael-leroy 73b456e307
Fixes mouse cursor bug that prevents mouse movement when the left/right mouse button is held down. (#16942) 2024-08-31 04:54:20 -07:00
Eric Warmenhoven b3af19f65f
tvOS: Minor fixes to run correctly on tvOS 13 (#16944) 2024-08-31 04:54:11 -07:00
github-actions 810fe4545f Fetch translations from Crowdin 2024-08-31 00:13:44 +00:00
github-actions 3d272d4714 Fetch translations from Crowdin 2024-08-30 00:14:00 +00:00
sonninnos 3f8dc5c49d
Remove 'Frame Rest' (#16936) 2024-08-29 03:35:09 -07:00
github-actions fe870bc2e0 Fetch translations from Crowdin 2024-08-29 00:13:48 +00:00
github-actions 80a263eb4c Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
Ethan Lee b74932a05a
vulkan: VK_SUBOPTIMAL_KHR can be treated as success, not failure (#16930)
Fixes #16917
2024-08-27 10:23:10 -07:00
Eric Warmenhoven 4503b3989f
iOS: Better mouse grab (#16933) 2024-08-27 01:53:18 -07:00
sonninnos 391b46c3be
Automatic Frame Delay refactor (#16929) 2024-08-27 01:53:10 -07:00
github-actions a3f13b2268 Fetch translations from Crowdin 2024-08-25 00:14:13 +00:00
Jamiras 55057d7d5f
show rcheevos game image in discord rich presence (#16924) 2024-08-24 16:02:20 -07:00
Eric Warmenhoven 6cf338d91a
iOS/tvOS: Speed up app store builds by downloading cores in parallel (#16919) 2024-08-24 02:34:15 -07:00
Joe Osborn 439c672c22
Support viewport bias with integer overscale and custom aspect ratios (#16915)
* support integer overscale with bias and xy offsets

* support custom aspect ratios with viewport bias
2024-08-22 12:40:40 -07:00
Eric Warmenhoven 800be5530f
iOS: Better handling of physical mice/magic keyboard trackpad (#16911) 2024-08-22 12:11:16 -07:00
github-actions 47397f07a1 Fetch translations from Crowdin 2024-08-22 00:13:17 +00:00
Aleksander Mazur 35082c9538
Add simple WAV recording driver (audio only) (#16900)
Records unprocessed sound to a RIFF/WAVE (.wav) file,
up to 4 GB, no deps, no threads.
2024-08-21 12:57:45 -07:00
Jesse Talavera 518d719f38
Fix a build error on iOS (#16903)
- Includes certain newly-required headers
- Makes the use of the `IOS` macro consistent with other platform checks
2024-08-21 12:57:02 -07:00
github-actions fa0e6cc3ff Fetch translations from Crowdin 2024-08-21 00:13:05 +00:00
zoltanvb 57c17d559f
Use CLI shader path for shader dir init if present (#16196)
If shader is given on command line, use it for directory init.
Fixes #16181, shader cycle should now work using the dir of the
shader passed to CLI.
2024-08-19 09:55:20 -07:00
github-actions 819a9583cc Fetch translations from Crowdin 2024-08-19 00:13:27 +00:00
kwyxz fab86199a8
fixed warning + allow cli arguments on Haiku (#16887) 2024-08-17 09:58:49 -05:00
Eric Warmenhoven da8c0accd6
iOS/tvOS: Bring neon defines in line with macOS arm64 build (#16885) 2024-08-17 09:57:36 -05:00
hunterk 1e94c92dbf
improve GLES version directive granularity (#16888) 2024-08-17 09:57:17 -05:00
github-actions bf25bd9149 Fetch translations from Crowdin 2024-08-17 00:12:16 +00:00
Eric Warmenhoven b56547f9dd
macOS: optional library inclusion (#16877) 2024-08-15 15:27:26 -07:00
Eric Warmenhoven 5b04c060e1
glui: Honor menu_show_sublabels option (#16878) 2024-08-15 15:27:17 -07:00
Eric Warmenhoven 079ef42a40
cloud sync: fix bug from #16871 (#16879)
https://github.com/libretro/RetroArch/pull/16871/files#r1715823706
2024-08-15 15:27:09 -07:00
kwyxz 4016b2524b
Allow building RetroArch with menu disabled (#16881)
* allow building with --disable-menu --disable-cheevos --disable-qt --disable-slang

* allow building with cheevos while disabling menus and qt
2024-08-15 15:26:59 -07:00
Eric Warmenhoven 833bf2e616
iOS/tvOS: minor performance tweaks (#16882)
- it's ok to sleep in the foreground
- ios always has focus, otherwise it's not running
- don't keep reparsing strings
2024-08-15 15:26:51 -07:00
github-actions a759e60148 Fetch translations from Crowdin 2024-08-15 00:13:22 +00:00
github-actions 7157e265d2 Fetch translations from Crowdin 2024-08-14 00:13:18 +00:00
github-actions 5a576449cf Fetch translations from Crowdin 2024-08-13 00:13:52 +00:00
github-actions 25cd07b7c2 Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
Eric Warmenhoven 12def933dc
cloud sync: add options to sync thumbnails and system files, default off (#16869) 2024-08-11 13:12:35 -07:00
Eric Warmenhoven 9c5a95a126
cloud sync: speed up sync a bit by uploading/downloading in parallel (#16871) 2024-08-11 13:12:27 -07:00
kwyxz d4920e76a9
restore Haiku build (#16872) 2024-08-11 13:12:19 -07:00
Eric Warmenhoven b815848501
Optionally compile ffmpeg in griffin build (#16864) 2024-08-10 17:56:15 -07:00
Eric Warmenhoven fdf2faaf59
macOS: Don't include video/input drivers when compiling with SDL2 (#16865) 2024-08-10 17:56:03 -07:00
Eric Warmenhoven c579033abf
macos: fix hid driver crash on disconnecting controller second time (#16860) 2024-08-10 07:38:56 -07:00
github-actions 2290955e4c Fetch translations from Crowdin 2024-08-10 00:12:12 +00:00
Eric Warmenhoven efc09a1009
iOS/tvOS: Add opera core to App Store build (#16859) 2024-08-09 09:28:28 -07:00
github-actions d83775a6b7 Fetch translations from Crowdin 2024-08-09 00:13:14 +00:00
mahoneyt944 ef17034121
Fix sigterm (#16854) 2024-08-08 05:38:24 -07:00
github-actions 297b04edfd Fetch translations from Crowdin 2024-08-08 00:13:10 +00:00
Jason Breitweiser 11d9a841f3
This change allows playlist icons to be replaced with Logos. (#16758)
* This change allows playlist icons to be replaced with Logos. the art is loaded to the Thumbnail Named_Logos folder. It is treated the same as other thumbnails for naming and for automatic download. There is a settings menu option to turn it on and off. It is off by default. This only applies to the xmb menu driver.

* Removed commented out code against the style guide.

* Code cleanup for C89 compatibitity

* Cleaned up errors from Automated CI.

* Cleaned up comments.

* Update gfx_display.c

change strcpy to strlcpy

* Update gfx_thumbnail_path.c

fix code formatting

* Update xmb.c

code formatting changes
2024-08-07 08:39:57 -07:00
github-actions b14fc30d1a Fetch translations from Crowdin 2024-08-07 00:34:03 +00:00
zoltanvb d90e8c6a79
Bring CONTRIBUTING.md in line with current practices (#16841)
Added a few more places for submitting various issues.
Removed the extra logging instruction for Phoenix (project seems to be abandoned since years).
2024-08-06 17:03:49 -07:00
Eric Warmenhoven abffbb95d4
Allow compiling SDL2 drivers using griffin (#16843) 2024-08-06 17:03:36 -07:00
zoltanvb cef6da6a03
Missed a tiny bit of detail: actually deleting the file. (#16845) 2024-08-06 17:03:16 -07:00
Eric Warmenhoven d4cb4953a6
iCloud: fix storing variables that don't survive to the async callback (#16849) 2024-08-06 17:03:04 -07:00
Eric Warmenhoven 41b97e4688
tvOS: follow-up fix to #16741 (#16851) 2024-08-06 17:02:49 -07:00
Viačasłaŭ 204d9ff1b2
(Win32) Fix path to executable (#16852) 2024-08-06 17:02:36 -07:00
github-actions 571ae9f72e Fetch translations from Crowdin 2024-08-06 00:12:58 +00:00
github-actions 45b163547e Fetch translations from Crowdin 2024-08-05 00:13:40 +00:00
github-actions 0f367d795e Fetch translations from Crowdin 2024-08-04 00:13:58 +00:00
zoltanvb c057c8bfb2
Delete savestate thumbnails if needed (#16836)
Apply garbage collection also for the savestate thumbnails.
2024-08-02 22:23:39 -07:00
github-actions 38b3ba4e00 Fetch translations from Crowdin 2024-08-02 00:12:40 +00:00
zoltanvb 75c8c3c568
Fix a crash when switchres is used with videocore drivers. (#16822) 2024-07-30 17:33:25 -07:00
Eric Warmenhoven 394c396d89
iOS/tvOS: Add fastlane for TestFlight automation (#16824)
* iOS: Add fastlane for TestFlight automation

* tvOS: Add fastlane for TestFlight automation
2024-07-30 17:33:16 -07:00
Jamiras 9f7361c1bd
(cheevos) update to rcheevos 11.5 (#16827)
* update rcheevos

* revalidate config settings after game is loaded
2024-07-30 17:33:07 -07:00
github-actions 13dbb31f62 Fetch translations from Crowdin 2024-07-29 00:13:21 +00:00
github-actions c1f23a3b09 Fetch translations from Crowdin 2024-07-28 00:14:12 +00:00
Viačasłaŭ 33d9def3b3
(ffmpeg core) Fix audio buffer size (#16820) 2024-07-27 01:14:27 -07:00
github-actions 5510181e91 Fetch translations from Crowdin 2024-07-27 00:11:55 +00:00
Eric Warmenhoven 858148fbae
iOS: on iOS 18, enable game mode (#16817) 2024-07-25 22:27:19 -07:00
github-actions b476dd1c28 Fetch translations from Crowdin 2024-07-26 00:12:40 +00:00
negativeExponent 22d7fbd521
alsa_midi: Prevent some notes to linger when application is closed (#16815)
Appears to be enough to silence any lingering notes when midi is playing
and core is suddenly closed. Tried adding this on the core side but
midi_free comes first before retro_deinit/retro_unload_game so the
driver was already closed.

Another way to fix this in the core's side is to call 'flush'
immediately after any midi writes, but that doesn't appear to be the
api's design, flush is supposed to get called at the end of the
retro_run.

Im open for any better methods. but this should work for the issue
without causing other problems.

Co-authored-by: negativeExponent <negativeExponent@users.noreply.github.com>
2024-07-25 11:38:09 -07:00
zoltanvb b090f85620
Support for non-PNG local thumbnails (#16806)
Allow thumbnails (boxart, title, screenshot) to be loaded in any
other supported format as well, currently jpg, bmp, tga.

Support is for local thumbnails only, downloads are not changed.
PNG format is always preferred. Menu option added for control,
since trying for multiple thumbnail files may impact performance
on slow storage media.
2024-07-24 18:31:41 -07:00
github-actions 3f2ad22fce Fetch translations from Crowdin 2024-07-25 00:12:49 +00:00
zoltanvb e5e7e66199
Add sensor function placeholders for all joypad drivers. (#16812)
In some cases, set_sensor_state and get_sensor_input are
more related to the joypad driver, e.g. in desktop platforms
where sensors are associated rather with the joypad.

If input driver supports the sensors, it is still preferred.
Placeholder inserted for all input drivers, no functionality
added yet.
2024-07-24 15:13:16 -07:00
libretroadmin efbfe3610a (core_info.c) Cleanups 2024-07-24 09:55:34 +02:00
libretroadmin ac85405598 (gfx_animation.c) Small cleanups 2024-07-24 09:25:59 +02:00
hunterk 6b8025fdca
fix segfault with vulkan shaders (#16810) 2024-07-23 22:09:39 -07:00
github-actions eada7985f5 Fetch translations from Crowdin 2024-07-24 00:14:04 +00:00
libretroadmin 2c31de56ff Move XMB-specific line ticker code to xmb.c 2024-07-23 21:02:20 +02:00
negativeExponent 240e5eb9e5
winmm_midi: Fix midi_write_long_event unable to send sysex correctly (#16804)
data size has to be DWORD aligned.

Fix https://github.com/libretro/RetroArch/issues/16790

review before merge for confirmation/corrections:
@LibretroAdmin @zoltanvb and others
2024-07-22 19:08:29 -07:00
github-actions 3ba8171ed8 Fetch translations from Crowdin 2024-07-22 00:13:24 +00:00
libretroadmin c095b420d1 Move GL3 C code over to C file - put rest in extern "C" codeblock 2024-07-22 01:43:21 +02:00
libretroadmin b4e5a8fb70 Don't use std::min/std::max 2024-07-22 01:24:09 +02:00
libretroadmin c99c5399f5 Move C Vulkan code over from shader_vulkan.cpp to vulkan_common.c 2024-07-22 00:52:53 +02:00
zoltanvb 6e279814b9
Changes up to 2024-07-20 (#16800) 2024-07-21 15:42:09 -07:00
libretroadmin 907711db8c Don't use 'using namespace' 2024-07-22 00:34:57 +02:00
libretroadmin 3c45d78a95 Buildfix 2024-07-20 19:49:31 +02:00
libretroadmin 857d1e4ddb Buildfix 2024-07-20 19:46:34 +02:00
libretroadmin afc9cb509a CXX_BUILDFIX buildfixes 2024-07-20 19:42:45 +02:00
libretroadmin 60e0dd839a iC comments 2024-07-20 17:54:44 +02:00
libretroadmin 73afe24266 Use C comments instead of C++ comments for C files 2024-07-20 16:16:16 +02:00
libretroadmin 77a52bcec5 Silence warnings 2024-07-20 16:08:13 +02:00
libretroadmin e543aa25ae Silence some warnings 2024-07-20 15:46:26 +02:00
github-actions 019f256b17 Fetch translations from Crowdin 2024-07-20 00:12:39 +00:00
Eric Warmenhoven 63799385fc
iCloud cloud sync driver (#16794) 2024-07-18 22:02:52 -07:00
github-actions 39a2cecdc5 Fetch translations from Crowdin 2024-07-19 01:43:18 +00:00
Jamiras 1232a6ae6e
include rank on leaderboard submission notification (#16788) 2024-07-18 13:32:37 -07:00
Keith Bowes 4683e83d9a
Add support for mbedtls v3 (#16763)
v2 is not going to receive security fixes after 2024

Fixes #16672
2024-07-18 06:25:29 -07:00
Subs f1a37f7c75
Bump switchres to 2.2.1 (#16782)
* Remove switchres before bump

* Squashed 'deps/switchres/' content from commit 725e4d484a

git-subtree-dir: deps/switchres
git-subtree-split: 725e4d484a33632618dd44cdc2a61948dd833282
2024-07-18 06:25:07 -07:00
negativeExponent bd69602686 winmm_midi.c: Ditto for MEVT_F_SHORT
similar to MEVT_F_LONG, this too is full DWORD, though its value remains 0
2024-07-18 08:24:20 -05:00
zoltanvb d896d9379d Fix include paths (#16785) 2024-07-18 08:24:07 -05:00
negativeExponent 2dae318636 midi: Fix unneeded left shift for MEVT_F_LONG
MEVT_F_LONG is a DWORD type with a value of 0x80000000, so there is no need to left-shit it.
2024-07-18 08:23:24 -05:00
Joseph C. Osborn a7bc0ad68f Make custom aspect ratios under integer scaling respect xy offset
This makes them more usable.  I don't understand why it was ever
disallowed, can someone review and let me know?
2024-07-18 08:22:42 -05:00
Joseph C. Osborn 7e26eb37c6 fix custom aspect ratios for non-ydown drivers 2024-07-18 08:22:42 -05:00
Joseph C. Osborn 6701c0999b fake negative x/y viewport positions under vulkan
Since Vulkan doesn't support negative x or y viewport positions, this
patch concatenates a translation matrix to the projection matrix used in
Vulkan rendering. In this way, if a negative x or y coordinate would
be necessary, we can instead use a 0 coordinate and a
leftwards/upwards translation to achieve the same effect.  This seems
to work alright with overlays, so as far as I can tell this patch
seems sufficient to get the behavior we want?
2024-07-18 08:22:32 -05:00
github-actions 708a1469fb Fetch translations from Crowdin 2024-07-18 00:12:33 +00:00
github-actions 34e9f10dff Fetch translations from Crowdin 2024-07-17 00:13:11 +00:00
github-actions b502434839 Fetch translations from Crowdin 2024-07-16 00:13:22 +00:00
github-actions 249c05e100 Fetch translations from Crowdin 2024-07-15 00:13:26 +00:00
github-actions c208186df5 Fetch translations from Crowdin 2024-07-14 00:14:18 +00:00
ScoochAside 73ba25cea1 Fixed the same cropping issue but on the vertical axis 2024-07-13 13:04:02 -05:00
ScoochAside 4203c359a4 Removed unnecessary casts 2024-07-13 13:04:02 -05:00
ScoochAside 520199c10a Use more logical variables.
Added more resource cleanup, which fixes an unintended resizing bug that happened after taking a GPU screenshot.
2024-07-13 13:04:02 -05:00
ScoochAside 6a29b3b717 Fix issue #16776 2024-07-13 13:04:02 -05:00
github-actions 60fd45f5f9 Fetch translations from Crowdin 2024-07-13 00:12:41 +00:00
github-actions 93a5d05383 Fetch translations from Crowdin 2024-07-11 00:13:43 +00:00
github-actions 2f3a5df4db Fetch translations from Crowdin 2024-07-10 00:13:28 +00:00
github-actions ef2be4a80c Fetch translations from Crowdin 2024-07-09 00:12:30 +00:00
ScoochAside 6d2393c5f9 Added error logging for unsupported cases 2024-07-08 14:09:30 -05:00
ScoochAside e08826ee9b Removed unintentional newline 2024-07-08 14:09:30 -05:00
ScoochAside f63e6a959c Don't do anything if HDR is enabled
The current implementation does not produce the right results if HDR is enabled so let's bail out.
2024-07-08 14:09:30 -05:00
ScoochAside 22057bbb05 Added some pixel format checks
In my limited testing, the texture is always in the R8G8B8A8 format, but, just incase, added a check for it and if it isn't then bail out.
2024-07-08 14:09:30 -05:00
ScoochAside d6773ced37 Fix issue #6427 2024-07-08 14:09:30 -05:00
github-actions fa24a2d3d4 Fetch translations from Crowdin 2024-07-08 00:13:25 +00:00
zoltanvb 7db9a2de60 Test input driver and sensor test screen
A new input driver (test_input), similar to test joypad driver.
Takes its inputs from a json file provided in options. Supports
keyboard input and sensor input (accelerometer, gyroscope,
illuminance).

Remote Retropad extended with a sensor test screen.
2024-07-06 13:55:55 -05:00
libretroadmin 9abd8f3a3a Attempt to fix CI jobs 2024-07-06 20:04:13 +02:00
LibretroAdmin d05b3192e4
Update 3DS.yml 2024-07-06 10:56:24 -07:00
dependabot[bot] 83e8995252 Bump actions/setup-python from 4 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-06 11:57:12 -05:00
dependabot[bot] 778f900bbd Bump actions/setup-java from 3 to 4
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-06 11:57:01 -05:00
dependabot[bot] 188517bc3d Bump robinraju/release-downloader from 1.9 to 1.11
Bumps [robinraju/release-downloader](https://github.com/robinraju/release-downloader) from 1.9 to 1.11.
- [Release notes](https://github.com/robinraju/release-downloader/releases)
- [Commits](https://github.com/robinraju/release-downloader/compare/v1.9...v1.11)

---
updated-dependencies:
- dependency-name: robinraju/release-downloader
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-06 11:56:32 -05:00
github-actions 8968ecd988 Fetch translations from Crowdin 2024-07-06 00:11:38 +00:00
libretroadmin 7c6054573e (rhmap) use custom strdup 2024-07-06 00:00:29 +02:00
github-actions eea939429c Fetch translations from Crowdin 2024-07-05 00:12:17 +00:00
github-actions 4072dcfc8a Fetch translations from Crowdin 2024-07-04 00:12:29 +00:00
github-actions 71b6932039 Fetch translations from Crowdin 2024-07-03 00:12:33 +00:00
LibretroAdmin 5ee1e16595 Revert "Android: Improvements to DocumentProvider Added move and rename methods Provider notifies viewer to refresh view when files are changed Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class."
This reverts commit 72db30128c.
2024-07-01 20:40:48 -05:00
LibretroAdmin e91f9ab641 Revert "Android: Remove External Storage permission"
This reverts commit 850560d1b6.
2024-07-01 20:40:48 -05:00
LibretroAdmin 61d830eea2 Revert "Android: Add function to migrate RetroArch folder from sdcard."
This reverts commit b7235e426f.
2024-07-01 20:40:48 -05:00
LibretroAdmin 8b13a4ab0c Revert "Improvements to migration code Will be squashed before commit"
This reverts commit 3dab003b19.
2024-07-01 20:40:48 -05:00
cwyc 3dab003b19 Improvements to migration code
Will be squashed before commit
2024-06-30 20:31:23 -05:00
cwyc b7235e426f Android: Add function to migrate RetroArch folder from sdcard. 2024-06-30 20:31:23 -05:00
cwyc 850560d1b6 Android: Remove External Storage permission 2024-06-30 20:31:23 -05:00
cwyc 72db30128c Android: Improvements to DocumentProvider
Added move and rename methods
Provider notifies viewer to refresh view when files are changed
Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class.
2024-06-30 20:31:23 -05:00
github-actions 00b1e97c79 Fetch translations from Crowdin 2024-07-01 00:14:23 +00:00
libretroadmin 57c790646f Buildfix 2024-06-29 03:48:50 +02:00
libretroadmin 47ec7c0782 Try to avoid strdup to avoid portability issues 2024-06-29 03:46:06 +02:00
libretroadmin 40c889b562 Add header include for rhmap.h 2024-06-29 03:25:33 +02:00
github-actions fd8bb7b1ef Fetch translations from Crowdin 2024-06-28 00:12:41 +00:00
Eric Warmenhoven 83466994aa Fix #16562 support bluetooth keyboards on tvos 2024-06-27 18:33:48 -05:00
Jonathan Rascher 8935d9db1b Skip core unload when Quit on Close Content is set 2024-06-27 18:32:02 -05:00
github-actions f4a45a4dd9 Fetch translations from Crowdin 2024-06-27 00:12:53 +00:00
Joe Osborn 9489a11ead Use device ratio when determining portrait orientation 2024-06-26 08:45:29 -05:00
Joe Osborn f1b9df4faf Flip default y positive direction for viewport calc
This should fix metal and maybe some directx resizes
2024-06-26 08:45:29 -05:00
libretroadmin 9e171cb665 Add missing header 2024-06-26 15:40:29 +02:00
libretroadmin 3d40dff4f5 strtok_r - small syntactic cleanup 2024-06-26 15:38:09 +02:00
libretroadmin 5a2a6db589 (glslang) use strtok_r instead of strtok 2024-06-26 15:36:31 +02:00
libretroadmin 6319fa30c3 (menu_cbs_ok.c) Some cleanups, warning fixes, use strtok_r instead
of strtok
2024-06-26 15:30:45 +02:00
libretroadmin 58e2e581ec Silence warnings 2024-06-26 15:19:00 +02:00
libretroadmin db550e6ffe (D3D8) Fix build 2024-06-26 15:13:37 +02:00
github-actions 1ebe646198 Fetch translations from Crowdin 2024-06-26 00:12:27 +00:00
Jay Paul 8aa5fd2658 ensure that all folders are enabled by default. 2024-06-25 08:25:28 -05:00
Jay Paul c570a6a20a allow saves and configs to be optionally synced to cloud 2024-06-25 08:25:28 -05:00
zoltanvb 286d65b42e [X11] Support for mouse buttons 4 and 5
Support added for extra mouse buttons. Since these buttons were
not returned by XQueryPointer(), some additional logic was needed
which fit best to scroll wheel handling.
2024-06-25 08:18:51 -05:00
Joseph C. Osborn 00add4bb37 Fix build errors on wiiu, directx 2024-06-25 08:18:39 -05:00
Joseph C. Osborn 2805694378 Refactor viewport handling/aspect ratio scaling.
This mirrors the use of video_viewport_get_scaled_integer for
non-integer scaling at various aspect ratios.  Two variants are
provided, one with implicit device and desired ratios and one with
explicit ratios.

Also added a flag to video_viewport_get_scaled_integer to indicate the
direction of positive y.
2024-06-25 08:18:39 -05:00
Joseph C. Osborn 05faba73e3 Add config values and menu items for viewport bias x/y 2024-06-25 08:18:39 -05:00
schellingb e7c6d1df84 Fix keyboard events missing RETROKMOD_NUMLOCK or RETROKMOD_SCROLLOCK
- Add missing numlock mod to dinput
- Add missing scrolllock mod to x11
- Add missing capslock, numlock, scrolllock and meta mods to android
- Add missing scrolllock mod to sdl
- Add missing capslock, numlock, scrolllock and meta mods to switch
- Add missing numlock mod to winraw
- Add missing numlock mod to uwp
2024-06-25 08:18:29 -05:00
zoltanvb cc92ac7577 Fix exclusive fullscreen condition
Spotted in Android compilation:
warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
2024-06-25 08:18:07 -05:00
Ash Logan 27f337d5a0 (libretro-common) Use inline assembly for PowerPC libco
This puts the code into the binary's .text section, which is needed
for platforms without the ability to map it as RWX (WiiU). Using
GNU/AT&T syntax for the assembly here.
2024-06-25 08:16:52 -05:00
github-actions 929fa20348 Fetch translations from Crowdin 2024-06-24 00:13:51 +00:00
github-actions 7da8e28370 Fetch translations from Crowdin 2024-06-23 00:13:32 +00:00
github-actions 7830e8aa23 Fetch translations from Crowdin 2024-06-20 00:12:24 +00:00
zoltanvb 3b21273858 [Wayland] Support for mouse buttons 4&5 and horizontal wheel 2024-06-19 18:40:15 -05:00
github-actions e3bb6b7aa8 Fetch translations from Crowdin 2024-06-19 00:12:24 +00:00
Joseph C. Osborn e51a316cfd tidy up intfstream_truncate ifdefs. 2024-06-18 13:13:59 -05:00
Joseph C. Osborn 6104a9ad86 change some replay file seeks to seek+truncates in record mode 2024-06-18 13:13:59 -05:00
Joseph C. Osborn 42f066a842 add intfstream_truncate for file streams
Will return 0 for non-file streams.  I didn't want to mess around with
memory_stream (which could in theory have a truncate impl that sets
size) because there were globals and stuff and I got nervous (also
truncate might *grow* a file if the new length is longer than the old
one and then I'd have to think about realloc, etc).
2024-06-18 13:13:59 -05:00
libretroadmin ab9ee963cb Simplify gfx_animation_line_ticker_smooth 2024-06-18 09:40:20 +02:00
libretroadmin 6ac25079bf (menu_cbs_deferred_push) Get rid of string_list usage 2024-06-18 09:20:36 +02:00
github-actions e2b0d70ec0 Fetch translations from Crowdin 2024-06-18 00:12:46 +00:00
zoltanvb f1b96f620b Fix MSVC05 compilation failure 2024-06-17 17:48:27 -05:00
zoltanvb 2ca973770f Fullscreen refresh rate improvements
Handle refresh rate as float in general, and add also extra
attributes (interlaced, doublescan) for video modes.

Make it possible to select exact mode (interlaced / doublescan modes
will not be selected), and allow close matches such as 49.5 Hz
for PAL 50 Hz.
2024-06-17 13:29:40 -05:00
github-actions 622736e195 Fetch translations from Crowdin 2024-06-17 00:13:10 +00:00
libretroadmin 3fc7024df9 (cheevos) Cleanups - only use snprintf for formatting 2024-06-16 22:20:15 +02:00
libretroadmin 38f278519c Remove some header includes 2024-06-16 21:37:46 +02:00
rofl0r 843c816fc2 x11: add support for Xss screensaver disabling
in case xdg-screensaver isn't installed.
2024-06-16 12:54:42 -05:00
libretroadmin 3f0d3ec393 Replace more strlcats 2024-06-16 19:42:51 +02:00
rofl0r d3c14a6e3e CI: add github workflow to create source-only release tarball
closes #16645
2024-06-16 12:16:13 -05:00
libretroadmin c4685e8c31 Cut down on strlcats 2024-06-16 19:15:07 +02:00
libretroadmin c05ec27334 task_save_handler - rewrite code - put string on stack instead
of heap, avoid using strlcat
2024-06-16 18:44:08 +02:00
libretroadmin c722653c97 (steam) avoid strlcat usage 2024-06-16 18:20:04 +02:00
libretroadmin 54a24dc9d5 input_config_get_bind_string - do proper character
counting now, avoid strlcats, and have functions return
size_t value indicating how many chars were written
2024-06-16 18:07:30 +02:00
libretroadmin a303b7dcc6 Simplifications 2024-06-16 17:35:38 +02:00
libretroadmin a3217dfa40 (core_updater_list) Remove more string_list usage 2024-06-16 17:25:17 +02:00
libretroadmin 9d56016ad3 (core_updater_list) replace string_list usage with strtok_r 2024-06-16 17:11:06 +02:00
libretroadmin 850f1ff6f7 Put comment back 2024-06-16 16:56:19 +02:00
libretroadmin 4eb8b772ec (task_content.c) content_file_override_set - use strtok_r instead
of string_list
2024-06-16 16:54:57 +02:00
libretroadmin 36e9d4a79d (ozone) ozone_draw_osk - use strtok_r instead of string_list 2024-06-16 16:38:42 +02:00
libretroadmin 5a863652b6 (RGUI) rgui_update_menu_sublabel - use strtok_r instead of string_list 2024-06-16 16:21:18 +02:00
Eric Warmenhoven 24f8bd1638 iOS/tvOS: Add ardens and anarch cores to app store build 2024-06-16 08:40:24 -05:00
libretroadmin e2e6602ac2 Buildfix 2024-06-16 15:39:35 +02:00
libretroadmin 95be65d5a0 (gfx_animation.c) Use strlcpy 2024-06-16 15:36:35 +02:00
libretroadmin 3cdadbef8c (dylib.c) Avoid strlcat usage, camelcase variable name removal
and C comments
2024-06-16 15:10:11 +02:00
libretroadmin 0ced85b91d Get rid of some unnecessary strlcat usage 2024-06-16 15:09:31 +02:00
libretroadmin 37bcb4f093 Replace some strlcat usage with strlcpy 2024-06-16 14:52:26 +02:00
libretroadmin 3736aa963f (task_overlay) remove unused variable 2024-06-16 14:38:21 +02:00
libretroadmin 00e669b09a (task_overlay.c) No more string_list usage 2024-06-16 14:35:03 +02:00
libretroadmin a758b13fac (gfx_animation.c) Small cleanups 2024-06-16 14:21:38 +02:00
libretroadmin 57273faa5a Rewrite 2 of action_ok_rdb_entry_submenu - now with less
allocations
2024-06-16 13:52:28 +02:00
libretroadmin b8448274df Rewrite action_ok_rdb_entry_submenu - no more string_list usage 2024-06-16 13:44:46 +02:00
libretroadmin cfd9cbad8e Fix ST_STRING_OPTIONS 'selected' dropdown item - was off by one 2024-06-16 13:16:49 +02:00
libretroadmin 81a1079123 generic_action_ok_dropdown_setting - don't use string_list for
ST_STRING_OPTIONS
2024-06-16 12:52:22 +02:00
github-actions 1f1ff0aafc Fetch translations from Crowdin 2024-06-16 00:13:36 +00:00
libretroadmin d7d1011ab0 More string_list removal 2024-06-15 19:12:15 +02:00
libretroadmin 761d740e46 (menu_displaylist.c) More string_list removal 2024-06-15 18:00:22 +02:00
libretroadmin 1d47d24b5f (audio/common) Fix header includes 2024-06-15 16:55:01 +02:00
libretroadmin c741c9d9a9 Remove unused variables 2024-06-15 16:44:41 +02:00
libretroadmin f574a3a68e (archive_file) Don't know why this won't compile for MSVC -
<compat/posix_string.h> gets included which should redefine strtok_r
for MSVC usage but it just doesn't work and fails at linking stage, will have to figure this out
later
2024-06-15 16:34:19 +02:00
libretroadmin c02d8b8475 Slight change in header include 2024-06-15 16:28:30 +02:00
libretroadmin 0f5cdaf2f6 Include <compat/posix_string.h> for strtok_r MSVC compatibility 2024-06-15 16:11:26 +02:00
libretroadmin 59025e849f (menu_cbs_title.c) Remove string_list usage 2024-06-15 15:54:21 +02:00
libretroadmin 29c89a46f1 file_archive_get_file_list_cb - remove string_list usage 2024-06-15 15:35:26 +02:00
libretroadmin 1ef4be2280 (menu) More string_list removal 2024-06-15 15:04:05 +02:00
libretroadmin 962737c85a (playlist.c) Get rid of string_list usage 2024-06-15 14:15:36 +02:00
libretroadmin 01a7740f6f (menu_displaylist.c) Get rid of more string_list usage 2024-06-15 14:02:09 +02:00
libretroadmin 78acf23a9b More string_list removal in menu_displaylist.c 2024-06-15 13:40:22 +02:00
libretroadmin 827e631903 (libretro-common) Some functions now return len 2024-06-15 12:47:51 +02:00
libretroadmin 9e71a566cc Get rid of more instances of string_list in menu code 2024-06-15 07:06:36 +02:00
libretroadmin 7d1d8be14e Revert "Slim down glslang"
This reverts commit e53a809e6d.
2024-06-15 06:22:57 +02:00
libretroadmin a15317907d Revert "(glslang) Buildfix"
This reverts commit e0656d8ca3.
2024-06-15 06:22:42 +02:00
libretroadmin 18a1623517 Revert "Slim down custom glslang more"
This reverts commit 9dffcdfc93.
2024-06-15 06:22:27 +02:00
libretroadmin 2d4f31bc0a Revert "(glslang) Get rid of all asserts"
This reverts commit d2b161ee86.
2024-06-15 06:22:16 +02:00
libretroadmin 3401f124cc Revert "(glslang) Further slimming down/cleanups"
This reverts commit 0b29d52b67.
2024-06-15 06:22:01 +02:00
libretroadmin 1a0320ceb4 Revert "(glslang) Simplifications - move nullptr to NULL"
This reverts commit 354c5afab4.
2024-06-15 06:21:52 +02:00
libretroadmin e3e501a90c Revert "Get rid of unused variable"
This reverts commit ab4d54cb70.
2024-06-15 06:21:42 +02:00
libretroadmin 4db59d587e Revert "Third parameter of std::remove prob needs to be nullptr"
This reverts commit 1b161fad1d.
2024-06-15 06:21:34 +02:00
libretroadmin 6cc5c414da Revert "Cleanups - remove/silence warnings"
This reverts commit cf04a2c0fe.
2024-06-15 06:20:55 +02:00
libretroadmin 1257a10686 Revert "* Remove more unused code"
This reverts commit a8fe9b74da.
2024-06-15 06:20:41 +02:00
libretroadmin 9ec7eaeb8b Revert "(glslang) Syntax cleanups, other cleanups"
This reverts commit e480ebd29f.
2024-06-15 06:20:30 +02:00
libretroadmin 7a9679c7fd Revert "(glslang) Cleanups"
This reverts commit bdff6a146b.
2024-06-15 06:20:19 +02:00
libretroadmin 66ed1bd095 Revert "(glslang) Cleanups"
This reverts commit 5454b570e7.
2024-06-15 06:20:10 +02:00
libretroadmin 7af5cf5690 menu_displaylist_parse_core_option_dropdown - don't use string_list 2024-06-15 05:55:28 +02:00
libretroadmin de12f0bd28 action_get_title_dropdown_items - use strrchr instead of string_list 2024-06-15 05:41:12 +02:00
libretroadmin 8ef14e53b6 audio_driver_mixer_extension_supported - don't use string_list 2024-06-15 03:55:44 +02:00
libretroadmin 8b66d02db1 general_push - get rid of strlcat calls 2024-06-15 03:28:27 +02:00
libretroadmin 5a3000bcdf general_push - simplifications - less usage of string_list 2024-06-15 03:21:54 +02:00
That One Seong 4220ad0b7c udev mouse buttons 4/5 fixed
According to evdev docs, mouse side buttons are simply `BTN_4/BTN_5`?
2024-06-14 19:48:33 -05:00
libretroadmin df4d59c120 (cbs_deferred_push) Simplify general_push 2024-06-15 02:47:53 +02:00
libretroadmin 429479c0ca dump_to_file_desperate - use strlcpy 2024-06-15 02:47:53 +02:00
github-actions 7dab17e50c Fetch translations from Crowdin 2024-06-15 00:11:45 +00:00
libretroadmin e279592ce6 Cut down on some snprintf calls 2024-06-15 01:29:08 +02:00
libretroadmin c022e4e624 Cut down on snprintf 2024-06-15 00:56:51 +02:00
libretroadmin f423b62500 (Wii) Silence warning 2024-06-14 23:24:11 +02:00
libretroadmin dcd89f4280 Silence warnings 2024-06-14 23:11:47 +02:00
zoltanvb 926ba5c843 Force fullscreen in case of KMS display
Change GL2, GL3 and Vulkan drivers to behave as fullscreen if context driver
(such as KMS/DRM or KHR) does not support windowed mode at all.
Take it into account also for refresh rate switch.
2024-06-14 15:44:38 -05:00
Eric Warmenhoven 6068799080 apple: fix a couple preprocessor checks to be more consistent 2024-06-13 23:06:31 -05:00
github-actions 6b36fe8cf2 Fetch translations from Crowdin 2024-06-14 00:12:52 +00:00
libretroadmin af11f8f54c Use strlcpy when no formatting is required 2024-06-13 07:02:38 +02:00
libretroadmin 3e2e53ba7f snprintf - if no formatting is required then use strlcpy 2024-06-13 06:48:50 +02:00
libretroadmin 5d62510388 (cheevos) Use strlcpy where possible 2024-06-13 06:20:18 +02:00
libretroadmin 55b4ceec70 (WASAPI) WASAPI settings did not show up anymore 2024-06-13 03:53:20 +02:00
github-actions 25a8bc9a42 Fetch translations from Crowdin 2024-06-13 00:12:37 +00:00
Jamiras 79cfce6033 add rarity and points to achievement unlock widget 2024-06-12 13:18:01 -05:00
Jamiras dfcf0c042c fix rewind not working when RetroAchievements cannot identify game 2024-06-12 13:17:52 -05:00
github-actions af7f1f7f91 Fetch translations from Crowdin 2024-06-12 00:12:51 +00:00
github-actions 6e057abc8e Fetch translations from Crowdin 2024-06-11 00:12:40 +00:00
hunterk 65e8871250 restore some relative pointer stuff 2024-06-10 07:35:24 -05:00
hunterk c72f8613d8 revert abcd42777f
since it appears to be involved with a variety of input issues: https://github.com/libretro/RetroArch/issues/15757
2024-06-10 07:35:24 -05:00
github-actions 37c9c17133 Fetch translations from Crowdin 2024-06-10 00:12:54 +00:00
github-actions 5bc5a9fb73 Fetch translations from Crowdin 2024-06-09 00:14:24 +00:00
Thiago Seus 17fc346a36 Accessibility: change the is_screen_reader_enabled function name to lower case and match with the function name in Java code 2024-06-08 12:01:53 -05:00
Thiago Seus 216f55c7b2 Accessibility: Refactor Android is_narrator_running to align with the rest of RetroArch accessibility API 2024-06-08 12:01:53 -05:00
zoltanvb 49aeeee1f7 Cosmetical fix (xvfk -> xfvk), #16631 2024-06-08 11:17:42 -05:00
github-actions fa61d82553 Fetch translations from Crowdin 2024-06-08 00:12:41 +00:00
github-actions f07b3d7c95 Fetch translations from Crowdin 2024-06-07 00:12:49 +00:00
github-actions 9419f02d63 Fetch translations from Crowdin 2024-06-06 00:11:47 +00:00
zoltanvb a8d77f618c Better support for multiple reserved devices of the same kind. 2024-06-05 18:17:54 -05:00
zoltanvb a9968e9e86 Controller device reservation / preference.
For each player, 2 new options are added:
- a reservation type (no reservation, preferred, reserved)
- a reserved device name

When handling port - player assignments, reserved devices
will be assigned to the respective player port. If reservation
type is "reserved", no other device can take that port
automatically.

Reservation config option and matching function lifted from:
PatrickStankard https://github.com/libretro/RetroArch/pull/16269

Test joypad driver was extended for more tests.

Co-authored-by: Patrick Stankard <me@patrickstankard.com>
2024-06-05 18:17:54 -05:00
Eric Warmenhoven e9682cbbd6 Fix #16626 fix crash parsing truncated 7z file 2024-06-05 13:06:27 -05:00
Eric Warmenhoven aa36f75dba apple: Hide threaded video setting 2024-06-05 13:06:14 -05:00
Eric Warmenhoven 72eb860315 iOS: default vibrations on 2024-06-05 13:06:07 -05:00
David Hedlund cf6aef1706 Update README.md
Sort Platforms
2024-06-05 05:49:28 -05:00
LibretroAdmin fda4586886
Update CHANGES.md 2024-06-04 19:22:23 -07:00
github-actions 427e3fa6f6 Fetch translations from Crowdin 2024-06-05 00:12:18 +00:00
LibretroAdmin 0792144fe3 Revert "Revert "Tweaked limit, amended comment.""
This reverts commit f432cd3f78.
2024-06-04 13:26:41 -05:00
LibretroAdmin d244ee4d80 Revert "Revert "Increase save state chunk size for all platforms""
This reverts commit d51911fac3.
2024-06-04 13:26:41 -05:00
Mats a0208dd56c (WASAPI) Only write when running and fix deadlock 2024-06-04 13:26:08 -05:00
Eric Warmenhoven c978d7944a iOS/tvOS: Include DoubleCherryGB in AppStore build 2024-06-04 13:17:59 -05:00
libretroadmin 75c647d3ca Bump to version 1.19.1 2024-06-04 06:53:13 +02:00
LibretroAdmin d51911fac3 Revert "Increase save state chunk size for all platforms"
This reverts commit 9c4ac3546a.
2024-06-03 22:50:28 -05:00
LibretroAdmin f432cd3f78 Revert "Tweaked limit, amended comment."
This reverts commit c1bb2fd9a1.
2024-06-03 22:50:28 -05:00
github-actions dab84a13d6 Fetch translations from Crowdin 2024-06-04 00:12:13 +00:00
github-actions 1c44a1772d Fetch translations from Crowdin 2024-06-03 00:12:27 +00:00
Thiago Seus 22646d3e74 Accessibility: enable accessibility if Talkback is on 2024-06-02 14:49:19 -05:00
Thiago Seus b4ed4b58d6 Accessibility: add first Android version 2024-06-02 14:49:19 -05:00
github-actions 8b213d3c0d Fetch translations from Crowdin 2024-06-02 00:13:22 +00:00
github-actions 47dd4e7e75 Fetch translations from Crowdin 2024-06-01 00:12:38 +00:00
Eric Warmenhoven a13b0f090d wayland: build fix on older qt versions 2024-05-31 18:38:16 -05:00
Eric Warmenhoven 2f1dd3e84f tvOS: Fix menu button on siri remote 2024-05-31 17:56:48 -05:00
Reilly Brogan 7f3de64ef8 wayland: Fix Wayland appId 2024-05-30 22:54:50 -05:00
Eric Warmenhoven 0e9ea9fd47 tvOS: Fix NSO N64 controller 2024-05-30 22:54:29 -05:00
Eric Warmenhoven 754a194471 tvOS: revert MoltenVK to 1.2.7 to fix tvOS 13.4 2024-05-30 22:54:19 -05:00
github-actions f504676948 Fetch translations from Crowdin 2024-05-31 00:12:12 +00:00
MoistDreams 64680cbfef Package *.lck core lock file-extension.
Includes *.lck alongside the rest of the cores/$platform/cores so that bundled cores can be locked at time of publish.
2024-05-30 14:58:14 -05:00
libretroadmin 00b8a5f15c Bump to version 1.19.0 2024-05-30 05:03:48 +02:00
github-actions 95050c03be Fetch translations from Crowdin 2024-05-30 00:13:10 +00:00
Joe Osborn c1bb2fd9a1 Tweaked limit, amended comment. 2024-05-29 13:36:43 -05:00
Joe Osborn 9c4ac3546a Increase save state chunk size for all platforms
A rationale is given in the comments, but even a class 6 or class 10 SD card can handle reads and writes on the order of MB/s, which means a 4KB chunk size is just wasting time in syscalls.  This could maybe be fixed with a buffering reader but I don't feel comfortable tweaking libretro-common's VFS to handle that.  Instead, I thought it would be good to both remove an ifdef and increase the chunk size to 128KB.  For cores with small states this will should make state saving virtually instantaneous, and for cores with large states it should be a 32x speedup.
2024-05-29 13:36:43 -05:00
github-actions 3a56b73a31 Fetch translations from Crowdin 2024-05-28 00:12:30 +00:00
Eric Warmenhoven a537af010e iOS/tvOS: better way of reporting available memory 2024-05-27 08:16:42 +02:00
Eric Warmenhoven 52413260de iOS: default audio sync on again, also more mfi logging 2024-05-26 21:32:55 +02:00
Viačasłaŭ Chalikin 1e9db89154 Fix reinitialization of the threaded gl drivers 2024-05-26 21:32:29 +02:00
Tomáš Kelemen (vudiq) c4f84094c2 Lakka: provide update URL and target name at buildtime
it is more convenient to provide the URL via make option rather than
rely on hardcoded value in the code base. it provides more flexibility
in case of different servers for stable, daily, canary, community, ...

and instead of parsing a file in the filesystem to obtain target name of
the device on which lakka is running, we can provide the target name at
build time as well. the target name is used for the full path URL for
the download of updates.

there is no need to have these values editable via retroarch frontend
and saved in the config file. it is safer to provide them at build time
and have them set this way.
2024-05-25 00:26:22 +02:00
libretroadmin 5db932d366 gfx_widgets_draw_task_msg - get rid of one strlen 2024-05-24 04:03:45 +02:00
Eric Warmenhoven 77da47613e macos: default Accessibility on if VoiceOver is on 2024-05-24 03:40:18 +02:00
libretroadmin a6c82df0fd (task_database) Use size_t for size to prevent narrowing issue 2024-05-24 03:33:20 +02:00
github-actions ecc5c1809d Fetch translations from Crowdin 2024-05-24 00:12:36 +00:00
Eric Warmenhoven 07a03811a2 Another ios9 buildfix 2024-05-24 00:12:36 +02:00
libretroadmin 3e85a17d7a iFix warnings picked up by -fanalyzer 2024-05-23 23:50:23 +02:00
Eric Warmenhoven b38304cae5 iOS/tvOS: default accessibility on if voice over is enabled 2024-05-23 18:39:13 +02:00
libretroadmin 5454b570e7 (glslang) Cleanups 2024-05-23 18:18:11 +02:00
libretroadmin bdff6a146b (glslang) Cleanups 2024-05-23 16:55:39 +02:00
libretroadmin e480ebd29f (glslang) Syntax cleanups, other cleanups 2024-05-23 16:35:45 +02:00
libretroadmin a8fe9b74da * Remove more unused code
* Remove disassemble code
2024-05-23 08:24:02 +02:00
libretroadmin fc022d780d use C comments in C source files 2024-05-23 08:02:27 +02:00
libretroadmin 099a98bcd6 Some platforms need this, so can't remove it 2024-05-23 08:00:06 +02:00
libretroadmin cf04a2c0fe Cleanups - remove/silence warnings 2024-05-23 07:48:08 +02:00
libretroadmin 1b161fad1d Third parameter of std::remove prob needs to be nullptr 2024-05-23 07:35:52 +02:00
libretroadmin ab4d54cb70 Get rid of unused variable 2024-05-23 07:31:25 +02:00
libretroadmin 354c5afab4 (glslang) Simplifications - move nullptr to NULL 2024-05-23 07:25:52 +02:00
libretroadmin 0b29d52b67 (glslang) Further slimming down/cleanups 2024-05-23 07:25:51 +02:00
Eric Warmenhoven 8479d83a99 iOS/tvOS: Fix escaping the sandbox for jailbroken devices 2024-05-22 20:33:28 -07:00
Eric Warmenhoven eb3adeaf87 Fix build for osx opengl 2024-05-22 20:22:14 -07:00
Eric Warmenhoven 7c899fe005 fix ios9 build 2024-05-22 19:34:52 -07:00
libretroadmin d2b161ee86 (glslang) Get rid of all asserts 2024-05-23 03:58:54 +02:00
libretroadmin 9dffcdfc93 Slim down custom glslang more 2024-05-23 03:26:10 +02:00
libretroadmin e0656d8ca3 (glslang) Buildfix 2024-05-23 01:56:17 +02:00
libretroadmin e53a809e6d Slim down glslang 2024-05-23 01:53:15 +02:00
libretroadmin a74675a718 Remove unneeded ENABLE_HLSL code from glslang 2024-05-23 01:25:37 +02:00
Eric Warmenhoven 79b71179a5 macOS/iOS/tvOS: enable text-to-speech using AVSpeechSynthesizer.
Fixes #16532.
2024-05-22 13:29:48 -07:00
Eric Warmenhoven 87b643f487 Apple: Correctly register for filetypes uniquely 2024-05-22 13:21:56 -07:00
Eric Warmenhoven c1fec60f60 iOS/tvOS: fix keyboard handling for app store builds 2024-05-22 07:25:13 -07:00
Tomáš Kelemen (vudiq) 8dafa0ce0d add cast to void** to fix build with gcc14 2024-05-22 04:48:56 -07:00
Tomáš Kelemen (vudiq) 295de90327 add missing include to fix build with gcc14 2024-05-22 04:48:56 -07:00
Tomáš Kelemen (vudiq) 0f89425ed6 add missing include to fix build with gcc14 2024-05-22 04:48:56 -07:00
github-actions 8792d28f52 Fetch translations from Crowdin 2024-05-22 00:11:56 +00:00
Eric Warmenhoven d24b7955a5 tvOS: Fix packaging by reverting the name 2024-05-20 22:29:01 -07:00
github-actions f33f00ba05 Fetch translations from Crowdin 2024-05-21 00:11:56 +00:00
Electric Worry fdd010aebc Fix clang error incompatible-pointer-types-discards-qualifiers 2024-05-20 09:44:55 -07:00
Electric Worry b630e6b5f9 Memory leak: Dynamic allocation from msg_hash_get_help_us_enum was not freed. 2024-05-20 09:44:55 -07:00
Eric Warmenhoven e9e5868a8f iOS/tvOS: Creation of App Store build configuraiton 2024-05-20 00:22:51 -07:00
Eric Warmenhoven 529d6f78d0 iOS/tvOS: Clean up Xcode project file 2024-05-19 21:50:31 -07:00
github-actions 00baa88731 Fetch translations from Crowdin 2024-05-20 00:12:07 +00:00
zoltanvb b37debff13 Fix for scanning PSP ISOs (and probably few others) 2024-05-19 12:23:25 -07:00
Bernhard Schelling e27fcf64a8 (Win32) Fix numlock/pause key release events
On Win32, the numlock and pause keys need special handling. But the existing code did only handle it correctly for pressing and not releasing. It separately called GetKeyState for the two keys which only returned true while pressing a key and not while releasing it. This then caused the releasing of the pause key to be treated as releasing the numlock key and vice versa. This fix handles releasing the two keys correctly.
2024-05-19 12:23:07 -07:00
Eric Warmenhoven caeb3fafdc tvOS: Fix scaling for 720p 2024-05-19 12:22:33 -07:00
Eric Warmenhoven 329cf5cbff iOS/tvOS: define PACKAGE_VERSION to be App Store MARKETING_VERSION 2024-05-19 12:22:26 -07:00
github-actions 741e7f82af Fetch translations from Crowdin 2024-05-19 00:13:21 +00:00
aerisarn fe5c9a37a5 Update README.md
Fix URL
2024-05-17 14:40:49 -07:00
e.canepa 448dea5beb UWP 4K fix: align MESA reading of ClientRect to retroarch procedure, this fixes max resolution being set to 1080p. As reading must be done inside an UI thread and is in fact an async operation which might delay frame generation, the reading itself is doen once and cached, give that changing resolution while the app is running is an unlikely corner-case use 2024-05-17 14:40:49 -07:00
Edoardo Canepa e0537c0548 Align MESA to alpha-2-resfix
Remove wrong resolution special handling for OPENGL
2024-05-17 14:40:49 -07:00
Eric Warmenhoven ee8d8b1689 iOS/tvOS: Post Apple App Store fixes
- both: default VRR true
- tvOS: default overlay off
- tvOS: default directory fix
- both: default language fix
- tvOS: jit support fix
2024-05-17 14:38:35 -07:00
Carlo Refice fed2e10d97 Implement HDR readback 2024-05-17 14:10:29 -07:00
Rob Loach ae84c590de
libretro: Fix documentation for RETRO_GET_MIDI_INTERFACE (#16541)
As pointed out by @bbbradsmith in https://github.com/libretro/libretro-common/issues/209 , `RETRO_ENVIRONMENT_GET_MIDI_INTERFACE` is a pointer to a struct, rather than a struct array. This updates the documentation to reflect that.

Fixes https://github.com/libretro/libretro-common/issues/209
2024-05-17 10:01:27 -07:00
Rob Loach 41db4b022a
vfs_implementation: Fix warning of unused `include_hidden` parameter (#16540)
This fixes a warning of the `include_hidden` parameter not being used outside of `_WIN32`.

```
vfs/vfs_implementation.c:1063:30: error: unused parameter ‘include_hidden’ [-Werror=unused-parameter]
 1063 |       const char *name, bool include_hidden)
      |                              ^
cc1: all warnings being treated as error
```
2024-05-17 08:12:33 -07:00
Rob Loach 395f925941
libretro-common: Fix redefinition warnings of _POSIX_C_SOURCE (#15748)
Small fix to only define `_POSIX_C_SOURCE` if it's not already defined.

```
rthreads/rthreads.c:25: warning: "_POSIX_C_SOURCE" redefined
```
2024-05-16 16:05:58 -04:00
github-actions ec8358c783 Fetch translations from Crowdin 2024-05-16 00:12:17 +00:00
Jamiras d3475686bd
fix hardcore acting as if it's enabled when it isn't (#16530) 2024-05-15 07:23:43 -07:00
Eric Warmenhoven ce6dbcd7e8
macOS: Qt still builds, if you set QT_INSTALL directory correctly (#16527) 2024-05-14 19:51:45 -07:00
github-actions e2961dfc37 Fetch translations from Crowdin 2024-05-15 00:12:15 +00:00
github-actions c1a2e21447 Fetch translations from Crowdin 2024-05-14 00:12:21 +00:00
Eric Warmenhoven 81f7aecad4
macOS: use xcassets instead of icns file for app icon (#16524) 2024-05-13 12:04:05 -07:00
Tomáš Kelemen 2c96b97324
display reboot/shutdown message also when not saving config on exit (#16506)
the reboot / shutdown message should be displayed regardless if config
file is saved on exit or not.
2024-05-13 11:34:34 -07:00
rt001-hub 5e45b2330b
Update pixman-private.h (#16516)
patch to fix build issue with musl
https://lore.kernel.org/buildroot/569BA820.6040300@scalemp.com/
2024-05-13 07:29:50 -07:00
Viačasłaŭ Chalikin 9ad2cc2bc6
Fix crash when using threaded video (#16518)
for Mesa 23.2 and later
2024-05-13 07:24:51 -07:00
Eric Warmenhoven 04baed2aff
macOS: appstore: restore copying audio/video filters (#16521) 2024-05-13 07:24:45 -07:00
Eric Warmenhoven 7a44fb94a6
iOS: Display app icon in app icon picker in materialui (#16520) 2024-05-12 22:52:52 -07:00
github-actions f3b6093941 Fetch translations from Crowdin 2024-05-13 00:12:34 +00:00
Eric Warmenhoven 807ba974d3
Fix packaging: preserve symlinks (#16515) 2024-05-12 05:39:50 -07:00
zoltanvb 198656eb20
Add support for multimedia keys (#16502)
Extended RETROK_ values with 18 new items, commonly found on
"multimedia" keyboards.

Mapping added for SDL, X11, Wayland, dinput, winraw keymaps.

Keyboard tester function of Remote Retropad extended to cover new keys.

One fix in Android mapping for #12986
2024-05-11 17:06:54 -07:00
Eric Warmenhoven 5bac6c6aac
Add Galician and Norwegian to list of languages (#16510) 2024-05-11 16:57:54 -07:00
Jamiras 2013370aa9
update to rcheevos 11.3 (#16512) 2024-05-11 16:57:36 -07:00
Eric Warmenhoven 76b5d40954
macOS: updates for app store submission (#16514) 2024-05-11 16:57:29 -07:00
github-actions 6bc4e24d74 Fetch translations from Crowdin 2024-05-11 00:12:15 +00:00
github-actions ee5f64d822 Fetch translations from Crowdin 2024-05-10 00:12:31 +00:00
Robert-André Mauchin bff678c48a
Add compatibility with FFMPEG 7.0 (#16499)
channel_layout has been replaced with ch_layout

Fix: #16437
2024-05-09 11:31:17 -07:00
Eric Warmenhoven a2a7c666fb
iOS/tvOS: some updates for packaging for app store (#16508) 2024-05-09 09:54:28 -07:00
github-actions 79fc73f0de Fetch translations from Crowdin 2024-05-09 00:12:12 +00:00
Eric Warmenhoven 55be94212a
macOS: MoltenVK as xcframework (#16507) 2024-05-08 16:41:15 -07:00
github-actions bbc58eb4bb Fetch translations from Crowdin 2024-05-08 00:10:45 +00:00
github-actions ea5697c006 Fetch translations from Crowdin 2024-05-07 00:12:11 +00:00
github-actions 9ab6c62fc7 Fetch translations from Crowdin 2024-05-06 00:12:25 +00:00
zoltanvb 3092740312
Fix socket close method (#16494)
Use the platform independent socket close function from same place where all other socket communication is used from.
2024-05-05 03:48:37 -07:00
sonninnos 17b9324a24
Cleanup 'Add to Playlist' (#16495) 2024-05-05 03:48:20 -07:00
Eric Warmenhoven 24c378da4e
iOS: fix #16485 crash on startup (#16498) 2024-05-05 02:29:27 -07:00
github-actions 711bf39155 Fetch translations from Crowdin 2024-05-05 00:12:50 +00:00
Brad Smith d55f95f056
Windows mouse ungrab must release the mouse instead of confine it to the current desktop (#16488)
* Windows mouse ungrab should release the cursor, instead of confining it to the current screen.

* conform to style
2024-05-04 06:10:57 -07:00
zoltanvb 28189a04a4
Analog button and keyboard tester. (#16390)
Added analog button indication for those buttons that may have use for it
- primarily L2/R2, but support was added for all buttons where at least
one controller is known to support it. Added also core option to hide
mismatching inputs where analog value is not sent (like keyboard
hotkeys assigned to retropad buttons). Analog button inputs are not
set up for remote transmission, only for local test.

Analog axes have now also dynamic coloring.

Added a keyboard tester screen which includes a standard 102-key PC
keyboard + extra blocks for all RETROK_ values present in the code.
Screen adapted from DOSBox-Pure onscreen keyboard with permission.
Keyboard button A+B switches between the two screens. Keyboard
inputs are not set up for remote transmission, only for local test.
Core option added to select start screen.

Other small improvements: core reset will take new option values,
input driver applies received values more carefully.
2024-05-04 00:33:25 -07:00
github-actions 8741e7b9f0 Fetch translations from Crowdin 2024-05-04 00:11:41 +00:00
github-actions ab04f8a7a2 Fetch translations from Crowdin 2024-05-03 00:12:17 +00:00
github-actions faec215337 Fetch translations from Crowdin 2024-05-02 00:12:09 +00:00
github-actions 7d57f00be3 Fetch translations from Crowdin 2024-05-01 00:12:52 +00:00
Eric Warmenhoven 0415ed2f95
apple: Use C function from CoreFoundation instead of ObjC from Foundation (#16476) 2024-04-29 18:30:56 -07:00
Eric Warmenhoven 217c83d893
apple: improved Nintendo Switch Online controller support through mfi (#16477) 2024-04-29 18:30:34 -07:00
Eric Warmenhoven e7f726bd19
iOS: import roms from iCloud (#16478) 2024-04-29 18:30:15 -07:00
Dionoid c04bbd6d65
Added M2000 to core selection dropdown (#16479) 2024-04-29 18:29:39 -07:00
github-actions 8a52f1e1b5 Fetch translations from Crowdin 2024-04-30 00:11:26 +00:00
github-actions d1b3902790 Fetch translations from Crowdin 2024-04-29 00:12:14 +00:00
github-actions d1b239ec8b Fetch translations from Crowdin 2024-04-28 00:13:22 +00:00
Eric Warmenhoven 4d4a5c2f72
apple: try to use system preferred language (#16472) 2024-04-27 10:42:02 -07:00
github-actions 36abf7a8cc Fetch translations from Crowdin 2024-04-27 00:11:28 +00:00
github-actions d310f834e6 Fetch translations from Crowdin 2024-04-26 00:12:01 +00:00
sonninnos 5e79dd4569
Bring back audio toggling on menu toggle (#16467) 2024-04-25 10:10:39 -07:00
Eric Warmenhoven 70ac6d9541
iOS/tvOS: Better way of packaging Frameworks (#16468) 2024-04-25 10:09:58 -07:00
github-actions 89e0dadf90 Fetch translations from Crowdin 2024-04-25 00:11:23 +00:00
Eric Warmenhoven d6ceb3d15c
iOS/tvOS: Fix a couple more path name mangling bugs (#16465) 2024-04-24 10:18:47 -07:00
sonninnos e2a1e6024a
Video sync option label cleanup (#16466) 2024-04-24 07:04:49 -07:00
Eric Warmenhoven 6df643d138
iOS/tvOS: MoltenVK for simulators (#16463) 2024-04-23 21:35:55 -07:00
github-actions a8b2578358 Fetch translations from Crowdin 2024-04-24 00:11:43 +00:00
Alex Kiraly a79755eaff
Enable Cloud Sync on WebOS (#16461) 2024-04-23 16:57:56 -07:00
Alex Kiraly c644487d8f
Enable Cloud Sync by default on Linux builds with network (#16456)
* Enable by cloudsync by default on Linux builds with network

* Make WebDAV C89-friendly
2024-04-23 16:57:38 -07:00
Eric Warmenhoven c0366aba06
Apple misc (#16462)
* iOS/tvOS: Hide MoltenVK from Core List, again

* iOS/tvOS: Don't show certain core management options

* apple: Manage macOS/iOS/tvOS from one workspace

* iOS/tvOS: update-cores.sh tweaks
2024-04-23 15:53:35 -07:00
sonninnos fc6d251be9
Fix save new config name when core loaded (#16458) 2024-04-23 09:54:04 -07:00
sonninnos 2b8c8f1145
Core info logging reformat (#16459) 2024-04-23 09:53:50 -07:00
sonninnos 87a339c3c9
Set compute fps stats logging to debug level (#16460) 2024-04-23 09:53:35 -07:00
libretroadmin 6c303be476 Fix core config saving 2024-04-23 18:52:56 +02:00
Eric Warmenhoven 9df59e4044
iOS/tvOS: fix framework creation (#16455) 2024-04-22 19:39:47 -07:00
github-actions 0398e4845d Fetch translations from Crowdin 2024-04-22 00:12:25 +00:00
github-actions 016ce34ae4 Fetch translations from Crowdin 2024-04-21 00:13:00 +00:00
Rob Loach bc53b2bc6b
Add a debug message for the SET_ROTATION callback (#16454) 2024-04-20 14:38:13 -07:00
Rob Loach e510e92d79
remove-set-rotation-message (#16453)
Whenever `SET_ROTATION` is called, it outputs an INFO message in the logs. Can get quite busy. I'm assuming this was here during someone's debugging?
2024-04-20 05:05:26 -07:00
zoltanvb 30c8e31e53
Changes from 03-27 to 04-18 (#16447) 2024-04-19 07:12:23 -07:00
Eric Warmenhoven 867d3a92af
iOS/tvOS: fix Import Content (#16450) 2024-04-19 07:12:13 -07:00
Eric Warmenhoven ca904a3f5d
iOS/tvOS: MoltenVK 1.2.8, and fix mame core signing (#16452) 2024-04-19 07:11:49 -07:00
github-actions 4a86255363 Fetch translations from Crowdin 2024-04-19 00:11:32 +00:00
Carlo Refice adaa19cbf7
vulkan: Add support for A2R10G10B10 HDR format (#16435) 2024-04-18 07:34:46 -07:00
Eric Warmenhoven 970f404392
build fix (#16446) 2024-04-18 06:09:46 -07:00
BAXY Square ac79b43cb9
Add FlatUX Theme, Remove Retired Themes (#16441)
* Add FlatUX Theme, Remove Retired Themes

With some help from @gouchi, I decided to try and add the FlatUX theme, which has been in the retroarch-assets repository for years.  FlatUX was designed to merge the FlatUI and Retroactive themes into a single, unified design.

With the addition of FlatUX, the Retroactive and Neoactive themes will be retired. This PR removes them both from the menus. The theme files will be removed from retroarch-assets, but are archived on baxy-retroarch-themes.

* Edited Language Files to Add FlatUX, Remove Retired Themes

Edited the language files to Add FlatUX and remove the Retroactive and Neoactive themes.

* Fixed Language Files Again

I apologize for my errors.  Let's see if this gets it right.

* Updated IT Language File
2024-04-18 03:10:56 -07:00
Eric Warmenhoven 5fd4eb905c
iOS QOL improvements (#16444)
* iOS/tvOS: bundle cores as frameworks as opposed to dylibs

* iOS/tvOS: update plist to indicate controller support

* iOS/tvOS: living within the sandbox

* iOS/tvOS: import content through share sheet

* iOS/tvOS: default audio sync off due to crash on background

* iOS/tvOS: don't try altkit if there's no reason to

* iOS/tvOS: enumerate cores for appstore distribution
2024-04-18 03:01:39 -07:00
github-actions 2ef8bb4eb4 Fetch translations from Crowdin 2024-04-18 00:11:50 +00:00
Tomáš Kelemen c2eddfb260
Upstream Lakka patches (#16439)
* Lakka: fix makefile for Lakka canary

* reboot/restart/eject: fix system commands

* Lakka: add url for devbuild updates
2024-04-16 22:57:49 -07:00
github-actions 6d1f7ef2be Fetch translations from Crowdin 2024-04-17 00:12:05 +00:00
github-actions 085cf85b38 Fetch translations from Crowdin 2024-04-16 00:11:22 +00:00
github-actions 4831324973 Fetch translations from Crowdin 2024-04-15 02:29:24 +00:00
Eric Warmenhoven 80e9b9ecf4
macos: improvements to remembering windowed size/position (#16436) 2024-04-13 19:42:49 -07:00
github-actions a9d28cd2c9 Fetch translations from Crowdin 2024-04-14 00:16:07 +00:00
github-actions c0692dbd1b Fetch translations from Crowdin 2024-04-13 00:10:36 +00:00
Barry Rowe 26a824caff
Revert of AI service changes (#16428) 2024-04-12 16:17:24 -07:00
github-actions 6671916c78 Fetch translations from Crowdin 2024-04-12 00:12:02 +00:00
Eric Warmenhoven 3229d645d6
Improvements to mfi rumble. (#16431)
Fixes https://github.com/libretro/RetroArch/issues/15300 and https://github.com/libretro/beetle-psx-libretro/issues/891
2024-04-11 16:48:02 -07:00
github-actions b7404930ac Fetch translations from Crowdin 2024-04-10 00:11:49 +00:00
github-actions 49037cb4b5 Fetch translations from Crowdin 2024-04-09 00:12:01 +00:00
Colin Kinloch 917c2b0d15
wayland: Use frontend signal handler to quit (#16418) 2024-04-08 16:56:29 -07:00
Colin Kinloch 08496b302c
wayland: Commit viewport resizes (#16419)
This allows a resize to keep up with the users pointer movements.
2024-04-08 16:56:20 -07:00
Eric Warmenhoven 77f221436b
Behavior of strlcpy() if src and dst overlap is undefined (#16423)
Fixes #16397
2024-04-08 15:38:09 -07:00
github-actions ed7b5e7809 Fetch translations from Crowdin 2024-04-08 00:12:17 +00:00
github-actions a1353b0bd3 Fetch translations from Crowdin 2024-04-07 00:13:40 +00:00
libretroadmin a7e1a6c8ce DM_INTERLACED seems not defined for MSVC 2005 - so exclude it for MSVC
versions prior to 2010
2024-04-06 23:07:25 +02:00
libretroadmin d01197cf1b task_translation.c - silence some warnings 2024-04-06 22:24:22 +02:00
libretroadmin a7f6dced8d Expand win32_monitor_set_fullscreen 2024-04-06 22:16:00 +02:00
libretroadmin 92478a370e Silence warnings 2024-04-06 22:02:01 +02:00
libretroadmin e16fef8536 xdelta3 - cleanups 2024-04-06 21:52:41 +02:00
libretroadmin 53553e89ed Buildfix 2024-04-06 20:18:45 +02:00
libretroadmin d36f15a867 Buildfix for CLI 2024-04-06 20:15:54 +02:00
libretroadmin a4212061d4 Cleanup some unused variables 2024-04-06 20:12:15 +02:00
libretroadmin ba47f40487 intfstream_get_serial - use string_is_equal_fast - strlen has already
been calculated for system_name once
2024-04-06 19:53:59 +02:00
libretroadmin 46fab505b5 intfstream_get_serial - add string_starts_with conditionals 2024-04-06 19:50:33 +02:00
libretroadmin 6772579f10 Remove another unused variable 2024-04-06 19:23:23 +02:00
libretroadmin d3ff0425d8 Silence some warnings - unused variables/etc 2024-04-06 19:15:30 +02:00
libretroadmin f0cc87189c wasapi_select_device_format - cleanup 2024-04-06 19:01:12 +02:00
libretroadmin a0dc153508 Fix C89_BUILD 2024-04-06 18:52:52 +02:00
libretroadmin 95f734fade Silence warning for Dingux - no unused variables 2024-04-06 18:44:49 +02:00
libretroadmin f70dc90729 Add C99/C11 rule - use llabs if C99/C11 is availabl,e otherwise use labs 2024-04-06 18:28:19 +02:00
libretroadmin c359ae5522 (glslang) fix misleading indentation warning 2024-04-06 18:16:15 +02:00
Jason Breitweiser 5d66883e81
Add To Playlist with corrections (#16416)
* This PR contains Add To Favorite functionality.  It allows moving content to another playlist or to Create a new playlist with the selected content.

* Update retroarch.c

Fixed ISO C90 variable declaration at top of code.

* Update menu_cbs_ok.c

Fixed variable declaration for ISO requirement.

* This commit is to amend a previous PR where the mesg andd label hashs were in the wrong file.
2024-04-06 09:05:08 -07:00
github-actions 45068ee55d Fetch translations from Crowdin 2024-04-06 00:12:20 +00:00
libretroadmin def0ce97b1 (glslang) Add more parentheses 2024-04-05 22:56:16 +02:00
libretroadmin b8d12a7d12 Replace do { while (true) ; with for (;;) 2024-04-05 20:03:05 +02:00
Colin Kinloch 0212d8e770
wayland: Ignore splash sized events during splash (#16412) 2024-04-05 11:02:33 -07:00
Colin Kinloch 9749940c67
wayland: Let wl_display_disconnect close fd (#16407) 2024-04-05 07:39:45 -07:00
Jamiras a6beba6376
(cheevos) upgrade to rcheevos 11.2 (#16408)
* provide more information during achievement load process

* update rcheevos version

* do disconnected processing even when no game is loaded

* make loading widget unique

* only show loading indicator with verbose messages on
2024-04-05 07:39:38 -07:00
github-actions 5426ec8d90 Fetch translations from Crowdin 2024-04-05 00:12:10 +00:00
github-actions 72a10eda9a Fetch translations from Crowdin 2024-04-04 00:12:36 +00:00
Colin Kinloch cdd6aed8ec
wayland: Ignore configure events during splash (#16398)
These were causing the gl/vk surfaces to be created with the wrong size.
2024-04-02 17:55:02 -07:00
github-actions 9b969910c4 Fetch translations from Crowdin 2024-04-03 00:12:08 +00:00
Jamiras a218c36a0a
use default mapping if initializing map with no game loaded (#16396) 2024-04-02 00:07:06 -07:00
Eric Warmenhoven 595f574f5c
Fix 'Add to Playlist' icon in materialui (#16401) 2024-04-02 00:06:46 -07:00
Eric Warmenhoven ecb1a638dd
Fix #16402, don't add magic mfi combination bindings (#16404)
These "support" bindings made sense in older versions of iOS/mfi
controllers that didn't have full support for L3/R3 but now just get
in the way of the ones that do.
2024-04-02 00:06:40 -07:00
zoltanvb 2d7ac133ae
Add core path to Core Information screen (#16405) 2024-04-02 00:06:33 -07:00
github-actions fcd546b74c Fetch translations from Crowdin 2024-04-01 00:13:06 +00:00
github-actions a7d5026c89 Fetch translations from Crowdin 2024-03-31 00:13:23 +00:00
github-actions ab6f3edb6a Fetch translations from Crowdin 2024-03-30 00:11:01 +00:00
github-actions 83d6cc5238 Fetch translations from Crowdin 2024-03-29 00:11:42 +00:00
Eric Warmenhoven ed33eb70a6
mfi: left/right pressure sensitive triggers (#16385) 2024-03-28 12:58:26 -07:00
Jason Breitweiser 87b9d0328e
Add To Playlist functionality (#16386)
* This PR contains Add To Favorite functionality.  It allows moving content to another playlist or to Create a new playlist with the selected content.

* Update retroarch.c

Fixed ISO C90 variable declaration at top of code.

* Update menu_cbs_ok.c

Fixed variable declaration for ISO requirement.
2024-03-28 12:58:16 -07:00
github-actions a54811c79b Fetch translations from Crowdin 2024-03-27 00:11:42 +00:00
github-actions f549875953 Fetch translations from Crowdin 2024-03-26 00:11:27 +00:00
github-actions eeb6e703ba Fetch translations from Crowdin 2024-03-25 00:12:35 +00:00
Licaon_Kter fee6ac3185
Bump AGP (#16380)
ref: https://issuetracker.google.com/issues/184872412

This is an issue of AGP 4.1. Updating AGP to 4.2 or above should fix it.

We've been fixing this for F-Droid for a while: https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/com.retroarch.yml#L43
2024-03-22 06:43:05 -07:00
github-actions b383f951ac Fetch translations from Crowdin 2024-03-22 00:11:24 +00:00
libretroadmin 06fa5325f8 Update version 2024-03-21 16:09:50 +01:00
LibretroAdmin 9e492f74c8
Update CHANGES.md 2024-03-21 07:56:39 -07:00
github-actions 076d3cc91f Fetch translations from Crowdin 2024-03-21 00:12:46 +00:00
Cristi Mitrana b541d1e2d3
gfx/drm: fix mode vrefresh calculation (#16376)
When using an interlaced/doublescan mode, the vertical refresh rate is mis-calculated.
Replaced the current calc method with the one from libdrm's 'modetest' utility [1].

[1] https://gitlab.freedesktop.org/mesa/drm/-/blob/main/tests/modetest/modetest.c?ref_type=heads#L140
2024-03-20 14:02:51 -07:00
github-actions 8bb7173f97 Fetch translations from Crowdin 2024-03-20 00:11:23 +00:00
MajorPainTheCactus eef34e9461
Added rolling scan line simulation based on the shader subframe feature. This is implemented with a scrolling scissor rect rather than in the shader itself as this is more efficient although may not work for every shader pass - we may need an option to exclude certain passes. The implementation simply divides the screen up by the number of sub frames and then moves the scissor rect down over the screen over the number of sub frames. (#16282) 2024-03-19 08:59:36 -07:00
Patrick Stankard 5452999b2a
Fix mouse grab behavior on Android (#16203)
* Add grab_mouse interface for Android
Makes mouse grabbing and 'Game Focus' work on Android with a real mouse
Properly handle relative mouse motion events on Android (SDK 28 and newer)

* Enable workflow_dispatch on CI Android

* Update android_mouse_calculate_deltas callsites

* Add RETRO_DEVICE_MOUSE to android_input_get_capabilities

* Use Handler to trigger UI events (toggle mouse, immersive mode) with 300ms delay

* Enable input_auto_mouse_grab by default for Android

* Handle RARCH_DEVICE_MOUSE_SCREEN in Android input driver

* Add android.hardware.type.pc to manifest

* Don't attempt to set pointer speed via scaling in android_mouse_calculate_deltas

* Keep x/y values within viewport resolution for screen mouse

* Use video_driver_get_size to get width/height

---------

Co-authored-by: Bernhard Schelling <14200249+schellingb@users.noreply.github.com>
2024-03-19 05:33:02 -07:00
BryanJacobs 338c9a4fe4
Allow combining saves in content dir with save sorting (#16369)
* Allow combining saves in content dir with save sorting

* Formatting

* Realign var assignments
2024-03-19 04:53:32 -07:00
github-actions 6a94ed7299 Fetch translations from Crowdin 2024-03-19 00:11:54 +00:00
Alex Kiraly 5730ac51a5
Fixed SEGFAULT in WebDav task sync + type changes (#16345) 2024-03-18 12:08:40 -07:00
zoltanvb b27233b3b8
Test input joypad driver (#16370)
* Test driver for joypad inputs

Add a new joypad input driver:
- hide driver behind #ifdef and enable it in config_params.sh
- add a new config parameter to specify the test input file
- add aux files: additional config files that cancel out any binds
  that may be present in RA config, autoconfig profile for
  test joypads, test input file that matches controller test
  sequence

* Fixes and comments for test input driver.
2024-03-18 12:07:36 -07:00
github-actions 8c96bab4fc Fetch translations from Crowdin 2024-03-18 00:12:23 +00:00
goodusername123 ece60239e8
Update Lua to version 5.3.6 (#16368)
This commit updates the version of Lua used from 5.3.5 to 5.3.6
2024-03-17 09:44:57 -07:00
neil4 5306da72ce
Minor updates to Overlay Mouse and Lightgun (#16366) 2024-03-17 09:40:50 -07:00
github-actions 14e49d8b9e Fetch translations from Crowdin 2024-03-17 00:12:31 +00:00
Eric Warmenhoven 68df74e628
tvOS build fix (#16363) 2024-03-16 12:30:11 -07:00
neil4 cc97df732c
Add Overlay Mouse, Lightgun, and Pointer (#16343)
- When enabled, any touch inputs not in a hitbox are used to create pointing device input for the core.
- Mouse: 1-, 2-, 3-touch inputs are LMB, RMB, and MMB
- Lightgun: allows input from overlay buttons or multi-touch mappings
2024-03-16 01:56:30 -07:00
zoltanvb 99aadc8651
Input test function for Remote RetroPad (#16357)
Add input test capability for Remote Retropad core:
- read an .ratst file (JSON format) with test steps
- display instruction (via libretro SET_MESSAGE)
- highlight input to be activated
- display summary when test is finished
2024-03-15 23:59:56 -07:00
Eric Warmenhoven bca3cc0165
Minor iOS JIT availability information (#16358) 2024-03-15 23:59:49 -07:00
zoltanvb b6268d8f98
Change history up to 03.15. (#16359) 2024-03-15 23:59:36 -07:00
github-actions bbf368002e Fetch translations from Crowdin 2024-03-16 00:10:29 +00:00
github-actions 34bcb9f660 Fetch translations from Crowdin 2024-03-15 00:11:20 +00:00
github-actions dd40d81be6 Fetch translations from Crowdin 2024-03-13 00:11:25 +00:00
Rob Loach 936328e637
Remove cursor_directory and resampler_directory (#16346) 2024-03-12 04:10:42 -07:00
github-actions fc67ac0808 Fetch translations from Crowdin 2024-03-11 00:12:03 +00:00
zoltanvb c5c17dac46
Remote retropad display update (#16342)
Refine the display for Remote RetroPad, as a preparation for
using it as a test tool:
- added display for analog axes
- all inputs that were hit at least once, receive a light green color
- removed useless extra button (could never be sent)
2024-03-09 22:48:57 -08:00
Jesse Talavera b7ddac2431
Add Doxygen-styled comments to parts of the libretro API (#15641)
* Touch up the documentation for a few environment calls

* Touch up more comments

* Update docs for more environment calls

* Add doc comments for more environment calls

* Change various @returns to indicate that the environment call is available

- Some environment calls might be recognized but ignored (e.g. when fast-forwarding during netplay)

* Note some deprecated symbols

* Touch up the docs for RETRO_ENVIRONMENT_SET_MESSAGE

* Touch up the docs for RETRO_ENVIRONMENT_SET_PIXEL_FORMAT

* Add more doc comments

* (libretro) Add more doxygen documentation for the libretro API

* (libretro) Add doxygen comments for the callbacks

* Document retro_init and retro_deinit

* Add comments for retro_log-related symbols

* Add a comment

* Clean up some camera-related comments

* Clean up frame time-related callbacks

* Correct some information about major callbacks

* Clarify some parameter info

* Fix incorrect info about retro_set_environment

* Update libretro-common/include/libretro.h

Co-authored-by: Rob Loach <robloach@gmail.com>

* (libretro) Add doxygen docs on RETRO_THROTTLE

* Touch up the docs for RETRO_ENVIRONMENT_SET_AUDIO_CALLBACK

* Touch up the docs for some macros

* Touch up the docs for some more environment calls

* Update libretro-common/include/libretro.h

Co-authored-by: Rob Loach <robloach@gmail.com>

* Update libretro-common/include/libretro.h

Co-authored-by: Rob Loach <robloach@gmail.com>

* Update libretro-common/include/libretro.h

Co-authored-by: Rob Loach <robloach@gmail.com>

* Update libretro-common/include/libretro.h

Co-authored-by: Rob Loach <robloach@gmail.com>

* Tidy up the doc comments for clamping.h

- It was a low-hanging fruit

* Define some sections for constants

- Doxygen will group all contained symbols on one page

* Fix a duplicate @see

* Polish up the docs for the rumble interface

* Polish up the docs for RETRO_ENVIRONMENT_GET_INPUT_DEVICE_CAPABILITIES

* Update libretro-common/include/libretro.h

Co-authored-by: Rob Loach <robloach@gmail.com>

* Document INLINE

* Clean up some tags

* Touch up the docs for the sensor interface

* Add docs for RETRO_ENVIRONMENT_SET_PROC_ADDRESS_CALLBACK

* Update docs for RETRO_ENVIRONMENT_GET_INPUT_BITMASKS and accompanying names

* Update some group definitions

* Spiff up the docs for retro_dirent.h

* Document dylib.h

* Document base64.h

* Document crc32.h

* Touch up the docs for audio conversion functions

* Clean up some Doxygen tags

* Refine the docs for RETRO_ENVIRONMENT_GET_PERF_INTERFACE

* Fix incorrect infor in dylib.h

* Touch up the docs for RETRO_ENVIRONMENT_GET_CAMERA_INTERFACE

* Revise the docs for RETRO_ENVIRONMENT_SET_GEOMETRY

* Revise the docs for RETRO_ENVIRONMENT_GET_LOCATION_INTERFACE

* Revise a function's doc

* Touch up most of the rthreads docs

* Touch up the retro_timers.h docs

* Revise the subsystem docs

* Fix some incorrect @see's

* Touch up the docs for RETRO_ENVIRONMENT_GET_LED_INTERFACE

* Give the RETRO_ENVIRONMENT_GET_SAVESTATE_CONTEXT docs a makeover

* Slight cleanup to the microphone docs

* Slight cleanup to the device power docs

* Touch up serialization quirk docs

* Give the MIDI docs a haircut

* Update libretro-common/include/libretro.h

Co-authored-by: Rob Loach <robloach@gmail.com>

* Freshen up rtime's docs

* Improve the docs and accompanying definitions for RETRO_ENVIRONMENT_GET_AUDIO_VIDEO_ENABLE

- Revise the text of the documentation
- Introduce an enum that defines the flags (it's still an int, so ABI compatibility will be fine)
- Move the documentation for each bit to its corresponding enum

* Shine the shoes of RETRO_ENVIRONMENT_GET_INPUT_MAX_USERS's docs

* Freshen up the docs for fifo_queue.h

* Document most of task_queue.h

* Put retro_dirent's symbols in a group

* Finish documenting task_queue.h

* Document some compatibility headers

* Document read_stdin

* Document file_stream_transforms.h

* Document the VFS API

- Not the wrappers, just the plain API itself

* (Docs) Add doxygen notes about RETRO_DEVICE_*

* Fix some line breaks

* Revise RETRO_DEVICE docs

* Document strl.h

* Update the features_cpu.h docs

* Rewrite the docs for file_stream.h

* Update the docs for retro_endianness.h

* Update the docs for retro_miscellaneous.h

* Document the RETRO_VFS_SEEK_POSITION constants

* Finish documenting rthreads.h

* Document network_stream.h

* Put the RETRO_MEMORY defines in a defgroup

* Move a doc comment in retro_common.h to file scope

* Revise the docs for RETRO_ENVIRONMENT_SET_CONTROLLER_INFO, and accompanying symbols

* Fix the @param/in/out order in libretro.h's @param declarations

* Tidy up the docs for RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION

* Spiff up the docs for RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER

* Fix some tags

* Polish up RETRO_ENVIRONMENT_GET_HW_RENDER_INTERFACE's docs

* libretro: Add header doxygen

* Update libretro-common/include/libretro.h

Co-authored-by: Rob Loach <robloach@gmail.com>

* Update libretro-common/include/libretro.h

Co-authored-by: Rob Loach <robloach@gmail.com>

* Clean up the docs for RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY

* Clean up the docs for RETRO_ENVIRONMENT_SET_HW_RENDER_CONTEXT_NEGOTIATION_INTERFACE

* Touch up some comment syntax for RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE

* Fix some inaccuracies

* Re-add the license statement for libretro.h

* Touch up the docs for RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2

* Touch up docs for RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY

* Touch up docs for some options-related symbols

* Fix some syntax that was preventing most doc files from being generated

* Express retro_core_option_definition docs in terms of retro_core_option_v2_definition

* Finalize some core option-related docs

* Fix some incorrect info about achievements

* Polish up the docs for RETRO_ENVIRONMENT_SET_MEMORY_MAPS

* Polish up the docs for RETRO_ENVIRONMENT_GET_DISK_CONTROL_INTERFACE_VERSION

* Add a notice for `RETRO_ENVIRONMENT_GET_LOG_INTERFACE`

* Update the disk control interface docs

* Add a sentence to a doc comment

* Update a comment

* Remove an irrelevant @todo

* Touch up the docs for `retro_message_target`

* Touch up the docs for `retro_message_type`

* Touch up the docs for `RETRO_ENVIRONMENT_SET_MESSAGE_EXT`

* Touch up the docs for `RETRO_ENVIRONMENT_SET_AUDIO_BUFFER_STATUS_CALLBACK`

* Touch up the docs for `RETRO_ENVIRONMENT_SET_MINIMUM_AUDIO_LATENCY`

* Revise a comment

* Revise the docs for `RETRO_ENVIRONMENT_SET_VARIABLE`

* Add a `@see`

* Clean up the `RETRO_ENVIRONMENT_SET_FASTFORWARDING_OVERRIDE` docs

* Update the Doxyfile

* libretro: Add three more environment callback doxygen docs

* doxygen: Remove @example reference

---------

Co-authored-by: Rob Loach <robloach@gmail.com>
2024-03-09 17:24:01 -08:00
github-actions a417f74476 Fetch translations from Crowdin 2024-03-10 00:12:22 +00:00
github-actions 0c8fa563b3 Fetch translations from Crowdin 2024-03-08 00:11:38 +00:00
github-actions 293391975e Fetch translations from Crowdin 2024-03-07 00:09:55 +00:00
zoltanvb 5109c9efc6
Small sublabel adjustment (#16335)
As mentioned in #16146
2024-03-06 14:37:17 -08:00
Eric Warmenhoven 0e8d60ba3c
tvOS: fix a crash when a history playlist item does not have a label (#16336) 2024-03-06 14:37:11 -08:00
zoltanvb 89c6e23f5f
Fixes for linuxraw driver (#16330)
Triggered by #16320, a few things are adjusted:
- device name is shown correctly (this was preventing config save)
- driver name fixed in autoconfig related calls
- hotplug reconnect was not working
- some logging added
2024-03-06 09:08:21 -08:00
Themaister ee64f59b18 vulkan: Remove use of oldSwapchain.
Works around a hang on gamescope. oldSwapchain generally isn't useful
after all. Just use the same code paths everywhere.
2024-03-06 12:49:52 +01:00
github-actions ccfc7bab1c Fetch translations from Crowdin 2024-03-06 00:11:35 +00:00
github-actions 952ac2a57a Fetch translations from Crowdin 2024-03-05 00:11:31 +00:00
sonninnos 2af029d451
(Ozone) Sidebar + sublabel animation fixes (#16326)
* (Ozone) List cache safeguards

* (Ozone) Sublabel width optimization + cleanup
2024-03-04 14:31:39 -08:00
github-actions c72de1213e Fetch translations from Crowdin 2024-03-04 00:11:57 +00:00
zoltanvb 82ad6a0320
Logging config file writes in all places where it was not done so far. (#16311) 2024-03-03 08:09:46 -08:00
João Henrique 8e57273593
Fix gl2.c OpenGL ES detection. (#16313)
This fixes a recurrent bug where context initialization fails due to the major/minor being both set as 0, causing an OpenGL ES 1.1 context to be created.
2024-03-03 07:57:47 -08:00
Craig C b3c350bacd
Webos makefile and CI updates (#16312)
* added webOS CI

* fixed core downloading location
ship SDL2 prebuilt automatically
warning for out-dated toolchain

---------

Co-authored-by: Ningyuan Li <mariotaku.lee@gmail.com>
2024-03-03 07:57:21 -08:00
github-actions ac19523ce0 Fetch translations from Crowdin 2024-03-03 00:12:26 +00:00
Gabriel Morazán ac694145f0
(UWP) Update .pfx key (#16317) 2024-03-02 10:33:03 -08:00
aerisarn 8b1e4a1ad0
MESA UWP Integration (#16285)
* [WINRT] Enable logging on __WINRT__ and bypass verbosidy in debug

* [UWP] wrong configuration prevents GLES to compile, common functions defines GL symbols

* [UWP] configure project to allow OPENGL on default configuration and copy MESA DLLs into UWP release

* [UWP] add MESA headers

* [UWP] add MESA EGL.lib needed for GLES context. However HAVE_OPENGL is better as GL cores use desktop version, so this is left for reference and to make the solution build with HAVE_OPENGLES

* [UWP] UWP is missing some GDI function definitions, implemented into MESA Gallium

* [UWP] Configure Release project too

* [UWP] Add mesa alpha-2 release dlls

* [UWP] allow griffin and vide_driver to have an OPENGL context

* [UWP] allow wgl context to work with mesa under WINRT

* [UWP] BUG: have to modify height/width getters and align them to MESA because the screen resolution is not right in gl context. Pending further investigation

* [UWP] fix ANGLE build

* [UWP] remove duplicate import code.

* (UWP) Cleanup filters file

* MESA screen destroy fix and Yabasanshiro hack. Align to alpha-2-hack tag

---------

Co-authored-by: Gabriel Morazán <35014183+GABO1423@users.noreply.github.com>
2024-03-02 09:36:17 -08:00
github-actions 75c0ede845 Fetch translations from Crowdin 2024-03-02 00:10:30 +00:00
github-actions f6fc0c1d96 Fetch translations from Crowdin 2024-03-01 00:13:07 +00:00
github-actions 07de6d9594 Fetch translations from Crowdin 2024-02-29 00:11:08 +00:00
Eric Warmenhoven 7379d33801
tvOS Top Shelf (#16302)
This puts the History and Favorites playlists (up to five items each)
in the Top Shelf menu. In order for this to be enabled you must build
it yourself and change the app identifiers for the TV app and Top
Shelf extension, and add both of them to an app group.
2024-02-27 23:20:32 -08:00
sonninnos 0df031a580
Fix achievement widget padding (#16303) 2024-02-27 23:20:24 -08:00
github-actions e09820e4c7 Fetch translations from Crowdin 2024-02-28 00:11:38 +00:00
sonninnos 219c666ef8
(Ozone) Sidebar related fixes (#16299)
* (Ozone) Fix crash when deleting last playlist from sidebar

* (Ozone) Respect navigation wraparound in sidebar

* (Ozone) Fix sidebar after loading configuration
2024-02-27 03:00:00 -08:00
Craig C 2e710f46a6
Fix rpath on webOS and making sdl2 lib copy optional (#16294) 2024-02-26 21:00:18 -08:00
sonninnos 2e90ec9202
More widget corrections (#16296) 2024-02-26 20:59:43 -08:00
sonninnos 455585e8d1
Add some missing msg dots (#16297) 2024-02-26 20:59:07 -08:00
sonninnos 9dfa1df39e
Remove some unneeded logging (#16298) 2024-02-26 20:59:01 -08:00
github-actions a3fe9c0ee2 Fetch translations from Crowdin 2024-02-27 00:11:59 +00:00
sonninnos 55f1120036
(WIN32) Read menubar shortcuts with menubar hidden (#16291) 2024-02-26 06:01:33 -08:00
sonninnos 59381b7312
Add visibility option for disc control notifications (#16292) 2024-02-26 06:01:15 -08:00
sonninnos fa3c685ef9
Minor widget alignments (#16288) 2024-02-26 03:12:31 -08:00
sonninnos 2ad48ae585
Reorder User Interface menu (#16289) 2024-02-26 03:12:19 -08:00
sonninnos 7566a0fea7
(WIN32) Fix native ui savestate slots (#16290) 2024-02-26 03:12:07 -08:00
sonninnos 3c4dd50974
More widget additions and adjustments (#16287) 2024-02-25 20:23:08 -08:00
github-actions 55b1ecb3f5 Fetch translations from Crowdin 2024-02-26 00:12:37 +00:00
sonninnos 8342b3cebe
Widget position+size+color adjustments (#16284) 2024-02-24 23:44:29 -08:00
github-actions 5c6643c4a8 Fetch translations from Crowdin 2024-02-25 00:12:34 +00:00
Craig C a55dd23db6
webOS: replace ncpu (go), fix undefined function compile error, use pkg-config from buildroot (#16271) 2024-02-24 15:37:53 -08:00
github-actions 14b5feeabf Fetch translations from Crowdin 2024-02-24 00:10:43 +00:00
zoltanvb 14ce660a38
Sublabel finetunes as per #16146 (#16277) 2024-02-23 11:38:07 -08:00
Eric Warmenhoven 8f4964a871
iOS/tvOS: pause application on applicationWillResignActive (#16280) 2024-02-23 11:35:27 -08:00
github-actions d76df869b1 Fetch translations from Crowdin 2024-02-23 00:11:13 +00:00
github-actions 70daba6594 Fetch translations from Crowdin 2024-02-22 00:11:23 +00:00
Mats 6de0fd4362
Fix HDR w/ Vulkan driver after reinit (#16270) 2024-02-21 08:39:26 -08:00
github-actions 0f36082644 Fetch translations from Crowdin 2024-02-21 00:11:38 +00:00
zoltanvb 900c82bfe6
Add saved file name to autoconfig profile save message (#16267)
Autoconfig profile may be useful for e.g. submitting to autoconfig
repo. Construction of the filename is moved to a separate function
and reused for message.
2024-02-20 13:47:35 -08:00
sonninnos 3cb79e38f0
Don't disable FF when toggling menu (#16265) 2024-02-20 13:47:00 -08:00
zoltanvb df193685a4
Add sublabel for mouse index entry. (#16268) 2024-02-20 13:46:47 -08:00
github-actions cd1a970bf2 Fetch translations from Crowdin 2024-02-20 00:11:15 +00:00
sonninnos 7a4255af9b
Add sensible limits to input_axis_threshold (#16255) 2024-02-19 11:13:05 -08:00
sonninnos 3365f9b86e
Fix input bind hold when every axis does not rest on 0 (#16256) 2024-02-19 11:12:54 -08:00
sonninnos 25c15834c3
Clean up and reduce refresh rate logging (#16259) 2024-02-19 11:12:24 -08:00
sonninnos 8f1678f865
Don't load favorites/history playlist if size is 0 (#16260) 2024-02-19 11:12:18 -08:00
Eric Warmenhoven 50f4807f88
tvOS: when cache is deleted, force assets.zip re-extraction (#16264)
Also including a script to make building assets.zip easier, for people
building from source themselves
2024-02-19 11:12:09 -08:00
Rob Loach 1af8a5ff34
[Menu] Tweak the Dracula color theme for rgui and ozone (#16223)
* ozone: Tweak the Dracula color theme

* rgui: Update RGUI's Dracula  color theme

* rgui: Update Dracula's transparency colors
2024-02-18 21:42:12 -08:00
github-actions a2c730e475 Fetch translations from Crowdin 2024-02-19 00:12:02 +00:00
Bobby Smith e1cc4fb14d
Add a new "Classic (Toggle)" turbo mode (#16239) 2024-02-18 08:24:05 -08:00
zoltanvb 46cc2250cf
Sublabels for input bind common entries (#16242)
* Add sublabels for "port x controls" entries

Due to the port-specific indexes, sublabels for these entries
are handled specially. Some simplification/generalization  was
applied and hand-crafted string joining was removed from a few
places, though it remains still in other places.

Preparation for #16121 (this commit does not do anything yet with
file names).

* Further simplifications around joypad_index

Removed a few labels, now unused, and the left/right check, as it
fell back to the default which is given anyway in advance.
2024-02-18 08:23:56 -08:00
Eric Warmenhoven 8071b49f9d
macos: add portable.txt as flag for portable install (#16244) 2024-02-18 08:23:40 -08:00
Subs c264c5a8de
fix a buffer overflow on DRM mode name (#16245) 2024-02-18 08:23:20 -08:00
sonninnos 6e6a4d8b6d
RETROK_UNKNOWN fixes and cleanups (#16250) 2024-02-18 08:23:05 -08:00
Bobby Smith de8e33c6b1
Bring the recent system files checks changes to Qt menu (#16251) 2024-02-18 08:22:57 -08:00
Eric Warmenhoven 47df5e6547
Add icon for tvOS Top Shelf (#16252) 2024-02-18 08:22:50 -08:00
github-actions cfd79a981b Fetch translations from Crowdin 2024-02-17 00:10:45 +00:00
github-actions 28326ce0ac Fetch translations from Crowdin 2024-02-16 00:11:22 +00:00
github-actions b209a26ebb Fetch translations from Crowdin 2024-02-15 00:11:27 +00:00
Patrick Corrigan 066a0629ff Fix actual parameter for mouse y in translate coord 2024-02-14 15:31:56 +01:00
sonninnos e8956418a8
Fix input state combos and empty binds (#16233) 2024-02-13 16:16:39 -08:00
github-actions 34e28f548a Fetch translations from Crowdin 2024-02-14 00:11:15 +00:00
github-actions 6040d4cc62 Fetch translations from Crowdin 2024-02-13 00:12:05 +00:00
zoltanvb 8dd26faf51
Fix ANDROID_INPUT_WORKAROUND sublabel. (#16226) 2024-02-12 05:40:46 -08:00
github-actions 6fb5ce2351 Fetch translations from Crowdin 2024-02-12 00:11:43 +00:00
github-actions 1c5cf6b603 Fetch translations from Crowdin 2024-02-11 00:12:32 +00:00
github-actions 434e94c782 Fetch translations from Crowdin 2024-02-10 00:11:29 +00:00
Bobby Smith c43f4738d9
Fullscreen/windowed fixes when using overrides (#16213) 2024-02-09 11:54:46 -08:00
Eric Warmenhoven bc5805e8e6
Fix #16205, crash on non-Metal build (#16214) 2024-02-09 07:31:59 -08:00
Ophidon 7b711214a7
Slang Subframe Shaders Feature (#16209)
Adds support for sub-frame shaders to vulkan/glcore/dx10-11-12.

Builds on the concept already present for frame duplication in use for BFI, to present multiple 'sub' frames per real frame to the shaders, so they can run at a higher framerate than the content framerate. Must be enabled via subframe shaders setting under synchronization settings to be active.

Will allow BFI to be implemented inside of the shaders, among any other use for the higher framerate shader authors can devise.

CurrentSubFrame and TotalSubFrames have been available inside the shaders to track what they want to do on an given subframe. TotalSubFrames will always be 1 when the setting is disabled (and when in menu/ff/pause). Framecount will not increment on sub-frames, as it does not for injected bfi frames now. Should not interfere with any existing shaders that do not check for subframes.
2024-02-09 03:12:55 -08:00
Viačasłaŭ Chalikin 997c7453a8
Fix narrator modes (#16179)
* Fix narrator

* Refactor accessibility
2024-02-08 21:14:23 -08:00
github-actions 156dd055d9 Fetch translations from Crowdin 2024-02-09 00:11:17 +00:00
github-actions 1265c92249 Fetch translations from Crowdin 2024-02-08 00:11:21 +00:00
github-actions fed6cc0ab2 Fetch translations from Crowdin 2024-02-07 00:11:07 +00:00
github-actions f5f00c4fa2 Fetch translations from Crowdin 2024-02-06 00:11:42 +00:00
github-actions 75495a6fc9 Fetch translations from Crowdin 2024-02-05 00:12:07 +00:00
zoltanvb 429e83745e
Localization for a few narrator-only strings. (#16195) 2024-02-04 11:58:44 -08:00
Eric Warmenhoven ad48a74bb8
Update to MoltenVK 1.2.7 (#16199) 2024-02-04 11:58:25 -08:00
zoltanvb d88d0d5219
Option for disabling initial disc change (#16197)
Loading the last used disc for multi-disc content was automatic.
However, in some cases it is not wanted, as described in #16018
Option is added for controlling the function. Disabling the
option will also implicitly disable index saving.
2024-02-04 11:58:16 -08:00
libretroadmin e5029ffdfb Define HAVE_ACCESSIBILITY for MSVC UWP 2024-02-04 19:40:28 +01:00
github-actions fb63c79f32 Fetch translations from Crowdin 2024-02-04 00:12:06 +00:00
github-actions ad8975cb5a Fetch translations from Crowdin 2024-02-03 00:11:03 +00:00
Bobby Smith 7c3d07bf6d
Tweaks to how the "Analog to Digital Type" setting is saved (#16187) 2024-02-02 12:53:24 -08:00
Ophidon f6502b89aa
Don't Sleep to Sync in Non-VRR Normal Running State (#16189)
The check for sleeping to sync to a specific speed that is meant for fast forward/vrr could be true for a non-vrr normal core running state causing a possible sleep in a situation it was not intended for, especially at higher hz, and thus interfering with frame pacing.
2024-02-02 06:28:01 -08:00
the-Chain-Warden-thresh 380daf1b38
Backport CVE-2020-24370's patch (#16190) 2024-02-02 06:27:36 -08:00
github-actions 92608cba15 Fetch translations from Crowdin 2024-02-02 00:14:45 +00:00
Eric Warmenhoven 0cbc8d2a56
OSX: Only look at major GL version when creating context (#16185) 2024-02-01 12:23:54 -08:00
Bobby Smith 9e6b790f19
Fall back to global system dir if content path is empty when 'System Files are in Content Directory' is enabled (#16175) 2024-02-01 09:42:05 -08:00
github-actions 633dad5d6b Fetch translations from Crowdin 2024-02-01 00:12:08 +00:00
Eric Warmenhoven 79e43e2bd4
Fix many warnings (#16180)
Also change iOS/tvOS to use system zlib instead of compiling it in
2024-01-31 09:15:14 -08:00
sonninnos 494f6a10da
Restore video frame limit on unpause (#16183) 2024-01-31 09:12:48 -08:00
github-actions 7558c99cfa Fetch translations from Crowdin 2024-01-31 00:11:20 +00:00
github-actions eabdc19aee Fetch translations from Crowdin 2024-01-30 00:11:30 +00:00
zoltanvb 996eb680b0
Do not try to fetch full name thumbnails if not set explicitly. (#16174) 2024-01-29 08:42:39 -08:00
github-actions 25317c3a1d Fetch translations from Crowdin 2024-01-29 00:11:38 +00:00
Bobby Smith 3572461d31
Improvements to firmware checks when "System Files are in Content Directory" is enabled (#16170) 2024-01-28 09:57:34 -08:00
zoltanvb 00d01c844e
Enable serial detection from GDI files. (#16171) 2024-01-28 08:51:20 -08:00
github-actions c4c1fb18af Fetch translations from Crowdin 2024-01-28 00:12:29 +00:00
github-actions ceaf421453 Fetch translations from Crowdin 2024-01-27 00:10:45 +00:00
sonninnos 8ad8b6bdad
Input state overflow band-aid (#16168) 2024-01-26 09:44:48 -08:00
github-actions 4c69431798 Fetch translations from Crowdin 2024-01-26 00:12:10 +00:00
Francisco Javier Trujillo Mata daccac9a1b
Merge pull request #16166 from fjtrujy/fix_cwd_path
[PS2] Required after toolchain upgrade: Fixing usage of `cwd`
2024-01-25 21:35:25 +01:00
Francisco Javier Trujillo Mata 3e0a4faa96 fixing usage of cwd 2024-01-25 17:19:08 +01:00
libretroadmin 71edae5955 Fix unused function warning 2024-01-25 16:04:11 +01:00
libretroadmin ac353d1401 Bump version 2024-01-25 15:59:56 +01:00
Eric Warmenhoven 13e96e9567
Fix variable quoting issue (#16165) 2024-01-25 06:02:44 -08:00
sonninnos 8f77938767
Fix ghost input when setting RETROK_UNKNOWN (#16163) 2024-01-25 02:46:48 -08:00
github-actions 65fceb9ea0 Fetch translations from Crowdin 2024-01-25 00:12:15 +00:00
kikmon 48205d5754
Added 2022 solution and updated github action flow to compile new targets (#16158)
Co-authored-by: papa <papa>
2024-01-23 22:50:42 -08:00
github-actions 9f205b35b3 Fetch translations from Crowdin 2024-01-24 00:12:13 +00:00
sonninnos 07e945b5ae
(XMB) Layout and thumbnail fixes (#16156)
* (XMB) Thumbnail layout adjustments

* (XMB) Header title improvements

* (XMB) Handheld layout adjustments
2024-01-22 22:10:24 -08:00
github-actions c1130b8775 Fetch translations from Crowdin 2024-01-23 00:12:59 +00:00
Eric Warmenhoven bd6c34b576
Add HAVE_ACCESSIBILITY to iOS builds (#16154) 2024-01-22 10:06:32 -08:00
sonninnos 266d3ed150
Add option for merging 'Hotkey Enable' device types (#16152) 2024-01-21 18:13:17 -08:00
Eric Warmenhoven cd9fb0d072
Adjust apple packaging so correct git version gets reported (#16139) 2024-01-21 18:13:07 -08:00
zoltanvb 3873c8dbfb
Changes up to Jan 20. (#16150) 2024-01-21 18:12:58 -08:00
zoltanvb 7a3c4a14b0
Menu label finetunes (#16144)
Change quit sublabel depending on config save on exit status.
Update restart and menu driver sublabels.
Restore quit help text display.
2024-01-21 18:12:47 -08:00
Jamiras 4ba5fc0333
(cheevos) upgrade to rcheevos 11.1 (#16151)
* move pause spam management into rc_client

* update to rcheevos 11.1

* show [m] on missables

* update makefile
2024-01-21 18:12:30 -08:00
github-actions e3329dbbab Fetch translations from Crowdin 2024-01-22 00:12:45 +00:00
github-actions 162ad01233 Fetch translations from Crowdin 2024-01-21 00:13:03 +00:00
Ophidon 72c901a90e
Squashed commit of the following: (#16142)
commit 793d41c303206b43932ddcefd44a45836def55eb
Author: Ophidon <jrogers2@gmail.com>
Date:   Fri Jan 19 23:12:31 2024 -0500

    Build Fix 2

    Move declarations of iterators.

commit c0e959b3d3cd773a66a17cfe034f08eaa53d525a
Author: Ophidon <jrogers2@gmail.com>
Date:   Fri Jan 19 22:57:01 2024 -0500

    Build Fix

    Help string was 14 characters too long for c89.

commit fc5506c7906bf82d6f88b7b0d7e4764d58d90622
Author: Ophidon <jrogers2@gmail.com>
Date:   Fri Jan 19 22:40:45 2024 -0500

    BFI Updates

    Significant BFI updates.

    - Adds BFI to dx10/11/12 in general.

    - Updates existing BFI menu option descriptions to be somewhat more clear in how to use correctly.

    - Adds Variable Strobe length via new 'Dark Frames' bfi sub-choice. Only valid at 180hz and above, as it must work with whole frames.

    - Algorithm to auto select 'decent' Dark Frames choice, for any given selected BFI refresh rate. Will also avoid defaults that can cause Image Retention at any Hz higher than 120. (Impossible to avoid at 120 if you have an affected screen... get an OLED :D ) .

    - Some sanity checking on selecting BFI or the other synchronizations options like Swap Interval > 1, that don't play well with BFI.
2024-01-19 23:11:31 -08:00
github-actions c03deadb12 Fetch translations from Crowdin 2024-01-20 00:11:40 +00:00
github-actions a99a7deab1 Fetch translations from Crowdin 2024-01-19 00:12:19 +00:00
Eric Warmenhoven e6eadecabd
Disable mFI secondary_joypad behavior (#16129)
Some controllers show up as both HID and mFI. In that case we probably
want to let the user pick which driver to use, rather than balance
across them.

This fixes issues with the analog stick moving in the wrong direction
on the y axis.
2024-01-18 09:33:16 -08:00
github-actions 572b15a0e9 Fetch translations from Crowdin 2024-01-18 00:12:10 +00:00
github-actions fdc7fe58df Fetch translations from Crowdin 2024-01-16 00:12:01 +00:00
github-actions 13c892cf4a Fetch translations from Crowdin 2024-01-15 00:12:24 +00:00
Rafael Sá Menezes 340f733488
Enable cheevos for Wii builds (#16116)
* Fixed libogc error codes interpretation for sockets

* Added thread code for libogc rc_compat

* Enabled cheevos for Wii
2024-01-13 18:47:28 -08:00
github-actions eb76f00c7a Fetch translations from Crowdin 2024-01-14 00:13:03 +00:00
github-actions 24970fae51 Fetch translations from Crowdin 2024-01-13 00:11:19 +00:00
github-actions 61364645fc Fetch translations from Crowdin 2024-01-12 00:11:57 +00:00
Eric Warmenhoven 286e31dc7d
Create directories after the config is read (#16093) 2024-01-11 13:16:27 -08:00
Eric Warmenhoven 6c57b31ce5
Fix setting iOS app icon (#16107) 2024-01-11 05:48:54 -08:00
github-actions 850fedb43c Fetch translations from Crowdin 2024-01-11 00:12:08 +00:00
Giovanni Cascione 5932a30824
Add environment command to get playlists path (#16103) 2024-01-10 07:26:46 -08:00
Bobby Smith caf2bcbc80
Don't save mouse buttons in autoconfig (#16098) 2024-01-10 07:26:23 -08:00
Eric Warmenhoven b01d3a63ea
Fix regression, startup crash in Qt when desktop ui enabled (#16106) 2024-01-10 07:26:13 -08:00
github-actions bda2b1914e Fetch translations from Crowdin 2024-01-10 00:11:54 +00:00
waitingmoon 35e140ae08
fix wrong translation key (#16095) 2024-01-09 00:19:50 -08:00
sonninnos bcb804f3f2
Limit paused video refresh always (#16090) 2024-01-09 00:19:35 -08:00
Eric Warmenhoven 8c58979d76
Make sure the playlist directory exists before writing a playlist (#16085) 2024-01-09 00:18:23 -08:00
Eric Warmenhoven d7852d5db9
Fix incremental macos/ios/tvos builds, and pull correct git version (#16089) 2024-01-09 00:18:05 -08:00
sonninnos 020f3d9390
Silence compilation warning (#16092) 2024-01-09 00:17:54 -08:00
zoltanvb 14d2a61952
Removal of thumbnail pack downloader related options (#16096)
Thumbnail packs are no longer available, but the option was still
present as "legacy thumbnail downloader". Since it serves no
purpose any more, it is removed from the code.
2024-01-09 00:17:47 -08:00
github-actions 6eaa3aaa9e Fetch translations from Crowdin 2024-01-09 00:12:23 +00:00
Daniel Byon fc10539f3c
Fix auto save state when state file does not already exist (#16084)
Co-authored-by: Daniel Byon <daniel@danielbyon.com>
2024-01-07 16:59:59 -08:00
github-actions 773a2750cd Fetch translations from Crowdin 2024-01-08 00:12:16 +00:00
Eric Warmenhoven 272b66a5db
Make it easy to create a "portable" osx build (#16081)
Default to false, except steam builds where it's forced true; a
portable build has the behavior of putting all files next to the
application.
2024-01-07 07:58:06 -08:00
Ryan Kuba ed73141856
change default audio settings for emscripten builds (#16079) 2024-01-07 07:57:56 -08:00
zoltanvb 1e58df4f51
Flexible thumbnail improvements. (#16082)
- Move flag logic to task_push_pl_entry_thumbnail_download - this
enables individual "download thumbnails" entry to be also flexible
- Add a message when this download has been tried enough times
(i.e. 3)
- Optimize cases when full or short name is the same as standard
name, skip queries if so (both download and local file)
2024-01-07 07:57:39 -08:00
github-actions 398ace33cc Fetch translations from Crowdin 2024-01-07 00:12:51 +00:00
github-actions 19a368899c Fetch translations from Crowdin 2024-01-06 00:10:57 +00:00
Eric Warmenhoven ca6e60f41b
Don't needlessly (re-)create default directories on apple platforms (#16073) 2024-01-05 13:49:15 -08:00
Eric Warmenhoven 07612483f2
Show git version in system information (fixes #16072) (#16076) 2024-01-04 23:12:59 -08:00
Eric Warmenhoven e428541f9a
Fix input autodetect notices sometimes not appearing (#16077) 2024-01-04 23:12:33 -08:00
Eric Warmenhoven a3e9525988
Fix crash when content has no extension (#16078) 2024-01-04 23:12:19 -08:00
github-actions 01edfbfc16 Fetch translations from Crowdin 2024-01-05 00:11:44 +00:00
zoltanvb 28f8d89738
Change list update up to Dec 31 (#16069)
* Update CHANGES.md

Changes since 1.16.0 up to 2023-12-01

* Update CHANGES.md

Changes up to end of 2023 (+ Cloud Sync missed from previous version)
2024-01-04 15:31:28 -08:00
Colin Kinloch a2057d6069
input/wayland: Use unaccelerated pointer motion (#16074)
This fixes small mouse movements being rounded down to 0.

Fix "Mouse cursor appears to have a deadzone on Wayland" (#16015)
2024-01-04 15:30:47 -08:00
github-actions 06deba24a8 Fetch translations from Crowdin 2024-01-04 00:12:23 +00:00
github-actions 1e572aaa7a Fetch translations from Crowdin 2024-01-03 00:11:35 +00:00
sonninnos 945ad4a89f
Limit paused video refresh when vsync is disabled (#16067) 2024-01-02 10:01:19 -08:00
Eric Warmenhoven 4220e5683d
Do CRC checks on PSP/PSP(PSN) content scan (#15623) 2024-01-01 21:57:44 -08:00
zoltanvb 8886b92455
Thumbnail fixes (#16062)
* Minor thumbnail improvements

- set standard name if only one entry is in the playlist
- use first database name for thumbnails if core has multiple

* Fix playlist thumbnail downloader

Playlist thumbnail downloader function was missed from the flexible
thumbnail name update, now it is added.
2024-01-01 17:23:18 -08:00
SunM c969143efb
Fix for Potential CWE 457 Issue in video_driver.c (#16064)
* Fix audio_statistics_t audio_stats to {0}

CWE-457 Use of Uninitialized Variable

* Fix audio_statistics_t audio_stats to {0}
2024-01-01 17:23:03 -08:00
David G. F ab376eb669
Make auto-savestates not use the task queue (#16061)
Auto savestate (and its optional thumbnail) is generated on core unload
(quit, netplay start, etc). This ends up using the task-queue, which in
many cases deadlocks and/or causes a crash due to its asynchronous
nature.

Given that this is a state that must be generated before quiting or
reloading the core, it makes no sense to use the task queue, it should
be a synchronous job like for instance SRAM saving.

This should fix #15248 (tested by @schmurtzm)
2023-12-30 21:44:15 -08:00
github-actions f200717b4c Fetch translations from Crowdin 2023-12-31 00:12:52 +00:00
zoltanvb 4d8283a460
Minor improvements for db / playlist handling (#16060)
Do not load rom_name as nothing is using it (but it does occupy memory)
Add two more media index options for label sanitization
2023-12-30 11:45:36 -08:00
sonninnos aa1d47ad0f
(WASAPI) Buffer cleanups (#16057) 2023-12-28 18:56:28 -08:00
Eric Warmenhoven 285f800c2e
iOS 9 build fix (#16056) 2023-12-28 13:03:47 -08:00
David G. F ea87495a4e
Save improvements (#16053)
* Simplify autosave command function

* Simplify and split save and savestate logic

save.c contains "SRAM" saves and their logic, which uses no task/queue.
2023-12-28 11:10:46 -08:00
David G. F b30aa330aa
Fix quit on close in CLI mode (#16054)
This should fix #16048 It seems that launched_from_cli is overwritten
right after the core unload, which makes RA think it was *not* CLI
launched.
2023-12-28 11:10:22 -08:00
Eric Warmenhoven 99309a4d79
Cloud sync fixes - ignore .DS_Store files and re-sync on app foreground (#16055) 2023-12-28 11:10:13 -08:00
zoltanvb 3ce56c5b42
Flexible thumbnail matching (#16040)
Add logic to handle 3 possible thumbnail names, in following order:
- most exact name derived from content file (same name, with .png extension)
- usual name derived from playlist (usually coming from database)
- shortened name up to first bracket, chopping off region/publisher etc. info

For local file system, names are checked always.
For thumbnail downloads, names are checked each time the item comes up
in the playlist, meaning that it may take going back and forth 3 times
for a thumbnail to appear. However, as a positive change, failed thumbnail
downloads are not repeated for the same playlist, which was not the case
earlier.
2023-12-27 02:26:46 -08:00
github-actions 824a0f86fd Fetch translations from Crowdin 2023-12-26 00:11:43 +00:00
Eric Warmenhoven 089f7321c7
iOS: Allow changing the app icon (take 2) (#16034) 2023-12-24 16:36:49 -08:00
github-actions 3c3971b6c3 Fetch translations from Crowdin 2023-12-25 00:12:11 +00:00
Eric Warmenhoven dc2ae86437
Fix #16023 - ssl fails on mac x86 with newer clang (#16032)
Fix comes from https://github.com/Mbed-TLS/mbedtls/pull/4947
2023-12-23 01:22:05 -08:00
github-actions 0e7d7e30b9 Fetch translations from Crowdin 2023-12-23 00:11:02 +00:00
libretroadmin 146de90214 Fix some warnings 2023-12-22 09:50:01 +01:00
libretroadmin 9d90aff7ba Add localized strings back ; buildfix 2023-12-22 09:44:43 +01:00
libretroadmin 3c564b8284 Revert "Revert "Revert "iOS: Allow changing the app icon (#16020)" (#16029)" (#16030)"
This reverts commit 8caf6c19b1.
2023-12-22 09:41:31 +01:00
LibretroAdmin 8caf6c19b1
Revert "Revert "iOS: Allow changing the app icon (#16020)" (#16029)" (#16030)
This reverts commit c06743678f.
2023-12-22 00:37:18 -08:00
LibretroAdmin c06743678f
Revert "iOS: Allow changing the app icon (#16020)" (#16029)
This reverts commit 93f7bba6a5.
2023-12-21 23:15:41 -08:00
github-actions 7d50f50315 Fetch translations from Crowdin 2023-12-22 00:11:43 +00:00
Eric Warmenhoven f4fbcd129e
Fix thumbnails in History for content loaded through Load Content (#16025) 2023-12-21 13:48:34 -08:00
David G. F 799e56ca98
Fix LAN room join for netpacket cores (#16026)
Tested by @schellingb
2023-12-21 13:48:27 -08:00
kyns.one f4f43d9501
Fix screen resolution always tied to the main monitor on win32 platforms. (#15897) 2023-12-20 16:34:53 -08:00
libretroadmin d0a69ffd71 (wiiu) HBL_loadToMemory - close file descriptor to avoid leakage 2023-12-21 01:32:35 +01:00
zengwei2000 df05f6e0eb
fix the Memory leak: psp (#16016)
fix the Memory leak: psp

Signed-off-by: zengwei zengwei1@uniontech.com

Signed-off-by: zengwei zengwei1@uniontech.com
2023-12-20 16:24:35 -08:00
aveyond 4abd4e8d27
playlist: add thumbnail match with filename config (#16022)
In the commit [1], a global configuration "thumbnail match with filename"
was added which allows thumbnail match with filename.

This commit adds playlist level "thumbnail match with filename" for more
flexible configuration.

[1] 32ed9b6041 ("플레이리스트 롬파일 이름으로 썸네일 이미지를 찾도록 옵션 추가 (#15731)")

Signed-off-by: masky2012 <msuanming@163.com>
2023-12-20 16:24:23 -08:00
Bernhard Schelling e796716f57
Netplay netpacket interface fix "Sort Save States into Folders" settings (#16019)
Before this fix with the folder setting enabled a core using the netpacket interface would append the sort folder name twice thus breaking existing save states
2023-12-20 16:23:28 -08:00
David G. F 3194dc9d65
Fix quit on content close option (#16014)
Right now close is based on core unload. There are several places where
cores are unloaded without the intention of stopping the emulation (for
instance whenever Netplay is started, core is updated, etc).

Moreover scheduling a quit under some of those events causes a task
queue deadlock (as per issue #15313) and freezed retroarch.

This fix moves the quit on close to a "manual" check, placed in the
relevant places (close content menu option, close content event (which
also covers hotkeys), etc.)
2023-12-20 16:23:18 -08:00
Eric Warmenhoven 93f7bba6a5
iOS: Allow changing the app icon (#16020) 2023-12-20 16:22:11 -08:00
github-actions 9ba18d6a7c Fetch translations from Crowdin 2023-12-21 00:11:32 +00:00
github-actions 1d1971463c Fetch translations from Crowdin 2023-12-19 00:11:46 +00:00
Eric Warmenhoven 0c1ee70ca0
iOS: Fix xrgb8888 in gl driver (#16013) 2023-12-18 01:18:03 -08:00
libretroadmin 437d9ddbf1 (task_translation.c) Fix warning 2023-12-18 01:39:00 +01:00
github-actions b2ebf281aa Fetch translations from Crowdin 2023-12-18 00:12:17 +00:00
libretroadmin 2980eb7e12 Silence some warnings 2023-12-17 05:11:18 +01:00
libretroadmin 10082e1c32 Merge midi_driver.c and location_driver.c into retroarch.c -
files were not touched for 6 months so splitting them up serves
no real purpose
2023-12-17 05:01:12 +01:00
github-actions 230503b206 Fetch translations from Crowdin 2023-12-17 00:12:44 +00:00
github-actions 9f71c2a353 Fetch translations from Crowdin 2023-12-16 00:11:34 +00:00
github-actions c8659ece16 Fetch translations from Crowdin 2023-12-15 00:12:20 +00:00
zoltanvb 0480736dcc
Update wayland-protocols version to 1.31 due to fractional-scale-v1 (#15990) 2023-12-14 11:09:26 -08:00
hunterk 6513a023b8
Add a setting to allow turbo d-pad directions (#16006)
* Add option to allow turbo d-pad inputs

* fix macro tab and update comment
2023-12-13 18:36:09 -08:00
github-actions 87b6064160 Fetch translations from Crowdin 2023-12-14 00:11:40 +00:00
Jamiras 4bf0816392
fix crash showing achievement game placard when threaded video enabled and game image not cached (#16008) 2023-12-12 21:43:54 -08:00
github-actions c4faac0816 Fetch translations from Crowdin 2023-12-13 00:11:40 +00:00
Eric Warmenhoven 2ca9cf0b56
Rebuild of moltenvk for tvos (#15999) 2023-12-12 08:44:43 -08:00
Eric Warmenhoven dfda186985
Fix webdav crash bug in digest auth handling (#16003) 2023-12-12 08:44:29 -08:00
github-actions 44132c42b7 Fetch translations from Crowdin 2023-12-12 00:11:51 +00:00
github-actions 1024ede007 Fetch translations from Crowdin 2023-12-11 00:12:17 +00:00
github-actions d9b90e2182 Fetch translations from Crowdin 2023-12-10 00:12:55 +00:00
Bernhard Schelling f029b41a74
Netplay netpacket connection flow improvements (#15986)
- Allow starting netplay host while a netpacket core is running without restart
- Allow connecting to a host while a netpacket core is running without restart
- Avoid clients getting stuck in connection loop if the host has the content paused while a client connects by automatically unpausing
2023-12-09 04:48:36 -08:00
Eric Warmenhoven 26918b25e0
Enable overlay support on tvos (#15987) 2023-12-09 04:48:22 -08:00
github-actions fb1bee0ce2 Fetch translations from Crowdin 2023-12-09 00:11:44 +00:00
github-actions a8ffa5054c Fetch translations from Crowdin 2023-12-08 00:11:44 +00:00
Jamiras be8e294c56
don't flag rewind as initialized until after we're able to validate against core info (#15983) 2023-12-07 11:36:52 -08:00
github-actions 5a0317b440 Fetch translations from Crowdin 2023-12-07 00:11:32 +00:00
Jesse Talavera 750b64d89e
Fix 32-bit Linux builds with XDelta enabled (#15980)
* First crack at a GitHub Actions pipeline for 32-bit Linux

* Simplify the integer typedefs in xdelta3.h

* Add XDelta to Linux.yml
2023-12-06 05:07:46 -08:00
zoltanvb 6ac1fb7b86
Change XDelta support to automatic and check lzma.h presence. (#15962) 2023-12-06 05:07:22 -08:00
github-actions 765ccda24f Fetch translations from Crowdin 2023-12-06 00:11:57 +00:00
Jesse Talavera 17c9227a9c
Fix the build when XDelta is enabled on certain platforms (#15968)
* Rename the `MIN_MATCH` defined by xdelta3 to `XD3_MIN_MATCH`

- zlib defines its own macro by that name, but with a different value

* Don't redefine `SIZEOF_ARRAY` in xdelta3 if it already exists

* Don't define ssize_t in xdelta3, rely on libretro's definition instead

* Enable xdelta3 support in MSVC 2015-2019

* Fix some invalid MSBuild condition syntax

* Always build xdelta with XD3_USE_LARGESIZET as 1

* Fix an `#if` in task_patch.c

* Enable `HAVE_XDELTA` in the UWP build

* First crack at fixing Xdelta support for Android
2023-12-05 08:32:16 -08:00
github-actions 456f9b099a Fetch translations from Crowdin 2023-12-05 00:11:33 +00:00
zoltanvb 358d7cc642
Add help text for controller drivers (#15977)
Added labels and help text for controller drivers. Help was skipped
for those drivers which likely have no alternative on the given
platform.
2023-12-04 13:42:34 -08:00
github-actions 0b18225664 Fetch translations from Crowdin 2023-12-04 00:12:23 +00:00
github-actions 11c0f3df69 Fetch translations from Crowdin 2023-12-03 00:12:16 +00:00
Jamiras 93e5566b9a
(cheevos) inform user when server is unreachable (#15970)
* ensure game placard is loaded on main thread

* show on-screen indicator while disconnected

* show server unreachable message in achievements menu

* remove comment
2023-12-02 05:33:13 -08:00
zoltanvb 12b6b68132
Fix videocore + switchres compile failure (#15971)
After commit f24893b, some definitions were not included when RA
is compiled with --enable-videocore option (RPi legacy driver).
2023-12-02 05:33:03 -08:00
github-actions 1fab694b76 Fetch translations from Crowdin 2023-12-02 00:11:09 +00:00
github-actions cc910ffcb6 Fetch translations from Crowdin 2023-12-01 00:12:54 +00:00
Eric Warmenhoven d2253c3de3
iOS/tvOS: create gl context as gles3 (#15958)
iOS 7+ supports gles3, which is backwards compatible with gles2. This
doesn't enable the glcore driver (which isn't working on ios yet), it
just changes the underlying context.

This fixes some of the rendering performance problems on mupen64plus_next.
2023-11-30 03:30:17 -08:00
Eric Warmenhoven 36d9bdc2da
iOS/tvOS: minor xcode cleanup (#15957)
This hopefully makes debug and release easier to manage by making
their C flags the same and moving the differences to the preprocessor
macros.
2023-11-30 03:30:08 -08:00
Eric Warmenhoven d657e5b701
xdelta support on macos/ios/tvos (#15964) 2023-11-30 03:29:46 -08:00
zoltanvb fd04c8ca57
Rebase of wakira's wp_fractional_scale_v1 support (#15965)
A rebase of earlier PR https://github.com/libretro/RetroArch/pull/15355
No changes added (except for one log).
2023-11-30 03:29:38 -08:00
github-actions fb864b889b Fetch translations from Crowdin 2023-11-30 00:11:43 +00:00
github-actions 0ffd3030bf Fetch translations from Crowdin 2023-11-29 00:11:44 +00:00
github-actions 7294dbe937 Fetch translations from Crowdin 2023-11-28 00:11:34 +00:00
Eric Warmenhoven 1aeac90d8c
Apple - don't call mkdir needlessly (#15954) 2023-11-26 19:34:56 -08:00
Eric Warmenhoven d8c444d44d
iOS - Default to not enabling keyboard gamepad (#15340) (#15955) 2023-11-26 19:34:45 -08:00
github-actions ee62cb5407 Fetch translations from Crowdin 2023-11-27 00:11:44 +00:00
Eric Warmenhoven d7708ad84a
iOS: allow ignoring the safe area (#11210) (#15951) 2023-11-26 04:59:22 -08:00
Eric Warmenhoven 2b820bdf10
iOS: Add option to disable respecting silent mode (#14928) (#15952) 2023-11-26 04:59:14 -08:00
github-actions f7b0e3e1c7 Fetch translations from Crowdin 2023-11-26 00:12:51 +00:00
github-actions 64bcbbc5b0 Fetch translations from Crowdin 2023-11-25 00:10:33 +00:00
Bobby Smith bd10a88a57
[Vulkan] Fix a validation error (#15946) 2023-11-24 11:23:58 -08:00
David G. F 0c6ecc53c7
Add LOAD_WITHOUT_CORE_INFO to Makefile (#15944) 2023-11-23 20:19:19 -08:00
Jesse Talavera-Greenberg cbf49a0b77
XDelta patch support (Take 2) (#15915)
* Add xdelta in deps

* Include <assert.h> in xdelta3.h

- Otherwise the static_assert calls can fail

* Build xdelta3 in Makefile.common

* Add xdelta support to the softpatching infrastructure

- The patching itself isn't fully implemented yet

* Adjust how xdelta3.h checks the sizes of some types

- Now checks max values instead of relying on autotools

* Add some enums that were excluded by the cherry-pick

* Remove stray whitespace

* Adjust SIZE macros in xdelta3.h

- Move them outside the XD3_USE_LARGEFILE64 block
- Add more SIZE declarations
- Make SIZEOF_UNSIGNED_LONG_LONG contingent on the presence of ULLONG_MAX

* Reintegrate xdelta support

* Enable support for xdelta's secondary compressors

- Necessary for some patches

* Fix some format specifiers

* Remove unnecessary files from xdelta

* Include xdelta3.h with a relative path

* Add xdelta3 headers to HEADERS variable

* Gate Xdelta support behind HAVE_XDELTA

- HAVE_XDELTA is on by default
- HAVE_PATCH is still required for HAVE_XDELTA to be meaningful
- Support is mostly contingent on the availability of LZMA
- Anything modern should be okay
- Legacy platforms (e.g. DOS) may need to have Xdelta support disabled
- At least until some other solution can be found

* Disable HAVE_XDELTA on platforms where the build recently failed

- These come from looking at the failed builds on GitHub
- These are guesses, and may turn out to be wrong

* Fix a potential memory leak

- Whoops, looks like I need to call two cleanup functions
- xd3_close_stream exists separately from xd3_free_stream

* Split the --help printout for --xdelta into its own strlcat call

- GCC was complaining about #ifdefs within macro arguments being non-portable

* Fix some incorrect printf format specifiers

* Modify Xdelta to adhere to C89

- It's mostly using RetroArch's INLINE macro instead of the inline keyword

* Slight cleanups

* Remove a stray comma that was hindering C89 builds

* Add XDelta support to CHANGES.md

* Change how the xdelta patch's name is computed

- To be in line with other recent refactoring

* Fix an incorrect merge

- Whoops, this part was from before I figured out how to get the size of a patched file

* Explain the song-and-dance behind computing a patched file's size

* Define some XDelta3-related constants to 0 on 32-bit platforms

* Adjust some Xdelta-related macro definitions

- Exclude the encoder, since we're not making patches
- Move some #defines to after inclusion of <stdint.h>, to fix undefined behavior
- Remove _WIN32_WINNT overrides, since they were for code that we're not using

* Fix Xdelta support

* Wrap an encoder-only function in `#if XD3_ENCODER`
2023-11-23 20:19:07 -08:00
github-actions 3e6ada7239 Fetch translations from Crowdin 2023-11-24 00:11:15 +00:00
Bobby Smith 3c25f19d80
[Win32] Fix window size when aspect ratio is < 0 (#15941) 2023-11-22 10:14:48 -08:00
Jamiras 39a44414ea
reinitialize rewind buffer after loading game with achievements (#15934)
* reinitialize rewind buffer after loading game with achievements

* fix #endif placement for HAVE_GFX_WIDGETS
2023-11-22 08:50:09 -08:00
sonninnos a40f695cb8
(XMB) Corrections and cleanups (#15935)
* (XMB) Corrections and cleanups

* (XMB) Wallpaper logic rework
2023-11-22 08:49:27 -08:00
revvv f188b7a824
Wii/Wii U: Fix 3 USB controllers. See #7015 (#15938)
Fixes commit a4b934b which did not update all array indices.
2023-11-22 08:49:12 -08:00
Jamiras c2f32a434d
don't track disc changes when achievements are disabled (#15939) 2023-11-22 08:48:45 -08:00
github-actions 4fd118f446 Fetch translations from Crowdin 2023-11-22 00:12:13 +00:00
github-actions 3b27e5b976 Fetch translations from Crowdin 2023-11-21 00:11:50 +00:00
sonninnos 598a0c0d37
(WASAPI) Shared buffer refactor + cleanup (#15929) 2023-11-19 08:44:25 -08:00
baidxi ee417c0f75
fix dynamic wallpaper bug (#15927)
Signed-off-by: juno <juno@debian.debian>
Co-authored-by: juno <juno@debian.debian>
2023-11-19 05:52:50 -08:00
Joe Osborn 46402732ba
update emscripten web testing docs (#15925) 2023-11-18 16:28:12 -08:00
github-actions 4578026186 Fetch translations from Crowdin 2023-11-18 00:10:54 +00:00
Jesse Talavera-Greenberg e76a507b4a
Update .gitignore (#15922)
Add libretro core backups to .gitignore
2023-11-17 11:26:05 -08:00
Jesse Talavera-Greenberg 1b03e388f8
Fix #15919 (#15923)
- Contentless support and populated content paths are not mutually exclusive in practice
- It just looked that way because most cores that support contentless mode to date don't use softpatching very much
2023-11-17 11:25:58 -08:00
Joe Osborn 0f4166a59f
Use ZipFS for web player asset bundle (#15924)
* wip

* fix mount path

* Fix path for zip bundle

* fix case where idbfs sets up correctly and filesystem initializes too early

* Use partfiles to keep each zip small

* use bufferview slices instead of resize to support firefox
2023-11-17 11:25:45 -08:00
github-actions 358c6946fe Fetch translations from Crowdin 2023-11-17 00:11:32 +00:00
sonninnos 3bf5b518bb
(GLUI) Icon corrections (#15914) 2023-11-16 09:41:03 -08:00
Jesse Talavera-Greenberg d84f50d0c9
Add some paths to .gitignore (#15917) 2023-11-16 09:40:56 -08:00
sonninnos dc0fbe9152
(WIN32) D3D11 prefer correction (#15916) 2023-11-16 09:40:45 -08:00
sonninnos 05a0931d2d
(WIN32) Prefer D3D11 and WASAPI (#15913) 2023-11-16 06:04:48 -08:00
github-actions 5366ad0b71 Fetch translations from Crowdin 2023-11-16 00:11:35 +00:00
sonninnos 191ca8dfe4
Default 'Bind Hold' to 0 (#15909) 2023-11-15 13:18:57 -08:00
Joe Osborn 499e12c655
replace dashes with underscores in core names (#15910) 2023-11-15 13:18:41 -08:00
sonninnos 2463188fed
(D3D11+12) Improve 'Max Frame Latency' logging (#15911) 2023-11-15 13:18:31 -08:00
Jamiras bbe7afcd82
(cheevos) use rc_client for state management (#15912)
* use rc_client for achievement processing

* log disconnect/reconnect messages

* address compiler warnings

* address c89 warning

* address c89 warning
2023-11-15 13:18:20 -08:00
Joe Osborn 936ff84204
Prefix core name with libretro_ for exports so that cores like 81, 2048 don't cause errors (#15908) 2023-11-15 02:08:12 -08:00
github-actions 064b530cc8 Fetch translations from Crowdin 2023-11-15 00:11:53 +00:00
sonninnos 38c77e9cfa
Revert "Log level prefix cleanup (#15852)" (#15907)
This reverts commit 2a51e66120.
2023-11-14 14:31:55 -08:00
Viačasłaŭ Chalikin 9e2da4ace7
Fix linux narrator (#15904)
* Fix forking process for narrator

* Use compatible languages for eSpeak
2023-11-14 09:52:19 -08:00
Eric Warmenhoven 2ce083393f
Nit: pass the write/read handlers in the correct order (#15902) 2023-11-14 09:51:51 -08:00
sonninnos b341d90c2e
Fix word wrapped widget length (#15905) 2023-11-14 09:51:43 -08:00
sonninnos f091b5a9e9
Move and relocate 'Frame Delay' (#15898) 2023-11-12 11:23:57 -08:00
github-actions e71a83e5c4 Fetch translations from Crowdin 2023-11-12 00:12:17 +00:00
sonninnos 9b97b40566
Enforce swap interval 1 in menu if vsync is on + Restore menu_throttle_framerate option (#15889)
* Enforce swap interval 1 in menu if vsync is on

* Restore menu_throttle_framerate option
2023-11-10 18:40:02 -08:00
fishcu b5303e347a
Change rotation type to int to maximize compatibility and to match glUniform1i (#15890)
* Change rotation type to int to maximize compatibility and to match glUniform1i

* Change to C style comment; Make comment more useful (hopefully)
2023-11-10 16:46:04 -08:00
fishcu 1b50470c96
Add FinalViewportSize support to GLSL (#15891)
* Change rotation type to int to maximize compatibility and to match glUniform1i

* Change to C style comment; Make comment more useful (hopefully)

* Add support for FinalViewportSize in GLSL
2023-11-10 16:45:20 -08:00
github-actions 833c4b5acd Fetch translations from Crowdin 2023-11-11 00:10:36 +00:00
sonninnos f20c8493b3
Use video refresh rate for menu frame limiting (#15886) 2023-11-09 16:36:19 -08:00
Bernhard Schelling 107283edc8
Updates to the netplay netpacket interface (#15887)
* Updates to the netplay netpacket interface
- Switch environment call number from 76 to 78 (retire 76 as it was never used by any core)
- Simplify broadcasts by removing the option to send to all but one client
- Separate explicit flushing and querying of incoming packet into two operations (RETRO_NETPACKET_FLUSH_HINT and retro_netpacket_poll_receive_t)
- Enable a core to specify a protocol version string which can get used instead of core version to determine compatibility between two players
- Log and notify a separate message when there is a content crc mismsatch to convey it being less severe (as different games may be able to do network communication with each other)

* C89 compile fix
2023-11-09 16:36:08 -08:00
github-actions c976fbb868 Fetch translations from Crowdin 2023-11-10 00:12:16 +00:00
sonninnos 866c6853ba
(XMB) Background image improvements (#15884) 2023-11-09 00:54:02 -08:00
github-actions 03dab11092 Fetch translations from Crowdin 2023-11-09 00:11:59 +00:00
github-actions 9dbb069b67 Fetch translations from Crowdin 2023-11-08 00:11:25 +00:00
github-actions a61812edea Fetch translations from Crowdin 2023-11-07 00:11:45 +00:00
Viačasłaŭ Chalikin 6b0313ed21
Fix: request builder for the AI Service (#15879) 2023-11-06 10:52:17 -08:00
Eric Warmenhoven 7237b6acfc
Enable HDR support in iOS. (#15871)
* Enable HDR support in iOS.

* Enable HDR support in tvOS.
2023-11-06 00:50:14 -08:00
zoltanvb c42498e531
Warning fixes. (#15877) 2023-11-06 00:04:17 -08:00
sonninnos e7a01dbf67
Silence signedness warning (#15875) 2023-11-05 17:22:11 -08:00
github-actions 55e03b5c3c Fetch translations from Crowdin 2023-11-06 00:11:25 +00:00
zoltanvb aaff36d024
Small fixes for signedness warnings. (#15873) 2023-11-05 15:33:49 -08:00
zoltanvb 701d22d935
PS2 usability fixes (#15861)
- Make sure logs are written before frontend deinit
- Add memory stats
- Add process_args to frontend to fix some cases when salamander cfg was not filled
- Add a missing include in case someone wants to compile for PS2 with HAVE_THREADS
2023-11-05 15:33:17 -08:00
Jamiras b43e1f3caf
prevent write-past-end-of-buffer when signed value wraps (#15868) 2023-11-05 15:32:46 -08:00
sonninnos 1a97b0edd4
Savestate thumbnail fixes (#15869) 2023-11-05 15:32:28 -08:00
zoltanvb e35afdb57a
Separate ffmpeg and audiomixer conditionals (#15872)
There are cases when mixer exists without ffmpeg. In such cases,
some music content can still be added to the mixer for playback.
Logic added to separate the two cases.
2023-11-05 15:32:14 -08:00
Andrew Gorbaty c9de6e5932
fix (#15874) 2023-11-05 15:31:43 -08:00
github-actions 3186b1dce3 Fetch translations from Crowdin 2023-11-05 00:11:58 +00:00
github-actions b703cd94da Fetch translations from Crowdin 2023-11-04 00:11:04 +00:00
Joe Osborn 862bebf687
(Emscripten) Modularize the JavaScript and clean up the web build (#15688)
* Increase emscripten stack size and decrease path size to fix emscripten builds broken since de45fc2

* use modularize flags for better-behaved javascript output

* makefile and loader changes

* use specialHTMLTargets to support modular access to canvas

* bind key events to canvas, not document

This way focus means focus and we can have multiple RA instances in
one page.

* Work around an emscripten bug in strict mode

* (Emscripten) Use console.error() for error messages

* increase asyncify stack size

* Fix `-lm` flag-related compile warnings in emscripten

---------

Co-authored-by: Rob Loach <robloach@gmail.com>
2023-11-02 13:25:50 -07:00
Jamiras 8523eaf5c0
[cheevos] upgrade to rcheevos 11.0 (#15859)
* update rcheevos

* update rcheevos
2023-11-02 11:52:36 -07:00
zoltanvb 636a6e9d55
Silence a format truncation warning (#15857)
This line generates a warning during compilation:

menu/menu_displaylist.c:11925:46: warning: '%d' directive output may be truncated writing between 1 and 3 bytes into a region of size 2 [-Wformat-truncation=]
11925 |                                        "Mode %d", toc->track[i].mode);
      |                                              ^~
menu/menu_displaylist.c:11925:40: note: directive argument in the range [0, 255]
11925 |                                        "Mode %d", toc->track[i].mode);
      |                                        ^~~~~~~~~
In file included from /usr/include/stdio.h:936,
                 from ./libretro-common/include/file/file_path.h:26,
                 from menu/menu_displaylist.c:27:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output between 7 and 9 bytes into a destination of size 7
   64 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   65 |        __bos (__s), __fmt, __va_arg_pack ());
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Since the value of the track mode should be either 1 or 2, a modulo 10 should not limit the displayed value, and it removes the warning.
2023-11-01 17:56:56 -07:00
github-actions e6621a4f71 Fetch translations from Crowdin 2023-11-02 00:11:31 +00:00
zoltanvb e7a10b2326
Fallback to screensaver inhibit via D-Bus on Wayland (#15856)
Some Wayland compositors (e.g. Phoc) don't implement Wayland's Idle
protocol. They instead rely on things like Gnome Screensaver.
2023-11-01 11:11:38 -07:00
libretroadmin 4cd68ddfbe (Video processor) C89 buildfix 2023-11-01 03:53:59 +01:00
github-actions 1fb66d8465 Fetch translations from Crowdin 2023-11-01 00:12:27 +00:00
sonninnos 2a51e66120
Log level prefix cleanup (#15852) 2023-10-31 15:52:02 -07:00
zoltanvb 232095797e
Set fixed locale for numbers, close to config read/write (#15782)
Move setlocale() closer to config file read/write.
2023-10-31 12:03:24 -07:00
LibretroAdmin 466e82f55d
Update sdl2_gfx.c 2023-10-31 12:01:00 -07:00
sonninnos 5a605099c6
Rename '3rd party' to 'third party' (#15851) 2023-10-31 11:58:50 -07:00
LibretroAdmin 249702a2e9
Update Android.mk - define HAVE_ACCESSIBILITY 2023-10-31 10:45:05 -07:00
sonninnos 220caa5143
Remove menu_throttle_framerate option (#15850) 2023-10-31 09:58:47 -07:00
Joe Osborn 3167529fbf
increase chunk size for reads/writes under emscripten (#15845) 2023-10-31 07:18:45 -07:00
Viačasłaŭ Chalikin 43105ab5c7
Add Belarusian language option (#15780) 2023-10-31 05:51:57 -07:00
zoltanvb 9d46953fa2
Exclude "System Volume Information" explicitly. (#15833) 2023-10-30 15:33:45 -07:00
Eric Warmenhoven dfeeb031fe
Fix mouse support for melondsds on osx (#15837) 2023-10-30 15:33:17 -07:00
Eric Warmenhoven cdb2549b2e
Sort playlists ignoring extension. (#15836)
"Sony - PlayStation 2" sorts before "Sony - PlayStation" because when
the menu sorts, it includes the `.lpl` extension, and space comes
before period.
2023-10-30 15:32:50 -07:00
github-actions a61f87ce8e Fetch translations from Crowdin 2023-10-30 00:12:00 +00:00
github-actions a6059473f6 Fetch translations from Crowdin 2023-10-29 00:12:21 +00:00
github-actions 6d1b76964e Fetch translations from Crowdin 2023-10-28 00:10:33 +00:00
github-actions 54805a1827 Fetch translations from Crowdin 2023-10-27 00:11:23 +00:00
sonninnos da59b8c9ac
Add 'Frame Rest' power saving option (#15834) 2023-10-26 04:20:48 -07:00
github-actions 4f8e3fabad Fetch translations from Crowdin 2023-10-26 00:11:14 +00:00
GavinDarkglider 5356afc750
Minor fixes to udev input drivers. Add support for canary builds to lakka updater stuff (#15818)
* Input: Udev: Fix touch support building against older kernel headers

* Input: Udev: Fix Touch Deep Debug compile issues

* Input: Joypad: Udev: Joypad: Add Change detection for udev events

This is handy with controllers like the Nintendo Joycons that have a daemon
app in the background to handle combining them into one controller(Joycond)

Since the device was already added, but joycond clamped permissions on evdev
retroarch was never updating the controller input change, this fixes that issue.

Note: Needs a patch in joycond as well, to send change uevent.

This shouldnt cause any issues with other controllers, as the kernel probably
will never send change events for these device types.

* Lakka: Add canary builds to updater
2023-10-25 08:19:00 -07:00
github-actions 535898da0d Fetch translations from Crowdin 2023-10-25 00:11:30 +00:00
sonninnos 06d5cd39fc
Set save redirect paths before set_environment (#15820) 2023-10-24 16:20:17 +02:00
Mike Erickson 7df3ca3064
fix:xinput disconnect lost gamepad (#15819)
Co-authored-by: ChenX <maple6@vip.qq.com>
2023-10-24 00:28:10 -07:00
zoltanvb 57e9a3e876
Fix for "no sound on PS2" (#15827)
Earlier refactor f121847e00
has removed CMD_EVENT_AUDIO_START (and stop), however on PS2 it
causes no sound, so it is added back behind a compiler switch.
2023-10-24 00:27:21 -07:00
Cpod12 274d47f957
Xunkar's AI service rework updated (#15640)
* AI service rework

* File missing

* Fixed C89 build

* Fixed usage of inline for C89 build

* Fixed an overlay unloading bug

Made sure to unload the overlay on release and when the server returns empty values in automatic modes.

* Fixed forward decl (c89)

* Fixed OpenGL texture loading

Moved image display to the main thread for now

* Changed some formatting slightly

* Fixed struct variable order and put brackets on newlines

* Moved pointer, fixed retroarch.cfg, and replaced strlcat with strlcpy

* Fixed catenation issue

* Fixed a few other catenation issues

* Fixed one more concatenation  issue

* Fixed concatenation issue

* Fixed a few other concatenation issues

* Fixed one more concatenation  issue

* potential fix for parsing issue

---------

Co-authored-by: Xunkar <329857+xunkar@users.noreply.github.com>
2023-10-24 00:27:06 -07:00
github-actions 126cb21177 Fetch translations from Crowdin 2023-10-24 00:11:31 +00:00
github-actions d46ede42dc Fetch translations from Crowdin 2023-10-23 00:11:44 +00:00
github-actions b53bce6877 Fetch translations from Crowdin 2023-10-22 00:12:04 +00:00
github-actions 7011d0c3de Fetch translations from Crowdin 2023-10-17 00:13:29 +00:00
sonninnos f69a29209f
Ignore menu event action in the end of function instead (#15811) 2023-10-16 08:45:23 -07:00
sonninnos e3becab18e
(Ozone) Thumbnail related fixes (#15810) 2023-10-16 06:56:54 -07:00
Eric Warmenhoven b71d09a31f
build fix - ios widget (#15809) 2023-10-16 06:56:45 -07:00
github-actions 2557282ea3 Fetch translations from Crowdin 2023-10-16 00:11:43 +00:00
zoltanvb 0f111e647f
Do not exclude browser and config directory settings if RGUI is disabled. (#15803) 2023-10-15 05:47:26 -07:00
Eric Warmenhoven 793cb0cfa3
Fix ios-vulkan-ppsspp, and a small cloud save fix (#15801) 2023-10-15 05:45:03 -07:00
Ophidon ce6a00b495
High Hz Synchronization (#15798)
* High Hz Synchronization

Makes adjustment to driver_adjust_system_rates and related functions to handle Hz skew adjustment for high refresh rates better, especially when using effective refresh modifiers like swap interval or BFI.

* Reorder for Build Fix

Reorder declaration for build fix
2023-10-14 06:57:40 -07:00
Eric Warmenhoven 777d96d20a
Clean up iOS/tvOS Xcode project, get the simulators working (#15799) 2023-10-14 06:57:09 -07:00
github-actions 575859e5d7 Fetch translations from Crowdin 2023-10-14 00:10:46 +00:00
Bernhard Schelling d096effe7f
When using the new core netpacket interface for netplay, don't synchronize the host SRAM to a joining client (#15797)
Fix netplay connection not getting marked as reusable while the new core netpacket interface is enabled
2023-10-13 10:53:22 -07:00
Eric Warmenhoven a8e6e5db29
Ignore compile_commands.json used by LSP servers (#15795) 2023-10-13 10:29:18 -07:00
Eric Warmenhoven 1247041d05
The default for load_dummy_on_core_shutdown for Apple should be true (#15794) 2023-10-13 10:29:05 -07:00
Eric Warmenhoven b6ee341507
iOS 17/Xcode 15 update: Fix iOS Widget (#15796) 2023-10-13 10:28:56 -07:00
github-actions 0ef36ab15f Fetch translations from Crowdin 2023-10-13 00:11:19 +00:00
Eric Warmenhoven e6e0d07081
iOS: If runloop_iterate returns an error, exit rather than crash. (#15791) 2023-10-12 03:42:48 -07:00
github-actions cb377f8232 Fetch translations from Crowdin 2023-10-12 00:10:01 +00:00
Eric Warmenhoven 7264c13b01
Fix Xcode 14.0.1 cross compile x86_64 build - only strip debugging symbols (#15786) 2023-10-11 03:54:08 +02:00
github-actions c86a25fd66 Fetch translations from Crowdin 2023-10-11 00:11:21 +00:00
libretroadmin 58f7051c61 Fix memory leak in PR #15762 2023-10-10 15:38:07 +02:00
github-actions 21b3baf7bd Fetch translations from Crowdin 2023-10-10 00:11:15 +00:00
github-actions f3c6550597 Fetch translations from Crowdin 2023-10-09 00:11:38 +00:00
github-actions 6e1dc98e24 Fetch translations from Crowdin 2023-10-08 00:12:04 +00:00
github-actions ec0f3af015 Fetch translations from Crowdin 2023-10-07 00:11:04 +00:00
GavinDarkglider 4387b0ab94
Lakka Switch Updates.... (#15754)
* Lakka: Switch: Decouple From LibNX builds.

* Lakka: Always show Power Management Settings menu

* Lakka: Switch: Add Nintendo Switch Options Menu, and First Option

* Lakka: Switch: Add CEC Toggle

* Lakka: Switch: Add Bluetooth ERTM Toggle

* Retroarch: unix platform:  Always display battery meter even when the device reports it as unknown
This is useful for most arm devices that have unknown battery status until charger state changes

* Retroarch: Lakka: Remove Gamemode stuff from build

Lakka will never include this, as it only runs base system, and retroarch.
2023-10-06 04:55:22 -07:00
XK 812c003a6a
Add support for joining MITM servers over cmdline (#15762)
* Add support for MITM servers over cmdline

* Address https://github.com/libretro/RetroArch/pull/15762#pullrequestreview-1654378806
2023-10-06 02:02:50 -07:00
Cpod12 e7eb588fb6
Fixed text in 16:9 for RGUI not scaling properly (#15768) 2023-10-05 23:18:40 -07:00
github-actions 2be13a59f7 Fetch translations from Crowdin 2023-10-05 00:11:14 +00:00
Joe Osborn 2baf9ec7e0
Enqueue replay record/playback until next frame (#15751)
* Enqueue replay record/playback until next frame

This fixes a bug where stdin commands activated via polling would
trigger replay record/playback in the middle of a frame, then input
checking would pull from them before the next frame came around---it
only makes sense to change the active replay in between frames, not
during them.

* fix comment syntax
2023-10-04 00:53:51 -07:00
github-actions 14cb3732eb Fetch translations from Crowdin 2023-10-01 00:12:39 +00:00
LibretroAdmin 0bbfba8137
Update vfs_implementation.c 2023-09-30 10:41:35 -07:00
greenchili2 fdd5e7cea0
Fix bug that was causing weirdness in Wii builds. (#15752)
Things like the info files not being read.  User defined directories not sticking ( likely not detected ) and all kinds of other goodness.
2023-09-30 10:38:32 -07:00
github-actions f427aaee8f Fetch translations from Crowdin 2023-09-30 00:11:17 +00:00
github-actions 085c2aaf9a Fetch translations from Crowdin 2023-09-29 00:10:50 +00:00
sonninnos 6c2cc45628
Prevent proceeding to next bind when single binding (#15746) 2023-09-28 06:57:20 -07:00
github-actions 5e09d2f3a5 Fetch translations from Crowdin 2023-09-28 00:11:11 +00:00
Rob Loach 0d6577ad07
Update Use Filename setting description (#15741)
The menu item for matching the thumbnails with filenames was just "Use Filename", which isn't that descriptive. This change tweaks it a bit so that the option is a bit more clear.

So happy to have this feature in place.
2023-09-27 05:52:57 -07:00
sonninnos 05ce35b103
Don't process menu events while input is being flushed (#15742) 2023-09-27 05:52:30 -07:00
github-actions 9a57ec29d5 Fetch translations from Crowdin 2023-09-27 00:11:08 +00:00
bulzipke 32ed9b6041
플레이리스트 롬파일 이름으로 썸네일 이미지를 찾도록 옵션 추가 (#15731) 2023-09-26 05:31:59 -07:00
sonninnos ea86be0a2b
Fix menu analog stick navigation (#15740) 2023-09-26 05:30:15 -07:00
github-actions 5dfae519ce Fetch translations from Crowdin 2023-09-26 00:11:01 +00:00
github-actions 9d67cc92c8 Fetch translations from Crowdin 2023-09-25 00:11:34 +00:00
github-actions 712b9350a5 Fetch translations from Crowdin 2023-09-23 00:10:31 +00:00
LibretroAdmin a2b8504363
Update default.txt 2023-09-22 13:37:26 -07:00
github-actions 041ae30103 Fetch translations from Crowdin 2023-09-21 00:11:17 +00:00
Eric Warmenhoven ef12e43522
Fix reading past the end of an allocated buffer. (#15713)
title_length is originally calculated to be the msg length, but later
if the task has a title then that is used instead, but the length is
not updated. If msg is longer than title, we read past the end of the
buffer.
2023-09-20 10:50:35 -07:00
Bernhard Schelling f33f5e2b87
UWP: Handle key presses while ALT is held down (#15680)
Also release held keys when unfousing the window (properly handle ALT+Tab on desktop)
UWP input event code cleanup
2023-09-19 06:09:58 -07:00
Giovanni Cascione c3a18e0469
Fix string_options_entries size for drivers settings list (#15710) 2023-09-18 16:53:41 -07:00
LibretroAdmin db2dc7a7de
Update CHANGES.md 2023-09-17 22:06:05 -07:00
LibretroAdmin a680bf2fa4
Update CHANGES.md 2023-09-17 21:59:48 -07:00
github-actions 90521927ba Fetch translations from Crowdin 2023-09-17 00:12:13 +00:00
sonninnos c5b2ed1382
More runloop menu state checking (#15700) 2023-09-15 17:20:27 -07:00
Giovanni Cascione c5b18b189a
Fix use of sizeof with const char pointers (#15705) 2023-09-15 17:19:42 -07:00
github-actions cbcb5df52a Fetch translations from Crowdin 2023-09-16 00:10:05 +00:00
github-actions 903f540c05 Fetch translations from Crowdin 2023-09-15 00:11:04 +00:00
Eric Warmenhoven 6e453b5ba0
Avoid crash if ozone sidebar_index_size is 0 (#15693) 2023-09-14 09:11:07 -07:00
Eric Warmenhoven c5f6175f12
Avoid a crash if there is no backed up config file on tvOS (#15694) 2023-09-14 09:11:00 -07:00
Eric Warmenhoven a8a33cf3c4
Fix accidental left/right keypresses on tvOS (#15696) 2023-09-14 09:10:49 -07:00
sonninnos b2790ca79c
Prevent stale menu state in runloop check (#15698) 2023-09-14 09:09:45 -07:00
github-actions 72841d6637 Fetch translations from Crowdin 2023-09-13 00:10:51 +00:00
sonninnos cf2ee94c9f
Correction for not showing mouse cursor with overlay (#15687) 2023-09-11 17:28:33 -07:00
github-actions ba1833de07 Fetch translations from Crowdin 2023-09-12 00:10:53 +00:00
github-actions a43494e9bb Fetch translations from Crowdin 2023-09-11 00:11:33 +00:00
github-actions 433989259e Fetch translations from Crowdin 2023-09-10 00:11:39 +00:00
sonninnos ca7231f47c
(Ozone) Prevent metadata and footer overlap (#15677) 2023-09-07 13:41:05 -07:00
github-actions f565879d5b Fetch translations from Crowdin 2023-09-07 00:11:04 +00:00
libretroadmin 3718fed79d Buildfix 2023-09-06 03:16:47 +02:00
sonninnos 0eeb9f918e
Fraction setting wraparound rounding correction (#15676) 2023-09-05 18:14:04 -07:00
libretroadmin bef29c466b Remove unneeded video_driver_set_gpu_device_string/get_gpu_device_string 2023-09-06 03:08:48 +02:00
libretroadmin 89376e3c41 Do away with one temp buffer 2023-09-06 02:50:56 +02:00
libretroadmin 050996ab0f Rewrite some strlcats 2023-09-06 02:37:24 +02:00
github-actions b1b8f23169 Fetch translations from Crowdin 2023-09-06 00:11:02 +00:00
sonninnos edd1b646e6
Show MIDI output first (#15675) 2023-09-05 11:53:55 -07:00
sonninnos 878ed7583c
Audio synchronization menu cleanup (#15674) 2023-09-05 07:56:47 -07:00
libretroadmin 553e30495b Remove unused variables 2023-09-05 14:55:39 +02:00
sonninnos 7661bde711
Count audio samples in stats when rate control is disabled (#15669) 2023-09-05 05:35:57 -07:00
github-actions 5b2ed5c9ee Fetch translations from Crowdin 2023-09-04 00:11:01 +00:00
sonninnos 8a510451f2
(Ozone) Sublabel scope test (#15670) 2023-09-03 15:20:45 -07:00
sonninnos 4d0110b278
Use refresh rate instead of core fps for frameskip timing (#15666) 2023-09-03 09:53:00 -07:00
Colin Kinloch 320ba73f90
Wayland: Get system wayland-protocols path via pkg-config (#15668) 2023-09-03 09:48:11 -07:00
libretroadmin 88437ca5a6 Rewrite input_state_get_last somewhat 2023-09-03 17:41:41 +02:00
libretroadmin dd3ceb40e9 Style nits 2023-09-03 17:37:00 +02:00
github-actions d1ea3b5d9c Fetch translations from Crowdin 2023-09-03 00:11:23 +00:00
libretroadmin bc91eb6ceb Cut down on some strlens for xdk 2023-09-03 00:04:25 +02:00
libretroadmin c2b81881ae Cleanups 2023-09-02 16:42:49 +02:00
sonninnos b89a750d43
(Ozone) Revert minimum font size enforcements (#15663) 2023-09-02 05:36:51 -07:00
github-actions 2e720fd9c1 Fetch translations from Crowdin 2023-09-02 00:10:19 +00:00
sonninnos ea1bdade61
Allow more keyboard actions with menu osk (#15662) 2023-09-01 15:48:55 -07:00
sonninnos 078df8ba39
(Ozone) Sublabel width tweak (#15657) 2023-09-01 02:25:33 -07:00
github-actions 7f49094635 Fetch translations from Crowdin 2023-09-01 00:11:43 +00:00
Rob Loach 3d484ec60e
(Language) Fix comments 2023-08-31 15:10:59 -04:00
Rob Loach a45ca11b10
(Language) Fix language detection in Canada to English
Canada's default language is often picked up as `en_CA.UTF-8`, which inadvertently gets discovered as `ca`, or Catalan. This means that if you're in Canada, you would end up getting Catalan as your default language.

Adding `en_CA` to the language list as British English fixes the language detection for Canadians. This must be indexed above Catalan's `ca` so that it uses English instead of Catalan.
2023-08-31 15:06:06 -04:00
github-actions 77ca6f7566 Fetch translations from Crowdin 2023-08-31 00:10:51 +00:00
libretroadmin b5887d9857 change bsv_key_data back in case struct layout matters 2023-08-30 18:20:58 +02:00
libretroadmin 712b821f78 Reorder 2023-08-30 11:11:04 +02:00
libretroadmin c82401dcb4 input_device_info - slim down - we don't need config_path and some of
the char arrays can be much smaller
2023-08-30 08:34:21 +02:00
libretroadmin 94accbb6ef Nits 2023-08-30 06:36:38 +02:00
github-actions 688f76f81d Fetch translations from Crowdin 2023-08-30 00:10:57 +00:00
yoshisuga 437ed733f5
Fixed compiler flag check for swift (#15654) 2023-08-29 03:30:52 -07:00
GABO1423 f654d1bf30
(UWP/Menu) Small Tweaks (#15653) 2023-08-28 20:53:35 -07:00
greenchili2 bb581e6cbe
Fix modifier keys ( shift, ctrl, alt ) as well as F10 not being detected on the UWP platform. (#15651)
* Update uwp_main.cpp

Fix modifier keys ( shift, ctrl, alt ) as well as F10 not being detected on the UWP platform.

* Update uwp_main.h

Fix modifier keys ( shift, ctrl, alt ) as well as F10 not being detected on the UWP platform.
2023-08-28 19:28:39 -07:00
sonninnos 600beba18b
Check menu toggle before menu event (#15646) 2023-08-27 15:48:47 -07:00
GABO1423 01662ec228
(UWP) Small Tweaks (#15647) 2023-08-27 15:48:39 -07:00
github-actions 89a67e588b Fetch translations from Crowdin 2023-08-27 00:11:53 +00:00
github-actions 83ae1876b2 Fetch translations from Crowdin 2023-08-26 00:09:37 +00:00
sonninnos 2623f8d085
(XMB+Ozone) Animation corrections (#15645) 2023-08-25 13:02:19 -07:00
github-actions 2bb955fe19 Fetch translations from Crowdin 2023-08-25 00:11:19 +00:00
github-actions 1fd792b13b Fetch translations from Crowdin 2023-08-24 00:11:11 +00:00
sonninnos 60ba927f15
Menu visibility list correction (#15642) 2023-08-23 07:59:15 -07:00
sonninnos 45663afc3f
Add more missing sublabels (#15639) 2023-08-22 18:29:45 -07:00
github-actions 4f0c756514 Fetch translations from Crowdin 2023-08-23 00:11:12 +00:00
sonninnos ab1e5c37ca
Add PAL threshold option for automatic refresh rate switch (#15636) 2023-08-22 14:56:15 -07:00
yoshisuga 6b0a5c978e
tvOS: Add target conditionals to fix tvOS build (#15637)
* Add target conditionals to fix tvOS build

* Use TARGET_OS_IOS for iOS
2023-08-22 14:55:59 -07:00
sonninnos 34b71339de
Configuration 'populate_settings_*' cleanup (#15635) 2023-08-22 08:34:29 -07:00
sonninnos 5533f3881f
Prevent directory creation on bogus thumbnail downloads (#15634) 2023-08-21 23:07:38 -07:00
sonninnos 785ff20437
Menu value label cleanup (#15632) 2023-08-21 23:07:16 -07:00
yoshisuga cb2cc58f98
iOS: Support a helper bar button to lock the current orientation (#15633)
* iOS: Support a helper bar button to lock the current orientation

* Moved init of shouldLockCurrentInterfaceOrientation property to iOS specific #if
2023-08-21 23:05:34 -07:00
github-actions cf9947b7c7 Fetch translations from Crowdin 2023-08-22 00:11:08 +00:00
sonninnos dec6c0ca31
Remap label fix when no autoconf profile active (#15631) 2023-08-21 17:05:04 -07:00
sonninnos 12136ad516
Add 'Save As' option for remaps and overrides (#15630) 2023-08-21 16:11:48 -07:00
github-actions a6435775e4 Fetch translations from Crowdin 2023-08-21 00:10:38 +00:00
sonninnos b782111025
Move 'systemfiles_in_content_dir' from Saving to Core (#15629) 2023-08-20 14:56:41 -07:00
sonninnos 213060a00a
Allow launching built-in cores with '-L' (#15627) 2023-08-20 12:39:18 -07:00
zoltanvb 7a475c7195
Remove some temporary buffers (#15624) 2023-08-20 10:59:15 -07:00
libretroadmin 10c60cdd4d Rewrite retro_vfs_file_remove_impl 2023-08-20 05:36:03 +02:00
libretroadmin d167c4f62e (PSL1GHT) Buildfix 2023-08-20 04:56:19 +02:00
libretroadmin a9733ab418 (VFS/libretro-common) Cleanups 2023-08-20 04:29:42 +02:00
libretroadmin 8debf4b88e (wiiu_joypad.c) Small cleanups 2023-08-20 04:06:48 +02:00
github-actions 2b3bfbe89a Fetch translations from Crowdin 2023-08-20 00:11:22 +00:00
Jamiras e3d64ab118
prevent frame step when hitting rewind button while paused in hardcore (#15622) 2023-08-19 12:43:15 -07:00
github-actions a8ed353ce4 Fetch translations from Crowdin 2023-08-19 00:09:29 +00:00
sonninnos 741ff766ea
Change default playlist last played time format (#15618) 2023-08-18 15:33:59 -07:00
sonninnos eb0124d6d7
(WASAPI) More logging cleanups (#15619) 2023-08-18 15:33:47 -07:00
sonninnos c512e02cc0
(Ozone) Mouse hover selection fix (#15615) 2023-08-18 12:38:45 -07:00
sonninnos 3246bc6655
Add visibility option for save state notifications (#15616) 2023-08-18 12:38:36 -07:00
sonninnos c708187cd2
Search box usability improvements (#15617) 2023-08-18 12:38:29 -07:00
Jamiras ee7735f82e
still call callback on network error (#15614) 2023-08-17 18:29:46 -07:00
github-actions ede69b4b6b Fetch translations from Crowdin 2023-08-18 00:11:54 +00:00
sonninnos e220e8d234
'Updater Settings' relocation (#15613) 2023-08-17 15:28:45 -07:00
Ryunam c5c86fe5e8
Allow all systems to check for backslashes (Windows) as last slash in path. Improves portable core logic (#15612) 2023-08-17 14:15:42 -07:00
libretroadmin 24287b1cce Cleanups/simplifications 2023-08-17 21:58:41 +02:00
sonninnos ed4e7abeb1
Reinit after updating autoconf profiles (#15611) 2023-08-17 11:50:10 -07:00
libretroadmin 9ae1a5fbee Simplify _PSUPP_BUF and make it not use strlen 2023-08-17 19:14:31 +02:00
libretroadmin f53ada6489 Cleanups, style nits, try to reduce some more strlens, etc. 2023-08-17 18:20:45 +02:00
sonninnos 0dafa3ca1a
Reorganize settings menu (#15610) 2023-08-17 08:38:52 -07:00
metallic77 0cc88ed079
Add files via upload (#15609) 2023-08-17 06:12:35 -07:00
Eric Warmenhoven db39d78b8c
cloudsync: Don't sync playlists (#15608) 2023-08-16 22:04:55 -07:00
sonninnos 408d5cdd28
Reorganize 'Saving' menu (#15607) 2023-08-16 18:08:08 -07:00
sonninnos c44e2d46d9
(XMB) Message/help box adjustments (#15606) 2023-08-16 18:07:51 -07:00
github-actions fa444fc9ed Fetch translations from Crowdin 2023-08-17 00:10:49 +00:00
Jamiras 58f547bfe1
disallow video_swap_interval and black_frame_insertion in hardcore (#15605) 2023-08-16 14:17:54 -07:00
libretroadmin c5088ce2ca Silence some warnings and general cleanups 2023-08-16 22:08:01 +02:00
libretroadmin e5ef309b58 get_bind_string_joyaxis - small simplification 2023-08-16 20:29:40 +02:00
libretroadmin d6ae25d980 Don't add to len variable if not used 2023-08-16 20:26:15 +02:00
sonninnos de45fc2f5f
Input binding rework (#15603)
* Input binding rework

* Controller info logging cleanup
2023-08-16 11:13:14 -07:00
libretroadmin 4dd3b022f1 (CTR) Cut down on runloop_get_flags calls 2023-08-16 19:53:59 +02:00
libretroadmin c6c7c343df video_frame_info - more flags 2023-08-16 19:47:24 +02:00
libretroadmin bc41e0fdf4 video_frame_info - start passing flags 2023-08-16 19:17:23 +02:00
hunterk 538aa5235c
fix broken discord invite (#15602)
the old invite had expired, i guess? closes https://github.com/libretro/RetroArch/issues/15568
2023-08-16 08:55:27 -07:00
libretroadmin 5f94f36204 Explicit typecasts to bool 2023-08-16 17:10:59 +02:00
libretroadmin 1b128c61d6 Cut down on one additional strlen call 2023-08-16 16:07:53 +02:00
libretroadmin e407d9a7b2 (Udev) style nits/cleanups 2023-08-16 15:45:50 +02:00
GABO1423 1ccb049ecb
(UWP) Update x64 ANGLE Files (#15600) 2023-08-16 05:59:01 -07:00
Max Kupriianov 2f16e115a7
[android] fix d-pad regression introduced in abcd42777f (#15601) 2023-08-16 05:58:44 -07:00
libretroadmin 0a96f9595c Explicit typecasts to bools for flags 2023-08-16 04:18:55 +02:00
libretroadmin f51b49f213 More explicit typecasts to bools 2023-08-16 03:22:02 +02:00
libretroadmin cb0653137f Style nits/cleanups 2023-08-16 02:40:59 +02:00
libretroadmin c699e47534 Small style nits and plain sense cleanups 2023-08-16 01:14:50 +02:00
libretroadmin 797c7ff381 Some more explicit typecasts to bools 2023-08-16 00:33:59 +02:00
libretroadmin dadb5a6f41 Explicit typecasts to bool 2023-08-16 00:21:19 +02:00
libretroadmin bd7a0f7f0a Explicit typecast to bool for some flag to bool conversions 2023-08-16 00:16:03 +02:00
vailkyte 139d7f3836
MSVC2010 - fix invisible menu display on winxp (#15599)
Explicit typecast to bool
2023-08-15 15:00:13 -07:00
libretroadmin 3862069cb7 (Qt) Small cleanups 2023-08-15 23:58:54 +02:00
Max Kupriianov abcd42777f
refactor: rewrite input handling to better support AINPUT_SOURCE_STYLUS (#15597)
Resolves issues with S-Pen on Samsung devices, also adds support for S-Pen button
that is handled as r-mouse click now.
2023-08-15 11:13:53 -07:00
libretroadmin 2d2cb04589 Merge video_coord_array.c into video_driver.c 2023-08-15 16:02:12 +02:00
libretroadmin 40a0ced947 Be consistent with frontend_driver_get_core_extension - core extension
var should at most be 16 chars big, make only one exception once
2023-08-15 15:01:57 +02:00
libretroadmin 1765d491d1 Some minor cleanups - use size_t for return value of strlen,
extensions don't need 256-char arrays, etc.
2023-08-15 14:54:13 +02:00
libretroadmin f34481c332 Fix linking issue when building with --disable-menu 2023-08-15 14:44:54 +02:00
ScoochAside 2f9c4ebea2
Fix issue #15595. (#15596)
Co-authored-by: miguedevel <tete333@hitmail.com>
2023-08-15 05:36:34 -07:00
GABO1423 f3e5bb9e06
(UWP) Build Flag Tweaks (#15594) 2023-08-14 17:40:14 -07:00
sonninnos d5c09b65e0
Don't write bogus thumbnails to disk (#15593) 2023-08-14 17:29:53 -07:00
github-actions 187af501ed Fetch translations from Crowdin 2023-08-15 00:10:50 +00:00
libretroadmin af03e555d6 Fix - should look for these headers in system directories 2023-08-14 23:39:15 +02:00
libretroadmin c8e6506687 Fix --disable-menu errors 2023-08-14 23:36:19 +02:00
Eric Warmenhoven ae78395d83
iOS/tvOS: rework JIT availability checks (#15590) 2023-08-14 06:41:43 -07:00
github-actions 946c198e7b Fetch translations from Crowdin 2023-08-14 00:11:17 +00:00
github-actions 89e7e74315 Fetch translations from Crowdin 2023-08-13 00:10:53 +00:00
Jesse Talavera-Greenberg 954b04669c
Add an environment call for querying the device's battery (#15387)
* First crack at RETRO_ENVIRONMENT_GET_POWER_STATUS

* First crack at RETRO_ENVIRONMENT_GET_POWER_STATUS

* Remove a stray comma

* Rename some symbols for clarity

* Change some references to the old environment call's name

* Fix some mixed-up cases in checking the power state

- I misunderstood the meaning of these enums

* Add a comment

* Rename seconds_remaining to seconds

* Clarify some comments about the power state

* Adjust power state behavior

- Don't return 0 seconds; instead, return NO_ESTIMATE
- Don't force percent to 100 in the CHARGED state

* Adhere to C89

* Mention the environment call in CHANGES.md
2023-08-12 16:41:05 -07:00
Eric Warmenhoven ee75111a48
iOS/tvOS: Compile with -DHAVE_CHD (#11099) (#15588) 2023-08-12 16:33:32 -07:00
libretroadmin 5f79c13928 Small cleanups 2023-08-12 18:59:29 +02:00
Cpod12 904e9fbe1d
Added 21:9 as an option to RGUI (#15572)
* added 21:9 as an option to RGUI

* reverted files that weren't supposed to be changed

* fixed issue with 21:9 not showing in the menu and corrected buffer width
2023-08-12 05:51:12 -07:00
Eric Warmenhoven 6dee7225f3
webdav: HTTP 405 is an acceptable error (#15583) 2023-08-12 05:47:07 -07:00
zoltanvb 7198f10875
Remove a needless temporary buffer from runtime_log_get_runtime_str() (#15585) 2023-08-12 05:47:00 -07:00
zoltanvb b554d7e26c
Removal of remaining msg_hash_xx.c files (#15586)
Followup for PR#15218, remove the two remaining files and simplify
a few functions in msg_hash.c as a result.
2023-08-12 05:46:35 -07:00
zoltanvb 0c64a07cdb
Fix runtime display. (#15581)
Due to an error in 631301b3f7, the
runtime display string was working well only when the label had
a length of 7. Even the English "Runtime:" was a bit truncated
as a space was supposed to be added after the :, but it was
even more noticeable in other languages.
2023-08-11 14:16:50 -07:00
sonninnos 6733d6da57
Revert network address information trimming (#15573) 2023-08-11 07:17:53 -07:00
sonninnos d8f9310100
(DINPUT) Mouse flag cleanup (#15575) 2023-08-11 07:17:07 -07:00
github-actions 717f79773c Fetch translations from Crowdin 2023-08-11 00:10:29 +00:00
Joe Osborn 679083a08b
Graceful fallback to readonly mode if RDB can't be opened readwrite (#15569)
* Graceful fallback to readonly mode if RDB can't be opened readwrite
* let RA open db readonly
2023-08-10 11:04:47 -07:00
GABO1423 d0d1321ac1
(UWP) Remove ARM/ARM32 Build Configuration (#15564) 2023-08-09 01:39:05 -07:00
GABO1423 0a510d7055
(UWP) Fix d3d12 Driver in Debug Builds (#15567) 2023-08-09 01:37:20 -07:00
github-actions 09e471931d Fetch translations from Crowdin 2023-08-09 00:12:34 +00:00
Eric Warmenhoven 3ef31d2eee
cloud sync: clean up directory/filename mapping, log errors (#15561) 2023-08-07 20:43:22 +02:00
github-actions fa80e5e6be Fetch translations from Crowdin 2023-08-07 00:12:40 +00:00
Joe Osborn f4ed975d44
Force async emscripten when HAVE_AL (#15559) 2023-08-07 01:20:59 +02:00
Eric Warmenhoven fcedac5d0d
strlen -> STRLEN_CONST, fix warning (#15555) 2023-08-06 09:17:47 +02:00
sonninnos f1c144ea50
(XMB) Color + background adjustments (#15556)
* (XMB) Color + background adjustments

* (XMB) Improve font selector
2023-08-06 09:17:38 +02:00
github-actions 796fa81909 Fetch translations from Crowdin 2023-08-06 00:11:55 +00:00
sonninnos 0db5c65461
Appearance menu cleanup (#15554) 2023-08-05 17:00:25 +02:00
Eric Warmenhoven 599eda1ece
webdav - Fix directory creation when using Digest auth (#15551) 2023-08-05 14:01:21 +02:00
Eric Warmenhoven 20f48ea800
cloud sync - fix a couple manifest management bugs (#15552) 2023-08-05 13:59:10 +02:00
github-actions d33758ad45 Fetch translations from Crowdin 2023-08-05 00:11:33 +00:00
sonninnos 0f0a522a0c
Always show 'Integer Scale Overscale' menu item (#15546) 2023-08-04 09:21:02 +02:00
Eric Warmenhoven 893b0d142e
Cloud Sync (#15548)
* cloud sync - algorithm and abstract cloud storage API

* WebDAV cloud sync driver, and associated net_http improvements

* Cloud sync settings menu
2023-08-04 09:20:50 +02:00
sonninnos 45af11efe9
Fix menu sounds after loading core (#15539) 2023-08-03 13:40:40 +02:00
gouchi 502db576d6
Add ReactOS to the list of supported operating systems (#15542)
https://nitter.net/reactos/status/1481883782944677888#m
2023-08-03 13:40:31 +02:00
github-actions 18a76ebb4e Fetch translations from Crowdin 2023-08-03 00:11:32 +00:00
github-actions b414388224 Fetch translations from Crowdin 2023-08-02 00:11:21 +00:00
sonninnos 5004e38fb9
(RGUI) Add 'Auto' aspect ratio (#15538) 2023-08-01 06:35:29 +02:00
sonninnos dbdcf1482e
Show also lightgun bind labels instead of only 'N/A' (#15535) 2023-07-31 05:12:21 +02:00
neil4 0b9e5975f5
(Android) Only update retroarch.cfg on startup if version changed (#15536) 2023-07-31 05:11:59 +02:00
github-actions 073922119b Fetch translations from Crowdin 2023-07-31 00:12:29 +00:00
sonninnos cf42a200b4
(WIN32) Fix Pause vs NumLock in dinput/sdl2 (#15533) 2023-07-30 09:50:08 +02:00
neil4 fbd8498686
Overlays: Apply range_mod only for the touch inputs that trigger it (#15534) 2023-07-30 09:49:59 +02:00
github-actions e6aba004a6 Fetch translations from Crowdin 2023-07-30 00:12:31 +00:00
sonninnos 62f3840e38
Prevent left-right hold in boolean menu items (#15530) 2023-07-29 04:59:59 +02:00
Jamiras e1c366317a
allow callback to look at response BODY even when HTTP status code indicates failure (#15532) 2023-07-29 04:59:44 +02:00
Subs 62e6439329
[CRT] Update switchres (new PR) (#15526)
* Remove deps/switchres to update it right after

* Squashed 'deps/switchres/' content from commit 4df022c68a

git-subtree-dir: deps/switchres
git-subtree-split: 4df022c68a43b6481e18d5aa8e0ea27481291d1a
2023-07-28 01:39:39 +02:00
Joseph C. Osborn 05b14ec3e4 fix c89 build 2023-07-28 00:34:52 +02:00
Joseph C. Osborn 389ed2a5e3 Fix index creation and lookup logic 2023-07-28 00:34:52 +02:00
sonninnos f121847e00 Don't stop audio on menu toggle 2023-07-27 22:15:58 +02:00
sonninnos 376e47f99a CLI dbscan reinit flag correction 2023-07-27 02:20:30 +02:00
sonninnos 95cb3383d9 Log initial core av_info 2023-07-27 02:20:21 +02:00
github-actions 4f97872d02 Fetch translations from Crowdin 2023-07-27 00:11:14 +00:00
sonninnos e258235459 Save 'overwrite_playlist' to manual scan playlist 2023-07-26 15:57:49 +02:00
sonninnos 9af0d5f5ef Remove microphone driver disabled logging 2023-07-25 19:47:09 +02:00
zoltanvb 5d94bb36fb Recalculate animation end position if layout changes after start. 2023-07-25 10:18:01 +02:00
sonninnos 1805484a6f Playlist + Explore corrections + cleanups 2023-07-24 17:59:23 +02:00
github-actions 1b23ed1f00 Fetch translations from Crowdin 2023-07-24 00:12:40 +00:00
github-actions 62cc2431b3 Fetch translations from Crowdin 2023-07-22 00:11:37 +00:00
sonninnos 18414cf526 (Android) Reduce default menu scale 2023-07-21 22:32:01 +02:00
Colin Kinloch 2cb787c5bf (Wayland) Apply output scale to touch inputs 2023-07-21 22:31:51 +02:00
github-actions 2f7b330edc Fetch translations from Crowdin 2023-07-21 00:11:47 +00:00
Jesse Talavera-Greenberg d9207c924e Add a stub ffmpeg camera driver 2023-07-20 15:28:16 -04:00
Jesse Talavera-Greenberg 3e10389106 Create the file where the ffmpeg camera driver will be implemented 2023-07-20 15:14:30 -04:00
sonninnos 8bdf0e157d Shader preset save fix + cleanup 2023-07-20 17:44:43 +02:00
sonninnos a821b13b13 Fix window title after video reinit 2023-07-20 14:36:55 +02:00
sonninnos 663817bc1f Reorder Input Settings menu 2023-07-20 10:28:15 +02:00
github-actions 4102fb3ba3 Fetch translations from Crowdin 2023-07-20 00:12:06 +00:00
Eric Warmenhoven 286ce51277 iOS: use haptic engine instead of feedback generator for device rumble 2023-07-19 22:13:35 +02:00
sonninnos 2d66b5f863 Add separate sublabel for remap port controls 2023-07-19 22:13:15 +02:00
Rob Loach 1056e8cbca ozone: Tweak Dracula colours a bit 2023-07-18 21:26:31 +02:00
sonninnos c798cbaf3f Enable overlay by default only on mobile + winraw overlay fix 2023-07-18 21:26:23 +02:00
libretroadmin 9337facd49 Some style nits + cleanups 2023-07-18 17:07:36 +02:00
libretroadmin 770b9920f5 Cleanups:
* No implicit memsets for texture_image
* Replace some calls with concatenated strlcpys
* Some style nits
2023-07-18 16:46:54 +02:00
sonninnos 27d5152247 Explore menu usability improvements 2023-07-18 15:59:32 +02:00
sonninnos 459fa1b838 (WIN32) Fix startup windowed scale 2023-07-18 13:34:36 +02:00
sonninnos 4f747d366a (XMB) Entry index cleanup 2023-07-18 13:16:25 +02:00
github-actions 4c827a3f12 Fetch translations from Crowdin 2023-07-18 00:15:43 +00:00
LibretroAdmin aa7b82e82d
Update CHANGES.md 2023-07-18 00:36:00 +02:00
libretroadmin 2eee87f714 (Vulkan) Cleanups 2023-07-18 00:08:55 +02:00
sonninnos ed9e1064bb (XMB) Explore list thumbnail + ticker fixes 2023-07-17 23:48:07 +02:00
sonninnos 0a843e8624 (XMB) Playlist entry index fix 2023-07-17 23:48:07 +02:00
sonninnos f67912bfa8 Move playlist manager core association options downwards 2023-07-17 23:48:07 +02:00
sonninnos f567c45869 Improve 'Set Core Association' menu 2023-07-17 23:48:07 +02:00
libretroadmin 11d5775318 (D3D12) Get rid of some implicit memsets 2023-07-17 23:45:34 +02:00
libretroadmin 62e4779fee (D3D12) Get rid of some implicit memsets 2023-07-17 23:12:40 +02:00
libretroadmin ae4e5d34f8 Get rid of some implicit memsets 2023-07-17 19:51:18 +02:00
libretroadmin 8aa0679cbd Fix regression 2023-07-17 17:49:49 +02:00
libretroadmin 55996bc9b6 Silence warnings 2023-07-17 17:43:50 +02:00
libretroadmin f8bda96fa4 (Vulkan) Get rid of some implicit memsets 2023-07-17 17:30:17 +02:00
libretroadmin 1743e8244b Avoid some implicit memsets 2023-07-17 16:53:46 +02:00
LibretroAdmin 6378a3aea2
Update index.html (Emscripten) - Remove banner 2023-07-17 15:46:22 +02:00
libretroadmin 7105e0508c Fix compilation issue for some platforms 2023-07-17 15:30:56 +02:00
libretroadmin f1c651053f - Use VK_FALSE/VK_TRUE consistently for Vulkan structts
- Some minuscule changes to file_path.c
2023-07-17 15:27:34 +02:00
libretroadmin a5f2903253 Simplify path_basename 2023-07-17 15:13:13 +02:00
libretroadmin d26c4e52b3 Fix history download thumbnail issue 2023-07-17 15:06:29 +02:00
libretroadmin 35936e20c7 Fix DISPLAYLIST_ARCHIVE_ACTION 2023-07-17 13:07:41 +02:00
libretroadmin a4b81527e0 Bump version 2023-07-17 12:46:49 +02:00
sonninnos 96bb0bee55 (XMB) Playlist label limit fixes 2023-07-17 12:28:44 +02:00
libretroadmin 4a411eb1e5 Cut down on strlcats and use strftime return value 2023-07-17 11:26:48 +02:00
libretroadmin 40049274b2 string_list_join_concat - cut down on one strlcat 2023-07-17 10:33:01 +02:00
libretroadmin fe1297cc33 (file_path.c) Cut down on some strlcats 2023-07-17 10:09:34 +02:00
libretroadmin aeff636a0f Minor cleanups to config_file.c 2023-07-17 09:45:52 +02:00
github-actions 6651fcb92b Fetch translations from Crowdin 2023-07-17 00:14:41 +00:00
libretroadmin 5e614ea19c Update 2023-07-16 23:04:53 +02:00
libretroadmin 35c512d5ba Get rid of some impicit memsets 2023-07-16 22:51:09 +02:00
libretroadmin 6e06f14180 Cut some more strlcat calls 2023-07-16 22:21:43 +02:00
libretroadmin 07f22270f7 (video_crt_switch.c) C89 build fixes 2023-07-16 20:50:35 +02:00
libretroadmin eb01ce0c09 Simplify archive_file 2023-07-16 19:55:58 +02:00
libretroadmin 4b6bd83780 Replace some more strlcat calls 2023-07-16 18:33:34 +02:00
libretroadmin bd090dea71 Replace more strlcat calls 2023-07-16 18:07:49 +02:00
libretroadmin d15de21da5 Cleanups 2023-07-16 17:14:10 +02:00
libretroadmin ba492e9614 Move thumbnail_path_data to menu_st - cut down on code duplication in
menu_drivers
2023-07-16 09:46:08 +02:00
libretroadmin c72bcd96e9 Buildfix 2023-07-16 08:12:05 +02:00
libretroadmin be65a13102 Cut down on update_title code duplication 2023-07-16 08:00:49 +02:00
github-actions d53b397b48 Fetch translations from Crowdin 2023-07-16 00:15:21 +00:00
Rob Loach 62af42a182 ozone: Update Dracula theme 2023-07-15 22:34:17 +02:00
libretroadmin 4aa2ac3945 Cleanups - turn some functions static, some variable removals 2023-07-15 22:28:45 +02:00
libretroadmin 3c1e64129e Cutdown on some strlens 2023-07-15 19:35:19 +02:00
libretroadmin f39f1f6ff2 Make sure core_info_find is called first before using the data struct 2023-07-15 16:00:48 +02:00
libretroadmin 5b52dd4965 Fix crash - core_info_find has to come first 2023-07-15 15:54:49 +02:00
libretroadmin 9fc1229bb1 replace some strlcats with strlcpy 2023-07-15 15:37:26 +02:00
libretroadmin e1af98cc43 Cleanups/some code duplication removal 2023-07-15 15:14:26 +02:00
libretroadmin 2785d2d74b Rewrite create_string_list_rdb_entry_{string|int} 2023-07-15 14:02:12 +02:00
libretroadmin 19ae344141 Cut down on more implicit strlens 2023-07-15 10:21:50 +02:00
libretroadmin 3f84724106 Fix typo 2023-07-15 09:56:07 +02:00
libretroadmin 947249ac25 Cut down on more strlens 2023-07-15 09:52:47 +02:00
libretroadmin 74959de48e Silence warning 'rv might be uninitialized' 2023-07-15 09:28:21 +02:00
libretroadmin 98ee9a753c Cut down on some implicit strlens 2023-07-15 09:10:16 +02:00
Eric Warmenhoven b1fdbb9a37 netplay discovery through bonjour/mdns 2023-07-15 08:25:27 +02:00
libretroadmin a33ec20c21 Silence warning 2023-07-15 07:55:04 +02:00
libretroadmin cd8fffe5d3 Rename all local variables for retro_system_info to sysinfo 2023-07-15 07:45:20 +02:00
libretroadmin cf0d0e93a6 rarch_system_info_t local vars should be renamed from 'system'
to 'sys_info' to avoid false positive code analysis errors
2023-07-15 07:22:38 +02:00
libretroadmin 2acaa1f888 Fix cast warning 2023-07-15 06:30:26 +02:00
sonninnos ab4debec01 All Users Control Menu fixes 2023-07-15 06:28:51 +02:00
Ethan O'Brien 71fe2624d2 Cleanup 2023-07-14 21:24:15 +02:00
Ethan O'Brien 5a1f20a999 Cleanup 2023-07-14 21:24:15 +02:00
Ethan O'Brien 24b410476b Fix emscripten sleep 2023-07-14 21:24:15 +02:00
Ethan O'Brien e5c0ab17e4 Make openal default audio driver 2023-07-14 21:24:15 +02:00
libretroadmin 20f151d42e menu_displaylist_parse_playlist - avoid some implicit strlens 2023-07-14 18:25:33 +02:00
libretroadmin 9e34f22a29 Silence Xcode code warnings + general cleanups 2023-07-14 18:05:54 +02:00
sonninnos 227a9ec34a Allow adjusting screenshot flash without notification enabled 2023-07-13 17:02:33 +02:00
github-actions 4e849fa49e Fetch translations from Crowdin 2023-07-13 00:13:23 +00:00
github-actions ebd9f2a8d1 Fetch translations from Crowdin 2023-07-11 00:14:46 +00:00
Vlad Cuciureanu 2adca0f33c Fix typo in Emscripten README.md 2023-07-11 01:03:29 +02:00
Eric Warmenhoven 123b218725 Revert "Compile in CoreText font renderer on macos/ios/tvos"
This reverts commit 9320122252.
2023-07-11 01:03:14 +02:00
github-actions 54f542a3da Fetch translations from Crowdin 2023-07-10 00:13:27 +00:00
nfore 12fc237351 Add default keyboard overlay directory to platform_darwin 2023-07-09 22:51:31 +02:00
Eric Warmenhoven e943ea71e7 Fix #15459 - add HAVE_STDIN_CMD to macos 2023-07-09 09:31:08 +02:00
nfore bf0de45ec4 Build fix 2023-07-09 09:30:48 +02:00
nfore 9ca5c5e623 Revive/rewrite Keyboard Overlay and OSK Toggle
Add keyboard overlay preset, keyboard submenu, and osk_toggle hotkey. Use overlay caching for osk_toggle.

For now, keyboard menu has only preset path, auto-scale toggle, and opacity.

Related fixes:
- input_keyboard_event: Don't check hotkey binds when device is RETRO_DEVICE_POINTER
- Add input_keymaps_translate_rk_to_ascii() for correct character input to input_keyboard_event
- input_overlay_poll: Delay clearing INPUT_OVERLAY_BLOCKED flag until there is no overlay input (Avoids stray input after osk_toggle)
- Send keyboard events for modifiers before other keys (for correct modifier+key input if hitboxes overlap)
2023-07-09 04:42:49 +02:00
nfore 8a81d39437 Overlay Caching
Adds overlay_cache_ptr to keep a disabled overlay in memory when it's expected to be shown again.

Most input_overlay_deinit calls are replaced with input_overlay_unload, which caches the overlay unless initing/deiniting core or disabling overlays.

Loading a cached overlay is done as a swap, intended for osk_toggle.

Related updates:
- Fewer parameters for the overlay loading task. Use current settings when enabling an overlay
- Add input_overlay_check_mouse_cursor() to preserve show/hide mouse behavior
- Don't apply input_overlay_show_mouse_cursor in windowed mode (controlled by mouse grab only)
- Remove some dead code
2023-07-09 04:42:49 +02:00
github-actions a54f481935 Fetch translations from Crowdin 2023-07-09 00:14:51 +00:00
nfore f1cdd7a807 Fix overlay block_x_separation regression
block_x_separation was being ignored by auto-scale
2023-07-08 19:08:59 +02:00
github-actions 3451974975 Fetch translations from Crowdin 2023-07-08 00:12:22 +00:00
github-actions 321343316c Fetch translations from Crowdin 2023-07-06 00:13:44 +00:00
libretroadmin aa8d029369 Turn command_memory_get_pointer function static 2023-07-05 03:37:00 +02:00
libretroadmin d514f1ded3 Avoid false positives with code analysis tools - rename
variables called 'system'
2023-07-05 03:29:49 +02:00
Eric Warmenhoven e961dcf550 iOS9 build fix 2023-07-04 20:21:37 +02:00
Eric Warmenhoven 544d78d7b7 Improve some log formatting on iOS/tvOS 2023-07-04 02:54:51 +02:00
sonninnos b899f61c1f Menu navigation hold adjustments 2023-07-04 02:54:30 +02:00
Eric Warmenhoven 0b1c6257cf Preliminary MetricKit support on iOS/tvOS 2023-07-04 02:54:13 +02:00
github-actions 577c5ddc17 Fetch translations from Crowdin 2023-07-04 00:13:12 +00:00
github-actions 05feca3317 Fetch translations from Crowdin 2023-07-03 00:13:10 +00:00
Eric Warmenhoven 8c9e7dd2bf Piping to xcpretty hides compilation failures without set -o pipefail 2023-07-02 05:47:38 +02:00
sonninnos 4cca2b8eaf Add menu icons to 'RetroPad Binds' 2023-07-02 05:47:25 +02:00
Ethan O'Brien 58aafeec78 Fix RWebAudioInit race condition 2023-07-02 05:47:13 +02:00
Eric Warmenhoven 280dcb32f9 Fix several warnings 2023-07-02 05:46:45 +02:00
github-actions 1b953d7463 Fetch translations from Crowdin 2023-07-02 00:14:25 +00:00
sonninnos 7922e45607 Combo hold + 'enable_hotkey' correction 2023-07-01 20:12:13 +02:00
nfore dd18152921 Fix overlay reach_x/y regression 2023-07-01 20:04:07 +02:00
Eric Warmenhoven 224bac241e Compile in OpenAL driver on macos/ios/tvos 2023-07-01 19:26:09 +02:00
Eric Warmenhoven 9d7ce37f9b Implement memory queries on iOS/tvOS 2023-07-01 19:25:57 +02:00
Eric Warmenhoven 9320122252 Compile in CoreText font renderer on macos/ios/tvos 2023-07-01 19:25:18 +02:00
Eric Warmenhoven 8c9ee021e7 Creating a github CI for macOS 2023-07-01 19:24:53 +02:00
Eric Warmenhoven ce49bd6dcc Enable option to rumble iOS device instead of controller (#14734). 2023-07-01 19:24:40 +02:00
hunterk b98bf2ccf0 shorten help string for C89 compatibility 2023-07-01 19:22:45 +02:00
hunterk a123f71ef4 fix unintentional menu_enum change 2023-07-01 19:22:45 +02:00
hunterk 7b20954e66 move port X binds into retropad binds submenu and add appropriate help text and sublabels to discourage people from messing around in there unnecessarily 2023-07-01 19:22:45 +02:00
Ethan O'Brien 7ac3dcd5fe change blocking conditions 2023-07-01 19:22:37 +02:00
Ethan O'Brien 88778bc137 Fix rwebaudio bug 2023-07-01 19:22:37 +02:00
github-actions 78cbbe29e9 Fetch translations from Crowdin 2023-07-01 00:13:46 +00:00
Bernhard Schelling 4d8f0215d1 Fix netplay default modus
Also add optional assertion code that can be enabled to validate the netplay frontend logic
2023-06-29 18:38:58 +02:00
sonninnos 5f237a8ac6 Microphone logging cleanup 2023-06-29 13:55:28 +02:00
Bernhard Schelling 67836c144e Do nothing if the same interface gets set twice 2023-06-29 13:55:14 +02:00
Bernhard Schelling 5b1e28843e C90 fix 2023-06-29 13:55:14 +02:00
Bernhard Schelling 5342d4ff63 Remove invalid test assert macro 2023-06-29 13:55:14 +02:00
Bernhard Schelling e8283363fb Enhance netpacket interface
- Enable core host to refuse connecting new players to limit the number of connected players
- Enable a core to flush outgoing packets and read incoming packets without waiting for the next frame (can be used for lower latency or blocking reads)
2023-06-29 13:55:14 +02:00
Bernhard Schelling 2546ac6bbc Change tab to spaces 2023-06-29 13:55:14 +02:00
Bernhard Schelling 6ccef38fea Enable clients to send netpackets to other clients 2023-06-29 13:55:14 +02:00
Bernhard Schelling eceb712ca9 C89 fix 2023-06-29 13:55:14 +02:00
Bernhard Schelling e2621a8474 Add enum netplay_modus 2023-06-29 13:55:14 +02:00
Bernhard Schelling 9de805c9b1 Clarify netpacket interface handling code
Reduce access to networking_driver_st global variable
2023-06-29 13:55:14 +02:00
Bernhard Schelling 20bb335017 C90 fix 2023-06-29 13:55:14 +02:00
Bernhard Schelling c60878a10d Add netpacket interface
Adds a new libretro interface for a core to send and receive custom network packets for implementing a communication based multiplayer system instead of using the default state serialization based multiplayer. Connection management is still done by the frontend while a core gains the ability to easily support tunneling of multi-console data communication traffic.
2023-06-29 13:55:14 +02:00
sonninnos 3c1c58cfc3 Fix keybind hat hotkey save 2023-06-28 14:30:37 +02:00
Eric Warmenhoven b861d643fc Enable SSL in macos/ios/tvos builds 2023-06-28 14:29:37 +02:00
github-actions 56e088b937 Fetch translations from Crowdin 2023-06-24 00:13:20 +00:00
github-actions 52da69a288 Fetch translations from Crowdin 2023-06-23 00:14:47 +00:00
GABO1423 f1d1f0d2db (UWP) Remove x86 Build Configuration 2023-06-22 12:33:14 +02:00
github-actions c0444fcd79 Fetch translations from Crowdin 2023-06-22 00:12:28 +00:00
libretroadmin d9c196154c (net_http.c) Get rid of strlen 2023-06-21 19:21:16 +02:00
libretroadmin 2c4010818e Revert "Don't use strlcat for print-features and print-help CLI switches"
This reverts commit 3870196efe.
2023-06-21 14:11:42 +02:00
libretroadmin d4fc6c7ce6 * Reduce snprintf calls to only formatting
* More strlcpy usage, less strlcat
2023-06-21 09:37:55 +02:00
libretroadmin 22dc6aff5a Rework some snprintf/strlcat calls 2023-06-21 09:25:04 +02:00
libretroadmin 57906892d8 Revert "On mobile in portrait mode, don't override custom viewport"
This reverts commit 6a1320bcfb.
2023-06-21 08:37:19 +02:00
github-actions 2251d27362 Fetch translations from Crowdin 2023-06-21 00:12:15 +00:00
libretroadmin c92d7d3071 (task_database_cue.c) Simplifications 2023-06-20 20:07:44 +02:00
libretroadmin 46d6240f21 Rewrite some more strlcat calls 2023-06-20 19:52:38 +02:00
libretroadmin e3db17bf2d (Qt) Less strlcat 2023-06-20 19:26:02 +02:00
libretroadmin 60fb5dfc6e Fix system information spacing 2023-06-20 19:12:43 +02:00
libretroadmin 2195ac998b FIx potential -Wformat-truncation warnings 2023-06-20 19:06:45 +02:00
libretroadmin 3870196efe Don't use strlcat for print-features and print-help CLI switches 2023-06-20 18:43:49 +02:00
libretroadmin 22f32bf069 replace more strlcat calls in menu_cbs_sublabel.c 2023-06-20 18:21:10 +02:00
libretroadmin 2b4ad8f654 Fix sublabel_netplay_room 2023-06-20 18:01:59 +02:00
libretroadmin b7e122a4fa Replace more strlcat calls 2023-06-20 17:56:45 +02:00
libretroadmin 458fe7a761 * Remove more strlcat calls
* Safer manual char assignment in database_info.c
2023-06-20 17:43:33 +02:00
libretroadmin bdc398d79f - Safer code - use strlcpy where possible instead of manual character
assignments for strings longer than 2 chars
- Use strlcpy concatenation instead of strlcat
- Make sure that what remains of iteration of the '_len' variable
for manual char assignment
is done in a safer way so mistakes are less possible
2023-06-20 16:33:55 +02:00
libretroadmin 2cebb07201 (menu_explore) General cleanups:
* Use strlcpy instead of strlcat
* Some style nits
2023-06-20 14:42:31 +02:00
libretroadmin 8515fbf652 Reduce strlcat calls in crucial video_driver_frame function 2023-06-20 13:38:20 +02:00
libretroadmin fa80ec099f Rewrite some strlcat calls to strlcpy 2023-06-20 13:21:26 +02:00
libretroadmin 1c4dc615e1 Remove extra function prototype 2023-06-20 12:00:17 +02:00
libretroadmin c0d3b8f14b Buildfix for X11 - rename win32_suppress_screensaver to
win32_suspend_screensaver
2023-06-20 11:56:25 +02:00
libretroadmin 5e2bfcbe09 x11_show_mouse and win32_get_video_output_size - get rid of duplicate
code
2023-06-20 11:46:00 +02:00
libretroadmin 08ba0b53c6 Standardize x11_suspend_screensaver 2023-06-20 11:37:29 +02:00
libretroadmin 5971f24237 Remove some code duplication 2023-06-20 09:37:07 +02:00
libretroadmin 700b58a77a Small cleanup to drm_ctx.c 2023-06-20 08:43:46 +02:00
libretroadmin 1cff8e26f4 (Android) Move DPI metric code to dispserv_android.c - and remove
duplicate code
2023-06-20 08:31:19 +02:00
libretroadmin 16fcd1d62c (Vulkan/Wayland) Cleanups 2023-06-20 08:20:13 +02:00
libretroadmin 45a2736958 (Wayland) Cleanups 2023-06-20 07:25:00 +02:00
libretroadmin 12e7b31633 database_info_list_iterate_found_match - use two strlcpys here instead
of snprintf
2023-06-20 07:18:44 +02:00
libretroadmin 6a147370d0 (Wayland) Cleanups 2023-06-20 07:08:14 +02:00
libretroadmin 103982f41d Remove unused gfx_display_ctx_null 2023-06-20 06:47:06 +02:00
Subs e910eb9add CRT: don't always force core aspect ratio 2023-06-20 03:36:38 +02:00
Bernhard Schelling fa443845dd Fix building drm_ctx.x without crt switchres 2023-06-19 18:18:13 +02:00
Bernhard Schelling 2c9bc8d850 Fix "variable set but not used" when HAVE_PATCH is not defined 2023-06-19 18:18:01 +02:00
Bernhard Schelling 4518b117c9 Fix build error "conflicting types for ‘drm_free’"
Function name conflicts with different function in drm_free drm_common.h
2023-06-19 18:17:50 +02:00
libretroadmin c253bf4cbd Reduce char arrays -
* titles and msgs sent to runloop_msg_queue_push should just be
128 in size
* single extensions queried by frontend around 16
2023-06-19 18:16:40 +02:00
libretroadmin 0bf3d21538 Reduce some char arrays which are too big 2023-06-19 17:31:50 +02:00
sonninnos 6015e73003 Show playlist history/favorites icons by default 2023-06-19 17:09:58 +02:00
sonninnos 23bd1bc7f5 Remove advanced option flag from video rotation+orientation 2023-06-19 17:03:33 +02:00
sonninnos 7eae4ee3f6 Reorder overlay menu 2023-06-19 17:01:52 +02:00
libretroadmin 9d027e51fe if 0 out update_single_core code 2023-06-19 16:51:04 +02:00
hunterk 429576a79a comment out forced core update for netplay 2023-06-19 16:46:40 +02:00
libretroadmin 0f374ea69d Don't call video_state_get_ptr inside gfx/video_driver.c 2023-06-19 07:50:26 +02:00
libretroadmin a296160151 Simplify gfx_display_init_first_driver 2023-06-19 07:46:16 +02:00
libretroadmin e8242253a7 Reduce strlcat calls where possible 2023-06-19 06:00:10 +02:00
sonninnos a7ac52fe91 Menu navigation acceleration adjustments 2023-06-19 04:38:00 +02:00
github-actions 5caebf3675 Fetch translations from Crowdin 2023-06-19 00:12:35 +00:00
libretroadmin 31d8f4fd51 Cut down on more strlcat calls 2023-06-18 22:53:13 +02:00
sonninnos d6d0195060 Menu sounds corrections 2023-06-18 22:39:09 +02:00
libretroadmin 0517354181 * replace more strlcat calls with strlcpy
* Get rid of unnecessary string copies by clever usage of strlcpy
* Get rid of unnecessary temp variables when not needed
2023-06-18 22:37:01 +02:00
libretroadmin 61ce614251 Do video_driver_get_ident check last in boolean equation 2023-06-18 21:27:34 +02:00
sonninnos 57e1b849f9 (Vulkan) Ignore Fast-Forward Frameskip option 2023-06-18 21:24:30 +02:00
sonninnos b92540b24d (udev) Log mouse devices in info level 2023-06-18 19:43:38 +02:00
sonninnos 83d888ca4a Cleanup Desktop Menu welcome text 2023-06-18 19:42:10 +02:00
LibretroAdmin 244c86f661 Revert "Frame limiting improvements"
This reverts commit c723710c90.
2023-06-18 19:36:59 +02:00
libretroadmin edecf0cb2d Replace more strlcat calls with strlcpy 2023-06-18 19:25:24 +02:00
sonninnos c723710c90 Frame limiting improvements 2023-06-18 18:58:37 +02:00
libretroadmin 2b273697c8 menu_cbs) sublabel/title - replace some strlcat calls 2023-06-18 14:08:37 +02:00
libretroadmin 97deec44f4 Remove unused variable warning 2023-06-18 13:55:39 +02:00
libretroadmin 942858c6ba Fix -Werror, -Wfortify-source error for Orbis 2023-06-18 13:14:36 +02:00
libretroadmin 7b60626943 Silence -Wsign-compare warning 2023-06-18 13:08:55 +02:00
libretroadmin e055790a48 * Get rid of some duplicate strlen calls
* Get rid of some unnecessary temp char variables
* Some other small rewrites
2023-06-18 13:06:33 +02:00
libretroadmin 2ab38eaf98 Reduce some local char variables which were unnecessarily big,
and reduce some temp char variables
2023-06-18 12:31:49 +02:00
libretroadmin 631301b3f7 * Cut down on strlcat calls when possible and replace them with clever
usage of strlcpy (when position/offset of previous strlcpy/snprintf call
is known. strlcat implementation in libretro-common makes implicit strlen
call, using strlcpy avoids this
* Reduce a bunch of local char variables by use of said clever usage,
should save up on local stack size usage
2023-06-18 12:06:12 +02:00
Jesse Talavera-Greenberg dbc1a41cf6 Fix the name of the artifact pushed by the msvc-2019 job 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 4d9bfda65c Don't include all platforms in UWP app bundles
- This lengthens the build time
2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 79e64ac2c1 Fix the artifact path for msvc2019 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg a78f9598de Silence a warning in video_driver.c 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 3183941d9e Only produce one MSVC 2019 build 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 986057f565 Reduce the number of UWP builds
- Only Release and ReleaseANGLE for x64 will be produced
2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 1a98b430ed Change how the GitHub SHA is referenced in MSVC.yml 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 4628cd0e0b Revert "Exclude 7zip support from UWP builds"
This reverts commit 1147ac6a58.
2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 719e25e0db Add some stray colons 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg c2c139c48c Add msbuild to the PATH for the MSVC builds 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg e6604a3f8c Remove a stray period 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 64bd977712 First draft of a workflow for MSVC 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg be6d793399 Add some patterns to msvc-uwp's .gitignore 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg d3d3207214 Apply some compiler-specific hacks to resolve compiler errors
- Make the existing _WIN32_WINNT redefinition contingent on MinGW
- Define a typedef for EDataFlow on MSVC
2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg cd3bd1d9d5 Consolidate more properties in RetroArch-msvc2019.vcxproj 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 5044060ed0 Consolidate all PropertyGroups for the msvc2019 project file 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 6f9cd452e9 Consolidate uses of <LinkIncremental> 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg c85bfd3d57 Consolidate code analysis-related properties in RetroArch-msvc2019.vcxproj 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg dd69986cea Set the RootNamespace to RetroArchmsvc2019 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 97278a3172 Consolidate several PropertyGroups in RetroArch-msvc2019.vcxproj 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 5be568a5ef Consolidate the PropertySheets ImportGroup
- It's no longer conditional, since all configurations use the same value
2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 1a18f36971 Forgot to commit my changes to griffin_cpp.cpp 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 65a0475235 Remove HAVE_CG from build configurations that don't use it in RetroArch-msvc2019.vcxproj 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg ebd89d762a Refactor how RetroArch-msvc2019.vcxproj generates MOC files
- Use one set of properties with conditions
- Include all headers in ui/drivers/qt instead of naming them all
- Update griffin_cpp.cpp to reflect these changes
2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg e7241e09f3 Add a section for Qt-specific properties in RetroArch-msvc2019.vcxproj
- But only if the build configuration uses Qt
2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 06cec38a9b Add some directory patterns to .gitignore 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg ad211f1452 Update the .gitignore
- Add some VS-specific artifacts
- Add versioned Linux shared objects
- Simplify some directory-specific patterns to the extension
2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg b01793601b Exclude 7zip support from UWP builds
- 7zip uses Windows file functions directly, as opposed to an abstraction layer
- UWP doesn't support some of the functions that 7zip uses
2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 3195808d50 Fix some $(VS)-related variables for UWP build 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 8dd1737aee Define HAVE_MICROPHONE in all configurations in RetroArch-msvc2019.vcxproj 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 7d2256f92c Silence a warning 2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 972c539869 Check for __ARM_NEON__ and _M_ARM64
- Its absence was causing certain MSVC builds to fail with the #error directive
2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 082cefa133 Add IID_IAudioCaptureClient
- Its absence could cause linker errors in MSVC
2023-06-18 08:38:53 +02:00
Jesse Talavera-Greenberg 3599b3e675 Fix a compiler error
- A use of mmdevice_list_new was not updated to reflect its changed signature
2023-06-18 08:38:53 +02:00
sonninnos 8a862bf20e
Keyboard mapping bit fix (#15392) 2023-06-18 08:09:34 +02:00
github-actions fdd5f9e759 Fetch translations from Crowdin 2023-06-18 00:13:46 +00:00
github-actions 6020da1320 Fetch translations from Crowdin 2023-06-17 00:11:07 +00:00
libretroadmin 408cbf98c9 database_info.h - cleanup to struct 2023-06-16 20:35:15 +02:00
libretroadmin fc06e2f84f Simplify core_serialize_size and core_serialize_size_special 2023-06-16 17:20:27 +02:00
libretroadmin c4b99031f0 (Menu) more static functions in menu_cbs_ok.c 2023-06-16 15:40:14 +02:00
libretroadmin d54097f3e1 (playlist.c) Cleanups 2023-06-16 14:56:52 +02:00
libretroadmin cf909b799b (playlist.c) Small cleanups 2023-06-16 14:14:56 +02:00
libretroadmin df73a3876c replace snprintf call with strlcpy 2023-06-16 13:42:01 +02:00
Grisly Glee 1bd501f8d2
Refactor system_info page (#15388) 2023-06-16 04:47:23 +02:00
libretroadmin 7d60a2cc8f Move functions around, make some static, move some around 2023-06-16 03:27:19 +02:00
libretroadmin 96068dfa81 Turn setting_set_with_string_representation static 2023-06-16 02:41:36 +02:00
libretroadmin e818541337 (Menu) Turn some functions static 2023-06-16 02:29:10 +02:00
github-actions aecaf79585 Fetch translations from Crowdin 2023-06-16 00:12:08 +00:00
libretroadmin 618bedb950 Get rid of setting_get_bind_type 2023-06-16 02:03:04 +02:00
libretroadmin cd95a0f663 Cleanups 2023-06-16 01:56:46 +02:00
libretroadmin caf0df3f97 setting_list.h - turn several functions static 2023-06-16 01:36:07 +02:00
libretroadmin 373d1307c0 (runtime_file.c) Cleanups - remove functions that are never used 2023-06-16 01:23:24 +02:00
libretroadmin bc1672708d Get rid of some code duplication in MaterialUI/Ozone 2023-06-16 00:48:16 +02:00
libretroadmin 8ea67c0d99 Cleanups 2023-06-15 23:51:29 +02:00
libretroadmin 0c51321099 Get rid of font_driver_flush 2023-06-15 23:41:40 +02:00
Grisly Glee 3861e6e3ba
Introduce RETRO_DEPRECATED macro (#15363) 2023-06-15 23:16:18 +02:00
sonninnos 0b7e8eab99
Microphone menu correction (#15385) 2023-06-15 21:36:36 +02:00
sonninnos 610207dcfd
Menu sounds fixes (#15384) 2023-06-15 21:36:20 +02:00
libretroadmin 410242c164 (input_driver.c) Don't keep regrabbing the same pointers in input_state_internal function 2023-06-15 14:26:41 +02:00
libretroadmin e9387193d5 Some style nits 2023-06-15 14:05:06 +02:00
libretroadmin 723f54b713 (common wasapi) Small cleanups, always have a last return value 2023-06-15 14:02:14 +02:00
libretroadmin ab7d4e1aec Need to add retro_common_api.h to this header file if you're going to
use RETRO_BEGIN_DECLS/RETRO_END_DECLS
2023-06-15 13:56:57 +02:00
libretroadmin 489a5b9ac6 Fix MSVC2010 warning 2023-06-15 13:43:53 +02:00
libretroadmin b8951de6fd (GX2) Cleanups 2023-06-15 13:34:08 +02:00
libretroadmin afd3df7523 (win32_common.c) Silence warning by casting to DWORD 2023-06-15 13:12:41 +02:00
libretroadmin 060ea43100 Remove now obsolete xdk1_xfonts.c 2023-06-15 12:59:32 +02:00
libretroadmin ae3ac72356 Cleanups for font drivers 2023-06-15 12:37:09 +02:00
github-actions 1fc5c600a4 Fetch translations from Crowdin 2023-06-15 00:12:09 +00:00
libretroadmin 426ba5382c C89 buildfix and other small cleanup 2023-06-15 01:58:23 +02:00
libretroadmin 975d613fbb (input_driver.c) Small cleanups - input_driver_state_internal
return type is int16_t so don't use float value for analog_x/analog_y
variables
2023-06-15 01:52:24 +02:00
Grisly Glee de0c6d5cd1
Trivial warnings fixes (#15383)
* Trivial graphics context drivers fix

* Assorted minor warnings fixes
2023-06-14 23:46:27 +02:00
libretroadmin d342a4a04a Signedness warning fixes 2023-06-14 23:25:50 +02:00
libretroadmin 246cceeb27 Silence more signedness warnings 2023-06-14 19:51:31 +02:00
sonninnos c4f43ff28b
Linux input driver fix 8+ joypads (#15374) 2023-06-14 04:43:45 +02:00
sonninnos 20e7107598
Audio menu cleanup (#15376)
* Microphone menu cleanup

* Combine audio resampler menu with audio output menu
2023-06-14 04:43:28 +02:00
Grisly Glee 4202f8650d
Fix trivial signedness warnings (#15377)
* Fix trivial signedness warnings

* Followup on trivial signedness warnings
2023-06-14 04:43:11 +02:00
Subs d9439b8166
CRT: fix aspect ratio for tate games on a horizontal screen (#15378) 2023-06-14 04:42:43 +02:00
Grisly Glee 6f0c48b4c4
Clean up gfx driver interface structs (#15379) 2023-06-14 04:42:34 +02:00
github-actions 54884d986a Fetch translations from Crowdin 2023-06-14 00:11:38 +00:00
sonninnos c8b6f7fcd5
(WASAPI) Don't reset OS mixer volume in shared mode (#15369) 2023-06-13 07:52:52 +02:00
Eric Warmenhoven 7b263461da
iOS/tvOS: When updating playlist with detected core path, used resolved core path (#15372) 2023-06-13 07:52:39 +02:00
sonninnos 6b9727911b
Improve scanner console output (#15345)
* Improve scanner console output

* More scanner console output coloring
2023-06-11 12:46:30 +02:00
Grisly Glee 337a496f1a
Add files generated for wayland to gitignore (#15368) 2023-06-11 12:26:00 +02:00
Grisly Glee a2285de73e
Have sdl2 gfx driver use "nearest" scaling in menus (#15366) 2023-06-11 06:35:45 +02:00
Grisly Glee 1150e2b8f7
Fix xvideo gfx driver (#15365)
* Add menu support to xvideo gfx driver, making it usable

* Disable xvideo gfx driver by default
2023-06-11 02:21:42 +02:00
github-actions 8a1e80a28d Fetch translations from Crowdin 2023-06-11 00:13:24 +00:00
github-actions 8a6f7e6fff Fetch translations from Crowdin 2023-06-09 00:12:56 +00:00
github-actions a0cce91959 Fetch translations from Crowdin 2023-06-08 00:12:58 +00:00
Grisly Glee 1e389a97ff
Disable xshm gfx driver by default (#15359) 2023-06-07 21:02:54 +02:00
Bernhard Schelling fd99da3ac2
Add CI Android build github action (#15358) 2023-06-07 20:18:32 +02:00
github-actions 43dd4ee97b Fetch translations from Crowdin 2023-06-07 00:12:11 +00:00
libretroadmin 23e41a326c Buildfix for android/ios 2023-06-07 00:14:19 +02:00
Jesse Talavera-Greenberg 938d60d0f4
Add microphone support via a new driver (#14731)
* Some slight fixes

* Update libretro.h

* Log calls to RETRO_ENVIRONMENT_GET_MICROPHONE_INTERFACE

* Finish proof-of-concept for mic support

- It works, but doesn't support floating-point audio yet
- It may need to be resampled, too

* Add macros that aren't available in SDL 2

* Comment out a variable definition for now

- For C89 compliance

* Add some comments for clarity

* Let ALSA tolerate a null new_rate

* Partial ALSA microphone support

- Not yet tested
- Mic is created and destroyed
- Mic can also be paused or unpaused
- Mic is paused or unpaused with the rest of the driver
- Microphone is not yet read

* Install error logging in the ALSA driver

- It defers to RARCH_ERR

* Free the ALSA microphone in alsa_free

* Fix an indent

* First draft of alsa_read_microphone

* Deinitialize SDL Audio in sdl_audio_free

* Save and restore the ALSA error logger

- You should always practice safe global state

* Add newlines to some RARCH_ERRs

* Add some logging

* Check for the mic being active via settings instead of via flags

* Adjusted a log entry to be less misleading

- A frequency of 0Hz looks weird to the uninformed
- In reality, it means the driver used the requested frequency

* Fix an incorrect format string

* Tidy up logging in alsa.c

* Rename audio_enable_microphone to audio_enable_input

* Rename microphone_device to audio_input_device

* Add audio_input_latency and audio_input_block_frames settings

* Add all mic-related settings to the options menu

* Adjust logging for alsa.c

- Log the ALSA library version
- Add errno details

* Refer to the microphone in logs by name

* Use %u instead of %d for some log items

* Add input_samples_buf

* Remove an inaccurate comment

* Change type of input_samples_buf

* Clean up audio_driver_flush_microphone_input

* Comment convert_float_to_s16

- It helped me understand what it's doing
- Turns out it'll work just fine on mono audio

* Don't use the resampler for mic input

* Fix crash in the ALSA driver when reading from a mic

* Update some logging messages

* ALSA support now works for mics

* Reuse some common functions in alsa.c

* Add alsa_thread_microphone_t

* Refactor alsa.c

- Introduce alsa_init_pcm to init any PCM that we're using
- Vastly simplifies the implementation of alsa_init and alsa_init_microphone
- Will be used for the read-based versions next

* Make ALSA logging a little more consistent

* Clean up the mic with alsa_free_microphone if alsa_init_microphone fails

* Remove an unused function

* Move some cleanup in alsa.c to a common function

* First crack at mic support for alsathread

- Refactor some duplicate code into functions
- Use functions introduced in alsa.c
- Create and destroy the mic

* Slight cleanups for clarity

* Implement alsa_thread_set/get_microphone_state

* More work on alsathread

- No more crashing, but the mic just returns silence

* Slight cleanups for clarity

* Add alsa_set_mic_enabled_internal

- For setting the state of a microphone while considering its current state

* Use alsa_set_mic_enabled_internal

* Log a little more info

* Log when the audio driver is started/stopped

* Move base microphone driver code into a new directory

- Add microphone_driver.c to Makefile.common
- Rename functions as needed

* Initialize and deinitialize the microphone driver

* Implement sdl_microphone.c

* Un-const an argument

- In case the driver context needs to do any locking

* Revise comments for microphone_driver.h

* Remove an unimplemented function

* Remove some functions from the mic driver

* Remove mic functions from audio_thread_wrapper

* Remove mic functions from sdl_audio

* Fix microphone_null

* Split the mic code for the alsa audio drivers into microphone drivers

* Fix an extra struct member

* Add a setting for the mic driver

* Add a command to reinitialize the microphone driver

* Rename mic-related settings

* Add DRIVER_MICROPHONE_MASK to DRIVERS_CMD_ALL

* Rename audio_enable_input to microphone_enable

* Remove some labels from qt_options

* Search for microphone_driver within find_driver_nonempty

* Clean up some mic driver code

* Pending mics now return silence

* Adjust some logging and comments

* Some cleanup in the microphone driver

* Invert a flag check

- Oops

* Fix a log message

* Fix the wrong flags being checked

* Slight refactor of wasapi_init_device

- Add a data_flow parameter
- Declare it in a header
- In preparation for WASAPI mic support

* Add some WASAPI macros for _IAudioCaptureClient

* Move some common WASAPI functions to audio/common/wasapi.c

- They'll be used by the mic and the audio drivers

* Add wasapi_log_hr

* Generalize mmdevice_list_new to look for capture devices, too

* Fix a function declaration

* Move driver-specific device_list_new functions into their respective files

* Clean up some declarations

* First draft of wasapi microphone driver

* Add wasapi_microphone_device_list_free

* Change function parameter names to be consistent with microphone_driver

* Partially implement wasapi_microphone_read

- Mostly copied from the audio driver so far
- It doesn't compile yet
- But it'll be beautiful when I'm done with it

* Refactor the mic driver's functions

- Rename get_mic_active to mic_alive
- Split set_mic_active into start_mic and stop_mic
- Refactor the SDL mic driver accordingly

* Edit some WASAPI functions for logging and clarity

* Implement more of the WASAPI mic driver

* Rename write_event to read_event

* Pass the WASAPI driver context to the various read functions

* Mostly implement the read function for the WASAPI mic driver

* Fix a crash in microphone_driver

- Forgot to move the position of the name of null_driver

* Reduce some logging in wasapi common functions

- Only log the chosen audio client format, not all attempted ones

* Add some macro wrappers for IAudioClient methods

* Update mic driver configuration

- Make the mic driver configurable in the menu
- Add config items for WASAPI-related options similar to the audio driver

* Fix a menu entry scrolling through audio devices instead of mic devices

* Add some utility functions

* Expose the new utility functions in wasapi.h

* Add extra logging in the WASAPI common functions

* Add sharemode_name

* Use _IAudioClient_Initialize macro in some places

* Pass channels to wasapi_init_client

- Remember, mics are in mono

* Use _IAudioClient_Initialize macro some more

* Forgot to pass channels in some places

* Add some utility functions

* Forgot an #include

* Add wasapi_select_device_format

* Simplify the format selection logic in wasapi_init_client_sh

* Unset the microphone in wasapi_microphone_close_mic

- Ought to prevent a potential segfault

* Simplify some logging

* Fix incorrect value being passed to _IAudioCaptureClient_ReleaseBuffer

* Remove some unneeded logging

* Add some values to hresult_name

* Polish up wasapi_select_device_format

- Test for formats manually when Windows can't
- Add some debug logging
- Check for channels

* Compute the fields of WAVEFORMATEXTENSIBLE correctly

- As per the doc's stated requirements

* Simplify logic for WASAPI client creation

* Fix a potential hang in wasapi_microphone_read_shared_buffered

* Stop the microphone if the driver is stopped

* Don't name the microphone event

* Ensure that wasapi_init_client reports the correct format and rate

* Implement exclusive microphone read access for WASAPI

* Add _IAudioCaptureClient_GetNextPacketSize macro

* Organize cases in hresult_name

* Clear some extra fields if wasapi_set_format is setting a Pcm format

* Adjust some logs

* Adjust some logs

* Remove unneeded local vars

* Add a log

* Update wasapi.c

* Update wasapi.c

* Fix shared-mode mic support in WASAPI producing broken input

- Turns out it had nothing to do with shared mode

* Reuse a common function

- Remove wasapi_microphone_read_shared_buffered
- Rename wasapi_microphone_read_exclusive to wasapi_microphone_read_buffered

* Remove some code I was using for test purposes

* Clarify some language

* Double the default shared-mode mic buffer length

* Split getting a device's name into a separate function, then use it

* Fix the ALSA mic drivers

- To comply with changes I previously made to the mic driver interface

* Remove unused synchronization primitives from the SDL microphone driver

* Add sdl_microphone_mic_use_float

* Document audio_driver_state_flags

- I needed to understand these to see if similar flags were required for the mic driver

* Remove an unused function in wasapi.c

* Add and document flags in microphone_driver.h

* Remove driver-specific mic start/stop functions

- The mic driver itself doesn't do much processing
- That honor goes to individual mics

* Remove some unused fields in microphone_driver.h

* Add CMD_EVENT_MICROPHONE_STOP/START

* Remove unused functions from microphone_null

* Change how the mic driver state is referenced in some places

* Simplify the SDL microphone driver

- The driver backend no longer keeps a reference to the mic (the frontend does that)
- Remove functions that are no longer needed
- Don't track paused state, just query the mic itself

* Simplify the WASAPI microphone driver

- Don't track the driver running state or the microphone handle, the frontend does that now
- Remove support for unbuffered input (hunterk suggested that it wasn't necessary)

* Make microphone_wasapi_sh_buffer_length a uint, not an int

- It won't be negative anymore
- 0 now represents the default value

* Make the microphone frontend more robust

- Improve documentation for how various functions should be implemented
- Closes all microphones before freeing the driver (so backends don't have to)
- Tracks the enabled state of each microphone, so backends don't have to (but they still can)

* Stop the mic driver in core_unload_game

* Ensure mic support is compatible with the revised menu code

* Move alsa.h into audio/common

* Remove RETRO_ENVIRONMENT_GET_MICROPHONE_ENABLED

- It was never really needed

* Refactor the ALSA microphone driver

- Move common ALSA functions to audio/common/alsa.c
- Replace alsa_set_mic_enabled_internal with alsa_start/stop_pcm
- Don't track the microphone handle in the ALSA driver context
- Remove unneeded fields

* Move some common alsathread code into audio/common/alsathread.c

* Change return type of mic_driver_open_mic_internal to bool

* First crack at resampling mic input

* Remove an extraneous check

- I think something distracted me when I was writing this line

* Add stereo/mono conversion functions

* Make alsa_start_pcm and alsa_stop_pcm more robust

- They now return success if the stream is already running and stopped, respectively

* Revise some mic-related comments in libretro.h

* First crack at resampling mic input

* Simplify an expression

* Simplify an expression

* Fix a log tag

* Allow mic resampler to be configured separately from audio resampler

* Add some comments

* Set the source ratio to something sensible

* Stop deadlock in `alsathread` mic driver

* Allow mics to be initialized even when core is loaded from CLI

- When loading content from CLI, the drivers are initialized a little differently
- That threw off the mic initialization code

* Rename the functions in retro_microphone_interface

* Revise some mic-related comments in libretro.h

* Update retro_microphone_interface

- Add get_mic_rate
- Add a parameter to open_mic
- The modifications don't do anything yet

* Use parameter objects in the microphone handle

* Replace get_mic_rate with get_params

* Add a microphone interface version

* Remove part of a comment

* Set the effective params in mic_driver_microphone_handle_init

* Drop a stray newline

* Change where the mic interface is zeroed

- I was accidentally throwing out the version that the core was asking for

* Reduce logspam for wasapi_set_nonblock_state

- Now it only logs when the sync mode is changed

* Change DEFAULT_WASAPI_SH_BUFFER_LENGTH to 0

- -16 is no longer a valid value

* Set the new_rate in wasapi_init

* Change description of microphone sample rate in the settings

* First attempt at resampling configured mic input

* Forgot a section

* Fix some input samples being skipped

* Rename a variable for clarity

* Add microphone.outgoing_samples

* Update the mic driver

- Processed samples are now buffered
- The resampler is skipped if the ratio is (very close to) 1

* Remove part of a comment

* Update some comments in audio_resampler.h

* Slightly refactor the SDL microphone driver

- Move SDL_AudioSpec to a field of sdl_microphone_handle_t
- Allow SDL to change the requested format and sample rate
- Request floating-point input
- Implement sdl_microphone_mic_use_float

* Fix a non-C89-compliant declaration

* Add new files to griffin.c

* Remove a C++-style comment

* Add two more files to griffin.c

* Remove some unneeded declarations in microphone_driver.h

* Remove a stray comma in configuration.c

- For C89 compliance

* Fix compilation on some platforms

* Change some function signatures

* Make the ALSA drivers always set the audio rate

* Fix the alsathread mic driver

* Make state_manager_frame_is_reversed return false if HAVE_REWIND isn't defined

* Mute the microphone if the core is running in fast-forward, slow-mo, or rewind

* Clarify a comment

* Clarify a comment

* Add a comment

* Don't allocate memory for slowmo samples in the mic driver

- We're not supporting slowmo for mics, so it's not needed

* Fix a {

* Add my name to AUTHORS.h

* Add driver_lifetime_flags

- For drivers that have special setup/teardown needs

* Ensure that resetting the mic driver maintains active mic handles

- Prevents fullscreen toggle from stopping all mic input

* Update CHANGES.md

* Move some default microphone settings to a new part of the config file

* Ensure that RetroArch can use the audio format that Windows suggests

* Remove references to mic support in the SDL audio driver

* Remove unused WASAPI functions

* Return failure if RetroArch couldn't select a WASAPI format

* Ensure that Windows uses the WASAPI mic driver by default

* Treat disabled mic support as a warning, not an error

* Clarify some WASAPI-related microphone settings

* Remove some unused variables

* Add or revise microphone-related comments

* Rearrange doc comments for microphone types in libretro.h

* Remove a space

* Remove some unused flags

* Remove ALSA error logger

- It was never used anyway

* Remove unneeded microphone-related arguments

* Document a parameter

* Remove a logging call

* Add a constant for the microphone's shared buffer length for WASAPI

* Fix stylistic inconsistencies

* Make mic_driver_get_sample_size a macro instead of a function

* Move the microphone implementation to the audio directory

* Make microphone support optional (but enabled by default)

* Fix the griffin build
2023-06-06 21:55:06 +02:00
github-actions eebeed4115 Fetch translations from Crowdin 2023-06-06 00:12:45 +00:00
Eric Warmenhoven 6218649b4c tvOS: Fix analog stick handling after adding Siri remote tap support 2023-06-06 01:53:23 +02:00
Grisly Glee 2cc377c154 Fix corrupt task progress percentage 2023-06-06 01:53:13 +02:00
jiangxiaogang 44142ceeb8 Fixed android gamepad binds 2023-06-06 01:52:39 +02:00
Eric Warmenhoven b89e6afe1c Fix including audio/video filters on iOS 2023-06-06 01:52:23 +02:00
Eric Warmenhoven 6c831b25a6 Restore "macOS Cocoa: fix mouse grab in windowed mode."
This reverts commit 269c902429, with a
build fix.
2023-06-06 01:52:13 +02:00
libretroadmin 0093817da1 (PSL1GHT) Buildfix 2023-06-05 00:49:18 +02:00
libretroadmin 269c902429 revert 2023-06-04 16:28:59 +02:00
libretroadmin 63bf68d616 Cover both HAVE_COCOA and HAVE_COCOA_METAL for now 2023-06-04 16:09:49 +02:00
libretroadmin 794b430bac cocoa_input_grab_mouse - compile it in only for regular Cocoa, not CocoaTouch 2023-06-04 16:08:24 +02:00
libretroadmin 1352036133 (cocoa_input.m) Cleanups 2023-06-04 16:03:55 +02:00
libretroadmin cd6aec70ac Buildfix for iOS/tvOS 2023-06-04 15:51:02 +02:00
Alexander Kozharsky 167c52ec77 macOS Cocoa: fix mouse grab in windowed mode. 2023-06-04 14:51:04 +02:00
libretroadmin 2fa9e5cbb1 (D3D10) Cleanups for render_line and style nits 2023-06-04 02:00:40 +02:00
libretroadmin 691c09ef09 (Video drivers) Small cleanups/optimizations to render_line - hose
out some variables that are never subject to change
2023-06-03 20:56:19 +02:00
libretroadmin eb509b8d8e get_line_metrics always implemented for font rendering backend, take
out code parts for hypotheticla font rendering backends that don't implement
it
2023-06-03 18:34:47 +02:00
libretroadmin 51a8150e45 Do away with some NULL checks for font rendering backend 2023-06-03 17:21:19 +02:00
github-actions 12cbec8d40 Fetch translations from Crowdin 2023-06-03 00:11:47 +00:00
libretroadmin 35b445c3ed (UWP) Buildfix 2023-06-02 02:24:55 +02:00
github-actions b97ebf58dd Fetch translations from Crowdin 2023-06-02 00:13:28 +00:00
libretroadmin a7977c5f38 (Qt) Get rid of menu_setting_find references 2023-06-01 23:56:56 +02:00
libretroadmin 68ddb0e3b2 (Qt) Cleanup 2023-06-01 23:51:53 +02:00
libretroadmin f29fbda584 (Wayland) Fix build 2023-06-01 23:03:26 +02:00
libretroadmin 31751a3945 Cleanups 2023-06-01 22:52:05 +02:00
libretroadmin 5319161c66 Buildfix 2023-06-01 22:37:03 +02:00
libretroadmin f66a8dc538 Cleanup unused variable warnings 2023-06-01 22:34:16 +02:00
libretroadmin f49bfd2262 (CTR) Buildfix 2023-06-01 22:19:08 +02:00
libretroadmin c1166ee823 Cleanups 2023-06-01 21:34:34 +02:00
libretroadmin f3fe46393c Cleanups 2023-06-01 20:29:05 +02:00
libretroadmin 27aeb314a1 merge d3d8_common.c into d3d8.c 2023-06-01 20:14:19 +02:00
libretroadmin 36cf7f00a8 Cleanups 2023-06-01 19:59:11 +02:00
Bernhard Schelling 189542ea5f Prevent the android quick tap mouse click emulation while pressing a button on the on-screen overlay 2023-06-01 18:34:37 +02:00
anaximan bd59d35498 Fixed the corner tapping toggle 2023-06-01 15:56:09 +02:00
anaximan d7a4ee6918 Added clarification for the trackball and auto reloading to VMouse options. 2023-06-01 15:56:09 +02:00
anaximan e301ddf29f Compilation fixes when UDEV_TOUCH_SUPPORT is undefined 2023-06-01 15:56:09 +02:00
anaximan 516de17de0 Added touch-related options to RetroArch Input settings menu. Added trackball mode. 2023-06-01 15:56:09 +02:00
anaximan 59651914cd Fixed some typos, code cleanup, and C89 compatibility 2023-06-01 15:56:09 +02:00
anaximan 42c0c7ee2b First working version of udev driver with touchscreen support and gestures. 2023-06-01 15:56:09 +02:00
libretroadmin 0a06ace36e (vita) Fix vita2d_init symbol conflict 2023-06-01 02:30:45 +02:00
libretroadmin 21ffa14fea Cleanups - cleanup unused variable warnings 2023-06-01 01:06:56 +02:00
libretroadmin e51d1a3d2a Get rid of some old libtransistor files/codepaths 2023-06-01 00:08:00 +02:00
libretroadmin 0ee2f93ca4 Combine gfx_display files into video drivers 2023-05-31 23:58:06 +02:00
libretroadmin d1b9badf41 Rename common files to _defines.h 2023-05-31 22:46:34 +02:00
libretroadmin 2bf08f5457 vulkan_font_render_msg - don't use video_st 2023-05-31 22:01:00 +02:00
libretroadmin f08958dbc1 Move inline functions to files that actually need them,
move enums at the top of the header files
2023-05-31 21:50:07 +02:00
libretroadmin 77466d6f85 Rename d3d_w32_font.c to d3d9x_w32_font.c 2023-05-31 21:32:52 +02:00
libretroadmin 020e5fd7af (Vulkan) vulkan_debug_mark_object - C89 buildfix 2023-05-31 21:11:09 +02:00
libretroadmin 7402d6ec94 (D3D11/D3D12) Small cleanups/micro-opts 2023-05-31 20:51:03 +02:00
libretroadmin 29584b9960 Move d3d8_texture_new to d3d8.c and make it static 2023-05-31 19:43:20 +02:00
libretroadmin 923b756926 Turn inline function into macro and move it to vulkan.c 2023-05-31 19:38:49 +02:00
libretroadmin 40fb10fd4e - Move Vulkan common functions over to vulkan.c
- Fix some platforms
2023-05-31 19:32:33 +02:00
libretroadmin 4f6010bea7 COmbine font raster files and video driver files 2023-05-31 19:03:45 +02:00
LibretroAdmin 53ff913c36 Revert "Don't count frames while paused"
This reverts commit ed29ba6b32.
2023-05-31 16:47:51 +02:00
libretroadmin 8a5a59da50 Refactors, move some functions to retroarch.c and make them static 2023-05-31 16:08:31 +02:00
github-actions 698b0d6ce6 Fetch translations from Crowdin 2023-05-31 00:11:54 +00:00
libretroadmin 86d8eef0d3 Get rid of unused gfx_ctx_input struct 2023-05-31 01:13:39 +02:00
libretroadmin 696dae6e70 Refactor away some video driver functions 2023-05-31 01:09:38 +02:00
libretroadmin e70eb9ded2 Refactor video_driver_cached_frame_has_valid_framebuffer 2023-05-31 00:39:01 +02:00
libretroadmin 3737b99b05 Cleanups 2023-05-30 22:10:03 +02:00
libretroadmin de63016bd3 (xshm_gfx) Silence warning 2023-05-30 21:29:21 +02:00
libretroadmin 37190f8036 Header uniformity cleanups 2023-05-30 21:21:05 +02:00
libretroadmin c0ba738f0d Header uniformity - enums on top, then structs, then public declarations 2023-05-30 21:03:36 +02:00
libretroadmin c07e6a6da2 Cleanups 2023-05-30 20:30:37 +02:00
libretroadmin 862acd7160 rjson_optional_skip - fix code 2023-05-30 19:45:15 +02:00
libretroadmin 3f992de8a6 Silence warning 2023-05-30 19:39:12 +02:00
libretroadmin 72bd1a2ba4 (libretro-common) Resync 2023-05-30 19:34:55 +02:00
Eric Warmenhoven 119230e84b Don't include MoltenVK in Load Core menu list 2023-05-30 19:06:18 +02:00
sonninnos ed29ba6b32 Don't count frames while paused 2023-05-30 19:05:43 +02:00
libretroadmin 7f55153457 take_screenshot - make function somewhat more readable 2023-05-30 12:26:52 +02:00
libretroadmin c09fb6d95d Cleanups 2023-05-30 12:19:53 +02:00
github-actions dbd7153526 Fetch translations from Crowdin 2023-05-30 00:11:38 +00:00
sonninnos 59a8718482 Add missing menu visibility option for content dir override 2023-05-29 22:22:39 +02:00
libretroadmin 6c10d92e1f Cleanups 2023-05-29 19:44:57 +02:00
libretroadmin b2dff50d8a Cleanups 2023-05-29 19:39:27 +02:00
Colin Kinloch 402b381c9b Revert "(Wayland) Remove splash screen (#15178)"
This reverts commit f19def349f.
2023-05-29 19:16:21 +02:00
libretroadmin 85011c782e move vulkan context driver code to vulkan.c 2023-05-29 19:13:47 +02:00
libretroadmin c24744eae5 Remove video_driver_show_mouse/hide_mouse 2023-05-29 18:58:23 +02:00
libretroadmin cedcd70c63 Fix function declaration without a prototype warnings 2023-05-29 15:34:37 +02:00
libretroadmin 735500ff66 Warning fixes and style nits 2023-05-29 15:30:54 +02:00
Eric Warmenhoven b8fe2ccd10 Update to MoltenVK 1.2.4 2023-05-29 09:30:02 +02:00
Eric Warmenhoven ed448a3f0f Haptic feedback for overlay on iOS 2023-05-29 09:29:41 +02:00
libretroadmin 8c9c9b3845 Localize string and other cleanups 2023-05-28 23:48:26 +02:00
libretroadmin 336025bd3c Get rid of RARCH_CTL_HAS_SET_SUBSYSTEMS 2023-05-28 23:26:55 +02:00
vanfanel dd4148773d Create callback only when needed, and correct brace style. 2023-05-28 23:19:13 +02:00
vanfanel 155d2c9ada [Wayland+GL] Add frame callback after egl_swap_buffers to improve latency when max_swapchain<=2. 2023-05-28 23:19:13 +02:00
libretroadmin c4d22cf51f Simplification 2023-05-28 22:45:46 +02:00
libretroadmin 90115e2dc9 Silence warnings; code cleanups 2023-05-28 22:43:33 +02:00
libretroadmin 5e94d81f33 gfx_display_font_free - useless wrapper function 2023-05-28 22:26:21 +02:00
libretroadmin a6c54a8e54 Simplify gfx_display_get_widget_pixel_scale - code was only ever called from XMB 2023-05-28 22:07:48 +02:00
libretroadmin fe05fad714 (gfx_display) Cleanups 2023-05-28 21:59:50 +02:00
libretroadmin 3b823d18d5 Simplify some code in gfx_display.c 2023-05-28 21:34:57 +02:00
libretroadmin 976d7b8067 Get rid of some useless wrapper functions 2023-05-28 17:56:28 +02:00
libretroadmin 8844c991e1 Cleanups 2023-05-28 16:36:50 +02:00
zoltanvb e0a8d403f1 Support screen refresh rate with Vulkan KHR_Display context 2023-05-28 14:18:51 +02:00
Bernhard Schelling 520e4400b7 Don't initialize rcheevos memory unless used 2023-05-28 05:23:12 +02:00
Bernhard Schelling 18f79a8a8d Allow RETRO_ENVIRONMENT_SET_MEMORY_MAPS also after core startup
Change the comment in libretro.h about the removed limit and handle the environment call during core runtime in RetroArch.
2023-05-28 05:23:12 +02:00
miguedevel 22de73da3b Fix NULL related crash on CRT Switchres code
gfxctx.ident returns NULL on Windows but there's no check for this
2023-05-28 05:22:50 +02:00
gouchi 63101fd886 Add SerenityOS to the list of supported operating systems
- Sort list
- [Serenity OS patches](https://github.com/SerenityOS/serenity/tree/master/Ports/RetroArch/patches)
- [Libretro cores for SerenityOS](https://github.com/gouchi/libretro-cores-serenityos) If somebody wants to help ;)
2023-05-28 05:22:37 +02:00
github-actions e0cbcaf779 Fetch translations from Crowdin 2023-05-28 00:12:39 +00:00
Eric Warmenhoven 6a1320bcfb On mobile in portrait mode, don't override custom viewport 2023-05-27 02:50:32 +02:00
Eric Warmenhoven 6506b65ce7 Fix #15316 - on iOS, stop/start audio on interruptions 2023-05-26 03:27:31 +02:00
github-actions 45d9f91212 Fetch translations from Crowdin 2023-05-26 00:11:00 +00:00
github-actions 755430efcc Fetch translations from Crowdin 2023-05-25 00:11:22 +00:00
github-actions 274f6f8aaa Fetch translations from Crowdin 2023-05-24 00:11:04 +00:00
libretroadmin 3517091a1e (menu_explore.c) Cleanups 2023-05-24 01:52:04 +02:00
libretroadmin c7a3581ee5 Bugfix for earlier commit 2023-05-24 01:03:08 +02:00
libretroadmin 4cc6ba8482 (Menu Explore) Small cleanups 2023-05-24 00:47:02 +02:00
github-actions 0513179001 Fetch translations from Crowdin 2023-05-23 00:11:43 +00:00
github-actions 036d3601df Fetch translations from Crowdin 2023-05-22 00:12:00 +00:00
Eric Warmenhoven b1503c6fc0 Add accelerometer and gyroscope sensors to iOS 2023-05-21 23:18:34 +02:00
sonninnos 997eae88a0 Fix menu refresh in action_ok_network 2023-05-21 23:18:21 +02:00
sonninnos f11bcfa420 Wasapi + MIDI + Frame Delay correction 2023-05-21 02:19:27 +02:00
github-actions 98a255be16 Fetch translations from Crowdin 2023-05-21 00:12:03 +00:00
zoltanvb 23764bb199 menu_st missing for WIFI option fails to build #15281
Trivial fix, problem introduced in 91ea92e50b (diff-04dc75103003c9b5168602965b9499bb5806ce3e8d0e5739aa0e2c71f409b335)
2023-05-20 17:58:18 +02:00
sonninnos bd3bfbb99b Add shortcut to core info in content info 2023-05-20 17:58:08 +02:00
github-actions d2e4dc0c22 Fetch translations from Crowdin 2023-05-20 00:10:57 +00:00
zoltanvb afa0e389aa Display server for KMS
Add a display server construct for DRM/KMS mode. The main use is
to provide resolution changes (including automatic refresh rate
switch) for this configuration, i.e. DRM context and OpenGL drivers.

To enable refresh rate restoration after automatic refresh rate
change, av_info->timing_fps is also adjusted on core close / RA exit.

No effects expected on CRTSwitchRes.
2023-05-19 17:34:25 +02:00
sonninnos 6be1ef5d85 Correct rotated core provided aspect ratio 2023-05-19 17:17:30 +02:00
sonninnos cc1bc25349 Minor adjustments to refresh rate switch behavior 2023-05-19 04:20:16 +02:00
github-actions c949259a11 Fetch translations from Crowdin 2023-05-19 00:11:25 +00:00
Eric Warmenhoven 34d322ffa9 Small tweaks/fixes to update-cores.sh for iOS/tvOS 2023-05-18 03:16:37 +02:00
github-actions e37caf9053 Fetch translations from Crowdin 2023-05-17 00:12:01 +00:00
Eric Warmenhoven 13fc4cbda3 Don't unnecessarily sign iOS/tvOS cores/libraries 2023-05-16 18:56:25 +02:00
Eric Warmenhoven 9d697fedcb Script to download/update cores in iOS/modules and tvOS/modules 2023-05-16 12:56:07 +02:00
Rob Loach b6dc368827 Fix linuxraw_joypad snprintf warning 2023-05-16 12:55:52 +02:00
Rob Loach 39fa89b214 Fix parport_joypad snprintf warning 2023-05-16 12:55:40 +02:00
github-actions b206598c10 Fetch translations from Crowdin 2023-05-16 00:11:26 +00:00
Jamiras 8b439e997b second attempt to fix PS4 build 2023-05-15 03:41:45 +02:00
Jamiras fce7ae8b4d attempt to fix PS4 build 2023-05-15 03:41:45 +02:00
Jamiras e2e193290c show tracker 2023-05-15 03:41:45 +02:00
Jamiras c6d214be0d add config setting 2023-05-15 03:41:45 +02:00
github-actions 14a3e0e851 Fetch translations from Crowdin 2023-05-15 00:11:26 +00:00
github-actions a72e25a314 Fetch translations from Crowdin 2023-05-14 00:12:01 +00:00
sonninnos 9eb083a864 Stop always reseting to defaults on remap delete 2023-05-12 15:27:10 +02:00
Eric Warmenhoven 3b4acbe5fa Also handle tap events on tvOS 2023-05-12 04:42:20 +02:00
Eric Warmenhoven 7242600a0b Back up retroarch.cfg to NSUserDefaults on tvOS. 2023-05-12 04:42:20 +02:00
Eric Warmenhoven d5a86e2363 iOS needs to targets 13 due to some keyboard emulation, but tvOS does not 2023-05-12 04:42:20 +02:00
libretroadmin fe529ff591 Refactor away menu_driver_list_cache 2023-05-12 01:00:08 +02:00
libretroadmin b105fa5a4f Make one function static 2023-05-11 23:14:36 +02:00
libretroadmin b2582f443f Move macro outside of HAVE_OVERLAY 2023-05-11 17:03:02 +02:00
libretroadmin 7db9a4acfa Header cleanups 2023-05-11 05:45:04 +02:00
libretroadmin f2bb150b0a Get rid of some menu_driver_ctl calls 2023-05-11 05:22:17 +02:00
libretroadmin 56a44b2bd1 Fix ifdef for D3D12 hardware context 2023-05-11 03:35:12 +02:00
libretroadmin c78e83978a Refactor menu_entries_ctl into menu_entries_clear 2023-05-11 03:29:45 +02:00
libretroadmin 0f97bf52b9 Create menu_displaylist_refresh 2023-05-11 02:07:56 +02:00
libretroadmin 07cb5f4e98 Remove MENU_ENTRIES_CTL_SET_REFRESH 2023-05-11 01:58:30 +02:00
libretroadmin c3b16e1803 Get rid of MENU_ENTREIS_CTL_UNSET_REFRESH and
MENU_ENTRIES_CTL_GET_REFRESH
2023-05-11 01:18:26 +02:00
Eric Warmenhoven 22dc543364 tvOS has its own beautiful screensavers and I would like them 2023-05-10 22:00:23 +02:00
libretroadmin 9f5a73ef07 Silence warnings and fix Android build 2023-05-10 21:59:50 +02:00
libretroadmin 91ea92e50b Get rid of some menu_driver_ctl commands 2023-05-10 21:30:09 +02:00
libretroadmin 6556dc8950 (XMB) Remove unnecessary menu_driver_ident check 2023-05-10 19:20:45 +02:00
libretroadmin 6952f0709a Some simplifications 2023-05-10 19:13:46 +02:00
libretroadmin 3706c4e464 Cleanups 2023-05-10 19:03:16 +02:00
libretroadmin 1ad253e81a Get rid of menu_input_{get|set}_selection 2023-05-10 18:45:49 +02:00
sonninnos 38895600dc (XMB) Fix menu wallpaper option + override 2023-05-10 18:05:42 +02:00
Eric Warmenhoven dda7776252 tvOS Siri remote handling
It's not really usable as a game controller, but it is good for going
through the menu as a simple LRUD.

This also adds better support for names of mFI controllers, as well as
being able to do the expected tvOS behavior of "backing out" of the app.
2023-05-10 08:41:09 +02:00
libretroadmin 0674613d28 Change return types of menu_driver_list_get_selection/get_size
and simplify struct
2023-05-10 08:36:44 +02:00
libretroadmin 5de30567a1 Get rid of MENU_ENTRIES_CTL_SETTINGS_GET 2023-05-10 07:28:14 +02:00
libretroadmin 74ad3723f9 Get rid of more extraneous menu wrapper functions 2023-05-10 06:37:40 +02:00
libretroadmin 6c22249ae9 Get rid of menu_entries_get_selection_buf_ptr and menu_entries_get_size 2023-05-10 05:52:52 +02:00
libretroadmin 29329ba62f remove menu_entries_get_stack_size 2023-05-10 05:03:40 +02:00
libretroadmin 9861073363 Get rid of menu_entries_get_menu_stack_ptr 2023-05-10 04:48:27 +02:00
libretroadmin a1e4918288 Cleanups 2023-05-10 04:18:00 +02:00
libretroadmin f550e12747 Fix issues in code 2023-05-10 03:47:37 +02:00
github-actions ada1f1137b Fetch translations from Crowdin 2023-05-10 00:11:19 +00:00
libretroadmin f89738e9a0 (menu_cbs_ok.c) Cleanups 2023-05-09 05:21:59 +02:00
libretroadmin c09268f4f4 Turn some functions static 2023-05-09 04:58:06 +02:00
libretroadmin 08f71a9b1e (Menu) Cleanups - make functions static and remove some unnecessary
wrapper functions
2023-05-09 04:41:12 +02:00
github-actions 9df34788e7 Fetch translations from Crowdin 2023-05-09 00:12:06 +00:00
libretroadmin 45947a0534 Turn function static 2023-05-08 23:20:19 +02:00
libretroadmin e613d05da7 Remove some gfx_display_{set|get}_ functions 2023-05-08 22:17:18 +02:00
Eric Warmenhoven 994a2ea108 AltKit support for tvOS 2023-05-08 18:35:43 +02:00
Eric Warmenhoven 23211dc1a1 Enable AltServer JIT for builds installed by Xcode 2023-05-08 18:35:43 +02:00
sonninnos 47d71646c9 Add menu scroll home+end actions 2023-05-08 15:25:51 +02:00
github-actions 907724b184 Fetch translations from Crowdin 2023-05-08 00:11:04 +00:00
libretroadmin baba57c10a Cleanups 2023-05-08 00:08:44 +02:00
libretroadmin ced83c41e6 (Font) Less casting 2023-05-07 21:13:44 +02:00
sonninnos e806e7e7a8 (RGUI) Implement 'Remember Selection' option 2023-05-07 19:39:30 +02:00
libretroadmin a0292c1db4 (Font) Some simplifications 2023-05-07 18:54:39 +02:00
Eric Warmenhoven 1b3f9b84d9 Add AltKit back in as checked-in code 2023-05-07 16:55:48 +02:00
Eric Warmenhoven cd9fd1ec9b Revert AltKit package dependency 2023-05-07 16:55:48 +02:00
Eric Warmenhoven 868505b701 Fix thumbnails in history on iOS 2023-05-07 14:36:23 +02:00
sonninnos 47edfb5702 Video settings menu cleanup 2023-05-07 14:36:02 +02:00
libretroadmin 2304faf7f0 (D3D12) Undo commit a79dc19b6c - allows us to
set RGUI aspect ratio again and internal upscale - going from upscaling
to no upscaling causes a crash though
2023-05-07 05:41:25 +02:00
libretroadmin 5ac380ec39 (D3D10) Fix RGUI 2023-05-07 03:50:18 +02:00
github-actions 80fed3f44f Fetch translations from Crowdin 2023-05-07 00:12:08 +00:00
libretroadmin dfc157d1d0 Small cleanups 2023-05-06 23:19:39 +02:00
libretroadmin 80b640f62e Get rid of unnecessary function 2023-05-06 22:29:44 +02:00
libretroadmin 099f33e0b3 (Menu) Simplifications 2023-05-06 22:10:55 +02:00
libretroadmin 02a849d440 Move RGUI specific code to RGUI file 2023-05-06 20:16:59 +02:00
libretroadmin 42370ac57e Android buildfix 2023-05-06 18:35:55 +02:00
libretroadmin 6d9482f3f0 (Menu) Cut down on small superfluos wrapper functions 2023-05-06 17:19:40 +02:00
sonninnos 99375ff787 Try to declutter Quick Menu 2023-05-06 07:46:27 +02:00
libretroadmin ead88eebfe (Menu) Get rid of a bunch of useless wrpaper function calls 2023-05-06 07:39:20 +02:00
libretroadmin fe8221a259 (D3D12) Remove unused function 2023-05-06 03:18:11 +02:00
libretroadmin bf370ce284 Turn more functions static 2023-05-06 02:34:02 +02:00
libretroadmin ec8aa8e186 Turn functions static 2023-05-05 22:03:41 +02:00
libretroadmin aef8e1d9a8 Add TODO/FIXME - localize notes 2023-05-05 20:15:16 +02:00
sonninnos 4ce384b42d (RGUI) Fix savestate thumbnail fullscreen cancel action 2023-05-05 14:41:47 +02:00
sonninnos 19a417434a (RGUI) Fix and add toggle for playlist thumbnails 2023-05-05 14:41:47 +02:00
github-actions 51a0d1086a Fetch translations from Crowdin 2023-05-04 00:10:43 +00:00
libretroadmin 207dfe170c Small cleanups 2023-05-03 21:10:21 +02:00
sonninnos c8fb30ebe5 (Ozone) Return to sidebar from playlist manage quick access 2023-05-03 20:57:43 +02:00
sonninnos 8f5442da5b Improve CLI scan console output 2023-05-03 20:29:40 +02:00
sonninnos f5f1d35370 Add content import/scan via CLI 2023-05-03 20:29:40 +02:00
github-actions 15e04b8767 Fetch translations from Crowdin 2023-05-03 00:10:49 +00:00
barbudreadmon 3036c47034
(video_driver) fix windowed viewport with libretro rotation (#15247)
* (video_driver) fix viewport with libretro rotation
2023-05-02 17:02:08 +02:00
sonninnos 33c4873b5b
(Ozone) Add quick access to playlist manager from sidebar (#15246) 2023-05-02 14:50:02 +02:00
github-actions e686c0d652 Fetch translations from Crowdin 2023-05-02 00:11:15 +00:00
libretroadmin d64f11a0f7 menu_update_fullscreen_thumbnail_label - some refinements 2023-05-02 00:21:37 +02:00
libretroadmin e61f495b0a Replace some snprintf calls 2023-05-02 00:12:04 +02:00
Carlo Refice 3f9a85d997
Fix rumble on PS4/PS5 controllers connected via bluetooth (#15244) 2023-05-01 23:37:26 +02:00
libretroadmin 6b93152253 * Add some TODO/FIXME localize notes
* some snprintf refactors
2023-05-01 20:49:32 +02:00
libretroadmin e7e647d181 (Joypad drivers) Simplifications - put char string outside loop 2023-05-01 20:33:38 +02:00
libretroadmin b951a010fd Move strftime_am_pm to libretro-common and get rid of duplicated
function
2023-05-01 19:03:11 +02:00
sonninnos b2ff445531
(Ozone) Sidebar multiline scrolling (#15242) 2023-05-01 05:26:31 +02:00
kikmon d446f39c63
[PS1 Scanning] Serial extraction is now considered a failure if PSX.EXE is found, allowing CRC fallback and actually fixing the game scanning (#15241)
Co-authored-by: papa <anonymous>
2023-04-30 23:36:50 +02:00
libretroadmin 19f57716f1 Minor cleanups 2023-04-30 19:35:49 +02:00
libretroadmin c087b044c2 * Add TODO/FIXME localize notes
* More snprintf optimizations
2023-04-30 19:30:07 +02:00
libretroadmin 907efccb05 Another buildfix 2023-04-30 18:01:49 +02:00
libretroadmin 3f2c15d6d6 Buildfix 2023-04-30 17:59:32 +02:00
libretroadmin 254773339b Silence some unused variable warnings 2023-04-30 17:43:46 +02:00
libretroadmin 3871ac4455 * Add FIXME LOCALIZE notes
* Some snprintf optimizations
2023-04-30 17:26:57 +02:00
github-actions 5e3161ea3c Fetch translations from Crowdin 2023-04-30 00:12:28 +00:00
libretroadmin 04833f54b5 settings - remove unused ST_HEX 2023-04-29 16:20:08 +02:00
libretroadmin 246af45939 (menu_displaylist) Cleanups 2023-04-29 15:25:55 +02:00
libretroadmin 31f3588f00 rarch_setting - Reduce size of flag variables 2023-04-29 14:38:31 +02:00
libretroadmin 53a1ff446d Turn another function static 2023-04-29 14:38:31 +02:00
libretroadmin dfd0d6b14a Turn another function static 2023-04-29 14:38:31 +02:00
libretroadmin 138784a32d Turn another function static 2023-04-29 14:38:31 +02:00
libretroadmin 1a91aabd08 (menu_driver) Turn more functions static 2023-04-29 14:38:31 +02:00
libretroadmin 661f315aa8 (Menu) Turn some functions static 2023-04-29 14:38:31 +02:00
libretroadmin 6f457a570b (runtime_file.c) Turn function static and add return value 2023-04-29 14:38:31 +02:00
github-actions a452f6fb29 Fetch translations from Crowdin 2023-04-29 00:10:37 +00:00
libretroadmin 01cd40b1fc Increase conf_key_base size a bit 2023-04-28 20:21:08 +02:00
libretroadmin cce75e274f (task_overlay) Cut down on snprintfs 2023-04-28 20:18:53 +02:00
libretroadmin 47e5fa59ca (menu_displaylist) Cleanups 2023-04-28 17:37:17 +02:00
libretroadmin 242bdf9e1c (menu_displaylist) Cleanups 2023-04-28 17:05:32 +02:00
warmenhoven e9faa3df50
Fix silly mistake, tvos needs tvos cores (#15238) 2023-04-28 15:58:58 +02:00
libretroadmin 1db2f20665 Clean warnings 2023-04-28 02:11:52 +02:00
warmenhoven 71748d27f5
Pre-resolve AltKit swift package (#15236) 2023-04-28 02:08:23 +02:00
warmenhoven 5eddcfee48
The default pthread stack size on Apple is too small for detect_ps2_game (#15235) 2023-04-27 21:16:36 +02:00
libretroadmin c400fa761c (UI companion driver) Remove unused notify_content_loaded 2023-04-27 03:02:00 +02:00
github-actions 86e7aa5280 Fetch translations from Crowdin 2023-04-27 00:12:10 +00:00
Antoine Boucher 513cd25cb3
Update README.md (#15231) 2023-04-27 01:44:52 +02:00
David G. F 5fec32649f
Fix bug introduced in f13cf9 regarding non-compressed ZIPs (#15230)
This happens on platforms with HAVE_MMAP (Linux/Mac) and with ZIPs that
contain uncompressed files.
2023-04-26 21:56:51 +02:00
libretroadmin bce958780d Remove unused ui_companion_notify_list_loaded - and menu_list member
from menu_displaylist_info
2023-04-26 20:21:07 +02:00
sonninnos fae7ac8241
Change network port menu options to 'allow_input' mode (#15227) 2023-04-26 09:09:58 +02:00
github-actions ef8e3c7f28 Fetch translations from Crowdin 2023-04-26 00:11:19 +00:00
libretroadmin a385ff4444 (menu_displaylist) menu_displaylist_info - remove need of 'count'
member variable
2023-04-26 01:57:08 +02:00
libretroadmin 7a0e8788e0 (Menu) menu_displaylist refactors pt. 2 2023-04-26 01:57:08 +02:00
warmenhoven 295e5f0682
JIT support in iOS (#15224)
* Use AltKit to try to enable JIT on iOS

* libretro: Add API to check JIT availability on iOS
2023-04-26 01:55:37 +02:00
sonninnos ad079538a4
Fix menu toggle combo hold with same 'enable_hotkey' (#15226) 2023-04-26 01:54:44 +02:00
Jamiras 4210edc228
eliminate leaderboard tracker stutter (#15223) 2023-04-25 19:03:20 +02:00
libretroadmin c35fddad86 (menu_displaylist) Refactors 2023-04-25 15:06:56 +02:00
libretroadmin 8a6584d0df (menu) menu_displaylist_build_list - cleanups 2023-04-25 14:19:58 +02:00
libretroadmin 08d1b847fd (D3D12) Go through local variables for graphics command list 2023-04-25 14:08:21 +02:00
David G. F f13cf92341
Improve ZIP decompression (#15220)
This reduces the amount of memory Retroarch needs to extract a ROM file.
It will only need the size of the ROM plus 128KiB to extract the file
from the ZIP. Previously it needed as much as twice that amount if the
compression ratio was not great. This is useful on memory constrained
platforms and has no impact on platforms with plenty of memory.

Handles all cases correctly (with and without MMAP, for cores that
require fullpath or not, small and big ZIP files).
2023-04-25 13:17:18 +02:00
github-actions fc5d16f5a4 Fetch translations from Crowdin 2023-04-25 00:13:28 +00:00
libretroadmin dcefb6e028 (D3D12) Get rid of the small inline wrapper functions 2023-04-24 18:11:26 +02:00
MrHuu 6a97eb91cf
(3DS) Update __system_initArgv (#15219) 2023-04-24 16:12:37 +02:00
libretroadmin 2a5c419d38 Cleanup d3d12_heap_descriptor_alloc 2023-04-24 10:54:46 +02:00
libretroadmin cff5ea2a9b (video_driver/HDR) Remove unused helper functiosn 2023-04-24 10:54:46 +02:00
libretroadmin ca164d1b0f Minor cleanup in video_driver.c - call get_viewport_info directly 2023-04-24 10:54:46 +02:00
libretroadmin ba9e78fe99 (menu_displaylist) Cleanups 2023-04-24 10:54:46 +02:00
github-actions 99e0d360e4 Fetch translations from Crowdin 2023-04-24 00:11:51 +00:00
libretroadmin 4d2a7f4dd0 (Menu) menu_displaylist_build_list - simplifications, less LOC 2023-04-23 17:30:55 +02:00
libretroadmin 07eddd7229 Cleanups 2023-04-23 16:09:24 +02:00
libretroadmin 1f2bd96459 (video_shader_parse.c) Namespace some functions, random misc cleanups 2023-04-23 11:24:03 +02:00
libretroadmin 7ebc68be6f (drivers_font) Cleanups/style nits 2023-04-23 11:10:07 +02:00
libretroadmin 238f887931 Get rid of initial for loop C89 noncompliance
* uwp_main.c - code style cleanups
2023-04-23 10:47:09 +02:00
libretroadmin 182ab1a82e Small misc cleanups - some C89 compliance fixes 2023-04-23 09:11:26 +02:00
libretroadmin 258ac6de4a Expand menu_displaylist_build_list 2023-04-23 09:01:52 +02:00
libretroadmin 11cab12d59 Cleanups 2023-04-23 08:29:33 +02:00
libretroadmin 3b8791f0ad Remove unused functions in menu_setting.c 2023-04-23 08:08:00 +02:00
zoltanvb 80296a60a2
Remove language specific msg_hash_xx.c files (#15218)
After PR #14821 , the contents of msg_hash_xx.c files are present
in the normal translation workflow. Since that time, almost all
languages have either caught up on Crowdin, or are still on such
low level of translation completeness, that removing these entries
does not harm usability.

Only Chinese Simplified and Portuguese Brazilian languages remain
in separate files, as they may still be considered an improvement
over Crowdin status.

See also commit 568ffac8f6.
2023-04-23 07:59:56 +02:00
github-actions 79384b39ec Fetch translations from Crowdin 2023-04-23 00:12:13 +00:00
github-actions 6aa6785428 Fetch translations from Crowdin 2023-04-22 00:11:47 +00:00
github-actions c6161118ec Fetch translations from Crowdin 2023-04-21 00:10:38 +00:00
Felipe Tavares ea81928e39
Fast-Forward Audio Resampling (#15173)
* 🎵 Fast forward audio resampling. Solves #15160.

Previously, we avoided doing any resampling while fastforwarding based
on the assumption it was impossible to make the audio not crackle due to
both flush-to-flush timing fluctuations and timer accuracy.

However, turns out this is not the case. The audio doesn't "crackle" per
se when the timing fluctuates! It's just that the sounds don't make
sense since the time compression and decompression caused by the flush
time fluctuations mess with the audio consistency.

To work around that, we introduce a running average flush delta time
that makes sure the audio is both resampled to approximately the correct
rate and consistent.

This was tested in two settings:

- Limited rate fastforwarding (2x-4x)
- Unlimited fastforwarding

In both cases it seems to work well, but with unlimited fastforwarding
it's just high pitched and annoying, so this is probably the most useful
in the 2x to 4x range.

* Move declartion to support C89

* resampling ratio upper and lower bounds

* Add toggle for speeding up audio
2023-04-20 17:14:47 +02:00
github-actions 91765d5ca5 Fetch translations from Crowdin 2023-04-20 00:11:18 +00:00
github-actions b715cf1a46 Fetch translations from Crowdin 2023-04-19 00:11:41 +00:00
github-actions 97ad745f15 Fetch translations from Crowdin 2023-04-18 00:11:13 +00:00
libretroadmin 52ba0fce34 Cleanups/variable cleanups/less snprintf calls 2023-04-17 15:26:30 +02:00
libretroadmin 0849a51ecc Small cleanups 2023-04-17 15:04:46 +02:00
sonninnos a8994860fc
Reinit audio on audio sync toggle (#15204) 2023-04-17 04:24:00 +02:00
github-actions bdc34f2046 Fetch translations from Crowdin 2023-04-17 00:11:49 +00:00
Jamiras 8ea9651d09
(cheevos) expand leaderboard visibility settings (#15201)
* migrate cheevos_leaderboard_enabled setting to cheevos_visibility_lboard_X

* provide translatable strings for leaderboard messages
2023-04-16 19:44:46 +02:00
github-actions 19aeb52cbc Fetch translations from Crowdin 2023-04-16 00:12:25 +00:00
sonninnos 3c37da6bd1
Start directory browsing from current value (#15199) 2023-04-15 20:01:04 +02:00
warmenhoven 11a7cc9d23
Include audio and video filters in ios/tvos bundles (#15197) 2023-04-15 11:55:46 +02:00
github-actions 800094b750 Fetch translations from Crowdin 2023-04-15 00:11:54 +00:00
sonninnos 5722d90a38
Show version in System Information + help/log version reformat (#15195) 2023-04-14 21:28:09 +01:00
sonninnos dd106c4f4a
Show current video + audio drivers in statistics (#15193) 2023-04-14 20:15:54 +02:00
sonninnos e2a264700a
Audio output menu item reinit fix (#15190) 2023-04-14 07:18:21 +02:00
sonninnos 07c371533f
WASAPI Frame Delay fix + cleanups (#15187) 2023-04-13 20:20:47 +02:00
Hennadii Chernyshchyk 4d8db0b5b8
Enable networking for RG350 (#15182) 2023-04-11 17:31:49 +02:00
aliaspider 50b9454f69
d3d12: enable blending when drawing the menu. (#15181) 2023-04-11 06:56:48 +01:00
github-actions 4dc9c1da0c Fetch translations from Crowdin 2023-04-11 00:10:59 +00:00
libretroadmin d48bd7244a Libretro API update - add new context hardware render enums - enables
autodetection of DX12 for PS2 core
2023-04-11 00:54:02 +02:00
Colin Kinloch f19def349f
(Wayland) Remove splash screen (#15178) 2023-04-10 16:37:48 +02:00
aliaspider a79dc19b6c
D3D12: move fence signaling out of d3d12_gfx_sync. (#15179) 2023-04-10 16:37:36 +02:00
Colin Kinloch e8ec3031a8
(Wayland) wp_viewporter + scaling fix (#15176)
* Use wp_viewporter
* Set buffer scale to highest of displays the window is touching
* Fixes fullscreen issue mentioned in #15168
* Simplify process of adding new wayland protocols
2023-04-10 06:29:41 +01:00
github-actions 7874a64529 Fetch translations from Crowdin 2023-04-10 00:10:49 +00:00
aliaspider 0adbd6905f
add D3D12 HW_render support. (#15177) 2023-04-10 01:08:44 +01:00
zoltanvb 4350ec24be
Support device list for PulseAudio (#15174)
As mentioned in https://github.com/libretro/RetroArch/issues/14954,
audio device selection works only if respective functions are
implemented in audio driver.

Added sink listing and selection. Common menu code takes care of the rest.
2023-04-09 18:15:48 +01:00
libretroadmin c247e6f3d6 Bump max users to 8 2023-04-09 19:08:33 +02:00
Colin Kinloch d625ca3762
(Wayland) Only display splash when necessary (#15168) 2023-04-08 02:41:07 +01:00
github-actions 2f4ae88b06 Fetch translations from Crowdin 2023-04-08 00:10:38 +00:00
mudlord e5ae518572
Remove mudlord. (#15164) 2023-04-07 06:05:11 +01:00
CyberLabSystems 364356dde6
CyberLab Custom Blargg NTSC Video Filter Preset Update (#14426)
* Update and rename Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_Composite.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_Composite.filt

Change "their" to "his" in the credits because it's the appropriate pronoun.
Remove "PSX" from the filename because it doesn't seem to work with any currently available PSX core.

* Update and rename Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_S-Video.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_S-Video.filt

Change "their" to "his" in the credits because it's the appropriate pronoun.
Remove "PSX" from the filename because it doesn't seem to work with any currently available PSX core.

* Update and rename Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_RGB.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_RGB.filt

Change "their" to "his" in the credits because it's the appropriate pronoun.
Remove "PSX" from the filename because it doesn't seem to work with any currently available PSX core.

* Update Blargg_NTSC_SNES_Custom_pseudo_MD_S-Video.filt

Change "their" to "his" in the credits because it's the appropriate pronoun.

* Update Blargg_NTSC_SNES_Custom_pseudo_MD_Composite.filt

Change "their" to "his" in the credits because it's the appropriate pronoun.

* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_Composite.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_Composite.filt

Change "their" to "his" in the credits because it's the appropriate pronoun.

Revert filename to include "PSX" becsuse it works under certain conditions based on feedback.

* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_RGB.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_RGB.filt

Change "their" to "his" in the credits because it's the appropriate pronoun.

Revert filename to include "PSX" becsuse it works under certain conditions based on feedback.

* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_S-Video.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_S-Video.filt

Change "their" to "his" in the credits because it's the appropriate pronoun.

Revert filename to include "PSX" becsuse it works under certain conditions based on feedback.

* Delete e -i HEAD~5

Remove because it's just a garbage file.

* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_Composite.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_Composite.filt

* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_RGB.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_RGB.filt

* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_S-Video.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_S-Video.filt
2023-04-07 02:08:55 +01:00
github-actions b133bf8834 Fetch translations from Crowdin 2023-04-07 00:10:51 +00:00
Jamiras 2a7480d1e0
collapse trackers with same value definition (#15163) 2023-04-06 22:36:38 +02:00
warmenhoven 486c5d5cba
Compile dsp/video filters built in on osx (#15161) 2023-04-06 15:18:40 +02:00
warmenhoven 29842aabdc
Fix steam osx core path (#15158) 2023-04-06 06:06:10 +02:00
Jamiras 08a5288144
upgrade to rcheevos 10.7 (#15152) 2023-04-04 15:06:44 +01:00
warmenhoven 54055558f1
Fix several warnings (#15153) 2023-04-04 15:06:34 +01:00
OsirizX 6cc05ab5ce
(PSL1GHT) Add overlay support (#15149) 2023-04-04 15:05:59 +01:00
libretroadmin f46beade21 (Android) Buildfix 2023-04-03 22:47:50 +02:00
libretroadmin 96a4417e38 (Vulkan) vulkan_surface_create - we already set all members of this
struct - memset unnecessary
2023-04-03 20:51:41 +02:00
libretroadmin 223f063894 Simplify win32_common.c 2023-04-03 20:26:04 +02:00
github-actions e5737ce18d Fetch translations from Crowdin 2023-04-03 00:11:10 +00:00
Valentin b0b5a40d44
add overlay parameter to control x/y separation in auto-scale mode (#15106) 2023-03-31 01:33:39 +01:00
github-actions d28417ca84 Fetch translations from Crowdin 2023-03-31 00:11:35 +00:00
github-actions 0817022d95 Fetch translations from Crowdin 2023-03-30 00:11:39 +00:00
github-actions dc72ab6ae3 Fetch translations from Crowdin 2023-03-29 00:13:17 +00:00
github-actions dd62f3a9fb Fetch translations from Crowdin 2023-03-28 00:12:21 +00:00
aliaspider d3fad528ce
fix memory corruption in d3d11_gfx_init. (#15139) 2023-03-27 16:04:55 +01:00
github-actions 3a41738b61 Fetch translations from Crowdin 2023-03-27 00:11:47 +00:00
barbudreadmon 1fb9853a93
(Shaders) pass rotation index to shaders (#15136) 2023-03-26 21:20:27 +01:00
github-actions 13785a715e Fetch translations from Crowdin 2023-03-26 00:12:10 +00:00
zoltanvb c996fe7070
Add wayland to input driver list. (#15133)
Wayland input driver was not selectable from menu. It could still be enforced by
context driver, or enabled in config file, but I saw no reason why it would be
better to skip it from here.
2023-03-25 22:42:03 +01:00
Subs f24893bcb1
[CRT] Add KMS modeswitch (#15131)
* Prepare to update deps/switchres

* Squashed 'deps/switchres/' content from commit ca72648b32

git-subtree-dir: deps/switchres
git-subtree-split: ca72648b3253eca8c5addf64d1e4aa1c43f5db94

* Add CRT modeswitching to KMS
Display the real refresh rate
Enable the CRT SwitchRes menu
Add another switchres.ini path for Lakka
2023-03-25 11:57:10 +01:00
Joe Osborn d118259589
Make cmd interface more useful for replay information (#15132)
* Add 'active replay' config get to config command and flush stdout for command replies; tweak output of play replay command

* guard on have_bsv_movie
2023-03-24 22:41:07 +01:00
Colin Kinloch 2101400bf4
(Wayland) Check for pointer before locking it (#15130)
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
2023-03-24 22:40:38 +01:00
Colin Kinloch a6e6ddf425
(Wayland) Update destruction (#15129) 2023-03-24 15:14:56 +01:00
Colin Kinloch eeda1f6141
(Wayland) Don't relock the pointer (#15128) 2023-03-24 05:07:48 +01:00
github-actions 7144acd26e Fetch translations from Crowdin 2023-03-24 00:11:20 +00:00
sonninnos 390ee5c3c7
(Win32) Increase maximum window limit (#15125) 2023-03-23 18:02:09 +01:00
Stephanie Gawroriski a681f0e31f Update SquirrelJME 3DS Core information along with icons. 2023-03-22 22:22:03 -04:00
github-actions b497d2c050 Fetch translations from Crowdin 2023-03-23 00:11:40 +00:00
Esoptron 38b884b7ba
Update AUTHORS.h (#15117)
Modify my authors entry
2023-03-22 07:43:10 +01:00
warmenhoven 1b3c9e62aa
Use same Xcode project for iOS as is used for packaging (take 2) (#15118) 2023-03-22 07:43:00 +01:00
github-actions 693435a6de Fetch translations from Crowdin 2023-03-22 00:10:15 +00:00
Colin Kinloch d2c40b48ab
(Wayland) Mouse grab cleanup (#15114) 2023-03-21 14:36:24 +01:00
github-actions 90694a3cf1 Fetch translations from Crowdin 2023-03-21 00:11:10 +00:00
Manuel Alfayate Corchete aaa53da148
[Wayland] Add mouse grab/lock functionality. (#15103)
* [Wayland] Add mouse grab functionality.

Co-authored-by: Colin Kinloch <colin@kinlo.ch>
2023-03-20 11:30:04 +01:00
github-actions 8d1e575ea6 Fetch translations from Crowdin 2023-03-20 00:12:33 +00:00
zoltanvb 523c394ccb
Enable language autodetect for all builds with LANGEXTRA. (#15110) 2023-03-19 21:07:11 +01:00
hunterk 2a36245e0c
make ffmpeg core compile separately again and silence a couple of unused variable warnings (#15108) 2023-03-19 02:38:18 +01:00
zoltanvb ca11479f2f
Fix for https://github.com/libretro/RetroArch/issues/15097 and a minor change to recognize en_GB better. (#15105) 2023-03-18 23:05:32 +01:00
sonninnos 8d12ff3cf1
Ensure statistics text is aligned left (#15102) 2023-03-18 14:56:32 +01:00
github-actions 30de5784a5 Fetch translations from Crowdin 2023-03-18 00:11:30 +00:00
LibretroAdmin 9064313897
Update CHANGES.md 2023-03-17 19:44:13 +01:00
libretroadmin b07353a0d9 Put forward declaration in wgl_ctx.c 2023-03-17 16:13:09 +01:00
libretroadmin 2902d11b1a Rewinding code should not be a forced built-in dependency 2023-03-17 16:08:41 +01:00
libretroadmin 1581ece9ea Cleanups 2023-03-17 00:03:23 +01:00
libretroadmin 0de147971a (Wayland) Cleanups 2023-03-16 18:40:17 +01:00
libretroadmin 17c1962b6f (Android) Bump up version 2023-03-16 17:09:11 +01:00
github-actions 6616b807ed Fetch translations from Crowdin 2023-03-16 00:13:09 +00:00
libretroadmin d2ac15c6db Fixes filestream_vscanf regression 2023-03-15 20:13:04 +01:00
libretroadmin b70b0deec4 Revert "(Modern Windows build) Set D3D11 as the default video driver for modern Windows"
This reverts commit f5bc0edbaa.
2023-03-15 17:06:18 +01:00
github-actions 3f19f16d97 Fetch translations from Crowdin 2023-03-15 00:11:39 +00:00
sonninnos 92dfc80327
Check for 'enable_hotkey' also from autoconf binds (#15095) 2023-03-14 18:16:53 +01:00
sonninnos a0c7f11499
(XMB) Horizontal icon animation fix (#15093) 2023-03-14 00:36:39 +01:00
sonninnos 281ccab6ee
(Win32) Ignore window limiting with fixed position (#15092) 2023-03-13 23:17:47 +01:00
sonninnos da076faa47
Notification font + statistics adjustments (#15089) 2023-03-13 20:10:10 +01:00
libretroadmin dc6b6d5cdb (XAudio) Header cleanups 2023-03-13 04:23:25 +01:00
libretroadmin 88cd91c586 Cleanup some xaudio headers 2023-03-13 04:12:18 +01:00
libretroadmin f5bc0edbaa (Modern Windows build) Set D3D11 as the default video driver for modern Windows
version (Windows 7 and up)
2023-03-13 02:47:55 +01:00
libretroadmin 5c51232731 Style nit 2023-03-13 02:23:52 +01:00
libretroadmin 60dc768f78 (Replay/BSV) Fix issue #15083, and some other style nits 2023-03-13 01:34:27 +01:00
github-actions 2b7c722c11 Fetch translations from Crowdin 2023-03-13 00:12:32 +00:00
github-actions 6107dd2e02 Fetch translations from Crowdin 2023-03-12 00:12:07 +00:00
LibretroAdmin a03587d890
Update reverb.c 2023-03-11 23:00:39 +01:00
Joe Osborn be5b198692
Replay rewind fix (#15079)
* Rewind during recording isn't visibly busted anymore but it doesn't rewind the replay properly during playback or record, inputs get clobbered; check frame pos/ptr stuff.

* Fix rewinding during movie recording and playback?
2023-03-11 18:37:48 +01:00
github-actions 666fbdcb38 Fetch translations from Crowdin 2023-03-11 00:10:58 +00:00
libretroadmin 938ab716bd Bump version 2023-03-10 17:16:50 +01:00
LibretroAdmin 430a9f6eed
Update CHANGES.md 2023-03-10 17:04:11 +01:00
LibretroAdmin f7b4ee492a
Update CHANGES.md (Up to Feb 12) 2023-03-10 08:18:35 +01:00
github-actions 06501ebed0 Fetch translations from Crowdin 2023-03-10 00:12:33 +00:00
Joe Osborn 81b3e128ac
Add checkpointing feature for replay recordings. (#15072)
If cores are not deterministic, or if they only have bounded
determinism, we can obtain less drift if replay files also contain
periodic checkpoint states.  These are configured by the new retroarch
stting replay_checkpoint_interval (measured in seconds).  States are
inserted into the replay file in between frames.

This patch also fixes the settings display for the replay
autoincrement max keep setting.
2023-03-09 23:14:02 +01:00
Colin Kinloch 297aa1ff72
(Wayland) Build pointer-constraints and relative-pointer protocols (#15071)
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
2023-03-09 19:54:36 +01:00
github-actions e99efba2b9 Fetch translations from Crowdin 2023-03-09 00:12:19 +00:00
Colin Kinloch e54495235e
(Wayland) Wait for splash screen configuration (#14485)
* (Wayland) Wait for splash screen configuration

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>

* (Wayland/libdecor) Remove unnecessary context creation check. Log library load.

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>

* (Wayland) Bring xdg_toplevel configure in line with libdecor and add icon to splash screen

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>

---------

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
2023-03-08 22:56:24 +01:00
warmenhoven 04b0421efc
Add App Category to a few places it should have been (#15019) 2023-03-08 20:59:14 +01:00
Colin Kinloch e31b7fe6c2
(Wayland) Fix resize check (#15065)
* (Wayland) Fix resize check

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>

* (Wayland/GL) Correct scaling on resize

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>

* (Wayland) Fix fullscreen buffers being initially double scaled

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>

---------

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
2023-03-08 20:08:31 +01:00
github-actions 51eafdd7fd Fetch translations from Crowdin 2023-03-08 00:12:19 +00:00
Joe Osborn 807640fed3
Associate states with replays (#15070)
* change bsv file suffix to replay, update strings

* add trivial RPLY block to save states

* WIP rerecording support, doesn't load states properly yet--issue with checking identifiers?

* Fixed a type error to get time identifiers working right, ready for testing

* handle case where state without replay data is loaded during replay

* cleanups

* whitespace cleanup

* Cleanups, change replay file format magic, fix logic around future states

* Remove failed future message

* Add play-replay-from-slot command, fix load-state-from-slot to use given slot

* build fixes

* Fix race conditions in emscripten build and incorrect replay state incrementing

* Style fix for single line if

---------

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-03-08 00:10:59 +01:00
zoltanvb ed2ffb5393
Minor menu opacity fixes. (#15069)
Remove "Framebuffer opacity" from XMB as it does not use it.
Also, rename the corresponding menu title, since "framebuffer"
is not that intuitive.
2023-03-08 00:10:27 +01:00
sonninnos 17b46b5f93
(Win32) Window size improvements (#15068) 2023-03-07 16:51:08 +01:00
github-actions 01a997345f Fetch translations from Crowdin 2023-03-07 00:13:20 +00:00
LibretroAdmin 77e2cfd20c
Revert "Use same Xcode project for iOS as is used for packaging (#15061)" (#15066)
This reverts commit 74bbc497ce.
2023-03-06 23:55:25 +01:00
warmenhoven 74bbc497ce
Use same Xcode project for iOS as is used for packaging (#15061) 2023-03-06 19:57:26 +01:00
warmenhoven a60249ff87
Fix #15059 Compile in presence for discord (#15063)
Also relying on $TMPDIR is problematic because Discord uses
NSTemporaryDirectory() which may not be the same.
2023-03-06 19:57:08 +01:00
github-actions b59cd4fcd8 Fetch translations from Crowdin 2023-03-06 00:12:35 +00:00
sonninnos 4699d91ed5
(Win32) Use core geometry as window limit (#15060) 2023-03-05 15:21:05 +01:00
github-actions a1fdab04fb Fetch translations from Crowdin 2023-03-05 00:14:31 +00:00
github-actions 4101d8166a Fetch translations from Crowdin 2023-03-04 00:11:36 +00:00
Joe Osborn 4d81f70f00
Replay nomenclature (#15054)
* change bsv file suffix to replay, update strings

* Fix bsv cli args

* Fix help whitespace

* Fix another message

---------

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-03-03 23:16:48 +01:00
sonninnos a256a504a8
Fix auto savestate path (#15055) 2023-03-03 23:16:20 +01:00
libretroadmin f60b3ec7a1 Fix MSVC error 2023-03-03 20:07:40 +01:00
andymcca 989359479c
Fix no on-screen notifications (#15052)
This was broken in commit 083b14b85c - my bad, as I forgot to re-add the call to sdl_render_msg when reorganising sdl_gfx_frame!
2023-03-03 17:51:29 +01:00
sonninnos 84691edd3f
(Win32) Limit minimum window size (#15053) 2023-03-03 17:50:30 +01:00
Gabriel Morazán 34148dab49
(UWP) Add ANGLE DLL files (#15051) 2023-03-03 10:55:24 +01:00
github-actions 7777be2ec1 Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
warmenhoven f5a2d1598a
Make sure to call steam_poll. (#15050) 2023-03-03 01:53:16 +01:00
Joe Osborn 2125770236
Replay UI support (#15048)
* Add bsv replay controls (not yet fully implemented), remove toggle

see notes in task_movie.c, make sure command.c calls the right
functions, check retroarch.c and other todos.

bsv files are also now stored with states, not saves.

* Compilation fixes

* Added command impls for play and record replay, and some code in load state to do the right thing there

* Guard some parts of the new code with HAVE_BSV_MOVIE

* wip, menu fixes

* more menu fixes, osd for movie errors, halt recording properly

* Menu and label fixes

* move bsvs to own file suffix series under savestates, fix recording and playback command validity checks

* Fix replay autoincrement

* fix endif placement, whoops

---------

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-03-03 00:52:22 +01:00
Manuel Alfayate Corchete 6e27b6f571
[Vulkan] Don't clamp the number of requested images. (#15047) 2023-03-03 00:49:02 +01:00
warmenhoven a49cf1e7e3
Break Steam mac build out into separate scheme, to avoid certain flags (#15046) 2023-03-02 20:09:36 +01:00
Jesse Talavera-Greenberg 152867d14f
Revert "Fix #15039 (#15042)" (#15043)
This reverts commit c3a5a25d43.
2023-03-02 02:08:56 +01:00
github-actions 2809a1f28f Fetch translations from Crowdin 2023-03-02 00:13:14 +00:00
Gabriel Morazán 9b2a4e6c88
(UWP/Xbox) Major Build Overhaul (#15040)
* (UWP) Major Build Overhaul

* (UWP) Add Back Assets

GitHub Desktop is stupid and ignored these files

* (UWP) Fix D3D12 Regression
2023-03-01 14:13:24 +01:00
Jesse Talavera-Greenberg c3a5a25d43
Fix #15039 (#15042)
- Move the uninit_libretro_symbols call to the end
- The drivers may need access to the core for deinitialization
2023-03-01 13:34:10 +01:00
warmenhoven 8f70da6b0c
OSX: Make sure to use the file system path name, not the URL name (#15038) 2023-03-01 02:01:46 +01:00
github-actions ec42d76035 Fetch translations from Crowdin 2023-03-01 00:14:45 +00:00
warmenhoven bf5739b735
More changes for Steam on Mac (#15036)
* Additional Steam build cleanups

* Fix Mac directories for Steam
2023-02-28 21:28:59 +01:00
libretroadmin 0422dfb5b5 Cleanups 2023-02-28 18:32:11 +01:00
github-actions e8d88f1b78 Fetch translations from Crowdin 2023-02-28 00:12:26 +00:00
sonninnos 9d8aee53fa
(Win32) Fix restart if path has spaces (#15034) 2023-02-27 22:24:41 +01:00
Joe Osborn a1903eee15
Emscripten pthread tweaks (#15033)
* add more documentation to emscripten, pthread support, and flag to not show asset warnings

* typo in docs

---------

Co-authored-by: thelamer <ryankuba@gmail.com>
2023-02-27 19:56:12 +01:00
warmenhoven 67372e0f38
Use xcodebuild -exportArchive rather than assuming archive structure (#15032) 2023-02-27 19:09:45 +01:00
warmenhoven c226392358
Another try at creating a steam build for the mac (#15031) 2023-02-27 18:09:50 +01:00
sonninnos 85fb7f9257
Add recordings to video history playlist (#15027) 2023-02-26 21:50:35 +01:00
HyperspaceMadness e4a11cff59
Shader Preset - Wildcard Replacement in Paths on Load (#15023)
When a simple preset loads, wildcards which are found in paths inside the presets will 
be replaced with values coming from the current RetroArch context.  This will operate
on both texture paths and reference paths.

This would allow you to do things like have one preset which could be used with the entire list of images from the Bezel Project

E.G. 
    "/shaders/MyBackground_$VID-DRV$ _$CORE$.png" 
would be replaced with
   "/shaders/MyBackground_glcore_YabaSanshiro.png"
If  no file found at that path, the path will revert to the original path, so operates as a fallback
   "/shaders/MyBackground_$VID-DRV$ _$CORE$.png" 

  * Possible wildcards/tokens to be replaced:
 * 
 *   $CONTENT-DIR$ -> Content Directory of the game rom
 * 
 *   $CORE$       -> Core name
 * 
 *   $GAME$       -> Game ROM's name
 * 
 *   $VID-DRV$   -> Video Driver: Currently active driver, possible replacement values:
 *       glcore
 *       gl
 *       vulkan
 *       d3d11
 *       d3d9_hlsl
 *       "N/A"
 * 
 *   $VID-DRV-SHADER-EXT$   -> Video Driver Shader File Extension: The extension of shaders type supported by the current video driver:
 *       cg
 *       glsl
 *       slang
 * 
 *   $VID-DRV-PRESET-EXT$   -> Video Driver Preset File Extension: The extension of shaders type supported by the current video driver:
 *       cgp
 *       glslp
 *       slangp
 * 
 *   $CORE-REQ-ROT$   -> Core Requested Rotation: Rotation the core is requesting, possible replacement values:
 *       CORE-REQ-ROT-0
 *       CORE-REQ-ROT-90
 *       CORE-REQ-ROT-180
 *       CORE-REQ-ROT-270
 * 
 *   $VID-ALLOW-CORE-ROT$   -> Video Allow Core Rotation: Reflects Retroarch's setting allowing the core requested rotation to affect the final rotation:
 *       VID-ALLOW-CORE-ROT-OFF
 *       VID-ALLOW-CORE-ROT-ON
 * 
 *   $VID-USER-ROT$   -> Video User Rotation: Rotation the core is requesting, possible replacement values, does not affect the UI:
 *       VID-USER-ROT-0
 *       VID-USER-ROT-90
 *       VID-USER-ROT-180
 *       VID-USER-ROT-270
 * 
 *   $VID-FINAL-ROT$   -> Video Final Rotation: Rotation which is the sum of the user rotation and the core rotation if it has been allowed, does not affect the UI:
 *       VID-FINAL-ROT-0
 *       VID-FINAL-ROT-90
 *       VID-FINAL-ROT-180
 *       VID-FINAL-ROT-270
 * 
 *   $SCREEN-ORIENT$   -> Screen Orientation: User adjusted screen orientation, will change windows from landscape to portrait, including the Retroarch UI:
 *       SCREEN-ORIENT-0
 *       SCREEN-ORIENT-90
 *       SCREEN-ORIENT-180
 *       SCREEN-ORIENT-270
 * 
 *   $VIEW-ASPECT-ORIENT$   -> Viewport Aspect Orientation: Orientation of the aspect ratio of the RetroArch viewport
 *       VIEW-ASPECT-ORIENT-HORZ
 *       VIEW-ASPECT-ORIENT-VERT
 * 
 *   $CORE-ASPECT-ORIENT$   -> Core Aspect Orientation: Orientation of the aspect ratio requested by the core
 *       CORE-ASPECT-ORIENT-HORZ
 *       CORE-ASPECT-ORIENT-VERT
 * 
 *   $PRESET_DIR$  -> Preset directory's name
 * 
 *   $PRESET$     -> Preset's name
 * 
 * If no wildcards are found within the path, or the path 
 * after replacing the wildcards does not exist on disk,
 * the path returned will be unaffected.
2023-02-26 19:06:57 +01:00
LibretroAdmin a2f34a6836
Update shader_glsl.c 2023-02-26 19:03:05 +01:00
Nicolas Adenis-Lamarre 7e2e87ad4a
fix udev guns input when id_mouse is not id_joystick (#15026)
the commit cfe9d60f51
introduces an issues on guns inputs for drivers udev, dinput, winraw and x11.
A local variable called "port" is redefining the function argument variable and
is causing bad calls in subsequent function calls.

In short, functionnally, if you have only 1 gun and 1 pad on your system, all works.
As soon as you use several pads or several guns, you may have issues,
because subsequent calls use the joystick port instead of the device port as argument.

IMPORTANT NOTE : this fix was done originally for the batocera project which uses only the udev driver,
this is why it is focused on udev only.
The same thing must be done and tested for dinput, winraw and x11.
I've not the ability to test them.

Signed-off-by: Nicolas Adenis-Lamarre <nicolas.adenis.lamarre@gmail.com>
2023-02-26 15:52:20 +01:00
libretroadmin 3f485de88c i(dinput/winraw/x11) Fix issue pointed out in PR #15026 2023-02-26 15:51:37 +01:00
sonninnos 6622cbb69d
(D3D11/12) Cleanups (#15025) 2023-02-26 13:27:05 +01:00
github-actions e34168e44c Fetch translations from Crowdin 2023-02-26 00:12:35 +00:00
libretroadmin 1314d9479b (Griffin) Add HAVE_MIST files
(Command.c) Remove some unused variables
2023-02-25 17:51:16 +01:00
LibretroAdmin 9192abb608
Revert "steam support for mac (#15018)" (#15022)
This reverts commit 3fa1e32bc6.
2023-02-25 17:26:34 +01:00
LibretroAdmin ceaef8240d
Revert "Probable build fix for xcode 12 (#15020)" (#15021)
This reverts commit 43e6877e5d.
2023-02-25 17:25:43 +01:00
warmenhoven 43e6877e5d
Probable build fix for xcode 12 (#15020) 2023-02-25 16:41:30 +01:00
warmenhoven 3fa1e32bc6
steam support for mac (#15018) 2023-02-25 09:21:15 +01:00
github-actions 823be06452 Fetch translations from Crowdin 2023-02-25 00:12:12 +00:00
libretroadmin f8b119031d Buildfix 2023-02-24 23:16:30 +01:00
libretroadmin 9f4439958b Turn function static 2023-02-24 23:08:44 +01:00
Joe Osborn d0ca2384c5
Add LOAD_STATE_SLOT N command to stdin/network protocol (#15010)
* Add LOAD_STATE_SLOT N command to stdin/network protocol

* Style fixes

---------

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-02-24 23:04:39 +01:00
Joe Osborn e1afca5392
add command and stdin_cmd features to emscripten RA. update libretro.js to show how commands could be sent over emscripten stdin. (#15017)
Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-02-24 22:06:04 +01:00
libretroadmin d4677790eb Hopefully fixes Dingux issues with ScummVM 2023-02-24 19:13:30 +01:00
github-actions 431092fc57 Fetch translations from Crowdin 2023-02-24 00:12:11 +00:00
libretroadmin 3adcbea501 Silence some implicit conversion warnings 2023-02-23 21:59:02 +01:00
libretroadmin 4811568c78 Silence -Wunused-const-variable warnings 2023-02-23 21:49:46 +01:00
libretroadmin 51d238875e Get rid of obsolete HAVE_VIDEO_LAYOUT - obsolete spec, was only
ever implemented for OpenGL2 driver, lots of code debt, best to
instead just keep improving the overlay system instead which is
already available for most video drivers
2023-02-23 21:03:41 +01:00
libretroadmin c7f2e6e163 Buildfix 2023-02-23 19:06:55 +01:00
libretroadmin 8507c4ba20 (input/connect) Cleanups 2023-02-23 18:53:17 +01:00
libretroadmin 3cad8ac834 (Apple/Makefile/Qb) HAVE_METAL being defined does not bake out OpenGL,
bake out Switchres (Linux/windows only)
2023-02-23 17:53:03 +01:00
libretroadmin 5e05f76e78 Some buildfixes for compiling macOS with plain make 2023-02-23 17:44:23 +01:00
libretroadmin 27ad653dbd Fixed another CXX_BUILD error 2023-02-23 17:11:26 +01:00
libretroadmin 4fa19e552a CXX_BUILD buildfixes 2023-02-23 17:09:45 +01:00
libretroadmin 32962dfc99 Fix function declaration movie_stop_playback 2023-02-23 17:05:31 +01:00
libretroadmin 581b9e0b0d (RSX) Updates to video driver 2023-02-23 16:11:01 +01:00
libretroadmin 1d35e1a460 (PS3) Fix typedefs 2023-02-23 15:25:23 +01:00
libretroadmin 8c47aa41bd (Mac/iOS/tvOS) Add HAVE_BSV_MOVIE 2023-02-23 15:16:31 +01:00
libretroadmin 7ed1d0760a Revert "(Vulkan) Ignore Fast-Forward Frameskip option (#15011)"
This reverts commit 00c0eda046.
2023-02-23 13:44:17 +01:00
libretroadmin f07fd91a88 (Apple) Buildfix 2023-02-23 13:24:25 +01:00
libretroadmin 0f8f871581 (PS3) Update code to use flags 2023-02-23 13:22:28 +01:00
libretroadmin e447443e86 (PS3) Define KbData 2023-02-23 13:20:56 +01:00
libretroadmin 7ebab640d7 Cleanups/style nits 2023-02-23 13:15:14 +01:00
libretroadmin 3f3262fba3 (PS3) Cleanups - don't assume GLSL is the default shader for PSL1GHT 2023-02-23 10:43:33 +01:00
github-actions a4ff8f9320 Fetch translations from Crowdin 2023-02-23 00:12:34 +00:00
libretroadmin 57828bf246 Turn some of the logging into _DBG 2023-02-23 00:42:34 +01:00
LibretroAdmin 491c495249
Unify ps3 (#15014)
* Unify PS3 input driver

* Fix builds

* Add missing variable

* (PS3/Keyboard) Add more missing defines
2023-02-23 00:35:46 +01:00
libretroadmin a77802fec4 Update libretro-common 2023-02-22 23:31:42 +01:00
sonninnos 00c0eda046
(Vulkan) Ignore Fast-Forward Frameskip option (#15011) 2023-02-22 19:43:06 +01:00
sonninnos dfef7a5ba3
Don't take rewind steps while menu pause active (#15009) 2023-02-22 19:02:36 +01:00
libretroadmin d55d1a8863 Fix typo 2023-02-22 14:54:53 +01:00
OsirizX c0ccb8cda3
(PSL1GHT) Code cleanup (#15006)
* (PSL1GHT) Use RSX_SHADER_STOCK_BLEND and RSX_SHADER_MENU defines

* (PSL1GHT) Cleanup compiler warnings

* (PSL1GHT) Make sure we compile with librt
2023-02-22 08:14:38 +01:00
github-actions bc1aaef826 Fetch translations from Crowdin 2023-02-22 00:12:01 +00:00
LibretroAdmin c810520a55
Revert "(Vulkan) Add adaptive vsync support (#14788)" (#15004)
This reverts commit 4543a52be6.
2023-02-21 23:00:06 +01:00
sonninnos 4543a52be6
(Vulkan) Add adaptive vsync support (#14788)
* (Vulkan) Add adaptive vsync support

* (Vulkan) Mailbox presentation case
2023-02-21 22:42:32 +01:00
libretroadmin 22992d7f95 Add function prototype to egl_common.h 2023-02-21 22:26:52 +01:00
libretroadmin aa9f53659f (EGL) Remove egl_has_config 2023-02-21 22:16:04 +01:00
libretroadmin b442d6c9f8 (Vulkan) Small cleanups 2023-02-21 21:19:27 +01:00
libretroadmin cc85d7fd6d (EGL) Cleanups
(GLSL) Buildfix
2023-02-21 21:09:47 +01:00
barbudreadmon d47bbe5cc1
(GLSL) send rotation index to shader (#12827) 2023-02-21 20:53:01 +01:00
warmenhoven 9c2f908d44
Fix initial blurriness on Metal (#15002)
This reverts #14963 and part of #14942. Instead of forcing a size
change on mac the way we do on tvos, bring back the old way of making
two setContentSize calls.
2023-02-21 20:09:21 +01:00
libretroadmin 51894c3cbb (Config file/libretro-common) config_file_extract_value - don't make
it dependent on strldup which pulls in another dependency/source file -
instead just unroll strldup for this specific one-time instance
2023-02-21 16:37:30 +01:00
libretroadmin 8e0e5096d2 Get rid of now unused extern 2023-02-21 15:12:23 +01:00
libretroadmin 9c2faafb6e (RSX/PSL1GHT) combine both video driver context files into one 2023-02-21 15:02:23 +01:00
libretroadmin 2dab525011 (PSL1GHT) Use HAVE_GCM as a define for compiling in the libgcm video
driver
2023-02-21 14:24:00 +01:00
libretroadmin 1f0a5f9615 (libretro-common) retro_endianness.h - Get rid of warning: #warning Defining MSB_FIRST and LSB_FIRST in compile options is deprecated [-Wcpp]
#  warning Defining MSB_FIRST and LSB_FIRST in compile options is deprecated
    ^~~~~~~
2023-02-21 13:35:04 +01:00
libretroadmin 8eff57f4d6 (task_movie) Cleanups/style nits 2023-02-21 11:10:25 +01:00
libretroadmin 1440196fa0 (GX/GEKKO/RTHREADS) scond_wait_timeout - correct Gekko codepath 2023-02-21 11:00:17 +01:00
libretroadmin 8590dd6425 (GX/Gekko) Implement scond_wait_timeout - now.tv_sec / now.tv_nsec were
previously uninitialized when being touched
2023-02-21 10:28:23 +01:00
libretroadmin f96ff71416 (video context drivers) Cleanups 2023-02-21 09:49:46 +01:00
serakeri e0c9781b50
(MFi) Prevent crash when controller player index is unset (-1) (#14999) 2023-02-21 06:10:00 +01:00
serakeri 347ea8157c
Various memory access fixes to prevent crashes (#14459) (#15000)
Prevent double free and null dereference when the controller is quickly reconnected.
Handle error when controller device query returns null instead of crashing.
2023-02-21 06:09:36 +01:00
github-actions 24dc83cbda Fetch translations from Crowdin 2023-02-21 00:12:19 +00:00
libretroadmin 48e551a2e6 (libretro-common/PSL1GHT) Don't redefine defines 2023-02-20 19:32:59 +01:00
libretroadmin 258c161d84 (libretro-common/vfs_implementation) Don't rely on ps3_defines.h which pulls in a ton of other header files
which might not be available for a given core
2023-02-20 19:26:54 +01:00
libretroadmin cdade2860f (PSL1GHT/RSX) Buildfix 2023-02-20 18:45:54 +01:00
libretroadmin f8db0b86a9 (RSX) Style nits 2023-02-20 18:32:40 +01:00
libretroadmin 35fa25bed6 (PS3) Start turning PS3 input drivers more the same 2023-02-20 18:09:57 +01:00
libretroadmin 22c760af41 Silence warning: missing braces around initializer [-Wmissing-braces] 2023-02-20 17:15:25 +01:00
libretroadmin 947de1218a (RSX) Set RSX_MAX_SHADERS back to 2 - makes no difference to the array
bound warnings
2023-02-20 17:11:05 +01:00
libretroadmin 761b87a61b (MFi) Get rid of warning 2023-02-20 16:54:50 +01:00
libretroadmin 03096cbda7 (MFi) Get rid of warning 2023-02-20 16:51:15 +01:00
libretroadmin 33ba9777a0 (MFi) Fix typo 2023-02-20 16:47:42 +01:00
libretroadmin a6c19b083a (MFi) Should fix MFi input issue - also took the time to refactor some code 2023-02-20 16:46:04 +01:00
libretroadmin a858101b80 (RSX/PSL1GHT) Buildfix 2023-02-20 16:31:46 +01:00
libretroadmin ed8b378b62 (GL1) Fix signed/unsigned mismatch warnings 2023-02-20 16:29:49 +01:00
libretroadmin 2ee501809e (PSL1GHT) turn public functions static 2023-02-20 16:24:32 +01:00
libretroadmin 4620b55476 (RSX/PSL1GHT) Cleanups and getting rid of warnings - array bounds exceeding
was troublesome so bumped up max shaders to 10 for now, some style nits in
RSX video driver, variable center_y could be uninitialized so fixed that
in psl1ght_input.c
2023-02-20 16:13:23 +01:00
libretroadmin 07c073b717 (PSL1GHT) Don't redefine MAX_MICE define 2023-02-20 15:35:00 +01:00
libretroadmin a4dda41739 (PSL1GHT) Buildfixes/warning fixes 2023-02-20 15:33:54 +01:00
libretroadmin fed60c62b6 (PSL1GHT) Newer PSL1GHT versions since Mar 3, 2021 have renamed SetZControl
to SetZMinMaxControl
2023-02-20 14:58:09 +01:00
libretroadmin 851177bf20 (libretro-common) Buildfix 2023-02-20 14:52:00 +01:00
libretroadmin b872de4fb1 (PSL1GHT) Fix some warnings 2023-02-20 14:50:54 +01:00
libretroadmin 22cdfaf95a (libretro-common) Backport reverb.c changes 2023-02-20 14:40:10 +01:00
libretroadmin a6bb8679c9 (memmap.c) Silence implicit declaration of function 'free' for PSL1GHT 2023-02-20 14:29:40 +01:00
libretroadmin c8f4bdb36d Remove obsolete paths 2023-02-20 14:26:37 +01:00
libretroadmin 25c027074e Add freetype2 include directory 2023-02-20 14:21:57 +01:00
libretroadmin 7b413b667e (RSX) Silence some warnings 2023-02-20 14:18:40 +01:00
libretroadmin 2d2d96660a Cleanups 2023-02-20 13:21:17 +01:00
libretroadmin 23b8f3d97d (UWP) Simplify UWP code - there was pre-Windows 2000 ifdefs in here 2023-02-20 13:00:06 +01:00
libretroadmin 66aebcabea (input drivers) Cleanups 2023-02-20 12:54:26 +01:00
libretroadmin 334cb3d5d4 (joypad drivers) Cleanups 2023-02-20 10:46:28 +01:00
libretroadmin 52a800a520 (Wayland input) Cleanups 2023-02-20 10:26:14 +01:00
libretroadmin 93de4f3c4f (Joypad drivers) Cleanup dos_joypad.c 2023-02-20 10:18:48 +01:00
libretroadmin 6f26f37cec Simplify axis state code for joypad drivers 2023-02-20 10:10:07 +01:00
github-actions 1e9501c672 Fetch translations from Crowdin 2023-02-20 00:13:19 +00:00
libretroadmin 5ae2b9f753 (UWP) Cleanups/style nits
(Joypad drivers) Cleanup/slim down axis code
2023-02-19 19:32:05 +01:00
libretroadmin 8b200f552d Simplify axis state code of other input joypad drivers 2023-02-19 19:05:32 +01:00
libretroadmin e367f87767 Simplifications to axis_state functions for some driver joypad files 2023-02-19 18:42:40 +01:00
crystalct 0fe92cc954
PSL1GHT fix http download (#14994) 2023-02-19 18:07:01 +01:00
crystalct 58282ee98a
PSL1GHT build fix and folders nromalization (#14993) 2023-02-19 16:13:25 +01:00
sonninnos 671bd9be6a
Allow manual video swap interval forcing (#14991) 2023-02-19 14:21:18 +01:00
libretroadmin 5abbf0778f (vulkan_common) vulkan_create_swapchain - try to silence vulkan warnings 2023-02-19 13:54:17 +01:00
libretroadmin da51b441f4 (wiiu_hid) More buildfixes 2023-02-19 13:20:09 +01:00
libretroadmin 94745eaf31 (WiiU) wiiu_hid - buildfixes 2023-02-19 13:01:11 +01:00
libretroadmin e1521dd86d (X11 input) Silence warning 2023-02-19 12:44:04 +01:00
libretroadmin 42a0618812 (udev_joypad.c) Cleanups 2023-02-19 12:42:06 +01:00
libretroadmin 96d39a78cc (Wayland) Silence implicit declaration warnings 2023-02-19 12:29:07 +01:00
libretroadmin 72ff8808af Silence MSVC warning 2023-02-19 12:21:14 +01:00
reallibretroadmin 78e935b7a9 (IOHIDManager) Buildfix 2023-02-19 12:20:11 +01:00
libretroadmin 6728d5a2fa (Subsystem) Cleanups 2023-02-19 12:15:45 +01:00
reallibretroadmin 0c1c345541 (Apple) Silence some warnings 2023-02-19 10:24:30 +01:00
libretroadmin 1d9cb216ca Silence some warnings/LTO issues 2023-02-19 10:21:37 +01:00
libretroadmin 4d305bf3e8 Buildfixes for Android and Wayland 2023-02-19 10:09:50 +01:00
libretroadmin 963bb92f95 (Input) Style nits/code simplifications 2023-02-19 06:30:14 +01:00
libretroadmin 6b21ad6f53 (libretro-db) Simplifications/cleanups 2023-02-19 05:27:43 +01:00
libretroadmin 66ad277dc1 (libretro-db) Simplifications 2023-02-19 05:18:41 +01:00
libretroadmin e65f273065 (libretro-db) Style/code nits 2023-02-19 04:54:47 +01:00
github-actions 65b0098cc1 Fetch translations from Crowdin 2023-02-19 00:12:51 +00:00
libretroadmin 91b7445bda (libretro-db) Cleanups 2023-02-18 18:13:52 +01:00
libretroadmin 2d48cbaec6 (libretro-db) Cleanups/style nits 2023-02-18 18:04:55 +01:00
reallibretroadmin dc35763677 (Mac) Silence warnings 2023-02-18 17:15:52 +01:00
libretroadmin 6624126885 (MSVC) silence warnings 2023-02-18 17:04:23 +01:00
OsirizX 217656454c
[PSL1GHT] Fix video rotation (#14990) 2023-02-18 10:44:58 +01:00
github-actions 06fd3b778d Fetch translations from Crowdin 2023-02-18 00:12:06 +00:00
sonninnos 8b1881fe83
Restore cached video driver always on quit (#14988) 2023-02-18 01:09:05 +01:00
sonninnos d7f2bd6ce7
Network information cleanup (#14987) 2023-02-17 20:19:58 +01:00
libretroadmin b04a926170 (libretro-db) Further cleanups 2023-02-17 17:49:36 +01:00
libretroadmin 1dcf3b328a (libretro-db) Cleanups 2023-02-17 16:43:00 +01:00
github-actions 7a2c6e9e52 Fetch translations from Crowdin 2023-02-17 00:12:42 +00:00
sonninnos ee2b6997f1
(XMB) Layout corrections (#14986) 2023-02-16 16:08:57 +01:00
github-actions 7f24232b59 Fetch translations from Crowdin 2023-02-16 00:12:01 +00:00
warmenhoven c242586ea7
tvOS improvements (#14983)
The initial popup screen advertising the web server did not prevent
keys from passing through, so interactions with the alert would also
be handled by the menu. The alert would pop up any time there was a
network reconfiguration; now it only pops up once per run. Added a way
to turn off the webserver advertisement alert permanently.

Also fixed a bug around filtering the Siri remote out, and turning
controllers off while the app is running.
2023-02-15 11:59:06 +01:00
github-actions 5e7b48113e Fetch translations from Crowdin 2023-02-15 00:13:00 +00:00
zoltanvb f56cbd847d
LED driver for Linux /sys/class/leds (#14981)
New driver for controlling system LEDs offered via /sys/class/leds.
Currently it handles led0, led1 etc. type of entries, which are
present on e.g. Raspberry Pi's.
2023-02-14 23:00:35 +01:00
warmenhoven c52d3484eb
Fix turning off rumbling (#14979) 2023-02-14 20:37:16 +01:00
sonninnos 54b28f941d
(XMB+Ozone) Thumbnail behavior adjustments (#14980) 2023-02-14 20:35:56 +01:00
warmenhoven c3526132ad
iOS9/iOS11 build fix: Link against CoreHaptics (#14977)
Also address a couple warnings
2023-02-14 05:35:38 +01:00
reallibretroadmin 6fc57765c3 Silence warning 2023-02-14 02:09:04 +01:00
github-actions 23c84d3031 Fetch translations from Crowdin 2023-02-14 00:12:32 +00:00
warmenhoven 1036126c9c
A couple minor OSX Metal/Vulkan performance improvements, maybe (#14976)
I think most of these were already the default so it doesn't help as
much as I was hoping, but I think it does speed up shader compilation
slightly.
2023-02-13 21:51:01 +01:00
warmenhoven 5685b5a9a1
mFI on OSX (#14975)
This adds mFI as a controller driver for OSX, as well as adding rumble
support for mFI controllers. Also add support for the Home button.

Also fixed a couple warnings.
2023-02-13 21:49:35 +01:00
sonninnos df05efe068
User Interface menu reordering (#14974) 2023-02-13 20:34:59 +01:00
sonninnos 7765319417
(RGUI) Fix disabled menu item color (#14973) 2023-02-13 16:41:23 +01:00
sonninnos 1b6a560816
Don't save switched video driver on quit (#14972) 2023-02-13 11:28:53 +01:00
github-actions 0b6a1b530d Fetch translations from Crowdin 2023-02-13 00:12:19 +00:00
gouchi df5f8df7ea
Enable RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME for libretro-video-processor (#14969) 2023-02-12 18:10:29 +01:00
Hans-Kristian Arntzen 89d2d66e98
[Vulkan] Fix regression with RGB565 and OriginalHistory. (#14968)
Need to let filter chain know that we remapped the format.
Otherwise we end up trying to copy RGBA8888 to RGB565.
2023-02-12 18:10:07 +01:00
github-actions 139f27c8a1 Fetch translations from Crowdin 2023-02-12 00:13:04 +00:00
libretroadmin e8152870f6 (PSP) Buildfix 2023-02-11 09:12:42 +01:00
zoltanvb 1ec036fb91
Music files should also obey builtin_mediaplayer_enable (#14967)
Disabling the built in media player should be possible for music files
as well. Without this, sound files can not be opened from file browser
with cores that support them.
2023-02-11 00:47:03 +01:00
libretroadmin 6461928ed4 Fix KERNEL PRX path 2023-02-11 00:45:03 +01:00
libretroadmin 35860b4d47 Typo fix 2023-02-10 19:23:14 +01:00
libretroadmin 824c1dea8c Fix header include 2023-02-10 19:19:32 +01:00
libretroadmin d5dc405ac1 (GL3) Buildfix for GL_DEBUG 2023-02-10 09:21:35 +01:00
OsirizX 0549223677
(PSL1GHT) Add improvements to the RSX driver (#14965)
* remove var error in psl1ght input

* (psl1ght) add modern_alpha_blend and modern_opaque rsx shaders

* (psl1ght) add perf improvements to the rsx driver

* add rsx gfx for psl1ght

* (psl1ght) set rsx as a compatible video driver

* Do xmb menu scaling for psl1ght

* (psl1ght) update Makefile to use latest shaders and more UI menu options
2023-02-10 08:29:45 +01:00
warmenhoven 9195de67c0
Fix metal driver for osx. This is safe to do everywhere. (#14963) 2023-02-10 06:29:23 +01:00
github-actions b9e1e5d132 Fetch translations from Crowdin 2023-02-10 00:12:43 +00:00
github-actions 35bc011197 Fetch translations from Crowdin 2023-02-09 00:12:25 +00:00
github-actions e1eb0af45a Fetch translations from Crowdin 2023-02-08 00:11:48 +00:00
Francisco Javier Trujillo Mata 3d9c60be7c
Avoid loading extra drivers (#14959) 2023-02-07 22:11:42 +01:00
github-actions 3a540f687c Fetch translations from Crowdin 2023-02-07 00:12:37 +00:00
reallibretroadmin c92213bc9d Silence warning about unused variables 2023-02-06 02:46:00 +01:00
github-actions d2608b7023 Fetch translations from Crowdin 2023-02-06 00:12:11 +00:00
Hans-Kristian Arntzen a77ada403e
[Vulkan] Use compute shaders to upload RGB565. (#14953)
A compatible path that is still fast. No reason to bother checking for
compat here really.
2023-02-05 19:23:48 +01:00
libretroadmin 568ffac8f6 (msg_hash) remove no longer necessary msg_hash files and move them into msg_hash.c 2023-02-05 03:28:48 +01:00
github-actions 5a11249a57 Fetch translations from Crowdin 2023-02-05 00:13:04 +00:00
zoltanvb 1134b895a2
Ozone footer enhancement: Scan button (#14949)
Display Scan button in footer when it is applicable.
2023-02-04 17:18:21 +01:00
Hans-Kristian Arntzen 9f7d0c74d5
[Vulkan] Define and implement v2 of context negotiation interface (#14890)
* [Vulkan] Add v2 of context negotiation interface.

* [Vulkan] Add vkEnumerateInstanceVersion symbol.

* [Vulkan] Implement v2 context negotiation

* [libretro] Add GET_HW_CONTEXT_NEGOTIATION_INTERFACE_SUPPORT.

Works around issues in v1 interface where it was not possible to
query what frontend would do when faces with newer interface versions.

This env-call gives stronger guarantees how things have to work.

* [runloop] Implement GET_HW_CONTEXT_NEGOATION_INTERFACE_SUPPORT.

Fairly trivial. Just report the latest version.

* [Vulkan] Add stricted wording around get_application_info in v2.

* [Vulkan] Be more defensive about get_application_info() in v1.
2023-02-04 16:51:50 +01:00
zoltanvb 39e5dde973
Add Clear button to Ozone footer (#14947)
Add indication of Clear button when it is applicable (currently: keybinds).
2023-02-04 14:25:59 +01:00
zoltanvb bda8c6a2ba
Remove msg_hash_get_help_cht_enum as Crowdin translation is now above 95%. (#14948) 2023-02-04 14:25:30 +01:00
github-actions 12fb608c54 Fetch translations from Crowdin 2023-02-04 00:11:25 +00:00
Barry Rowe 78326188c4
Fix nvda switching to powershell on speak. (#14944) 2023-02-03 08:40:53 +01:00
warmenhoven 338430d1ec
Fix tvos metal driver (#14943)
The drawableSizeWillChange notification was never coming, so the
viewport size was never getting set properly.
2023-02-03 07:32:44 +01:00
warmenhoven ac2cceb905
Fix a few mac windowed mode settings (#14942)
* Use "Remember window position and size" setting (fixes #14806)
* Implement window opacity
* Enable "Show window decorations" toggle
* Hide "Disable composition" option (osx does not support disabling composition)
2023-02-03 07:32:30 +01:00
LibretroAdmin 02f0a829ed
Revert "Add support for system subdirs per core/database (#14885)" (#14941)
This reverts commit c3fe980a1d.
2023-02-03 04:04:44 +01:00
LibretroAdmin e7fe79e8ed
Revert "Ignore system subdir replacement if subdir has subdirs (#14887)" (#14940)
This reverts commit f46550bd7c.
2023-02-03 04:04:14 +01:00
github-actions 3b5f774d39 Fetch translations from Crowdin 2023-02-03 00:11:31 +00:00
Joe Osborn 23976e9b44
Fix bsv playback from a starting state for dosbox (#14939)
This relaxes a warning about save state sizes for cores like
dosbox-pure that don't report accurate save state sizes.

Before, the warning would be issued and the state would not be loaded;
now, the warning is issued and the state is loaded anyway.

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-02-02 20:44:30 +01:00
zoltanvb f2ee255698
Ozone footer enhancements (#14934)
Add Help button (Select) and Reset to Default (Start) to footer where applicable.
Display Help footer only if there is actual info to be displayed, either
actual help, or sublabel if it is not visible otherwise.
2023-02-02 01:47:02 +01:00
github-actions 0f5d8def27 Fetch translations from Crowdin 2023-02-02 00:11:41 +00:00
github-actions 66507d86a7 Fetch translations from Crowdin 2023-02-01 00:13:11 +00:00
Joe Osborn 155e99b92c
add keyboard recording support to bsv (#14933)
* add keyboard recording support to bsv

BSV movies recorded in older RA *WILL NOT* replay properly after this
patch.  While looking to see if the core actually uses a keyboard
device could mitigate this, it is an unavoidable consequence of using
BSV, a format which carries no metadata whatsoever.

* Fix for loop declarations and some whitespace

---------

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-02-01 00:22:00 +01:00
libretroadmin c27e73e736 (Apple/MoltenVK/Vulkan) Default to Vulkan driver when available 2023-01-31 18:20:59 +01:00
Joe Osborn 5dbdde4316
BSV ergonomics improvements (#14929)
* BSV ergonomics improvements

- Date stamp toggled recordings instead of overwriting or using save
slot number
- Properly stop movie on playback EOF; also pause emulation
- Add recording flag to match playback flag in bsv state enum
- Rename bsv "movie path" to "movie auto path" to clarify role
- Allow stopping movie playback before EOF using record toggle hotkey
---------

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-01-31 05:34:26 +01:00
sonninnos 456434928b
Use non-rendering pause mode when frameadvance is triggered (#14931) 2023-01-31 04:27:37 +01:00
github-actions 8f12f96844 Fetch translations from Crowdin 2023-01-31 00:12:46 +00:00
github-actions 5a7ac3d06b Fetch translations from Crowdin 2023-01-30 00:11:09 +00:00
LibretroAdmin d2e3dd136c
Revert "Ozone footer enhancements (#14926)" (#14927)
This reverts commit f7f700318a.
2023-01-29 23:31:22 +01:00
reallibretroadmin 27ee23cfd8 Remove unused variable 2023-01-29 23:27:30 +01:00
zoltanvb f7f700318a
Ozone footer enhancements (#14926)
Add Help button (Select) and Reset to Default (Start) to footer where applicable.
2023-01-29 21:55:16 +01:00
sonninnos b1b7fb56a9
(Ozone) Refresh thumbnail on close content hotkey (#14924) 2023-01-29 14:52:53 +01:00
sonninnos a055bcd16b
Do not block input overlay hotkeys (#14923) 2023-01-29 14:52:03 +01:00
warmenhoven 2946e6704b
Fix a crash in for BT HID devices. (#14922)
pad_connection_destroy() frees slots, no need to free it again.
2023-01-29 14:51:36 +01:00
warmenhoven e5ba7b9d2f
Fix #14778 - In addition to sending logs to asl_client, add them to the logfile. (#14921) 2023-01-29 06:02:28 +01:00
github-actions 18ef01b0d5 Fetch translations from Crowdin 2023-01-29 00:12:07 +00:00
sonninnos 6378d8e0f8
Override config + appendconfig fixes (#14920) 2023-01-29 00:12:08 +01:00
zoltanvb 74d0123b9f
Help for turbo modes (#14919)
Help text added for each of the selectable turbo modes.
2023-01-28 18:29:34 +01:00
warmenhoven 8edbf51323
Fix warnings (#14918) 2023-01-28 17:29:53 +01:00
libretroadmin 7583e3d903 (Vulkan) Some refinements 2023-01-28 16:51:17 +01:00
warmenhoven af2587b62b
Fix rgui on vulkan on platforms that don't have _pack16 VkFormats (#14916) 2023-01-28 16:47:11 +01:00
sonninnos 482c8ccf35
Add dropdown menu for audio device (#14914) 2023-01-28 02:22:08 +01:00
github-actions 88f30174ce Fetch translations from Crowdin 2023-01-28 00:11:19 +00:00
Jamiras 5ecdc4c170
upgrade to rcheevos 10.6 (#14911) 2023-01-27 14:52:29 +01:00
warmenhoven 46cf1d795a
Vulkan on tvOS (#14912)
* Clean up tvos defines, make debug the same as release

* Compile tvOS against libMoltenVK.dylib and enable vulkan driver

* Make sure HAVE_UPDATE_CORE_INFO is set for tvos
2023-01-27 14:52:13 +01:00
github-actions b9f879b6ba Fetch translations from Crowdin 2023-01-27 00:11:57 +00:00
warmenhoven 1bd3e32ad7
RetroArch_iOS13_Metal.xcodeproj updates (#14910)
* No changes here, just alphabetizing the defines

* No need to define cflags for arch=*

* Bring debug and release more in line with each other

* Make sure to define HAVE_UPDATE_CORE_INFO
2023-01-26 23:36:51 +01:00
yoshisuga 22c39e7b92
Support for vulkan driver (#14908) 2023-01-26 20:26:10 +01:00
warmenhoven 10ace666e1
On iOS, pause while in background (#14907) 2023-01-26 20:10:01 +01:00
Tatsuya79 940ad64d41
Allow bypassing savestate info files filtering (#14906) 2023-01-26 15:56:33 +01:00
Joe Osborn 951f5a76a5
Add bsv to emscripten builds (#14905)
* Add bsv to emscripten builds

BSV has no external dependencies so this addition should be fine.

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-01-26 05:46:39 +01:00
github-actions 97c8aa2a63 Fetch translations from Crowdin 2023-01-26 00:11:58 +00:00
Jamiras 0ec1a6acfd
call ssl_socket_close for ssl sockets (#14903) 2023-01-25 16:17:41 +01:00
warmenhoven 4d5bea1208
Vulkan video driver on iOS (#14902) 2023-01-25 16:17:01 +01:00
sonninnos 13ceea0dfe
Decouple config CLI append and config overrides (#14901) 2023-01-25 07:15:42 +01:00
Joe Osborn f149519351
Allow for both -e and -R to start a BSV file recording at a state (#14898)
* Allow for both -e and -R to start a BSV file recording at a state

The key issue is that loading a state takes some time, and the BSV
recording shouldn't start until that's done.

The minimal patch for this would just be a change to runloop.c which
moves movie initialization after entry state loading, throwing in a
task_queue_wait().  This makes for some awkward repeated autoload OSD
messages and doesn't solve the underlying issue.

Most of this change puts BSV recording start/stop into tasks, like
saving and loading are tasks; this was important to centralize BSV
operations a bit more and is the first part of a refactoring towards
more robust input recording.  The necessary wait is introduced in the
begin-recording callback.

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-01-25 07:15:32 +01:00
retroNUC afe3bf72bb
net_http - 3ds build fix (#14900) 2023-01-25 07:15:17 +01:00
github-actions 960204b5eb Fetch translations from Crowdin 2023-01-25 00:11:53 +00:00
retroNUC 4ad9c7e020
net_http - Temp fix for cheevos crash (#14742) (#14899)
* net_http - Temp fix for cheevos crash (#14742)

Don't use new timeout/poll code for cheevos http requests

* net_http - Typo fix in comment
2023-01-24 23:36:17 +01:00
libretroadmin b5244cbfe7 Turn ctr_set_scale_vector into a macro 2023-01-24 23:35:37 +01:00
libretroadmin e30793b06f (CTR) Remove ctr_set_scale_vector until we actually have a need for it 2023-01-24 23:04:07 +01:00
libretroadmin fdc47dcdae Remove redundant headers 2023-01-24 22:59:15 +01:00
libretroadmin e272edc8c0 (SDL2) Cleanups 2023-01-24 21:54:06 +01:00
libretroadmin 4c3fefa2be (GL3) Use flags instead of booleans 2023-01-24 21:35:27 +01:00
libretroadmin 582ed9e9e8 (GL1) Use flags instead of boolean variables 2023-01-24 20:33:41 +01:00
libretroadmin 087e3ec974 (GL1) Inline gl1_bind_texture 2023-01-24 18:55:16 +01:00
libretroadmin 19705a3453 (D3D12) Get rid of some wrapper functions 2023-01-24 18:33:52 +01:00
reallibretroadmin 64bee66ba9 Remove unused variable 2023-01-24 04:52:31 +01:00
libretroadmin 1a93bb3844 (Vulkan) Move some code around 2023-01-24 04:40:17 +01:00
libretroadmin bb48289dd4 (GL3) Move functions over to shader_gl3.cpp and make them static 2023-01-24 04:24:22 +01:00
libretroadmin 6b184a1857 (D3D10) Cleanups - get rid of some inline functions 2023-01-24 03:36:18 +01:00
libretroadmin 980196b24d Header include cleanups 2023-01-24 02:30:58 +01:00
sonninnos c6dc92fc07
Override bind save + menu manager overhaul (#14895)
* Input bind override conf saving

* Override menu overhaul
2023-01-24 01:42:50 +01:00
libretroadmin 9a0ecaab4b Remove some unused variables 2023-01-24 01:18:59 +01:00
github-actions ac5d6ade25 Fetch translations from Crowdin 2023-01-24 00:11:28 +00:00
warmenhoven 5b4c2c3e12
avoid using _PACK16 pixel formats on platforms without them (#14863) 2023-01-23 21:00:22 +01:00
libretroadmin 571e7cbd67 (GL2) Convert bools to flags 2023-01-23 18:22:13 +01:00
neil4 a734e66f72
Preemptive Frames: Call retro_run before retro_serialize (#14893)
Fixes preemptive frames not starting up with a few cores
2023-01-23 14:52:51 +01:00
github-actions b484ddfe4e Fetch translations from Crowdin 2023-01-23 00:11:47 +00:00
libretroadmin 61c986ddfa Buildfix 2023-01-22 21:44:39 +01:00
libretroadmin e798f99fea Several RARCH_CTL switches don't belong to retroarch state but
runloop state, hence remove
2023-01-22 20:16:14 +01:00
libretroadmin b23eaba217 Try to use strlcpy/strlcat instead of snprintf when possible 2023-01-22 18:57:17 +01:00
libretroadmin 5a16f91365 Prefer strlcpy over snprintf when possible - cleanup some Lakka code 2023-01-22 18:39:06 +01:00
libretroadmin a8c43daef6 Addendum - no additional whitespace - already done beforehand 2023-01-22 17:35:49 +01:00
libretroadmin 610194e805 input_config_get_bind_string_hotkey - snprintf concatenation
so we don't repeat the same formatting for every switch case
statement
2023-01-22 17:34:12 +01:00
Hans-Kristian Arntzen f7a9d64d73
Fix crash when using multiple physical devices and HW core (#14889)
* [Vulkan] Detect if wrong PhysicalDevice is returned.

* [Vulkan] Actually query physical device before creating core device.
2023-01-22 17:28:59 +01:00
libretroadmin 9fbd62d7b8 Reduce dependence on strcpy_literal (just a macro for strcpy) - prefer
going through safer strlcpy
2023-01-22 17:13:38 +01:00
libretroadmin 378e90e745 retroarch.h functions should be namespaced 'retroarch_' instead
of 'rarch_'
2023-01-22 16:58:22 +01:00
libretroadmin 539c47faa3 Indenting nit 2023-01-22 16:29:03 +01:00
reallibretroadmin f869661e66 Silence warnings shown in Xcode 2023-01-22 16:20:15 +01:00
libretroadmin de717a50d3 Style nits 2023-01-22 16:12:27 +01:00
sonninnos f46550bd7c
Ignore system subdir replacement if subdir has subdirs (#14887) 2023-01-22 13:03:10 +01:00
github-actions 247991e53b Fetch translations from Crowdin 2023-01-22 00:12:23 +00:00
libretroadmin 01c3684b10 Cleanups - try to remove stdio.h include where possible 2023-01-21 22:25:38 +01:00
sonninnos c3fe980a1d
Add support for system subdirs per core/database (#14885) 2023-01-21 19:20:17 +01:00
libretroadmin 27b485a0f7 (intl) CLeanups 2023-01-21 18:50:00 +01:00
sonninnos becf623bf0
(XMB+Ozone) Fix search terms in title header (#14883) 2023-01-21 17:16:25 +01:00
sonninnos 1060fcc913
Show square sized widget on volume mute (#14884) 2023-01-21 17:12:58 +01:00
sonninnos 3b129e6098
State slot hotkey adjustments (#14881) 2023-01-21 13:47:55 +01:00
sonninnos 70c4fbeb93
(XMB) Fix MENU_ACTION_CANCEL when search is active (#14882) 2023-01-21 13:47:21 +01:00
sonninnos f421194974
Pause + hotkey + runloop related changes (#14879) 2023-01-21 01:17:47 +01:00
github-actions 57a2edfc3f Fetch translations from Crowdin 2023-01-21 00:11:30 +00:00
Joe Osborn 17c7e8744e
Don't autoload states if a BSV file is being played back or recorded (#14877)
- Moved BSV initialization before autoload code
- Don't trigger autoload code if there is bsv movie state

Open question: What's the difference between entry state and autoload
state? Should BSV recording use the entry state even if playback does
not?

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-01-21 00:15:14 +01:00
libretroadmin 3abd6f12f3 (intl) Cleanups 2023-01-20 19:31:28 +01:00
zoltanvb 3d654cbed4
Remove translations now maintained via Crowdin (#14876)
After PR libretro#14821 , the
contents of msg_hash_xx.c files are present in the normal translation
workflow. These files can and should be reduced to stub versions,
since new translations won't take effect otherwise.

One file missed from previous commit and stubbed completely.
Other files trimmed: only translated entries are kept, original English
entries and very partially translated items are removed.
2023-01-20 19:17:09 +01:00
libretroadmin 81603c0d13 Merge commit 'fbff3f5ce33c594372eb23430a61059232489ffc' 2023-01-20 19:16:12 +01:00
libretroadmin fbff3f5ce3 Squashed 'deps/SPIRV-Cross/' changes from f3a75d1d4b..eb9b273298
eb9b273298 Merge pull request #2094 from LibretroAdmin/main
5029e30f0a (spirv_glsl.cpp) Fix error: no matching function for call to 'max(uint32_t&, unsigned int)'

git-subtree-dir: deps/SPIRV-Cross
git-subtree-split: eb9b2732982b8eea3395216be825a74dd84fe4be
2023-01-20 19:16:11 +01:00
sonninnos 72f6291069
Fix salamander config save on fork for static platforms (#14875) 2023-01-20 18:51:23 +01:00
libretroadmin 16621f0a0c Remove unused variables 2023-01-20 18:33:53 +01:00
libretroadmin 5648c8eda4 (SPIRV-Cross) Some WiiU buildfixes 2023-01-20 18:28:17 +01:00
Joe Osborn baa14ae213
Fix #14870 (#14871)
* Don't start video recording when BSV recording starts

* Don't double-record inputs in BSV recording

- Will this work properly with the part of input handling outside of
input_state_wrap? Who knows?

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-01-20 18:20:10 +01:00
libretroadmin da29639d70 Squashed 'deps/SPIRV-Cross/' content from commit f3a75d1d4b
git-subtree-dir: deps/SPIRV-Cross
git-subtree-split: f3a75d1d4ba6b559d5c89550f800a518baad522d
2023-01-20 18:00:31 +01:00
libretroadmin 993d4ee64f Merge commit 'da29639d70cb151c5beb60d65621f65437304a6b' as 'deps/SPIRV-Cross' 2023-01-20 18:00:31 +01:00
libretroadmin ed7422e761 REmove subrepo 2023-01-20 17:56:28 +01:00
zoltanvb 4cf17c538b
Remove translations now maintained via Crowdin (#14872)
After PR libretro#14821 , the
contents of msg_hash_xx.c files are present in the normal translation
workflow. These files can and should be reduced to stub versions,
since new translations won't take effect otherwise.

These languages had the original English text as help at the time of
commit, so it is safe to assume no translation content is lost.
Some content is preserved until Crowdin translation catches up.
2023-01-20 16:43:27 +01:00
github-actions 321a215c47 Fetch translations from Crowdin 2023-01-20 00:11:52 +00:00
zoltanvb d689a84581
Remove translations now maintained via Crowdin (#14869)
After PR https://github.com/libretro/RetroArch/pull/14821 , the
contents of msg_hash_xx.c files are present in the normal translation
workflow. These files can and should be reduced to stub versions,
since new translations won't take effect otherwise.

These languages have reached 100% completeness on Crowdin at the
time of commit, so it is safe to assume no translation content is
lost.
2023-01-19 11:32:10 +01:00
github-actions 655e2f1969 Fetch translations from Crowdin 2023-01-19 00:11:53 +00:00
esoptron2 ba5c29702e
Update AUTHORS.h (#14865)
- Put my alias in proper alphabetical order
- Add another one of my aliases
2023-01-18 01:46:36 +01:00
github-actions 683931f28c Fetch translations from Crowdin 2023-01-18 00:11:47 +00:00
libretroadmin abbe7e2edc Fix CXX_BUILD error 2023-01-17 19:25:04 +01:00
zoltanvb 23d54bcec0
Fix warning: embedding a directive within macro arguments is not portable (#14859) 2023-01-17 08:07:15 +01:00
github-actions 3ee14d1dc7 Fetch translations from Crowdin 2023-01-17 00:11:47 +00:00
warmenhoven 769e448eac
Fix non-HDR colors on OSX (#14860) 2023-01-16 23:27:54 +01:00
reallibretroadmin 1e88300395 Remove unused variables 2023-01-16 20:32:18 +01:00
zoltanvb abb8686010
Improve help texts (#14858)
Context dependent help text for audio and video drivers
Language corrections
2023-01-16 20:28:27 +01:00
sonninnos ddcea16634
Show Frame Delay without VSync (#14857) 2023-01-16 20:27:48 +01:00
sonninnos 4191e0a9d7
Add unified back action to all menu drivers (#14856) 2023-01-16 08:51:07 +01:00
sonninnos 127c676048
Cleanup runloop_environment logging + readability (#14855) 2023-01-16 01:49:25 +01:00
github-actions 6745d9a807 Fetch translations from Crowdin 2023-01-16 00:11:59 +00:00
warmenhoven 25afdcdcc8
Squashed 'deps/SPIRV-Cross/' changes from 2820ab0b51..6bba45d2a3 (#14853)
6bba45d2a3 Fix misc compilation issues with std::max.
49e4117c5f Updates for main branch rename.
88c6b49959 Merge pull request #2085 from KhronosGroup/fix-2075
a085227395 Merge pull request #2084 from KhronosGroup/fix-2069
1047c13d40 GLSL: Handle textureGatherOffsets properly.
f84527346d GLSL: Declare gl_in/gl_out as array more robustly.
38cd214007 Merge pull request #2083 from KhronosGroup/pr-2080
d46c10ebd3 Refactor PHI checks into block_is_noop instead.
bcbe33ad11 Also consider NonSemantic ExtInst in block_is_noop.
9d8ef6b36c Update test for updated block_is_noop check.
a61a541e1c Merge branch 'accept_noop' of https://github.com/loic-sharma/SPIRV-Cross into pr-2080
457fd3db70 Add tests for loops compiled with debug semantics.
07a629f149 Roll dependencies.
d69a2cafe5 Accept no ops
cded61dde3 Merge pull request #2076 from billhollings/ios-tier2-writable-images
284ccf5d2d Fixes from code review of adding writable images to iOS Tier2 argument buffers.
0bb28ef88a Merge pull request #2078 from KhronosGroup/fix-2072
549cde7fae Fix GCC5 build.
cc2b3b61a6 Merge pull request #2077 from EpicGames/fixes_glsl
6371580f51 Fixed typo in CompilerGLSL::should_dereference()
643b7be196 MSL: Add support for writable images in iOS Tier2 argument buffers.
a89dea3c49 Merge pull request #2071 from KhronosGroup/fix-2068
baf38f0593 Merge pull request #2070 from KhronosGroup/fix-2066
68a012a4f2 CFG: Handle implied access to opaque loaded values.
03b1f66ef1 GLSL: Fix row-major workaround wrapper for ES.
3c997e12eb Add C API option for enable row major workaround.
c77b09b57c Merge pull request #2063 from KhronosGroup/fix-2060
451ed10e91 Merge pull request #2062 from cdavis5e/msl-spirv-assembly-fixes
df76a14056 MSL: Refactor member reference in terms of one boolean.
e75c496ec6 Fix MSL Access Chain
540a1e82c6 Merge pull request #2056 from cdavis5e/msl-discarded-frag-checks
061cdd2052 MSL: Don't dereference forwarded copies of `OpVariable` pointers.
5547b25afe Interleave undef values with constants and types.
06ef3de002 GLSL, MSL: Handle `OpUndef` as part of a constant composite.
aa5a8c482e MSL: Prevent stores to storage resources in discarded fragments.
51d2dfe02a MSL: Add missing casts to `Op?MulExtended`.
c7ce92a95b MSL: Manually update `BuiltInHelperInvocation` when a fragment is discarded.
edd66a2fc9 Merge pull request #2055 from KhronosGroup/fix-2053
e8a22a7cf6 Handle ShaderDebugInfo non-semantic extension.
abc31207bf Merge pull request #2052 from KhronosGroup/hlsl-mesh-shader-ext
b606e4f752 HLSL: Fix test for non-block per-primitive IO.
ebf779dcfb HLSL: Do not support ClipCull size > 4 in mesh shaders.
94160e8890 GLSL: Add test for mesh with non-block builtin IO.
3a066cd733 HLSL: Handle case where PerVertex block is not used.
f5ef0a74fb HLSL: Make sure to test deeply nested functions in mesh shaders.
e418266d25 HLSL: Some cleanups and fixes in analyze_meshlet_writes.
892f65b3a6 HLSL: Fix some warnings from review.
a4d5c0c4a5 HLSL: Fix-up some style issues from review.
10f55a11eb HLSL: Add missing reference for mesh shader test.
322f1b9fb3 Fixup glslang reference.
80146a20da HLSL: Implement VK_EXT_mesh_shader
744279ec78 Merge pull request #2050 from cdavis5e/op-spec-constant-op-composite-insert
8cf99e7d44 MSL: Implement `CompositeInsert` `OpSpecConstantOp`.
3cecac74c6 Merge pull request #2051 from KhronosGroup/roll-glslang-dep
605bce39d7 Roll glslang dependency.
677299cc56 Merge pull request #2049 from KhronosGroup/fix-2046
4de9d6c2b6 MSL: Handle implicit integer promotion rules.
c813d8d67b Merge pull request #2044 from KhronosGroup/fix-2038
2a49f7e82d MSL: Fix restrict vs __restrict incompatibility.
3ea057a303 Merge pull request #2045 from KhronosGroup/fix-2037
0851baf9ee Merge pull request #2043 from KhronosGroup/fix-2040
47c7fc16eb HLSL: Add option to bind vertex input smemantics by name.
04af769e85 MSL: Handle partial access chains with array-of-UBO/SSBO.
5763919669 Merge pull request #2039 from cdavis5e/raw-buffer-tess-input
e698633e22 MSL: Account for composite types when assigning locations.
0b679334e4 MSL: Don't flatten arrayed per-patch output blocks in tessellation shaders.
a171087180 MSL: Support "raw" buffer input in tessellation evaluation shaders.
f09ba27777 Merge pull request #2035 from KhronosGroup/fix-2032
f15d465a52 Merge pull request #2034 from KhronosGroup/fix-2028
799d8c9e35 Merge pull request #2033 from KhronosGroup/fix-2029
b5386e3ea9 HLSL: Improve support for VertexInfo aux struct.
4ecdb24e59 MSL: Expose way to query if a buffer needs array length.
f3b1375b13 Add reflection support for shader record buffers.
c821207ae2 Merge pull request #2027 from billhollings/msl-opstore-addr-space-cast
0a1127aa50 MSL: Emit correct address space when casting during OpStore.
81ba8f78f6 Merge pull request #2025 from KhronosGroup/fix-2009
291def0793 MSL: Add more keywords to reserved set.
a7f64a8b90 MSL: Report unsupported 64-bit atomics.
ddaa2da629 Merge pull request #2024 from KhronosGroup/msl-descriptor-aliasing
a915e0bd4b MSL: Do not attempt to alias push constants.
adf0995bb9 Merge pull request #2023 from KhronosGroup/msl-descriptor-aliasing
24dc49e692 MSL: Handle descriptor aliasing of raw buffer descriptors.
1ad6006130 Merge pull request #2021 from siegelaaron94/opengles_texture1d_textureSize
7b4c470f16 GLSL: Account for ES sampler1D to sampler2D promotion in textureSize.
6d3518e238 Merge pull request #2018 from atyuwen/master
7afbbb624a Merge pull request #2019 from billhollings/msl-OpPtrEqual-OpPtrNotEqual-OppPtrDiff
5493b3030e MSL: Support OpPtrEqual, OpPtrNotEqual, and OpPtrDiff.
1b9296e1a5 MSL: only fix up gl_FragCoord if really necessary.
f6ca617825 Merge pull request #2017 from KhronosGroup/roll-deps
a5a7999666 Update mesh/task test references.
d7a6861f64 Update glslang/spirv-tools.
1e7e9fc32b Merge pull request #2015 from FrankXie05/vcpkg-instructions
8553588895 Merge pull request #2014 from cdavis5e/msl-shader-output-fixup
064eaebe72 MSL: Add a mechanism to fix up shader outputs.
d206e54ece Add vcpkg installation instructions
210a800130 Merge pull request #2012 from KhronosGroup/mesh-shaders
4c345166dc GLSL: Implement task shaders.
5762617729 GLSL: Implement GL_EXT_mesh_shader.
6a73e68d30 Update glslang reference.
ec7b9b0ce7 Update SPIR-V headers.
9fcf62784b Merge pull request #2011 from KhronosGroup/roll-deps
d24f41f1d5 Update dependencies.
c93ee9261e Merge pull request #2005 from atyuwen/master
f40dba4919 GLSL: added an option to disable row-major-load workaround.
10f2aa77da Skip remapped vars in 'fixup_reserved_names'
9afa82e7b8 GLSL: disable row major load around on GLES.
33e19e86bf Don't rename remapped variables like 'gl_LastFragDepthARM'
61c603f3ba Merge pull request #1996 from KhronosGroup/fix-1993
bc3987e59a MSL: Fix various bugs with Ptr/U bitcasts.
c084973c67 Merge pull request #1995 from KhronosGroup/fix-1992
05bbcc2d09 Do not optimize OpCompositeInsert for hoisted temporaries.
a725d8fad1 Fix minor style nit from review.
1bc05ef735 Merge branch 'master' of https://github.com/gpx1000/SPIRV-Cross
a9cadd4982 Merged in cts-shared-composite-variables (pull request #1)
fc4a12fd4f MSL: Use a wrapper type for matrices in workgroup storage.
faea931de3 MSL: Also replace `bool` with `short` in structures.
0cccd0a65a Merge pull request #1986 from KhronosGroup/fix-1975
4dfac510ed Handle multiple breaks out of switches.
c24d5a7b90 Merge pull request #1985 from KhronosGroup/fix-1973
8ba0820c9d Merge pull request #1984 from KhronosGroup/fix-1972
095e9e5cee Merge pull request #1982 from RandomShaper/hlsl_subgroup_scan
be904dcc1e Handle collapsed loops similar to collapsed selections.
f7e98c39db Avoid detection of false loop variables.
cb4e310f43 Merge pull request #1983 from KhronosGroup/fix-1979
1fe470b199 HLSL: Implement GroupOperation(Inclusive/Exclusive)Scan.
06ca9accd7 HLSL: Add option to emit entry point name 1:1 instead of main().
d8d051381f Merge pull request #1970 from KhronosGroup/fix-1969
963fdfdf68 Handle PHI in collapsed switch constructs.
f46745095d Merge pull request #1965 from billhollings/msl-physical_storage_buffer
064a697b18 MSL: Fix implicit conversion precision build error.
4185acc70d MSL: Fixes from review for SPV_KHR_physical_storage_buffer extension.
78eb5043f9 MSL: Fixes from review for SPV_KHR_physical_storage_buffer extension.
e6925974d1 Merge pull request #1966 from fred-wang/macos-snprintf
9c44a97faa address more review comments
1310f5ba4d Keep using sprintf on windows.
99f8613847 Fix compilation errors with deprecated sprintf function
ba3e6ffe03 Merge pull request #1964 from sergmister/patch-1
52c7c2dab6 MSL: Add support for SPV_KHR_physical_storage_buffer extension.
1bba4d5137 Fix typo
99b59b3528 Merge pull request #1963 from KhronosGroup/convert-u-to-rtas-fix
e08e0cf28d GLSL: Handle forced temporary OpConvertUToAccelerationStructureKHR.
89b1c24bdc Merge pull request #1961 from RandomShaper/hlsl_more_bitcasts
d8c5e39436 HLSL: Implement bit casts between Half and UShort.
197a273fd4 Merge pull request #1959 from KhronosGroup/fix-1955-1956
df21a99d1a GLSL: Add more extension ladder fallbacks for unusual integer sizes.
a97bbc24c5 Merge pull request #1958 from KhronosGroup/fix-1957
cdafafe93b Merge pull request #1954 from vkaytsanov/patch-1
533aab00b6 GLSL: Add missing KHR barycentric references.
46e4b5a3c8 Fix control flow bug where we missed continue;
612de70b38 Fix missing function in README sample
50b4d5389b Merge pull request #1953 from KhronosGroup/bary-khr
e45d01c41f Emit KHR barycentrics if source enables the KHR extension.
0aedc7d128 Roll dependencies.
af223101c6 Merge pull request #1952 from KhronosGroup/fix-1944
c8ab790163 Merge pull request #1951 from KhronosGroup/fix-1950
88e583d062 GLSL: Add basic support for GL_EXT_shader_atomic_float.
1c88730e12 GLSL: Implement 1D texture emulation for ES.
3f855646f0 Merge pull request #1948 from iwubcode/gl_layer_hlsl
a6976d596a HLSL: fix BuiltInLayer to emit semantic 'SV_RenderTargetArrayIndex' instead of 'SV_RenderTargetIndex'
b3ff97d0fe Merge pull request #1946 from KhronosGroup/fix-1943
48d50fa911 Merge pull request #1945 from KhronosGroup/fix-1938
d08ce828f4 Promote Unreachable cases into break to avoid fallthrough.
4b9e60273c Add tests for OpCompositeInsert edge cases.
23662668dd Attempt more optimal codegen for OpCompositeInsert.
d0c8dc3045 Merge pull request #1942 from KhronosGroup/no-fetch-grad-workaround
a3c4177324 GLSL: Don't apply Grad LOD workarounds for fetch.
bfefb5f511 Merge pull request #1941 from KhronosGroup/fix-1934
832d469048 Merge pull request #1940 from KhronosGroup/fix-1935
05206005ca MSL: Potentially cast loaded Input variables.
92164d38d1 GLSL: Do not analyze precision for Undef variables.
940efca099 Merge pull request #1936 from KhronosGroup/rt-stage-cli
0b303aab16 Add --stage handling for ray tracing.
0c8a79b0b5 Merge pull request #1932 from KhronosGroup/fix-1868
7eb5ced2a0 Refactor out query for operation type/result IDs.
7a6c2da9aa GLSL: Handle more proper semantics for RelaxedPrecision.
d28136cc7a GLSL: Clean up some ways of querying decoration flags.
a9d23d7652 Merge pull request #1931 from EpicGames/fixes_hlsl
65431446f4 HLSL: Add missing BuiltInLayer to HLSL backend.
6ae7ddb92a Merge pull request #1930 from KhronosGroup/fix-1928
960edcd396 Merge pull request #1929 from KhronosGroup/fix-1925
10a7631d50 HLSL: Add more comprehensible reserved identifier list.
40b3053b4c Handle early reads from loop variables with initializers.
c52333b984 Merge pull request #1924 from stefalie/master
ee4ac5c2ce Merge pull request #1927 from billhollings/msl-interface-block-array-length-1
3bca246ad2 MSL: Emit interface block members of array length 1 as arrays instead of scalars.
089cf27119 remove newline at eof
56fd17f552 add qualifiers to reference reflect json output
05c9a14422 cli: display missing memory qualifiers for reflect and dump-resources
d7cae5e7cd Merge pull request #1917 from KhronosGroup/fix-1906
0500f9ed5d Merge pull request #1916 from KhronosGroup/fix-1910
d2a4f9842b GLSL: Support GL_EXT_debug_printf.
5b18fb1bcd MSL: Pass down global RayQuery object to leaf functions.
779138f39f Merge pull request #1914 from RandomShaper/hlsl_view_index
2ea1c9b642 HLSL: Implement ViewIndex.
6a67891418 Merge pull request #1909 from skkkksdkfak/primitive_id
54c00b69a4 Translate gl_PrimitiveID to SV_PrimitiveID.
0d4ce028bf Merge pull request #1903 from KhronosGroup/fix-1900
17c52990d5 MSL: Fix goofy bugs in ray query.
a3996eccf3 Merge pull request #1896 from Roy-AMD/fix-condition-issue
749be80389 Use types have same widths in loop condition.
44691aa975 Merge pull request #1899 from billhollings/forward-volatile-vars-except-builtins
85f98eb0c5 Allow volatile vars that are not builtins to be forwarded.
d000b9e71c Merge pull request #1898 from KhronosGroup/pr-1859
191c57b6cc Merge pull request #1897 from KhronosGroup/fix-1763
a7eefbc114 HLSL: Disable FXC testing for rayquery shaders.
cd209ff46d HLSL: Update test from review.
c95338e03e Merge branch 'ray_query' of https://github.com/k-payl/SPIRV-Cross into pr-1859
7b9eaf0b5e MSL: Handle awkward mix and match of Offset / ArrayStride in constants.
251361bd6f VK_KHR_ray_query implementation
565db34cba Merge pull request #1892 from KhronosGroup/meta-lookup-cleanup
39bad2c1f9 Avoid redundant meta lookups in ParsedIR when setting member decorations.
d5c3bd8b5e Merge pull request #1890 from KhronosGroup/fix-1889
4ab5bbb4e5 Fixup names of anonymous inner structs.
0b51794f01 Merge pull request #1888 from KhronosGroup/msl-ib-variable-name-alias-fix
1ec9d018fd MSL: Handle aliased variable names for resources placed in IB struct.
213c5f42ea MSL: Fix minor nits.
4ec1fb0aa9 Merge pull request #1887 from billhollings/msl-use-var-name-for-flattened-interface-struct-members
0c0fd98322 MSL: Use var name instead of var-type name for flattened interface members.
3915c37bb1 Merge branch 'fixup_gl_helper_invocation' of https://github.com/RandomShaper/SPIRV-Cross
c4f9e4fde9 HLSL: Fix Helper Invocation wrongly allowed in compute.
a1803778c2 Merge pull request #1885 from KhronosGroup/helper-invocation-rework
b192b8887a MSL: Consider that gl_IsHelperInvocation can be Volatile.
15d29f00e2 Add test for SPIR-V 1.6 Volatile HelperInvocation.
93b0dc7718 Consider Volatile in should_forward().
476b6541fa Remove forwardable bit in SPIRVariable.
5d9fc2d903 HLSL: Add test for HelperInvocation.
005c14ad6a HLSL: Implement HelperInvocationEXT.
75224c6c7c Merge branch 'gl_helper_invocation' of https://github.com/RandomShaper/SPIRV-Cross
278a4c80ed HLSL: Add support for gl_HelperInvocation
6c7a40822f Merge pull request #1881 from KhronosGroup/relax-nan-checks
31be74a853 Add relax_nan_checks options.
b91ecf6077 Merge pull request #1880 from KhronosGroup/fix-1879
2ce1e5c140 Merge pull request #1878 from mysterymath/move
dc62cc792b Handle OpTerminateInvocation.
2a7f436135 Merge branch 'msl-add-nested-structs-to-io-blocks-squash'
7b594c125e Fix formatting nits from review.
bb4ced0280 MSL: Document clarification of location incrementing.
02d588b7e4 MSL: Fix var names in test shaders to avoid reserved identifiers.
3bb3b22b34 MSL: Non-functional fixes from PR code review.
3d4daab29d MSL: Support input/output blocks containing nested struct arrays
44c3333a1c Qualify std::move.
d16183d1d2 Merge pull request #1873 from KhronosGroup/fix-1861
02440e85cf Merge pull request #1872 from KhronosGroup/fix-1867
7af0a5f820 HLSL: Do not emit VPOS fixup unless position is active.
5555f2784b MSL: Refactor and fix use of quadgroup vs simdgroup.
a569680406 Merge pull request #1870 from abrachet/master
0eda71c409 Qualify move as std::move
c08ee860c8 Merge pull request #1869 from xndcn/msl
1b5c406a3d MSL: append entry point args to local variable names to avoid conflicts
188dc8b13c Merge pull request #1862 from flokart-world/feature/flatten-ubo-for-hlsl
64e058aa9b Merge pull request #1863 from KhronosGroup/various-fixes
ed4ded040e HLSL: Make --flatten-ubo work correctly
a56b22bf4e Add more scenarios where we can guarantee forward progress.
c716a9a5dd Add debug option to modify maximum number of compile iterations.
29cc18988c Fix regression from adding 64-bit switch support.
339e61a0e0 Do not emit hoisted access chain temporaries unless backend supports it.
5d9a95370f GLSL: Ensure correct signed integer type for more texture functions.
131278458e Merge pull request #1860 from KhronosGroup/docs-update
a8016a6470 Update documentation for descriptor set support in MSL/HLSL.
1a36968e5d [Spirv_msl] Fix normalize on half3/half2 (#1856)
53d94a982e Merge pull request #1852 from KhronosGroup/fix-1850
5a29181b35 Merge pull request #1851 from KhronosGroup/fix-1835
5b952d2cbf MSL: Rethink how opaque descriptors are passed to leaf functions.
ac46140ba3 Test aliased names in declared LUTs.
48b5a9069f Handle aliased names in spec constants.
08d5f5ed18 Merge pull request #1849 from KhronosGroup/fix-1844
9b25581d49 MSL: Handle constant construct of block-like array types.
79b13813c6 Merge pull request #1848 from KhronosGroup/fix-1843
5a5be7f9b9 MSL: Handle signed atomic min/max.
7dd974b9db Merge pull request #1847 from KhronosGroup/fix-1775
e940577fba Merge pull request #1846 from KhronosGroup/fix-1760
1d13a3e36a Rework how loop iteration counts are validated.
ef6bde6580 Do not forward expressions which carry a huge amount of dependencies.
a1bb29ccbb Merge pull request #1845 from KhronosGroup/pr-1842-fix
017cdfe25b Update references for GL_EXT_texture_buffer.
4407c0dd14 fix: GL_EXT_texture_buffer is more common than GL_OES_texture_buffer
fe5a0aa72f Merge pull request #1839 from KhronosGroup/spv1.6
e8b30cc31d Merge pull request #1838 from KhronosGroup/fix-1811
7c12228359 Add sanity test for SPIR-V 1.6 modules.
7c83fc22fa Add support for LocalSizeId.
35bb328443 Test: Add --allow-localsizeid flag for spirv-val.
eadca962c8 Merge pull request #1837 from KhronosGroup/roll-deps
a10d72e3b1 Merge pull request #1834 from chirsz-ever/chirsz/fix-msl-copy-array
fe8848a6f2 Roll dependencies.
9c0b74f73b Merge pull request #1836 from KhronosGroup/pr-1824-fixup
be333e0cab MSL: Move float2->3 TessCoord fixup to a better location.
2793d22af5 Merge branch 'master' of git://github.com/cfnptr/SPIRV-Cross
e0ae55d5e2 Merge pull request #1822 from etra0/add-diff
55a0291ce5 Merge pull request #1817 from etra0/fix-1784
90c252274d MSL: Allow copy array from UniformConstant storage
2acf0e73dd Fix gl_TessCoord arguments presence. Update reference shaders.
a66984072b Fix incorrect MSL gl_TessCoord variable type
2bb051206b test_shaders: Add the option to generate diff instead.
905b8244e7 Clamp vector element access to vector size.
e9cc640334 Merge pull request #1815 from etra0/fix-1768
25868923da Merge pull request #1819 from sindney/master
6d8302ef14 MSL: Add 64 bit switch support
4b0584ce70 ESSL: Vertex shader input doesn't support array types.
37dfb3f45f Merge pull request #1794 from etra0/master
5345051a85 Removed tracking of OpConstant and OpPhi.
7c3cb0b12c Merge pull request #1810 from billhollings/early-frag-tests-depth-out
248e9ae9ed MSL: Don't output depth and stencil values with explicit early fragment tests.
75e3752273 Added block.cases_32bit and reworked the cases fix
401296d3b8 Merge pull request #1808 from billhollings/depth-img-vs-depth-cmp
03f678dec4 Cast the switch selector in GLSL to uint32_t
fd252b21ff Separate (partially) the tracking of depth images from depth compare ops.
48046646ee Fixed wrong condition and formatting.
2e0fb3a778 Merge pull request #1807 from KhronosGroup/fix-1801
f1b411c9e8 GLSL: Deal with buffer_reference_align.
1adc53b107 Merge pull request #1806 from KhronosGroup/fix-1777
21a15b90e5 Merge pull request #1804 from KhronosGroup/fix-1759
2714f5410c CFG: Handle degenerate selection constructs.
e40d19bdbf MSL: Handle non-thread storage class in Modf/Frexp pointer versions.
f1d4aff85e Merge pull request #1805 from KhronosGroup/fix-1776
2c53d30664 Merge pull request #1803 from KhronosGroup/fix-1802
4561ecddbd Handle Modf/Frexp in more cases.
d295c2a046 Merge pull request #1800 from EddeDev/master
849978653a Merge pull request #1798 from billhollings/tess-output-clip
05e8e5a953 Correctly reflect declared buffer size for out of order members.
4dcf64a99b Fixed potential compilation error in spirv_cross_containers.hpp
250a02967d Removed unnecessary tracking of types.
4ebd56bf9e MSL: Correctly emit user(clip/cullN) for clip/cull builtins in tess output struct.
f099d714f3 Removing logic in the parser
04293e03fd Merge pull request #1797 from KhronosGroup/clone-protocol
0d03516382 Always use https protocol when cloning external test deps.
061397e32e Merge pull request #1792 from billhollings/uniform-struct-packing-nested
3eb5532979 Add 64 bit support for OpSwitch
be812c45e5 MSL: Remove over-zealous check for struct packing compatibility.
66adba17a8 Merge pull request #1791 from billhollings/msl-out-of-order-struct-offsets
76cb807c19 MSL: Fix type redirection when struct members are reordered to align with offsets.
29632959d2 Merge pull request #1787 from KhronosGroup/fix-1786
edf247fb1c MSL: Workaround compiler crashes when using threadgroup bool.
43eecb2360 SPIRV-Cross contribution needed for `INTEL_fragment_shader_ordering`
94dea2507e Merge pull request #1769 from audulus/spm2
f5219f47c3 Add Package.swift.
2a56c2bc04 Merge pull request #1783 from billhollings/more-unpacked-vectors
ab640bc3d3 Merge pull request #1782 from KhronosGroup/fix-1781
974a0818b8 MSL: Support more usecases for unpacked vectors.
2b5e17eca5 MSL: Never used templated array for RayQuery objects.
bc338710e1 MSL: Remove some redundant breaks.
5afb3d313f MSL: Fix some trivial bugs not caught by CI when adding ray query.
345a7d171c Merge pull request #1773 from congyue1977/master
2895a43274 Fix unsupported exceptions for ConvertUToAccelerationStructure & BindingTableRecordOffset.
d52ec1e196 Fix all requested changes, test_shaders.py supports compiling MSL 2.4 shaders, and the Intersection Query currently only supports MSL 2.4 on the iOS platform.
6d13c99273 Merge pull request #1780 from billhollings/out-of-bounds-swizzle-fix
595eb0c21d Per spec, support undefined behavior for out-of-bounds swizzles.
597f29d09d Support Metal 2.4 Intersection Query, Implement GL_EXT_ray_query.
e4243b898c Merge pull request #1766 from KhronosGroup/fix-1765
6382f15470 Test behavior around OpSelect with matrices.
6071df5840 Fix wrong detection of trivial_mix_op.
97a438d214 Merge pull request #1757 from KhronosGroup/fix-1754
f72bb3c6f5 Improve handling of INT_MIN/INT64_MIN literals.
457c00bd07 Merge pull request #1756 from KhronosGroup/fix-1753
91c25e8473 Merge pull request #1755 from KhronosGroup/fix-1751
9b2a8c7622 HLSL: Ensure synthetic NumWorkgroups variable is considered active.
bb04156d3c CLI/HLSL: Don't set explicit binding for synthesized NumWorkgroups CBV.
96d95fbb31 MSVC: Workaround crtdbg macroing free().
9462b90067 Merge pull request #1752 from billhollings/function-constants-opquantize
325f107c5b Merge pull request #1745 from billhollings/location-component-vecsize
ec054dad7f MSL: Support synthetic functions in function constants.
dee35bf3ce Merge pull request #1749 from billhollings/fastmath-quantize
ba66a91402 MSL: Use vec<T, n> in template SpvHalfTypeSelector for function spvQuantizeToF16().
a2671e35b0 MSL: Consolidate spvQuantizeToF16() functions into a single template function.
5742047b24 MSL: Honor infinities in OpQuantizeToF16 when compiling using fast-math.
05ac99ae23 Merge pull request #1748 from billhollings/fastmath-nocontraction
fb3defc9ef MSL: Honor DecorationNoContraction when compiling using fast-math.
548a23da34 MSL: Track location component to match vecsize between shader stages.
fe1af2ae72 Merge pull request #1747 from KhronosGroup/ci-fix
d579444a82 Merge pull request #1744 from billhollings/location-attribute-fix
6628e10fc6 Merge pull request #1746 from billhollings/fast-math-per-vulkan
3ca99bbbcc Remove tests for Ubuntu 16.04.
0f12557695 Remove obsolete Travis CI YML.
40141ffddf MSL: Selectively enable fast-math in MSL code to match Vulkan CTS results.
86dfac12c8 MSL: Fix location and component variable matching between shader stages.
b81334a513 Merge pull request #1738 from billhollings/return-value-after-discard-terminator
2a150f5a2f MSL: Add explanatory comment requested in PR review.
35e92e6ffb MSL: Return fragment function value even when last SPIR-V Op is discard (OpKill).
c2500e504d Merge pull request #1735 from billhollings/add-const-op-exprs
472f9d4f6d Add tests for OpSpecConstantOp ops OpQuantizeToF16 and OpSRem.
5fb1ca4f0d Add support for additional ops in OpSpecConstantOp.
51d8e7be94 Merge pull request #1734 from KhronosGroup/buffer-reference-uvec2
b8f1e71907 GLSL: Emit GL_EXT_buffer_reference_uvec2 as required.
d6fe75df10 Merge pull request #1732 from KhronosGroup/fix-1731
23c4480d8e Fix switch fallthrough case in some cases.
0e2880ab99 Merge pull request #1729 from KhronosGroup/fix-1726
2eea6a579b MSL: Consider that function/private variables can be block-like.
840d4483bc Merge pull request #1728 from KhronosGroup/fix-1727
5b0cafb416 Track temporary access for OpArrayLength result.
c062b6b852 Merge pull request #1725 from billhollings/fix-duplicate-glposition
fad1590786 Merge pull request #1722 from billhollings/row-maj-mtx-store-from-const
27e7abeab1 Merge pull request #1724 from billhollings/msl-const-expr-casting
e76fcf9309 MSL: Add test for fixes to MSL constant expression type down-casting.
3105e82b2e MSL: Fix duplicate gl_Position outputs when gl_Position defined but unused.
a75fe07546 MSL: Fix casting in constant expressions with different sizes.
9552ca5473 MSL: Support row-major transpose when storing matrix from constant RHS matrix.
bab4e5911b Merge pull request #1716 from KhronosGroup/terminator-access-fix
cb613eb675 Handle value access in terminators.
1964799fba Merge pull request #1715 from KhronosGroup/precise-fp16-fp64
ac11a91792 GLSL: Emit precise for fp16/fp64 types as well.
cd22336a38 Merge pull request #1712 from cdavis5e/msl-subgroup-ballot-simplify
03ad13bae6 MSL: Simplify spvSubgroupBallot().
18f3cd6810 GLSL: Ensure ray query object decls are flushed if allocated in Function.
e51630595f Merge pull request #1711 from KhronosGroup/fix-1690
5b227cc57c GLSL: Implement GL_EXT_ray_query.
6196e3b029 MSL: Remove redundant path for SampleMask.
2fcbef398c Merge pull request #1709 from billhollings/fix-sample-mask-in
fe08bf4af4 Remove EXPERIMENTAL from JSON reflection backend.
ebb5098def MSL: Adjust gl_SampleMaskIn for sample-shading and/or fixed sample mask.
be3988b13c Merge pull request #1706 from SpaceIm/fix/ios-bundle
a70ce5192e Merge pull request #1708 from KhronosGroup/fix-interpolant-access-chain
71b83a18f4 MSL: Add test for scalar access chain pull interpolant.
d42c0b2e08 Merge pull request #1707 from billhollings/fix-interpolant-access-chain
3e04eee491 MSL: Fix setting SPIRVCrossDecorationInterpolantComponentExpr decoration.
d74eaabde0 fix cross-build to iOS/tvOS/watchOS
1ae2b58f19 Merge pull request #1700 from pkasting/master
bf746bd680 Merge pull request #1699 from KhronosGroup/pervertexnv
7cdab07efe Fix -Wunreachable-code-aggressive.
206ee8f171 GLSL: Support pervertexNV in NV barycentric extension.
c5b8022e61 Merge pull request #1669 from KhronosGroup/1560-reuse1
54882ad16d Add GLSL.std.450.h to REUSE.
3781d49d7c .gitignore ignored new license text
c862f8d22d Actually checkout repo into new reuse job
f2a65545b8 Finish adding SPDX tags and setup a reuse checked in Github Actions CI
2ceca64004 Add missing copyright headers.
853e84e8bf Merge pull request #1698 from KhronosGroup/fix-1691
d6b29ab017 HLSL: Rewrite how block IO is emitted.
9338996f3b Merge pull request #1697 from KhronosGroup/fix-1693
3149095585 Merge pull request #1696 from KhronosGroup/fix-1694
d75666b170 GLSL: Emit num_views for OVR_multiview2.
8216e87f02 Handle SPIR-V 1.4 selection constructs.
9cdeefb5e3 Merge pull request #1692 from Kangz/fix_default_copy_dtor
6a85c695cc Fix IVariant -Wdeprecated-copy-with-dtor
2e1b5fb39e Merge pull request #1686 from KhronosGroup/fix-1684
fa42f1ce34 Merge pull request #1685 from KhronosGroup/fix-1683
449f68ef3b Ensure loop control flow hints only appear above loops.
d62b3c2b92 GLSL: Implement control flow hints.
165dbff228 Handle odd type for textureGather component.
585fc6f3cb MSL: Always enable support for base vertex/index on iOS.
a6ce49ca24 Merge pull request #1680 from xndcn/cc
02fb8f2a24 Add comment after inf/nan float number for clarifying.
ff61890722 Merge pull request #1679 from okuoku/fix-c-sample-code
38c6ef1d56 Fix C sample code in README.md
faec1a8643 Merge pull request #1678 from KhronosGroup/fix-1674
9ea0e8b859 Merge pull request #1677 from KhronosGroup/fix-1673
c87cb54499 MSL: Add CLI option for sampler suffix.
bf3793dd35 MSL: Improve handling of split tessellation access chains.
a6c9514856 Merge pull request #1676 from KhronosGroup/fix-1671
0214990e7c Merge pull request #1675 from KhronosGroup/fix-1670
26a4986009 GLSL: Implement noncoherent framebuffer fetch.
99ae0d32e9 MSL: Handle array with component when we cannot rely on user() attrib.
a64ddcdd49 MSL: Handle array of IO variable with Component decoration.
418542eaef Merge pull request #1668 from KhronosGroup/fix-1665
b8115ffbe0 HLSL: Implement invariant as precise.
e47a30e807 Honor NoContraction qualifier.
0eeaffe048 Merge branch '16-bit-int-types-glsl'
6dbab0df47 Update reference output.
0408c592dd Fixed 16 bit int types
72a2ec4c1b MSL: Fix '--msl-multi-patch-workgroup' out of bounds reads when dispatching more threads than control points (#1662)
995c7981cc Merge pull request #1663 from billhollings/metal-arg-buff-padding-patch
098cdd64f6 MSL: Padding for Metal argument buffers should not double-count SampledImages.
c624d5387c Merge pull request #1660 from KhronosGroup/fix-1658
82a77e534e MSL: Use proper array for quad tess levels.
b38e3b4a47 Merge pull request #1661 from KhronosGroup/fix-1659
0e963c62b6 HLSL: Support Shuffle wave ops.
bbcef69a45 Merge pull request #1657 from KhronosGroup/fix-1607
532f65583e Rewrite how non-uniform qualifiers are handled.
d137abeef5 Merge pull request #1655 from KhronosGroup/fix-1640
8e24e0b224 Merge pull request #1654 from KhronosGroup/fix-1641
71eb1754e3 Merge pull request #1653 from KhronosGroup/fix-1638
2cbc7f0f37 Merge pull request #1652 from KhronosGroup/fix-1644
b084f639cb Merge pull request #1651 from KhronosGroup/fix-1645
c89b5a1a3f GLSL: Support shading rate builtins.
3fd148450a GLSL: Implement gl_FragFullyCoveredNV.
f93a8fb1fe GLSL: Support GL_EXT_shader_image_load_formatted.
90c70e6605 MSL: Handle variable access in OpSelect.
96ba044f01 HLSL: Fix automatic location assignment in block IO.
3cb8e7c223 Merge pull request #1643 from KhronosGroup/fix-1639
ae9ca7d73c MSL: Fix copy of arrays to/from stage IO variables.
986196030d MSL: Don't use native arrays for tess level inputs.
4a379a00f3 MSL: Don't emit native array for masked clip/cull distance.
406af8ff4d c: Add C API for builtin stage IO reflection.
b4a380a04c Support reflecting builtins.
852f2da63c Check SPIR-V 1.4 rules when reflecting resources.
682a227f4b MSL: Make builtin argument type declaration context sensitive.
c1edd35d57 MSL: Use spvUnsafeArray for builtin arrays after all.
7b9a591aa7 MSL: Hoist out to_tesc_invocation_id() in more places.
75ed73818c MSL: Handle loading Clip/CullDistance in TESE.
a159334895 MSL: Correctly analyze if builtin block is active.
cea934c03f MSL: Test that we can capture cull distance to buffer.
5826298697 MSL: Handle CullDistance better.
23da445bd4 MSL: Emit multiple threadgroup slices for multi-patch.
b442500204 MSL: Unroll initializations of CullDistance/ClipDistance control points.
c9946296dd MSL: Fix initialization of masked threadgroup variables.
ee85bb345e Fix print_help comment.
faf80b08fc MSL: Don't report fallback location allocations as being "used".
adc5fe3615 C: Add C api for stage output masking.
5e9c2d060e MSL: Cleanup fallback IO block emission.
e32c474911 MSL: Handle masking of TESC IO block members.
dc54f75eec MSL: Fixup gl_PerVertex names if we're emitting masked builtins.
40f628f49c MSL: Add test for complex control point outputs.
46c48ee6b5 MSL: Rewrite how IO blocks are emitted in multi-patch mode.
425e968720 MSL: Handle flattening of patch block outputs as well.
8e2dbe0d38 MSL: Do not declare patch variables on stack.
ff3f5bcba5 MSL: Handle masking of builtin control points.
6ecdd64a91 MSL: Emit a masked builtin IO block if necessary.
436b1250da MSL: Do not perform scalar fixups for control-point outputs.
22c9b63e78 MSL: Fix argument_decl check for builtin.
c635c35c12 MSL: Temporarily allow empty output struct.
a59e25db18 MSL: Small refactors.
74b2acab9b MSL: Always emit block variable for block types.
ae7bb41ef4 MSL: Test that we can mask location writes in TESC.
3255d6cef0 MSL: Explicitly only consider masked variables to be thread-group-like.
ba93b6518d MSL: Fix masking of vertex block outputs.
a393de31e6 MSL: Refactor out variable/block member masking.
857295a9ab MSL: Add tests for masking with --for-tess.
43b6ea2c9a MSL: Remove position mask tests. They will fail compilation.
e7b37392bf MSL: Emit correct address space for masked arguments.
65b5ff7ece MSL: Don't emit weird reference type for spvUnsafeArray types.
e7824c8b6e MSL: Handle masked outputs in extract_global_variables.
50a6bc058a MSL: Force builtin arrays for builtin array types.
88b54f5dab MSL: Add tests for vertex output masking.
394c038bfd MSL: Do not consider effective storage for any composite.
04988b89b9 MSL: Handle effective storage for masked CP outputs.
f2b5fb3f45 MSL: Emit threadgroup storage class for masked control point outputs.
ea91579a7f MSL: Do not redirect tess access chains on masked outputs.
9c1cadd440 Add --mask-stage-output-* CLI options.
f682e89188 MSL: Correctly emit array type for masked outputs.
2a2d57df13 MSL: Sketch out API to aid LTO-style optimization.
9a144bb2b9 Clean up member sorting.
0997e81118 MSL: Sort builtin IO block members by builtin type.
b4aa6dacfa MSVC: Add /bigobj for debug builds.
45818c14e4 Merge pull request #1648 from billhollings/msl-pad-arg-buff-structs
b3bfe22eaa MSL: Fixes to support padding Metal argument buffer entries based on argument index.
daba0dfba6 MSL: Fixes to support padding Metal argument buffer entries based on argument index.
9060e5a13c MSL: Fixes to support padding Metal argument buffer entries based on argument index.
9866cf4496 MSL: Fixes to support padding Metal argument buffer entries based on argument index.
6c0e11f907 Merge branch 'master' of https://github.com/billhollings/SPIRV-Cross into msl-pad-arg-buff-structs
582749ac68 Merge pull request #1650 from Dredhog/active-builtins-c-api
edde535574 c: Remove SPVC_PUBLIC_API prefix from API implementation
215f31b33f c: Add missing API to query active builtins.
17dab614dc MSL: Support padding Metal argument buffer entries based on argument index.
d2e1e7ba98 Fix Github CI in PRs.
28ae7b8f35 Merge pull request #1642 from mehmetoguzderin/msl-long-ulong-member
e2f7a753d2 Move condition to default block
0a0c9db9be MSL: Support long ulong types in buffers in 2.3+.
84d1f8aa2a Use Github actions CI tag.
2e000a0be4 Add GitHub Actions script.
60aa24566e Merge pull request #1633 from KhronosGroup/fix-1626
ee31e84e30 GLSL: Handle complex load/store scenarios to gl_SampleMask.
fb1f295aaf Merge pull request #1635 from KhronosGroup/fix-1627
5d846acee5 Merge pull request #1634 from KhronosGroup/fix-1625
0ac70fa7ca Merge pull request #1632 from KhronosGroup/fix-1629
4ca06c7278 Handle edge cases in OpCopyMemory.
aea6d29aa8 MSL: Add test for logical subgroup arith ops.
d6c2c1b39a HLSL: Support logical subgroup ops.
5570043af3 GLSL: Add support for Logical subgroup ops.
bc4cb1b3c5 Throw if SPIR-V module has no entry points.
d57ab68a21 Merge pull request #1630 from KhronosGroup/fix-1628
97796e0609 MSL: Deal with pointer-to-pointer qualifier ordering.
621884d709 Merge pull request #1622 from KhronosGroup/fix-1619
da238e5f12 Merge pull request #1623 from phuang/patch-2
c66a571057 Add two missing source files
b1e36a1f78 Merge pull request #1621 from KhronosGroup/fix-1618
85704f70bc MSL: Handle load and store to TessLevel array in TESC.
ce552f4f91 MSL: Gracefully assign automatic input locations to builtin attributes.
aa271c1460 MSL: Refactor out location consumption count computation.
6f1f6775f3 Add comment where aux image atomic buffers are reflected from.
92d379bab4 Merge pull request #1620 from phuang/patch-1
bc3416a18f Fix build errors on Windows
bae17e8204 Merge pull request #1617 from KhronosGroup/fix-1608
5789e3eed9 Merge pull request #1616 from KhronosGroup/fix-1609
daddbd4078 MSL: Fixup type when using tessellation levels in TESC functions.
0ad12a0036 MSL: Always return [[position]] when required.
05a1a07f70 Merge pull request #1615 from KhronosGroup/fix-1612
09dc76f68a c: Add missing IOS_SUPPORT_BASE_VERTEX_INSTANCE option.
8f5ab50fb8 Merge pull request #1614 from KhronosGroup/fix-1610
21a931613e HLSL: Add vector to illegal names list.
4741bbaa64 Merge pull request #1606 from billhollings/position-invariance
8e03cb60a5 Expose position invariance.
84a41cd488 Merge pull request #1603 from KhronosGroup/small-improvements
ea02a0c03a Check entry point variables in is_hidden_variables.
4bedad3860 Handle nonuniformEXT qualifier for acceleration structures.
7ab3f3f74e Deal better with CompositeExtract from constant composite.
66fb0bd9df GLSL: Handle tracing against incoming payload/callable.
9acb9ec31f Merge pull request #1594 from KhronosGroup/fix-1591
a5eaf2f44a Merge pull request #1595 from KhronosGroup/copyright-update
4704482bbc meta: Update copyright headers to 2021.
4c866e4662 Fix pathological complexity explosion for certain shaders.
820179bf46 Merge pull request #1590 from KhronosGroup/fix-1584
2097c30985 GLSL: Support both SPV_KHR_ray_tracing and NV_ray_tracing.
702c903f98 Merge pull request #1589 from KhronosGroup/roll-deps
ce18d1b8a5 CLI: Fix silly regression with handling of -V.
5d82d32e0f Roll dependencies.
0e5078dc0c Merge pull request #1588 from KhronosGroup/fix-1582
893a011299 MSL: Fix various bugs with framebuffer fetch on macOS and argument buffers.
3136e34215 MSL: Always use input_attachment_index for framebuffer fetch binding.
134a520034 Merge pull request #1587 from KhronosGroup/refactor-active-variable-consideration
03ee71e86c Add test for pure initializer gl_FragDepth.
3776d8978c GLSL: Force block declaration if clip/cull is used in tesc.
014b3bc5ea MSL: Make sure initialized output builtins are considered active.
a4a9b53b5b MSL: Always enable Outputs in vertex stages.
fa76d01203 MSL: Only consider builtin variables if they are part of IO interface.
c8837d7d80 MSL: Very slight refactor.
234c65c0f3 Merge pull request #1585 from KhronosGroup/fix-1569
72e9f619a9 Merge pull request #1583 from KhronosGroup/fix-1567
42ec132357 Merge pull request #1581 from KhronosGroup/fix-1554
c033a93951 GLSL: Fix -Wshadow error.
1a28a04333 GLSL: Update SPIR-V headers for modified ray tracing opcodes.
02b7f9cbe9 CLI: Add stdin support.
efed4c9738 MSL: Fix initializer for tess level outputs.
ab9200ffdf MSL: Don't flatten builtin arrays unless they're part of IO interface.
df4f8ef8fe MSL: Emit correct initializer for tessellation control points.
ad3e1584f9 MSL: Handle initializers for tess levels.
39fee93906 GLSL: Refactor out Output variable initialization.
6a3ea0385e GLSL: Add test for initializing tess level output.
175381fe08 GLSL: Handle some extreme edge cases in Output variable initialization.
7b7a21c405 Merge pull request #1578 from KhronosGroup/fix-1568
1a38fec382 Minor redundant nit.
a1c784f002 More robust handling of initialized output builtin variables.
9a304fe931 Handle output IO block initializers more robustly.
49ab12919c Merge pull request #1577 from KhronosGroup/fix-1574
3514c9ff33 Merge pull request #1576 from KhronosGroup/fix-1571
3a85d1c80c CMake: Disable compiler extensions explicitly.
ddb3c65648 Handle reserved identifiers for functions.
c4ff129fe3 MSL: Handle reserved identifiers for entry point.
e50f7d1ce8 Merge pull request #1566 from KhronosGroup/subgroup-table-fix
c8765a75f2 GLSL: Fix KHR subgroup extension table for subgroups.
762c3082ae Merge pull request #1564 from KhronosGroup/fix-1558
1eb42eb18c Merge pull request #1563 from KhronosGroup/fix-1559
a11c4780d0 GLSL: Emit nonuniformEXT in correct place for late-combined samplers.
dc940846d7 GLSL/HLSL: Disallow VariablePointers capability outright.
6d10da0224 Merge pull request #1553 from comex/no-subgroups-in-vertex-shaders
f41b59b36e Merge pull request #1557 from KhronosGroup/mit-dual-license-api
cf1e9e0643 Add MIT dual license for the SPIRV-Cross API.
0b79db773f Merge branch 'master' of git://github.com/js6i/SPIRV-Cross
c09a65c12d MSL: Added fmin3 and fmax3 library functions to the illegal name list.
5a85fa9400 msl: Don't try to use [[thread_index_in_simdgroup]] in vertex shaders.
be527632a6 Merge branch 'unused' of git://github.com/comex/SPIRV-Cross
c80cbde7aa spirv_msl: Don't add fixup hooks for builtin variables if they're unused.
3d16060c32 Merge pull request #1551 from cdavis5e/msl-subgroup-inactive-ballot-mask
1e67b21ee9 MSL: Don't mask off inactive bits in ballot masks.
1f178be3c9 Merge branch 'msl-sample-rate-position' of git://github.com/cdavis5e/SPIRV-Cross
fd738e3387 MSL: Adjust FragCoord for sample-rate shading.
782916a797 Merge pull request #1549 from KhronosGroup/various-fixes
e07f0a9df5 GLSL: Fix buffer_reference with aliased names.
c5826b4b69 GLSL: Emit storage qualifiers for buffer_reference.
650b5e1b12 HLSL: Fix validation with FXC for test.
6a614cc7f7 Normalize all internal workaround methods to use spv prefix.
35d3b9c3e7 Merge branch 'msl-subgroup-ops-2' of git://github.com/cdavis5e/SPIRV-Cross
dabdf4eff6 Merge pull request #1547 from scribam/cmake-minimum-required
1eb4852856 CMake: Set minimum required version to 3.0
68908355a9 MSL: Expand subgroup support.
58291963c6 Merge branch 'glsl-vertex-attrib-64bit' of git://github.com/rdb/SPIRV-Cross
df5e3730ca GLSL: Require GL_ARB_vertex_attrib_64bit for double input in pre-4.10
b3c59263a0 Merge pull request #1541 from cdavis5e/msl-ios-features
88e25e60ec MSL: Expose some more features on iOS.
1ee2d13873 MSL: Add missing reference file.
ef0256c23e Fix switch fallthrough
0d6fad4ab9 Merge branch 'extract_subgroup_ops' of git://github.com/js6i/SPIRV-Cross
9c2c0a23b9 Merge pull request #1533 from rdb/texture-fetch-size-fallbacks
10fa5f62aa GLSL: Legacy / extension fallbacks for textureSize and texelFetch
f0239bce05 MSL: extract global variables from subgroup ballot operations
6fc2a0581a Run format_all.sh.
71fcf0d9e6 Update texture gather test result.
008f3baad7 Merge branch 'arb-texture-gather' of git://github.com/rdb/SPIRV-Cross
46bf1e99d6 Merge pull request #1525 from cdavis5e/msl-interpolation-functions
509908d8db GLSL: Add error checking and extension fallback for textureGather
683c3f5c3f Merge pull request #1530 from rdb/legacy-glsl-round
ea334c14bc Merge pull request #1527 from rdb/legacy-transpose
2417010046 Merge pull request #1528 from rdb/fix-legacy-vertex-shader-lod
1648747fa7 Merge pull request #1529 from KhronosGroup/fix-msl-gather-regression
b3bd674aa7 GLSL: Remove unused `lod` argument from legacy_tex_op()
bf71994dae GLSL: implement transpose() in GLSL 1.10 / ES 1.00
9e6e5d2738 GLSL: Fix round/roundEven for legacy GLSL.
e8c500ceef GLSL: Fix support for textureLod in legacy vertex shaders
db13762297 MSL: Fix regression in image gather handling.
aca9b6879a MSL: Support pull-model interpolation on MSL 2.3+.
a20c768698 Merge pull request #1524 from rdb/hlsl-round-even
854f566869 HLSL: Support roundEven() in HLSL SM 4.0 and above
2e1bdeb212 Merge pull request #1520 from rdb/dx9-dref-samplers
135933d59e HLSL: Add regression test for SM3.0 texture samplers
18893ba3b9 HLSL: Support depth comparison texture sampling in SM 2/3.
fc644b50e6 Merge pull request #1523 from KhronosGroup/fix-1512
512e851185 Merge pull request #1522 from KhronosGroup/fix-1510
b3344174f7 HLSL: Add option to flatten matrix vertex input semantics.
1f018b0fb8 Parser: Don't assume OpTypePointer will always take a SPIRType.
244839d350 Merge pull request #1516 from billhollings/VK_EXT_descriptor_indexing
4bdd49df3f Syntax and format updates from code review.
c5a3f37a1c Merge pull request #1519 from cdavis5e/msl-mac-comparison-bias-grad
dcd66c283c Merge pull request #1521 from devshgraphicsprogramming/master
6402586015 Updated ref file for subgroups_basicvoteballot.vk.comp
9a1af25f02 Merge pull request #2 from KhronosGroup/master
6c5f394b09 Fix some bad assumptions about emulating `subgroupBarrier`
7f67abe0fe Minor format and typo updates from code review.
547c29f7bb MSL: Allow Bias and Grad arguments with comparison on Mac in MSL 2.3.
8884b34940 Merge pull request #1517 from atyuwen/master
303f813166 Merge pull request #1518 from KhronosGroup/fix-nonuniform-bracket-handling
439b666829 GLSL: Fix nonuniformEXT injection.
871a023877 fixed compile error with -std=c++20
541a801fed Merge pull request #1514 from cdavis5e/msl-mac-framebuffer-fetch
c8a43876c7 added metal keyworld: "level" (#1501)
b7b0e804e5 MSL: Support run-time sized image and sampler arrays (GL_EXT_nonuniform_qualifier/SPV_EXT_descriptor_indexing).
c20d5945a2 MSL: Allow framebuffer fetch on Mac in MSL 2.3.
78c6d2d628 Merge pull request #1509 from cdavis5e/mac-post-depth-coverage
08e49bfd67 Merge pull request #1508 from KhronosGroup/fix-1507
346b0b6c21 Merge pull request #1493 from KhronosGroup/ubo-row-major-load-workaround
d48d2a95c7 MSL: Allow post-depth coverage on Mac in MSL 2.3.
542d460364 Handle case where block is loop header, continue AND break block.
e47561a28b GLSL: Support a workaround for loading row-major matrices.
5ae9153a78 Merge pull request #1505 from cdavis5e/msl-vertex-writes
1b6b9705e6 MSL: For 2.1+, don't disable rasterization for vertex writes.
1a95017d11 Merge pull request #1503 from KhronosGroup/travis-python-update
b3a74f3a22 Merge pull request #1504 from KhronosGroup/fix-1502
f65f259ab7 MSL: Do not use component::x gather for depth2d textures.
1d68cbfb1b Update TravisCI python reference.
dd35821f2f Merge pull request #1499 from cdavis5e/subgroup-fixes
1264e2705e MSL: Cast broadcast booleans to ushort.
065b5bda3c MSL: Mask ballots passed to Ballot bit ops.
781367d083 MSL: Support vectors with OpGroupNonUniformAllEqual.
6ccb902462 MSL: Correct definitions of subgroup ballot mask variables.
a57b4b1b2e Merge pull request #1498 from cdavis5e/msl-swizzle-arrayed-nonconstant
064ed448b9 MSL: Don't remove periods from swizzle buffer index exprs.
7b80307a7d Merge pull request #1495 from cdavis5e/1d-2d-offset-grad
5845e009ea MSL: Handle Offset and Grad operands for 1D-as-2D textures.
0db1569e97 Merge pull request #1492 from KhronosGroup/non-native-matrix-fix
9c220a8247 Merge pull request #1490 from KhronosGroup/fix-1488
23a0cfc842 Merge pull request #1494 from cdavis5e/msl-tesc-tess-level-cast
3e6010d8c5 MSL: Don't use a bitcast for tessellation levels in tesc shaders.
120af42616 GLSL: Use need_transpose when checking for non-native matrix.
bd1ee4344e MSL: Support querying and modifying generated combined sampler suffix.
7332b44c3c Merge pull request #1489 from cdavis5e/msl-fix-atomic-image-coord
21d38f74ce MSL: Fix calculation of atomic image buffer address.
e827a06984 Merge pull request #1487 from cdavis5e/msl-atomic-image-interlock
7a5d0d6b29 MSL: Add missing interlock handling to atomic image buffers.
fab6ad234e Merge pull request #1486 from cdavis5e/atomic-image-argument-buffer
cc7aabce72 Merge pull request #1485 from cdavis5e/msl23-demote-to-helper
9cafea6cf8 MSL: Support atomic access to images from argument buffers.
2219c4a392 MSL: Support SPV_EXT_demote_to_helper_invocation for MSL 2.3.
401af49326 Merge pull request #1482 from KhronosGroup/gl-subgroup-merge
5619329665 Style nits for GL subgroup implementation.
a6f6547cf1 Add missing VK variant of the test file.
28994a3186 Update GL subgroup test file.
819c599ecd Merge branch 'issues1350-2' of git://github.com/devshgraphicsprogramming/SPIRV-Cross into master
db52e277b9 Resolved issues 1350, 1351, 1352
5cc2e4f634 Merge pull request #1475 from KhronosGroup/fix-1474
e0c9aad934 GLSL: Add support for transform_feedback3 geometry streams.
7a99d1cb72 GLSL: Use literal array size for cull/clip array sizes.
e6f5ce6b89 Merge pull request #1471 from KhronosGroup/fix-1467
6254be910e Merge pull request #1470 from KhronosGroup/fix-1469
34a6a45fba Work around MSVC warning.
5ea576ece2 Allow flip_vert_y in all relevant stages.
ea3cd74426 Merge pull request #1468 from dj2/roll-09-22
9880b05572 Roll dependencies.
8891bd3512 Merge pull request #1466 from KhronosGroup/fix-1465
2144274a91 Clean up conditional branch codegen.
54cc0b01f6 Deal with case where a selection construct conditionally merges/breaks.
16d9fea77c Merge pull request #1463 from KhronosGroup/fix-1462
66afe8c499 Implement a simple evaluator of specialization constants.
bdbef7b1f3 Merge pull request #1461 from Kangz/fix-warnings
bcd71536e2 Fix -Wduplicate-enum and -Wrange-for-analysis.
ba2d0e17d3 Merge pull request #1460 from KhronosGroup/fix-1458
446596643a Roll glslang/SPIRV-Tools deps.
18d03b3ea6 Handle OpUndef %void.
bad9dab8df Merge pull request #1457 from cdavis5e/msl-layered-subpass-data
4cf840ee7b MSL: Support layered input attachments.
c7507e39d4 Merge pull request #1456 from KhronosGroup/fix-1455
3360daa6f3 MSL: Fix OpCompositeInsert and OpVectorInsertDynamic.
9e3dbdc8d6 Merge pull request #1454 from cdavis5e/msl-multiview-non-layered
cab7335e64 MSL: Don't set the layer for multiview if the device doesn't support it.
4752a44f9e Merge pull request #1453 from cdavis5e/msl-multiview-base-instance
53080ecca8 MSL: Fix multiview view index calculation with a non-zero base instance.
685f86471e Merge pull request #1452 from KhronosGroup/minor-nits
95993f78af Run format_all.sh.
ee1b4e7042 Work around annoying warning on GCC 10.2.
eec76b04c7 Merge pull request #1450 from KhronosGroup/fix-1440
a07441568e Overhaul how we deal with reserved identifiers.
f0fe4442e3 Merge pull request #1448 from KhronosGroup/fix-1437
4f0f0e5a07 Merge pull request #1449 from KhronosGroup/fix-1443
fdbc80d131 HLSL: Fix FragCoord.w.
fad36a6b28 HLSL: Deal with partially filled 16-byte word in cbuffers.
dd1f53ff15 HLSL: Fix bug in is_packing_standard for cbuffer.
4c7944bb42 Merge pull request #1446 from kakashidinho/master
ab8eb70af1 Fix #1445: MSL: Enclose args when convert distance(a,b) to abs(a-b)
82d1c43e40 Merge pull request #1441 from cdavis5e/msl-tesc-composite-out
3347b1076d MSL: Fix handling of matrices and structs in the output control point array.
c333445ada Merge pull request #1436 from KhronosGroup/fix-1408
8a1843ab20 Add some test cases for complex type aliasing scenario.
eb580d6656 Ensure that we use primary alias type when emitting flattened members.
aac6885950 GLSL: Be more aggressive about using type_alias.
038b0bf238 Only rewrite type aliases for the base type.
7778792aec Merge pull request #1434 from KhronosGroup/glsl-force-flattened-io
57c93d44ac GLSL: Add option to force flattening IO blocks.
f5e9f4a172 Merge pull request #1432 from ponitka/hlsl-sample-mask
ba58f78395 Adding BuiltInSampleMask in HLSL
0376576d2d Merge pull request #1429 from ponitka/master
18f23c47d9 Enabling setting a fixed sampleMask in Metal fragment shaders.
934825a6a2 Merge pull request #1294 from cdavis5e/msl-multi-patch-workgroup
688c5fcbda MSL: Add support for processing more than one patch per workgroup.
3dcc23a5b3 Merge pull request #1431 from dj2/roll-07-22
ac08a89cf0 Merge pull request #1430 from cdavis5e/msl-refactoring
c4f3d4ae29 Roll GLSLang, SPIRV-Headers and SPIRV-Tools.
884bc6df65 MSL: Factor creating a uint type into its own method.
5e13f7fdf2 MSL: Factor a really gnarly condition into its own method.
6575e451f5 Merge pull request #1423 from KhronosGroup/msvc-2013-fix
36c999ae3f MSVC 2013: Fix silently broken builds.
39ce5b46de Merge pull request #1421 from troughton/patch-3
b74a84e4cb MSL: Ensure OpStore source operands are marked for inclusion in function arguments
559b21c6c9 Merge pull request #1420 from dj2/roll-07-06
63fbdaca93 Roll deps.
3b366db7f1 Merge pull request #1416 from KhronosGroup/fix-1415
711300baed MSL: Do not emit swizzled writes in packing fixups.
fa5b206d97 MSL: Workaround broken vector -> scalar access chain in MSL.
fab75792a9 Merge pull request #1419 from KhronosGroup/msl-input-attachment-index-fallback
e1600d4df8 MSL: Use input attachment index directly for resource index fallback.
c465cd5004 Merge pull request #1417 from KhronosGroup/fix-351
2ac8f51b06 GLSL: Support I/O flattening with arrays as final type.
2d43103a55 GLSL: Support multi-level struct flattening for I/O.
d573a95a9c Run format_all.sh.
8f716947c2 test: Use --hlsl-dx9-compatible when attempting to compile SM 3.0 shaders.
2894b40868 Merge pull request #1412 from KhronosGroup/fix-1411
70f17142de GLSL: Fix nested legacy switch workarounds.
b1082c10af Merge pull request #1410 from KhronosGroup/fix-1406
42096ca4a1 Merge pull request #1409 from KhronosGroup/fix-1405
4d79d634f5 GLSL: Implement switch on ESSL 1.0.
bae76d7915 GLSL: Use for-loop fallback instead of do/while for legacy ESSL.
3afbfdb090 Implement context-sensitive expression read tracking.
05188aca69 Fix bug with control dependent expression tracking.
2e7a562583 Merge pull request #1404 from KhronosGroup/fix-1402
eb0f0323d3 HLSL: Workaround FXC bugs with degenerate switch blocks.
f9ae06512e Merge pull request #1401 from dj2/roll-deps-22
9eb615c63b Merge pull request #1400 from KhronosGroup/fix-1399
0abc017501 Roll deps and update tests.
f9da366ae6 MSL: Remove the old VertexAttr API.
7edaea87cf Merge pull request #1398 from Kangz/fix-deprecation
6add77aa97 Merge pull request #1397 from KhronosGroup/fix-1396
8aee532f56 Fix placement of SPIRV_CROSS_DEPRECATED.
f141521ebe Fix duplicated initialization for loop variables with initializers.
d7976b7b24 Merge pull request #1395 from KhronosGroup/fix-1394
ace4d25222 MSL: Add test case for constructing struct with non-value-type array.
7314f51a32 MSL: Deal with loading non-value-type arrays.
02db4c1f16 MSL: Add tests for array copies in and out of buffers.
03d4bcea68 MSL: Improve handling of array types in buffer objects.
11832b6e14 Clean up some deprecation warnings when building with Makefile.
5e509b159a Remove unused member in MSLShaderInput.
a64484f62b Merge pull request #1392 from cdavis5e/msl-frag-input-vecsize
5281d9997e MSL: Fix up input variables' vector lengths in all stages.
7073ed2edb Merge pull request #1393 from KhronosGroup/fix-1391
d13dc0ce47 HLSL: Fix texProj in legacy HLSL.
9e3df69d4e Merge pull request #1390 from rdb/master
031cbaa5a2 GLSL: Require GL_ARB_draw_instanced for gl_InstanceID in GLSL < 1.40
92fcd7d2b0 Merge pull request #1389 from KhronosGroup/sparse-clamp
f383cc98f2 GLSL: Handle the rest of GL_ARB_sparse_texture_clamp.
bbefea2b02 Merge pull request #1388 from KhronosGroup/uint-sparse-residency-query
857e1c445c GLSL: Support uint code for sparse residency query.
553a7f959b Merge pull request #1385 from KhronosGroup/fix-1237
cbe0cca73b Refactor texture fetch function generation.
b73c047faf Merge pull request #1387 from Lichtso/master
1f5875e23e Fix missing switch cases in Y'CbCr conversion
3ce81c0025 Merge pull request #1384 from KhronosGroup/fix-1380
757c10bbe4 Merge pull request #1383 from KhronosGroup/fix-1381
275974e062 GLSL: Implement sparse feedback.
6600793884 MSL: Remove obsolete MSLVertexAttr members.
2d5200650a HLSL: Add native support for 16-bit types.
d385bf096f Merge pull request #1378 from bbernhar/issue_410
32bead81c8 Prefer set/binding API
999a7b5256 Merge pull request #1379 from KhronosGroup/fix-1377
165392a2b0 Document all CLI options.
d31bc0247e Do not mask writes to remapped variables in all cases.
17bccc9f7e HLSL: Add option to treat certain SSBO bindings as UAV, even with readonly.
61cddd6307 Merge pull request #1376 from KhronosGroup/fix-1374
58dad82fcb Handle physical pointers in reflection API.
f992548434 Merge pull request #1372 from KhronosGroup/gl-draw-parameters
ef247e75ec GLSL: Improve support for GL_ARB_shader_draw_parameters in desktop GLSL.
ec558bc98e Merge pull request #1371 from dj2/roll-deps-21
3d01d1bf50 Roll SPIRV-Tools, SPIRV-Headers and GLSLang.
287e93ff80 Merge pull request #1370 from dj2/roll_deps_20
29ad40e93e Merge pull request #1369 from KhronosGroup/more-rt-tests
8bf916f575 Roll dependencies
b4dd0b6fb1 GLSL: Add more test shaders for hit attribute types.
66ec3e3e54 GLSL: Support ray payloads and hit attributes declared as Block.
271ad33380 GLSL: Add some more focused RT test shaders.
3c43f055df Merge pull request #1366 from KhronosGroup/fix-1365
f3a362b1aa HLSL: Implement image queries for UAV images.
d638d2df9c Merge pull request #1363 from KhronosGroup/rt-gl-instance-id
86380acf4d Support gl_InstanceID in RT shaders.
b7823ec389 Merge pull request #1361 from KhronosGroup/msl-single-element-array-refinement
107ab7c2b7 MSL: Avoid packed arrays in more cases.
de3698f0e0 Add missing reference files from PR merge.
b8ba89a1ac Merge branch 'master' of git://github.com/kakashidinho/SPIRV-Cross
9ddfe6db6d Fix #1359: MSL: If the packed type is scalar, don't emit "pack_" prefix.
92f7d36c72 Merge pull request #1356 from KhronosGroup/fix-1354
0ebb88cc39 MSL: Redirect member indices when buffer has been sorted by Offset.
137dbeb7f1 Merge pull request #1355 from Kangz/fix-microsoft-enum-value
a3a590a82e Fix -Wmicrosoft-enum-value
7e0295abf8 Merge pull request #1353 from zoddicus/updateSPIRVHeaders
76658247ac Update SPIR-V Headers to 1.5 rev 3
471990d4dc Merge pull request #1349 from KhronosGroup/fix-1348
35a9b793d6 Work around odd deadlock in test_shaders.py in --parallel mode.
d7d630a0b7 Merge pull request #1347 from KhronosGroup/fix-1343
4330b046be Merge pull request #1346 from KhronosGroup/fix-1340
9b7140e2ba Implement OpAtomicLoad/OpAtomicStore.
cbaaa02af9 Merge pull request #1345 from apayen/master
6ef47d6657 MSL: Fix case where subpassInput is passed to leaf functions.
4edfe96739 Fixed recursion in combined_decoration_for_member Members in nested structs were not properly iterated on, and as a result, flags like row major for matrices could be not propagated properly.
7ba0f8f087 Merge pull request #1342 from dj2/roll
171c646474 Roll GLSLang, SPIRV-Tools and SPIRV-Headers.
1ad1662a2b Merge pull request #1339 from KhronosGroup/fix-1338
5e5d1c27ce GLSL: Support f16x2 <-> f32 bitcast.
c58839bfd4 Merge pull request #1336 from KhronosGroup/fix-1333
bf289c37a2 Merge pull request #1337 from KhronosGroup/nonuniform-propagation-fix
bdb343ea06 Be a bit more careful what nonuniform state is propagated.
6b0e558169 Handle RayQueryKHR type.
78b4d9379b Update SPIR-V headers.
b2e934b53f Merge pull request #1328 from devshgraphicsprogramming/patch-1
5cb0f0a640 Merge pull request #1335 from KhronosGroup/fix-1325
127224d816 Fix issue #1327
58548e25a2 Merge pull request #1334 from KhronosGroup/fix-1332
7b9cba7424 HLSL: Add parens in unpackUint2x32 for clarity.
e4e4791c4e HLSL: Only allow 64-bit integers in SM 6.0.
a396744f89 Ensure unpack/pack2x32 tests are compatible with test suite.
55dfbead2f GLSL/HLSL: Support packUint2x32 and unpackUint2x32
f8592ecdfc MSL: Deal correctly with initializers on Private variables.
3fb86e4385 Merge pull request #1331 from KhronosGroup/fix-1321
17ad62eea4 MSL: Support edge case with DX layout in scalar block layout.
f38cbeb814 Merge pull request #1330 from KhronosGroup/fix-1320
ebf463674d MSL: Allow removing clip distance user varyings.
aa5fbc004b Merge pull request #1329 from godlikepanos/master
b3109b8ad0 Reflection: Add specialization constant name
90198199df Merge pull request #1324 from cdavis5e/msl-disabled-builtin-names
96f7008aa8 MSL: Force disabled fragment builtins to have the right name.
fbc560782c Merge pull request #1323 from cdavis5e/msl-disable-frag-only
495e48de44 MSL: Only disable output variables in fragment shaders.
54658d6255 Merge pull request #1319 from cdavis5e/msl-frag-outputs
b29f83c383 MSL: Add options to control emission of fragment outputs.
fcbc590937 Merge pull request #1316 from Malacath-92/master
4560ee24fd Improve compatibility with clang-cl
a1d9b474b5 Merge pull request #1314 from KhronosGroup/fix-1313
c7b75a8fe6 MSL: Do not use base expression with PhysicalTypeID OpCompositeExtract.
6637610b16 Merge pull request #1309 from KhronosGroup/fix-1305
941cceedb4 Expose a query if samplers or images are comparison resources.
b691b7d1e3 Do not add NonWritable/NonReadable decorations for regular images.
14f24d71ab Merge pull request #1308 from KhronosGroup/fix-1306
cfcd84319b Merge pull request #1310 from KhronosGroup/msl-force-declare-implicit-builtins
d9d3359ffb MSL: Deal with cases where builtin is implicitly needed, declared, but unused.
01cee74b02 Merge pull request #1307 from troughton/patch-1
28bf9057df HLSL: Add support for treating NonWritable UAV texture as SRV instead.
4cf736d753 MSL: mark BuiltInFragCoord as implicitly used for subpass reads
e58e8d5dbe Merge pull request #1303 from KhronosGroup/fix-1302
3cb6aeb480 MSL: Fix access chain for deep struct hierarchy on array of buffers.
84ec99c531 Merge pull request #1301 from dj2/roll_deps
32307df73a Roll GLSLang, SPIRV-Tools and SPIRV-Headers
9b3c5e12be Merge pull request #1299 from KhronosGroup/fix-1298
b8905bbd95 Add support for forcefully zero-initialized variables.
871c85d7f0 Merge pull request #1297 from KhronosGroup/fix-1295
04e877df12 GLSL: Implement GL_EXT_shader_framebuffer_fetch.
c2655ab291 Run format_all.sh.
c3d216c011 Merge pull request #1296 from KhronosGroup/fix-1292
05004a57ea GLSL/HLSL: Fix nonuniform qualifier for SSBO atomics.
a3d3c80dd7 GLSL/HLSL: Implement nonuniform qualifier for image atomics.
65aa0c35d6 include/spirv_cross: Fix typo.
7d42fd7f7b Merge pull request #1290 from KhronosGroup/fix-1289
185551bfaf HLSL: Do not emit globallycoherent for SRV ByteAddressBuffer.
d19f30a90e Merge pull request #1287 from KhronosGroup/read-write-decoration-tweaks
95cd20f1c7 Add test for disable-storage-image-qualifier-deduction.
c27e1efbf1 HLSL: Add option to always treat SSBO as UAV, even with readonly.
01968c4486 Add option to disable storage image qualifier deduction.
3ebc83da46 Remove old hack which forces NonWritable/NonReadable.
9deb6ffbba Merge pull request #1285 from KhronosGroup/vulkan-semantics-shorthand
3f2de0d5d3 Add -V alias for --vulkan-semantics.
c5f7b55756 Merge pull request #1284 from KhronosGroup/fix-1282
16796e92be MSL: Add C API for force native arrays.
d91e134500 MSL: Add native array test for composite array initialization.
30343f3e95 MSL: Reintroduce workaround for constant arrays being passed by value.
20b28f72fa MSL: Reinstate workaround for returning arrays.
c9d4f9cd74 MSL: Add a workaround path to force native arrays for everything.
f19fdb94d7 Merge pull request #1283 from dj2/roll
7ec16b64c8 Roll GLSLang, SPIRV-Tools and SPIRV-Headers
dffd33dd9d Merge pull request #1280 from KhronosGroup/fix-1278
92a4294c57 Reject SPIR-V modules with garbage ID bound.
c53b34765d Merge pull request #1277 from KhronosGroup/fix-1276
e81c1b1d98 HLSL: Declare undef variables as static.
7ac5c38838 Merge pull request #1275 from KhronosGroup/fix-1274
cec0502ba5 Remove old memory_scope flag from iOS barriers.
6b2add8e2c Merge pull request #1272 from KhronosGroup/fix-1271
6f5cb00148 Use GNUInstallDirs for include path as well.
cb0aca91ef Merge pull request #1273 from orbea/cmake
8b90526911 cmake: Don't hardcode the pkg-config file.
74544caa16 cmake: Use GNUInstallDirs.
d67c3393da CMake: Avoid warning when parent project uses VERSION in project().
68bf0f824c Merge pull request #1270 from KhronosGroup/fix-1266
dfffbb1cf3 Compile fix on older compilers.
655312cb47 GLSL: Support GL_ARB_enchanced_layouts for XFB.
306cb31bad Merge pull request #1239 from cdavis5e/msl-inline-uniform-blocks
ae6c05f6f4 MSL: Move inline uniform blocks to the end of the argument buffer.
fedbc35315 MSL: Support inline uniform blocks in argument buffers.
f9376058ce Merge pull request #1269 from KhronosGroup/fix-1267
8bbb5fb763 Make SmallVector noexcept.
883de24f79 Merge pull request #1268 from barath121/patch-1
eac76d9473 Typo at line 324
f9818f0804 Update license headers to 2020.
7a411258af Run format_all.sh.
af787a8a79 Merge pull request #1264 from KhronosGroup/msl-argument-buffer-persist
4054d650cf Merge pull request #1263 from KhronosGroup/fix-1232
c3bd136df1 MSL: Add support for force-activating IAB resources.
f79c1e2fed Deal with illegal names in types as well.
79700d5412 Merge pull request #1262 from KhronosGroup/json-reflection-improvements
57b70225ef Merge pull request #1261 from KhronosGroup/fix-379
762c87a7bb Reflection: Add array stride/matrix stride reflection.
18e24c3ca2 Reflection: Emit reflection information for array size literalness.
55fe6050fe GLSL: Implement geometry shader passthrough extension.
172e39f039 Merge pull request #1257 from KhronosGroup/fix-1236
74107a04d1 Merge pull request #1256 from KhronosGroup/fix-1252
cc153f8d7f HLSL: Add a resource remapping API similar to MSL.
2bbb012e9c MSL: Deal with sign on wave min/max.
88ddeec49a HLSL: Deal with casting for WaveActiveMin/Max.
5253da9e63 GLSL: Deal with sign in subgroup Min/Max operations.
34ba8ea4f2 Merge pull request #1255 from KhronosGroup/fix-1254
c256525c7b Run format_all.sh.
1cbd71b354 HLSL: Fix bug when reading and writing structs from SSBO.
151ff1e870 HLSL: Implement stores for complex…
2023-01-15 18:12:31 +01:00
sonninnos f8e94861b2
Core option setting type checks (#14852) 2023-01-15 16:06:56 +01:00
warmenhoven f347c2d192
Pull latest SPIRV-Cross, fixing Metal shader compilation (#14850)
* Squashed 'deps/SPIRV-Cross/' changes from 2820ab0b51..49e4117c5f

49e4117c5f Updates for main branch rename.
88c6b49959 Merge pull request #2085 from KhronosGroup/fix-2075
a085227395 Merge pull request #2084 from KhronosGroup/fix-2069
1047c13d40 GLSL: Handle textureGatherOffsets properly.
f84527346d GLSL: Declare gl_in/gl_out as array more robustly.
38cd214007 Merge pull request #2083 from KhronosGroup/pr-2080
d46c10ebd3 Refactor PHI checks into block_is_noop instead.
bcbe33ad11 Also consider NonSemantic ExtInst in block_is_noop.
9d8ef6b36c Update test for updated block_is_noop check.
a61a541e1c Merge branch 'accept_noop' of https://github.com/loic-sharma/SPIRV-Cross into pr-2080
457fd3db70 Add tests for loops compiled with debug semantics.
07a629f149 Roll dependencies.
d69a2cafe5 Accept no ops
cded61dde3 Merge pull request #2076 from billhollings/ios-tier2-writable-images
284ccf5d2d Fixes from code review of adding writable images to iOS Tier2 argument buffers.
0bb28ef88a Merge pull request #2078 from KhronosGroup/fix-2072
549cde7fae Fix GCC5 build.
cc2b3b61a6 Merge pull request #2077 from EpicGames/fixes_glsl
6371580f51 Fixed typo in CompilerGLSL::should_dereference()
643b7be196 MSL: Add support for writable images in iOS Tier2 argument buffers.
a89dea3c49 Merge pull request #2071 from KhronosGroup/fix-2068
baf38f0593 Merge pull request #2070 from KhronosGroup/fix-2066
68a012a4f2 CFG: Handle implied access to opaque loaded values.
03b1f66ef1 GLSL: Fix row-major workaround wrapper for ES.
3c997e12eb Add C API option for enable row major workaround.
c77b09b57c Merge pull request #2063 from KhronosGroup/fix-2060
451ed10e91 Merge pull request #2062 from cdavis5e/msl-spirv-assembly-fixes
df76a14056 MSL: Refactor member reference in terms of one boolean.
e75c496ec6 Fix MSL Access Chain
540a1e82c6 Merge pull request #2056 from cdavis5e/msl-discarded-frag-checks
061cdd2052 MSL: Don't dereference forwarded copies of `OpVariable` pointers.
5547b25afe Interleave undef values with constants and types.
06ef3de002 GLSL, MSL: Handle `OpUndef` as part of a constant composite.
aa5a8c482e MSL: Prevent stores to storage resources in discarded fragments.
51d2dfe02a MSL: Add missing casts to `Op?MulExtended`.
c7ce92a95b MSL: Manually update `BuiltInHelperInvocation` when a fragment is discarded.
edd66a2fc9 Merge pull request #2055 from KhronosGroup/fix-2053
e8a22a7cf6 Handle ShaderDebugInfo non-semantic extension.
abc31207bf Merge pull request #2052 from KhronosGroup/hlsl-mesh-shader-ext
b606e4f752 HLSL: Fix test for non-block per-primitive IO.
ebf779dcfb HLSL: Do not support ClipCull size > 4 in mesh shaders.
94160e8890 GLSL: Add test for mesh with non-block builtin IO.
3a066cd733 HLSL: Handle case where PerVertex block is not used.
f5ef0a74fb HLSL: Make sure to test deeply nested functions in mesh shaders.
e418266d25 HLSL: Some cleanups and fixes in analyze_meshlet_writes.
892f65b3a6 HLSL: Fix some warnings from review.
a4d5c0c4a5 HLSL: Fix-up some style issues from review.
10f55a11eb HLSL: Add missing reference for mesh shader test.
322f1b9fb3 Fixup glslang reference.
80146a20da HLSL: Implement VK_EXT_mesh_shader
744279ec78 Merge pull request #2050 from cdavis5e/op-spec-constant-op-composite-insert
8cf99e7d44 MSL: Implement `CompositeInsert` `OpSpecConstantOp`.
3cecac74c6 Merge pull request #2051 from KhronosGroup/roll-glslang-dep
605bce39d7 Roll glslang dependency.
677299cc56 Merge pull request #2049 from KhronosGroup/fix-2046
4de9d6c2b6 MSL: Handle implicit integer promotion rules.
c813d8d67b Merge pull request #2044 from KhronosGroup/fix-2038
2a49f7e82d MSL: Fix restrict vs __restrict incompatibility.
3ea057a303 Merge pull request #2045 from KhronosGroup/fix-2037
0851baf9ee Merge pull request #2043 from KhronosGroup/fix-2040
47c7fc16eb HLSL: Add option to bind vertex input smemantics by name.
04af769e85 MSL: Handle partial access chains with array-of-UBO/SSBO.
5763919669 Merge pull request #2039 from cdavis5e/raw-buffer-tess-input
e698633e22 MSL: Account for composite types when assigning locations.
0b679334e4 MSL: Don't flatten arrayed per-patch output blocks in tessellation shaders.
a171087180 MSL: Support "raw" buffer input in tessellation evaluation shaders.
f09ba27777 Merge pull request #2035 from KhronosGroup/fix-2032
f15d465a52 Merge pull request #2034 from KhronosGroup/fix-2028
799d8c9e35 Merge pull request #2033 from KhronosGroup/fix-2029
b5386e3ea9 HLSL: Improve support for VertexInfo aux struct.
4ecdb24e59 MSL: Expose way to query if a buffer needs array length.
f3b1375b13 Add reflection support for shader record buffers.
c821207ae2 Merge pull request #2027 from billhollings/msl-opstore-addr-space-cast
0a1127aa50 MSL: Emit correct address space when casting during OpStore.
81ba8f78f6 Merge pull request #2025 from KhronosGroup/fix-2009
291def0793 MSL: Add more keywords to reserved set.
a7f64a8b90 MSL: Report unsupported 64-bit atomics.
ddaa2da629 Merge pull request #2024 from KhronosGroup/msl-descriptor-aliasing
a915e0bd4b MSL: Do not attempt to alias push constants.
adf0995bb9 Merge pull request #2023 from KhronosGroup/msl-descriptor-aliasing
24dc49e692 MSL: Handle descriptor aliasing of raw buffer descriptors.
1ad6006130 Merge pull request #2021 from siegelaaron94/opengles_texture1d_textureSize
7b4c470f16 GLSL: Account for ES sampler1D to sampler2D promotion in textureSize.
6d3518e238 Merge pull request #2018 from atyuwen/master
7afbbb624a Merge pull request #2019 from billhollings/msl-OpPtrEqual-OpPtrNotEqual-OppPtrDiff
5493b3030e MSL: Support OpPtrEqual, OpPtrNotEqual, and OpPtrDiff.
1b9296e1a5 MSL: only fix up gl_FragCoord if really necessary.
f6ca617825 Merge pull request #2017 from KhronosGroup/roll-deps
a5a7999666 Update mesh/task test references.
d7a6861f64 Update glslang/spirv-tools.
1e7e9fc32b Merge pull request #2015 from FrankXie05/vcpkg-instructions
8553588895 Merge pull request #2014 from cdavis5e/msl-shader-output-fixup
064eaebe72 MSL: Add a mechanism to fix up shader outputs.
d206e54ece Add vcpkg installation instructions
210a800130 Merge pull request #2012 from KhronosGroup/mesh-shaders
4c345166dc GLSL: Implement task shaders.
5762617729 GLSL: Implement GL_EXT_mesh_shader.
6a73e68d30 Update glslang reference.
ec7b9b0ce7 Update SPIR-V headers.
9fcf62784b Merge pull request #2011 from KhronosGroup/roll-deps
d24f41f1d5 Update dependencies.
c93ee9261e Merge pull request #2005 from atyuwen/master
f40dba4919 GLSL: added an option to disable row-major-load workaround.
10f2aa77da Skip remapped vars in 'fixup_reserved_names'
9afa82e7b8 GLSL: disable row major load around on GLES.
33e19e86bf Don't rename remapped variables like 'gl_LastFragDepthARM'
61c603f3ba Merge pull request #1996 from KhronosGroup/fix-1993
bc3987e59a MSL: Fix various bugs with Ptr/U bitcasts.
c084973c67 Merge pull request #1995 from KhronosGroup/fix-1992
05bbcc2d09 Do not optimize OpCompositeInsert for hoisted temporaries.
a725d8fad1 Fix minor style nit from review.
1bc05ef735 Merge branch 'master' of https://github.com/gpx1000/SPIRV-Cross
a9cadd4982 Merged in cts-shared-composite-variables (pull request #1)
fc4a12fd4f MSL: Use a wrapper type for matrices in workgroup storage.
faea931de3 MSL: Also replace `bool` with `short` in structures.
0cccd0a65a Merge pull request #1986 from KhronosGroup/fix-1975
4dfac510ed Handle multiple breaks out of switches.
c24d5a7b90 Merge pull request #1985 from KhronosGroup/fix-1973
8ba0820c9d Merge pull request #1984 from KhronosGroup/fix-1972
095e9e5cee Merge pull request #1982 from RandomShaper/hlsl_subgroup_scan
be904dcc1e Handle collapsed loops similar to collapsed selections.
f7e98c39db Avoid detection of false loop variables.
cb4e310f43 Merge pull request #1983 from KhronosGroup/fix-1979
1fe470b199 HLSL: Implement GroupOperation(Inclusive/Exclusive)Scan.
06ca9accd7 HLSL: Add option to emit entry point name 1:1 instead of main().
d8d051381f Merge pull request #1970 from KhronosGroup/fix-1969
963fdfdf68 Handle PHI in collapsed switch constructs.
f46745095d Merge pull request #1965 from billhollings/msl-physical_storage_buffer
064a697b18 MSL: Fix implicit conversion precision build error.
4185acc70d MSL: Fixes from review for SPV_KHR_physical_storage_buffer extension.
78eb5043f9 MSL: Fixes from review for SPV_KHR_physical_storage_buffer extension.
e6925974d1 Merge pull request #1966 from fred-wang/macos-snprintf
9c44a97faa address more review comments
1310f5ba4d Keep using sprintf on windows.
99f8613847 Fix compilation errors with deprecated sprintf function
ba3e6ffe03 Merge pull request #1964 from sergmister/patch-1
52c7c2dab6 MSL: Add support for SPV_KHR_physical_storage_buffer extension.
1bba4d5137 Fix typo
99b59b3528 Merge pull request #1963 from KhronosGroup/convert-u-to-rtas-fix
e08e0cf28d GLSL: Handle forced temporary OpConvertUToAccelerationStructureKHR.
89b1c24bdc Merge pull request #1961 from RandomShaper/hlsl_more_bitcasts
d8c5e39436 HLSL: Implement bit casts between Half and UShort.
197a273fd4 Merge pull request #1959 from KhronosGroup/fix-1955-1956
df21a99d1a GLSL: Add more extension ladder fallbacks for unusual integer sizes.
a97bbc24c5 Merge pull request #1958 from KhronosGroup/fix-1957
cdafafe93b Merge pull request #1954 from vkaytsanov/patch-1
533aab00b6 GLSL: Add missing KHR barycentric references.
46e4b5a3c8 Fix control flow bug where we missed continue;
612de70b38 Fix missing function in README sample
50b4d5389b Merge pull request #1953 from KhronosGroup/bary-khr
e45d01c41f Emit KHR barycentrics if source enables the KHR extension.
0aedc7d128 Roll dependencies.
af223101c6 Merge pull request #1952 from KhronosGroup/fix-1944
c8ab790163 Merge pull request #1951 from KhronosGroup/fix-1950
88e583d062 GLSL: Add basic support for GL_EXT_shader_atomic_float.
1c88730e12 GLSL: Implement 1D texture emulation for ES.
3f855646f0 Merge pull request #1948 from iwubcode/gl_layer_hlsl
a6976d596a HLSL: fix BuiltInLayer to emit semantic 'SV_RenderTargetArrayIndex' instead of 'SV_RenderTargetIndex'
b3ff97d0fe Merge pull request #1946 from KhronosGroup/fix-1943
48d50fa911 Merge pull request #1945 from KhronosGroup/fix-1938
d08ce828f4 Promote Unreachable cases into break to avoid fallthrough.
4b9e60273c Add tests for OpCompositeInsert edge cases.
23662668dd Attempt more optimal codegen for OpCompositeInsert.
d0c8dc3045 Merge pull request #1942 from KhronosGroup/no-fetch-grad-workaround
a3c4177324 GLSL: Don't apply Grad LOD workarounds for fetch.
bfefb5f511 Merge pull request #1941 from KhronosGroup/fix-1934
832d469048 Merge pull request #1940 from KhronosGroup/fix-1935
05206005ca MSL: Potentially cast loaded Input variables.
92164d38d1 GLSL: Do not analyze precision for Undef variables.
940efca099 Merge pull request #1936 from KhronosGroup/rt-stage-cli
0b303aab16 Add --stage handling for ray tracing.
0c8a79b0b5 Merge pull request #1932 from KhronosGroup/fix-1868
7eb5ced2a0 Refactor out query for operation type/result IDs.
7a6c2da9aa GLSL: Handle more proper semantics for RelaxedPrecision.
d28136cc7a GLSL: Clean up some ways of querying decoration flags.
a9d23d7652 Merge pull request #1931 from EpicGames/fixes_hlsl
65431446f4 HLSL: Add missing BuiltInLayer to HLSL backend.
6ae7ddb92a Merge pull request #1930 from KhronosGroup/fix-1928
960edcd396 Merge pull request #1929 from KhronosGroup/fix-1925
10a7631d50 HLSL: Add more comprehensible reserved identifier list.
40b3053b4c Handle early reads from loop variables with initializers.
c52333b984 Merge pull request #1924 from stefalie/master
ee4ac5c2ce Merge pull request #1927 from billhollings/msl-interface-block-array-length-1
3bca246ad2 MSL: Emit interface block members of array length 1 as arrays instead of scalars.
089cf27119 remove newline at eof
56fd17f552 add qualifiers to reference reflect json output
05c9a14422 cli: display missing memory qualifiers for reflect and dump-resources
d7cae5e7cd Merge pull request #1917 from KhronosGroup/fix-1906
0500f9ed5d Merge pull request #1916 from KhronosGroup/fix-1910
d2a4f9842b GLSL: Support GL_EXT_debug_printf.
5b18fb1bcd MSL: Pass down global RayQuery object to leaf functions.
779138f39f Merge pull request #1914 from RandomShaper/hlsl_view_index
2ea1c9b642 HLSL: Implement ViewIndex.
6a67891418 Merge pull request #1909 from skkkksdkfak/primitive_id
54c00b69a4 Translate gl_PrimitiveID to SV_PrimitiveID.
0d4ce028bf Merge pull request #1903 from KhronosGroup/fix-1900
17c52990d5 MSL: Fix goofy bugs in ray query.
a3996eccf3 Merge pull request #1896 from Roy-AMD/fix-condition-issue
749be80389 Use types have same widths in loop condition.
44691aa975 Merge pull request #1899 from billhollings/forward-volatile-vars-except-builtins
85f98eb0c5 Allow volatile vars that are not builtins to be forwarded.
d000b9e71c Merge pull request #1898 from KhronosGroup/pr-1859
191c57b6cc Merge pull request #1897 from KhronosGroup/fix-1763
a7eefbc114 HLSL: Disable FXC testing for rayquery shaders.
cd209ff46d HLSL: Update test from review.
c95338e03e Merge branch 'ray_query' of https://github.com/k-payl/SPIRV-Cross into pr-1859
7b9eaf0b5e MSL: Handle awkward mix and match of Offset / ArrayStride in constants.
251361bd6f VK_KHR_ray_query implementation
565db34cba Merge pull request #1892 from KhronosGroup/meta-lookup-cleanup
39bad2c1f9 Avoid redundant meta lookups in ParsedIR when setting member decorations.
d5c3bd8b5e Merge pull request #1890 from KhronosGroup/fix-1889
4ab5bbb4e5 Fixup names of anonymous inner structs.
0b51794f01 Merge pull request #1888 from KhronosGroup/msl-ib-variable-name-alias-fix
1ec9d018fd MSL: Handle aliased variable names for resources placed in IB struct.
213c5f42ea MSL: Fix minor nits.
4ec1fb0aa9 Merge pull request #1887 from billhollings/msl-use-var-name-for-flattened-interface-struct-members
0c0fd98322 MSL: Use var name instead of var-type name for flattened interface members.
3915c37bb1 Merge branch 'fixup_gl_helper_invocation' of https://github.com/RandomShaper/SPIRV-Cross
c4f9e4fde9 HLSL: Fix Helper Invocation wrongly allowed in compute.
a1803778c2 Merge pull request #1885 from KhronosGroup/helper-invocation-rework
b192b8887a MSL: Consider that gl_IsHelperInvocation can be Volatile.
15d29f00e2 Add test for SPIR-V 1.6 Volatile HelperInvocation.
93b0dc7718 Consider Volatile in should_forward().
476b6541fa Remove forwardable bit in SPIRVariable.
5d9fc2d903 HLSL: Add test for HelperInvocation.
005c14ad6a HLSL: Implement HelperInvocationEXT.
75224c6c7c Merge branch 'gl_helper_invocation' of https://github.com/RandomShaper/SPIRV-Cross
278a4c80ed HLSL: Add support for gl_HelperInvocation
6c7a40822f Merge pull request #1881 from KhronosGroup/relax-nan-checks
31be74a853 Add relax_nan_checks options.
b91ecf6077 Merge pull request #1880 from KhronosGroup/fix-1879
2ce1e5c140 Merge pull request #1878 from mysterymath/move
dc62cc792b Handle OpTerminateInvocation.
2a7f436135 Merge branch 'msl-add-nested-structs-to-io-blocks-squash'
7b594c125e Fix formatting nits from review.
bb4ced0280 MSL: Document clarification of location incrementing.
02d588b7e4 MSL: Fix var names in test shaders to avoid reserved identifiers.
3bb3b22b34 MSL: Non-functional fixes from PR code review.
3d4daab29d MSL: Support input/output blocks containing nested struct arrays
44c3333a1c Qualify std::move.
d16183d1d2 Merge pull request #1873 from KhronosGroup/fix-1861
02440e85cf Merge pull request #1872 from KhronosGroup/fix-1867
7af0a5f820 HLSL: Do not emit VPOS fixup unless position is active.
5555f2784b MSL: Refactor and fix use of quadgroup vs simdgroup.
a569680406 Merge pull request #1870 from abrachet/master
0eda71c409 Qualify move as std::move
c08ee860c8 Merge pull request #1869 from xndcn/msl
1b5c406a3d MSL: append entry point args to local variable names to avoid conflicts
188dc8b13c Merge pull request #1862 from flokart-world/feature/flatten-ubo-for-hlsl
64e058aa9b Merge pull request #1863 from KhronosGroup/various-fixes
ed4ded040e HLSL: Make --flatten-ubo work correctly
a56b22bf4e Add more scenarios where we can guarantee forward progress.
c716a9a5dd Add debug option to modify maximum number of compile iterations.
29cc18988c Fix regression from adding 64-bit switch support.
339e61a0e0 Do not emit hoisted access chain temporaries unless backend supports it.
5d9a95370f GLSL: Ensure correct signed integer type for more texture functions.
131278458e Merge pull request #1860 from KhronosGroup/docs-update
a8016a6470 Update documentation for descriptor set support in MSL/HLSL.
1a36968e5d [Spirv_msl] Fix normalize on half3/half2 (#1856)
53d94a982e Merge pull request #1852 from KhronosGroup/fix-1850
5a29181b35 Merge pull request #1851 from KhronosGroup/fix-1835
5b952d2cbf MSL: Rethink how opaque descriptors are passed to leaf functions.
ac46140ba3 Test aliased names in declared LUTs.
48b5a9069f Handle aliased names in spec constants.
08d5f5ed18 Merge pull request #1849 from KhronosGroup/fix-1844
9b25581d49 MSL: Handle constant construct of block-like array types.
79b13813c6 Merge pull request #1848 from KhronosGroup/fix-1843
5a5be7f9b9 MSL: Handle signed atomic min/max.
7dd974b9db Merge pull request #1847 from KhronosGroup/fix-1775
e940577fba Merge pull request #1846 from KhronosGroup/fix-1760
1d13a3e36a Rework how loop iteration counts are validated.
ef6bde6580 Do not forward expressions which carry a huge amount of dependencies.
a1bb29ccbb Merge pull request #1845 from KhronosGroup/pr-1842-fix
017cdfe25b Update references for GL_EXT_texture_buffer.
4407c0dd14 fix: GL_EXT_texture_buffer is more common than GL_OES_texture_buffer
fe5a0aa72f Merge pull request #1839 from KhronosGroup/spv1.6
e8b30cc31d Merge pull request #1838 from KhronosGroup/fix-1811
7c12228359 Add sanity test for SPIR-V 1.6 modules.
7c83fc22fa Add support for LocalSizeId.
35bb328443 Test: Add --allow-localsizeid flag for spirv-val.
eadca962c8 Merge pull request #1837 from KhronosGroup/roll-deps
a10d72e3b1 Merge pull request #1834 from chirsz-ever/chirsz/fix-msl-copy-array
fe8848a6f2 Roll dependencies.
9c0b74f73b Merge pull request #1836 from KhronosGroup/pr-1824-fixup
be333e0cab MSL: Move float2->3 TessCoord fixup to a better location.
2793d22af5 Merge branch 'master' of git://github.com/cfnptr/SPIRV-Cross
e0ae55d5e2 Merge pull request #1822 from etra0/add-diff
55a0291ce5 Merge pull request #1817 from etra0/fix-1784
90c252274d MSL: Allow copy array from UniformConstant storage
2acf0e73dd Fix gl_TessCoord arguments presence. Update reference shaders.
a66984072b Fix incorrect MSL gl_TessCoord variable type
2bb051206b test_shaders: Add the option to generate diff instead.
905b8244e7 Clamp vector element access to vector size.
e9cc640334 Merge pull request #1815 from etra0/fix-1768
25868923da Merge pull request #1819 from sindney/master
6d8302ef14 MSL: Add 64 bit switch support
4b0584ce70 ESSL: Vertex shader input doesn't support array types.
37dfb3f45f Merge pull request #1794 from etra0/master
5345051a85 Removed tracking of OpConstant and OpPhi.
7c3cb0b12c Merge pull request #1810 from billhollings/early-frag-tests-depth-out
248e9ae9ed MSL: Don't output depth and stencil values with explicit early fragment tests.
75e3752273 Added block.cases_32bit and reworked the cases fix
401296d3b8 Merge pull request #1808 from billhollings/depth-img-vs-depth-cmp
03f678dec4 Cast the switch selector in GLSL to uint32_t
fd252b21ff Separate (partially) the tracking of depth images from depth compare ops.
48046646ee Fixed wrong condition and formatting.
2e0fb3a778 Merge pull request #1807 from KhronosGroup/fix-1801
f1b411c9e8 GLSL: Deal with buffer_reference_align.
1adc53b107 Merge pull request #1806 from KhronosGroup/fix-1777
21a15b90e5 Merge pull request #1804 from KhronosGroup/fix-1759
2714f5410c CFG: Handle degenerate selection constructs.
e40d19bdbf MSL: Handle non-thread storage class in Modf/Frexp pointer versions.
f1d4aff85e Merge pull request #1805 from KhronosGroup/fix-1776
2c53d30664 Merge pull request #1803 from KhronosGroup/fix-1802
4561ecddbd Handle Modf/Frexp in more cases.
d295c2a046 Merge pull request #1800 from EddeDev/master
849978653a Merge pull request #1798 from billhollings/tess-output-clip
05e8e5a953 Correctly reflect declared buffer size for out of order members.
4dcf64a99b Fixed potential compilation error in spirv_cross_containers.hpp
250a02967d Removed unnecessary tracking of types.
4ebd56bf9e MSL: Correctly emit user(clip/cullN) for clip/cull builtins in tess output struct.
f099d714f3 Removing logic in the parser
04293e03fd Merge pull request #1797 from KhronosGroup/clone-protocol
0d03516382 Always use https protocol when cloning external test deps.
061397e32e Merge pull request #1792 from billhollings/uniform-struct-packing-nested
3eb5532979 Add 64 bit support for OpSwitch
be812c45e5 MSL: Remove over-zealous check for struct packing compatibility.
66adba17a8 Merge pull request #1791 from billhollings/msl-out-of-order-struct-offsets
76cb807c19 MSL: Fix type redirection when struct members are reordered to align with offsets.
29632959d2 Merge pull request #1787 from KhronosGroup/fix-1786
edf247fb1c MSL: Workaround compiler crashes when using threadgroup bool.
43eecb2360 SPIRV-Cross contribution needed for `INTEL_fragment_shader_ordering`
94dea2507e Merge pull request #1769 from audulus/spm2
f5219f47c3 Add Package.swift.
2a56c2bc04 Merge pull request #1783 from billhollings/more-unpacked-vectors
ab640bc3d3 Merge pull request #1782 from KhronosGroup/fix-1781
974a0818b8 MSL: Support more usecases for unpacked vectors.
2b5e17eca5 MSL: Never used templated array for RayQuery objects.
bc338710e1 MSL: Remove some redundant breaks.
5afb3d313f MSL: Fix some trivial bugs not caught by CI when adding ray query.
345a7d171c Merge pull request #1773 from congyue1977/master
2895a43274 Fix unsupported exceptions for ConvertUToAccelerationStructure & BindingTableRecordOffset.
d52ec1e196 Fix all requested changes, test_shaders.py supports compiling MSL 2.4 shaders, and the Intersection Query currently only supports MSL 2.4 on the iOS platform.
6d13c99273 Merge pull request #1780 from billhollings/out-of-bounds-swizzle-fix
595eb0c21d Per spec, support undefined behavior for out-of-bounds swizzles.
597f29d09d Support Metal 2.4 Intersection Query, Implement GL_EXT_ray_query.
e4243b898c Merge pull request #1766 from KhronosGroup/fix-1765
6382f15470 Test behavior around OpSelect with matrices.
6071df5840 Fix wrong detection of trivial_mix_op.
97a438d214 Merge pull request #1757 from KhronosGroup/fix-1754
f72bb3c6f5 Improve handling of INT_MIN/INT64_MIN literals.
457c00bd07 Merge pull request #1756 from KhronosGroup/fix-1753
91c25e8473 Merge pull request #1755 from KhronosGroup/fix-1751
9b2a8c7622 HLSL: Ensure synthetic NumWorkgroups variable is considered active.
bb04156d3c CLI/HLSL: Don't set explicit binding for synthesized NumWorkgroups CBV.
96d95fbb31 MSVC: Workaround crtdbg macroing free().
9462b90067 Merge pull request #1752 from billhollings/function-constants-opquantize
325f107c5b Merge pull request #1745 from billhollings/location-component-vecsize
ec054dad7f MSL: Support synthetic functions in function constants.
dee35bf3ce Merge pull request #1749 from billhollings/fastmath-quantize
ba66a91402 MSL: Use vec<T, n> in template SpvHalfTypeSelector for function spvQuantizeToF16().
a2671e35b0 MSL: Consolidate spvQuantizeToF16() functions into a single template function.
5742047b24 MSL: Honor infinities in OpQuantizeToF16 when compiling using fast-math.
05ac99ae23 Merge pull request #1748 from billhollings/fastmath-nocontraction
fb3defc9ef MSL: Honor DecorationNoContraction when compiling using fast-math.
548a23da34 MSL: Track location component to match vecsize between shader stages.
fe1af2ae72 Merge pull request #1747 from KhronosGroup/ci-fix
d579444a82 Merge pull request #1744 from billhollings/location-attribute-fix
6628e10fc6 Merge pull request #1746 from billhollings/fast-math-per-vulkan
3ca99bbbcc Remove tests for Ubuntu 16.04.
0f12557695 Remove obsolete Travis CI YML.
40141ffddf MSL: Selectively enable fast-math in MSL code to match Vulkan CTS results.
86dfac12c8 MSL: Fix location and component variable matching between shader stages.
b81334a513 Merge pull request #1738 from billhollings/return-value-after-discard-terminator
2a150f5a2f MSL: Add explanatory comment requested in PR review.
35e92e6ffb MSL: Return fragment function value even when last SPIR-V Op is discard (OpKill).
c2500e504d Merge pull request #1735 from billhollings/add-const-op-exprs
472f9d4f6d Add tests for OpSpecConstantOp ops OpQuantizeToF16 and OpSRem.
5fb1ca4f0d Add support for additional ops in OpSpecConstantOp.
51d8e7be94 Merge pull request #1734 from KhronosGroup/buffer-reference-uvec2
b8f1e71907 GLSL: Emit GL_EXT_buffer_reference_uvec2 as required.
d6fe75df10 Merge pull request #1732 from KhronosGroup/fix-1731
23c4480d8e Fix switch fallthrough case in some cases.
0e2880ab99 Merge pull request #1729 from KhronosGroup/fix-1726
2eea6a579b MSL: Consider that function/private variables can be block-like.
840d4483bc Merge pull request #1728 from KhronosGroup/fix-1727
5b0cafb416 Track temporary access for OpArrayLength result.
c062b6b852 Merge pull request #1725 from billhollings/fix-duplicate-glposition
fad1590786 Merge pull request #1722 from billhollings/row-maj-mtx-store-from-const
27e7abeab1 Merge pull request #1724 from billhollings/msl-const-expr-casting
e76fcf9309 MSL: Add test for fixes to MSL constant expression type down-casting.
3105e82b2e MSL: Fix duplicate gl_Position outputs when gl_Position defined but unused.
a75fe07546 MSL: Fix casting in constant expressions with different sizes.
9552ca5473 MSL: Support row-major transpose when storing matrix from constant RHS matrix.
bab4e5911b Merge pull request #1716 from KhronosGroup/terminator-access-fix
cb613eb675 Handle value access in terminators.
1964799fba Merge pull request #1715 from KhronosGroup/precise-fp16-fp64
ac11a91792 GLSL: Emit precise for fp16/fp64 types as well.
cd22336a38 Merge pull request #1712 from cdavis5e/msl-subgroup-ballot-simplify
03ad13bae6 MSL: Simplify spvSubgroupBallot().
18f3cd6810 GLSL: Ensure ray query object decls are flushed if allocated in Function.
e51630595f Merge pull request #1711 from KhronosGroup/fix-1690
5b227cc57c GLSL: Implement GL_EXT_ray_query.
6196e3b029 MSL: Remove redundant path for SampleMask.
2fcbef398c Merge pull request #1709 from billhollings/fix-sample-mask-in
fe08bf4af4 Remove EXPERIMENTAL from JSON reflection backend.
ebb5098def MSL: Adjust gl_SampleMaskIn for sample-shading and/or fixed sample mask.
be3988b13c Merge pull request #1706 from SpaceIm/fix/ios-bundle
a70ce5192e Merge pull request #1708 from KhronosGroup/fix-interpolant-access-chain
71b83a18f4 MSL: Add test for scalar access chain pull interpolant.
d42c0b2e08 Merge pull request #1707 from billhollings/fix-interpolant-access-chain
3e04eee491 MSL: Fix setting SPIRVCrossDecorationInterpolantComponentExpr decoration.
d74eaabde0 fix cross-build to iOS/tvOS/watchOS
1ae2b58f19 Merge pull request #1700 from pkasting/master
bf746bd680 Merge pull request #1699 from KhronosGroup/pervertexnv
7cdab07efe Fix -Wunreachable-code-aggressive.
206ee8f171 GLSL: Support pervertexNV in NV barycentric extension.
c5b8022e61 Merge pull request #1669 from KhronosGroup/1560-reuse1
54882ad16d Add GLSL.std.450.h to REUSE.
3781d49d7c .gitignore ignored new license text
c862f8d22d Actually checkout repo into new reuse job
f2a65545b8 Finish adding SPDX tags and setup a reuse checked in Github Actions CI
2ceca64004 Add missing copyright headers.
853e84e8bf Merge pull request #1698 from KhronosGroup/fix-1691
d6b29ab017 HLSL: Rewrite how block IO is emitted.
9338996f3b Merge pull request #1697 from KhronosGroup/fix-1693
3149095585 Merge pull request #1696 from KhronosGroup/fix-1694
d75666b170 GLSL: Emit num_views for OVR_multiview2.
8216e87f02 Handle SPIR-V 1.4 selection constructs.
9cdeefb5e3 Merge pull request #1692 from Kangz/fix_default_copy_dtor
6a85c695cc Fix IVariant -Wdeprecated-copy-with-dtor
2e1b5fb39e Merge pull request #1686 from KhronosGroup/fix-1684
fa42f1ce34 Merge pull request #1685 from KhronosGroup/fix-1683
449f68ef3b Ensure loop control flow hints only appear above loops.
d62b3c2b92 GLSL: Implement control flow hints.
165dbff228 Handle odd type for textureGather component.
585fc6f3cb MSL: Always enable support for base vertex/index on iOS.
a6ce49ca24 Merge pull request #1680 from xndcn/cc
02fb8f2a24 Add comment after inf/nan float number for clarifying.
ff61890722 Merge pull request #1679 from okuoku/fix-c-sample-code
38c6ef1d56 Fix C sample code in README.md
faec1a8643 Merge pull request #1678 from KhronosGroup/fix-1674
9ea0e8b859 Merge pull request #1677 from KhronosGroup/fix-1673
c87cb54499 MSL: Add CLI option for sampler suffix.
bf3793dd35 MSL: Improve handling of split tessellation access chains.
a6c9514856 Merge pull request #1676 from KhronosGroup/fix-1671
0214990e7c Merge pull request #1675 from KhronosGroup/fix-1670
26a4986009 GLSL: Implement noncoherent framebuffer fetch.
99ae0d32e9 MSL: Handle array with component when we cannot rely on user() attrib.
a64ddcdd49 MSL: Handle array of IO variable with Component decoration.
418542eaef Merge pull request #1668 from KhronosGroup/fix-1665
b8115ffbe0 HLSL: Implement invariant as precise.
e47a30e807 Honor NoContraction qualifier.
0eeaffe048 Merge branch '16-bit-int-types-glsl'
6dbab0df47 Update reference output.
0408c592dd Fixed 16 bit int types
72a2ec4c1b MSL: Fix '--msl-multi-patch-workgroup' out of bounds reads when dispatching more threads than control points (#1662)
995c7981cc Merge pull request #1663 from billhollings/metal-arg-buff-padding-patch
098cdd64f6 MSL: Padding for Metal argument buffers should not double-count SampledImages.
c624d5387c Merge pull request #1660 from KhronosGroup/fix-1658
82a77e534e MSL: Use proper array for quad tess levels.
b38e3b4a47 Merge pull request #1661 from KhronosGroup/fix-1659
0e963c62b6 HLSL: Support Shuffle wave ops.
bbcef69a45 Merge pull request #1657 from KhronosGroup/fix-1607
532f65583e Rewrite how non-uniform qualifiers are handled.
d137abeef5 Merge pull request #1655 from KhronosGroup/fix-1640
8e24e0b224 Merge pull request #1654 from KhronosGroup/fix-1641
71eb1754e3 Merge pull request #1653 from KhronosGroup/fix-1638
2cbc7f0f37 Merge pull request #1652 from KhronosGroup/fix-1644
b084f639cb Merge pull request #1651 from KhronosGroup/fix-1645
c89b5a1a3f GLSL: Support shading rate builtins.
3fd148450a GLSL: Implement gl_FragFullyCoveredNV.
f93a8fb1fe GLSL: Support GL_EXT_shader_image_load_formatted.
90c70e6605 MSL: Handle variable access in OpSelect.
96ba044f01 HLSL: Fix automatic location assignment in block IO.
3cb8e7c223 Merge pull request #1643 from KhronosGroup/fix-1639
ae9ca7d73c MSL: Fix copy of arrays to/from stage IO variables.
986196030d MSL: Don't use native arrays for tess level inputs.
4a379a00f3 MSL: Don't emit native array for masked clip/cull distance.
406af8ff4d c: Add C API for builtin stage IO reflection.
b4a380a04c Support reflecting builtins.
852f2da63c Check SPIR-V 1.4 rules when reflecting resources.
682a227f4b MSL: Make builtin argument type declaration context sensitive.
c1edd35d57 MSL: Use spvUnsafeArray for builtin arrays after all.
7b9a591aa7 MSL: Hoist out to_tesc_invocation_id() in more places.
75ed73818c MSL: Handle loading Clip/CullDistance in TESE.
a159334895 MSL: Correctly analyze if builtin block is active.
cea934c03f MSL: Test that we can capture cull distance to buffer.
5826298697 MSL: Handle CullDistance better.
23da445bd4 MSL: Emit multiple threadgroup slices for multi-patch.
b442500204 MSL: Unroll initializations of CullDistance/ClipDistance control points.
c9946296dd MSL: Fix initialization of masked threadgroup variables.
ee85bb345e Fix print_help comment.
faf80b08fc MSL: Don't report fallback location allocations as being "used".
adc5fe3615 C: Add C api for stage output masking.
5e9c2d060e MSL: Cleanup fallback IO block emission.
e32c474911 MSL: Handle masking of TESC IO block members.
dc54f75eec MSL: Fixup gl_PerVertex names if we're emitting masked builtins.
40f628f49c MSL: Add test for complex control point outputs.
46c48ee6b5 MSL: Rewrite how IO blocks are emitted in multi-patch mode.
425e968720 MSL: Handle flattening of patch block outputs as well.
8e2dbe0d38 MSL: Do not declare patch variables on stack.
ff3f5bcba5 MSL: Handle masking of builtin control points.
6ecdd64a91 MSL: Emit a masked builtin IO block if necessary.
436b1250da MSL: Do not perform scalar fixups for control-point outputs.
22c9b63e78 MSL: Fix argument_decl check for builtin.
c635c35c12 MSL: Temporarily allow empty output struct.
a59e25db18 MSL: Small refactors.
74b2acab9b MSL: Always emit block variable for block types.
ae7bb41ef4 MSL: Test that we can mask location writes in TESC.
3255d6cef0 MSL: Explicitly only consider masked variables to be thread-group-like.
ba93b6518d MSL: Fix masking of vertex block outputs.
a393de31e6 MSL: Refactor out variable/block member masking.
857295a9ab MSL: Add tests for masking with --for-tess.
43b6ea2c9a MSL: Remove position mask tests. They will fail compilation.
e7b37392bf MSL: Emit correct address space for masked arguments.
65b5ff7ece MSL: Don't emit weird reference type for spvUnsafeArray types.
e7824c8b6e MSL: Handle masked outputs in extract_global_variables.
50a6bc058a MSL: Force builtin arrays for builtin array types.
88b54f5dab MSL: Add tests for vertex output masking.
394c038bfd MSL: Do not consider effective storage for any composite.
04988b89b9 MSL: Handle effective storage for masked CP outputs.
f2b5fb3f45 MSL: Emit threadgroup storage class for masked control point outputs.
ea91579a7f MSL: Do not redirect tess access chains on masked outputs.
9c1cadd440 Add --mask-stage-output-* CLI options.
f682e89188 MSL: Correctly emit array type for masked outputs.
2a2d57df13 MSL: Sketch out API to aid LTO-style optimization.
9a144bb2b9 Clean up member sorting.
0997e81118 MSL: Sort builtin IO block members by builtin type.
b4aa6dacfa MSVC: Add /bigobj for debug builds.
45818c14e4 Merge pull request #1648 from billhollings/msl-pad-arg-buff-structs
b3bfe22eaa MSL: Fixes to support padding Metal argument buffer entries based on argument index.
daba0dfba6 MSL: Fixes to support padding Metal argument buffer entries based on argument index.
9060e5a13c MSL: Fixes to support padding Metal argument buffer entries based on argument index.
9866cf4496 MSL: Fixes to support padding Metal argument buffer entries based on argument index.
6c0e11f907 Merge branch 'master' of https://github.com/billhollings/SPIRV-Cross into msl-pad-arg-buff-structs
582749ac68 Merge pull request #1650 from Dredhog/active-builtins-c-api
edde535574 c: Remove SPVC_PUBLIC_API prefix from API implementation
215f31b33f c: Add missing API to query active builtins.
17dab614dc MSL: Support padding Metal argument buffer entries based on argument index.
d2e1e7ba98 Fix Github CI in PRs.
28ae7b8f35 Merge pull request #1642 from mehmetoguzderin/msl-long-ulong-member
e2f7a753d2 Move condition to default block
0a0c9db9be MSL: Support long ulong types in buffers in 2.3+.
84d1f8aa2a Use Github actions CI tag.
2e000a0be4 Add GitHub Actions script.
60aa24566e Merge pull request #1633 from KhronosGroup/fix-1626
ee31e84e30 GLSL: Handle complex load/store scenarios to gl_SampleMask.
fb1f295aaf Merge pull request #1635 from KhronosGroup/fix-1627
5d846acee5 Merge pull request #1634 from KhronosGroup/fix-1625
0ac70fa7ca Merge pull request #1632 from KhronosGroup/fix-1629
4ca06c7278 Handle edge cases in OpCopyMemory.
aea6d29aa8 MSL: Add test for logical subgroup arith ops.
d6c2c1b39a HLSL: Support logical subgroup ops.
5570043af3 GLSL: Add support for Logical subgroup ops.
bc4cb1b3c5 Throw if SPIR-V module has no entry points.
d57ab68a21 Merge pull request #1630 from KhronosGroup/fix-1628
97796e0609 MSL: Deal with pointer-to-pointer qualifier ordering.
621884d709 Merge pull request #1622 from KhronosGroup/fix-1619
da238e5f12 Merge pull request #1623 from phuang/patch-2
c66a571057 Add two missing source files
b1e36a1f78 Merge pull request #1621 from KhronosGroup/fix-1618
85704f70bc MSL: Handle load and store to TessLevel array in TESC.
ce552f4f91 MSL: Gracefully assign automatic input locations to builtin attributes.
aa271c1460 MSL: Refactor out location consumption count computation.
6f1f6775f3 Add comment where aux image atomic buffers are reflected from.
92d379bab4 Merge pull request #1620 from phuang/patch-1
bc3416a18f Fix build errors on Windows
bae17e8204 Merge pull request #1617 from KhronosGroup/fix-1608
5789e3eed9 Merge pull request #1616 from KhronosGroup/fix-1609
daddbd4078 MSL: Fixup type when using tessellation levels in TESC functions.
0ad12a0036 MSL: Always return [[position]] when required.
05a1a07f70 Merge pull request #1615 from KhronosGroup/fix-1612
09dc76f68a c: Add missing IOS_SUPPORT_BASE_VERTEX_INSTANCE option.
8f5ab50fb8 Merge pull request #1614 from KhronosGroup/fix-1610
21a931613e HLSL: Add vector to illegal names list.
4741bbaa64 Merge pull request #1606 from billhollings/position-invariance
8e03cb60a5 Expose position invariance.
84a41cd488 Merge pull request #1603 from KhronosGroup/small-improvements
ea02a0c03a Check entry point variables in is_hidden_variables.
4bedad3860 Handle nonuniformEXT qualifier for acceleration structures.
7ab3f3f74e Deal better with CompositeExtract from constant composite.
66fb0bd9df GLSL: Handle tracing against incoming payload/callable.
9acb9ec31f Merge pull request #1594 from KhronosGroup/fix-1591
a5eaf2f44a Merge pull request #1595 from KhronosGroup/copyright-update
4704482bbc meta: Update copyright headers to 2021.
4c866e4662 Fix pathological complexity explosion for certain shaders.
820179bf46 Merge pull request #1590 from KhronosGroup/fix-1584
2097c30985 GLSL: Support both SPV_KHR_ray_tracing and NV_ray_tracing.
702c903f98 Merge pull request #1589 from KhronosGroup/roll-deps
ce18d1b8a5 CLI: Fix silly regression with handling of -V.
5d82d32e0f Roll dependencies.
0e5078dc0c Merge pull request #1588 from KhronosGroup/fix-1582
893a011299 MSL: Fix various bugs with framebuffer fetch on macOS and argument buffers.
3136e34215 MSL: Always use input_attachment_index for framebuffer fetch binding.
134a520034 Merge pull request #1587 from KhronosGroup/refactor-active-variable-consideration
03ee71e86c Add test for pure initializer gl_FragDepth.
3776d8978c GLSL: Force block declaration if clip/cull is used in tesc.
014b3bc5ea MSL: Make sure initialized output builtins are considered active.
a4a9b53b5b MSL: Always enable Outputs in vertex stages.
fa76d01203 MSL: Only consider builtin variables if they are part of IO interface.
c8837d7d80 MSL: Very slight refactor.
234c65c0f3 Merge pull request #1585 from KhronosGroup/fix-1569
72e9f619a9 Merge pull request #1583 from KhronosGroup/fix-1567
42ec132357 Merge pull request #1581 from KhronosGroup/fix-1554
c033a93951 GLSL: Fix -Wshadow error.
1a28a04333 GLSL: Update SPIR-V headers for modified ray tracing opcodes.
02b7f9cbe9 CLI: Add stdin support.
efed4c9738 MSL: Fix initializer for tess level outputs.
ab9200ffdf MSL: Don't flatten builtin arrays unless they're part of IO interface.
df4f8ef8fe MSL: Emit correct initializer for tessellation control points.
ad3e1584f9 MSL: Handle initializers for tess levels.
39fee93906 GLSL: Refactor out Output variable initialization.
6a3ea0385e GLSL: Add test for initializing tess level output.
175381fe08 GLSL: Handle some extreme edge cases in Output variable initialization.
7b7a21c405 Merge pull request #1578 from KhronosGroup/fix-1568
1a38fec382 Minor redundant nit.
a1c784f002 More robust handling of initialized output builtin variables.
9a304fe931 Handle output IO block initializers more robustly.
49ab12919c Merge pull request #1577 from KhronosGroup/fix-1574
3514c9ff33 Merge pull request #1576 from KhronosGroup/fix-1571
3a85d1c80c CMake: Disable compiler extensions explicitly.
ddb3c65648 Handle reserved identifiers for functions.
c4ff129fe3 MSL: Handle reserved identifiers for entry point.
e50f7d1ce8 Merge pull request #1566 from KhronosGroup/subgroup-table-fix
c8765a75f2 GLSL: Fix KHR subgroup extension table for subgroups.
762c3082ae Merge pull request #1564 from KhronosGroup/fix-1558
1eb42eb18c Merge pull request #1563 from KhronosGroup/fix-1559
a11c4780d0 GLSL: Emit nonuniformEXT in correct place for late-combined samplers.
dc940846d7 GLSL/HLSL: Disallow VariablePointers capability outright.
6d10da0224 Merge pull request #1553 from comex/no-subgroups-in-vertex-shaders
f41b59b36e Merge pull request #1557 from KhronosGroup/mit-dual-license-api
cf1e9e0643 Add MIT dual license for the SPIRV-Cross API.
0b79db773f Merge branch 'master' of git://github.com/js6i/SPIRV-Cross
c09a65c12d MSL: Added fmin3 and fmax3 library functions to the illegal name list.
5a85fa9400 msl: Don't try to use [[thread_index_in_simdgroup]] in vertex shaders.
be527632a6 Merge branch 'unused' of git://github.com/comex/SPIRV-Cross
c80cbde7aa spirv_msl: Don't add fixup hooks for builtin variables if they're unused.
3d16060c32 Merge pull request #1551 from cdavis5e/msl-subgroup-inactive-ballot-mask
1e67b21ee9 MSL: Don't mask off inactive bits in ballot masks.
1f178be3c9 Merge branch 'msl-sample-rate-position' of git://github.com/cdavis5e/SPIRV-Cross
fd738e3387 MSL: Adjust FragCoord for sample-rate shading.
782916a797 Merge pull request #1549 from KhronosGroup/various-fixes
e07f0a9df5 GLSL: Fix buffer_reference with aliased names.
c5826b4b69 GLSL: Emit storage qualifiers for buffer_reference.
650b5e1b12 HLSL: Fix validation with FXC for test.
6a614cc7f7 Normalize all internal workaround methods to use spv prefix.
35d3b9c3e7 Merge branch 'msl-subgroup-ops-2' of git://github.com/cdavis5e/SPIRV-Cross
dabdf4eff6 Merge pull request #1547 from scribam/cmake-minimum-required
1eb4852856 CMake: Set minimum required version to 3.0
68908355a9 MSL: Expand subgroup support.
58291963c6 Merge branch 'glsl-vertex-attrib-64bit' of git://github.com/rdb/SPIRV-Cross
df5e3730ca GLSL: Require GL_ARB_vertex_attrib_64bit for double input in pre-4.10
b3c59263a0 Merge pull request #1541 from cdavis5e/msl-ios-features
88e25e60ec MSL: Expose some more features on iOS.
1ee2d13873 MSL: Add missing reference file.
ef0256c23e Fix switch fallthrough
0d6fad4ab9 Merge branch 'extract_subgroup_ops' of git://github.com/js6i/SPIRV-Cross
9c2c0a23b9 Merge pull request #1533 from rdb/texture-fetch-size-fallbacks
10fa5f62aa GLSL: Legacy / extension fallbacks for textureSize and texelFetch
f0239bce05 MSL: extract global variables from subgroup ballot operations
6fc2a0581a Run format_all.sh.
71fcf0d9e6 Update texture gather test result.
008f3baad7 Merge branch 'arb-texture-gather' of git://github.com/rdb/SPIRV-Cross
46bf1e99d6 Merge pull request #1525 from cdavis5e/msl-interpolation-functions
509908d8db GLSL: Add error checking and extension fallback for textureGather
683c3f5c3f Merge pull request #1530 from rdb/legacy-glsl-round
ea334c14bc Merge pull request #1527 from rdb/legacy-transpose
2417010046 Merge pull request #1528 from rdb/fix-legacy-vertex-shader-lod
1648747fa7 Merge pull request #1529 from KhronosGroup/fix-msl-gather-regression
b3bd674aa7 GLSL: Remove unused `lod` argument from legacy_tex_op()
bf71994dae GLSL: implement transpose() in GLSL 1.10 / ES 1.00
9e6e5d2738 GLSL: Fix round/roundEven for legacy GLSL.
e8c500ceef GLSL: Fix support for textureLod in legacy vertex shaders
db13762297 MSL: Fix regression in image gather handling.
aca9b6879a MSL: Support pull-model interpolation on MSL 2.3+.
a20c768698 Merge pull request #1524 from rdb/hlsl-round-even
854f566869 HLSL: Support roundEven() in HLSL SM 4.0 and above
2e1bdeb212 Merge pull request #1520 from rdb/dx9-dref-samplers
135933d59e HLSL: Add regression test for SM3.0 texture samplers
18893ba3b9 HLSL: Support depth comparison texture sampling in SM 2/3.
fc644b50e6 Merge pull request #1523 from KhronosGroup/fix-1512
512e851185 Merge pull request #1522 from KhronosGroup/fix-1510
b3344174f7 HLSL: Add option to flatten matrix vertex input semantics.
1f018b0fb8 Parser: Don't assume OpTypePointer will always take a SPIRType.
244839d350 Merge pull request #1516 from billhollings/VK_EXT_descriptor_indexing
4bdd49df3f Syntax and format updates from code review.
c5a3f37a1c Merge pull request #1519 from cdavis5e/msl-mac-comparison-bias-grad
dcd66c283c Merge pull request #1521 from devshgraphicsprogramming/master
6402586015 Updated ref file for subgroups_basicvoteballot.vk.comp
9a1af25f02 Merge pull request #2 from KhronosGroup/master
6c5f394b09 Fix some bad assumptions about emulating `subgroupBarrier`
7f67abe0fe Minor format and typo updates from code review.
547c29f7bb MSL: Allow Bias and Grad arguments with comparison on Mac in MSL 2.3.
8884b34940 Merge pull request #1517 from atyuwen/master
303f813166 Merge pull request #1518 from KhronosGroup/fix-nonuniform-bracket-handling
439b666829 GLSL: Fix nonuniformEXT injection.
871a023877 fixed compile error with -std=c++20
541a801fed Merge pull request #1514 from cdavis5e/msl-mac-framebuffer-fetch
c8a43876c7 added metal keyworld: "level" (#1501)
b7b0e804e5 MSL: Support run-time sized image and sampler arrays (GL_EXT_nonuniform_qualifier/SPV_EXT_descriptor_indexing).
c20d5945a2 MSL: Allow framebuffer fetch on Mac in MSL 2.3.
78c6d2d628 Merge pull request #1509 from cdavis5e/mac-post-depth-coverage
08e49bfd67 Merge pull request #1508 from KhronosGroup/fix-1507
346b0b6c21 Merge pull request #1493 from KhronosGroup/ubo-row-major-load-workaround
d48d2a95c7 MSL: Allow post-depth coverage on Mac in MSL 2.3.
542d460364 Handle case where block is loop header, continue AND break block.
e47561a28b GLSL: Support a workaround for loading row-major matrices.
5ae9153a78 Merge pull request #1505 from cdavis5e/msl-vertex-writes
1b6b9705e6 MSL: For 2.1+, don't disable rasterization for vertex writes.
1a95017d11 Merge pull request #1503 from KhronosGroup/travis-python-update
b3a74f3a22 Merge pull request #1504 from KhronosGroup/fix-1502
f65f259ab7 MSL: Do not use component::x gather for depth2d textures.
1d68cbfb1b Update TravisCI python reference.
dd35821f2f Merge pull request #1499 from cdavis5e/subgroup-fixes
1264e2705e MSL: Cast broadcast booleans to ushort.
065b5bda3c MSL: Mask ballots passed to Ballot bit ops.
781367d083 MSL: Support vectors with OpGroupNonUniformAllEqual.
6ccb902462 MSL: Correct definitions of subgroup ballot mask variables.
a57b4b1b2e Merge pull request #1498 from cdavis5e/msl-swizzle-arrayed-nonconstant
064ed448b9 MSL: Don't remove periods from swizzle buffer index exprs.
7b80307a7d Merge pull request #1495 from cdavis5e/1d-2d-offset-grad
5845e009ea MSL: Handle Offset and Grad operands for 1D-as-2D textures.
0db1569e97 Merge pull request #1492 from KhronosGroup/non-native-matrix-fix
9c220a8247 Merge pull request #1490 from KhronosGroup/fix-1488
23a0cfc842 Merge pull request #1494 from cdavis5e/msl-tesc-tess-level-cast
3e6010d8c5 MSL: Don't use a bitcast for tessellation levels in tesc shaders.
120af42616 GLSL: Use need_transpose when checking for non-native matrix.
bd1ee4344e MSL: Support querying and modifying generated combined sampler suffix.
7332b44c3c Merge pull request #1489 from cdavis5e/msl-fix-atomic-image-coord
21d38f74ce MSL: Fix calculation of atomic image buffer address.
e827a06984 Merge pull request #1487 from cdavis5e/msl-atomic-image-interlock
7a5d0d6b29 MSL: Add missing interlock handling to atomic image buffers.
fab6ad234e Merge pull request #1486 from cdavis5e/atomic-image-argument-buffer
cc7aabce72 Merge pull request #1485 from cdavis5e/msl23-demote-to-helper
9cafea6cf8 MSL: Support atomic access to images from argument buffers.
2219c4a392 MSL: Support SPV_EXT_demote_to_helper_invocation for MSL 2.3.
401af49326 Merge pull request #1482 from KhronosGroup/gl-subgroup-merge
5619329665 Style nits for GL subgroup implementation.
a6f6547cf1 Add missing VK variant of the test file.
28994a3186 Update GL subgroup test file.
819c599ecd Merge branch 'issues1350-2' of git://github.com/devshgraphicsprogramming/SPIRV-Cross into master
db52e277b9 Resolved issues 1350, 1351, 1352
5cc2e4f634 Merge pull request #1475 from KhronosGroup/fix-1474
e0c9aad934 GLSL: Add support for transform_feedback3 geometry streams.
7a99d1cb72 GLSL: Use literal array size for cull/clip array sizes.
e6f5ce6b89 Merge pull request #1471 from KhronosGroup/fix-1467
6254be910e Merge pull request #1470 from KhronosGroup/fix-1469
34a6a45fba Work around MSVC warning.
5ea576ece2 Allow flip_vert_y in all relevant stages.
ea3cd74426 Merge pull request #1468 from dj2/roll-09-22
9880b05572 Roll dependencies.
8891bd3512 Merge pull request #1466 from KhronosGroup/fix-1465
2144274a91 Clean up conditional branch codegen.
54cc0b01f6 Deal with case where a selection construct conditionally merges/breaks.
16d9fea77c Merge pull request #1463 from KhronosGroup/fix-1462
66afe8c499 Implement a simple evaluator of specialization constants.
bdbef7b1f3 Merge pull request #1461 from Kangz/fix-warnings
bcd71536e2 Fix -Wduplicate-enum and -Wrange-for-analysis.
ba2d0e17d3 Merge pull request #1460 from KhronosGroup/fix-1458
446596643a Roll glslang/SPIRV-Tools deps.
18d03b3ea6 Handle OpUndef %void.
bad9dab8df Merge pull request #1457 from cdavis5e/msl-layered-subpass-data
4cf840ee7b MSL: Support layered input attachments.
c7507e39d4 Merge pull request #1456 from KhronosGroup/fix-1455
3360daa6f3 MSL: Fix OpCompositeInsert and OpVectorInsertDynamic.
9e3dbdc8d6 Merge pull request #1454 from cdavis5e/msl-multiview-non-layered
cab7335e64 MSL: Don't set the layer for multiview if the device doesn't support it.
4752a44f9e Merge pull request #1453 from cdavis5e/msl-multiview-base-instance
53080ecca8 MSL: Fix multiview view index calculation with a non-zero base instance.
685f86471e Merge pull request #1452 from KhronosGroup/minor-nits
95993f78af Run format_all.sh.
ee1b4e7042 Work around annoying warning on GCC 10.2.
eec76b04c7 Merge pull request #1450 from KhronosGroup/fix-1440
a07441568e Overhaul how we deal with reserved identifiers.
f0fe4442e3 Merge pull request #1448 from KhronosGroup/fix-1437
4f0f0e5a07 Merge pull request #1449 from KhronosGroup/fix-1443
fdbc80d131 HLSL: Fix FragCoord.w.
fad36a6b28 HLSL: Deal with partially filled 16-byte word in cbuffers.
dd1f53ff15 HLSL: Fix bug in is_packing_standard for cbuffer.
4c7944bb42 Merge pull request #1446 from kakashidinho/master
ab8eb70af1 Fix #1445: MSL: Enclose args when convert distance(a,b) to abs(a-b)
82d1c43e40 Merge pull request #1441 from cdavis5e/msl-tesc-composite-out
3347b1076d MSL: Fix handling of matrices and structs in the output control point array.
c333445ada Merge pull request #1436 from KhronosGroup/fix-1408
8a1843ab20 Add some test cases for complex type aliasing scenario.
eb580d6656 Ensure that we use primary alias type when emitting flattened members.
aac6885950 GLSL: Be more aggressive about using type_alias.
038b0bf238 Only rewrite type aliases for the base type.
7778792aec Merge pull request #1434 from KhronosGroup/glsl-force-flattened-io
57c93d44ac GLSL: Add option to force flattening IO blocks.
f5e9f4a172 Merge pull request #1432 from ponitka/hlsl-sample-mask
ba58f78395 Adding BuiltInSampleMask in HLSL
0376576d2d Merge pull request #1429 from ponitka/master
18f23c47d9 Enabling setting a fixed sampleMask in Metal fragment shaders.
934825a6a2 Merge pull request #1294 from cdavis5e/msl-multi-patch-workgroup
688c5fcbda MSL: Add support for processing more than one patch per workgroup.
3dcc23a5b3 Merge pull request #1431 from dj2/roll-07-22
ac08a89cf0 Merge pull request #1430 from cdavis5e/msl-refactoring
c4f3d4ae29 Roll GLSLang, SPIRV-Headers and SPIRV-Tools.
884bc6df65 MSL: Factor creating a uint type into its own method.
5e13f7fdf2 MSL: Factor a really gnarly condition into its own method.
6575e451f5 Merge pull request #1423 from KhronosGroup/msvc-2013-fix
36c999ae3f MSVC 2013: Fix silently broken builds.
39ce5b46de Merge pull request #1421 from troughton/patch-3
b74a84e4cb MSL: Ensure OpStore source operands are marked for inclusion in function arguments
559b21c6c9 Merge pull request #1420 from dj2/roll-07-06
63fbdaca93 Roll deps.
3b366db7f1 Merge pull request #1416 from KhronosGroup/fix-1415
711300baed MSL: Do not emit swizzled writes in packing fixups.
fa5b206d97 MSL: Workaround broken vector -> scalar access chain in MSL.
fab75792a9 Merge pull request #1419 from KhronosGroup/msl-input-attachment-index-fallback
e1600d4df8 MSL: Use input attachment index directly for resource index fallback.
c465cd5004 Merge pull request #1417 from KhronosGroup/fix-351
2ac8f51b06 GLSL: Support I/O flattening with arrays as final type.
2d43103a55 GLSL: Support multi-level struct flattening for I/O.
d573a95a9c Run format_all.sh.
8f716947c2 test: Use --hlsl-dx9-compatible when attempting to compile SM 3.0 shaders.
2894b40868 Merge pull request #1412 from KhronosGroup/fix-1411
70f17142de GLSL: Fix nested legacy switch workarounds.
b1082c10af Merge pull request #1410 from KhronosGroup/fix-1406
42096ca4a1 Merge pull request #1409 from KhronosGroup/fix-1405
4d79d634f5 GLSL: Implement switch on ESSL 1.0.
bae76d7915 GLSL: Use for-loop fallback instead of do/while for legacy ESSL.
3afbfdb090 Implement context-sensitive expression read tracking.
05188aca69 Fix bug with control dependent expression tracking.
2e7a562583 Merge pull request #1404 from KhronosGroup/fix-1402
eb0f0323d3 HLSL: Workaround FXC bugs with degenerate switch blocks.
f9ae06512e Merge pull request #1401 from dj2/roll-deps-22
9eb615c63b Merge pull request #1400 from KhronosGroup/fix-1399
0abc017501 Roll deps and update tests.
f9da366ae6 MSL: Remove the old VertexAttr API.
7edaea87cf Merge pull request #1398 from Kangz/fix-deprecation
6add77aa97 Merge pull request #1397 from KhronosGroup/fix-1396
8aee532f56 Fix placement of SPIRV_CROSS_DEPRECATED.
f141521ebe Fix duplicated initialization for loop variables with initializers.
d7976b7b24 Merge pull request #1395 from KhronosGroup/fix-1394
ace4d25222 MSL: Add test case for constructing struct with non-value-type array.
7314f51a32 MSL: Deal with loading non-value-type arrays.
02db4c1f16 MSL: Add tests for array copies in and out of buffers.
03d4bcea68 MSL: Improve handling of array types in buffer objects.
11832b6e14 Clean up some deprecation warnings when building with Makefile.
5e509b159a Remove unused member in MSLShaderInput.
a64484f62b Merge pull request #1392 from cdavis5e/msl-frag-input-vecsize
5281d9997e MSL: Fix up input variables' vector lengths in all stages.
7073ed2edb Merge pull request #1393 from KhronosGroup/fix-1391
d13dc0ce47 HLSL: Fix texProj in legacy HLSL.
9e3df69d4e Merge pull request #1390 from rdb/master
031cbaa5a2 GLSL: Require GL_ARB_draw_instanced for gl_InstanceID in GLSL < 1.40
92fcd7d2b0 Merge pull request #1389 from KhronosGroup/sparse-clamp
f383cc98f2 GLSL: Handle the rest of GL_ARB_sparse_texture_clamp.
bbefea2b02 Merge pull request #1388 from KhronosGroup/uint-sparse-residency-query
857e1c445c GLSL: Support uint code for sparse residency query.
553a7f959b Merge pull request #1385 from KhronosGroup/fix-1237
cbe0cca73b Refactor texture fetch function generation.
b73c047faf Merge pull request #1387 from Lichtso/master
1f5875e23e Fix missing switch cases in Y'CbCr conversion
3ce81c0025 Merge pull request #1384 from KhronosGroup/fix-1380
757c10bbe4 Merge pull request #1383 from KhronosGroup/fix-1381
275974e062 GLSL: Implement sparse feedback.
6600793884 MSL: Remove obsolete MSLVertexAttr members.
2d5200650a HLSL: Add native support for 16-bit types.
d385bf096f Merge pull request #1378 from bbernhar/issue_410
32bead81c8 Prefer set/binding API
999a7b5256 Merge pull request #1379 from KhronosGroup/fix-1377
165392a2b0 Document all CLI options.
d31bc0247e Do not mask writes to remapped variables in all cases.
17bccc9f7e HLSL: Add option to treat certain SSBO bindings as UAV, even with readonly.
61cddd6307 Merge pull request #1376 from KhronosGroup/fix-1374
58dad82fcb Handle physical pointers in reflection API.
f992548434 Merge pull request #1372 from KhronosGroup/gl-draw-parameters
ef247e75ec GLSL: Improve support for GL_ARB_shader_draw_parameters in desktop GLSL.
ec558bc98e Merge pull request #1371 from dj2/roll-deps-21
3d01d1bf50 Roll SPIRV-Tools, SPIRV-Headers and GLSLang.
287e93ff80 Merge pull request #1370 from dj2/roll_deps_20
29ad40e93e Merge pull request #1369 from KhronosGroup/more-rt-tests
8bf916f575 Roll dependencies
b4dd0b6fb1 GLSL: Add more test shaders for hit attribute types.
66ec3e3e54 GLSL: Support ray payloads and hit attributes declared as Block.
271ad33380 GLSL: Add some more focused RT test shaders.
3c43f055df Merge pull request #1366 from KhronosGroup/fix-1365
f3a362b1aa HLSL: Implement image queries for UAV images.
d638d2df9c Merge pull request #1363 from KhronosGroup/rt-gl-instance-id
86380acf4d Support gl_InstanceID in RT shaders.
b7823ec389 Merge pull request #1361 from KhronosGroup/msl-single-element-array-refinement
107ab7c2b7 MSL: Avoid packed arrays in more cases.
de3698f0e0 Add missing reference files from PR merge.
b8ba89a1ac Merge branch 'master' of git://github.com/kakashidinho/SPIRV-Cross
9ddfe6db6d Fix #1359: MSL: If the packed type is scalar, don't emit "pack_" prefix.
92f7d36c72 Merge pull request #1356 from KhronosGroup/fix-1354
0ebb88cc39 MSL: Redirect member indices when buffer has been sorted by Offset.
137dbeb7f1 Merge pull request #1355 from Kangz/fix-microsoft-enum-value
a3a590a82e Fix -Wmicrosoft-enum-value
7e0295abf8 Merge pull request #1353 from zoddicus/updateSPIRVHeaders
76658247ac Update SPIR-V Headers to 1.5 rev 3
471990d4dc Merge pull request #1349 from KhronosGroup/fix-1348
35a9b793d6 Work around odd deadlock in test_shaders.py in --parallel mode.
d7d630a0b7 Merge pull request #1347 from KhronosGroup/fix-1343
4330b046be Merge pull request #1346 from KhronosGroup/fix-1340
9b7140e2ba Implement OpAtomicLoad/OpAtomicStore.
cbaaa02af9 Merge pull request #1345 from apayen/master
6ef47d6657 MSL: Fix case where subpassInput is passed to leaf functions.
4edfe96739 Fixed recursion in combined_decoration_for_member Members in nested structs were not properly iterated on, and as a result, flags like row major for matrices could be not propagated properly.
7ba0f8f087 Merge pull request #1342 from dj2/roll
171c646474 Roll GLSLang, SPIRV-Tools and SPIRV-Headers.
1ad1662a2b Merge pull request #1339 from KhronosGroup/fix-1338
5e5d1c27ce GLSL: Support f16x2 <-> f32 bitcast.
c58839bfd4 Merge pull request #1336 from KhronosGroup/fix-1333
bf289c37a2 Merge pull request #1337 from KhronosGroup/nonuniform-propagation-fix
bdb343ea06 Be a bit more careful what nonuniform state is propagated.
6b0e558169 Handle RayQueryKHR type.
78b4d9379b Update SPIR-V headers.
b2e934b53f Merge pull request #1328 from devshgraphicsprogramming/patch-1
5cb0f0a640 Merge pull request #1335 from KhronosGroup/fix-1325
127224d816 Fix issue #1327
58548e25a2 Merge pull request #1334 from KhronosGroup/fix-1332
7b9cba7424 HLSL: Add parens in unpackUint2x32 for clarity.
e4e4791c4e HLSL: Only allow 64-bit integers in SM 6.0.
a396744f89 Ensure unpack/pack2x32 tests are compatible with test suite.
55dfbead2f GLSL/HLSL: Support packUint2x32 and unpackUint2x32
f8592ecdfc MSL: Deal correctly with initializers on Private variables.
3fb86e4385 Merge pull request #1331 from KhronosGroup/fix-1321
17ad62eea4 MSL: Support edge case with DX layout in scalar block layout.
f38cbeb814 Merge pull request #1330 from KhronosGroup/fix-1320
ebf463674d MSL: Allow removing clip distance user varyings.
aa5fbc004b Merge pull request #1329 from godlikepanos/master
b3109b8ad0 Reflection: Add specialization constant name
90198199df Merge pull request #1324 from cdavis5e/msl-disabled-builtin-names
96f7008aa8 MSL: Force disabled fragment builtins to have the right name.
fbc560782c Merge pull request #1323 from cdavis5e/msl-disable-frag-only
495e48de44 MSL: Only disable output variables in fragment shaders.
54658d6255 Merge pull request #1319 from cdavis5e/msl-frag-outputs
b29f83c383 MSL: Add options to control emission of fragment outputs.
fcbc590937 Merge pull request #1316 from Malacath-92/master
4560ee24fd Improve compatibility with clang-cl
a1d9b474b5 Merge pull request #1314 from KhronosGroup/fix-1313
c7b75a8fe6 MSL: Do not use base expression with PhysicalTypeID OpCompositeExtract.
6637610b16 Merge pull request #1309 from KhronosGroup/fix-1305
941cceedb4 Expose a query if samplers or images are comparison resources.
b691b7d1e3 Do not add NonWritable/NonReadable decorations for regular images.
14f24d71ab Merge pull request #1308 from KhronosGroup/fix-1306
cfcd84319b Merge pull request #1310 from KhronosGroup/msl-force-declare-implicit-builtins
d9d3359ffb MSL: Deal with cases where builtin is implicitly needed, declared, but unused.
01cee74b02 Merge pull request #1307 from troughton/patch-1
28bf9057df HLSL: Add support for treating NonWritable UAV texture as SRV instead.
4cf736d753 MSL: mark BuiltInFragCoord as implicitly used for subpass reads
e58e8d5dbe Merge pull request #1303 from KhronosGroup/fix-1302
3cb6aeb480 MSL: Fix access chain for deep struct hierarchy on array of buffers.
84ec99c531 Merge pull request #1301 from dj2/roll_deps
32307df73a Roll GLSLang, SPIRV-Tools and SPIRV-Headers
9b3c5e12be Merge pull request #1299 from KhronosGroup/fix-1298
b8905bbd95 Add support for forcefully zero-initialized variables.
871c85d7f0 Merge pull request #1297 from KhronosGroup/fix-1295
04e877df12 GLSL: Implement GL_EXT_shader_framebuffer_fetch.
c2655ab291 Run format_all.sh.
c3d216c011 Merge pull request #1296 from KhronosGroup/fix-1292
05004a57ea GLSL/HLSL: Fix nonuniform qualifier for SSBO atomics.
a3d3c80dd7 GLSL/HLSL: Implement nonuniform qualifier for image atomics.
65aa0c35d6 include/spirv_cross: Fix typo.
7d42fd7f7b Merge pull request #1290 from KhronosGroup/fix-1289
185551bfaf HLSL: Do not emit globallycoherent for SRV ByteAddressBuffer.
d19f30a90e Merge pull request #1287 from KhronosGroup/read-write-decoration-tweaks
95cd20f1c7 Add test for disable-storage-image-qualifier-deduction.
c27e1efbf1 HLSL: Add option to always treat SSBO as UAV, even with readonly.
01968c4486 Add option to disable storage image qualifier deduction.
3ebc83da46 Remove old hack which forces NonWritable/NonReadable.
9deb6ffbba Merge pull request #1285 from KhronosGroup/vulkan-semantics-shorthand
3f2de0d5d3 Add -V alias for --vulkan-semantics.
c5f7b55756 Merge pull request #1284 from KhronosGroup/fix-1282
16796e92be MSL: Add C API for force native arrays.
d91e134500 MSL: Add native array test for composite array initialization.
30343f3e95 MSL: Reintroduce workaround for constant arrays being passed by value.
20b28f72fa MSL: Reinstate workaround for returning arrays.
c9d4f9cd74 MSL: Add a workaround path to force native arrays for everything.
f19fdb94d7 Merge pull request #1283 from dj2/roll
7ec16b64c8 Roll GLSLang, SPIRV-Tools and SPIRV-Headers
dffd33dd9d Merge pull request #1280 from KhronosGroup/fix-1278
92a4294c57 Reject SPIR-V modules with garbage ID bound.
c53b34765d Merge pull request #1277 from KhronosGroup/fix-1276
e81c1b1d98 HLSL: Declare undef variables as static.
7ac5c38838 Merge pull request #1275 from KhronosGroup/fix-1274
cec0502ba5 Remove old memory_scope flag from iOS barriers.
6b2add8e2c Merge pull request #1272 from KhronosGroup/fix-1271
6f5cb00148 Use GNUInstallDirs for include path as well.
cb0aca91ef Merge pull request #1273 from orbea/cmake
8b90526911 cmake: Don't hardcode the pkg-config file.
74544caa16 cmake: Use GNUInstallDirs.
d67c3393da CMake: Avoid warning when parent project uses VERSION in project().
68bf0f824c Merge pull request #1270 from KhronosGroup/fix-1266
dfffbb1cf3 Compile fix on older compilers.
655312cb47 GLSL: Support GL_ARB_enchanced_layouts for XFB.
306cb31bad Merge pull request #1239 from cdavis5e/msl-inline-uniform-blocks
ae6c05f6f4 MSL: Move inline uniform blocks to the end of the argument buffer.
fedbc35315 MSL: Support inline uniform blocks in argument buffers.
f9376058ce Merge pull request #1269 from KhronosGroup/fix-1267
8bbb5fb763 Make SmallVector noexcept.
883de24f79 Merge pull request #1268 from barath121/patch-1
eac76d9473 Typo at line 324
f9818f0804 Update license headers to 2020.
7a411258af Run format_all.sh.
af787a8a79 Merge pull request #1264 from KhronosGroup/msl-argument-buffer-persist
4054d650cf Merge pull request #1263 from KhronosGroup/fix-1232
c3bd136df1 MSL: Add support for force-activating IAB resources.
f79c1e2fed Deal with illegal names in types as well.
79700d5412 Merge pull request #1262 from KhronosGroup/json-reflection-improvements
57b70225ef Merge pull request #1261 from KhronosGroup/fix-379
762c87a7bb Reflection: Add array stride/matrix stride reflection.
18e24c3ca2 Reflection: Emit reflection information for array size literalness.
55fe6050fe GLSL: Implement geometry shader passthrough extension.
172e39f039 Merge pull request #1257 from KhronosGroup/fix-1236
74107a04d1 Merge pull request #1256 from KhronosGroup/fix-1252
cc153f8d7f HLSL: Add a resource remapping API similar to MSL.
2bbb012e9c MSL: Deal with sign on wave min/max.
88ddeec49a HLSL: Deal with casting for WaveActiveMin/Max.
5253da9e63 GLSL: Deal with sign in subgroup Min/Max operations.
34ba8ea4f2 Merge pull request #1255 from KhronosGroup/fix-1254
c256525c7b Run format_all.sh.
1cbd71b354 HLSL: Fix bug when reading and writing structs from SSBO.
151ff1e870 HLSL: Implement stores for complex composites in ByteAddressBuffers.
ca9398c122 HLSL: Su…

* Build fix with new SPIRV-Cross

* WiiU build fix with new SPIRV-Cross
2023-01-15 09:01:06 +01:00
sonninnos b8bcce98c3
(WIN32) Restore zero key event characters (#14848) 2023-01-15 09:00:47 +01:00
Ryunam 46e6ac2093
Add Run-Ahead data to on-screen statistics (#14838) 2023-01-15 09:00:15 +01:00
github-actions d33c2ff56e Fetch translations from Crowdin 2023-01-15 00:12:18 +00:00
sonninnos 3e599d04d3
(WIN32) Add support for mouse button swap (#14846) 2023-01-14 21:33:26 +01:00
sonninnos 639d367773
(WIN32) Fix keyboard event characters (#14844) 2023-01-14 06:46:24 +01:00
github-actions 2ae8a34cfb Fetch translations from Crowdin 2023-01-14 00:11:52 +00:00
reallibretroadmin 3b6aef23e1 Silence 'value stored to variable is never read' warning 2023-01-13 16:18:20 +01:00
sonninnos 2f1a03523b
Hotkey blocking correction (#14831) 2023-01-13 04:56:14 +01:00
Bobby Smith 06c3cd80aa
Fix subsystems sublabels (#14843) 2023-01-13 04:48:02 +01:00
github-actions 52f34ee78f Fetch translations from Crowdin 2023-01-13 00:12:02 +00:00
github-actions 2a4a266a4a Fetch translations from Crowdin 2023-01-12 00:12:26 +00:00
libretroadmin f0c8008bda Split up runahead into its own file(s) - runahead.c/runahead.h -
by Dwedit's request
2023-01-11 10:19:56 +01:00
neil4 ee6aa753c3
Fix Preemptive Frames #ifdefs (#14834) 2023-01-11 03:21:24 +01:00
github-actions cf4350178b Fetch translations from Crowdin 2023-01-11 00:12:25 +00:00
UltraHDR 10c337255e
Set LSApplicationCategoryType to games (#14833)
* Set LSApplicationCategoryType to games

* Set LSApplicationCategoryType to games
2023-01-10 14:02:54 +01:00
neil4 7213aada8d
Add Preemptive Frames to Latency Settings (#14832) 2023-01-10 07:22:14 +01:00
github-actions 975300a320 Fetch translations from Crowdin 2023-01-10 00:12:25 +00:00
libretroadmin e10361ed52 Header include cleanups for driver.h 2023-01-09 15:28:15 +01:00
sonninnos 55aeba2f57
Savestate thumbnail aspect ratio fallback (#14828) 2023-01-09 04:13:11 +01:00
libretroadmin 1ab6028b00 Combine driver.c into retroarch.c 2023-01-09 03:20:25 +01:00
libretroadmin ef0672f80b (playlist.c) Cleanups 2023-01-09 02:58:52 +01:00
reallibretroadmin 3ae8e35d0e (iOS) Buildfix and cleanup some unused variables 2023-01-09 01:54:45 +01:00
github-actions f0656f10de Fetch translations from Crowdin 2023-01-09 00:12:37 +00:00
libretroadmin daa9e352cc Remove asserts 2023-01-09 00:51:05 +01:00
reallibretroadmin 84b0546965 Silence some implicit conversion warnings in Xcode 2023-01-09 00:16:36 +01:00
reallibretroadmin a34598512e (Auto frame delay) silence some warnings that pop up in Xcode 2023-01-09 00:05:21 +01:00
libretroadmin 5d065e7efc Buildfix 2023-01-08 20:00:51 +01:00
libretroadmin 71019e1121 Remove or move structs never used 2023-01-08 19:50:03 +01:00
zoltanvb 6412a1d1a1
msg_hash_us.c to Crowdin, phase 2 (with Android fix) (#14825)
* msg_hash_us.c contents to Crowdin, phase 2

Remaining part of the fixed strings moved to msg_hash_us.h, and some other changes:
- added help text for individual menu drivers
- prepared help labels for video drivers
- prepared help labels for input drivers
- old entries from the now defunct help menu are hidden from compilation
  (may be added back later, when the menu is again visible)
- moved notification color/bgcolor items to sublabels
- language fixes from phase 1 comments

* c89 compilation fixes

* Compilation fix for Android builds
2023-01-08 19:33:04 +01:00
gouchi ec2805a562
Report error when core download failed (#14824)
Fix curly bracket opening
2023-01-08 19:32:47 +01:00
libretroadmin af9f946019 (gfx/drivers) Cleanups 2023-01-08 19:22:48 +01:00
libretroadmin 490fb75905 (drivers_display) Cleanups 2023-01-08 18:31:04 +01:00
libretroadmin ccfad9dc9d Revert "msg_hash_us.c contents to Crowdin, phase 2 (#14821)"
This reverts commit f550576147.
2023-01-08 17:47:11 +01:00
zoltanvb f550576147
msg_hash_us.c contents to Crowdin, phase 2 (#14821)
* msg_hash_us.c contents to Crowdin, phase 2

Remaining part of the fixed strings moved to msg_hash_us.h, and some other changes:
- added help text for individual menu drivers
- prepared help labels for video drivers
- prepared help labels for input drivers
- old entries from the now defunct help menu are hidden from compilation
  (may be added back later, when the menu is again visible)
- moved notification color/bgcolor items to sublabels
- language fixes from phase 1 comments
2023-01-08 10:58:26 +01:00
libretroadmin 8a3686df58 Revert "Header cleanups - don't include retroarch.h everywhere"
This reverts commit 0e3b478f8c.
2023-01-08 09:05:46 +01:00
libretroadmin 0e3b478f8c Header cleanups - don't include retroarch.h everywhere 2023-01-08 08:56:57 +01:00
reallibretroadmin 074f19ca90 (Metal) Cleanups 2023-01-08 05:48:06 +01:00
reallibretroadmin 29f165026a (Metal) Small cleanups 2023-01-08 05:34:05 +01:00
esoptron 2b0c86f1f5 Update AUTHORS.h
- Changing my alias to my original one
- Added my real name
- If you want proof that this is me, just look at this previous commit de8ee0e8d1
2023-01-08 03:39:53 +01:00
libretroadmin 1d18e7e7c8 (Metal) Small updates; no code changes 2023-01-08 02:22:46 +01:00
libretroadmin 4e3d73ff49 (Metal) Get rid of pushDebugGroup/popDebugGroup 2023-01-08 01:41:56 +01:00
reallibretroadmin 10947894ea Combine metal_common.m into metal.m 2023-01-08 01:37:54 +01:00
github-actions d1408b0c24 Fetch translations from Crowdin 2023-01-08 00:12:11 +00:00
Tatsuya79 f441821297 Start unpause restriction. 2023-01-07 20:08:40 +01:00
Skirlez f2c16bd8d6 Scroll sound fixes
correctly get list size in xmb.c for playing scrolling sound when switching categories, play the scrolling sound when pressing cancel in ozone, play the sound when scrolling with ZL and ZR, play the correct sound when scrolling with L
2023-01-07 20:08:21 +01:00
libretroadmin 41b069462d (Android) Buildfix 2023-01-07 12:10:17 +01:00
Skirlez 9e668e1673 really fix build errors 2023-01-07 12:09:11 +01:00
Skirlez e1930a0051 hopefully fix build error 2023-01-07 12:09:11 +01:00
Skirlez 8a127eff02 Better scrolling sound implementation, add new 'notice back' sound
The closing info box sound (NOTICE_BACK) plays if you have the regular notice sound on, implemented generally.

audio_driver_mixer_play_menu_sound(i) will now stop sound i before playing it, so when you for example, cancel in rapid succession, it will properly play all canceling sound effects instead of not doing anything if the sound is already playing.

This scrolling implementation is a lot more general than the first one, to the point where RGUI plays all the correct sounds without any special additions. However, the Ozone sidebar scrolling or category switching in XMB or MaterialUI are still handled inside their driver .c files.
This implementation also fixes an issue where if wraparound was disabled the sound would still play if you held on a direction. I've also fixed it manually for XMB category switching, since it's still handled there individually (turns out, Ozone sidebar and MaterialUI categories just don't respect the no wraparound option, so there's no need to implement a fix there as well)
2023-01-07 12:09:11 +01:00
Eric Warmenhoven ab27029f2b Fix #14789
The change to apply shaders would be executed and then a command to
apply shaders would immeidately be enqueued, to run asynchronously
after the current event handler, which then did exactly the same
thing, creating a busy loop.
2023-01-07 10:53:30 +01:00
reallibretroadmin 6199baff3a Silence several Vulkan related warnings that showed up in Xcode 2023-01-07 08:05:06 +01:00
Eric Warmenhoven 3c199c794e Updated Vulkan on Metal for OSX via MoltenVK 2023-01-07 07:38:42 +01:00
libretroadmin e447a4e8e6 Get rid of RARCH_CTL_SET_{IDLE/PAUSED} 2023-01-07 07:32:16 +01:00
reallibretroadmin adee2dbe72 * Use strlcat instead of strcat
* Silence implicit conversion warnings detected in Xcode
2023-01-07 07:12:25 +01:00
libretroadmin 5872b357e6 Don't define tag_v variable when not needed 2023-01-07 05:25:56 +01:00
libretroadmin f82bc4e99c (Video filters) Cleanups 2023-01-07 05:23:50 +01:00
libretroadmin 3277d7b8fa (Emscripten) Add HAVE_PATCH support for Emscripten
(Patch) if HAVE_PATCH is not defined, silence warnings
2023-01-07 05:15:36 +01:00
libretroadmin c14d14548a Buildfix 2023-01-07 05:04:46 +01:00
github-actions 42bcbc76d7 Fetch translations from Crowdin 2023-01-07 00:26:27 +00:00
libretroadmin 5ac8cc0b6a * Rename retroarch_path_set_redirect to runloop_path_set_redirect
* move more retroarch path functions to runloop.c - because they
are related to the runloop state instead of retroarch state
2023-01-06 21:21:31 +01:00
libretroadmin 5debb7a622 Rewrite runloop_set_frame_limit 2023-01-06 20:59:15 +01:00
Eric Warmenhoven 1919cb4804 Include "Update Core Info Files" on iOS. 2023-01-06 18:23:17 +01:00
LibretroAdmin 17121b361d
Update CHANGES.md 2023-01-06 08:10:38 +01:00
github-actions 503f7cde00 Fetch translations from Crowdin 2023-01-06 00:11:35 +00:00
libretroadmin 5bac2b0204 Cleanups 2023-01-05 23:34:46 +01:00
sonninnos 837ae65523 Fix crash when viewing history item information 2023-01-05 21:14:22 +01:00
retroNUC fbb4d67f7c Achievement Visibility Submenu - Text tweaks
+ removing gate from account error messages
2023-01-05 19:51:55 +01:00
retroNUC 31addc0a61 Achievement Visibility Submenu - Additional changes
- 'Unlocks/Mastery' split into two options
- 'Account/Login Messages' split off from 'Verbose', gated all login success/error messages
- menu_cbs_sublabel.c - Now in same order as menu options
- menu_setting.c - VISIBILITY_UNLOCK default value now uses define
- All suggested text/cleanup changes from Jamiras
2023-01-05 19:51:55 +01:00
retroNUC 1bf31d84db Include build fix for gcc/mingw 2023-01-05 19:51:55 +01:00
retroNUC 6e81098132 Add Achievements Visibility submenu options
- Startup Summary split off from Verbose Mode, added option to hide for games with zero core cheevos
- Some existing options moved into this submenu
- Leaderboard-related options coming in future PR
2023-01-05 19:51:55 +01:00
libretroadmin 253be8e682 Cleanup function 2023-01-05 19:44:12 +01:00
libretroadmin 7aab4e3d71 Move apple_view_type to apple_platform.h 2023-01-05 19:35:15 +01:00
libretroadmin b59a13771c Move input LUT table to input_driver.h 2023-01-05 19:30:51 +01:00
reallibretroadmin d36bd9e677 Silence some warnings found in Xcode 2023-01-05 09:27:45 +01:00
libretroadmin 7f0dfe797d (GL3) Comment out this variable that is not used 2023-01-05 09:18:43 +01:00
Eric Warmenhoven f07a720a31 On Metal OSX build, with GL cores, fix fullscreening redisplay 2023-01-05 09:04:47 +01:00
Gonzalo Peche 9efc1f500d In Android builds, add input_android_physical_keyboard configuration option and its corresponding menu entry to force a device to act as a physical keyboard.
When running on Android, RetroArch considers most devices that emit dpad events as gamepads, even if they also emit other keyboard events; this is usually the right thing to do, but it has the side effect of not letting some actual keyboards (e.g.: Logitech K480) act as such inside RetroArch. This configuration option allows users to manually select a specific input device to act as a physical keyboard instead of a gamepad, which is handy when emulating computers as opposed to consoles.
2023-01-05 04:50:37 +01:00
Eric Warmenhoven 860ffb2b6a Fix for fullscreen GL driver in Metal OSX build
After calling enterFullScreenMode on the GL view, it becomes the "key"
window, meaning it gets all of the input. This is problematic as that
view doesn't forward the input on to the input driver.
2023-01-05 01:21:15 +01:00
github-actions 59cbb16f1c Fetch translations from Crowdin 2023-01-05 00:11:41 +00:00
libretroadmin 0c42e339e1 Silence some warnings that popup in Xcode 2023-01-04 18:42:35 +01:00
Eric Warmenhoven 5f06c5487d Include GL video driver on Metal OSX builds 2023-01-04 12:16:39 +01:00
Eric Warmenhoven cf64525343 Include "Update Core Info Files" for iOS/tvOS
Also a build fix for tvOS with Xcode 14.2
2023-01-04 03:43:42 +01:00
zoltanvb 92c143ca51 Remaining changes for the simple help text replacements. 2023-01-04 03:43:16 +01:00
zoltanvb a5431dd965 Help text translation through Crowdin, phase 1.
Help texts can be activated for some menu items using Select / RShift.
These text items were hardcoded in msg_hash_us.c (and related translations).
This commit changes the simple text items to get the source from msg_hash_us.h
(or its translations).
2023-01-04 03:43:16 +01:00
github-actions 3047561621 Fetch translations from Crowdin 2023-01-04 00:11:29 +00:00
gugueU b6aa95cf16 Update selected save slot when start with cli --entryslot 2023-01-03 19:34:58 +01:00
Skirlez 48d3cca8b2 move curly brackets that start on the same line as the statement down a line
oops.
2023-01-03 19:34:35 +01:00
Skirlez 710625e0e6 put the if statement that leads to playing the sound inside the HAVE_AUDIOMIXER ifdef in menu_cbs_left and menu_cbs_right 2023-01-03 19:34:35 +01:00
Skirlez ae5612ce91 remove comment which wasn't in the correct format
or needed really
2023-01-03 19:34:35 +01:00
Skirlez aba01c87e3 add scrolling sounds for rgui, xmb, and glui and fix the ozone implementation + hebrew translation for menu sounds submenu
also adds audio_driver_mixer_play_scroll_sound to menu_cbs_left and menu_cbs_right which are (seemingly) responsible for the large scroll on some menus (and also bumper scrolling on glui's playlist menu?).
2023-01-03 19:34:35 +01:00
Skirlez f84093496f implement scrolling sounds for ozone
using roughly the same implementation for the ok/notice/cancel sounds, but i've made an exclusive function for scrolling since it's going to be called a lot more than those sounds
2023-01-03 19:34:35 +01:00
github-actions 43bee969b7 Fetch translations from Crowdin 2023-01-03 00:11:20 +00:00
retroNUC f2f7e2f8ee
Fixed gfx scissoring on D3D drivers (#14793)
Zero width/height is valid, just means that it won't draw anything between those begin/end calls
2023-01-02 10:44:09 +01:00
github-actions 955431b354 Fetch translations from Crowdin 2023-01-02 00:11:48 +00:00
github-actions 2032d67b07 Fetch translations from Crowdin 2023-01-01 00:13:23 +00:00
Jonathan McDowell 750bc7bf8b
Remove remaining mentions of joyconfig (#14787)
IS_JOYCONFIG was removed back in 2015 (1b7576aa), but there are still
some mentions of retroarch-joyconfig in the docs and Makefiles. Clean
these up so folk aren't confused about the fact it's no longer
available.
2022-12-31 02:35:08 +01:00
zoltanvb 8b536ec35d
Modify translation completeness labels in order for them to appear in Crowdin. (#14785) 2022-12-31 02:34:45 +01:00
github-actions 4609c7f90a Fetch translations from Crowdin 2022-12-31 00:10:25 +00:00
retroNUC d24cdbfb15
Allow repositioning of RetroAchievement notifications (#14777)
* Allow repositioning of achievement notifications

* PS4/ORBIS build fix

Would have thought cheevos-related notification code was wrapped in HAVE_CHEEVOS, but guess not.
2022-12-30 16:55:38 +01:00
sonninnos e0e21b3386
Fix system info autoconf device list (#14783) 2022-12-30 16:53:47 +01:00
github-actions bc9c5718f9 Fetch translations from Crowdin 2022-12-30 00:10:44 +00:00
sonninnos 0be1aa0420
Add config + input related sublabels (#14781) 2022-12-30 00:48:04 +01:00
zoltanvb 76b3c09ea9
Translation completeness display. (#14779)
Display translation completeness categories in the language selection options.
Generate the progress report for RetroArch menu file instead of all files.
2022-12-29 22:21:23 +01:00
sonninnos 7d81be1d4c
Handle content info label differently (#14776) 2022-12-29 09:16:31 +01:00
libretroadmin 27611288c0 Rename retroarch_get_current_savestate_path and retroarch_get_entry_state_path
to runloop_{function_name}
2022-12-29 02:13:31 +01:00
github-actions 7e7d2b3071 Fetch translations from Crowdin 2022-12-29 00:11:14 +00:00
sonninnos 2cbb7953d4
Fix visible core info version (#14775) 2022-12-28 03:00:21 +01:00
github-actions 42b9e23602 Fetch translations from Crowdin 2022-12-28 00:10:58 +00:00
zoltanvb 357ebc154b
Remove () from language names. (#14771) 2022-12-27 21:42:00 +01:00
sonninnos 3092fda58b
Fix menu switch icon correction crash (#14774) 2022-12-27 21:41:49 +01:00
sonninnos 86742b5563
(XMB) Stop showing bogus previous icon on CLI launch (#14773) 2022-12-27 21:41:36 +01:00
github-actions 204cce8d16 Fetch translations from Crowdin 2022-12-27 00:11:50 +00:00
github-actions 6aa15e5b15 Fetch translations from Crowdin 2022-12-26 00:11:19 +00:00
sonninnos d5f58fd435
Menu switch icon corrections (#14766) 2022-12-25 18:17:16 +01:00
github-actions 7de22a9326 Fetch translations from Crowdin 2022-12-25 00:11:45 +00:00
github-actions dea327a0c2 Fetch translations from Crowdin 2022-12-24 00:09:49 +00:00
Thiago Kenji Okada c5bfd52159
Add `CORE_INFO_DIR` to `./configure` (#14761)
* Add missing FILTERS_DIR definition to qb/config.libs.sh

* Add CORE_INFO_DIR configuration option
2022-12-23 14:40:48 +01:00
libretroadmin 3bacd52629 Add HAVE_UPDATE_CORE_INFO for targets that already have HAVE_UPDATE_CORES defined 2022-12-23 01:52:38 +01:00
Thiago Kenji Okada 894c44c5ea
Add more flags to `./configure` (#14756)
* Allow disabling "Update Core Info" from Online Updater

* Add ASSETS_DIR as an alternative to DEFAULT_DIR_ASSETS

* Add FILTERS_DIR configuration option

* Fix other platform_unix.c platforms

* Conditionally use ASSETS_DIR/FILTERS_DIR
2022-12-23 01:28:57 +01:00
github-actions 0993324756 Fetch translations from Crowdin 2022-12-23 00:11:09 +00:00
libretroadmin e82b75c769 Fix more C89_BUILD issues 2022-12-22 23:10:15 +01:00
libretroadmin 7eedfc8673 No C++ comments in C files 2022-12-22 23:06:48 +01:00
LibretroAdmin 097a7d7fc5
- C89 buildfixes (#14758)
- Don't declare static function prototypes in headers
2022-12-22 22:14:50 +01:00
LibretroAdmin f836328c56
Append Preset (#14737) (#14757)
WIP version of Append and Prepend preset, Includes UI for Standard Retroarch, but not the QT UI companion

Co-authored-by: HyperspaceMadness <remimcgill@hotmail.com>
2022-12-22 21:36:32 +01:00
sonninnos 05c3c0a552
Automatic Frame Delay improvements (#14754) 2022-12-22 18:58:26 +01:00
zoltanvb 1334bd0408
Localization improvements. (#14753)
- enable localization of audio mixer sublabel
- resolve 2 localization FIXME items
- enable better localization of controller connect/disconnect/config messages
2022-12-22 16:54:14 +01:00
github-actions dbe5a047c4 Fetch translations from Crowdin 2022-12-22 00:11:10 +00:00
zoltanvb 8bfa02e2ea
Fix for #14725 (#14750)
Revert one modification in 0f24d52407 that
makes "add to mixer" options do nothing.
2022-12-21 19:08:07 +01:00
github-actions 2b669f4e4b Fetch translations from Crowdin 2022-12-21 00:11:08 +00:00
zoltanvb 8de16f3323
Localization improvements. (#14748)
Added translatable labels for recording, streaming, logging, turbo options.
2022-12-20 23:54:49 +01:00
github-actions 5b89a9f90f Fetch translations from Crowdin 2022-12-20 00:11:01 +00:00
zoltanvb 02ba825c88
Enable localization of video rotation, orientation, aspect ratio options. (#14744) 2022-12-19 21:36:06 +01:00
LibretroAdmin f5133d8cc4
Revert "Add Xdelta support for softpatching (#14706)" (#14743)
This reverts commit aaad220836.
2022-12-19 03:29:46 +01:00
libretroadmin 91f3611fdd Revert "(xdelta3) Slim down on dependency"
This reverts commit d7d659147c.
2022-12-19 03:25:15 +01:00
libretroadmin 910db94e9f Revert "(xdelta3) Some additional cleanups"
This reverts commit 2f3821ffc8.
2022-12-19 03:25:07 +01:00
libretroadmin 7a4a860680 Revert "Don't rely on ENOSPC - relies on errno.h"
This reverts commit f6c2e4d292.
2022-12-19 03:22:07 +01:00
libretroadmin f6c2e4d292 Don't rely on ENOSPC - relies on errno.h 2022-12-19 03:17:09 +01:00
libretroadmin 2f3821ffc8 (xdelta3) Some additional cleanups 2022-12-19 03:09:55 +01:00
libretroadmin d7d659147c (xdelta3) Slim down on dependency 2022-12-19 02:53:15 +01:00
Jesse Talavera-Greenberg aaad220836
Add Xdelta support for softpatching (#14706)
* Add xdelta in deps

* Include <assert.h> in xdelta3.h

- Otherwise the static_assert calls can fail

* Build xdelta3 in Makefile.common

* Add xdelta support to the softpatching infrastructure

- The patching itself isn't fully implemented yet

* Adjust how xdelta3.h checks the sizes of some types

- Now checks max values instead of relying on autotools

* First crack at xdelta softpatching support

- There may be undiscovered edge cases or bugs

* Add xdelta in deps

* Include <assert.h> in xdelta3.h

- Otherwise the static_assert calls can fail

* Build xdelta3 in Makefile.common

* Add xdelta support to the softpatching infrastructure

- The patching itself isn't fully implemented yet

* Adjust how xdelta3.h checks the sizes of some types

- Now checks max values instead of relying on autotools

* First crack at xdelta softpatching support

- There may be undiscovered edge cases or bugs

* Remove trailing commas from the enums I modified

- C89 doesn't allow them

* Remove stray whitespace

* Adjust SIZE macros in xdelta3.h

- Move them outside the XD3_USE_LARGEFILE64 block
- Add more SIZE declarations
- Make SIZEOF_UNSIGNED_LONG_LONG contingent on the presence of ULLONG_MAX

* Add some RARCH_DBG calls for xdelta patching

* Enable support for xdelta's secondary compressors

- Necessary for some patches

* Fix some format specifiers

* Remove unnecessary files from xdelta

* Include xdelta3.h with a relative path

* Add xdelta3 headers to HEADERS variable

* Gate Xdelta support behind HAVE_XDELTA

- HAVE_XDELTA is on by default
- HAVE_PATCH is still required for HAVE_XDELTA to be meaningful
- Support is mostly contingent on the availability of LZMA
- Anything modern should be okay
- Legacy platforms (e.g. DOS) may need to have Xdelta support disabled
- At least until some other solution can be found

* Disable HAVE_XDELTA on platforms where the build recently failed

- These come from looking at the failed builds on GitHub
- These are guesses, and may turn out to be wrong

* Fix a potential memory leak

- Whoops, looks like I need to call two cleanup functions
- xd3_close_stream exists separately from xd3_free_stream

* Split the --help printout for --xdelta into its own strlcat call

- GCC was complaining about #ifdefs within macro arguments being non-portable

* Fix some incorrect printf format specifiers

* Modify Xdelta to adhere to C89

- It's mostly using RetroArch's INLINE macro instead of the inline keyword
2022-12-19 01:10:04 +01:00
sonninnos 883e88fa73
Keyboard event blocking corrections (#14728) 2022-12-18 18:36:24 +01:00
Apaczer 4242a04641
add L3 & R3 mapping for MIYOO (#14741)
for Retropad

Update sdl_dingux_joypad.c
2022-12-18 04:08:16 +01:00
github-actions f238e1d1b2 Fetch translations from Crowdin 2022-12-18 00:11:25 +00:00
github-actions 932b4ad3db Fetch translations from Crowdin 2022-12-17 00:11:11 +00:00
sonninnos 16ca87c327
Rename Standalone Cores to Contentless Cores (#14738) 2022-12-16 19:02:24 +01:00
sonninnos 51c92c7e3a
Fix icons in playlist manager (#14735) 2022-12-16 17:59:18 +01:00
github-actions b07b210f51 Fetch translations from Crowdin 2022-12-16 00:11:16 +00:00
libretroadmin 85598f24ad defines/ headers are libretro-common headers, search for them in
system header includes - other cleanups/nits
2022-12-15 15:09:40 +01:00
libretroadmin 5e6d917417 (audio/roar) remove errno.h include 2022-12-15 14:49:11 +01:00
libretroadmin 8f1af4a2e6 (Frontend) Style nits/cleanups 2022-12-15 14:34:22 +01:00
github-actions c40c60ca60 Fetch translations from Crowdin 2022-12-15 00:11:47 +00:00
zoltanvb 748ce417e4
Cleanup of msg_hash_xx.c files after msg_hash_us.c cleanup. (#14730) 2022-12-14 11:52:56 +01:00
github-actions 3bda9cad1e Fetch translations from Crowdin 2022-12-14 00:11:59 +00:00
LibretroAdmin e3c92b0c9d
Update CHANGES.md 2022-12-13 23:20:37 +01:00
MajorPainTheCactus 5d306acd90
Fixed some shaders not appearing with the d3d12 driver - this reintroduces a validation error though but it seems to work as in not crash and is the old RA behaviour. Guess we need a different way of fixing the validation issue. (#14729) 2022-12-13 23:19:28 +01:00
github-actions de26e07062 Fetch translations from Crowdin 2022-12-13 00:12:10 +00:00
LibretroAdmin ad89b0c655
Update CHANGES.md 2022-12-12 14:11:11 +01:00
zoltanvb 5838bb98ef
Cleanup of help texts. (#14723)
All help texts were removed, which fell into one of the categories below:

1. there is sublabel for the menu item and it contains same or better text.
Such texts and translations should be maintained as sublabel, located in
msg_hash_xx.h. Since PR#14714, sublabel will be displayed as help if present.

2. it could be confirmed that this help text is currently not shown anywhere.
Examples are deprecated features (like DEBUG_INFO) or fully removed (like
CONFIRM_EXIT)

Some enum labels were just fixed to enable display.

Information can also be updated in several places, but let's keep it separate.
2022-12-12 05:53:49 +01:00
Francisco Javier Trujillo Mata b207ddbe84
[PS2] Use `ps2_drivers` library for simplify frontend (#14724)
* Use ps2_drivers

* improvements in frontend driver

* Resetting IOP drivers before load elf
2022-12-12 05:52:57 +01:00
github-actions b2d73c9bf2 Fetch translations from Crowdin 2022-12-12 00:11:37 +00:00
github-actions 844dfc9b60 Fetch translations from Crowdin 2022-12-11 00:12:39 +00:00
zoltanvb e6421f6f8b
Use sublabel as help text if there is no suitable definition. (#14714)
* Use sublabel as help text if there is no suitable definition.

* code style update
2022-12-10 18:06:45 +01:00
libretroadmin d08c6d2db3 Bump to version 1.14.0 2022-12-10 17:57:06 +01:00
Ruben Nine db9d3d3507
Allow coreaudio3 driver to work with audio devices that have 2 or more output channels. (#14715) 2022-12-10 16:08:26 +01:00
Jamiras c2f50a83bf
fix construction of badge path (#14712) 2022-12-10 08:40:40 +01:00
github-actions fc24410763 Fetch translations from Crowdin 2022-12-10 00:11:34 +00:00
github-actions 3a817dd956 Fetch translations from Crowdin 2022-12-09 00:13:07 +00:00
Rany 7b09cb2de4
Fix runtime error in FFmpeg core when build with FFmpeg n5.1.2 and OpenGL ES (#14710)
* include libavcodec/version.h in video_buffer.h

Without this header video_decoder_context_t may be defined as different structure
in video_buffer.c and ffmpeg_core.c

* Fix the wrong data pointer for glTexImage2D when OpenGL ES enabled
2022-12-08 12:45:07 +01:00
github-actions 2f7c29862c Fetch translations from Crowdin 2022-12-07 00:11:31 +00:00
github-actions 3532608588 Fetch translations from Crowdin 2022-12-06 00:11:40 +00:00
libretroadmin 56fe3d6629 Remove unused function 2022-12-05 21:40:51 +01:00
Denis Kopyrin a22bac091c
(macOS) Fixed cocoa keyboard not allowing to map Analog stick (#14701) 2022-12-05 16:12:19 +01:00
libretroadmin 573a82c0c8 Buildfix for Miyoo 2022-12-05 15:46:44 +01:00
libretroadmin 2c42912185 More header cleanups 2022-12-05 15:15:07 +01:00
libretroadmin 04f510d503 Cleanup header includes 2022-12-05 15:10:19 +01:00
libretroadmin daa4c19d18 Style nits/minor cleanups 2022-12-05 14:24:49 +01:00
libretroadmin fd59309fcd Cleanups 2022-12-05 14:03:21 +01:00
libretroadmin 30ea7da063 Cut down on header includes 2022-12-05 13:44:20 +01:00
libretroadmin 440c7a5ddf core_info_list_resolve_all_extensions - just use strlcat in here 2022-12-05 13:24:47 +01:00
libretroadmin 2ade990a08 (core_info.c) Style nits/cleanups and misc 2022-12-05 12:56:55 +01:00
github-actions a11555a3f2 Fetch translations from Crowdin 2022-12-05 00:12:09 +00:00
andymcca 3bf16013a3
Add Leapfrog (LFx000) Target (#14697)
This is to add a separate Makefile for the Leapfrog devices (primarily Leapster Explorer and LeapsterGS Explorer), intended to be used with the Retroleap project (https://github.com/mac2612/retroleap)  The Leapster Explorer SoC is essentially the same as the Miyoo v1, and as such I've based it on the Makefile for this device, but intend making a few config changes after a bit more testing and tailoring to both LF devices.
2022-12-04 22:53:13 +01:00
libretroadmin 91b77cf14a (Vulkan) Cleanups - use int for loop counter variables, don't do
some assignments that are already done directly after
2022-12-04 15:29:48 +01:00
libretroadmin fbfbb81133 (sdl_dingux) Put conditional around access of 'frame' pointer 2022-12-04 15:07:16 +01:00
andymcca 513370f715
(sdl rs_90) Replicate black screen fix #12521 (#14695)
Add the fix from PR #12521 to the RS90 driver
2022-12-04 15:06:00 +01:00
github-actions 32bea11cc3 Fetch translations from Crowdin 2022-12-04 00:12:42 +00:00
github-actions 09170c3290 Fetch translations from Crowdin 2022-12-03 00:10:39 +00:00
sonninnos 3791860488
Prevent MIDI startup error with old configurations (#14693) 2022-12-02 18:21:56 +01:00
sonninnos 5024809c85
Device Index menu refactor (#14691) 2022-12-02 17:47:53 +01:00
sonninnos 9e503a6106
Build warning fix win32 (#14692) 2022-12-02 17:47:07 +01:00
github-actions 632e902a3b Fetch translations from Crowdin 2022-12-01 00:14:11 +00:00
github-actions 74d0dd16fb Fetch translations from Crowdin 2022-11-30 00:12:51 +00:00
sonninnos 8e937ddd6a
MIDI driver cleanups (#14686) 2022-11-29 11:29:39 +01:00
LibretroAdmin c75af6194b
Extended IME and Korean OSK (#14676) 2022-11-29 04:45:55 +01:00
github-actions 68ee68bf7f Fetch translations from Crowdin 2022-11-29 00:13:02 +00:00
sonninnos 68773becc6
Extend OFF menu value colors (#14685) 2022-11-28 21:14:47 +01:00
sonninnos 02ab636d00
Explore thumbnail fixes (#14682) 2022-11-28 19:01:02 +01:00
github-actions 1bbc1508e4 Fetch translations from Crowdin 2022-11-28 00:12:13 +00:00
libretroadmin 192f4859e0 (GX) More buildfixes for Github CI 2022-11-27 23:46:30 +01:00
libretroadmin 16952aa23b (GX) Another header include buildfix 2022-11-27 23:41:21 +01:00
libretroadmin 9627e782aa (GX) Buildfixes 2022-11-27 23:37:08 +01:00
libretroadmin 8af051076c Another buildfix - circular dependencies can tend to be a drag 2022-11-27 23:14:30 +01:00
libretroadmin d26c1b7ca8 Buildfixes 2022-11-27 23:10:46 +01:00
libretroadmin cc37b7037f Move enum screensavers to menu_defines.h 2022-11-27 23:08:14 +01:00
libretroadmin 019ebce8c7 (RGUI) Buildfix 2022-11-27 23:00:43 +01:00
libretroadmin 38bc51f5c2 (config.def.h) only try to include define headers 2022-11-27 22:57:17 +01:00
libretroadmin 694b84937f (RGUI) Properly namespace some functions 2022-11-27 22:25:58 +01:00
libretroadmin f90ea7b065 Get rid of unused variable 2022-11-27 22:16:23 +01:00
LibretroAdmin fcd4dce445
Use only macros from now on in config.def.h (#14681) 2022-11-27 22:15:59 +01:00
sonninnos 7873378a98
Turn menu related config defaults from bools to defines (#14680) 2022-11-27 21:01:53 +01:00
libretroadmin 77f509ab3c (MaterialUI) Fix home screen on first startup - no more stray entries 2022-11-27 20:23:59 +01:00
sonninnos d03b77d4cf
Menu icon improvements (#14679) 2022-11-27 19:19:55 +01:00
LibretroAdmin bf456b7fe1
Update CHANGES.md 2022-11-27 10:31:38 +01:00
libretroadmin b0f337e95e Style nits:
* C comments
* Single line blocks don't need brackets
2022-11-27 10:23:12 +01:00
MajorPainTheCactus 7ebd8e190a
Fixes for d3d12 and d3d11 drivers when using shaders with TATE mode arcades etc (#14678)
Added support for break on errors in d3d12 (development aid)
Added support for DRED (device remove extended data) in d3d12 (development aid)
Made d3d12 viewport and scissors to behave more like vulkan drivers (or be more correct)
Fixed validation error on start up due to buffers not being setup correctly for one frame
2022-11-27 10:20:34 +01:00
github-actions d467cbd52d Fetch translations from Crowdin 2022-11-27 00:13:30 +00:00
libretroadmin 82ca2a8267 (sdl_gfx.c) Style nits 2022-11-26 21:06:55 +01:00
andymcca 083b14b85c
(sdl gfx) Replicate #12521 / Fix no menu on start (#14677)
#12521 fixes blank screens on the sdl_dingux driver, so just replicating that change here on the standard sdl_gfx driver.  Also, fix a problem where the menu will never show up in this driver, because you cannot blit to a surface in SDL while it is locked (i.e. after issuing an SDL_LockSurface command.
2022-11-26 21:05:30 +01:00
github-actions 31e549ce9c Fetch translations from Crowdin 2022-11-26 00:11:25 +00:00
libretroadmin b8eefbf0ab (MSVC 2017/2019) Change default buildbot cores URL from (non-existent) MSVC 2017 cores URL
to mainline windows x64 cores URL
2022-11-25 22:44:32 +01:00
github-actions 29fd4c1b3a Fetch translations from Crowdin 2022-11-25 00:11:45 +00:00
libretroadmin 03e71e651f (iOS) Get rid of this dead code - remnants of when we had a companion UI 2022-11-24 19:57:45 +01:00
andymcca 8368c2daad
Add 256x192 snn upscale function (Fuse core) (#14667)
Added snn function to upscale Fuse (ZX Spectrum) core borderless output to 320x240
2022-11-24 19:54:24 +01:00
sonninnos 88c1e276a3
Restore framelimit on fastforward toggle (#14668) 2022-11-24 16:53:52 +01:00
github-actions b403f5fc1f Fetch translations from Crowdin 2022-11-24 00:13:21 +00:00
libretroadmin 64f22ae2b2 (Qt) Style nits 2022-11-23 23:04:43 +01:00
libretroadmin c196eed3fd Remove useless forward declaration 2022-11-23 21:05:28 +01:00
libretroadmin e108fefc41 Remove video_driver_set_video_cache_context_ack - replace with single line 2022-11-23 20:55:05 +01:00
libretroadmin f062b74e26 Overlays/Input: Turn a bunch more functions static 2022-11-23 19:54:15 +01:00
libretroadmin 0cf1d86a3a (input_driver.c) Turn bunch of functions static that are never accessed outside
* Turn some variable / parameter names like 'joypad_driver_name' into 'joypad_drv_name'
so they are less likely to conflict with symbol names
2022-11-23 19:14:24 +01:00
libretroadmin 6e3f168c1c (sinc) Hopefully that's the last of these warnings 2022-11-23 18:07:53 +01:00
libretroadmin 8ed246be86 (sinc resampler) Silence warning
(MaterialUI) Style nits
2022-11-23 18:03:44 +01:00
libretroadmin f8043f847e (Qt) Remove some if 0 code blocks 2022-11-23 17:34:52 +01:00
LibretroAdmin c10dfca92c
Update CHANGES.md 2022-11-23 16:50:32 +01:00
sonninnos 9297ff44b7
(Ozone+XMB) Fix overlays behind menu without core running (#14663) 2022-11-23 16:48:58 +01:00
libretroadmin 16e0319e2e Remove unnecessary function ui_companion_set_foreground 2022-11-23 06:18:20 +01:00
libretroadmin 9bbe6992e2 (UI Companion) simplify boolean code by replacing it with flags 2022-11-23 06:14:56 +01:00
libretroadmin c39770e23c ui_browser_window_state_t - bools never used - remove 2022-11-23 06:00:20 +01:00
libretroadmin c309c102d8 Silence more warnings and create more of a distinction between variables
that belong to the runloop state vs. retroarch state
2022-11-23 05:28:07 +01:00
libretroadmin b84416ac7c (retroarch.c) Silence warnings 'value stored to runloop_st during its initialization
is never read'
2022-11-23 05:23:35 +01:00
libretroadmin 736a3034bb (materialUI) Silence signedness warnings 2022-11-23 05:20:17 +01:00
libretroadmin 3fbcde000c (string_list) Silence warning 2022-11-23 05:10:35 +01:00
libretroadmin 7dfaae58f9 (UI) Cleanups; style nits 2022-11-23 05:08:15 +01:00
libretroadmin d12a747e06 Update CHANGES.md 2022-11-23 04:18:41 +01:00
github-actions 5d82f19356 Fetch translations from Crowdin 2022-11-23 00:12:28 +00:00
libretroadmin 57acf1421b Remove workflow for fdroid as per Vinfall recommendation 2022-11-22 22:15:51 +01:00
libretroadmin aa0ae2cd3e Silence warnings 2022-11-22 18:34:04 +01:00
neil4 3b0db75782
Overlay cleanups; replace bools with flags (#14661) 2022-11-22 18:29:11 +01:00
libretroadmin 92e0403aeb general_push - add exception to populating setting 2022-11-22 17:44:34 +01:00
libretroadmin dd2d9d2f22 Simplify general_push 2022-11-22 17:40:21 +01:00
sonninnos e0e6810cf0
Allow toggling info off with the same button (#14660) 2022-11-22 17:23:19 +01:00
libretroadmin 5351aeaa4e (DRM Go2) fix to prior commit - not sure why this was missing 2022-11-22 17:11:11 +01:00
libretroadmin 623b925256 Implement get_video_size for DRM Go2 2022-11-22 17:09:51 +01:00
sonninnos ce1e59615a
(WinRaw) Fix mouse position when using input overlay with mouse cursor (#14659) 2022-11-22 16:50:17 +01:00
sonninnos 9bc7bebf51
More hotkey cleanups (#14657) 2022-11-22 14:45:30 +01:00
sonninnos aeaf5561bd
Fix libchdr warning (#14658) 2022-11-22 14:44:56 +01:00
libretroadmin 3e661ea42e Buildfix 2022-11-22 06:13:23 +01:00
libretroadmin a93a2186c0 (WiiU) Cleanups in aux code 2022-11-22 06:08:17 +01:00
libretroadmin 8db6197e4b (Wiiu) Cleanup of aux files 2022-11-22 05:49:46 +01:00
github-actions 1a87e1107b Fetch translations from Crowdin 2022-11-22 00:13:08 +00:00
libretroadmin e3f5d32401 general_push - simplifications 2022-11-21 23:11:34 +01:00
libretroadmin 1c9d3ad0bf Silence some warnings 2022-11-21 20:56:28 +01:00
LibretroAdmin b04853faf7
Runahead buildfixes #1 for Switch (#14655) 2022-11-21 20:16:10 +01:00
libretroadmin 8335e347f0 Simplify core_load_game 2022-11-21 19:41:57 +01:00
libretroadmin 065cdc87ac Final buildfixes for runahead 2022-11-21 19:38:15 +01:00
libretroadmin 6b71214ed7 Silence some signed/unsigned mismatch warnings 2022-11-21 19:34:43 +01:00
libretroadmin 0eed1c4853 Buildfixes for targets with no runahead support 2022-11-21 19:26:01 +01:00
libretroadmin cc3169febe (runloop) Cleanups 2022-11-21 19:11:55 +01:00
libretroadmin f21b878ed6 Disable 'Pause on Disconnect' by default 2022-11-21 18:12:53 +01:00
libretroadmin 6815383113 * Create runloop_state_free (instead of duplicated code lines in
retroarch.c and runloop.c
* Turn a whole bunch of unctions in runloop.c static as a consequence
2022-11-21 17:45:39 +01:00
sonninnos 10a74657c3
Move SRAM init to content init (#14653) 2022-11-21 15:24:58 +01:00
libretroadmin 6a098d37ac Use HAVE_DYLIB instead of HAVE_DYNAMIC when loading shared libraries 2022-11-21 05:37:35 +01:00
libretroadmin 3b38ea195f Use HAVE_DYLIB for loading dynamic libraries instead of HAVE_DYNAMIC 2022-11-21 05:23:43 +01:00
neil4 e71a5ff921
Overlay animation-related fixes (#14651)
- Fix analog drift blocking touch input (could occur on overlay_next if physical inputs shown on overlay)
- Fix overlay_next buttons lighting up in unison
- Skip meta keys in input_overlay_add_inputs (not supported by input_state_internal)
2022-11-21 04:48:34 +01:00
github-actions 8d499f577d Fetch translations from Crowdin 2022-11-21 00:13:10 +00:00
libretroadmin 59cce09186 Menu cleanups:
* Some control flow improvements in callback functions, less return
paths
* Remove menu_cbs_exit(), which was a stub function that always returned
-1
2022-11-20 18:55:07 +01:00
sonninnos e52b633e5a
Allow menu wallpaper/background reset (#14650) 2022-11-20 18:12:18 +01:00
sonninnos 43b6d59740
Command line output cleanups (#14649) 2022-11-20 16:48:29 +01:00
sonninnos 7275b82614
System Information cleanups (#14647) 2022-11-20 13:39:02 +01:00
sonninnos 3377fd55ab
Driver + hotkey list reorder (#14646)
* Reorder driver menu and lists

* Reorder hotkey list
2022-11-20 07:26:34 +01:00
LibretroAdmin 4e51ca6681
Update CHANGES.md 2022-11-20 01:37:03 +01:00
github-actions 40fa56bfdd Fetch translations from Crowdin 2022-11-20 00:13:17 +00:00
Vinfall 0c233bff4e
Add CI to dump default.txt for F-Droid release (#14644)
Co-authored-by: Vinfall <vinfall@users.noreply.github.com>
2022-11-19 23:34:07 +01:00
LibretroAdmin ce9051f8d0
Update .gitlab-ci.yml 2022-11-19 20:45:44 +01:00
LibretroAdmin ac08c0ce55
Update .gitlab-ci.yml 2022-11-19 17:47:30 +01:00
4702 changed files with 768876 additions and 279321 deletions

13
.dir-locals.el Normal file
View File

@ -0,0 +1,13 @@
;;; Directory Local Variables
;;; See Info node `(emacs) Directory Variables' for more information.
(
(c-mode . ((c-basic-offset . 3)
(c-file-offsets . ((arglist-intro . ++)
(arglist-cont-nonempty . ++)))
(eval . (setq-local c-cleanup-list
(cl-set-difference c-cleanup-list
'(brace-else-brace
brace-elseif-brace))))))
(objc-mode . ((c-basic-offset . 3)))
)

View File

@ -1,35 +0,0 @@
# First and foremost consider this:
- Only RetroArch bugs should be filed here. Not core bugs or game bugs
- This is not a forum or a help section, this is strictly developer oriented
## Description
[Description of the bug]
### Expected behavior
[What you expected to happen]
### Actual behavior
[What is actually happening]
### Steps to reproduce the bug
1. [First step]
2. [Second step]
3. [and so on...]
### Bisect Results
[Try to bisect and tell us when this started happening]
### Version/Commit
You can find this information under Information/System Information
- RetroArch: [version/commit]
### Environment information
- OS: [The operating system you're running]
- Compiler: [In case you are running local builds]

100
.github/ISSUE_TEMPLATE/01-bug-report.yml vendored Normal file
View File

@ -0,0 +1,100 @@
name: Bug report
description: This is not a forum or a help section, this is strictly developer oriented.
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Only RetroArch bugs should be filed here. Not core bugs or game bugs
options:
- label: This is a bug in RetroArch frontend
required: true
- label: I have searched the existing issues
- type: textarea
id: description
attributes:
label: Description
description: Description of the actual behavior of the bug
placeholder: What is actually happening
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: What you expected to happen
- type: textarea
id: reproduce_steps
attributes:
label: Steps to reproduce the bug
description: List all steps to reproduce the problem
placeholder: |
1. [First step]
2. [Second step]
3. [and so on...]
validations:
required: true
- type: input
id: version
attributes:
label: Version/Commit
description: You can find this information under Information/System Information
placeholder: 1.20.0 (Git ab3b175)
validations:
required: true
- type: input
id: bisecting
attributes:
label: Bisect Results
description: Did this work with any older RetroArch version? Can you point to a version (or even commit) where it broke?
placeholder: 43105ab
- type: dropdown
id: nigthly
attributes:
label: Present in the nightly version
description: Is the issue reproducible with current [nightly builds](https://buildbot.libretro.com/nightly/)?
options:
- I don't know
- Yes, this is reproduced in the nightly build
- No, looks like this is already resolved
default: 0
validations:
required: true
- type: input
id: platform
attributes:
label: Platform & operating system
description: The system you're running RetroArch on
placeholder: Linux aarch64, Windows 11 23H2, Android 14, PS Vita
validations:
required: true
- type: input
id: cores
attributes:
label: Affected Cores
description: List the affected cores and their versions here, if applicable. If the issue **only occurs with a single core** then the bug may not be with RetroArch; in that case, you should report it in that core's repository instead of here.
placeholder: bsnes (115), FCEUmm ((SVN) aebea87), Snes9x (1.63.229933ea)
- type: textarea
id: environment
attributes:
label: Environment information
description: Additional information about hardware and software
placeholder: |
* Window Manager: dwm/X11
* Affected video drivers: sdl2, glcore
* Installed through Flatpak
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Paste [RetroArch log](https://docs.libretro.com/guides/generating-retroarch-logs/) and/or [GDB backtrace](https://docs.libretro.com/development/retroarch/debugging/). This will be automatically formatted into code, so no need for backticks.
render: shell

View File

@ -0,0 +1,6 @@
---
name: Feature request
title: "[Feature Request] <FEATURE NAME>"
about: Is there something you'd like to see in RetroArch?
labels: feature request
---

14
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,14 @@
blank_issues_enabled: true
contact_links:
- name: Libretro Forums
url: https://forums.libretro.com
about: A place to discuss all things libretro
- name: Discord
url: https://ra-link.web.app/discord
about: Join our Discord server for help
- name: RetroArch/libretro subreddit
url: https://www.reddit.com/r/RetroArch
about: Subreddit dedicated to RetroArch and the libretro API framework
- name: Documentation
url: https://docs.libretro.com
about: Official RetroArch documentation for users and developers

View File

@ -9,6 +9,9 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
@ -17,7 +20,7 @@ jobs:
options: --user root
steps:
- uses: actions/checkout@v3
- uses: taiki-e/checkout-action@v1
- name: Compile Salamander
run: |
@ -27,13 +30,7 @@ jobs:
- name: Compile RA
run: |
make -f Makefile.ctr -j$(getconf _NPROCESSORS_ONLN) USE_CTRULIB_2=1 clean
make -f Makefile.ctr -j$(getconf _NPROCESSORS_ONLN) USE_CTRULIB_2=1 HAVE_STATIC_DUMMY=1
make -f Makefile.ctr -j$(getconf _NPROCESSORS_ONLN) USE_CTRULIB_2=1 HAVE_STATIC_DUMMY=1 info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-3DS-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch_3ds.cia

38
.github/workflows/Android.yml vendored Normal file
View File

@ -0,0 +1,38 @@
name: CI Android
on:
push:
pull_request:
workflow_dispatch:
repository_dispatch:
types: [run_build]
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
cd pkg/android/phoenix
./gradlew assembleDebug
find . -iname "*.apk" -exec ls -l "{}" \;
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v4
with:
name: retroarch-android-${{ steps.slug.outputs.sha8 }}
path: |
pkg/android/phoenix/build/outputs/apk/normal/debug/phoenix-normal-debug.apk
pkg/android/phoenix/build/outputs/apk/aarch64/debug/phoenix-aarch64-debug.apk

View File

@ -9,26 +9,29 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-djgpp-build-container:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
make -f Makefile.dos -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.dos -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1
make -f Makefile.dos -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1 info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: RA-DOS-dummy-${{ steps.slug.outputs.sha8 }}
path: |

View File

@ -9,16 +9,19 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-emscripten:latest
options: --user root
steps:
- uses: actions/checkout@v3
- uses: taiki-e/checkout-action@v1
- name: Compile RA
run: |
emmake make -f Makefile.emscripten -j$(getconf _NPROCESSORS_ONLN) clean
@ -27,9 +30,4 @@ jobs:
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-Emscripten-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch.js

View File

@ -9,26 +9,24 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-devkitpro:latest
options: --user root
steps:
- uses: actions/checkout@v3
- uses: taiki-e/checkout-action@v1
- name: Compile RA
run: |
make -f Makefile.ngc -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.ngc -j$(getconf _NPROCESSORS_ONLN) EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 HAVE_STATIC_DUMMY=1
make -f Makefile.ngc -j$(getconf _NPROCESSORS_ONLN) EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 HAVE_STATIC_DUMMY=1 info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-GameCube-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch_ngc.dol

37
.github/workflows/Linux.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: CI Linux (i686)
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-i386-ubuntu:xenial-gcc9
options: --user root
steps:
- name: Check Out Repo
uses: taiki-e/checkout-action@v1
- name: Configure Build
run: |
./configure --disable-qt --enable-xdelta
- name: Compile RA
run: |
make -j$(getconf _NPROCESSORS_ONLN) clean
make -j$(getconf _NPROCESSORS_ONLN) info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"

58
.github/workflows/MSVC.yml vendored Normal file
View File

@ -0,0 +1,58 @@
name: CI Windows (MSVC)
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
# These jobs run smoke tests to ensure that MSVC-specific builds work properly.
jobs:
msvc:
runs-on: windows-2022
strategy:
matrix:
version: [UWP, 2019, 2022]
configuration: [Debug, Release]
platform: [x64]
exclude:
- version: UWP
configuration: Debug
include:
- version: UWP
configuration: ReleaseAngle
platform: x64
# Qt and Cg builds are excluded for now
steps:
- uses: actions/checkout@v4
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1
- name: Compile RA
working-directory: "${{github.workspace}}/pkg/msvc${{ matrix.version == 'UWP' && '-uwp' || ''}}"
run: |
msbuild -p:"Configuration=${{matrix.configuration}}" -p:"Platform=${{matrix.platform}}" .\RetroArch-msvc${{matrix.version}}.sln
- name: Get short SHA
id: slug
shell: powershell
run: echo "sha8=$('${{github.sha}}'.Substring(0,8))" >> $env:GITHUB_OUTPUT
# https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
- uses: actions/upload-artifact@v4
with:
name: retroarch-${{matrix.version}}-${{matrix.configuration}}-${{matrix.platform}}-${{ steps.slug.outputs.sha8 }}
path: |
${{ matrix.version != 'UWP' }}:
pkg/msvc/${{matrix.platform}}/${{matrix.configuration}}/RetroArch-msvc${{matrix.version}}.exe
${{ matrix.version == 'UWP' }}:
pkg/msvc-uwp/AppPackages/RetroArch-msvcUWP

77
.github/workflows/MSYS2.yml vendored Normal file
View File

@ -0,0 +1,77 @@
name: CI Windows (MSYS2)
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
msys2-build-test:
strategy:
fail-fast: false
matrix:
sys: [MINGW64, UCRT64,CLANG64]
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.sys }}
update: true
install: base-devel git
pacboy: >-
gettext:p
gobject-introspection:p
graphite2:p
p11-kit:p
qt6:p
qt6-3d:p
qt6-charts:p
qt6-datavis3d:p
qt6-imageformats:p
qt6-location:p
qt6-lottie:p
qt6-networkauth:p
qt6-quick3dphysics:p
qt6-quicktimeline:p
qt6-remoteobjects:p
qt6-scxml:p
qt6-sensors:p
qt6-serialbus:p
qt6-speech:p
qt6-tools:p
qt6-translations:p
qt6-virtualkeyboard:p
qt6-webchannel:p
qt6-websockets:p
x264:p
cc:p
- name: Configure and build RetroArch
shell: msys2 {0}
run: |
echo "Building RetroArch in ${{ matrix.sys }} environment"
./configure
make -j$(nproc) info all
- name: Collect DLLs and binaries
shell: msys2 {0}
run: |
echo "Collecting DLLs and binaries"
mkdir -p dist
cp retroarch.exe dist/
ldd retroarch.exe|grep $MINGW_PREFIX |awk '{print $3}'|xargs -I {} cp {} dist/
- name: Archive build artifacts
if: success()
uses: actions/upload-artifact@v4
with:
name: retroarch-${{ matrix.sys }}
path: dist/

33
.github/workflows/MacOS.yml vendored Normal file
View File

@ -0,0 +1,33 @@
name: CI macOS
on:
push:
pull_request:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
set -o pipefail
xcodebuild -workspace pkg/apple/RetroArch.xcworkspace -scheme RetroArch -config Release -xcconfig pkg/apple/GitHubCI.xcconfig -derivedDataPath build | xcpretty --color
- name: Get short SHA
id: slug
run: echo "sha8=$(echo ${GITHUB_SHA} | cut -c1-8)" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v4
with:
name: RetroArch-${{ steps.slug.outputs.sha8 }}
path: |
build/Build/Products/Release

View File

@ -9,26 +9,29 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-dingux:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.miyoo clean
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.miyoo
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.miyoo info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: retroarch_miyoo_arm32${{ steps.slug.outputs.sha8 }}
path: |

View File

@ -9,33 +9,36 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-ps2:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile Salamander
run: |
make -f Makefile.ps2.salamander -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.ps2.salamander -j$(getconf _NPROCESSORS_ONLN) release
- name: Compile RA
run: |
make -f Makefile.ps2 -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.ps2 -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1 release
make -f Makefile.ps2 -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1 info release
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: RA-PS2-dummy-${{ steps.slug.outputs.sha8 }}
path: |
raboot.elf
retroarchps2.elf
retroarchps2.elf

44
.github/workflows/PS3-PSL1GHT.yml vendored Normal file
View File

@ -0,0 +1,44 @@
name: CI PS3/PSL1GHT
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-psl1ght:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile Salamander
run: |
make -f Makefile.psl1ght.salamander -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.psl1ght.salamander -j$(getconf _NPROCESSORS_ONLN)
- name: Compile RA
run: |
make -f Makefile.psl1ght -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.psl1ght -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1 info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v4
with:
name: RA-psl1ght-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch_psl1ght_salamander.elf
retroarch_psl1ght.elf

View File

@ -9,10 +9,13 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-orbis:latest
options: --user root
@ -24,17 +27,17 @@ jobs:
apk add ncurses-dev make bash python2
apk add libintl icu-dev wget
wget https://dot.net/v1/dotnet-install.sh && chmod 755 dotnet-install.sh && ./dotnet-install.sh -c 3.0 --install-dir ~/cli
- name: Compile RA
run: |
export PATH=~/cli:$PATH # .net cli
make -f Makefile.orbis -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1
make -f Makefile.orbis -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1 info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: bin-${{ steps.slug.outputs.sha8 }}
path: |

View File

@ -9,16 +9,19 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-psp:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile bootstrap
run: |
cd bootstrap/psp1/kernel_functions_prx
@ -29,7 +32,7 @@ jobs:
run: |
make -f Makefile.psp1.salamander -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.psp1.salamander -j$(getconf _NPROCESSORS_ONLN)
- name: Compile RA
run: |
make -f Makefile.psp1 -j$(getconf _NPROCESSORS_ONLN) clean
@ -38,8 +41,8 @@ jobs:
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: RA-PSP-dummy-${{ steps.slug.outputs.sha8 }}
path: |

View File

@ -9,30 +9,33 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-vita:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile Salamander
run: |
make -f Makefile.vita.salamander -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.vita.salamander -j$(getconf _NPROCESSORS_ONLN)
- name: Compile RA
run: |
make -f Makefile.vita -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.vita -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1 HAVE_VITAGLES=1
make -f Makefile.vita -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1 HAVE_VITAGLES=1 info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: RA-PSVita-dummy-${{ steps.slug.outputs.sha8 }}
path: |

View File

@ -9,26 +9,29 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-dingux:odbeta
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.rs90 clean
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.rs90
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.rs90 info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: retroarch_rs90_mips32${{ steps.slug.outputs.sha8 }}
path: |

View File

@ -9,26 +9,29 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-dingux:odbeta
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.retrofw clean
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.retrofw
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.retrofw info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: retroarch_retrofw_mips32${{ steps.slug.outputs.sha8 }}
path: |

52
.github/workflows/SourceRelease.yml vendored Normal file
View File

@ -0,0 +1,52 @@
name: CI Generate Source Only Tarball
# Trigger whenever a release and/or is created
on:
release:
types:
- created
push:
tags:
- "v*.*"
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: archive
id: archive
run: |
VERSION=${GITHUB_REF##*/}
test -z "$VERSION" && VERSION=${{ github.event.release.tag_name }}
VERSION=$(printf "%s\n" "$VERSION" | sed 's/^v//')
PKGNAME="retroarch-sourceonly-$VERSION"
mkdir -p /tmp/$PKGNAME
mv * /tmp/$PKGNAME
mv /tmp/$PKGNAME .
rm -rf $PKGNAME/pkg || true
rm -rf $PKGNAME/wii/libogc || true
rm -rf $PKGNAME/deps/glslang/glslang/Test || true
rm -rf $PKGNAME/deps/SPIRV-Cross/reference || true
rm -rf $PKGNAME/gfx/include/userland || true
find $PKGNAME/ -type f -name '*.a' -delete || true
find $PKGNAME/ -type f -name '*.lib' -delete || true
find $PKGNAME/ -type f -name '*.dylib' -delete || true
find $PKGNAME/ -type f -name '*.so.*' -delete || true
find $PKGNAME/ -type f -name '*.dll' -delete || true
TARBALL=$PKGNAME.tar.xz
tar cJf $TARBALL $PKGNAME
echo "tarball=$TARBALL" >> $GITHUB_OUTPUT
- name: upload tarball
uses: softprops/action-gh-release@v2
with:
files: ${{ steps.archive.outputs.tarball }}

View File

@ -9,16 +9,19 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-libnx-devkitpro:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
make -f Makefile.libnx -j$(getconf _NPROCESSORS_ONLN) clean
@ -26,8 +29,8 @@ jobs:
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: RA-libnx-dummy-${{ steps.slug.outputs.sha8 }}
path: |

View File

@ -9,31 +9,29 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-devkitpro:latest
options: --user root
steps:
- uses: actions/checkout@v3
- uses: taiki-e/checkout-action@v1
- name: Compile Salamander
run: |
make -f Makefile.wii.salamander -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.wii.salamander -j$(getconf _NPROCESSORS_ONLN) EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0
- name: Compile RA
run: |
make -f Makefile.wii -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.wii -j$(getconf _NPROCESSORS_ONLN) EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 HAVE_STATIC_DUMMY=1
make -f Makefile.wii -j$(getconf _NPROCESSORS_ONLN) EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 HAVE_STATIC_DUMMY=1 info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-Wii-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch_wii.dol

View File

@ -9,31 +9,28 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-wiiu:latest
options: --user root
steps:
- uses: actions/checkout@v3
- uses: taiki-e/checkout-action@v1
- name: Compile Salamander
run: |
make -f Makefile.wiiu -j$(getconf _NPROCESSORS_ONLN) SALAMANDER_BUILD=1 clean
make -f Makefile.wiiu -j$(getconf _NPROCESSORS_ONLN) SALAMANDER_BUILD=1
- name: Compile RA
run: |
make -f Makefile.wiiu -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.wiiu -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1
make -f Makefile.wiiu -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1 info all
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-WiiU-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch.rpx

View File

@ -9,16 +9,19 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-mxe-win32-cross:gcc10
options: --user root
steps:
- uses: actions/checkout@v3
- uses: taiki-e/checkout-action@v1
- name: Compile RA
run: |
export MOC=/usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/bin/moc
@ -29,9 +32,3 @@ jobs:
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: retroarch${{ steps.slug.outputs.sha8 }}
path: |
retroarch.exe

View File

@ -9,16 +9,19 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
container:
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-mxe-win64-cross:gcc10
options: --user root
steps:
- uses: actions/checkout@v3
- uses: taiki-e/checkout-action@v1
- name: Compile RA
run: |
export MOC=/usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin/moc
@ -29,9 +32,3 @@ jobs:
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: retroarch${{ steps.slug.outputs.sha8 }}
path: |
retroarch.exe

View File

@ -16,12 +16,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Setup Java JDK
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: 18
distribution: zulu
- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Checkout

View File

@ -18,12 +18,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Setup Java JDK
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: 18
distribution: zulu
- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Checkout

View File

@ -13,6 +13,9 @@ on:
permissions:
contents: read
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
linux-c89: # Smoketest build using most restrictive compiler and default options
runs-on: ubuntu-latest
@ -30,4 +33,4 @@ jobs:
- name: Build Debug
run: |
make clean # making sure we don't have leftovers from previous build
make DEBUG=1 GL_DEBUG=1 C89_BUILD=1
make DEBUG=1 GL_DEBUG=1 C89_BUILD=1 info all

101
.github/workflows/webOS.yml vendored Normal file
View File

@ -0,0 +1,101 @@
name: CI webOS
on:
push:
tags-ignore:
- '*'
branches:
- '*'
pull_request:
release:
types: [ published ]
repository_dispatch:
types: [ run_build ]
env:
PACKAGE_NAME: com.retroarch.webos
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check Out Repo
uses: actions/checkout@v4
- name: Download ares-cli-rs
uses: robinraju/release-downloader@v1.11
with:
repository: "webosbrew/ares-cli-rs"
latest: true
fileName: "ares-package_*.deb"
out-file-path: "temp"
- name: Download Manifest Generator
uses: robinraju/release-downloader@v1.9
with:
repository: "webosbrew/dev-toolbox-cli"
latest: true
fileName: "webosbrew-toolbox-gen-manifest_*.deb"
out-file-path: "temp"
- name: Update packages
run: sudo apt-get -yq update
- name: Install webOS CLI
run: sudo apt-get -yq install ./temp/*.deb
- name: Download webOS NDK
uses: robinraju/release-downloader@v1.11
with:
repository: "openlgtv/buildroot-nc4"
latest: true
fileName: "arm-webos-linux-gnueabi_sdk-buildroot-x86_64.tar.gz"
out-file-path: "/tmp"
- name: Extract webOS NDK
shell: bash
working-directory: /tmp
run: |
tar xzf arm-webos-linux-gnueabi_sdk-buildroot-x86_64.tar.gz
./arm-webos-linux-gnueabi_sdk-buildroot/relocate-sdk.sh
- name: Compile RA
shell: bash
run: |
. /tmp/arm-webos-linux-gnueabi_sdk-buildroot/environment-setup
make -f Makefile.webos ipk PACKAGE_NAME=${PACKAGE_NAME} ADD_SDL2_LIB=1 -j$(getconf _NPROCESSORS_ONLN)
env:
DEBUG: ${{ github.event_name == 'release' && '0' || '1' }}
- name: Get short SHA
id: slug
run: echo "sha8=$(echo ${GITHUB_SHA} | cut -c1-8)" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v4
with:
name: com.retroarch.webos_${{ steps.slug.outputs.sha8 }}_arm.ipk
path: |
webos/*.ipk
- name: Generate Manifest
shell: bash
run: |
. version.all
webosbrew-gen-manifest -o webos/${PACKAGE_NAME}.manifest.json \
-p webos/${PACKAGE_NAME}_${RARCH_VERSION}_arm.ipk \
-i https://github.com/webosbrew/RetroArch/raw/webos/webos/icon160.png \
-l https://github.com/webosbrew/RetroArch
- name: Release
if: github.event_name == 'release'
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.event.release.tag_name }}
allowUpdates: true
omitNameDuringUpdate: true
omitBody: true
omitPrereleaseDuringUpdate: true
artifacts: webos/*.ipk,webos/*.manifest.json

75
.gitignore vendored
View File

@ -1,7 +1,11 @@
*.o
*.obj
*.pdb
*.exe
*.bmpobj
*.binobj
*.so
*.so.*
*.dll
*.a
*.elf
@ -10,13 +14,14 @@
*.swp
*.cache
*.gcda
*.lcbk
*.gcno
.tmp
.tmp.c
.tmp.cxx
.moc.h
.moc.cpp
config.log
*.log
/.project
/.externalToolBuilders/
/retroarch
@ -25,8 +30,6 @@ config.log
/retroarch_debug.exe
/config.h
/config.mk
/tools/retroarch-joyconfig
/tools/retroarch-joyconfig.exe
*.ncb
*.sdf
*.opensdf
@ -94,6 +97,10 @@ database
overlays
playlists
states
cheats
thumbnails
docs/html
system
shaders/shaders_cg
shaders/shaders_glsl
shaders/shaders_slang
@ -132,6 +139,7 @@ wiiu/wut/elf2rpl/elf2rpl
# CLion
/cmake-build-debug/
.run
# Android
/pkg/android/phoenix/obj/
@ -140,7 +148,6 @@ wiiu/wut/elf2rpl/elf2rpl
/pkg/android/phoenix/bin/
/pkg/android/phoenix/gen/
/pkg/android/phoenix/local.properties
/pkg/android/phoenix/gradle.properties
/pkg/android/phoenix/.gradle
/pkg/android/phoenix/.externalNativeBuild
/pkg/android/phoenix/build
@ -152,6 +159,7 @@ wiiu/wut/elf2rpl/elf2rpl
/media/shaders_cg/
/media/libretrodb/
compile_commands.json
pkg/apple/iOS/build/
pkg/apple/build/
ui/drivers/qt/moc_*
@ -160,23 +168,26 @@ ui/drivers/moc_*
obj-unix/
.vagrant/
/pkg/msvc/Release Cg/*.exe
# Visual Studio
/pkg/msvc/Release Cg/*.iobj
/pkg/msvc/Release Cg/*.ipdb
/pkg/msvc/Release Cg/*.pdb
/pkg/msvc/Release Cg/*.lpl
/pkg/msvc/Release Cg/*.cfg
/pkg/msvc/*.db
/pkg/msvc/.vs
/pkg/msvc/*/.vs
/pkg/msvc/msvc-2010/Release Cg/RetroArc.27FF7CE1.tlog/*.tlog
/pkg/msvc/msvc-2010/Release Cg/RetroArc.27FF7CE1.tlog/*.lastbuildstate
/pkg/msvc/msvc-2010/Release Cg/*.log
/pkg/msvc/msvc-2010/Release Cg/*.obj
/pkg/msvc/msvc-2010/Release Cg/*.res
/pkg/msvc/msvc-2010/Release Cg/*.pdb
*.tlog
*.lastbuildstate
*.FileListAbsolute.txt
*.res
retroarch.cfg
Makefile.local
pkg/msvc/**/ARM
pkg/msvc/**/ARM64
pkg/msvc/**/* Cg
pkg/msvc/**/* QT
pkg/msvc/**/* QT+CG
pkg/msvc/**/x64
# Emscripten artifacts
@ -184,6 +195,8 @@ retroarch.js
retroarch.js.mem
*.bc
*.wasm
*.wasm.map
obj-emscripten/
# only ignore .js files in the repo root
/*.js
@ -201,6 +214,10 @@ retroarch_switch.nso
*_irx.c
# Wayland
gfx/common/wayland/fractional-scale-v1.c
gfx/common/wayland/fractional-scale-v1.h
gfx/common/wayland/viewporter.c
gfx/common/wayland/viewporter.h
gfx/common/wayland/idle-inhibit-unstable-v1.c
gfx/common/wayland/idle-inhibit-unstable-v1.h
gfx/common/wayland/xdg-shell-unstable-v6.c
@ -209,6 +226,22 @@ gfx/common/wayland/xdg-decoration-unstable-v1.h
gfx/common/wayland/xdg-decoration-unstable-v1.c
gfx/common/wayland/xdg-shell.c
gfx/common/wayland/xdg-shell.h
gfx/common/wayland/pointer-constraints-unstable-v1.c
gfx/common/wayland/pointer-constraints-unstable-v1.h
gfx/common/wayland/relative-pointer-unstable-v1.c
gfx/common/wayland/relative-pointer-unstable-v1.h
gfx/common/wayland/viewporter.c
gfx/common/wayland/viewporter.h
gfx/common/wayland/cursor-shape-v1.h
gfx/common/wayland/cursor-shape-v1.c
gfx/common/wayland/tablet-unstable-v2.h
gfx/common/wayland/tablet-unstable-v2.c
gfx/common/wayland/content-type-v1.h
gfx/common/wayland/content-type-v1.c
gfx/common/wayland/single-pixel-buffer-v1.h
gfx/common/wayland/single-pixel-buffer-v1.c
gfx/common/wayland/xdg-toplevel-icon-v1.h
gfx/common/wayland/xdg-toplevel-icon-v1.c
# libretro-common samples
libretro-common/samples/streams/rzip/rzip
@ -227,3 +260,21 @@ param.sfo
# Visual Studio Code
.vscode/
# Clazy
*.clazy.yaml
# PSL1GHT
*.SELF
EBOOT.BIN
pkg/psl1ght/*.pkg
modern_alpha_blend_fpo.h
modern_alpha_blend_vpo.h
modern_opaque_fpo.h
modern_opaque_vpo.h
gfx/drivers/rsx_shaders/modern_alpha_blend.fpo
gfx/drivers/rsx_shaders/modern_alpha_blend.vpo
gfx/drivers/rsx_shaders/modern_opaque.fpo
gfx/drivers/rsx_shaders/modern_opaque.vpo
pkg/psl1ght/pkg/USRDIR/shaders_cg/
!pkg/psl1ght/pkg/USRDIR/system/

View File

@ -331,7 +331,7 @@ build-retroarch-linux-i686:
.build-retroarch-macos-xcode:
# Metal/Universal x86_64 arm64 is default
tags:
- macosx-packaging
- mac-apple-silicon
stage: build
variables:
XCARCHIVE_PATH: pkg/apple/build/RetroArchUniversal
@ -345,12 +345,11 @@ build-retroarch-linux-i686:
dependencies: []
script:
- xcodebuild -project pkg/apple/${XCPROJECT_NAME}.xcodeproj -config Release -scheme RetroArch -archivePath ${XCARCHIVE_PATH} -xcconfig pkg/apple/${XCCONFIG} archive
- pushd ${XCARCHIVE_PATH}.xcarchive/Products/Users/gitlab/Applications/
- ditto -c -k --sequesterRsrc --keepParent RetroArch.app RetroArch.zip
- popd
- mv ${XCARCHIVE_PATH}.xcarchive/Products/Users/gitlab/Applications/RetroArch.zip ${XCPROJECT_NAME}.zip
- xcodebuild -exportArchive -archivePath ${XCARCHIVE_PATH}.xcarchive -exportPath . -exportOptionsPlist pkg/apple/OSX/ExportOptions.plist
- ditto -c -k --sequesterRsrc --keepParent RetroArch.app ${XCPROJECT_NAME}.zip
- mkdir .retroarch-repo
- "cp -r ./* .retroarch-repo"
- "cp -R ./* .retroarch-repo"
- echo '#define GIT_VERSION ' $(git rev-parse --short HEAD) > .retroarch-repo/.git_version.h
- "mv .retroarch-repo/ retroarch-repo/"
# Mac OS Universal, Metal
@ -359,6 +358,8 @@ build-retroarch-osx-universal-metal:
build-retroarch-osx-opengl-x64:
extends: .build-retroarch-macos-xcode
tags:
- macosx-packaging
variables:
XCARCHIVE_PATH: pkg/apple/build/RetroArchOpenGL
XCPROJECT_NAME: RetroArch
@ -390,21 +391,25 @@ build-retroarch-osx-opengl-x64:
build-retroarch-ios-arm64:
extends: .build-retroarch-macos-xcode
variables:
XCPROJECT_NAME: RetroArch_iOS11_Metal
XCPROJECT_NAME: RetroArch_iOS13
XCCONFIG: GitLabCI.xcconfig
XCSCHEME: "RetroArch iOS Release"
XCDESTINATION: "generic/platform=iOS"
artifacts:
paths:
- retroarch-repo/
expire_in: 10 min
script:
- xcodebuild -project pkg/apple/${XCPROJECT_NAME}.xcodeproj -config Release -scheme "${XCSCHEME}" -xcconfig pkg/apple/iOS/GitLabCI.xcconfig build
- xcodebuild -project pkg/apple/${XCPROJECT_NAME}.xcodeproj -destination ${XCDESTINATION} -config Release -scheme "${XCSCHEME}" -xcconfig pkg/apple/iOS/${XCCONFIG} build
- mkdir .retroarch-repo
- "cp -r ./* .retroarch-repo"
- echo '#define GIT_VERSION ' $(git rev-parse --short HEAD) > .retroarch-repo/.git_version.h
- "mv .retroarch-repo/ retroarch-repo/"
build-retroarch-ios9:
extends: .build-retroarch-macos-xcode
tags:
- macosx-packaging
variables:
XCPROJECT_NAME: RetroArch_iOS9
XCCONFIG: GitLabCI.xcconfig
@ -417,12 +422,14 @@ build-retroarch-ios9:
- xcodebuild -project pkg/apple/${XCPROJECT_NAME}.xcodeproj -config Release -scheme "${XCSCHEME}" -xcconfig pkg/apple/iOS/GitLabCI.xcconfig build
- mkdir .retroarch-repo
- "cp -r ./* .retroarch-repo"
- echo '#define GIT_VERSION ' $(git rev-parse --short HEAD) > .retroarch-repo/.git_version.h
- "mv .retroarch-repo/ retroarch-repo/"
build-retroarch-tvos-arm64:
extends: build-retroarch-ios-arm64
variables:
XCSCHEME: "RetroArch tvOS Release"
XCDESTINATION: "generic/platform=tvOS"
build-retroarch-dingux-mips32:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-dingux:latest

View File

@ -1,191 +0,0 @@
{
"configurations": [
{
"name": "Mac",
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}",
"${workspaceRoot}/libretro-common/include"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"macFrameworkPath": [
"/System/Library/Frameworks",
"/Library/Frameworks"
]
},
{
"name": "Linux",
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}",
"${workspaceFolder}/libretro-common/include",
"${workspaceRoot}/libretro-common/include"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "Win32",
"includePath": [
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt",
"${workspaceRoot}",
"${workspaceFolder}/libretro-common/include"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"cStandard": "c11",
"cppStandard": "c++17",
"configurationProvider": "ms-vscode.makefile-tools"
},
{
"name": "msys2-mingw32",
"includePath": [
"C:/msys64/mingw32/include",
"C:/msys64/mingw32/i686-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/msys64/mingw32/include",
"C:/msys64/mingw32/i686-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "msys2-mingw64",
"includePath": [
"C:/msys64/mingw64/include",
"C:/msys64/mingw64/x86_64-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/msys64/mingw64/include",
"C:/msys64/mingw64/x86_64-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "Switch",
"includePath": [
"/opt/devkitpro/devkitA64/aarch64-none-elf/include",
"/opt/devkitpro/devkitA64/lib/gcc/aarch64-none-elf/8.3.0/include",
"/opt/devkitpro/libnx/include",
"/opt/devkitpro/portlibs/switch/include",
"/opt/devkitpro/portlibs/switch/include/freetype2",
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"__aarch64__",
"__SWITCH__",
"HAVE_LIBNX"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "/opt/devkitpro/devkitA64/bin/aarch64-none-elf-gcc",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "gcc-x64"
},
{
"name": "WiiU",
"includePath": [
"/opt/devkitpro/devkitPPC/powerpc-eabi/include",
"/opt/devkitpro/devkitPPC/lib/gcc/powerpc-eabi/6.3.0/include",
"/opt/devkitpro/portlibs/ppc/include",
"${workspaceFolder}/**"
],
"defines": [
"WIIU",
"WIIU_HID"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "/opt/devkitpro/devkitPPC/bin/powerpc-eabi-gcc",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "gcc-x64"
},
{
"name": "ps2sdk-ee",
"includePath": [
"${env:PS2DEV}/ps2sdk/common/include",
"${env:PS2DEV}/ps2sdk/ee/include",
"${env:PS2DEV}/gsKit/include",
"${workspaceFolder}/**"
],
"defines": [
"PS2",
"_EE"
],
"compilerPath": "${env:PS2DEV}/ee/bin/mips64r5900el-ps2-elf-gcc",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}

70
.vscode/launch.json vendored
View File

@ -1,70 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/retroarch.exe",
"args": ["-v"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "c:\\msys64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "(gdb) Attach",
"type": "cppdbg",
"request": "attach",
"program": "${workspaceFolder}/retroarch.exe",
"processId": "${command:pickProcess}",
"MIMode": "gdb",
"miDebuggerPath": "c:\\msys64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "PSP-GDB Debugger",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/retroarchpsp.elf",
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"setupCommands": [
{
"text": "symbol-file ${workspaceFolder}/retroarchpsp.elf",
"description": "read symbols for elf file",
"ignoreFailures": true
},
{
"description": "Enable all-exceptions",
"text": "-exec \"catch throw\"",
"ignoreFailures": true
}
],
"showDisplayString": true,
"targetArchitecture": "mips",
"MIMode": "gdb",
"miDebuggerPath": "/usr/local/pspdev/bin/psp-gdb",
"miDebuggerServerAddress": "127.0.0.1:10001",
}
]
}

43
.vscode/settings.json vendored
View File

@ -1,43 +0,0 @@
{
/*"terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe",
"terminal.integrated.env.windows": {
"PATH": "/mingw64/lib/ccache/bin:/mingw64/lib/ccache/bin:/mingw64/lib/ccache/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:$PATH",
"MSYSTEM": "MINGW64",
},*/
"terminal.integrated.cursorBlinking": true,
"editor.tabSize": 3,
"editor.detectIndentation": false,
"editor.renderWhitespace": "all",
"editor.insertSpaces": true,
"editor.formatOnSave": false,
"editor.ruler": [80],
"files.associations": {
"*.h": "c",
"*.in": "c",
"*.rh": "c",
"array": "c",
"iosfwd": "c",
"xlocbuf": "c",
"xmemory0": "c",
"ios": "c",
"list": "c",
"unordered_map": "c",
"unordered_set": "c",
"sstream": "cpp",
"hash_map": "c",
"hash_set": "c",
"initializer_list": "c",
"string_view": "c",
"utility": "c",
"thread": "c",
"xlocale": "c",
"deque": "c",
"vector": "c",
"xhash": "c",
"xiosbase": "c",
"xstring": "c",
"xtree": "c",
"xutility": "c"
},
"C_Cpp.dimInactiveRegions": false,
}

128
.vscode/tasks.json vendored
View File

@ -1,128 +0,0 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "linux clean build",
"type": "shell",
"group": "build",
"command": "make clean && ./configure && make -j12"
},
{
"label": "linux clean",
"type": "shell",
"group": "build",
"command": "make clean"
},
{
"label": "linux build with debug symbols",
"type": "shell",
"group": "build",
"command": "DEBUG=1 make -j12"
},
{
"label": "linux build",
"type": "shell",
"group": "build",
"command": "make -j12"
},
{
"label": "linux build and run",
"type": "shell",
"group": "build",
"command": "make -j12 && ./retroarch -v"
},
{
"label": "linux build and run with debug symbols",
"type": "shell",
"group": "build",
"command": "DEBUG=1 make -j12 && ./retroarch -v"
},
{
"label": "msys2-mingw64 build",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"command": "./configure; make -j2",
"options": {
"shell": {
"executable": "C:\\msys64\\usr\\bin\\bash.exe",
"args": [
"-c"
]
}
}
},
{
"label": "msys2-mingw64 build with debug symbols",
"type": "shell",
"group": "build",
"command": "./configure; DEBUG=1 make -j2",
"options": {
"shell": {
"executable": "C:\\msys64\\usr\\bin\\bash.exe",
"args": [
"-c"
]
}
}
},
{
"label": "msys2-mingw64 rebuild",
"type": "shell",
"group": "build",
"command": "make -j2",
"options": {
"shell": {
"executable": "C:\\msys64\\usr\\bin\\bash.exe",
"args": [
"-c"
]
}
}
},
{
"label": "msys2-mingw64 clean",
"type": "shell",
"group": "build",
"command": "make clean",
"options": {
"shell": {
"executable": "C:\\msys64\\usr\\bin\\bash.exe",
"args": [
"-c"
]
}
}
},
{
"label": "msys2-mingw64 run",
"type": "shell",
"group": {
"kind": "test",
"isDefault": true },
"command": "./retroarch -v",
"options": {
"shell": {
"executable": "C:\\msys64\\usr\\bin\\bash.exe",
"args": [
"-c"
]
}
}
}
]
}

View File

@ -231,6 +231,7 @@ Jean-Sébastien Guay (Skylark13)
Jeff (jeffbdavenport)
Jeff Sousa (LordeIlluminati)
jess (winneon)
Jesse Talavera-Greenberg (JesseTG)
Joan Coll Cerdán (johanbcn)
Job Adrian Salinas Gonzalez (efylan)
Joe Osborn (JoeOsborn)
@ -314,12 +315,12 @@ Mike Swanson (chungy)
mikeOSX
minucce
misson20000
esoptron
Monroe88
Morgane (MorganeAD)
mprobinson
MrHuu
MrJs (mrjschulte)
mudlord
Muhamed Hobi (mmhobi7)
muzuiget
N/A (inactive123)
@ -332,7 +333,6 @@ nayslayer
negativeExponent
Neil Barkhina (nbarkhina)
neil4
Nephilim (Nephil1m)
netux79
nfnty
nfp0
@ -481,6 +481,7 @@ vaguerant
Val Packett (valpackett)
Valerio Proietti (kamicane)
vgmoose
Viachaslau Khalikin (viachaslavic)
Vicki Pfau (endrift)
Vicky C Lau (vickychenglau)
vin (suseme)

1050
CHANGES.md

File diff suppressed because it is too large Load Diff

View File

@ -1,120 +1,120 @@
Refer also to this page for more information -
https://docs.libretro.com/development/coding-standards/
Struct ordering
---------------
For POD-types, try to order structs as follows (first to last):
* long double (8 bytes, 16 bytes [64bit x86], 12 bytes [32bit x86])
* double (8 bytes)
* int64_t (8 bytes, 8 bytes [32bit ARM],
4 bytes [32bit x86])
* uint64_t (4 bytes [32bit], 8 bytes [32bit ARM], 8 bytes [64bit])
* pointer (4 bytes [32bit], 8 bytes [64bit] [1])
* intptr_t (4 bytes [32bit], 8 bytes [64bit] [1])
* uintptr_t (4 bytes [32bit], 8 bytes [64bit] [1])
* ptrdiff_t (4 bytes [32bit], 8 bytes [64bit] [1])
* ssize_t (4 bytes [32bit], 8 bytes [64bit])
* size_t (4 bytes [32bit], 8 bytes [64bit])
* jmp_buf (4 bytes)
* long (4 bytes [64bit Win], 8 bytes [64bit non-Win],
4 bytes [32bit])
* int32_t (4 bytes)
* unsigned (4 bytes)
* float (4 bytes)
* int (4 bytes)
* enum (4 bytes)
* int16_t (2 bytes)
* char (1 byte)
* bool (1 byte)
[1] PS3 uses 4 byte pointers despite having a 64bit processor
Struct members should be sorted by alignment. Therefore, structs
should be sorted by the largest type inside them.
For example, take a struct like this:
typedef struct
{
size_t capacity;
bool old_format;
bool compress;
bool fuzzy_archive_match;
bool autofix_paths;
char path[PATH_MAX_LENGTH];
char base_content_directory[PATH_MAX_LENGTH];
} playlist_config_t;
size_t has the biggest alignment here, so 'struct playlist_config_t'
inside a struct should come before or after size_t.
*** BEST PRACTICES ***
* If we have pointers and size variable pairs, it's best to
interleave them to increase the probability they go in the
same cacheline. It also makes the code more readable, that
these two variables are connected.
Example:
struct a
{
char* b;
size_t b_len;
char* c;
size_t c_len;
};
Stack size
----------
You have to assume that stack size is going to be limited in
RetroArch. Some game consoles (and other embedded systems)
might have a default stack size as low as 128Kb or less.
Be conservative with stack size but don't try to put very
small structs on heap either [to avoid memory fragmentation
among other things]. A balancing act here is necessary.
Be mindful that heap allocations are slow compared to stack.
Functions
---------
- Avoid doing small getter/setter functions. We want a function
to justify its function call overhead by doing a significant
body of work. Small one-line getter/setter functions for what
is predominantly C-style structs is not useful, plus it leads
to people thinking this function is more complex than it
actually is, thus obfuscating the sourcecode instead of it
being easier to read.
If you can find examples in the codebase that violate this
guideline, do not hesitate to point them out to us.
Variable declaration
--------------------
For C source files, we have to insist you stick to the following:
- Declare variables either at the start of a function or the start
of a code block, depending on the scope they need.
- Do not do initial for loop declarations. Refer to the bulletpoint above:
either declare them at the start of the function, or at the start
of the code block.
Not doing this would break compilation on platforms where we are compiling
these C source files in C89 compatibility mode. If such issues occur in pull
requests, we have to request that it be fixed.
VLA (Variable Length Array)
---------------------------
Do not use VLAs (Variable Length Array) in C source files. These are not
C89-compliant.
Miscellaneous
-------------
- Brace usage follows "Allman style". The brace associated with a control statement is placed on the following line,
indented to the same level as the control statement.
Statements within the braces are indented to the next level.
- A single statement block must not include brackets (unless the block uses a macro that expands into multiple lines)
- If possible, avoid 'while (true)' and use 'for (;;)' instead
Refer also to this page for more information -
https://docs.libretro.com/development/coding-standards/
Struct ordering
---------------
For POD-types, try to order structs as follows (first to last):
* long double (8 bytes, 16 bytes [64bit x86], 12 bytes [32bit x86])
* double (8 bytes)
* int64_t (8 bytes, 8 bytes [32bit ARM],
4 bytes [32bit x86])
* uint64_t (4 bytes [32bit], 8 bytes [32bit ARM], 8 bytes [64bit])
* pointer (4 bytes [32bit], 8 bytes [64bit] [1])
* intptr_t (4 bytes [32bit], 8 bytes [64bit] [1])
* uintptr_t (4 bytes [32bit], 8 bytes [64bit] [1])
* ptrdiff_t (4 bytes [32bit], 8 bytes [64bit] [1])
* ssize_t (4 bytes [32bit], 8 bytes [64bit])
* size_t (4 bytes [32bit], 8 bytes [64bit])
* jmp_buf (4 bytes)
* long (4 bytes [64bit Win], 8 bytes [64bit non-Win],
4 bytes [32bit])
* int32_t (4 bytes)
* unsigned (4 bytes)
* float (4 bytes)
* int (4 bytes)
* enum (4 bytes)
* int16_t (2 bytes)
* char (1 byte)
* bool (1 byte)
[1] PS3 uses 4 byte pointers despite having a 64bit processor
Struct members should be sorted by alignment. Therefore, structs
should be sorted by the largest type inside them.
For example, take a struct like this:
typedef struct
{
size_t capacity;
bool old_format;
bool compress;
bool fuzzy_archive_match;
bool autofix_paths;
char path[PATH_MAX_LENGTH];
char base_content_directory[DIR_MAX_LENGTH];
} playlist_config_t;
size_t has the biggest alignment here, so 'struct playlist_config_t'
inside a struct should come before or after size_t.
*** BEST PRACTICES ***
* If we have pointers and size variable pairs, it's best to
interleave them to increase the probability they go in the
same cacheline. It also makes the code more readable, that
these two variables are connected.
Example:
struct a
{
char* b;
size_t b_len;
char* c;
size_t c_len;
};
Stack size
----------
You have to assume that stack size is going to be limited in
RetroArch. Some game consoles (and other embedded systems)
might have a default stack size as low as 128Kb or less.
Be conservative with stack size but don't try to put very
small structs on heap either [to avoid memory fragmentation
among other things]. A balancing act here is necessary.
Be mindful that heap allocations are slow compared to stack.
Functions
---------
- Avoid doing small getter/setter functions. We want a function
to justify its function call overhead by doing a significant
body of work. Small one-line getter/setter functions for what
is predominantly C-style structs is not useful, plus it leads
to people thinking this function is more complex than it
actually is, thus obfuscating the sourcecode instead of it
being easier to read.
If you can find examples in the codebase that violate this
guideline, do not hesitate to point them out to us.
Variable declaration
--------------------
For C source files, we have to insist you stick to the following:
- Declare variables either at the start of a function or the start
of a code block, depending on the scope they need.
- Do not do initial for loop declarations. Refer to the bulletpoint above:
either declare them at the start of the function, or at the start
of the code block.
Not doing this would break compilation on platforms where we are compiling
these C source files in C89 compatibility mode. If such issues occur in pull
requests, we have to request that it be fixed.
VLA (Variable Length Array)
---------------------------
Do not use VLAs (Variable Length Array) in C source files. These are not
C89-compliant.
Miscellaneous
-------------
- Brace usage follows "Allman style". The brace associated with a control statement is placed on the following line,
indented to the same level as the control statement.
Statements within the braces are indented to the next level.
- A single statement block must not include brackets (unless the block uses a macro that expands into multiple lines)
- If possible, avoid 'while (true)' and use 'for (;;)' instead

View File

@ -14,25 +14,39 @@ If there are any issues, we are willing to have discussions about it.
## Submitting Bug Reports
Bug reports in _RetroArch_ may fall into one of two categories:
Bug reports for _RetroArch_ may fall into a few categories:
* _RetroArch_ itself, the user interface and API around all of the various cores.
* Individual _Core_, of which interact with _RetroArch_.
* Individual _Core_, that interacts with _RetroArch_.
* Supplementary data provided within _RetroArch_, such as controller autoconfigs, databases,
thumbnails...
* The [documentation set](https://docs.libretro.com/)
When submitting a bug report, ensure that the report is submitted to the correct repository.
For _RetroArch_ itself, it is done by reporting a bug within the
[RetroArch](https://github.com/libretro/RetroArch) repository. For other cores, please use
the search function within the [libretro Organization](https://github.com/libretro) on
GitHub. Issues that are specific to a core and not _RetroArch_ are likely to be closed very
quickly. If an issue is suspected with _RetroArch_, please make sure to test with multiple
cores to be sure that is is not isolated.
* For _RetroArch_ itself, submit an issue to the [RetroArch](https://github.com/libretro/RetroArch)
repository. Please read and fill the issue template.
* For other cores, please use the search function within the [libretro Organization](https://github.com/libretro)
on GitHub. Issues that are specific to a core and not _RetroArch_ are likely to be closed
very quickly. If an issue is suspected with _RetroArch_, please make sure to test with
multiple cores to be sure that is is not isolated.
* For database content, submit an issue to
[libretro-database repo](https://github.com/libretro/libretro-database) or ask in the
_database_ channel on Discord.
* For controller autoconfigs, submit an issue to
[retroarch-joypad-autoconfig repo](https://github.com/libretro/retroarch-joypad-autoconfig)
* For actual thumbnail images, submit an issue to
[libretro-thumbnails](https://github.com/libretro-thumbnails/libretro-thumbnails) repo
or ask in the _database_ channel on Discord.
* For documentation, submit an issue to [libretro-docs](https://github.com/libretro/libretro-docs)
repo or ask in the _documentation_ channel.
* For translations, please see [here](https://docs.libretro.com/development/retroarch/new-translations-crowdin/).
If the issue occurs during runtime, please paste the verbose log output:
* If using the _Pheonix_ interface, the log will be in _File_ -> _Show Log_.
* If using the main interface, enable verbose logging with _Settings_ -> _Logging_ ->
_Logging Verbosity_. Ensure both _Log to File_ and _Timestamp log Files_ is enabled.
* Otherwise, run _RetroArch_ with the verbose (`-v`) flag.
Set frontend log level to _0 (Debug)_.
* Or run _RetroArch_ with the verbose (`-v`) flag and get the log from the console.
If the error happens during compilation and/or building, paste the output of `./configure`
and `make` accordingly. If using an IDE, please paste any of the errors and log output.

469
Doxyfile
View File

@ -1,4 +1,4 @@
# Doxyfile 1.8.14
# Doxyfile 1.9.1
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
@ -17,10 +17,10 @@
# Project related configuration options
#---------------------------------------------------------------------------
# This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all text
# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
# built into libc) for the transcoding. See
# This tag specifies the encoding used for all characters in the configuration
# file that follow. The default is UTF-8 which is also the encoding used for all
# text before the first occurrence of this tag. Doxygen uses libiconv (or the
# iconv built into libc) for the transcoding. See
# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
# The default value is: UTF-8.
@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.
PROJECT_NAME = "RetroArch"
PROJECT_NAME = RetroArch
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
@ -58,7 +58,7 @@ PROJECT_LOGO =
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
OUTPUT_DIRECTORY =
OUTPUT_DIRECTORY = docs
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
@ -93,6 +93,14 @@ ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all generated output in the proper direction.
# Possible values are: None, LTR, RTL and Context.
# The default value is: None.
OUTPUT_TEXT_DIRECTION = None
# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
# descriptions after the members that are listed in the file and class
# documentation (similar to Javadoc). Set to NO to disable this.
@ -187,7 +195,17 @@ SHORT_NAMES = YES
# description.)
# The default value is: NO.
JAVADOC_AUTOBRIEF = NO
JAVADOC_AUTOBRIEF = YES
# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line
# such as
# /***************
# as being the beginning of a Javadoc-style comment "banner". If set to NO, the
# Javadoc-style will behave just like regular comments and it will not be
# interpreted by doxygen.
# The default value is: NO.
JAVADOC_BANNER = NO
# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If
@ -209,6 +227,14 @@ QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
# By default Python docstrings are displayed as preformatted text and doxygen's
# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the
# doxygen's special commands can be used and the contents of the docstring
# documentation blocks is shown as doxygen documentation.
# The default value is: YES.
PYTHON_DOCSTRING = YES
# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
# documentation from any documented member that it re-implements.
# The default value is: YES.
@ -238,14 +264,12 @@ TAB_SIZE = 4
# "Side Effects:". You can put \n's in the value part of an alias to insert
# newlines (in the resulting output). You can put ^^ in the value part of an
# alias to insert a newline as if a physical newline was in the original file.
# When you need a literal { or } or , in the value part of an alias you have to
# escape them by means of a backslash (\), this can lead to conflicts with the
# commands \{ and \} for these it is advised to use the version @{ and @} or use
# a double escape (\\{ and \\})
ALIASES =
# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class"
# will allow you to use the command class in the itcl::class meaning.
TCL_SUBST =
ALIASES = "setby{1}=@par Set by^^The \1."
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
@ -253,7 +277,7 @@ TCL_SUBST =
# members will be omitted, etc.
# The default value is: NO.
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_FOR_C = YES
# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
# Python sources only. Doxygen will then generate output that is more tailored
@ -275,28 +299,40 @@ OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice
# sources only. Doxygen will then generate output that is more tailored for that
# language. For instance, namespaces will be presented as modules, types will be
# separated into more groups, etc.
# The default value is: NO.
OPTIMIZE_OUTPUT_SLICE = NO
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and
# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
# Fortran. In the later case the parser tries to guess whether the code is fixed
# or free formatted code, this is the default for Fortran type files), VHDL. For
# instance to make doxygen treat .inc files as Fortran files (default is PHP),
# and .f files as C (default is Fortran), use: inc=Fortran f=C.
# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL,
# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
# tries to guess whether the code is fixed or free formatted code, this is the
# default for Fortran type files). For instance to make doxygen treat .inc files
# as Fortran files (default is PHP), and .f files as C (default is Fortran),
# use: inc=Fortran f=C.
#
# Note: For files without extension you can use no_extension as a placeholder.
#
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
# the files are not read by doxygen.
# the files are not read by doxygen. When specifying no_extension you should add
# * to the FILE_PATTERNS.
#
# Note see also the list of default file extension mappings.
EXTENSION_MAPPING =
# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
# documentation. See http://daringfireball.net/projects/markdown/ for details.
# documentation. See https://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you can
# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
# case of backward compatibilities issues.
@ -308,7 +344,7 @@ MARKDOWN_SUPPORT = YES
# to that level are automatically included in the table of contents, even if
# they do not have an id attribute.
# Note: This feature currently applies only to Markdown headings.
# Minimum value: 0, maximum value: 99, default value: 0.
# Minimum value: 0, maximum value: 99, default value: 5.
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
TOC_INCLUDE_HEADINGS = 0
@ -398,7 +434,7 @@ INLINE_GROUPED_CLASSES = NO
# Man pages) or section (for LaTeX and RTF).
# The default value is: NO.
INLINE_SIMPLE_STRUCTS = NO
INLINE_SIMPLE_STRUCTS = YES
# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
# enum is documented as struct, union, or enum with the name of the typedef. So
@ -424,6 +460,19 @@ TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use
# during processing. When set to 0 doxygen will based this on the number of
# cores available in the system. You can set it explicitly to a value larger
# than 0 to get more control over the balance between CPU load and processing
# speed. At this moment only the input processing can be done using multiple
# threads. Since this is still an experimental feature the default is set to 1,
# which efficively disables parallel processing. Please report any issues you
# encounter. Generating dot graphs in parallel is controlled by the
# DOT_NUM_THREADS setting.
# Minimum value: 0, maximum value: 32, default value: 1.
NUM_PROC_THREADS = 16
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
@ -442,7 +491,13 @@ EXTRACT_ALL = YES
# be included in the documentation.
# The default value is: NO.
EXTRACT_PRIVATE = YES
EXTRACT_PRIVATE = NO
# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual
# methods of a class will be included in the documentation.
# The default value is: NO.
EXTRACT_PRIV_VIRTUAL = NO
# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
# scope will be included in the documentation.
@ -481,6 +536,13 @@ EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = NO
# If this flag is set to YES, the name of an unnamed parameter in a declaration
# will be determined by the corresponding definition. By default unnamed
# parameters remain unnamed in the output.
# The default value is: YES.
RESOLVE_UNNAMED_PARAMS = YES
# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
# undocumented members inside documented classes or files. If set to NO these
# members will be included in the various overviews, but no documentation
@ -498,8 +560,8 @@ HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
# (class|struct|union) declarations. If set to NO, these declarations will be
# included in the documentation.
# declarations. If set to NO, these declarations will be included in the
# documentation.
# The default value is: NO.
HIDE_FRIEND_COMPOUNDS = NO
@ -518,11 +580,18 @@ HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
# names in lower-case letters. If set to YES, upper-case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.
# With the correct setting of option CASE_SENSE_NAMES doxygen will better be
# able to match the capabilities of the underlying filesystem. In case the
# filesystem is case sensitive (i.e. it supports files in the same directory
# whose names only differ in casing), the option must be set to YES to properly
# deal with such files in case they appear in the input. For filesystems that
# are not case sensitive the option should be be set to NO to properly deal with
# output files written for symbols that only differ in casing, such as for two
# classes, one named CLASS and the other named Class, and to also support
# references to files without having to specify the exact matching casing. On
# Windows (including Cygwin) and MacOS, users should typically set this option
# to NO, whereas on Linux or other Unix flavors it should typically be set to
# YES.
# The default value is: system dependent.
CASE_SENSE_NAMES = YES
@ -532,7 +601,7 @@ CASE_SENSE_NAMES = YES
# scope will be hidden.
# The default value is: NO.
HIDE_SCOPE_NAMES = NO
HIDE_SCOPE_NAMES = YES
# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
# append additional text to a page's title, such as Class Reference. If set to
@ -571,7 +640,7 @@ INLINE_INFO = YES
# name. If set to NO, the members will appear in declaration order.
# The default value is: YES.
SORT_MEMBER_DOCS = YES
SORT_MEMBER_DOCS = NO
# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
# descriptions of file, namespace and class members alphabetically by member
@ -754,13 +823,17 @@ WARN_IF_DOC_ERROR = YES
# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
# are documented, but have no documentation for their parameters or return
# value. If set to NO, doxygen will only warn about wrong or incomplete
# parameter documentation, but not about the absence of documentation.
# parameter documentation, but not about the absence of documentation. If
# EXTRACT_ALL is set to YES then this flag will automatically be disabled.
# The default value is: NO.
WARN_NO_PARAMDOC = NO
# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
# a warning is encountered.
# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS
# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but
# at the end of the doxygen process doxygen will return with a non-zero status.
# Possible values are: NO, YES and FAIL_ON_WARNINGS.
# The default value is: NO.
WARN_AS_ERROR = NO
@ -791,13 +864,13 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT =
INPUT = libretro-common
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
# documentation (see: https://www.gnu.org/software/libiconv/) for the list of
# possible encodings.
# documentation (see:
# https://www.gnu.org/software/libiconv/) for the list of possible encodings.
# The default value is: UTF-8.
INPUT_ENCODING = UTF-8
@ -810,56 +883,17 @@ INPUT_ENCODING = UTF-8
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# read by doxygen.
#
# Note the list of default checked file patterns might differ from the list of
# default file extension mappings.
#
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment),
# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl,
# *.ucf, *.qsf and *.ice.
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.idl \
*.ddl \
*.odl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.cs \
*.d \
*.php \
*.php4 \
*.php5 \
*.phtml \
*.inc \
*.m \
*.markdown \
*.md \
*.mm \
*.dox \
*.py \
*.pyw \
*.f90 \
*.f95 \
*.f03 \
*.f08 \
*.f \
*.for \
*.tcl \
*.vhd \
*.vhdl \
*.ucf \
*.qsf
FILE_PATTERNS = *.h
# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
@ -890,7 +924,11 @@ EXCLUDE_SYMLINKS = NO
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories for example use the pattern */test/*
EXCLUDE_PATTERNS =
EXCLUDE_PATTERNS = */libretro-common/rthreads/* \
*/libretro-common/formats/* \
*/libretro-common/crt/* \
*/libretro-common/samples/* \
*/libretro-common/include/glsym/*
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
@ -901,7 +939,9 @@ EXCLUDE_PATTERNS =
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories use the pattern */test/*
EXCLUDE_SYMBOLS =
EXCLUDE_SYMBOLS = bool \
void \
const
# The EXAMPLE_PATH tag can be used to specify one or more files or directories
# that contain example code fragments that are included (see the \include
@ -1012,7 +1052,7 @@ INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
# function all documented functions referencing it will be listed.
# entity all documented functions referencing it will be listed.
# The default value is: NO.
REFERENCED_BY_RELATION = NO
@ -1049,7 +1089,7 @@ SOURCE_TOOLTIPS = YES
#
# To use it do the following:
# - Install the latest version of global
# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file
# - Make sure the INPUT points to the root of the source tree
# - Run doxygen as normal
#
@ -1071,6 +1111,44 @@ USE_HTAGS = NO
VERBATIM_HEADERS = YES
# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
# clang parser (see:
# http://clang.llvm.org/) for more accurate parsing at the cost of reduced
# performance. This can be particularly helpful with template rich C++ code for
# which doxygen's built-in parser lacks the necessary type information.
# Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse_libclang=ON option for CMake.
# The default value is: NO.
CLANG_ASSISTED_PARSING = NO
# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to
# YES then doxygen will add the directory of each input to the include path.
# The default value is: YES.
CLANG_ADD_INC_PATHS = YES
# If clang assisted parsing is enabled you can provide the compiler with command
# line options that you would normally use when invoking the compiler. Note that
# the include paths will already be set by doxygen for the files and directories
# specified with INPUT and INCLUDE_PATH.
# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
CLANG_OPTIONS =
# If clang assisted parsing is enabled you can provide the clang parser with the
# path to the directory containing a file called compile_commands.json. This
# file is the compilation database (see:
# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the
# options used when the source files were built. This is equivalent to
# specifying the -p option to a clang tool, such as clang-check. These options
# will then be passed to the parser. Any options specified with CLANG_OPTIONS
# will be added as well.
# Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse_libclang=ON option for CMake.
CLANG_DATABASE_PATH =
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
@ -1082,20 +1160,14 @@ VERBATIM_HEADERS = YES
ALPHABETICAL_INDEX = YES
# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
# which the alphabetical index list will be split.
# Minimum value: 1, maximum value: 20, default value: 5.
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
# while generating the index headers.
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
IGNORE_PREFIX =
IGNORE_PREFIX = retro_ \
RETRO_
#---------------------------------------------------------------------------
# Configuration options related to the HTML output
@ -1227,9 +1299,9 @@ HTML_TIMESTAMP = NO
# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
# documentation will contain a main index with vertical navigation menus that
# are dynamically created via Javascript. If disabled, the navigation index will
# are dynamically created via JavaScript. If disabled, the navigation index will
# consists of multiple levels of tabs that are statically embedded in every HTML
# page. Disable this option to support browsers that do not have Javascript,
# page. Disable this option to support browsers that do not have JavaScript,
# like the Qt help browser.
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.
@ -1259,13 +1331,14 @@ HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
# environment (see: https://developer.apple.com/tools/xcode/), introduced with
# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
# Makefile in the HTML output directory. Running make will produce the docset in
# that directory and running make install will install the docset in
# environment (see:
# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To
# create a documentation set, doxygen will generate a Makefile in the HTML
# output directory. Running make will produce the docset in that directory and
# running make install will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
# startup. See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html
# for more information.
# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy
# genXcode/_index.html for more information.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
@ -1304,8 +1377,8 @@ DOCSET_PUBLISHER_NAME = Publisher
# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
# Windows.
# (see:
# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows.
#
# The HTML Help Workshop contains a compiler that can convert all HTML output
# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
@ -1335,7 +1408,7 @@ CHM_FILE =
HHC_LOCATION =
# The GENERATE_CHI flag controls if a separate .chi index file is generated
# (YES) or that it should be included in the master .chm file (NO).
# (YES) or that it should be included in the main .chm file (NO).
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
@ -1380,7 +1453,8 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace
# (see: http://doc.qt.io/qt-4.8/qthelpproject.html#namespace).
# (see:
# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES.
@ -1388,7 +1462,8 @@ QHP_NAMESPACE = org.doxygen.Project
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual
# Folders (see: http://doc.qt.io/qt-4.8/qthelpproject.html#virtual-folders).
# Folders (see:
# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders).
# The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES.
@ -1396,28 +1471,30 @@ QHP_VIRTUAL_FOLDER = doc
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters).
# Filters (see:
# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters).
# Filters (see:
# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see:
# http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes).
# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS =
# The QHG_LOCATION tag can be used to specify the location of Qt's
# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
# generated .qhp file.
# The QHG_LOCATION tag can be used to specify the location (absolute path
# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to
# run qhelpgenerator on the generated .qhp file.
# This tag requires that the tag GENERATE_QHP is set to YES.
QHG_LOCATION =
@ -1468,7 +1545,7 @@ DISABLE_INDEX = NO
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_TREEVIEW = NO
GENERATE_TREEVIEW = YES
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation.
@ -1494,6 +1571,17 @@ TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg
# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see
# https://inkscape.org) to generate formulas as SVG images instead of PNGs for
# the HTML output. These images will generally look nicer at scaled resolutions.
# Possible values are: png (the default) and svg (looks nicer but requires the
# pdf2svg or inkscape tool).
# The default value is: png.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_FORMULA_FORMAT = png
# Use this tag to change the font size of LaTeX formulas included as images in
# the HTML documentation. When you change the font size after a successful
# doxygen run you need to manually remove any form_*.png images from the HTML
@ -1514,8 +1602,14 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands
# to create new LaTeX commands to be used in formulas as building blocks. See
# the section "Including formulas" for details.
FORMULA_MACROFILE =
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# https://www.mathjax.org) which uses client side Javascript for the rendering
# https://www.mathjax.org) which uses client side JavaScript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path
@ -1527,7 +1621,7 @@ USE_MATHJAX = NO
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
# http://docs.mathjax.org/en/latest/output.html) for more details.
# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details.
# Possible values are: HTML-CSS (which is slower, but has the best
# compatibility), NativeMML (i.e. MathML) and SVG.
# The default value is: HTML-CSS.
@ -1543,7 +1637,7 @@ MATHJAX_FORMAT = HTML-CSS
# Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of
# MathJax from https://www.mathjax.org before deployment.
# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/.
# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/
@ -1557,7 +1651,8 @@ MATHJAX_EXTENSIONS =
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site
# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
# (see:
# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an
# example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES.
@ -1585,7 +1680,7 @@ MATHJAX_CODEFILE =
SEARCHENGINE = YES
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a web server instead of a web client using Javascript. There
# implemented using a web server instead of a web client using JavaScript. There
# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
# setting. When disabled, doxygen will generate a PHP script for searching and
# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
@ -1604,7 +1699,8 @@ SERVER_BASED_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: https://xapian.org/).
# Xapian (see:
# https://xapian.org/).
#
# See the section "External Indexing and Searching" for details.
# The default value is: NO.
@ -1617,8 +1713,9 @@ EXTERNAL_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: https://xapian.org/). See the section "External Indexing and
# Searching" for details.
# Xapian (see:
# https://xapian.org/). See the section "External Indexing and Searching" for
# details.
# This tag requires that the tag SEARCHENGINE is set to YES.
SEARCHENGINE_URL =
@ -1669,21 +1766,35 @@ LATEX_OUTPUT = latex
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked.
#
# Note that when enabling USE_PDFLATEX this option is only used for generating
# bitmaps for formulas in the HTML output, but not in the Makefile that is
# written to the output directory.
# The default file is: latex.
# Note that when not enabling USE_PDFLATEX the default is latex when enabling
# USE_PDFLATEX the default is pdflatex and when in the later case latex is
# chosen this is overwritten by pdflatex. For specific output languages the
# default can have been set differently, this depends on the implementation of
# the output language.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_CMD_NAME = latex
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
# index for LaTeX.
# Note: This tag is used in the Makefile / make.bat.
# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file
# (.tex).
# The default file is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
MAKEINDEX_CMD_NAME = makeindex
# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to
# generate index for LaTeX. In case there is no backslash (\) as first character
# it will be automatically added in the LaTeX code.
# Note: This tag is used in the generated output file (.tex).
# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat.
# The default value is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_MAKEINDEX_CMD = makeindex
# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
# documents. This may be useful for small projects and may help to save some
# trees in general.
@ -1768,9 +1879,11 @@ LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES
# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
# the PDF file directly from the LaTeX files. Set this option to YES, to get a
# higher quality PDF documentation.
# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as
# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX
# files. Set this option to YES, to get a higher quality PDF documentation.
#
# See also section LATEX_CMD_NAME for selecting the engine.
# The default value is: YES.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@ -1818,6 +1931,14 @@ LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)
# path from which the emoji images will be read. If a relative path is entered,
# it will be relative to the LATEX_OUTPUT directory. If left blank the
# LATEX_OUTPUT directory will be used.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_EMOJI_DIRECTORY =
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
@ -1857,9 +1978,9 @@ COMPACT_RTF = NO
RTF_HYPERLINKS = NO
# Load stylesheet definitions from file. Syntax is similar to doxygen's config
# file, i.e. a series of assignments. You only have to provide replacements,
# missing definitions are set to their default value.
# Load stylesheet definitions from file. Syntax is similar to doxygen's
# configuration file, i.e. a series of assignments. You only have to provide
# replacements, missing definitions are set to their default value.
#
# See also section "Doxygen usage" for information on how to generate the
# default style sheet that doxygen normally uses.
@ -1868,8 +1989,8 @@ RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
# Set optional variables used in the generation of an RTF document. Syntax is
# similar to doxygen's config file. A template extensions file can be generated
# using doxygen -e rtf extensionFile.
# similar to doxygen's configuration file. A template extensions file can be
# generated using doxygen -e rtf extensionFile.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_EXTENSIONS_FILE =
@ -1955,6 +2076,13 @@ XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include
# namespace members in file scope as well, matching the HTML output.
# The default value is: NO.
# This tag requires that the tag GENERATE_XML is set to YES.
XML_NS_MEMB_FILE_SCOPE = NO
#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
@ -1994,6 +2122,10 @@ DOCBOOK_PROGRAMLISTING = NO
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# Configuration options related to Sqlite3 output
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
@ -2089,7 +2221,7 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
PREDEFINED =
PREDEFINED = DOXYGEN
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
@ -2156,12 +2288,6 @@ EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of 'which perl').
# The default file (with absolute path) is: /usr/bin/perl.
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
@ -2173,16 +2299,7 @@ PERL_PATH = /usr/bin/perl
# powerful graphs.
# The default value is: YES.
CLASS_DIAGRAMS = YES
# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see:
# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
# documentation. The MSCGEN_PATH tag allows you to specify the directory where
# the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path.
MSCGEN_PATH =
CLASS_DIAGRAMS = NO
# You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The
@ -2202,9 +2319,9 @@ HIDE_UNDOC_RELATIONS = YES
# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
# Bell Labs. The other options in this section have no effect if this option is
# set to NO
# The default value is: NO.
# The default value is: YES.
HAVE_DOT = YES
HAVE_DOT = NO
# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
# to run in parallel. When set to 0 doxygen will base this on the number of
@ -2281,10 +2398,32 @@ UML_LOOK = NO
# but if the number exceeds 15, the total amount of fields shown is limited to
# 10.
# Minimum value: 0, maximum value: 100, default value: 10.
# This tag requires that the tag HAVE_DOT is set to YES.
# This tag requires that the tag UML_LOOK is set to YES.
UML_LIMIT_NUM_FIELDS = 10
# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and
# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS
# tag is set to YES, doxygen will add type and arguments for attributes and
# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen
# will not generate fields with class member information in the UML graphs. The
# class diagrams will look similar to the default class diagrams but using UML
# notation for the relationships.
# Possible values are: NO, YES and NONE.
# The default value is: NO.
# This tag requires that the tag UML_LOOK is set to YES.
DOT_UML_DETAILS = NO
# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters
# to display on a single line. If the actual line length exceeds this threshold
# significantly it will wrapped across multiple lines. Some heuristics are apply
# to avoid ugly line breaks.
# Minimum value: 0, maximum value: 1000, default value: 17.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_WRAP_THRESHOLD = 17
# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
# collaboration graphs will show the relations between templates and their
# instances.
@ -2358,7 +2497,9 @@ DIRECTORY_GRAPH = YES
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo,
# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
# png:gdiplus:gdiplus.
# The default value is: png.
@ -2474,9 +2615,11 @@ DOT_MULTI_TARGETS = YES
GENERATE_LEGEND = YES
# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate
# files that are used to generate the various graphs.
#
# Note: This setting is not only used for dot files but also for msc and
# plantuml temporary files.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_CLEANUP = YES

View File

@ -26,6 +26,9 @@ DEF_FLAGS := -I.
ASFLAGS :=
DEFINES := -DHAVE_CONFIG_H -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64
DEFINES += -DGLOBAL_CONFIG_DIR='"$(GLOBAL_CONFIG_DIR)"'
DEFINES += -DASSETS_DIR='"$(DESTDIR)$(ASSETS_DIR)"'
DEFINES += -DFILTERS_DIR='"$(DESTDIR)$(FILTERS_DIR)"'
DEFINES += -DCORE_INFO_DIR='"$(DESTDIR)$(CORE_INFO_DIR)"'
OBJDIR_BASE := obj-unix
@ -42,10 +45,9 @@ else
OBJDIR := $(OBJDIR_BASE)/release
CFLAGS ?= -O3
CXXFLAGS ?= -O3
DEF_FLAGS += -ffast-math
endif
DEF_FLAGS += -Wall
DEF_FLAGS += -Wall -Wsign-compare
ifneq ($(findstring BSD,$(OS)),)
DEF_FLAGS += -DBSD
@ -64,7 +66,7 @@ ifneq ($(findstring FPGA,$(OS)),)
endif
ifneq ($(findstring Win32,$(OS)),)
LDFLAGS += -static-libgcc -lwinmm
LDFLAGS += -static-libgcc -lwinmm -limm32
endif
include Makefile.common
@ -110,7 +112,7 @@ endif
ifneq ($(CXX_BUILD), 1)
ifneq ($(C89_BUILD),)
CFLAGS += -std=c89 -ansi -pedantic -Werror=pedantic -Wno-long-long -Werror=declaration-after-statement
CFLAGS += -std=c89 -ansi -pedantic -Werror=pedantic -Wno-long-long -Werror=declaration-after-statement -Wno-variadic-macros
else ifeq ($(HAVE_C99), 1)
CFLAGS += $(C99_CFLAGS)
endif
@ -170,6 +172,33 @@ endif
all: $(TARGET) config.mk
define INFO
ASFLAGS: $(ASFLAGS)
CC: $(CC)
CFLAGS: $(CFLAGS)
CPPFLAGS: $(CPPFLAGS)
CXX: $(CXX)
CXXFLAGS: $(CXXFLAGS)
DEFINES: $(DEFINES)
LDFLAGS: $(LDFLAGS)
LIBRARY_DIRS: $(LIBRARY_DIRS)
LIBS: $(LIBS)
LINK: $(LINK)
MD: $(MD)
MOC: $(MOC)
MOC_TMP: $(MOC_TMP)
OBJCFLAGS: $(OBJCFLAGS)
QT_VERSION: $(QT_VERSION)
RARCH_OBJ: $(RARCH_OBJ)
WINDRES: $(WINDRES)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
$(MOC_SRC):
@$(if $(Q), $(shell echo echo MOC $<),)
$(eval MOC_TMP := $(patsubst %.h,%_moc.cpp,$@))
@ -223,7 +252,7 @@ $(OBJDIR)/%.o: %.S config.h config.mk $(HEADERS)
$(OBJDIR)/%.o: %.rc $(HEADERS)
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo WINDRES $<),)
$(Q)$(WINDRES) -o $@ $<
$(Q)$(WINDRES) $(DEFINES) -o $@ $<
install: $(TARGET)
mkdir -p $(DESTDIR)$(BIN_DIR) 2>/dev/null || /bin/true
@ -236,21 +265,21 @@ install: $(TARGET)
cp $(TARGET) $(DESTDIR)$(BIN_DIR)
cp tools/cg2glsl.py $(DESTDIR)$(BIN_DIR)/retroarch-cg2glsl
cp retroarch.cfg $(DESTDIR)$(GLOBAL_CONFIG_DIR)
cp com.libretro.RetroArch.appdata.xml $(DESTDIR)$(DATA_DIR)/metainfo
cp retroarch.desktop $(DESTDIR)$(DATA_DIR)/applications
cp com.libretro.RetroArch.metainfo.xml $(DESTDIR)$(DATA_DIR)/metainfo
cp com.libretro.RetroArch.desktop $(DESTDIR)$(DATA_DIR)/applications
cp docs/retroarch.6 $(DESTDIR)$(MAN_DIR)/man6
cp docs/retroarch-cg2glsl.6 $(DESTDIR)$(MAN_DIR)/man6
cp media/retroarch.svg $(DESTDIR)$(DATA_DIR)/pixmaps
cp media/com.libretro.RetroArch.svg $(DESTDIR)$(DATA_DIR)/pixmaps
cp COPYING $(DESTDIR)$(DOC_DIR)
cp README.md $(DESTDIR)$(DOC_DIR)
chmod 755 $(DESTDIR)$(BIN_DIR)/$(TARGET)
chmod 755 $(DESTDIR)$(BIN_DIR)/retroarch-cg2glsl
chmod 644 $(DESTDIR)$(GLOBAL_CONFIG_DIR)/retroarch.cfg
chmod 644 $(DESTDIR)$(DATA_DIR)/applications/retroarch.desktop
chmod 644 $(DESTDIR)$(DATA_DIR)/metainfo/com.libretro.RetroArch.appdata.xml
chmod 644 $(DESTDIR)$(DATA_DIR)/applications/com.libretro.RetroArch.desktop
chmod 644 $(DESTDIR)$(DATA_DIR)/metainfo/com.libretro.RetroArch.metainfo.xml
chmod 644 $(DESTDIR)$(MAN_DIR)/man6/retroarch.6
chmod 644 $(DESTDIR)$(MAN_DIR)/man6/retroarch-cg2glsl.6
chmod 644 $(DESTDIR)$(DATA_DIR)/pixmaps/retroarch.svg
chmod 644 $(DESTDIR)$(DATA_DIR)/pixmaps/com.libretro.RetroArch.svg
@if test -d media/assets && test $(HAVE_ASSETS); then \
echo "Installing media assets..."; \
mkdir -p $(DESTDIR)$(ASSETS_DIR)/assets; \
@ -271,9 +300,9 @@ uninstall:
rm -f $(DESTDIR)$(BIN_DIR)/$(TARGET)
rm -f $(DESTDIR)$(BIN_DIR)/retroarch-cg2glsl
rm -f $(DESTDIR)$(GLOBAL_CONFIG_DIR)/retroarch.cfg
rm -f $(DESTDIR)$(DATA_DIR)/applications/retroarch.desktop
rm -f $(DESTDIR)$(DATA_DIR)/metainfo/com.libretro.RetroArch.appdata.xml
rm -f $(DESTDIR)$(DATA_DIR)/pixmaps/retroarch.svg
rm -f $(DESTDIR)$(DATA_DIR)/applications/com.libretro.RetroArch.desktop
rm -f $(DESTDIR)$(DATA_DIR)/metainfo/com.libretro.RetroArch.metainfo.xml
rm -f $(DESTDIR)$(DATA_DIR)/pixmaps/com.libretro.RetroArch.svg
rm -f $(DESTDIR)$(DOC_DIR)/COPYING
rm -f $(DESTDIR)$(DOC_DIR)/COPYING.assets
rm -f $(DESTDIR)$(DOC_DIR)/README.md
@ -282,9 +311,10 @@ uninstall:
rm -rf $(DESTDIR)$(ASSETS_DIR)
clean:
rm -rf $(OBJDIR_BASE)
rm -f $(TARGET)
rm -f *.d
@$(if $(Q), echo $@,)
$(Q)rm -rf $(OBJDIR_BASE)
$(Q)rm -f $(TARGET)
$(Q)rm -f *.d
.PHONY: all install uninstall clean

View File

@ -43,7 +43,6 @@ clean:
rm -f input/*.o
rm -f tools/*.o
rm -f $(BINDIR)/retroarch
rm -f $(BINDIR)/retroarch-joyconfig
rm -f $(PNDDIR)/readme.html
rm -f retroarch

View File

@ -47,7 +47,6 @@ clean:
rm -f input/*.o
rm -f tools/*.o
rm -f $(BINDIR)/retroarch
rm -f $(BINDIR)/retroarch-joyconfig
rm -f $(PNDDIR)/readme.html
rm -f retroarch

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,8 @@ LIBRETRO =
DEBUG = 0
CONSOLE_LOG = 0
GRIFFIN_BUILD = 1
HAVE_STATIC_DUMMY ?= 0
GRIFFIN_BUILD = 0
HAVE_STATIC_DUMMY ?= 0
WHOLE_ARCHIVE_LINK = 0
BUILD_3DSX = 1
BUILD_3DS = 0
@ -56,6 +56,7 @@ ifeq ($(GRIFFIN_BUILD), 1)
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_RGUI -DHAVE_XMB -DHAVE_LIBRETRODB -DHAVE_CC_RESAMPLER
DEFINES += -DHAVE_ZLIB -DHAVE_7ZIP -D_7ZIP_ST -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA
DEFINES += -DHAVE_NETWORKING -DHAVE_IFINFO -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_CORES
DEFINES += -DHAVE_UPDATE_CORE_INFO
#DEFINES += -DHAVE_UPDATE_ASSETS
DEFINES += -DHAVE_PATCH -DHAVE_RWAV
DEFINES += -DHAVE_SCREENSHOTS
@ -88,21 +89,22 @@ else
HAVE_REWIND = 1
HAVE_AUDIOMIXER = 1
HAVE_RWAV = 1
#HAVE_NETWORKING = 1
#HAVE_IFINFO = 1
#HAVE_CHEEVOS = 1
#HAVE_SOCKET_LEGACY = 1
HAVE_CHEATS = 1
HAVE_VIDEO_FILTER = 1
HAVE_DSP_FILTER = 1
HAVE_CONFIGFILE = 1
HAVE_OVERLAY = 1
HAVE_GFX_WIDGETS = 1
HAVE_NETWORKING = 1
HAVE_IFINFO = 1
HAVE_CHEEVOS = 1
HAVE_THREADS = 1
#HAVE_SSL = 1
#HAVE_BUILTINMBEDTLS = 1
HAVE_BUILTINMBEDTLS = 1
HAVE_CORE_INFO_CACHE = 1
HAVE_CLOUDSYNC = 1
include Makefile.common
CFLAGS += $(DEF_FLAGS)
BLACKLIST :=
BLACKLIST += input/input_overlay.o
BLACKLIST += tasks/task_overlay.o
OBJ := $(filter-out $(BLACKLIST),$(OBJ))
endif
ifeq ($(strip $(DEVKITPRO)),)
@ -152,12 +154,7 @@ LIBDIRS := -L. -L$(CTRULIB)/lib
ARCH := -march=armv6k -mtune=mpcore -mfloat-abi=hard -marm -mfpu=vfp -mtp=soft
CFLAGS += -mword-relocations \
-fomit-frame-pointer -ffast-math \
-Werror=implicit-function-declaration \
$(ARCH)
#CFLAGS += -Wall
CFLAGS += -mword-relocations $(ARCH)
CFLAGS += -DARM11 -D_3DS
ifeq ($(strip $(USE_CTRULIB_2)),1)
@ -167,7 +164,7 @@ endif
ifeq ($(DEBUG), 1)
CFLAGS += -O0 -g
else
CFLAGS += -O3
CFLAGS += -fomit-frame-pointer -O3
endif
ifeq ($(CONSOLE_LOG), 1)
@ -187,21 +184,21 @@ CFLAGS += -I. \
-Ideps \
-Ideps/7zip \
-Ideps/stb \
-Ideps/mbedtls \
-Ideps/rcheevos/include \
-Ilibretro-common/include \
-Ilibretro-common/include/compat/zlib
CFLAGS += -DRARCH_INTERNAL -DRARCH_CONSOLE
CFLAGS += -DHAVE_DSP_FILTER
CFLAGS += -DHAVE_VIDEO_FILTER
CFLAGS += -DHAVE_FILTERS_BUILTIN $(DEFINES)
CFLAGS += -DHAVE_CHEATS
CFLAGS += -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_CORES -DHAVE_UPDATE_CORE_INFO
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11
CFLAGS += -Werror=implicit-function-declaration
ASFLAGS := -g $(ARCH) -O3
LDFLAGS += -specs=ctr/3dsx_custom.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
CFLAGS += -std=gnu99 -ffast-math
CFLAGS += -std=gnu99
LIB_CORE :=
LIB_CORE_FULL :=
@ -221,6 +218,10 @@ else
LIBS += -lctru
endif
ifneq ($(V),1)
Q := @
endif
ifeq ($(BUILD_3DSX), 1)
TARGET_3DSX := $(TARGET).3dsx $(TARGET).smdh
endif
@ -233,16 +234,7 @@ ifeq ($(BUILD_CIA), 1)
TARGET_CIA := $(TARGET).cia
endif
.PHONY: $(BUILD) clean all
all: $(TARGET)
$(TARGET): $(TARGET_3DSX) $(TARGET_3DS) $(TARGET_CIA)
$(TARGET).3dsx: $(TARGET).elf
$(TARGET).elf: $(OBJ) $(LIB_CORE_FULL)
PREFIX := $(DEVKITARM)/bin/arm-none-eabi-
CC := $(PREFIX)gcc
CXX := $(PREFIX)g++
AS := $(PREFIX)as
@ -276,6 +268,36 @@ else
MAKEROM = $(CTRMAKEROM)
endif
.PHONY: $(BUILD) clean all
all: $(TARGET)
define INFO
AR: $(AR)
ASFLAGS: $(ASFLAGS)
CC: $(CC)
CFLAGS: $(CFLAGS)
CXX: $(CXX)
CXXFLAGS: $(CXXFLAGS)
INCDIRS: $(INCDIRS)
LD: $(LD)
LDFLAGS: $(LDFLAGS)
LIBDIRS: $(LIBDIRS)
LIBS: $(LIBS)
OBJ: $(OBJ)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
$(TARGET): $(TARGET_3DSX) $(TARGET_3DS) $(TARGET_CIA)
$(TARGET).3dsx: $(TARGET).elf
$(TARGET).elf: $(OBJ) $(LIB_CORE_FULL)
%.o: %.vsh %.gsh
$(DEVKITTOOLS)/bin/picasso $^ -o $*.shbin
$(DEVKITTOOLS)/bin/bin2s $*.shbin | $(PREFIX)as -o $@
@ -287,19 +309,24 @@ endif
rm $*.shbin
%.o: %.cpp
$(CXX) -c -o $@ $< $(CXXFLAGS) $(INCDIRS)
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) -c -o $@ $< $(CXXFLAGS) $(INCDIRS)
%.o: %.c
$(CC) -c -o $@ $< $(CFLAGS) $(INCDIRS)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) -c -o $@ $< $(CFLAGS) $(INCDIRS)
%.o: %.s
$(CC) -c -o $@ $< $(ASFLAGS)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) -c -o $@ $< $(ASFLAGS)
%.o: %.S
$(CC) -c -o $@ $< $(ASFLAGS)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) -c -o $@ $< $(ASFLAGS)
%.a:
$(AR) -rc $@ $^
@$(if $(Q), $(shell echo echo AR $<),)
$(Q)$(AR) -rc $@ $^
%.vsh:
@ -315,7 +342,8 @@ endif
$(DEVKITTOOLS)/bin/3dsxtool $< $@ $(_3DSXFLAGS)
$(TARGET).elf: ctr/3dsx_custom_crt0.o
$(LD) $(LDFLAGS) $(OBJ) $(LIBDIRS) $(LIBS) -o $@
@$(if $(Q), $(shell echo echo LD $@),)
$(Q)$(LD) $(LDFLAGS) $(OBJ) $(LIBDIRS) $(LIBS) -o $@
$(NM) -CSn $@ > $(notdir $*.lst)
$(TARGET).bnr: $(TARGET).elf $(APP_BANNER) $(APP_AUDIO)
@ -331,15 +359,16 @@ $(TARGET).cia: $(TARGET).elf $(TARGET).bnr $(TARGET).icn $(APP_RSF)
$(MAKEROM) -f cia -o $@ $(MAKEROM_ARGS_COMMON) -DAPP_ENCRYPTED=false
clean:
rm -f $(OBJ)
rm -f $(TARGET).3dsx
rm -f $(TARGET).elf
rm -f $(TARGET).3ds
rm -f $(TARGET).cia
rm -f $(TARGET).smdh
rm -f $(TARGET).bnr
rm -f $(TARGET).icn
rm -f ctr/ctr_config_*.o
rm -f ctr/3dsx_custom_crt0.o
@$(if $(Q), echo $@,)
$(Q)rm -f $(OBJ)
$(Q)rm -f $(TARGET).3dsx
$(Q)rm -f $(TARGET).elf
$(Q)rm -f $(TARGET).3ds
$(Q)rm -f $(TARGET).cia
$(Q)rm -f $(TARGET).smdh
$(Q)rm -f $(TARGET).bnr
$(Q)rm -f $(TARGET).icn
$(Q)rm -f ctr/ctr_config_*.o
$(Q)rm -f ctr/3dsx_custom_crt0.o
.PHONY: clean

View File

@ -83,12 +83,7 @@ LIBDIRS := -L. -L$(CTRULIB)/lib
ARCH := -march=armv6k -mtune=mpcore -mfloat-abi=hard -marm -mfpu=vfp -mtp=soft
CFLAGS += -mword-relocations \
-fomit-frame-pointer -ffast-math \
-Werror=implicit-function-declaration \
$(ARCH)
#CFLAGS += -Wall
CFLAGS += -mword-relocations -fomit-frame-pointer $(ARCH)
CFLAGS += -DARM11 -D_3DS
ifeq ($(strip $(USE_CTRULIB_2)),1)
@ -111,11 +106,12 @@ CFLAGS += -I. -Ideps/7zip -Ideps/stb -Ilibretro-common/include -Ilibretro-common
CFLAGS += -DRARCH_CONSOLE -DIS_SALAMANDER
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11
CFLAGS += -Werror=implicit-function-declaration
ASFLAGS := -g $(ARCH) -O3
LDFLAGS += -specs=ctr/3dsx_custom.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
CFLAGS += -std=gnu99 -ffast-math
CFLAGS += -std=gnu99
LIBS := -lctru -lm

View File

@ -93,7 +93,6 @@ HAVE_STRCASESTR = 1
HAVE_THREADS = 1
HAVE_TRANSLATE = 1
HAVE_UDEV = 1
HAVE_VIDEO_LAYOUT = 1
HAVE_XMB = 1
HAVE_ZLIB = 1
HAVE_CONFIGFILE = 1
@ -108,7 +107,7 @@ OPK_NAME = retroarch.opk
OBJ :=
LINK := $(CXX)
DEF_FLAGS := -march=mips32 -mtune=mips32r2 -mhard-float -ffast-math -fomit-frame-pointer
DEF_FLAGS := -march=mips32 -mtune=mips32r2 -mhard-float -fomit-frame-pointer
DEF_FLAGS += -mplt -mno-shared
DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -I. -Ideps -Ideps/stb -DDINGUX=1 -MMD

View File

@ -47,6 +47,7 @@ HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_STATIC_CORES = 1
HAVE_FILTERS_BUILTIN = 1
HAVE_MENU = 1
HAVE_CONFIGFILE = 1
@ -62,10 +63,11 @@ HAVE_COMMAND := 1
HAVE_STDIN_CMD := 1
HAVE_CMD := 1
HAVE_CHEEVOS = 0
HAVE_CHD = 0 # disabled due to static libretro-common and libchdr conflicts between different cores
HAVE_CHD = 1
HAVE_STB_VORBIS = 1
HAVE_IBXM = 1
HAVE_CORE_INFO_CACHE = 1
HAVE_XDELTA = 0 # disabled because <lzma.h> isn't available (or we haven't figured out how to install it)
HAVE_RGUI = 1
HAVE_MATERIALUI = 0
@ -75,8 +77,9 @@ HAVE_OZONE = 0
OBJ := \
frontend/drivers/platform_dos.o \
gfx/drivers/vga_gfx.o gfx/drivers_font/vga_font.o \
input/drivers/dos_input.o input/drivers_joypad/dos_joypad.o
gfx/drivers/vga_gfx.o \
input/drivers/dos_input.o \
input/drivers_joypad/dos_joypad.o
include Makefile.common
@ -117,7 +120,7 @@ APP_ICON := pkg/libnx/retroarch.jpg
#---------------------------------------------------------------------------------
ARCH :=
CFLAGS := -g -Wall -O3 -fcommon -ffast-math -ffunction-sections \
CFLAGS := -g -Wall -O3 -fcommon -ffunction-sections \
$(ARCH) $(DEFINES) $(INCLUDE_DIRS)
CFLAGS += $(INCLUDE)
@ -192,6 +195,10 @@ else
LIB_CORE += -lretro_dos
endif
ifneq ($(V),1)
Q := @
endif
DEPENDS_TMP := $(OFILES:.o=.d)
DEPENDS := $(filter-out libretro_libnx.a,$(DEPENDS_TMP))
@ -200,19 +207,43 @@ DEPENDS := $(filter-out libretro_libnx.a,$(DEPENDS_TMP))
#---------------------------------------------------------------------------------
# main targets
#---------------------------------------------------------------------------------
all : $(OUTPUT)
all: $(OUTPUT)
define INFO
CC: $(CC)
CFLAGS: $(CFLAGS)
CXX: $(CXX)
DEPENDS: $(DEPENDS)
LDFLAGS: $(LDFLAGS)
LIBDIRS: $(LIBDIRS)
LIBS: $(LIBS)
LIB_CORE: $(LIB_CORE)
OBJ: $(OBJ)
OUTPUT: $(OUTPUT)
PLATEXTRA: $(PLATEXTRA)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
$(OUTPUT): $(OBJ)
$(CXX) -o $@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(PLATEXTRA) -L. $(LIB_CORE) $(LIBS)
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) -o $@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(PLATEXTRA) -L. $(LIB_CORE) $(LIBS)
%.o: %.c
$(CC) -c -o $@ $(CFLAGS) $<
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) -c -o $@ $(CFLAGS) $<
%.o: %.cpp
$(CXX) -c -o $@ $(CFLAGS) $<
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) -c -o $@ $(CFLAGS) $<
clean:
rm -f $(DEPENDS) $(OBJ) $(OUTPUT)
@$(if $(Q), $(shell echo echo RM),)
$(Q)rm -f $(DEPENDS) $(OBJ) $(OUTPUT)
#---------------------------------------------------------------------------------
# you need a rule like this for each extension you use as binary data

View File

@ -2,35 +2,38 @@ HAVE_STATIC_DUMMY ?= 0
ifeq ($(TARGET),)
ifeq ($(LIBRETRO),)
TARGET := retroarch.js
LIBRETRO = dummy
else
TARGET := $(LIBRETRO)_libretro.js
endif
endif
TARGET_BASE := $(subst .js,,$(TARGET))
EOPT = USE_ZLIB=1 # Emscripten specific options
EOPTS = $(addprefix -s $(EMPTY), $(EOPT)) # Add '-s ' to each option
PTHREAD = 0
OS = Emscripten
OBJ :=
DEFINES := -DRARCH_INTERNAL -DHAVE_MAIN -s USE_PTHREADS=$(PTHREAD)
DEFINES += -DHAVE_FILTERS_BUILTIN
DEFINES := -DRARCH_INTERNAL -DHAVE_MAIN -DEMSCRIPTEN
DEFINES += -DHAVE_FILTERS_BUILTIN -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORE_INFO
HAVE_PATCH = 1
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_OVERLAY = 1
HAVE_NETWORKING ?= 1
HAVE_LIBRETRODB = 1
HAVE_COMPRESSION = 1
HAVE_UPDATE_ASSETS = 1
HAVE_ONLINE_UPDATER = 1
HAVE_GLSL = 1
HAVE_SCREENSHOTS = 1
HAVE_REWIND = 1
HAVE_AUDIOMIXER = 1
HAVE_VIDEO_LAYOUT = 0
HAVE_CC_RESAMPLER = 1
HAVE_EGL = 1
HAVE_CC_RESAMPLER ?= 1
HAVE_EGL ?= 0
HAVE_OPENGLES = 1
HAVE_RJPEG = 0
HAVE_RPNG = 1
HAVE_RJPEG = 0
HAVE_RPNG = 1
HAVE_EMSCRIPTEN = 1
HAVE_MENU = 1
HAVE_MENU ?= 1
HAVE_GFX_WIDGETS = 1
HAVE_RGUI = 1
HAVE_SDL = 0
@ -41,41 +44,115 @@ HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_STB_FONT = 1
HAVE_CONFIGFILE = 1
HAVE_COMMAND = 1
HAVE_STDIN_CMD ?= 1
HAVE_CHEATS = 1
HAVE_IBXM = 1
HAVE_CORE_INFO_CACHE = 1
HAVE_7ZIP = 1
HAVE_BSV_MOVIE = 1
HAVE_CHD ?= 0
HAVE_NETPLAYDISCOVERY ?= 0
# enables pthreads, requires special headers on the web server:
# see https://web.dev/articles/coop-coep
HAVE_THREADS ?= 0
# requires HAVE_THREADS
HAVE_AUDIOWORKLET ?= 0
# doesn't work on PROXY_TO_PTHREAD
HAVE_RWEBAUDIO ?= 1
# requires ASYNC or PROXY_TO_PTHREAD
HAVE_AL ?= 0
# whether the browser thread is allowed to block to wait for audio to play, not CPU usage-friendly!
# currently this variable is only used by rwebaudio and audioworklet; openal will never busywait.
ALLOW_AUDIO_BUSYWAIT ?= 0
# minimal asyncify; better performance than full asyncify,
# but sleeping on the main thread is only possible in some places.
MIN_ASYNC ?= 0
# runs RetroArch on a pthread instead of the browser thread; requires HAVE_THREADS
PROXY_TO_PTHREAD ?= 0
# recommended FS when using HAVE_THREADS
HAVE_WASMFS ?= 0
# enables OPFS (origin private file system) and FETCHFS, requires PROXY_TO_PTHREAD
HAVE_EXTRA_WASMFS ?= 0
# enable javascript filesystem tracking, incompatible with HAVE_WASMFS
FS_DEBUG ?= 0
# help diagnose GL problems (can cause issues in normal operation)
GL_DEBUG ?= 0
# does nothing on its own, but automatically selected by some other options
WASM_WORKERS = 0
HAVE_OPENGLES ?= 1
HAVE_OPENGLES3 ?= 0
ASYNC ?= 0
ifeq ($(LIBRETRO), mupen64plus)
ASYNC = 1
endif
LTO ?= 0
ifeq ($(LIBRETRO), tyrquake)
LTO = 0
endif
PTHREAD_POOL_SIZE ?= 4
MEMORY ?= 134217728
ASYNCIFY_ADD ?= dynCall_*,emscripten_mainloop
ASYNCIFY_REMOVE ?= threaded_worker
PRECISE_F32 = 1
STACK_SIZE ?= 4194304
INITIAL_HEAP ?= 134217728
# 4194304 ----- 4 MiB (Stack: recommended)
# 8388608 ----- 8 MiB
# 16777216 ---- 16 MiB
# 33554432 ---- 32 MiB
# 67108864 ---- 64 MiB
# 134217728 --- 128 MiB (Heap: recommended) (Stack: recommended for some cores [mupen64plus_next])
# 268435456 --- 256 MiB (Heap: recommended for some cores [mupen64plus_next])
# 536870912 --- 512 MiB (Heap: needed for some cores [mednafen_psx(_hw)])
# 1073741824 -- 1 GiB
# 1610612736 -- 1.5 GiB
# 2147483648 -- 2 GiB
OBJDIR := obj-emscripten
#if you compile with SDL2 flag add this Emscripten flag "-s USE_SDL=2" to LDFLAGS:
EXPORTED_FUNCTIONS = _main,_malloc,_free,_cmd_savefiles,_cmd_save_state,_cmd_load_state,_cmd_undo_save_state,_cmd_undo_load_state,_cmd_toggle_fullscreen,_cmd_take_screenshot,\
_cmd_toggle_menu,_cmd_reload_config,_cmd_toggle_grab_mouse,_cmd_toggle_game_focus,_cmd_reset,_cmd_toggle_pause,_cmd_pause,_cmd_unpause,\
_cmd_set_volume,_cmd_set_shader,_cmd_cheat_set_code,_cmd_cheat_get_code,_cmd_cheat_toggle_index,_cmd_cheat_get_code_state,_cmd_cheat_realloc,\
_cmd_cheat_get_size,_cmd_cheat_apply_cheats,EmscriptenSendCommand,EmscriptenReceiveCommandReply
LIBS := -s USE_ZLIB=1
LDFLAGS := -L. --no-heap-copy -s $(LIBS) -s TOTAL_MEMORY=$(MEMORY) -s NO_EXIT_RUNTIME=0 -s FULL_ES2=1 -s "EXTRA_EXPORTED_RUNTIME_METHODS=['callMain']" \
-s ALLOW_MEMORY_GROWTH=1 -s EXPORTED_FUNCTIONS="['_main', '_malloc', '_cmd_savefiles', '_cmd_save_state', '_cmd_load_state', '_cmd_take_screenshot']" \
--js-library emscripten/library_rwebaudio.js \
--js-library emscripten/library_rwebcam.js \
--js-library emscripten/library_errno_codes.js
ifneq ($(PTHREAD), 0)
LDFLAGS += -s USE_PTHREADS=$(PTHREAD) -s PTHREAD_POOL_SIZE=2
EXPORTS := callMain,FS,PATH,ERRNO_CODES,ENV,stringToNewUTF8,UTF8ToString,Browser,EmscriptenSendCommand,EmscriptenReceiveCommandReply
LIBS := -s USE_ZLIB=1
CFLAGS := -s USE_ZLIB=1
ifeq ($(HAVE_EXTRA_WASMFS), 1)
LIBS += -lfetchfs.js -lopfs.js
DEFINES += -DHAVE_EXTRA_WASMFS
override HAVE_WASMFS = 1
ifeq ($(PROXY_TO_PTHREAD), 0)
$(error ERROR: HAVE_EXTRA_WASMFS requires PROXY_TO_PTHREAD)
endif
endif
ifeq ($(ASYNC), 1)
LDFLAGS += -s ASYNCIFY=$(ASYNC)
ifeq ($(HAVE_WASMFS), 1)
LIBS += -s WASMFS -s FORCE_FILESYSTEM=1
endif
# note: real PROXY_TO_PTHREAD is not used here; we do the pthread management ourselves
ifeq ($(PROXY_TO_PTHREAD), 1)
LIBS += -s OFFSCREENCANVAS_SUPPORT
DEFINES += -DPROXY_TO_PTHREAD -DEMSCRIPTEN_STACK_SIZE=$(STACK_SIZE)
override HAVE_THREADS = 1
override WASM_WORKERS = 1
# use the default stack size for the browser thread; the RetroArch thread will be created with the specified stack size
override STACK_SIZE = 4194304
else ifeq ($(HAVE_AL), 1)
override ASYNC = 1
endif
ifeq ($(HAVE_SDL2), 1)
@ -83,16 +160,119 @@ ifeq ($(HAVE_SDL2), 1)
DEFINES += -DHAVE_SDL2
endif
LDFLAGS := -L. --no-heap-copy -s STACK_SIZE=$(STACK_SIZE) -s INITIAL_MEMORY=$(INITIAL_HEAP) \
-s EXPORTED_RUNTIME_METHODS=$(EXPORTS) \
-s ALLOW_MEMORY_GROWTH=1 -s EXPORTED_FUNCTIONS="$(EXPORTED_FUNCTIONS)" \
-s MODULARIZE=1 -s EXPORT_ES6=1 -s EXPORT_NAME="libretro_$(subst -,_,$(LIBRETRO))" \
-s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=0 \
-s ENVIRONMENT=web,worker -s WASM_BIGINT=1 \
--extern-pre-js emscripten/pre.js \
--js-library emscripten/library_rwebcam.js \
--js-library emscripten/library_platform_emscripten.js
ifeq ($(HAVE_OPENGLES), 1)
ifeq ($(HAVE_OPENGLES3), 1)
LDFLAGS += -s FULL_ES3=1 -s MIN_WEBGL_VERSION=2 -s MAX_WEBGL_VERSION=2
else
LDFLAGS += -s FULL_ES2=1 -s MIN_WEBGL_VERSION=1 -s MAX_WEBGL_VERSION=2
endif
endif
ifeq ($(GL_DEBUG), 1)
LDFLAGS += -s GL_ASSERTIONS=1 -s GL_DEBUG=1
DEFINES += -DHAVE_GL_DEBUG_ES=1
endif
ifeq ($(FS_DEBUG), 1)
LDFLAGS += -s FS_DEBUG=1
endif
ifeq ($(HAVE_RWEBAUDIO), 1)
LDFLAGS += --js-library emscripten/library_rwebaudio.js
DEFINES += -DHAVE_RWEBAUDIO
ifeq ($(PROXY_TO_PTHREAD), 1)
$(error ERROR: RWEBAUDIO is incompatible with PROXY_TO_PTHREAD)
endif
endif
ifeq ($(HAVE_AUDIOWORKLET), 1)
LDFLAGS += -s AUDIO_WORKLET=1
DEFINES += -DHAVE_AUDIOWORKLET
override WASM_WORKERS = 1
ifeq ($(HAVE_THREADS), 0)
$(error ERROR: AUDIOWORKLET requires HAVE_THREADS)
endif
endif
ifeq ($(HAVE_AL), 1)
LDFLAGS += -lopenal
DEFINES += -DHAVE_AL
endif
ifeq ($(PROXY_TO_PTHREAD), 1)
else ifeq ($(ASYNC), 1)
else
DEFINES += -DEMSCRIPTEN_AUDIO_EXTERNAL_BLOCK
ifeq ($(MIN_ASYNC), 1)
DEFINES += -DEMSCRIPTEN_AUDIO_ASYNC_BLOCK
else
DEFINES += -DEMSCRIPTEN_AUDIO_FAKE_BLOCK
endif
ifneq ($(ALLOW_AUDIO_BUSYWAIT), 1)
DEFINES += -DEMSCRIPTEN_AUDIO_EXTERNAL_WRITE_BLOCK
endif
endif
ifeq ($(ALLOW_AUDIO_BUSYWAIT), 1)
DEFINES += -DEMSCRIPTEN_AUDIO_BUSYWAIT
endif
# explanation of some of these defines:
# EMSCRIPTEN_AUDIO_EXTERNAL_BLOCK: audio blocking occurs in the main loop instead of in the audio driver functions.
# EMSCRIPTEN_AUDIO_EXTERNAL_WRITE_BLOCK: along with above, enables external blocking in the write function.
# EMSCRIPTEN_AUDIO_BUSYWAIT: write function will busywait. init function may still use an external block.
# EMSCRIPTEN_AUDIO_ASYNC_BLOCK: external block uses emscripten_sleep (requires MIN_ASYNC).
# EMSCRIPTEN_AUDIO_FAKE_BLOCK: external block uses main loop timing (doesn't require asyncify).
# when building with either PROXY_TO_PTHREAD or ASYNC (full asyncify), none of the above are required.
ifeq ($(HAVE_THREADS), 1)
LDFLAGS += -pthread -s PTHREAD_POOL_SIZE=$(PTHREAD_POOL_SIZE)
CFLAGS += -pthread -s SHARED_MEMORY
endif
ifeq ($(WASM_WORKERS), 1)
LDFLAGS += -s WASM_WORKERS=1
endif
ifeq ($(ASYNC), 1)
DEFINES += -DEMSCRIPTEN_ASYNCIFY -DEMSCRIPTEN_FULL_ASYNCIFY
LDFLAGS += -s ASYNCIFY=1 -s ASYNCIFY_STACK_SIZE=8192
ifeq ($(DEBUG), 1)
#LDFLAGS += -s ASYNCIFY_DEBUG=1 # broken?
endif
else ifeq ($(MIN_ASYNC), 1)
DEFINES += -DEMSCRIPTEN_ASYNCIFY -DEMSCRIPTEN_MIN_ASYNCIFY
LDFLAGS += -s ASYNCIFY=1 -s ASYNCIFY_STACK_SIZE=8192 -s ASYNCIFY_IGNORE_INDIRECT=1 -s ASYNCIFY_ADD='$(ASYNCIFY_ADD)' -s ASYNCIFY_REMOVE='$(ASYNCIFY_REMOVE)'
ifeq ($(DEBUG), 1)
LDFLAGS += -s ASYNCIFY_ADVISE #-s ASYNCIFY_DEBUG=1
endif
endif
include Makefile.common
CFLAGS += $(DEF_FLAGS) -Ideps -Ideps/stb
DEF_FLAGS += $(INCLUDE_DIRS) -Ideps -Ideps/stb
libretro :=
CFLAGS += $(DEF_FLAGS)
CXXFLAGS += $(DEF_FLAGS) -D__STDC_CONSTANT_MACROS
libretro =
libretro_new =
ifeq ($(HAVE_STATIC_DUMMY),1)
DEFINES += -DHAVE_STATIC_DUMMY
else
libretro += libretro_emscripten.bc
libretro = libretro_emscripten.bc
libretro_new = libretro_emscripten.a
endif
ifneq ($(V), 1)
@ -100,41 +280,45 @@ ifneq ($(V), 1)
endif
ifeq ($(DEBUG), 1)
LDFLAGS += -O0 -g
CFLAGS += -O0 -g
LDFLAGS += -O0 -g -gsource-map -s SAFE_HEAP=2 -s STACK_OVERFLOW_CHECK=2 -s ASSERTIONS=1
# -O0 in cflags gives "too many locals" errors
CFLAGS += -O1 -g -gsource-map
else
LDFLAGS += -O3 -s WASM=1
LDFLAGS += -O3
# WARNING: some optimizations can break some cores (ex: LTO breaks tyrquake)
LDFLAGS += -s PRECISE_F32=$(PRECISE_F32)
ifeq ($(LTO), 1)
LDFLAGS += --llvm-lto 3
LDFLAGS += -flto
endif
CFLAGS += -O3
endif
CFLAGS += -Wall -I. -Ilibretro-common/include -std=gnu99 $(LIBS) \
-s EXPORTED_FUNCTIONS="['_main', '_malloc', '_cmd_savefiles', '_cmd_save_state', '_cmd_take_screenshot']"
CFLAGS += -Wall -I. -Ilibretro-common/include -Ideps/7zip -std=gnu99
RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
all: $(TARGET)
$(TARGET): $(RARCH_OBJ) $(libretro)
@$(if $(Q), $(shell echo echo LD $@),)
$(Q)$(LD) -o $@ $(RARCH_OBJ) $(libretro) $(LIBS) $(LDFLAGS)
$(libretro_new): ;
mv_libretro:
$(Q)mv -f $(libretro) $(libretro_new) || true
$(TARGET): $(RARCH_OBJ) $(libretro_new) mv_libretro
@$(if $(Q), $(shell echo echo "LD $@ \<obj\> $(libretro_new) $(LIBS) $(LDFLAGS)"),)
$(Q)$(LD) -o $@ $(RARCH_OBJ) $(libretro_new) $(LIBS) $(LDFLAGS)
$(OBJDIR)/%.o: %.c
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CFLAGS) $(DEFINES) $(EOPTS) -c -o $@ $<
$(Q)$(CC) $(CFLAGS) $(DEFINES) -c -o $@ $<
$(OBJDIR)/%.o: %.cpp
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) $(CXXFLAGS) $(DEFINES) $(EOPTS) -c -o $@ $<
$(Q)$(CXX) $(CXXFLAGS) $(DEFINES) -c -o $@ $<
clean:
rm -rf $(OBJDIR)
rm -f $(TARGET)
.PHONY: all clean
.PHONY: all clean mv_libretro

View File

@ -116,6 +116,7 @@ else ifeq ($(platform), ps3-cobra)
# NGC/Wii - libogc
else ifeq ($(libogc_platform), 1)
EXTERNAL_LIBOGC ?= 0
HAVE_OGG_OGC ?= 0
GX_PTHREAD_LEGACY ?= 1
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
@ -183,6 +184,10 @@ else ifeq ($(libogc_platform), 1)
endif
endif
ifeq ($(HAVE_OGG_OGC), 1)
LIBS += -L$(DEVKITPRO)/portlibs/ppc/lib -lvorbisfile -lvorbis -logg
endif
ifeq ($(EXTERNAL_LIBOGC), 1)
LIBS += -lfat
endif
@ -214,7 +219,6 @@ else ifeq ($(libogc_platform), 1)
HAVE_RTGA := 1
HAVE_IBXM := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_CONFIGFILE := 1
@ -348,7 +352,6 @@ else ifeq ($(platform), vita)
HAVE_IFINFO := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_STB_FONT := 1
@ -371,7 +374,6 @@ else ifeq ($(platform), windows_msvc6_x86)
HAVE_NETWORK_CMD := 0
HAVE_NETPLAYDISCOVERY := 0
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_STB_FONT := 1
@ -419,7 +421,6 @@ else ifeq ($(platform), windows_msvc2003_x86)
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_STB_FONT := 1
@ -475,7 +476,6 @@ else ifeq ($(platform), windows_msvc2005_x86)
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_OZONE := 1
@ -509,7 +509,9 @@ else ifeq ($(platform), windows_msvc2005_x86)
PLATCFLAGS += -D_WIN32 -D_WIN32_WINNT=0x0410 -D__STDC_CONSTANT_MACROS -D_MBCS
PLATCFLAGS += -DHAVE_OPENGL -DHAVE_OPENGL1 -DHAVE_GLSL -DHAVE_OZONE -DHAVE_GFX_WIDGETS -DHAVE_CC_RESAMPLER
PLATCFLAGS += -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DHAVE_CDROM
PLATCFLAGS += -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
PLATCFLAGS += -DHAVE_UPDATE_CORE_INFO
PLATCFLAGS += -DHAVE_CDROM
PLATCFLAGS += -bigobj
LDFLAGS += -MANIFEST shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib msimg32.lib
@ -558,7 +560,6 @@ else ifneq (,$(findstring windows_msvc2010,$(platform)))
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_OZONE := 1
@ -594,7 +595,9 @@ else ifneq (,$(findstring windows_msvc2010,$(platform)))
PLATCFLAGS += -D__i686__ -D__SSE__ -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS
PLATCFLAGS += -DHAVE_CC_RESAMPLER -DHAVE_GL_SYNC -DHAVE_GLSL -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA
PLATCFLAGS += -DHAVE_OPENGL -DHAVE_OPENGL1 -DHAVE_OZONE
PLATCFLAGS += -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DWIN32 -DHAVE_CDROM
PLATCFLAGS += -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
PLATCFLAGS += -DHAVE_UPDATE_CORE_INFO
PLATCFLAGS += -DWIN32 -DHAVE_CDROM
PLATCFLAGS += -DHAVE_GFX_WIDGETS
PLATCFLAGS += -bigobj
@ -653,7 +656,6 @@ else ifneq (,$(findstring windows_msvc2012,$(platform)))
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_STB_FONT := 1
@ -679,8 +681,10 @@ else ifneq (,$(findstring windows_msvc2012,$(platform)))
LD = link.exe
PLATCFLAGS += -D_WIN32 -D__STDC_CONSTANT_MACROS -D_MBCS
PLATCFLAGS += -D__i686__ -D__MMX__ -D__SSE__ -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DHAVE_CC_RESAMPLER -DHAVE_GL_SYNC -DHAVE_GLSL -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_OPENGL -DHAVE_SHADERPIPELINE -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DWIN32 -DHAVE_CDROM
LDFLAGS += shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib iphlpapi.lib
PLATCFLAGS += -D__i686__ -D__MMX__ -D__SSE__ -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DHAVE_CC_RESAMPLER -DHAVE_GL_SYNC -DHAVE_GLSL -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_OPENGL -DHAVE_SHADERPIPELINE -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
PLATCFLAGS += -DHAVE_UPDATE_CORE_INFO
PLATCFLAGS += -DWIN32 -DHAVE_CDROM
LDFLAGS += shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib iphlpapi.lib
PlatformSuffix = $(subst windows_msvc2012_,,$(platform))
@ -739,7 +743,6 @@ else ifneq (,$(findstring windows_msvc2013,$(platform)))
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_STB_FONT := 1
@ -765,8 +768,10 @@ else ifneq (,$(findstring windows_msvc2013,$(platform)))
LD = link.exe
PLATCFLAGS += -D_WIN32 -D__STDC_CONSTANT_MACROS -D_MBCS
PLATCFLAGS += -D__i686__ -D__MMX__ -D__SSE__ -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DHAVE_CC_RESAMPLER -DHAVE_GL_SYNC -DHAVE_GLSL -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_OPENGL -DHAVE_SHADERPIPELINE -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DWIN32 -DHAVE_CDROM
LDFLAGS += shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib iphlpapi.lib
PLATCFLAGS += -D__i686__ -D__MMX__ -D__SSE__ -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DHAVE_CC_RESAMPLER -DHAVE_GL_SYNC -DHAVE_GLSL -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_OPENGL -DHAVE_SHADERPIPELINE -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
PLATCFLAGS += -DHAVE_UPDATE_CORE_INFO
PLATCFLAGS += -DWIN32 -DHAVE_CDROM
LDFLAGS += shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib iphlpapi.lib
PlatformSuffix = $(subst windows_msvc2013_,,$(platform))
@ -825,7 +830,6 @@ else ifneq (,$(findstring windows_msvc2015,$(platform)))
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_STB_FONT := 1
@ -852,7 +856,9 @@ else ifneq (,$(findstring windows_msvc2015,$(platform)))
PLATCFLAGS += -utf-8
PLATCFLAGS += -D_WIN32 -D__STDC_CONSTANT_MACROS -D_MBCS
PLATCFLAGS += -D__i686__ -D__MMX__ -D__SSE__ -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DHAVE_CC_RESAMPLER -DHAVE_GL_SYNC -DHAVE_GLSL -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_OPENGL -DHAVE_SHADERPIPELINE -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DWIN32 -DHAVE_CDROM
PLATCFLAGS += -D__i686__ -D__MMX__ -D__SSE__ -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DHAVE_CC_RESAMPLER -DHAVE_GL_SYNC -DHAVE_GLSL -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_OPENGL -DHAVE_SHADERPIPELINE -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
PLATCFLAGS += -DHAVE_UPDATE_CORE_INFO
PLATCFLAGS += -DWIN32 -DHAVE_CDROM
LDFLAGS += shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib iphlpapi.lib
PlatformSuffix = $(subst windows_msvc2015_,,$(platform))
@ -926,7 +932,6 @@ else ifeq (qnx,$(platform))
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_STB_FONT := 1
@ -951,7 +956,9 @@ else ifeq (qnx,$(platform))
LDFLAGS += -g
endif
PLATCFLAGS += -DHAVE_SHADERPIPELINE -DHAVE_OPENGL -DHAVE_OPENGLES -DHAVE_OPENGLES2 -DHAVE_OZONE -DHAVE_CC_RESAMPLER -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_GL_SYNC -DHAVE_GLSLANG -DHAVE_BUILTINGLSLANG -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_RUNAHEAD -DHAVE_GFX_WIDGETS -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_SPIRV_CROSS -DHAVE_STB_FONT -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DHAVE_XMB -DRARCH_INTERNAL -DWANT_GLSLANG -DHAVE_XCB -DHAVE_EGL -DHAVE_BB10 -DHAVE_GLSL -DHAVE_AL -DHAVE_BSV_MOVIE -DRARCH_MOBILE
PLATCFLAGS += -DHAVE_SHADERPIPELINE -DHAVE_OPENGL -DHAVE_OPENGLES -DHAVE_OPENGLES2 -DHAVE_OZONE -DHAVE_CC_RESAMPLER -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_GL_SYNC -DHAVE_GLSLANG -DHAVE_BUILTINGLSLANG -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_RUNAHEAD -DHAVE_GFX_WIDGETS -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_SPIRV_CROSS -DHAVE_STB_FONT -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
PLATCFLAGS += -DHAVE_UPDATE_CORE_INFO
PLATCFLAGS += -DHAVE_XMB -DRARCH_INTERNAL -DWANT_GLSLANG -DHAVE_XCB -DHAVE_EGL -DHAVE_BB10 -DHAVE_GLSL -DHAVE_AL -DHAVE_BSV_MOVIE -DRARCH_MOBILE
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,7 +979,6 @@ else ifneq (,$(findstring unix,$(platform)))
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_STB_FONT := 1
@ -990,7 +996,9 @@ else ifneq (,$(findstring unix,$(platform)))
HAVE_CHEATS := 1
HAVE_CORE_INFO_CACHE := 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_GL_SYNC -DHAVE_SLANG -DHAVE_GLSLANG -DHAVE_BUILTINGLSLANG -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_RUNAHEAD -DHAVE_GFX_WIDGETS -DHAVE_CONFIGFILE -DHAVE_PATCH -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_BSV_MOVIE -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_GL_SYNC -DHAVE_SLANG -DHAVE_GLSLANG -DHAVE_BUILTINGLSLANG -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_RUNAHEAD -DHAVE_GFX_WIDGETS -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_SPIRV_CROSS -DHAVE_STB_FONT -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
PLATCFLAGS += -DHAVE_UPDATE_CORE_INFO
PLATCFLAGS += -DHAVE_VULKAN -DHAVE_XMB -DRARCH_INTERNAL -DWANT_GLSLANG -DHAVE_X11 -DHAVE_XCB -DHAVE_UDEV -DHAVE_BSV_MOVIE -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.
@ -1114,10 +1122,6 @@ ifeq ($(HAVE_OVERLAY), 1)
CFLAGS += -DHAVE_OVERLAY
endif
ifeq ($(HAVE_VIDEO_LAYOUT), 1)
CFLAGS += -DHAVE_VIDEO_LAYOUT
endif
ifeq ($(HAVE_NETWORKING), 1)
CFLAGS += -DHAVE_NETWORKING
endif

250
Makefile.lfx000 Normal file
View File

@ -0,0 +1,250 @@
#########################
## Toolchain variables ##
#########################
# Default toolchain directory
TOOLCHAIN_DIR="$(HOST_DIR)"
# All toolchain-related variables may be
# overridden via the command line
ifdef GCW0_CC
CC = $(GCW0_CC)
else
CC = $(TOOLCHAIN_DIR)/usr/bin/arm-linux-gcc
endif
ifdef GCW0_CXX
CXX = $(GCW0_CXX)
else
CXX = $(TOOLCHAIN_DIR)/usr/bin/arm-linux-g++
endif
ifdef GCW0_STRIP
STRIP = $(GCW0_STRIP)
else
STRIP = $(TOOLCHAIN_DIR)/usr/bin/arm-linux-strip
endif
GCW0_SDL_CONFIG ?= $(TOOLCHAIN_DIR)/usr/arm-buildroot-linux-gnueabi/sysroot/usr/bin/sdl-config
GCW0_FREETYPE_CONFIG ?= $(TOOLCHAIN_DIR)/usr/arm-buildroot-linux-gnueabi/sysroot/usr/bin/freetype-config
GCW0_INC_DIR ?= $(TOOLCHAIN_DIR)/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include
GCW0_LIB_DIR ?= $(TOOLCHAIN_DIR)/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib
#########################
#########################
PACKAGE_NAME = retroarch
DEBUG ?= 0
MIYOO = 1
DINGUX = 1
HAVE_SCREENSHOTS = 1
HAVE_REWIND = 1
HAVE_7ZIP = 1
HAVE_AL = 0
HAVE_ALSA = 1
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_FILTERS_BUILTIN = 1
HAVE_BUILTINMBEDTLS = 0
HAVE_BUILTINZLIB = 1
HAVE_C99 = 1
HAVE_CC = 1
HAVE_CC_RESAMPLER = 1
HAVE_CHD = 1
HAVE_COMMAND = 0
HAVE_CXX = 1
HAVE_DR_MP3 = 1
HAVE_DYNAMIC = 1
HAVE_EGL = 0
HAVE_FREETYPE = 0
HAVE_GDI = 1
HAVE_GETADDRINFO = 0
HAVE_GETOPT_LONG = 1
HAVE_GLSL = 0
HAVE_HID = 0
HAVE_IBXM = 1
HAVE_IMAGEVIEWER = 0
HAVE_LANGEXTRA = 0
HAVE_LIBRETRODB = 1
HAVE_MENU = 1
HAVE_MENU_COMMON = 1
HAVE_GFX_WIDGETS = 0
HAVE_MMAP = 1
HAVE_OPENDINGUX_FBDEV = 0
HAVE_OPENGL = 0
HAVE_OPENGL1 = 0
HAVE_OPENGLES = 0
HAVE_OPENGLES3 = 0
HAVE_OPENGL_CORE = 0
HAVE_OPENSSL = 0
HAVE_OVERLAY = 0
HAVE_RBMP = 1
HAVE_RJPEG = 1
HAVE_RPILED = 0
HAVE_RPNG = 1
HAVE_RUNAHEAD = 0
HAVE_SDL_DINGUX = 1
HAVE_SHADERPIPELINE = 0
HAVE_STB_FONT = 0
HAVE_STB_IMAGE = 0
HAVE_STB_VORBIS = 0
HAVE_STDIN_CMD = 0
HAVE_STRCASESTR = 1
HAVE_THREADS = 1
HAVE_UDEV = 0
HAVE_RGUI = 1
HAVE_MATERIALUI = 0
HAVE_XMB = 0
HAVE_OZONE = 0
HAVE_ZLIB = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_CHEEVOS = 0
HAVE_LIBSHAKE = 0
HAVE_CORE_INFO_CACHE = 1
#HAVE_TINYALSA = 1
HAVE_NEAREST_RESAMPLER = 1
OS = Linux
TARGET = retroarch
OBJ :=
LINK := $(CXX)
DEF_FLAGS := -march=armv5te -mtune=arm926ej-s -ffast-math -fomit-frame-pointer
DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -I. -Ideps -Ideps/stb -DMIYOO=1 -DDINGUX -MMD
DEF_FLAGS += -Wall -Wno-unused-variable -flto
DEF_FLAGS += -std=gnu99 -D_GNU_SOURCE
LIBS := -ldl -lz -lrt -pthread -lasound
CFLAGS :=
CXXFLAGS := -fno-exceptions -fno-rtti -std=c++11 -D__STDC_CONSTANT_MACROS
ASFLAGS :=
LDFLAGS := -Wl,--gc-sections
INCLUDE_DIRS = -I$(GCW0_INC_DIR)
LIBRARY_DIRS = -L$(GCW0_LIB_DIR)
DEFINES := -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64 -UHAVE_STATIC_DUMMY
DEFINES += -DHAVE_C99=1 -DHAVE_CXX=1
DEFINES += -DHAVE_GETOPT_LONG=1 -DHAVE_STRCASESTR=1 -DHAVE_DYNAMIC=1
DEFINES += -DHAVE_FILTERS_BUILTIN -DHAVE_ALSA
SDL_DINGUX_CFLAGS := $(shell $(GCW0_SDL_CONFIG) --cflags)
SDL_DINGUX_LIBS := $(shell $(GCW0_SDL_CONFIG) --libs)
FREETYPE_CFLAGS := $(shell $(GCW0_FREETYPE_CONFIG) --cflags)
FREETYPE_LIBS := $(shell $(GCW0_FREETYPE_CONFIG) --libs)
MMAP_LIBS = -lc
OBJDIR_BASE := obj-unix
ifeq ($(DEBUG), 1)
OBJDIR := $(OBJDIR_BASE)/debug
DEF_FLAGS += -O0 -g -DDEBUG -D_DEBUG
else
OBJDIR := $(OBJDIR_BASE)/release
DEF_FLAGS += -O2 -DNDEBUG
endif
include Makefile.common
DEF_FLAGS += $(INCLUDE_DIRS)
LDFLAGS += $(CFLAGS) $(CXXFLAGS) $(DEF_FLAGS)
CFLAGS += $(DEF_FLAGS)
CXXFLAGS += $(DEF_FLAGS)
HEADERS = $(wildcard */*/*.h) $(wildcard */*.h) $(wildcard *.h)
Q := @
RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
all: $(TARGET)
-include $(RARCH_OBJ:.o=.d)
SYMBOL_MAP := -Wl,-Map=output.map
$(TARGET): $(RARCH_OBJ)
@$(if $(Q), $(shell echo echo LD $@),)
$(Q)$(LINK) -o $@ $(RARCH_OBJ) $(LIBS) $(LDFLAGS) $(LIBRARY_DIRS)
ifeq ($(STRIP_BIN),1)
$(STRIP) --strip-unneeded $(TARGET)
endif
$(OBJDIR)/%.o: %.c
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c -o $@ $<
$(OBJDIR)/%.o: %.cpp
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.m
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo OBJC $<),)
$(Q)$(CXX) $(OBJCFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.S $(HEADERS)
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo AS $<),)
$(Q)$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $<
clean:
rm -rf $(OBJDIR_BASE)
rm -f $(TARGET)
rm -f *.d
install: $(TARGET)
mkdir -p $(DESTDIR)$(BIN_DIR) 2>/dev/null || /bin/true
mkdir -p $(DESTDIR)$(GLOBAL_CONFIG_DIR) 2>/dev/null || /bin/true
mkdir -p $(DESTDIR)$(DATA_DIR)/applications 2>/dev/null || /bin/true
mkdir -p $(DESTDIR)$(DATA_DIR)/metainfo 2>/dev/null || /bin/true
mkdir -p $(DESTDIR)$(DOC_DIR) 2>/dev/null || /bin/true
mkdir -p $(DESTDIR)$(MAN_DIR)/man6 2>/dev/null || /bin/true
mkdir -p $(DESTDIR)$(DATA_DIR)/pixmaps 2>/dev/null || /bin/true
cp $(TARGET) $(DESTDIR)$(BIN_DIR)
cp tools/cg2glsl.py $(DESTDIR)$(BIN_DIR)/retroarch-cg2glsl
cp retroarch.cfg $(DESTDIR)$(GLOBAL_CONFIG_DIR)
cp com.libretro.RetroArch.metainfo.xml $(DESTDIR)$(DATA_DIR)/metainfo
cp com.libretro.RetroArch.desktop $(DESTDIR)$(DATA_DIR)/applications
cp docs/retroarch.6 $(DESTDIR)$(MAN_DIR)/man6
cp docs/retroarch-cg2glsl.6 $(DESTDIR)$(MAN_DIR)/man6
cp media/com.libretro.RetroArch.svg $(DESTDIR)$(DATA_DIR)/pixmaps
cp COPYING $(DESTDIR)$(DOC_DIR)
cp README.md $(DESTDIR)$(DOC_DIR)
chmod 755 $(DESTDIR)$(BIN_DIR)/$(TARGET)
chmod 755 $(DESTDIR)$(BIN_DIR)/retroarch-cg2glsl
chmod 644 $(DESTDIR)$(GLOBAL_CONFIG_DIR)/retroarch.cfg
chmod 644 $(DESTDIR)$(DATA_DIR)/applications/com.libretro.RetroArch.desktop
chmod 644 $(DESTDIR)$(DATA_DIR)/metainfo/com.libretro.RetroArch.metainfo.xml
chmod 644 $(DESTDIR)$(MAN_DIR)/man6/retroarch.6
chmod 644 $(DESTDIR)$(MAN_DIR)/man6/retroarch-cg2glsl.6
chmod 644 $(DESTDIR)$(DATA_DIR)/pixmaps/com.libretro.RetroArch.svg
@if test -d media/assets && test $(HAVE_ASSETS); then \
echo "Installing media assets..."; \
mkdir -p $(DESTDIR)$(ASSETS_DIR)/assets; \
if test $(HAVE_MATERIALUI) = 1; then \
cp -r media/assets/glui/ $(DESTDIR)$(ASSETS_DIR)/assets; \
fi; \
if test $(HAVE_XMB) = 1; then \
cp -r media/assets/xmb/ $(DESTDIR)$(ASSETS_DIR)/assets; \
fi; \
if test $(HAVE_OZONE) = 1; then \
cp -r media/assets/ozone/ $(DESTDIR)$(ASSETS_DIR)/assets; \
fi; \
cp media/assets/COPYING $(DESTDIR)$(DOC_DIR)/COPYING.assets; \
echo "Asset copying done."; \
fi
.PHONY: all clean
print-%:
@echo '$*=$($*)'

View File

@ -41,6 +41,7 @@ HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_STATIC_CORES = 1
HAVE_FILTERS_BUILTIN = 1
HAVE_MENU = 1
HAVE_CONFIGFILE = 1
@ -52,7 +53,7 @@ HAVE_IFINFO = 1
HAVE_NETPLAYDISCOVERY = 1
HAVE_STB_FONT = 1
HAVE_CHEEVOS = 1
HAVE_CHD = 0 # disabled due to static libretro-common and libchdr conflicts between different cores
HAVE_CHD = 1
HAVE_STB_VORBIS = 1
HAVE_IBXM = 1
HAVE_CORE_INFO_CACHE = 1
@ -75,7 +76,6 @@ ifeq ($(HAVE_OPENGL), 1)
HAVE_XMB = 1
HAVE_OZONE = 1
HAVE_OVERLAY = 1
HAVE_VIDEO_LAYOUT = 1
HAVE_GLSL = 1
else
HAVE_RGUI = 1
@ -127,10 +127,10 @@ APP_ICON := pkg/libnx/retroarch.jpg
#---------------------------------------------------------------------------------
ARCH := -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE -mcpu=cortex-a57+crc+fp+simd
CFLAGS := -g -Wall -O3 -fcommon -ffast-math -ffunction-sections \
CFLAGS := -g -Wall -O3 -fcommon -ffunction-sections \
$(ARCH) $(DEFINES) $(INCLUDE_DIRS) -I$(LIBNX)/include -I$(PORTLIBS)/include/ -include $(LIBNX)/include/switch.h #$(shell $(PORTLIBS)/bin/freetype-config --cflags)
CFLAGS += $(INCLUDE) -DSWITCH=1 -DHAVE_LIBNX=1 -DNXLINK=1 -DHAVE_SHADERPIPELINE -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DHAVE_STB_FONT #-DHAVE_FREETYPE
CFLAGS += $(INCLUDE) -DSWITCH=1 -DHAVE_LIBNX=1 -DNXLINK=1 -DHAVE_SHADERPIPELINE -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DHAVE_UPDATE_CORE_INFO -DHAVE_STB_FONT #-DHAVE_FREETYPE
ifeq ($(HAVE_FILTERS_BUILTIN), 1)
CFLAGS += -DHAVE_FILTERS_BUILTIN

View File

@ -105,6 +105,7 @@ HAVE_OZONE = 0
HAVE_ZLIB = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_XDELTA = 0 # Disabled until we figure out how to include <lzma.h>
HAVE_CHEATS = 1
HAVE_CHEEVOS = 0
HAVE_LIBSHAKE = 0
@ -117,7 +118,7 @@ TARGET = retroarch
OBJ :=
LINK := $(CXX)
DEF_FLAGS := -march=armv5te -mtune=arm926ej-s -ffast-math -fomit-frame-pointer
DEF_FLAGS := -march=armv5te -mtune=arm926ej-s -fomit-frame-pointer
DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -I. -Ideps -Ideps/stb -DMIYOO=1 -DDINGUX -MMD
DEF_FLAGS += -Wall -Wno-unused-variable -flto
@ -159,12 +160,36 @@ CXXFLAGS += $(DEF_FLAGS)
HEADERS = $(wildcard */*/*.h) $(wildcard */*.h) $(wildcard *.h)
Q := @
ifneq ($(V),1)
Q := @
endif
RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
all: $(TARGET)
define INFO
ASFLAGS: $(ASFLAGS)
CC: $(CC)
CFLAGS: $(CFLAGS)
CPPFLAGS: $(CPPFLAGS)
CXX: $(CXX)
CXXFLAGS: $(CXXFLAGS)
DEFINES: $(DEFINES)
LDFLAGS: $(LDFLAGS)
LIBRARY_DIRS: $(LIBRARY_DIRS)
LIBS: $(LIBS)
LINK: $(LINK)
OBJCFLAGS: $(OBJCFLAGS)
RARCH_OBJ: $(RARCH_OBJ)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
-include $(RARCH_OBJ:.o=.d)
SYMBOL_MAP := -Wl,-Map=output.map
@ -198,9 +223,10 @@ $(OBJDIR)/%.o: %.S $(HEADERS)
$(Q)$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $<
clean:
rm -rf $(OBJDIR_BASE)
rm -f $(TARGET)
rm -f *.d
@$(if $(Q), echo $@,)
$(Q)rm -rf $(OBJDIR_BASE)
$(Q)rm -f $(TARGET)
$(Q)rm -f *.d
.PHONY: all clean

View File

@ -25,11 +25,11 @@ HAVE_D3D12 := 1
HAVE_CG := 1
HAVE_OPENGL := 1
HAVE_OPENGL1 := 1
HAVE_GFX_WIDGETS := 1
HAVE_GFX_WIDGETS := 1
HAVE_VULKAN := 1
HAVE_XAUDIO := 1
HAVE_XINPUT := 1
HAVE_WASAPI := 0
HAVE_WASAPI := 1
HAVE_THREAD_STORAGE := 1
HAVE_WINMM := 1
@ -61,7 +61,6 @@ HAVE_NETWORKING := 1
HAVE_IFINFO := 1
HAVE_NETWORK_CMD := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_LANGEXTRA := 1
HAVE_CHEEVOS := 1
HAVE_SHADERPIPELINE := 1

View File

@ -58,6 +58,7 @@ LIBS := $(WHOLE_START) $(LIB_CORE) $(WHOLE_END)
libogc_platform := 1
EXTERNAL_LIBOGC ?= 0
HAVE_OGG_OGC ?= 0
GX_PTHREAD_LEGACY ?= 1
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
@ -102,6 +103,10 @@ ifeq ($(BIG_STACK), 1)
LDFLAGS += -T bootstrap/gx/ogc.ld
endif
ifeq ($(HAVE_OGG_OGC), 1)
LIBS += -L$(DEVKITPRO)/portlibs/ppc/lib -lvorbisfile -lvorbis -logg
endif
ifeq ($(EXTERNAL_LIBOGC), 1)
LIBS += -lfat
endif
@ -125,11 +130,11 @@ HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_IBXM := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_XDELTA := 0 # disabled because <lzma.h> isn't available (or we haven't figured out how to install it)
HAVE_CHEATS := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
@ -233,34 +238,65 @@ else
CFLAGS += -O3
endif
ifneq ($(V),1)
Q := @
endif
OBJOUT = -o
LINKOUT = -o
LINK = $(CXX)
all: $(EXT_TARGET)
define INFO
CC: $(CC)
CFLAGS: $(CFLAGS)
CXX: $(CXX)
LD: $(LD)
LDFLAGS: $(LDFLAGS)
LIBDIRS: $(LIBDIRS)
LIBS: $(LIBS)
LINK: $(LINK)
LINKOUT: $(LINKOUT)
OBJ: $(OBJ)
OBJOUT: $(OBJOUT)
PLATEXTRA: $(PLATEXTRA)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
%.dol: %.elf
$(ELF2DOL) $< $@
$(EXT_INTER_TARGET): $(OBJ)
$(LINK) $(LINKOUT)$@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(PLATEXTRA) $(LIBS)
@$(if $(Q), $(shell echo echo LINK $@),)
$(Q)$(LINK) $(LINKOUT)$@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(PLATEXTRA) $(LIBS)
%.o: %.c
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.cpp
$(CXX) $(CFLAGS) -c $(OBJOUT)$@ $<
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.S
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.binobj: %.bin
$(LD) -r -b binary $(OBJOUT)$@ $<
@$(if $(Q), $(shell echo echo LD $@),)
$(Q)$(LD) -r -b binary $(OBJOUT)$@ $<
clean:
rm -f $(EXT_TARGET)
rm -f $(EXT_INTER_TARGET)
rm -f $(OBJ)
@$(if $(Q), echo $@,)
$(Q)rm -f $(EXT_TARGET)
$(Q)rm -f $(EXT_INTER_TARGET)
$(Q)rm -f $(OBJ)
.PHONY: clean

View File

@ -32,7 +32,6 @@ DEFINES += -DHAVE_THREADS \
-DHAVE_RPNG \
-DHAVE_RJPEG \
-DHAVE_OVERLAY \
-DHAVE_VIDEO_LAYOUT \
-DHAVE_ALSA \
-DHAVE_ZLIB \
-D__linux__ \

View File

@ -52,7 +52,6 @@ else
HAVE_ZLIB := 1
HAVE_BUILTINZLIB := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 1
HAVE_7ZIP := 1
HAVE_EGL := 1
HAVE_GFX_WIDGETS := 1
@ -79,7 +78,7 @@ else
HAVE_THREAD_ATTR := 1
HAVE_LIBRETRODB := 1
HAVE_CC_RESAMPLER := 1
HAVE_CHEEVOS := 1
HAVE_CHEEVOS := 0
HAVE_RUNAHEAD := 1
RARCH_CONSOLE := 1
HAVE_MAIN := 1
@ -87,6 +86,7 @@ else
HAVE_COMPRESSION := 1
HAVE_UPDATE_ASSETS := 1
HAVE_UPDATE_CORES := 1
HAVE_UPDATE_CORE_INFO := 1
HAVE_CONFIGFILE := 1
HAVE_CHD := 1
HAVE_STATIC_VIDEO_FILTERS = 1
@ -123,7 +123,7 @@ INCDIRS += -I. -Idefines -Ideps -Ideps/7zip -Ideps/libz -Ilibretro-common/includ
ARCHFLAGS += --target=x86_64-scei-ps4 -DORBIS -D__ORBIS__ -D__PS4__ -D_BSD_SOURCE
DEFINES += -DRARCH_INTERNAL -DRARCH_CONSOLE -DHAVE_FILTERS_BUILTIN \
-DHAVE_XMB -DHAVE_RGUI -DHAVE_OZONE \
-DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_CORES -DHAVE_UPDATE_ASSETS \
-DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_CORES -DHAVE_UPDATE_CORE_INFO -DHAVE_UPDATE_ASSETS \
# Compiling with -Werror and disabling some warnings
DEFINES += -Werror -Wno-macro-redefined -Wno-typedef-redefinition -Wno-non-literal-null-conversion -Wno-void-pointer-to-int-cast \
@ -176,38 +176,67 @@ else
CXXFLAGS += -O3
endif
ifneq ($(V),1)
Q := @
endif
TARGETS := $(TARGET).self
all: $(TARGETS)
define INFO
CC: $(CC)
CFLAGS: $(CFLAGS)
CXX: $(CXX)
CXXFLAGS: $(CXXFLAGS)
LD: $(LD)
LDFLAGS: $(LDFLAGS)
LIBS: $(LIBS)
OBJ: $(OBJ)
OBJOUT: $(OBJOUT)
ORBISDEV: $(ORBISDEV)
TARGET: $(TARGET)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
OBJOUT = -o
%.o: %.c
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $(OBJOUT)$@ $<
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) $(CXXFLAGS) -c $(OBJOUT)$@ $<
%.o: %.S
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.s
$(CC) -c $(OBJOUT)$@ $<
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) -c $(OBJOUT)$@ $<
$(TARGET).elf: $(OBJ)
$(LD) $(ORBISDEV)/usr/lib/crt0.o $(OBJ) $(LDFLAGS) $(LIBS) -o $(TARGET).elf
@$(if $(Q), $(shell echo echo LD $@),)
$(Q)$(LD) $(ORBISDEV)/usr/lib/crt0.o $(OBJ) $(LDFLAGS) $(LIBS) -o $(TARGET).elf
$(TARGET).oelf: $(TARGET).elf
@orbis-elf-create $(TARGET).elf $(TARGET).oelf
orbis-elf-create $(TARGET).elf $(TARGET).oelf
$(TARGET).self: $(TARGET).oelf
python $(ORBISDEV)/bin/make_fself.py --auth-info $(AUTH_INFO) $(TARGET).oelf $(TARGET).self
install:
@cp $(TARGET).self $(SELF_PATH_INSTALL)/homebrew.self
cp $(TARGET).self $(SELF_PATH_INSTALL)/homebrew.self
@echo "Installed!"
clean:
rm -f $(OBJ) $(TARGET).elf $(TARGET).oelf $(TARGET).self
$(Q)rm -f $(OBJ) $(TARGET).elf $(TARGET).oelf $(TARGET).self
.PHONY: clean all

View File

@ -11,7 +11,7 @@ all: $(BINDIR)/retroarch
pnd: retroarch.pnd
install: all $(BINDIR)/retroarch-joyconfig $(BINDIR)/retroarch-zip $(PNDDIR)/readme.html
install: all $(BINDIR)/retroarch-zip $(PNDDIR)/readme.html
retroarch:
./configure --prefix=$PND_BASEDIR/$PRJ --disable-ffmpeg --disable-cg --disable-pulse --disable-jack --enable-opengles
@ -21,10 +21,6 @@ $(BINDIR)/retroarch: retroarch
mkdir -p $(BINDIR)
cp retroarch $(BINDIR)/retroarch
$(BINDIR)/retroarch-joyconfig: tools/retroarch-joyconfig
mkdir -p $(BINDIR)
cp tools/retroarch-joyconfig $(BINDIR)/retroarch-joyconfig
$(BINDIR)/retroarch-zip: retroarch-zip
mkdir -p $(BINDIR)
cp retroarch-zip $(BINDIR)/retroarch-zip
@ -49,6 +45,5 @@ clean:
rm -f input/*.o
rm -f tools/*.o
rm -f $(BINDIR)/retroarch
rm -f $(BINDIR)/retroarch-joyconfig
rm -f $(PNDDIR)/readme.html
rm -f retroarch

View File

@ -16,7 +16,6 @@ ifeq ($(DEBUG), 1)
DEFINES += -DDEBUG
else
OPTIMIZE_LV := -O3
# LDFLAGS := -s
endif
ifeq ($(MUTE_WARNINGS), 1)
@ -55,6 +54,7 @@ else
HAVE_MENU = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_PATCH = 0 # disabled because <lzma.h> isn't available (or we haven't figured out how to install it)
HAVE_CHEATS = 1
HAVE_RGUI = 1
HAVE_MATERIALUI = 0
@ -83,30 +83,20 @@ ifeq ($(strip $(PS2SDK)),)
$(error "Please set PS2SDK in your environment. export PS2SDK=<path to>ps2sdk")
endif
ifneq ($(V),1)
Q := @
endif
INCDIR = -I$(PS2DEV)/gsKit/include -I$(PS2SDK)/ports/include
INCDIR += -Ips2/include -Ilibretro-common/include -Ideps -Ideps/stb -Ideps/7zip
INCDIR += -Ilibretro-common/include -Ideps -Ideps/stb -Ideps/7zip
LDFLAGS += -L$(PS2DEV)/gsKit/lib -L$(PS2SDK)/ports/lib -L.
# Lib cdvd is needed to get proper time
LIBS += -lpatches -lgskit -ldmakit -laudsrv -lmtap -lpadx -lz -lcdvd -lelf-loader -lfileXio -lpoweroff
LIBS += -lpatches -lgskit -ldmakit -lps2_drivers -lz -lelf-loader
CFLAGS = $(OPTIMIZE_LV) $(DISABLE_WARNINGS) $(DEFINES) -DPS2 -ffast-math -fsingle-precision-constant
CFLAGS = $(OPTIMIZE_LV) $(DISABLE_WARNINGS) $(DEFINES) -DPS2 -fsingle-precision-constant
ASFLAGS = $(CFLAGS)
# IRX libs
IRX_FILES += sio2man.irx iomanX.irx fileXio.irx
IRX_FILES += mcman.irx mcserv.irx
IRX_FILES += usbd.irx bdm.irx bdmfs_vfat.irx usbmass_bd.irx
IRX_FILES += libsd.irx audsrv.irx
IRX_FILES += cdfs.irx
IRX_FILES += ps2dev9.irx ps2atad.irx ps2hdd.irx ps2fs.irx poweroff.irx
IRX_FILES += mtapman.irx padman.irx
EE_OBJS += $(IRX_FILES:.irx=_irx.o)
# Missing objecst on the PS2SDK
EE_OBJS += ps2/compat_files/ps2_devices.o
EE_OBJS += $(OBJ)
EE_CFLAGS = $(CFLAGS)
@ -118,11 +108,27 @@ EE_INCS = $(INCDIR)
EE_BIN = $(TARGET).elf
EE_GPVAL = $(GPVAL)
all: $(EE_BIN)
define INFO
EE_BIN: $(EE_BIN)
EE_CC: $(EE_CC)
EE_CFLAGS: $(EE_CFLAGS)
EE_CXX: $(EE_CXX)
EE_CXXFLAGS: $(EE_CXXFLAGS)
EE_INCS: $(EE_INCS)
EE_OBJS: $(EE_OBJS)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
clean:
rm -f $(EE_BIN) $(EE_OBJS)
@$(if $(Q), $(shell echo echo RM $<),)
$(Q)rm -f $(EE_BIN) $(EE_OBJS)
prepare:
ps2client -h $(PS2_IP) reset
@ -132,17 +138,29 @@ run:
ps2client -h $(PS2_IP) execee host:$(EE_BIN)
sim:
PCSX2 --elf=$(PWD)/$(EE_BIN) --nogui
ifeq ($(shell uname), Darwin)
/Applications/PCSX2.app/Contents/MacOS/PCSX2 -elf $(PWD)/$(EE_BIN)
else
PCSX2 -elf $(PWD)/$(EE_BIN) -nogui
endif
debug: clean all run
release: all
ps2-packer $(EE_BIN) $(TARGET_RELEASE)
# IRX files
%_irx.c:
$(PS2SDK)/bin/bin2c $(PS2SDK)/iop/irx/$*.irx $@ $*_irx
#Include preferences
include $(PS2SDK)/samples/Makefile.pref
include $(PS2SDK)/samples/Makefile.eeglobal_cpp
%.o: %.c
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(EE_CC) $(EE_CFLAGS) $(EE_INCS) -c $< -o $@
%.o: %.cc
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(EE_CXX) $(EE_CXXFLAGS) $(EE_INCS) -c $< -o $@
%.o: %.cpp
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(EE_CXX) $(EE_CXXFLAGS) $(EE_INCS) -c $< -o $@

View File

@ -20,15 +20,15 @@ ifeq ($(MUTE_WARNINGS), 1)
endif
INCDIR = -Ilibretro-common/include
INCDIR += -Ips2/include
CFLAGS = $(OPTIMIZE_LV) $(DISABLE_WARNINGS) -ffast-math -fsingle-precision-constant
INCDIR += -I$(PS2SDK)/ports/include
CFLAGS = $(OPTIMIZE_LV) $(DISABLE_WARNINGS) -fsingle-precision-constant
ASFLAGS = $(CFLAGS)
RARCH_DEFINES += -DPS2 -DIS_SALAMANDER -DRARCH_CONSOLE
LIBDIR =
LDFLAGS =
LIBS = -lelf-loader -lpatches -lfileXio -lpoweroff
LDFLAGS += -L$(PS2SDK)/ports/lib
LIBS = -lelf-loader -lps2_drivers -lpatches
ifeq ($(SCREEN_DEBUG), 1)
LIBS += -ldebug
@ -60,16 +60,7 @@ EE_OBJS = frontend/frontend_salamander.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/hash/lrc_hash.o \
libretro-common/time/rtime.o \
verbosity.o \
ps2/compat_files/ps2_devices.o
# IRX libs
IRX_FILES += sio2man.irx iomanX.irx fileXio.irx
IRX_FILES += mcman.irx mcserv.irx
IRX_FILES += usbd.irx bdm.irx bdmfs_vfat.irx usbmass_bd.irx
IRX_FILES += cdfs.irx
IRX_FILES += ps2dev9.irx ps2atad.irx ps2hdd.irx ps2fs.irx poweroff.irx
EE_OBJS += $(IRX_FILES:.irx=_irx.o)
verbosity.o
EE_CFLAGS = $(CFLAGS)
EE_CXXFLAGS = $(CFLAGS)
@ -93,10 +84,6 @@ run:
release: all
ps2-packer $(EE_BIN) $(TARGET_RELEASE)
# IRX files
%_irx.c:
$(PS2SDK)/bin/bin2c $(PS2SDK)/iop/irx/$*.irx $@ $*_irx
#Include preferences
include $(PS2SDK)/samples/Makefile.pref
include $(PS2SDK)/samples/Makefile.eeglobal_cpp

View File

@ -6,7 +6,7 @@
ifeq ($(strip $(PSL1GHT)),)
$(error "Please set PSL1GHT in your environment. export PSL1GHT=<path>")
endif
include $(PSL1GHT)/ppu_rules
include version.all
@ -23,17 +23,24 @@ APPID = SSNE10001
TITLE = Retroarch PSL1GHT
PACKAGE_BASENAME := retroarch_psl1ght
ELF_TARGET := retroarch_psl1ght.elf
ELF_TARGET := retroarch_psl1ght.elf
SELF_TARGET := $(ELF_TARGET:.elf=.self)
CORE_PATH = pkg/psl1ght/pkg/USRDIR/cores/CORE.SELF
CORE_PATH = pkg/psl1ght/pkg/USRDIR/cores/CORE.SELF
INCLUDE += -I. -Ips3/gcmgl/include/export -Ips3/include -Ideps -Ideps/stb -Ilibretro-common/include/compat/zlib -Ilibretro-common/include $(LIBPSL1GHT_INC) -Iinclude -Idefines
LIBDIRS += -L.
INCLUDE += -I. -Ideps -Ideps/stb -Ilibretro-common/include/compat/zlib -Ilibretro-common/include $(LIBPSL1GHT_INC) -Iinclude -Idefines -I$(PORTLIBS)/include -I$(PORTLIBS)/include/freetype2
LIBDIRS += -L. -L$(PORTLIBS)/lib
ifeq ($(HAVE_STATIC_DUMMY),1)
DEFINES += -DHAVE_STATIC_DUMMY
LIBS :=
else
LIBS := -lretro_psl1ght
endif
MACHDEP := -D__PSL1GHT__ -D__PS3__ -mcpu=cell
CFLAGS += -Wall $(MACHDEP) $(INCLUDE)
CFLAGS += -Wall $(DEFINES) $(MACHDEP) $(INCLUDE)
LDFLAGS := $(MACHDEP)
LIBS := -lretro_psl1ght -laudio -lrsx -lgcm_sys -lnet -lio -lsysutil -lsysmodule -lm -ljpgdec -lpngdec -llv2 -lnet -lnetctl -lsysfs -lfreetype -lcamera -lgem -lspurs
LIBS += -lrt -laudio -lrsx -lgcm_sys -lnet -lio -lsysutil -lsysmodule -lm -ljpgdec -lpngdec -llv2 -lnet -lnetctl -lsysfs -lfreetype -lcamera -lgem -lspurs
# system platform
system_platform = unix
@ -53,12 +60,14 @@ else
GIT = git.exe
endif
SHADER_OBJS = gfx/drivers/rsx_shaders/vpshader_basic.vpo.o \
gfx/drivers/rsx_shaders/fpshader_basic.fpo.o
SHADER_OBJS = gfx/drivers/rsx_shaders/modern_opaque.vpo.o \
gfx/drivers/rsx_shaders/modern_opaque.fpo.o \
gfx/drivers/rsx_shaders/modern_alpha_blend.vpo.o \
gfx/drivers/rsx_shaders/modern_alpha_blend.fpo.o
LIBCO_OBJ = libretro-common/libco/ps3.o
OBJ = $(SHADER_OBJS) $(LIBCO_OBJ) griffin/griffin.o
OBJ = $(SHADER_OBJS) $(LIBCO_OBJ) libretro-common/memmap/memmap.o griffin/griffin.o
ifeq ($(HAVE_LOGGER), 1)
CFLAGS += -DHAVE_LOGGER
@ -70,7 +79,7 @@ endif
SHARED_FLAGS :=
SHARED_FLAGS += -DHAVE_VIDEO_LAYOUT
SHARED_FLAGS += -DHAVE_GCM
SHARED_FLAGS += -DHAVE_MENU \
-DHAVE_CONFIGFILE \
-DHAVE_PATCH \
@ -78,12 +87,11 @@ SHARED_FLAGS += -DHAVE_MENU \
-DRARCH_CONSOLE \
-DHAVE_OVERLAY \
-DHAVE_HEADSET \
-DHAVE_CG \
-DHAVE_CG_RUNTIME_COMPILER \
-DHAVE_SYSMODULES \
-DHAVE_SYSUTILS \
-DHAVE_RARCH_EXEC \
-DHAVE_MOUSE \
-DHAVE_LIGHTGUN \
-DHAVE_ZLIB \
-DHAVE_RPNG \
-DHAVE_GRIFFIN=1 \
@ -99,8 +107,15 @@ SHARED_FLAGS += -DHAVE_MENU \
-DHAVE_MULTIMAN \
-DHAVE_MEMINFO \
-DHAVE_RGUI \
-DHAVE_XMB \
-DHAVE_OZONE \
-DHAVE_GFX_WIDGETS \
-DHAVE_MENU_BUFFER \
-DHAVE_FREETYPE \
-DHAVE_CORE_INFO_CACHE
-DHAVE_CORE_INFO_CACHE \
-DHAVE_7ZIP \
-D_7ZIP_ST
CFLAGS += -std=gnu99 $(SHARED_FLAGS)
CXXFLAGS += $(SHARED_FLAGS)
@ -111,13 +126,32 @@ else
CXXFLAGS += -03 -g
endif
ifneq ($(V),1)
Q := @
endif
all: $(SELF_TARGET)
define INFO
CXX: $(CXX)
LDFLAGS: $(LDFLAGS)
LIBDIRS: $(LIBDIRS)
LIBS: $(LIBS)
OBJ: $(OBJ)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
$(ELF_TARGET): $(OBJ)
$(CXX) -o $@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(LIBS)
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) -o $@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(LIBS)
create-core: $(SELF_TARGET)
cp $(SELF_TARGET) $(CORE_PATH)
cp $(SELF_TARGET) $(CORE_PATH)
pkg: create-core
$(PKG) --contentid $(CONTENTID) pkg/psl1ght/pkg/ $(PACKAGE_BASENAME).pkg
@ -125,7 +159,8 @@ pkg: create-core
# $(PACKAGE_FINALIZE) $(PACKAGE_BASENAME).gnpdrm.pkg
clean:
rm -f $(ELF_TARGET)
rm -f $(OBJ)
@$(if $(Q), echo $@,)
$(Q)rm -f $(ELF_TARGET)
$(Q)rm -f $(OBJ)
.PHONY: clean

View File

@ -27,8 +27,8 @@ ELF_TARGET := retroarch_psl1ght_salamander.elf
ELF_TARGET_NONSTRIPPED := retroarch_psl1ght_salamander_nonstripped.elf
EBOOT_PATH = pkg/psl1ght/pkg/USRDIR/EBOOT.BIN
INCLUDE += -I. -Ips3/gcmgl/include/export -Ips3/include -Ideps -Ideps/stb -Ilibretro-common/include/compat/zlib \
-Ilibretro-common/include $(LIBPSL1GHT_INC) -Iinclude -Idefines
INCLUDE += -I. -Ideps -Ideps/stb -Ilibretro-common/include/compat/zlib \
-Ilibretro-common/include $(LIBPSL1GHT_INC) -Iinclude -Idefines
LIBDIRS += -L.
MACHDEP := -D__PS3__ -D__PSL1GHT__ -mcpu=cell -mhard-float -fmodulo-sched -ffunction-sections -fdata-sections
@ -85,8 +85,7 @@ endif
SHARED_FLAGS :=
SHARED_FLAGS += -DHAVE_VIDEO_LAYOUT
SHARED_FLAGS += -DHAVE_MENU -DHAVE_CONFIGFILE -DRARCH_CONSOLE -DHAVE_OVERLAY -DHAVE_HEADSET -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 -DHAVE_MULTIMAN -DHAVE_RGUI -DIS_SALAMANDER
SHARED_FLAGS += -DHAVE_MENU -DHAVE_CONFIGFILE -DRARCH_CONSOLE -DHAVE_OVERLAY -DHAVE_HEADSET -DHAVE_CG -DHAVE_CG_RUNTIME_COMPILER -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 -DHAVE_MULTIMAN -DHAVE_RGUI -DIS_SALAMANDER -DHAVE_GCM
CFLAGS += -std=gnu99 $(SHARED_FLAGS)
CXXFLAGS += $(SHARED_FLAGS)

View File

@ -6,7 +6,7 @@ HAVE_THREADS ?= 1
BIG_STACK ?= 0
LOAD_WITHOUT_CORE_INFO ?= 0
HAVE_STATIC_DUMMY ?= 0
HAVE_XDELTA ?= 1
TARGET = retroarchpsp
ifeq ($(DEBUG), 1)
@ -16,7 +16,7 @@ else
endif
INCDIR = deps deps/stb deps/7zip libretro-common/include libretro-common/include/compat/zlib
CFLAGS = $(OPTIMIZE_LV) -ffast-math -fsingle-precision-constant
CFLAGS = $(OPTIMIZE_LV) -fsingle-precision-constant
ASFLAGS = $(CFLAGS)
RARCH_DEFINES = -DPSP \

View File

@ -12,7 +12,7 @@ else
endif
INCDIR = $(PSPPATH)/include libretro-common/include
CFLAGS = $(OPTIMIZE_LV) -ffast-math -fsingle-precision-constant
CFLAGS = $(OPTIMIZE_LV) -fsingle-precision-constant
ASFLAGS = $(CFLAGS)
RARCH_DEFINES = -DPSP -DIS_SALAMANDER -DRARCH_CONSOLE
@ -50,7 +50,7 @@ OBJS = frontend/frontend_salamander.o \
verbosity.o
ifeq ($(HAVE_KERNEL_PRX), 1)
OBJS += bootstrap/psp1/kernel_functions.o
OBJS += bootstrap/psp1/kernel_functions.o
CFLAGS += -DHAVE_KERNEL_PRX
endif

View File

@ -107,6 +107,7 @@ HAVE_OZONE = 0
HAVE_ZLIB = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_XDELTA = 0 # disabled because <lzma.h> isn't available (or we haven't figured out how to install it)
HAVE_CHEATS = 1
HAVE_CHEEVOS = 0
HAVE_LIBSHAKE = 0
@ -119,7 +120,7 @@ OPK_NAME = retroarch_retrofw.opk
OBJ :=
LINK := $(CXX)
DEF_FLAGS := -march=mips32 -mtune=mips32 -mhard-float -ffast-math -fomit-frame-pointer
DEF_FLAGS := -march=mips32 -mtune=mips32 -mhard-float -fomit-frame-pointer
DEF_FLAGS += -mplt -mno-shared
DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -I. -Ideps -Ideps/stb -DDINGUX=1 -DRETROFW=1 -MMD
@ -163,7 +164,9 @@ CXXFLAGS += $(DEF_FLAGS)
HEADERS = $(wildcard */*/*.h) $(wildcard */*.h) $(wildcard *.h)
Q := @
ifneq ($(V),1)
Q := @
endif
RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
@ -181,9 +184,30 @@ X-OD-NeedsDownscaling=true
endef
export DESKTOP_ENTRY
all: $(TARGET) opk
define INFO
ASFLAGS: $(ASFLAGS)
CC: $(CC)
CFLAGS: $(CFLAGS)
CPPFLAGS: $(CPPFLAGS)
CXX: $(CXX)
CXXFLAGS: $(CXXFLAGS)
DEFINES: $(DEFINES)
LDFLAGS: $(LDFLAGS)
LIBRARY_DIRS: $(LIBRARY_DIRS)
LIBS: $(LIBS)
LINK: $(LINK)
OBJCFLAGS: $(OBJCFLAGS)
RARCH_OBJ: $(RARCH_OBJ)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
-include $(RARCH_OBJ:.o=.d)
SYMBOL_MAP := -Wl,-Map=output.map
@ -213,10 +237,11 @@ $(OBJDIR)/%.o: %.S $(HEADERS)
$(Q)$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $<
clean:
rm -rf $(OBJDIR_BASE)
rm -f $(TARGET)
rm -f *.d
rm -rf $(OPK_NAME)
@$(if $(Q), echo $@,)
$(Q)rm -rf $(OBJDIR_BASE)
$(Q)rm -f $(TARGET)
$(Q)rm -f *.d
$(Q)rm -rf $(OPK_NAME)
opk: $(TARGET)
echo "$$DESKTOP_ENTRY" > default.retrofw.desktop

View File

@ -76,6 +76,7 @@ HAVE_MENU = 1
HAVE_MENU_COMMON = 1
HAVE_GFX_WIDGETS = 0
HAVE_MMAP = 1
HAVE_NETWORKING = 1
HAVE_OPENDINGUX_FBDEV = 0
HAVE_OPENGL = 0
HAVE_OPENGL1 = 0

View File

@ -76,6 +76,7 @@ HAVE_MENU = 1
HAVE_MENU_COMMON = 1
HAVE_GFX_WIDGETS = 0
HAVE_MMAP = 1
HAVE_NETWORKING = 1
HAVE_OPENDINGUX_FBDEV = 0
HAVE_OPENGL = 0
HAVE_OPENGL1 = 0

View File

@ -107,6 +107,7 @@ HAVE_OZONE = 0
HAVE_ZLIB = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_XDELTA = 0 # Disabled until we figure out how to include <lzma.h>
HAVE_CHEATS = 1
HAVE_CHEEVOS = 0
HAVE_LIBSHAKE = 0
@ -165,7 +166,9 @@ CXXFLAGS += $(DEF_FLAGS)
HEADERS = $(wildcard */*/*.h) $(wildcard */*.h) $(wildcard *.h)
Q := @
ifneq ($(V),1)
Q := @
endif
RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
@ -185,6 +188,28 @@ export DESKTOP_ENTRY
all: $(TARGET) opk
define INFO
ASFLAGS: $(ASFLAGS)
CC: $(CC)
CFLAGS: $(CFLAGS)
CPPFLAGS: $(CPPFLAGS)
CXX: $(CXX)
CXXFLAGS: $(CXXFLAGS)
DEFINES: $(DEFINES)
LDFLAGS: $(LDFLAGS)
LIBRARY_DIRS: $(LIBRARY_DIRS)
LIBS: $(LIBS)
LINK: $(LINK)
OBJCFLAGS: $(OBJCFLAGS)
RARCH_OBJ: $(RARCH_OBJ)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
-include $(RARCH_OBJ:.o=.d)
SYMBOL_MAP := -Wl,-Map=output.map
@ -214,10 +239,11 @@ $(OBJDIR)/%.o: %.S $(HEADERS)
$(Q)$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $<
clean:
rm -rf $(OBJDIR_BASE)
rm -f $(TARGET)
rm -f *.d
rm -rf $(OPK_NAME)
@$(if $(Q), echo $@,)
$(Q)rm -rf $(OBJDIR_BASE)
$(Q)rm -f $(TARGET)
$(Q)rm -f *.d
$(Q)rm -rf $(OPK_NAME)
opk: $(TARGET)
echo "$$DESKTOP_ENTRY" > default.rs90.desktop

View File

@ -84,9 +84,9 @@ else
HAVE_GFX_WIDGETS := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_XDELTA := 1 # disabled because <lzma.h> isn't available (or we haven't figured out how to install it)
HAVE_CHEATS := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_RGUI := 1
@ -138,7 +138,7 @@ ifeq ($(HAVE_VITAGLES), 1)
ARCHFLAGS += -DSCE_LIBC_SIZE=$(SCE_LIBC_SIZE)
endif
CFLAGS += $(ARCHFLAGS) -mword-relocations -fno-optimize-sibling-calls
CFLAGS += $(ARCHFLAGS) -mword-relocations
ifeq ($(DEBUG), 1)
CFLAGS += -g -Og
@ -147,9 +147,9 @@ else
endif
ASFLAGS := $(CFLAGS)
LDFLAGS := -Wl,-q
LDFLAGS := -Wl,-q,--pic-veneer
CFLAGS += -Wall -ffast-math
CFLAGS += -Wall
CFLAGS += -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DRARCH_CONSOLE
CFLAGS += -DHAVE_DSP_FILTER
CFLAGS += -DHAVE_VIDEO_FILTER
@ -190,6 +190,10 @@ else
LIBS += -lretro_vita
endif
ifneq ($(V),1)
Q := @
endif
LIBS += $(WHOLE_END) $(VITA_LIBS) -lm -lc
TARGETS := $(TARGET).vpk
@ -199,25 +203,51 @@ POSTCOMPILE = mv -f $*.Tdepend $*.depend
all: $(TARGETS)
define INFO
ASFLAGS: $(ASFLAGS)
CC: $(CC)
CFLAGS: $(CFLAGS)
CXX: $(CXX)
CXXFLAGS: $(CXXFLAGS)
DEPFLAGS: $(DEPFLAGS)
INCDIRS: $(INCDIRS)
LD: $(LD)
LDFLAGS: $(LDFLAGS)
LIBDIRS: $(LIBDIRS)
LIBS: $(LIBS)
OBJ: $(OBJ)
POSTCOMPILE: $(POSTCOMPILE)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
%.o: %.cpp
%.o: %.cpp %.depend
$(CXX) -c -o $@ $< $(CXXFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) -c -o $@ $< $(CXXFLAGS) $(INCDIRS) $(DEPFLAGS)
$(Q)$(POSTCOMPILE)
%.o: %.c
%.o: %.c %.depend
$(CC) -c -o $@ $< $(CFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) -c -o $@ $< $(CFLAGS) $(INCDIRS) $(DEPFLAGS)
$(Q)$(POSTCOMPILE)
%.o: %.S
%.o: %.S %.depend
$(CC) -c -o $@ $< $(ASFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) -c -o $@ $< $(ASFLAGS) $(INCDIRS) $(DEPFLAGS)
$(Q)$(POSTCOMPILE)
%.o: %.s
%.o: %.s %.depend
$(CC) -c -o $@ $< $(ASFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) -c -o $@ $< $(ASFLAGS) $(INCDIRS) $(DEPFLAGS)
$(Q)$(POSTCOMPILE)
%.depend: ;
@ -228,7 +258,8 @@ liblibScePiglet_stub.a:
cp deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet/liblibScePiglet_stub.a .
$(TARGET).elf: $(OBJ) liblibScePiglet_stub.a
$(LD) $(OBJ) $(LDFLAGS) $(LIBDIRS) $(LIBS) -o $@
@$(if $(Q), $(shell echo echo LD $@),)
$(Q)$(LD) $(OBJ) $(LDFLAGS) $(LIBDIRS) $(LIBS) -o $@
%.velf: %.elf
cp $< $<.unstripped.elf
@ -243,9 +274,10 @@ $(TARGET).elf: $(OBJ) liblibScePiglet_stub.a
vita-pack-vpk -s param.sfo -b $< $@
clean:
rm -f $(OBJ) $(TARGET).elf $(TARGET).elf.unstripped.elf $(TARGET).velf $(TARGET).self param.sfo $(TARGET).vpk
rm -rf deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet
rm -f $(OBJ:.o=.depend)
@$(if $(Q), echo $@,)
$(Q)rm -f $(OBJ) $(TARGET).elf $(TARGET).elf.unstripped.elf $(TARGET).velf $(TARGET).self param.sfo $(TARGET).vpk
$(Q)rm -rf deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet
$(Q)rm -f $(OBJ:.o=.depend)
# Useful for developers
vpksend: $(TARGET).vpk

View File

@ -14,7 +14,7 @@ PREFIX = arm-vita-eabi
CC = $(PREFIX)-gcc
INCDIR = libretro-common/include
CFLAGS = -Wl,-q $(OPTIMIZE_LV) -I$(INCDIR) -std=gnu99 -mfloat-abi=hard -ffast-math -fsingle-precision-constant -mword-relocations
CFLAGS = -Wl,-q $(OPTIMIZE_LV) -I$(INCDIR) -std=gnu99 -mfloat-abi=hard -fsingle-precision-constant -mword-relocations
ASFLAGS = $(CFLAGS)
RARCH_DEFINES = -DVITA -DIS_SALAMANDER -DRARCH_CONSOLE

View File

@ -1,243 +1,308 @@
include version.all
$(call assert,$(call seq,$(TARGET_PREFIX),arm-webos-linux-gnueabi-),webOS SDK isn't setup properly. See https://github.com/webosbrew/meta-lg-webos-ndk#compile-program-by-command-line)
WEBOS_FREETYPE_CONFIG ?= $(SDKTARGETSYSROOT)/usr/bin/freetype-config
WEBOS_INC_DIR ?= $(SDKTARGETSYSROOT)/usr/include
WEBOS_LIB_DIR ?= $(SDKTARGETSYSROOT)/usr/lib
#########################
#########################
PACKAGE_NAME = com.retroarch
PACKAGE_VERSION := $(patsubst "%",%,$(RARCH_VERSION))
DEBUG ?= 0
HAVE_SCREENSHOTS = 1
HAVE_REWIND = 1
HAVE_7ZIP = 1
HAVE_ACCESSIBILITY = 1
HAVE_AL = 0
# ALSA freezes when switching back from menu
HAVE_ALSA = 0
HAVE_ANGLE = 0
HAVE_AUDIOIO = 0
HAVE_AUDIOMIXER = 1
HAVE_BLISSBOX = 0
HAVE_BSV_MOVIE = 1
HAVE_BUILTINBEARSSL = 0
HAVE_BUILTINFLAC = 1
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_FILTERS_BUILTIN = 1
HAVE_BUILTINMBEDTLS = 1
HAVE_BUILTINZLIB = 1
HAVE_C99 = 1
HAVE_CC = 1
HAVE_CC_RESAMPLER = 1
HAVE_NEAREST_RESAMPLER = 1
HAVE_CHD = 1
HAVE_COMMAND = 1
HAVE_CXX = 1
HAVE_DR_MP3 = 1
HAVE_DYNAMIC = 1
HAVE_DYLIB = 1
HAVE_EGL = 0
HAVE_FREETYPE = 0
HAVE_GDI = 1
HAVE_GETADDRINFO = 1
HAVE_GETOPT_LONG = 1
HAVE_GLSL = 1
HAVE_GLSLANG = 0
HAVE_GLSLANG_HLSL = 0
HAVE_GLSLANG_OGLCOMPILER = 0
HAVE_GLSLANG_OSDEPENDENT = 0
HAVE_GLSLANG_SPIRV = 0
HAVE_GLSLANG_SPIRV_TOOLS = 0
HAVE_GLSLANG_SPIRV_TOOLS_OPT = 0
HAVE_HID = 1
HAVE_IBXM = 1
HAVE_IMAGEVIEWER = 1
HAVE_LANGEXTRA = 1
HAVE_LIBRETRODB = 1
HAVE_MENU = 1
HAVE_MENU_COMMON = 1
HAVE_NEON = 1
HAVE_NETWORKING = 1
HAVE_IFINFO = 1
HAVE_NETWORK_CMD = 1
HAVE_NETPLAYDISCOVERY = 1
HAVE_NETWORKGAMEPAD = 1
HAVE_GFX_WIDGETS = 1
HAVE_MMAP = 1
HAVE_ONLINE_UPDATER = 1
HAVE_OPENDINGUX_FBDEV = 0
HAVE_OPENGL = 0
HAVE_OPENGL1 = 0
HAVE_OPENGL_CORE = 0
HAVE_OPENGLES = 1
HAVE_OPENGLES3 = 0
HAVE_OPENGLES3_1 = 0
HAVE_OPENGLES3_2 = 0
HAVE_OPENSSL = 0
HAVE_OVERLAY = 1
HAVE_PULSE = 1
HAVE_RBMP = 1
HAVE_RJPEG = 1
HAVE_RPILED = 0
HAVE_RPNG = 1
HAVE_RUNAHEAD = 1
HAVE_SDL = 0
HAVE_SDL2 = 1
HAVE_SHADERPIPELINE = 1
HAVE_STB_FONT = 1
HAVE_STB_IMAGE = 1
HAVE_STB_VORBIS = 1
HAVE_STDIN_CMD = 1
HAVE_STRCASESTR = 1
HAVE_THREADS = 1
HAVE_UDEV = 0
HAVE_RGUI = 1
HAVE_MATERIALUI = 0
HAVE_XMB = 1
HAVE_OZONE = 1
HAVE_ZLIB = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_CHEEVOS = 1
HAVE_LIBSHAKE = 1
HAVE_UPDATE_ASSETS = 1
HAVE_UPDATE_CORES = 1
HAVE_CORE_INFO_CACHE = 1
OS = Linux
TARGET = retroarch
OBJ :=
LINK := $(CXX)
DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -I. -Ideps -Ideps/stb -DWEBOS=1 -MMD
DEF_FLAGS += -Wall -Wno-unused-variable
LIBS := -ldl -lz -lrt -pthread
CFLAGS :=
CXXFLAGS := -fno-exceptions -fno-rtti -std=c++11 -D__STDC_CONSTANT_MACROS
ASFLAGS :=
LDFLAGS := -Wl,--gc-sections
INCLUDE_DIRS = -I$(WEBOS_INC_DIR)
LIBRARY_DIRS = -L$(WEBOS_LIB_DIR)
DEFINES := -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64 -UHAVE_STATIC_DUMMY
DEFINES += -DHAVE_C99=1 -DHAVE_CXX=1 -D_GNU_SOURCE
DEFINES += -DHAVE_GETOPT_LONG=1 -DHAVE_STRCASESTR=1 -DHAVE_DYNAMIC=1
DEFINES += -DHAVE_FILTERS_BUILTIN
DEFINES += -DHAVE_SDL2
DEFINES += -DHAVE_PULSE
DEFINES += -DHAVE_NETWORKING -DHAVE_IFINFO -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
SDL2_CFLAGS := $(shell pkg-config --cflags sdl2)
SDL2_LIBS := $(shell pkg-config --libs sdl2)
OPENGLES_LIBS = -lGLESv2
PULSE_LIBS = $(shell pkg-config --libs libpulse)
MMAP_LIBS = -lc
NEON_CFLAGS = -mfpu=neon
NEON_ASFLAGS = -mfpu=neon
NETWORKING_LIBS = -lc
OBJDIR_BASE := obj-unix
ifeq ($(DEBUG), 1)
OBJDIR := $(OBJDIR_BASE)/debug
DEF_FLAGS += -O0 -g -DDEBUG -D_DEBUG
else
OBJDIR := $(OBJDIR_BASE)/release
DEF_FLAGS += -O2 -DNDEBUG
endif
include Makefile.common
DEF_FLAGS += $(INCLUDE_DIRS)
LDFLAGS += $(CFLAGS) $(CXXFLAGS) $(DEF_FLAGS)
CFLAGS += $(DEF_FLAGS)
CXXFLAGS += $(DEF_FLAGS)
HEADERS = $(wildcard */*/*.h) $(wildcard */*.h) $(wildcard *.h)
Q := @
RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
define APPINFO
{
"id": "$(PACKAGE_NAME)",
"version": "$(PACKAGE_VERSION)",
"vendor": "webosbrew.org",
"title": "RetroArch",
"icon": "icon160.png",
"main": "retroarch",
"iconColor": "#333333",
"type": "native",
"appDescription": "Emulation frontend"
}
endef
export APPINFO
all: $(TARGET) ipk
-include $(RARCH_OBJ:.o=.d)
SYMBOL_MAP := -Wl,-Map=output.map
$(TARGET): $(RARCH_OBJ)
@$(if $(Q), $(shell echo echo LD $@),)
$(Q)$(LINK) -o $@ $(RARCH_OBJ) $(LIBS) $(LDFLAGS) $(LIBRARY_DIRS)
$(OBJDIR)/%.o: %.c
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c -o $@ $<
$(OBJDIR)/%.o: %.cpp
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.m
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo OBJC $<),)
$(Q)$(CXX) $(OBJCFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.S $(HEADERS)
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo AS $<),)
$(Q)$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $<
clean:
rm -rf $(OBJDIR_BASE)
rm -f $(TARGET)
rm -f *.d
rm -rf webos/*.ipk
rm -rf webos/dist
ipk: $(TARGET)
rm -rf webos/dist
mkdir -p webos/dist/lib
echo "$$APPINFO" > webos/dist/appinfo.json
cp -t webos/dist -vf $(TARGET) webos/icon160.png
cp -t webos/dist/lib -vf $(WEBOS_LIB_DIR)/libstdc++.so.6
$(STRIP) webos/dist/$(TARGET)
cd webos && ares-package dist
install: ipk
ares-install webos/$(PACKAGE_NAME)_$(PACKAGE_VERSION)_$(ARCH).ipk
launch: install
ares-launch com.retroarch
.PHONY: all clean ipk
print-%:
@echo '$*=$($*)'
include version.all
ifneq ($(CROSS_COMPILE),arm-webos-linux-gnueabi-)
$(error You need webOS toolchain to build this. See https://github.com/webosbrew/native-toolchain)
endif
ifdef SDKTARGETSYSROOT
$(warning "OE-based toolchain isn't supported anymore. Please use https://github.com/webosbrew/native-toolchain")
STAGING_DIR = $(SDKTARGETSYSROOT)
else ifndef STAGING_DIR
$(error "Can't find buildroot based toolchain. Please use https://github.com/webosbrew/native-toolchain")
endif
WEBOS_FREETYPE_CONFIG ?= $(STAGING_DIR)/usr/bin/freetype-config
WEBOS_INC_DIR ?= $(STAGING_DIR)/usr/include
WEBOS_USR_LIB_DIR ?= $(STAGING_DIR)/usr/lib
WEBOS_LIB_DIR ?= $(STAGING_DIR)/lib
ADD_SDL2_LIB ?= 0
SDL2_PREBUILT_ARCHIVE ?= https://github.com/webosbrew/SDL-webOS/releases/download/release-2.30.12-webos.1/SDL2-2.30.12-webos-abi.tar.gz
#########################
#########################
APP_PACKAGE_NAME ?= com.retroarch.webos
PACKAGE_VERSION := $(patsubst "%",%,$(RARCH_VERSION))
DEBUG ?= 0
HAVE_CLOUDSYNC = 1
HAVE_SCREENSHOTS = 1
HAVE_REWIND = 1
HAVE_7ZIP = 1
HAVE_ACCESSIBILITY = 1
HAVE_AL = 0
# ALSA freezes when switching back from menu
HAVE_ALSA = 0
HAVE_ANGLE = 0
HAVE_AUDIOIO = 0
HAVE_AUDIOMIXER = 1
HAVE_BLISSBOX = 0
HAVE_BSV_MOVIE = 1
HAVE_BUILTINBEARSSL = 0
HAVE_BUILTINFLAC = 1
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_FILTERS_BUILTIN = 1
HAVE_BUILTINMBEDTLS = 1
HAVE_BUILTINZLIB = 1
HAVE_C99 = 1
HAVE_CC = 1
HAVE_CC_RESAMPLER = 1
HAVE_NEAREST_RESAMPLER = 1
HAVE_CHD = 1
HAVE_COMMAND = 1
HAVE_CXX = 1
HAVE_DR_MP3 = 1
HAVE_DYNAMIC = 1
HAVE_DYLIB = 1
HAVE_EGL = 0
HAVE_FREETYPE = 1
HAVE_GDI = 0
HAVE_GETADDRINFO = 1
HAVE_GETOPT_LONG = 1
HAVE_GLSL = 1
HAVE_GLSLANG = 0
HAVE_GLSLANG_HLSL = 0
HAVE_GLSLANG_OGLCOMPILER = 0
HAVE_GLSLANG_OSDEPENDENT = 0
HAVE_GLSLANG_SPIRV = 0
HAVE_GLSLANG_SPIRV_TOOLS = 0
HAVE_GLSLANG_SPIRV_TOOLS_OPT = 0
HAVE_HID = 1
HAVE_IBXM = 1
HAVE_IMAGEVIEWER = 1
HAVE_LANGEXTRA = 1
HAVE_LIBRETRODB = 1
HAVE_MENU = 1
HAVE_MENU_COMMON = 1
HAVE_NEON = 1
HAVE_NETWORKING = 1
HAVE_IFINFO = 1
HAVE_NETWORK_CMD = 1
HAVE_NETPLAYDISCOVERY = 1
HAVE_NETWORKGAMEPAD = 1
HAVE_GFX_WIDGETS = 1
HAVE_MMAP = 1
HAVE_ONLINE_UPDATER = 1
HAVE_OPENDINGUX_FBDEV = 0
HAVE_OPENGL = 0
HAVE_OPENGL1 = 0
HAVE_OPENGL_CORE = 0
HAVE_OPENGLES = 1
HAVE_OPENGLES3 = 0
HAVE_OPENGLES3_1 = 0
HAVE_OPENGLES3_2 = 0
HAVE_OPENSSL = 0
HAVE_OVERLAY = 1
HAVE_PULSE = 1
HAVE_RBMP = 1
HAVE_RJPEG = 1
HAVE_RPILED = 0
HAVE_RPNG = 1
HAVE_RUNAHEAD = 1
HAVE_SDL = 0
HAVE_SDL2 = 1
HAVE_SHADERPIPELINE = 1
HAVE_STB_FONT = 0
HAVE_STB_IMAGE = 1
HAVE_STB_VORBIS = 1
HAVE_STDIN_CMD = 1
HAVE_STRCASESTR = 1
HAVE_THREADS = 1
HAVE_UDEV = 0
HAVE_RGUI = 1
HAVE_MATERIALUI = 0
HAVE_XMB = 1
HAVE_OZONE = 1
HAVE_ZLIB = 1
HAVE_ZSTD = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_CHEEVOS = 1
HAVE_LIBSHAKE = 1
HAVE_UPDATE_ASSETS = 1
HAVE_UPDATE_CORES = 1
HAVE_UPDATE_CORE_INFO = 1
HAVE_CORE_INFO_CACHE = 1
OS = Linux
TARGET = retroarch
OBJ :=
LINK := $(CC)
DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -I. -Ideps -Ideps/stb -DWEBOS=1 -MMD
DEF_FLAGS += -Wall -Wno-unused-variable
LIBS := -ldl -lz -lrt -pthread
ARCHFLAGS := -mcpu=cortex-a9 -mtune=cortex-a53 -mfloat-abi=softfp
CFLAGS := $(ARCHFLAGS)
CXXFLAGS := $(ARCHFLAGS) -fno-exceptions -fno-rtti -std=c++11 -D__STDC_CONSTANT_MACROS
ASFLAGS := $(ARCHFLAGS)
LDFLAGS := -Wl,-rpath=\$$ORIGIN/lib,--gc-sections
INCLUDE_DIRS = -I$(WEBOS_INC_DIR)
LIBRARY_DIRS = -L$(WEBOS_USR_LIB_DIR)
DEFINES := -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64 -UHAVE_STATIC_DUMMY
DEFINES += -DHAVE_C99=1 -DHAVE_CXX=1 -D_GNU_SOURCE
DEFINES += -DHAVE_GETOPT_LONG=1 -DHAVE_STRCASESTR=1 -DHAVE_DYNAMIC=1
DEFINES += -DHAVE_FILTERS_BUILTIN
DEFINES += -DHAVE_SDL2
DEFINES += -DHAVE_PULSE
DEFINES += -DHAVE_NETWORKING -DHAVE_IFINFO -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
DEFINES += -DHAVE_NETWORKGAMEPAD
DEFINES += -DHAVE_FREETYPE
DEFINES += -DHAVE_UPDATE_CORE_INFO
PKG_CONFIG=pkg-config
SDL2_CFLAGS := $(shell $(PKG_CONFIG) --cflags sdl2)
SDL2_LIBS := $(shell $(PKG_CONFIG) --libs sdl2)
OPENGLES_LIBS = -lGLESv2
PULSE_LIBS = $(shell $(PKG_CONFIG) --libs libpulse)
FREETYPE_CFLAGS := $(shell $(PKG_CONFIG) --cflags freetype2)
FREETYPE_LIBS := $(shell $(PKG_CONFIG) --libs freetype2)
FONTCONFIG_CFLAGS := $(shell $(PKG_CONFIG) --cflags fontconfig)
FONTCONFIG_LIBS := $(shell $(PKG_CONFIG) --libs fontconfig)
MMAP_LIBS = -lc
NEON_CFLAGS = -mfpu=neon
NEON_ASFLAGS = -mfpu=neon
NETWORKING_LIBS = -lc
OBJDIR_BASE := obj-unix
ifeq ($(DEBUG), 1)
OBJDIR := $(OBJDIR_BASE)/debug
DEF_FLAGS += -O0 -g -DDEBUG -D_DEBUG
else
OBJDIR := $(OBJDIR_BASE)/release
DEF_FLAGS += -O2 -DNDEBUG
endif
include Makefile.common
DEF_FLAGS += $(INCLUDE_DIRS)
LDFLAGS += $(CFLAGS) $(CXXFLAGS) $(DEF_FLAGS)
CFLAGS += $(DEF_FLAGS)
CXXFLAGS += $(DEF_FLAGS)
HEADERS = $(wildcard */*/*.h) $(wildcard */*.h) $(wildcard *.h)
ifneq ($(V),1)
Q := @
endif
RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
define APPINFO
{
"id": "$(APP_PACKAGE_NAME)",
"version": "$(PACKAGE_VERSION)",
"vendor": "webosbrew.org",
"title": "RetroArch",
"icon": "icon160.png",
"main": "retroarch",
"iconColor": "#333333",
"type": "native",
"appDescription": "Emulation frontend"
}
endef
export APPINFO
all: $(TARGET) ipk
define INFO
ASFLAGS: $(ASFLAGS)
CC: $(CC)
CFLAGS: $(CFLAGS)
CPPFLAGS: $(CPPFLAGS)
CXX: $(CXX)
CXXFLAGS: $(CXXFLAGS)
DEFINES: $(DEFINES)
LDFLAGS: $(LDFLAGS)
LIBRARY_DIRS: $(LIBRARY_DIRS)
LIBS: $(LIBS)
LINK: $(LINK)
OBJCFLAGS: $(OBJCFLAGS)
RARCH_OBJ: $(RARCH_OBJ)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
-include $(RARCH_OBJ:.o=.d)
SYMBOL_MAP := -Wl,-Map=output.map
$(TARGET): $(RARCH_OBJ)
@$(if $(Q), $(shell echo echo LD $@),)
$(Q)$(LINK) -o $@ $(RARCH_OBJ) $(LIBS) $(LDFLAGS) $(LIBRARY_DIRS)
$(OBJDIR)/%.o: %.c
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c -o $@ $<
$(OBJDIR)/%.o: %.cpp
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.m
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo OBJC $<),)
$(Q)$(CXX) $(OBJCFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.S $(HEADERS)
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo AS $<),)
$(Q)$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $<
clean:
@$(if $(Q), echo $@,)
$(Q)rm -rf $(OBJDIR_BASE)
$(Q)rm -f $(TARGET)
$(Q)rm -f *.d
$(Q)rm -rf SDL
$(Q)rm -rf webos/*.ipk
$(Q)rm -rf webos/dist
sdl2: $(TARGET)
ifeq ($(ADD_SDL2_LIB), 1)
@echo "Downloading SDL2 prebuilt"
mkdir -p SDL
wget -qO - $(SDL2_PREBUILT_ARCHIVE) | tar -C SDL -zxvf -
endif
ipk: $(TARGET) sdl2
rm -rf webos/dist
mkdir -p webos/dist/lib
echo "$$APPINFO" > webos/dist/appinfo.json
cp -t webos/dist -vf $(TARGET) webos/icon160.png
cp -t webos/dist/lib -vf $(WEBOS_USR_LIB_DIR)/libstdc++.so.6
cp -t webos/dist/lib -vf $(WEBOS_LIB_DIR)/libatomic.so.1
ifeq ($(ADD_SDL2_LIB), 1)
cp -t webos/dist/lib -vf SDL/lib/libSDL2-2.0.so.0
endif
ifneq ($(DEBUG), 1)
$(STRIP) webos/dist/$(TARGET)
endif
cd webos && ares-package dist
install: ipk
ares-install webos/$(APP_PACKAGE_NAME)_$(PACKAGE_VERSION)_$(ARCH).ipk
launch: install
ares-launch $(APP_PACKAGE_NAME)
.PHONY: all clean ipk
print-%:
@echo '$*=$($*)'

View File

@ -1,6 +1,7 @@
ROOT_DIR := .
DEPS_DIR := $(ROOT_DIR)/deps
DEBUG ?= 0
LOAD_WITHOUT_CORE_INFO ?= 0
HAVE_LOGGER = 0
HAVE_FILE_LOGGER = 0
HAVE_CC_RESAMPLER = 1
@ -60,6 +61,7 @@ LIBS := $(WHOLE_START) $(LIB_CORE) $(WHOLE_END)
libogc_platform := 1
EXTERNAL_LIBOGC ?= 0
HAVE_OGG_OGC ?= 0
GX_PTHREAD_LEGACY ?= 1
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
@ -104,6 +106,10 @@ ifeq ($(BIG_STACK), 1)
LDFLAGS += -T bootstrap/gx/rvl.ld
endif
ifeq ($(HAVE_OGG_OGC), 1)
LIBS += -L$(DEVKITPRO)/portlibs/ppc/lib -lvorbisfile -lvorbis -logg
endif
ifeq ($(EXTERNAL_LIBOGC), 1)
LIBS += -lfat
endif
@ -133,11 +139,11 @@ HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_IBXM := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_XDELTA := 0 # disabled because <lzma.h> isn't available (or we haven't figured out how to install it)
HAVE_CHEATS := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
@ -161,8 +167,9 @@ HAVE_XMB := 0
HAVE_OZONE := 0
HAVE_RGUI := 1
HAVE_MATERIALUI := 0
HAVE_CHEEVOS := 1
CFLAGS += -DHAVE_SOCKET_LEGACY
CFLAGS += -DHAVE_SOCKET_LEGACY -DHAVE_CHEEVOS
APP_BOOTER_DIR = wii/app_booter
PLATOBJS := $(APP_BOOTER_DIR)/app_booter.binobj
@ -173,6 +180,7 @@ endif
INCLUDE += -I./libretro-common/include \
-Ideps \
-Ideps/rcheevos/include \
-Ideps/stb
CFLAGS += -Wall -std=gnu99 $(MACHDEP) $(PLATCFLAGS) $(INCLUDE)
@ -258,12 +266,32 @@ else
CFLAGS += -O3
endif
ifeq ($(LOAD_WITHOUT_CORE_INFO),1)
CFLAGS += -DLOAD_WITHOUT_CORE_INFO
endif
ifneq ($(V),1)
Q := @
endif
OBJOUT = -o
LINKOUT = -o
LINK = $(CXX)
all: $(EXT_TARGET)
define INFO
CC: $(CC)
CFLAGS: $(CFLAGS)
OBJOUT: $(OBJOUT)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
%.dol: %.elf
$(ELF2DOL) $< $@
@ -271,13 +299,15 @@ $(EXT_INTER_TARGET): $(OBJ)
$(LINK) $(LINKOUT)$@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(PLATEXTRA) $(LIBS)
%.o: %.c
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.cpp
$(CXX) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.S
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.binobj: %.bin
$(LD) -r -b binary $(OBJOUT)$@ $<
@ -287,10 +317,11 @@ $(APP_BOOTER_DIR)/app_booter.bin:
$(MAKE) -C $(APP_BOOTER_DIR)
clean:
rm -f $(EXT_TARGET)
rm -f $(EXT_INTER_TARGET)
rm -f $(OBJ)
$(MAKE) -C $(APP_BOOTER_DIR) clean
@$(if $(Q), echo $@,)
$(Q)rm -f $(EXT_TARGET)
$(Q)rm -f $(EXT_INTER_TARGET)
$(Q)rm -f $(OBJ)
$(Q)$(MAKE) -C $(APP_BOOTER_DIR) clean
.PHONY: clean

View File

@ -82,6 +82,7 @@ else
DEFINES += -DHAVE_ONLINE_UPDATER
DEFINES += -DHAVE_UPDATE_ASSETS
DEFINES += -DHAVE_UPDATE_CORES
DEFINES += -DHAVE_UPDATE_CORE_INFO
DEFINES += -DHAVE_FILTERS_BUILTIN
DEFINES += -DHAVE_SLANG
DEFINES += -DHAVE_SHADERPIPELINE
@ -142,6 +143,7 @@ endif
HAVE_RBMP = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_XDELTA = 0 # disabled because <lzma.h> isn't available (or we haven't figured out how to install it)
HAVE_REWIND = 1
HAVE_CHEATS = 1
HAVE_MENU = 1
@ -164,7 +166,6 @@ endif
HAVE_OVERLAY = 1
HAVE_SPIRV_CROSS = 1
HAVE_SLANG = 1
HAVE_VIDEO_LAYOUT = 0
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
@ -202,7 +203,7 @@ INCDIRS += -Iwiiu
INCDIRS += -Iwiiu/include
CFLAGS := -mcpu=750 -meabi -mhard-float
CFLAGS += -ffast-math -Werror=implicit-function-declaration
CFLAGS += -Werror=implicit-function-declaration
CFLAGS += -ffunction-sections -fdata-sections
#CFLAGS += -fomit-frame-pointer -mword-relocations
CFLAGS += -Wall
@ -303,6 +304,37 @@ DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.depend
all: $(TARGETS)
define INFO
AR: $(AR)
ASFLAGS: $(ASFLAGS)
BUILD_DIR: $(BUILD_DIR)
CC: $(CC)
CFLAGS: $(CFLAGS)
CXX: $(CXX)
CXXFLAGS: $(CXXFLAGS)
DEFINES: $(DEFINES)
DEPFLAGS: $(DEPFLAGS)
ELF2RPL: $(ELF2RPL)
HBL_ELF_LDFLAGS: $(HBL_ELF_LDFLAGS)
HBL_ELF_OBJ: $(HBL_ELF_OBJ)
INCDIRS: $(INCDIRS)
LD: $(LD)
LDFLAGS: $(LDFLAGS)
LIBDIRS: $(LIBDIRS)
LIBS: $(LIBS)
MAKE: $(MAKE)
OBJ: $(OBJ)
RPX_LDFLAGS: $(RPX_LDFLAGS)
RPX_OBJ: $(RPX_OBJ)
TARGET: $(TARGET)
endef
export INFO
info:
ifneq ($(V),1)
@echo "$$INFO"
endif
%: $(BUILD_DIR)/%
cp $< $@

View File

@ -89,6 +89,7 @@ AVUTIL_LIBS := -lavutil
SWSCALE_LIBS := -lswscale
AVFORMAT_LIBS := -lavformat
SWRESAMPLE_LIBS := -lswresample
AVDEVICE_LIBS := -lavdevice
FFMPEG_LIBS := -lws2_32 -lz
endif
@ -99,7 +100,6 @@ OBJ :=
LIBS := -lm
DEFINES :=
DEFINES += -I. -Ilibretro-common/include -Ilibretro-common/include/compat/zlib -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_OVERLAY
#DEFINES += -DHAVE_VIDEO_LAYOUT
LDFLAGS := -L. -static-libgcc
include Makefile.common
@ -132,8 +132,8 @@ ifeq ($(DEBUG), 1)
CFLAGS += -O0 -g
CXXFLAGS += -O0 -g
else
CFLAGS += -O3 -ffast-math
CXXFLAGS += -O3 -ffast-math
CFLAGS += -O3
CXXFLAGS += -O3
endif
CFLAGS += $(DEF_FLAGS) -Wall -Wno-unused-result -Wno-unused-variable -I. -Ideps
@ -170,7 +170,7 @@ $(OBJDIR)/%.o: %.cpp | $(dir $@)
$(OBJDIR)/%.o: %.rc $(HEADERS)
@-mkdir -p $(dir $@) || mkdir $(subst /,\,$(dir $@)) || echo .
@$(if $(Q), $(shell echo echo WINDRES $<),)
$(Q)$(WINDRES) -o $@ $<
$(Q)$(WINDRES) $(DEFINES) -o $@ $<
clean:
rm -rf $(OBJDIR)

View File

@ -6,7 +6,7 @@ good fbdev implementation. It is derived from the old Android GLES driver.
It was meant to be used on Cubieboard/Cubieboard2/Cubietruck, but it should not
be used on an Odroid X2/U2/U3 where a superior solution (RetroArch exynos video driver) is available.
Fbdev implementation on Odroid harware is missing WAITFORVSYNC ioctl, so use Exynos driver there.
Fbdev implementation on Odroid hardware is missing WAITFORVSYNC ioctl, so use Exynos driver there.
This driver requires MALI r4p0 binary blobs for fbdev, and a kernel compatible with r4p0 binaries.

View File

@ -64,51 +64,53 @@ RetroArch also emphasizes being easy to integrate into various launcher frontend
## Platforms
RetroArch has been ported to the following platforms:
- Android (2.x to most recent version)
- Apple iOS
- Apple macOS (PPC, x86-32 and x86-64)
- Apple tvOS
- Blackberry
- DOS
- Windows 11
- Windows 10
- Windows 8
- Windows 7
- Windows Vista
- Windows XP
- Windows Millennium
- Windows 2000
- Windows NT 3.5
- Windows 98
- Windows 95
- Linux
- Emscripten (WebAssembly and JavaScript)
- FreeBSD
- NetBSD
- OpenBSD
- Haiku
- Solaris
- Apple macOS (PPC, x86-32 and x86-64)
- Apple iOS
- Apple tvOS
- Android (2.x to most recent version)
- Linux
- Original Microsoft Xbox
- Microsoft Xbox 360 (Libxenon/XeXDK)
- Microsoft Xbox One
- Microsoft Xbox Series S/X
- Miyoo
- NetBSD
- Nintendo NES/SNES Classic Edition
- Nintendo GameCube
- Nintendo Wii
- Nintendo Switch
- Nintendo Wii U
- Nintendo 3DS/2DS
- OpenBSD
- OpenDingux
- PlayStation2
- PlayStation3
- PlayStation4
- PlayStation Portable
- PlayStation Vita
- Original Microsoft Xbox
- Microsoft Xbox 360 (Libxenon/XeXDK)
- Microsoft Xbox One
- Microsoft Xbox Series S/X
- Nintendo GameCube
- Nintendo Wii
- Nintendo Wii U
- Nintendo 3DS/2DS
- Nintendo Switch
- Nintendo NES/SNES Classic Edition
- Raspberry Pi
- Blackberry
- OpenDingux
- Miyoo
- RS90
- ReactOS
- Redox OS
- RetroFW
- RS90
- SerenityOS
- Solaris
- Windows NT 3.5
- Windows 95
- Windows 98
- Windows 2000
- Windows XP
- Windows Millennium
- Windows Vista
- Windows 7
- Windows 8
- Windows 10
- Windows 11
## Dependencies (PC)
@ -122,7 +124,7 @@ following dependencies come as recommended:
- GL headers / Vulkan headers
- X11 headers and libs, or EGL/KMS/GBM
OSX port of RetroArch requires latest versions of XCode to build.
OSX port of RetroArch requires latest versions of Xcode to build.
RetroArch can utilize these libraries if enabled:
@ -139,6 +141,7 @@ RetroArch needs at least one of these audio driver libraries:
- JACK
- SDL
- PulseAudio
- PipeWire
- XAudio2 (Win32, Xbox 360)
- DirectSound (Win32, Xbox 1)
- CoreAudio (OSX, iOS)
@ -202,7 +205,7 @@ A sample configuration file is installed to `/etc/retroarch.cfg`. This is the sy
RetroArch will on startup create a config file in `$XDG\_CONFIG\_HOME/retroarch/retroarch.cfg` if it does not exist.
Users only need to configure a certain option if the desired value deviates from the value defined in config.def.h.
To configure joypads, use the built-in menu or the `retroarch-joyconfig` command-line tool.
To configure joypads, use the built-in menu or manually configure them in `retroarch.cfg`.
## Compiling and installing
@ -335,7 +338,7 @@ The links below belong to our official channels. Links other than this may have
- [YouTube Topic](https://www.youtube.com/channel/UC5q007PYyQPgin0HHbzF0zQ)
- [Patreon](https://www.patreon.com/libretro)
- [BOUNTYSOURCE](https://www.bountysource.com/teams/libretro/issues)
- [Discord](https://discord.gg/27Xxm2h)
- [Discord](https://discord.com/invite/VZ2b7wghxR)
- [Teespring](https://teespring.com/stores/retroarch)
- [Documentation](https://docs.libretro.com/)
- [Forum](https://forums.libretro.com/)

26
SECURITY.md Normal file
View File

@ -0,0 +1,26 @@
# Security Policy
## Reasonable expectations
RetroArch is a frontend for the libretro API. The main functionality is fulfilled by invoking other binary libraries ("cores") which are not restricted by RetroArch in any way. Cores are able to read/write/delete files, spawn processes, communicate over the network. Also, source for cores is not necessarily in control by libretro team, and core binaries / RetroArch binaries are not signed. For this reason, it is a bad idea to use RetroArch or any other libretro frontend on security critical systems.
Also, RetroArch and cores have been packaged in several ways. Content on the [official download site](https://buildbot.libretro.com/) is built from a direct mirror of the original RetroArch and core repositories, no binaries are reused. Note that source for the core repositories may be outside libretro team control.
## Supported Versions
For most delivery channels, libretro team does not have control over the version. The exceptions are:
- [official download site](https://buildbot.libretro.com/)
- Steam release
- Apple App Store release
- various Android app store releases
- note that Google Play Store version is years behind and can not be updated
You may report vulnerability against any recent version, but be reasonable.
## Reporting a Vulnerability
Please report security vulnerabilities at libretro@gmail.com
## Possible remediation
Due to the variety of delivery channels, RetroArch team can not recall any given version universally. Security fixes are accepted for next release, and notice may be posted in the channels controlled by RetroArch team, depending on the severity assessed by RetroArch team.

216
ai/game_ai.c Normal file
View File

@ -0,0 +1,216 @@
#include "game_ai.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#ifdef _WIN32
#include <windows.h>
#else
#include <dlfcn.h>
#endif
#include <retro_assert.h>
#include <compat/strl.h>
#include "../deps/game_ai_lib/GameAI.h"
#define GAME_AI_MAX_PLAYERS 2
void * ga = NULL;
volatile void * g_ram_ptr = NULL;
volatile int g_ram_size = 0;
volatile signed short int g_buttons_bits[GAME_AI_MAX_PLAYERS] = {0};
volatile int g_frameCount = 0;
volatile char game_ai_lib_path[1024] = {0};
volatile char g_game_name[1024] = {0};
retro_log_printf_t g_log = NULL;
#ifdef _WIN32
HINSTANCE g_lib_handle = NULL;
#else
void * g_lib_handle = NULL;
#endif
/* GameAI Lib API*/
create_game_ai_t create_game_ai = NULL;
destroy_game_ai_t destroy_game_ai = NULL;
game_ai_lib_init_t game_ai_lib_init = NULL;
game_ai_lib_think_t game_ai_lib_think = NULL;
game_ai_lib_set_show_debug_t game_ai_lib_set_show_debug = NULL;
game_ai_lib_set_debug_log_t game_ai_lib_set_debug_log = NULL;
/* Helper functions */
void game_ai_debug_log(int level, const char *fmt, ...)
{
va_list vp;
va_start(vp, fmt);
if (g_log)
g_log((enum retro_log_level)level, fmt, vp);
va_end(vp);
}
void array_to_bits_16(volatile signed short *result, const bool b[16])
{
for (int bit = 0; bit <= 15; bit++)
*result |= b[bit] ? (1 << bit) : 0;
}
/* Interface to RA */
signed short int game_ai_input(unsigned int port, unsigned int device,
unsigned int idx, unsigned int id, signed short int result)
{
if (ga && (port < GAME_AI_MAX_PLAYERS))
return g_buttons_bits[port];
return 0;
}
void game_ai_init(void)
{
if (!create_game_ai)
{
#ifdef _WIN32
BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;
g_lib_handle = LoadLibrary(TEXT("game_ai.dll"));
retro_assert(hinstLib);
char full_module_path[MAX_PATH];
DWORD dwLen = GetModuleFileNameA(g_lib_handle, static_cast<char*>(&full_module_path), MAX_PATH);
if (hinstLib)
{
create_game_ai = (create_game_ai_t) GetProcAddress(hinstLib, "create_game_ai");
retro_assert(create_game_ai);
destroy_game_ai = (destroy_game_ai_t) GetProcAddress(hinstLib, "destroy_game_ai");
retro_assert(destroy_game_ai);
game_ai_lib_init = (game_ai_lib_init_t) GetProcAddress(hinstLib, "game_ai_lib_init");
retro_assert(game_ai_lib_init);
game_ai_lib_think = (game_ai_lib_think_t) GetProcAddress(hinstLib, "game_ai_lib_think");
retro_assert(game_ai_lib_think);
game_ai_lib_set_show_debug = (game_ai_lib_set_show_debug_t) GetProcAddress(hinstLib, "game_ai_lib_set_show_debug");
retro_assert(game_ai_lib_set_show_debug);
game_ai_lib_set_debug_log = (game_ai_lib_set_debug_log_t) GetProcAddress(hinstLib, "game_ai_lib_set_debug_log");
retro_assert(game_ai_lib_set_debug_log);
}
#else
g_lib_handle = dlopen("./libgame_ai.so", RTLD_NOW);
retro_assert(g_lib_handle);
if (g_lib_handle)
{
dlinfo(g_lib_handle, RTLD_DI_ORIGIN, (void *) &game_ai_lib_path);
create_game_ai = (create_game_ai_t)(dlsym(g_lib_handle, "create_game_ai"));
retro_assert(create_game_ai);
destroy_game_ai = (destroy_game_ai_t)(dlsym(g_lib_handle, "destroy_game_ai"));
retro_assert(destroy_game_ai);
game_ai_lib_init = (game_ai_lib_init_t)(dlsym(g_lib_handle, "game_ai_lib_init"));
retro_assert(game_ai_lib_init);
game_ai_lib_think = (game_ai_lib_think_t)(dlsym(g_lib_handle, "game_ai_lib_think"));
retro_assert(game_ai_lib_think);
game_ai_lib_set_show_debug = (game_ai_lib_set_show_debug_t)(dlsym(g_lib_handle, "game_ai_lib_set_show_debug"));
retro_assert(game_ai_lib_set_show_debug);
game_ai_lib_set_debug_log = (game_ai_lib_set_debug_log_t)(dlsym(g_lib_handle, "game_ai_lib_set_debug_log"));
retro_assert(game_ai_lib_set_debug_log);
}
#endif
}
}
void game_ai_shutdown(void)
{
if (g_lib_handle)
{
if (ga)
{
destroy_game_ai(ga);
ga = NULL;
}
#ifdef _WIN32
FreeLibrary(g_lib_handle);
#else
dlclose(g_lib_handle);
#endif
}
}
void game_ai_load(const char * name, void * ram_ptr, int ram_size, retro_log_printf_t log)
{
strcpy((char *) &g_game_name[0], name);
g_ram_ptr = ram_ptr;
g_ram_size = ram_size;
g_log = log;
if (ga)
{
destroy_game_ai(ga);
ga = NULL;
}
}
void game_ai_think(bool override_p1, bool override_p2, bool show_debug,
const void *frame_data, unsigned int frame_width, unsigned int frame_height,
unsigned int frame_pitch, unsigned int pixel_format)
{
if (ga)
game_ai_lib_set_show_debug(ga, show_debug);
if (!ga && g_ram_ptr)
{
ga = create_game_ai((char *) &g_game_name[0]);
retro_assert(ga);
if (ga)
{
char data_path[1024] = {0};
strcpy(&data_path[0], (char *)game_ai_lib_path);
strcat(&data_path[0], "/data/");
strcat(&data_path[0], (char *)g_game_name);
game_ai_lib_init(ga, (void *) g_ram_ptr, g_ram_size);
game_ai_lib_set_debug_log(ga, game_ai_debug_log);
}
}
if (g_frameCount >= (GAMEAI_SKIPFRAMES - 1))
{
if (ga)
{
bool b[GAMEAI_MAX_BUTTONS] = {0};
g_buttons_bits[0]=0;
g_buttons_bits[1]=0;
if (override_p1)
{
game_ai_lib_think(ga, b, 0, frame_data, frame_width, frame_height, frame_pitch, pixel_format);
array_to_bits_16(&g_buttons_bits[0], b);
}
if (override_p2)
{
game_ai_lib_think(ga, b, 1, frame_data, frame_width, frame_height, frame_pitch, pixel_format);
array_to_bits_16(&g_buttons_bits[1], b);
}
}
g_frameCount=0;
}
else
g_frameCount++;
}

View File

@ -1,6 +1,7 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2021 - David G.F.
*
* 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-
@ -14,43 +15,29 @@
* If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _MENU_INPUT_BIND_DIALOG_H
#define _MENU_INPUT_BIND_DIALOG_H
#include <stdint.h>
#include <stdlib.h>
#ifndef RARCH_GAME_AI_H__
#define RARCH_GAME_AI_H__
#include <boolean.h>
#include <retro_common_api.h>
#include "menu_input.h"
#include <libretro.h>
RETRO_BEGIN_DECLS
enum menu_input_binds_ctl_state
{
MENU_INPUT_BINDS_CTL_BIND_NONE = 0,
MENU_INPUT_BINDS_CTL_BIND_SINGLE,
MENU_INPUT_BINDS_CTL_BIND_ALL
};
signed short int game_ai_input(unsigned int port, unsigned int device,
unsigned int idx, unsigned int id, signed short int result);
typedef struct menu_input_ctx_bind
{
char *s;
size_t len;
} menu_input_ctx_bind_t;
void game_ai_init(void);
typedef struct menu_input_ctx_bind_limits
{
unsigned min;
unsigned max;
} menu_input_ctx_bind_limits_t;
void game_ai_shutdown(void);
bool menu_input_key_bind_set_mode(
enum menu_input_binds_ctl_state state, void *data);
void game_ai_load(const char * name, void * ram_ptr,
int ram_size, retro_log_printf_t log);
bool menu_input_key_bind_set_min_max(menu_input_ctx_bind_limits_t *lim);
void game_ai_think(bool override_p1, bool override_p2, bool show_debug,
const void *frame_data, unsigned int frame_w, unsigned int frame_h,
unsigned int frame_pitch, unsigned int pixel_format);
RETRO_END_DECLS

View File

@ -21,25 +21,21 @@
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 + 5)
#define AUDIO_MIXER_MAX_SYSTEM_STREAMS (AUDIO_MIXER_MAX_STREAMS + 8)
/* do not define more than (MAX_SYSTEM_STREAMS - MAX_STREAMS) */
/* 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_NOTICE_BACK,
AUDIO_MIXER_SYSTEM_SLOT_BGM,
AUDIO_MIXER_SYSTEM_SLOT_ACHIEVEMENT_UNLOCK
AUDIO_MIXER_SYSTEM_SLOT_ACHIEVEMENT_UNLOCK,
AUDIO_MIXER_SYSTEM_SLOT_UP,
AUDIO_MIXER_SYSTEM_SLOT_DOWN
};
enum audio_action
@ -75,6 +71,93 @@ enum audio_mixer_state
AUDIO_STREAM_STATE_PLAYING_SEQUENTIAL
};
/**
* Bit flags that describe the current state of the audio driver.
*/
enum audio_driver_state_flags
{
/**
* Indicates that the driver was successfully created
* and is currently valid.
* You may submit samples for output at any time.
*
* This flag does \em not mean that the player will hear anything;
* the driver might be suspended.
*
* @see AUDIO_FLAG_SUSPENDED
*/
AUDIO_FLAG_ACTIVE = (1 << 0),
/**
* Indicates that the audio driver outputs floating-point samples,
* as opposed to integer samples.
*
* All audio is sent through the resampler,
* which operates on floating-point samples.
*
* If this flag is set, then the resampled output doesn't need
* to be converted back to \c int16_t format.
*
* This won't affect the audio that the core writes;
* either way, it's supposed to output \c int16_t samples.
*
* This flag won't be set if the selected audio driver
* doesn't support (or is configured to not use) \c float samples.
*
* @see audio_driver_t::use_float
*/
AUDIO_FLAG_USE_FLOAT = (1 << 1),
/**
* Indicates that the audio driver is not currently rendering samples,
* although it's valid and can be resumed.
*
* Usually set when RetroArch needs to simulate audio output
* without actually rendering samples (e.g. runahead),
* or when reinitializing the driver.
*
* Samples will still be accepted, but they will be silently dropped.
*/
AUDIO_FLAG_SUSPENDED = (1 << 2),
/**
* Indicates that the audio mixer is available
* and can mix one or more audio streams.
*
* Will not be set if RetroArch was built without \c HAVE_AUDIOMIXER.
*/
AUDIO_FLAG_MIXER_ACTIVE = (1 << 3),
/**
* Indicates that the frontend will never need audio from the core,
* usually when runahead is active.
*
* When set, any audio received by the core will not be processed.
*
* Will not be set if RetroArch was built without \c HAVE_RUNAHEAD.
*
* @see RETRO_ENVIRONMENT_GET_AUDIO_VIDEO_ENABLE
*/
AUDIO_FLAG_HARD_DISABLE = (1 << 4),
/**
* Indicates that audio rate control is enabled.
* This means that the audio system will adjust the rate at which
* it sends samples to the driver,
* minimizing the occurrences of buffer overrun or underrun.
*
* @see audio_driver_t::write_avail
* @see audio_driver_t::buffer_size
*/
AUDIO_FLAG_CONTROL = (1 << 5),
/**
* Indicates that the audio driver is forcing gain to 0.
* Used for temporary rewind and fast-forward muting.
*/
AUDIO_FLAG_MUTED = (1 << 6)
};
typedef struct audio_statistics
{
unsigned samples;

File diff suppressed because it is too large Load Diff

View File

@ -56,7 +56,7 @@ typedef struct audio_mixer_stream
char *name;
size_t bufsize;
float volume;
enum audio_mixer_stream_type stream_type;
enum audio_mixer_stream_type stream_type;
enum audio_mixer_type type;
enum audio_mixer_state state;
} audio_mixer_stream_t;
@ -70,8 +70,8 @@ typedef struct audio_mixer_stream_params
unsigned slot_selection_idx;
float volume;
enum audio_mixer_slot_selection_type slot_selection_type;
enum audio_mixer_stream_type stream_type;
enum audio_mixer_type type;
enum audio_mixer_stream_type stream_type;
enum audio_mixer_type type;
enum audio_mixer_state state;
} audio_mixer_stream_params_t;
#endif
@ -110,12 +110,21 @@ typedef struct audio_driver
* Unless said otherwise with set_nonblock_state(), all writes
* are blocking, and it should block till it has written all frames.
*/
ssize_t (*write)(void *data, const void *buf, size_t size);
ssize_t (*write)(void *data, const void *s, size_t len);
/* Temporarily pauses the audio driver. */
/**
* Temporarily pauses the audio driver.
*
* @param data Opaque handle to the audio driver context
* that was returned by \c init.
* @return \c true if the audio driver was successfully paused,
* \c false if there was an error.
**/
bool (*stop)(void *data);
/* Resumes audio driver from the paused state. */
/**
* Resumes audio driver from the paused state.
**/
bool (*start)(void *data, bool is_shutdown);
/* Is the audio driver currently running? */
@ -130,7 +139,7 @@ typedef struct audio_driver
* */
void (*set_nonblock_state)(void *data, bool toggle);
/* Stops and frees driver data. */
/* Stops and frees driver. */
void (*free)(void *data);
/* Defines if driver will take standard floating point samples,
@ -158,41 +167,53 @@ typedef struct audio_driver
size_t (*buffer_size)(void *data);
} audio_driver_t;
enum audio_driver_state_flags
{
AUDIO_FLAG_ACTIVE = (1 << 0),
AUDIO_FLAG_USE_FLOAT = (1 << 1),
AUDIO_FLAG_SUSPENDED = (1 << 2),
AUDIO_FLAG_MIXER_ACTIVE = (1 << 3),
AUDIO_FLAG_HARD_DISABLE = (1 << 4),
AUDIO_FLAG_CONTROL = (1 << 5)
};
typedef struct
{
double source_ratio_original;
double source_ratio_current;
double src_ratio_orig;
double src_ratio_curr;
uint64_t free_samples_count;
struct string_list *devices_list;
float *output_samples_buf;
/**
* A scratch buffer for audio output to be processed,
* up to (but excluding) the point where it's converted to 16-bit audio
* to give to the driver.
*/
float *output_samples_buf;
size_t output_samples_buf_length;
#ifdef HAVE_REWIND
int16_t *rewind_buf;
#endif
/**
* A scratch buffer for processed audio output to be converted to 16-bit,
* so that it can be sent to the driver.
*/
int16_t *output_samples_conv_buf;
size_t output_samples_conv_buf_length;
#ifdef HAVE_DSP_FILTER
retro_dsp_filter_t *dsp;
#endif
const retro_resampler_t *resampler;
void *resampler_data;
/**
* The current audio driver.
*/
const audio_driver_t *current_audio;
void *context_audio_data;
/**
* Scratch buffer for preparing data for the resampler
*/
float *input_data;
size_t input_data_length;
#ifdef HAVE_AUDIOMIXER
struct audio_mixer_stream
mixer_streams[AUDIO_MIXER_MAX_SYSTEM_STREAMS];
struct audio_mixer_stream mixer_streams[AUDIO_MIXER_MAX_SYSTEM_STREAMS];
#endif
struct retro_audio_callback callback; /* ptr alignment */
/* ptr alignment */
@ -207,8 +228,7 @@ typedef struct
size_t buffer_size;
size_t data_ptr;
unsigned free_samples_buf[
AUDIO_BUFFER_FREE_SAMPLES_COUNT];
unsigned free_samples_buf[AUDIO_BUFFER_FREE_SAMPLES_COUNT];
#ifdef HAVE_AUDIOMIXER
float mixer_volume_gain;
@ -228,6 +248,11 @@ typedef struct
#ifdef HAVE_AUDIOMIXER
bool mixer_mute_enable;
#endif
/* Sample the flush delta-time when fast forwarding to find the correct ratio. */
retro_time_t last_flush_time;
/* Exponential moving average */
retro_time_t avg_flush_delta;
} audio_driver_state_t;
bool audio_driver_enable_callback(void);
@ -267,6 +292,8 @@ void audio_driver_mixer_play_stream(unsigned i);
void audio_driver_mixer_play_menu_sound(unsigned i);
void audio_driver_mixer_play_scroll_sound(bool direction_up);
void audio_driver_mixer_play_menu_sound_looped(unsigned i);
void audio_driver_mixer_play_stream_sequential(unsigned i);
@ -298,44 +325,6 @@ bool audio_driver_stop(void);
bool audio_driver_is_ai_service_speech_running(void);
#endif
extern audio_driver_t audio_rsound;
extern audio_driver_t audio_audioio;
extern audio_driver_t audio_oss;
extern audio_driver_t audio_alsa;
extern audio_driver_t audio_alsathread;
extern audio_driver_t audio_tinyalsa;
extern audio_driver_t audio_roar;
extern audio_driver_t audio_openal;
extern audio_driver_t audio_opensl;
extern audio_driver_t audio_jack;
extern audio_driver_t audio_sdl;
extern audio_driver_t audio_xa;
extern audio_driver_t audio_pulse;
extern audio_driver_t audio_dsound;
extern audio_driver_t audio_wasapi;
extern audio_driver_t audio_coreaudio;
extern audio_driver_t audio_coreaudio3;
extern audio_driver_t audio_xenon360;
extern audio_driver_t audio_ps3;
extern audio_driver_t audio_gx;
extern audio_driver_t audio_ax;
extern audio_driver_t audio_psp;
extern audio_driver_t audio_ps2;
extern audio_driver_t audio_ctr_csnd;
extern audio_driver_t audio_ctr_dsp;
#ifdef HAVE_THREADS
extern audio_driver_t audio_ctr_dsp_thread;
#endif
extern audio_driver_t audio_switch;
extern audio_driver_t audio_switch_thread;
extern audio_driver_t audio_switch_libnx_audren;
extern audio_driver_t audio_switch_libnx_audren_thread;
extern audio_driver_t audio_rwebaudio;
audio_driver_state_t *audio_state_get_ptr(void);
extern audio_driver_t *audio_drivers[];
/**
* audio_compute_buffer_statistics:
*
@ -344,23 +333,12 @@ extern audio_driver_t *audio_drivers[];
**/
bool audio_compute_buffer_statistics(audio_statistics_t *stats);
float audio_driver_monitor_adjust_system_rates(
double input_sample_rate,
double input_fps,
float video_refresh_rate,
unsigned video_swap_interval,
float audio_max_timing_skew);
bool audio_driver_init_internal(
void *settings_data,
bool audio_cb_inited);
bool audio_driver_init_internal(void *data, bool audio_cb_inited);
bool audio_driver_deinit(void);
bool audio_driver_find_driver(
void *settings_data,
const char *prefix,
bool verbosity_enabled);
bool audio_driver_find_driver(const char *audio_drv,
const char *prefix, bool verbosity_enabled);
/**
* audio_driver_sample:
@ -414,6 +392,48 @@ size_t audio_driver_sample_batch_rewind(
void audio_driver_menu_sample(void);
#endif
extern audio_driver_t audio_rsound;
extern audio_driver_t audio_audioio;
extern audio_driver_t audio_oss;
extern audio_driver_t audio_alsa;
extern audio_driver_t audio_alsathread;
extern audio_driver_t audio_tinyalsa;
extern audio_driver_t audio_roar;
extern audio_driver_t audio_openal;
extern audio_driver_t audio_opensl;
extern audio_driver_t audio_jack;
extern audio_driver_t audio_sdl;
extern audio_driver_t audio_xa;
extern audio_driver_t audio_pulse;
extern audio_driver_t audio_pipewire;
extern audio_driver_t audio_dsound;
extern audio_driver_t audio_wasapi;
extern audio_driver_t audio_coreaudio;
extern audio_driver_t audio_coreaudio3;
extern audio_driver_t audio_xenon360;
extern audio_driver_t audio_ps3;
extern audio_driver_t audio_gx;
extern audio_driver_t audio_ax;
extern audio_driver_t audio_psp;
extern audio_driver_t audio_ps2;
extern audio_driver_t audio_ctr_csnd;
extern audio_driver_t audio_ctr_dsp;
#ifdef HAVE_THREADS
extern audio_driver_t audio_ctr_dsp_thread;
#endif
extern audio_driver_t audio_switch;
extern audio_driver_t audio_switch_thread;
extern audio_driver_t audio_switch_libnx_audren;
extern audio_driver_t audio_switch_libnx_audren_thread;
extern audio_driver_t audio_rwebaudio;
extern audio_driver_t audio_audioworklet;
audio_driver_state_t *audio_state_get_ptr(void);
const char *audio_driver_get_ident(void);
extern audio_driver_t *audio_drivers[];
RETRO_END_DECLS
#endif /* __AUDIO_DRIVER__H */

View File

@ -51,6 +51,10 @@ typedef struct audio_thread
} audio_thread_t;
/**
* The thread that manages the life of the audio driver.
* The wrapped audio driver lives and dies with this function.
*/
static void audio_thread_loop(void *data)
{
audio_thread_t *thr = (audio_thread_t*)data;
@ -95,7 +99,7 @@ static void audio_thread_loop(void *data)
thr->driver->stop(thr->driver_data);
while (thr->stopped)
{
/* If we stop right after start,
/* If we stop right after start,
* we might not be able to properly ack.
* Signal in the loop instead. */
thr->stopped_ack = true;
@ -113,6 +117,10 @@ static void audio_thread_loop(void *data)
thr->driver->free(thr->driver_data);
}
/**
* Lets the audio thread finish what it's doing,
* then stops it from doing further work.
*/
static void audio_thread_block(audio_thread_t *thr)
{
if (!thr)
@ -133,15 +141,19 @@ static void audio_thread_block(audio_thread_t *thr)
slock_unlock(thr->lock);
}
/**
* Resumes the audio thread.
* This function is called from the main thread.
*/
static void audio_thread_unblock(audio_thread_t *thr)
{
if (!thr)
return;
slock_lock(thr->lock);
thr->stopped = false;
scond_signal(thr->cond);
slock_unlock(thr->lock);
slock_lock(thr->lock); /* Prevent the audio thread from touching this flag... */
thr->stopped = false; /* ...so that the main thread can do it. */
scond_signal(thr->cond); /* Then let the audio thread know that it's okay to resume. */
slock_unlock(thr->lock); /* "As you were." */
}
static void audio_thread_free(void *data)
@ -153,13 +165,15 @@ static void audio_thread_free(void *data)
if (thr->thread)
{
slock_lock(thr->lock);
thr->stopped = false;
slock_lock(thr->lock); /* Let the audio thread finish what it's doing... */
thr->stopped = false; /* Then stop it. "You're fired." */
thr->alive = false;
scond_signal(thr->cond);
slock_unlock(thr->lock);
scond_signal(thr->cond); /* Let the thread know it's okay to continue */
slock_unlock(thr->lock); /* At this point, it will exit its loop. */
sthread_join(thr->thread);
/* Wait for the audio thread to exit, ensure that it's really dead.
* (It will call the wrapped driver's free() function.) */
}
if (thr->lock)
@ -167,6 +181,7 @@ static void audio_thread_free(void *data)
if (thr->cond)
scond_free(thr->cond);
free(thr);
/* The audio driver is done, clean up the thread itself. */
}
static bool audio_thread_alive(void *data)
@ -191,6 +206,9 @@ static bool audio_thread_stop(void *data)
if (!thr)
return false;
/* Don't immediately call stop on the driver;
* let the audio thread finish its current loop iteration.
* It will call stop then. */
audio_thread_block(thr);
thr->is_paused = true;
@ -219,6 +237,8 @@ static void audio_thread_set_nonblock_state(void *data, bool state)
{
(void)data;
(void)state;
/* Ignored, because blocking state is irrelevant
* when audio is running on a separate thread. */
}
static bool audio_thread_use_float(void *data)
@ -229,29 +249,25 @@ static bool audio_thread_use_float(void *data)
return thr->use_float;
}
static ssize_t audio_thread_write(void *data, const void *buf, size_t size)
static ssize_t audio_thread_write(void *data, const void *s, size_t len)
{
ssize_t ret;
ssize_t _len;
audio_thread_t *thr = (audio_thread_t*)data;
if (!thr)
return 0;
ret = thr->driver->write(thr->driver_data, buf, size);
if (ret < 0)
_len = thr->driver->write(thr->driver_data, s, len);
if (_len < 0)
{
slock_lock(thr->lock);
thr->alive = false;
scond_signal(thr->cond);
slock_unlock(thr->lock);
}
return ret;
return _len;
}
static const audio_driver_t audio_thread = {
NULL,
NULL, /* No need to wrap init, it's called at the start of the thread loop */
audio_thread_write,
audio_thread_stop,
audio_thread_start,
@ -262,6 +278,8 @@ static const audio_driver_t audio_thread = {
"audio-thread",
NULL, /* No point in using rate control with threaded audio. */
NULL,
NULL,
NULL
};
/**

484
audio/common/alsa.c Normal file
View File

@ -0,0 +1,484 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 Daniel De Matteis
* Copyright (C) 2023 Jesse Talavera-Greenberg
*
* 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 <http://www.gnu.org/licenses/>.
*/
#include <lists/string_list.h>
#include <string/stdstring.h>
#include <alsa/asoundlib.h>
#include <asm-generic/errno.h>
#include "alsa.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
int alsa_init_pcm(snd_pcm_t **pcm,
const char* device,
snd_pcm_stream_t stream,
unsigned rate,
unsigned latency,
unsigned channels,
alsa_stream_info_t *stream_info,
unsigned *new_rate,
int mode)
{
snd_pcm_format_t format;
snd_pcm_uframes_t buffer_size;
snd_pcm_hw_params_t *params = NULL;
snd_pcm_sw_params_t *sw_params = NULL;
unsigned latency_usec = latency * 1000;
unsigned periods = 4;
unsigned orig_rate = rate;
const char *alsa_dev = device ? device : "default";
int errnum = 0;
RARCH_DBG("[ALSA] Requesting device \"%s\" for %s stream...\n", alsa_dev, snd_pcm_stream_name(stream));
if ((errnum = snd_pcm_open(pcm, alsa_dev, stream, mode)) < 0)
{
RARCH_ERR("[ALSA] Failed to open %s stream on device \"%s\": %s.\n",
snd_pcm_stream_name(stream),
alsa_dev,
snd_strerror(errnum));
goto error;
}
if ((errnum = snd_pcm_hw_params_malloc(&params)) < 0)
{
RARCH_ERR("[ALSA] Failed to allocate hardware parameters: %s.\n",
snd_strerror(errnum));
goto error;
}
if ((errnum = snd_pcm_hw_params_any(*pcm, params)) < 0)
{
RARCH_ERR("[ALSA] Failed to query hardware parameters from %s device \"%s\": %s.\n",
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
format = (snd_pcm_hw_params_test_format(*pcm, params, SND_PCM_FORMAT_FLOAT) == 0)
? SND_PCM_FORMAT_FLOAT : SND_PCM_FORMAT_S16;
stream_info->has_float = (format == SND_PCM_FORMAT_FLOAT);
RARCH_LOG("[ALSA] Using %s sample format for %s device \"%s\".\n",
snd_pcm_format_name(format),
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm)
);
if ((errnum = snd_pcm_hw_params_set_access(*pcm, params, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0)
{
RARCH_ERR("[ALSA] Failed to set %s access for %s device \"%s\": %s.\n",
snd_pcm_access_name(SND_PCM_ACCESS_RW_INTERLEAVED),
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
stream_info->frame_bits = snd_pcm_format_physical_width(format) * channels;
if ((errnum = snd_pcm_hw_params_set_format(*pcm, params, format)) < 0)
{
RARCH_ERR("[ALSA] Failed to set %s format for %s device \"%s\": %s.\n",
snd_pcm_format_name(format),
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
if ((errnum = snd_pcm_hw_params_set_channels(*pcm, params, channels)) < 0)
{
RARCH_ERR("[ALSA] Failed to set %u-channel audio for %s device \"%s\": %s.\n",
channels,
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
/* Don't allow rate resampling when probing for the default rate (but ignore if this call fails) */
if ((errnum = snd_pcm_hw_params_set_rate_resample(*pcm, params, false)) < 0)
{
RARCH_WARN("[ALSA] Failed to request a default unsampled rate for %s device \"%s\": %s.\n",
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
}
if ((errnum = snd_pcm_hw_params_set_rate_near(*pcm, params, &rate, 0)) < 0)
{
RARCH_ERR("[ALSA] Failed to request a rate near %uHz for %s device \"%s\": %s.\n",
rate,
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
if (new_rate)
*new_rate = rate;
if ((snd_pcm_hw_params_set_buffer_time_near(*pcm, params, &latency_usec, NULL)) < 0)
{
RARCH_ERR("[ALSA] Failed to request a buffer time near %uus for %s device \"%s\": %s.\n",
latency_usec,
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
if ((errnum = snd_pcm_hw_params_set_periods_near(*pcm, params, &periods, NULL)) < 0)
{
RARCH_ERR("[ALSA] Failed to request %u periods per buffer for %s device \"%s\": %s.\n",
periods,
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
if ((errnum = snd_pcm_hw_params(*pcm, params)) < 0)
{ /* This calls snd_pcm_prepare() under the hood */
RARCH_ERR("[ALSA] Failed to install hardware parameters for %s device \"%s\": %s.\n",
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
/* Shouldn't have to bother with this,
* but some drivers are apparently broken. */
if ((errnum = snd_pcm_hw_params_get_period_size(params, &stream_info->period_frames, NULL)) < 0)
{
RARCH_WARN("[ALSA] Failed to get an exact period size from %s device \"%s\": %s.\n",
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
RARCH_WARN("[ALSA] Trying the minimum period size instead.\n");
if ((errnum = snd_pcm_hw_params_get_period_size_min(params, &stream_info->period_frames, NULL)) < 0)
{
RARCH_ERR("[ALSA] Failed to get min period size from %s device \"%s\": %s.\n",
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
}
stream_info->period_size = snd_pcm_frames_to_bytes(*pcm, stream_info->period_frames);
if (stream_info->period_size < 0)
{
RARCH_ERR("[ALSA] Failed to convert a period size of %lu frames to bytes: %s.\n",
stream_info->period_frames,
snd_strerror(stream_info->period_frames));
goto error;
}
RARCH_LOG("[ALSA] Period: %u periods per buffer (%lu frames, %lu bytes).\n",
periods,
stream_info->period_frames,
stream_info->period_size);
if ((errnum = snd_pcm_hw_params_get_buffer_size(params, &buffer_size)) < 0)
{
RARCH_WARN("[ALSA] Failed to get exact buffer size from %s device \"%s\": %s.\n",
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
RARCH_WARN("[ALSA] Trying the maximum buffer size instead.\n");
if ((errnum = snd_pcm_hw_params_get_buffer_size_max(params, &buffer_size)) < 0)
{
RARCH_ERR("[ALSA] Failed to get max buffer size from %s device \"%s\": %s.\n",
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
}
stream_info->buffer_size = snd_pcm_frames_to_bytes(*pcm, buffer_size);
if (stream_info->buffer_size < 0)
{
RARCH_ERR("[ALSA] Failed to convert a buffer size of %lu frames to bytes: %s.\n",
buffer_size,
snd_strerror(buffer_size));
goto error;
}
RARCH_LOG("[ALSA] Buffer size: %lu frames (%lu bytes).\n", buffer_size, stream_info->buffer_size);
stream_info->can_pause = snd_pcm_hw_params_can_pause(params);
RARCH_LOG("[ALSA] Can pause: %s.\n", stream_info->can_pause ? "yes" : "no");
if ((errnum = snd_pcm_sw_params_malloc(&sw_params)) < 0)
{
RARCH_ERR("[ALSA] Failed to allocate software parameters: %s.\n",
snd_strerror(errnum));
goto error;
}
if ((errnum = snd_pcm_sw_params_current(*pcm, sw_params)) < 0)
{
RARCH_ERR("[ALSA] Failed to query current software parameters for %s device \"%s\": %s.\n",
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
if ((errnum = snd_pcm_sw_params_set_start_threshold(*pcm, sw_params, buffer_size / 2)) < 0)
{
RARCH_ERR("[ALSA] Failed to set start %lu-frame threshold for %s device \"%s\": %s.\n",
buffer_size / 2,
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
if ((errnum = snd_pcm_sw_params(*pcm, sw_params)) < 0)
{
RARCH_ERR("[ALSA] Failed to install software parameters for %s device \"%s\": %s.\n",
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm),
snd_strerror(errnum));
goto error;
}
snd_pcm_hw_params_free(params);
snd_pcm_sw_params_free(sw_params);
RARCH_LOG("[ALSA] Initialized %s device \"%s\".\n",
snd_pcm_stream_name(stream),
snd_pcm_name(*pcm));
return 0;
error:
if (params)
snd_pcm_hw_params_free(params);
if (sw_params)
snd_pcm_sw_params_free(sw_params);
if (*pcm)
{
alsa_free_pcm(*pcm);
*pcm = NULL;
}
return errnum;
}
void alsa_free_pcm(snd_pcm_t *pcm)
{
if (pcm)
{
int errnum = 0;
if ((errnum = snd_pcm_drop(pcm)) < 0)
{
RARCH_WARN("[ALSA] Failed to drop remaining samples in %s stream \"%s\": %s.\n",
snd_pcm_stream_name(snd_pcm_stream(pcm)),
snd_pcm_name(pcm),
snd_strerror(errnum));
}
if ((errnum = snd_pcm_close(pcm)) < 0)
{
RARCH_WARN("[ALSA] Failed to close %s stream \"%s\": %s.\n",
snd_pcm_stream_name(snd_pcm_stream(pcm)),
snd_pcm_name(pcm),
snd_strerror(errnum));
}
}
}
bool alsa_start_pcm(snd_pcm_t *pcm)
{
int errnum = 0;
snd_pcm_state_t pcm_state;
if (!pcm)
return false;
pcm_state = snd_pcm_state(pcm);
switch (pcm_state)
{
case SND_PCM_STATE_PAUSED: /* If we're unpausing a valid (but paused) stream... */
if ((errnum = snd_pcm_pause(pcm, false)) < 0) /* ...but we failed... */
goto error;
break;
case SND_PCM_STATE_PREPARED:
/* If we're starting this stream for the first time... */
if ((errnum = snd_pcm_start(pcm)) < 0) /* ..but we failed... */
goto error;
break;
case SND_PCM_STATE_RUNNING:
RARCH_DBG("[ALSA] %s stream \"%s\" is already running, no action needed.\n",
snd_pcm_stream_name(snd_pcm_stream(pcm)),
snd_pcm_name(pcm));
return true;
default:
RARCH_ERR("[ALSA] Failed to start %s stream \"%s\" in unexpected state %s.\n",
snd_pcm_stream_name(snd_pcm_stream(pcm)),
snd_pcm_name(pcm),
snd_pcm_state_name(pcm_state));
return false;
}
RARCH_DBG("[ALSA] Started %s stream \"%s\", transitioning from %s to %s.\n",
snd_pcm_stream_name(snd_pcm_stream(pcm)),
snd_pcm_name(pcm),
snd_pcm_state_name(pcm_state),
snd_pcm_state_name(snd_pcm_state(pcm)));
return true;
error:
RARCH_ERR("[ALSA] Failed to start %s stream \"%s\" in state %s: %s.\n",
snd_pcm_stream_name(snd_pcm_stream(pcm)),
snd_pcm_name(pcm),
snd_pcm_state_name(pcm_state),
snd_strerror(errnum));
return false;
}
bool alsa_stop_pcm(snd_pcm_t *pcm)
{
int errnum = 0;
snd_pcm_state_t pcm_state;
if (!pcm)
return false;
pcm_state = snd_pcm_state(pcm);
switch (pcm_state)
{
case SND_PCM_STATE_PAUSED:
RARCH_DBG("[ALSA] %s stream \"%s\" is already paused, no action needed.\n",
snd_pcm_stream_name(snd_pcm_stream(pcm)),
snd_pcm_name(pcm));
return true;
case SND_PCM_STATE_PREPARED:
RARCH_DBG("[ALSA] %s stream \"%s\" is prepared but not running, no action needed.\n",
snd_pcm_stream_name(snd_pcm_stream(pcm)),
snd_pcm_name(pcm));
return true;
case SND_PCM_STATE_RUNNING:
/* If we're pausing an active stream... */
if ((errnum = snd_pcm_pause(pcm, true)) < 0) /* ...but we failed... */
goto error;
break;
default:
RARCH_ERR("[ALSA] Failed to stop %s stream \"%s\" in unexpected state %s.\n",
snd_pcm_stream_name(snd_pcm_stream(pcm)),
snd_pcm_name(pcm),
snd_pcm_state_name(pcm_state));
return false;
}
RARCH_DBG("[ALSA] Stopped %s stream \"%s\", transitioning from %s to %s.\n",
snd_pcm_stream_name(snd_pcm_stream(pcm)),
snd_pcm_name(pcm),
snd_pcm_state_name(pcm_state),
snd_pcm_state_name(snd_pcm_state(pcm)));
return true;
error:
RARCH_ERR("[ALSA] Failed to stop %s stream \"%s\" in state %s: %s.\n",
snd_pcm_stream_name(snd_pcm_stream(pcm)),
snd_pcm_name(pcm),
snd_pcm_state_name(pcm_state),
snd_strerror(errnum));
return false;
}
struct string_list *alsa_device_list_type_new(const char* type)
{
void **hints, **n;
union string_list_elem_attr attr;
struct string_list *s = string_list_new();
if (!s)
return NULL;
attr.i = 0;
if (snd_device_name_hint(-1, "pcm", &hints) != 0)
{
string_list_free(s);
return NULL;
}
n = hints;
while (*n)
{
char *name = snd_device_name_get_hint(*n, "NAME");
char *io = snd_device_name_get_hint(*n, "IOID");
char *desc = snd_device_name_get_hint(*n, "DESC");
/* description of device IOID - input / output identification
* ("Input" or "Output"), NULL means both) */
if (!io || (string_is_equal(io, type)))
string_list_append(s, name, attr);
if (name)
free(name);
if (io)
free(io);
if (desc)
free(desc);
n++;
}
/* free hint buffer too */
snd_device_name_free_hint(hints);
return s;
}

57
audio/common/alsa.h Normal file
View File

@ -0,0 +1,57 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2023 The RetroArch team
*
* 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 <http://www.gnu.org/licenses/>.
*/
#ifndef _RETROARCH_ALSA
#define _RETROARCH_ALSA
#include <stdint.h>
#include <boolean.h>
/* Header file for common functions that are used by alsa and alsathread. */
/**
* Used for info that's common to all pcm devices
* that's relevant for our purposes.
*/
typedef struct alsa_stream_info
{
size_t buffer_size;
size_t period_size;
snd_pcm_uframes_t period_frames;
unsigned int frame_bits;
bool has_float;
bool can_pause;
} alsa_stream_info_t;
int alsa_init_pcm(snd_pcm_t **pcm,
const char* device,
snd_pcm_stream_t stream,
unsigned rate,
unsigned latency,
unsigned channels,
alsa_stream_info_t *stream_info,
unsigned *new_rate,
int mode);
void alsa_free_pcm(snd_pcm_t *pcm);
void *alsa_device_list_new(void *data);
struct string_list *alsa_device_list_type_new(const char* type);
void alsa_device_list_free(void *data, void *array_list_data);
bool alsa_start_pcm(snd_pcm_t *pcm);
bool alsa_stop_pcm(snd_pcm_t *pcm);
#endif /* _RETROARCH_ALSA */

View File

@ -17,24 +17,410 @@
#include <encodings/utf.h>
#include <lists/string_list.h>
#include <string/stdstring.h>
#include "mmdevice_common.h"
#include "mmdevice_common_inline.h"
void *mmdevice_list_new(void *u)
#include "../../verbosity.h"
static const char *mmdevice_data_flow_name(unsigned data_flow)
{
switch (data_flow)
{
case 0:
return "eRender";
case 1:
return "eCapture";
case 2:
return "eAll";
default:
break;
}
return "<unknown>";
}
const char *mmdevice_hresult_name(int hr)
{
switch (hr)
{
/* Standard error codes */
case E_INVALIDARG:
return "E_INVALIDARG";
case E_NOINTERFACE:
return "E_NOINTERFACE";
case E_OUTOFMEMORY:
return "E_OUTOFMEMORY";
case E_POINTER:
return "E_POINTER";
/* Standard success codes */
case S_FALSE:
return "S_FALSE";
case S_OK:
return "S_OK";
/* AUDCLNT error codes */
case AUDCLNT_E_ALREADY_INITIALIZED:
return "AUDCLNT_E_ALREADY_INITIALIZED";
case AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL:
return "AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL";
case AUDCLNT_E_BUFFER_ERROR:
return "AUDCLNT_E_BUFFER_ERROR";
case AUDCLNT_E_BUFFER_OPERATION_PENDING:
return "AUDCLNT_E_BUFFER_OPERATION_PENDING";
case AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED:
return "AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED";
case AUDCLNT_E_BUFFER_SIZE_ERROR:
return "AUDCLNT_E_BUFFER_SIZE_ERROR";
case AUDCLNT_E_CPUUSAGE_EXCEEDED:
return "AUDCLNT_E_CPUUSAGE_EXCEEDED";
case AUDCLNT_E_DEVICE_IN_USE:
return "AUDCLNT_E_DEVICE_IN_USE";
case AUDCLNT_E_DEVICE_INVALIDATED:
return "AUDCLNT_E_DEVICE_INVALIDATED";
case AUDCLNT_E_ENDPOINT_CREATE_FAILED:
return "AUDCLNT_E_ENDPOINT_CREATE_FAILED";
case AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED:
return "AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED";
case AUDCLNT_E_INVALID_DEVICE_PERIOD:
return "AUDCLNT_E_INVALID_DEVICE_PERIOD";
case AUDCLNT_E_INVALID_SIZE:
return "AUDCLNT_E_INVALID_SIZE";
case AUDCLNT_E_NOT_INITIALIZED:
return "AUDCLNT_E_NOT_INITIALIZED";
case AUDCLNT_E_OUT_OF_ORDER:
return "AUDCLNT_E_OUT_OF_ORDER";
case AUDCLNT_E_SERVICE_NOT_RUNNING:
return "AUDCLNT_E_SERVICE_NOT_RUNNING";
case AUDCLNT_E_UNSUPPORTED_FORMAT:
return "AUDCLNT_E_UNSUPPORTED_FORMAT";
case AUDCLNT_E_WRONG_ENDPOINT_TYPE:
return "AUDCLNT_E_WRONG_ENDPOINT_TYPE";
/* AUDCLNT success codes */
case AUDCLNT_S_BUFFER_EMPTY:
return "AUDCLNT_S_BUFFER_EMPTY";
/* Something else; probably from an API that we started using
* after mic support was implemented */
default:
break;
}
return "<unknown>";
}
size_t mmdevice_samplerate(void *data)
{
HRESULT hr;
PWAVEFORMATEX devfmt_props;
PROPVARIANT prop_var;
IMMDevice *device = (IMMDevice*)data;
IPropertyStore *prop_store = NULL;
DWORD result = 0;
if (!device)
return 0;
hr = _IMMDevice_OpenPropertyStore(device,
STGM_READ, &prop_store);
if (FAILED(hr))
return 0;
PropVariantInit(&prop_var);
hr = _IPropertyStore_GetValue(prop_store,
PKEY_AudioEngine_DeviceFormat, &prop_var);
if (SUCCEEDED(hr))
{
devfmt_props = (PWAVEFORMATEX)prop_var.blob.pBlobData;
result = devfmt_props->nSamplesPerSec;
}
PropVariantClear(&prop_var);
if (prop_store)
{
#ifdef __cplusplus
prop_store->Release();
#else
prop_store->lpVtbl->Release(prop_store);
#endif
prop_store = NULL;
}
return (size_t)result;
}
char *mmdevice_name(void *data)
{
HRESULT hr;
PROPVARIANT prop_var;
IMMDevice *device = (IMMDevice*)data;
IPropertyStore *prop_store = NULL;
char* result = NULL;
if (!device)
return NULL;
hr = _IMMDevice_OpenPropertyStore(device,
STGM_READ, &prop_store);
if (FAILED(hr))
return NULL;
PropVariantInit(&prop_var);
hr = _IPropertyStore_GetValue(prop_store,
PKEY_Device_FriendlyName, &prop_var);
if (SUCCEEDED(hr))
result = utf16_to_utf8_string_alloc(prop_var.pwszVal);
PropVariantClear(&prop_var);
if (prop_store)
{
#ifdef __cplusplus
prop_store->Release();
#else
prop_store->lpVtbl->Release(prop_store);
#endif
prop_store = NULL;
}
return result;
}
void *mmdevice_handle(int id, unsigned data_flow)
{
HRESULT hr;
IMMDeviceEnumerator *enumerator = NULL;
IMMDevice *device = NULL;
IMMDeviceCollection *collection = NULL;
#ifdef __cplusplus
hr = CoCreateInstance(CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL,
IID_IMMDeviceEnumerator, (void **)&enumerator);
#else
hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL,
&IID_IMMDeviceEnumerator, (void **)&enumerator);
#endif
if (FAILED(hr))
return NULL;
hr = _IMMDeviceEnumerator_EnumAudioEndpoints(enumerator,
data_flow, DEVICE_STATE_ACTIVE, &collection);
if (FAILED(hr))
{
RARCH_ERR("[MMDevice] Failed to enumerate audio endpoints: %s.\n", mmdevice_hresult_name(hr));
goto error;
}
hr = _IMMDeviceCollection_Item(collection, id, &device);
if (FAILED(hr))
{
RARCH_ERR("[MMDevice] Failed to get IMMDevice #%d: %s.\n", id, mmdevice_hresult_name(hr));
goto error;
}
return device;
error:
if (collection)
#ifdef __cplusplus
collection->Release();
#else
collection->lpVtbl->Release(collection);
#endif
if (enumerator)
#ifdef __cplusplus
enumerator->Release();
#else
enumerator->lpVtbl->Release(enumerator);
#endif
collection = NULL;
enumerator = NULL;
return NULL;
}
size_t mmdevice_get_samplerate(int id)
{
IMMDevice *device = (IMMDevice*)mmdevice_handle(id, 0 /* eRender */);
if (device)
{
size_t _len = mmdevice_samplerate(device);
#ifdef __cplusplus
device->Release();
#else
device->lpVtbl->Release(device);
#endif
return _len;
}
return 0;
}
void *mmdevice_init_device(const char *id, unsigned data_flow)
{
HRESULT hr;
UINT32 dev_count, i;
IMMDeviceEnumerator *enumerator = NULL;
IMMDevice *device = NULL;
IMMDeviceCollection *collection = NULL;
const char *data_flow_name = mmdevice_data_flow_name(data_flow);
if (id)
RARCH_DBG("[MMDevice] Initializing %s device \"%s\"...\n", data_flow_name, id);
else
RARCH_DBG("[MMDevice] Initializing default %s device...\n", data_flow_name);
#ifdef __cplusplus
hr = CoCreateInstance(CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL,
IID_IMMDeviceEnumerator, (void **)&enumerator);
#else
hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL,
&IID_IMMDeviceEnumerator, (void **)&enumerator);
#endif
if (FAILED(hr))
{
RARCH_ERR("[MMDevice] Failed to create device enumerator: %s.\n", mmdevice_hresult_name(hr));
goto error;
}
if (id)
{
/* If a specific device was requested... */
int32_t idx_found = -1;
struct string_list *list = (struct string_list*)mmdevice_list_new(NULL, data_flow);
if (!list)
{
RARCH_ERR("[MMDevice] Failed to allocate %s device list.\n", data_flow_name);
goto error;
}
if (list->elems)
{
size_t d;
/* If any devices were found... */
for (d = 0; d < list->size; d++)
{
if (string_is_equal(id, list->elems[d].data))
{
RARCH_DBG("[MMDevice] Found device #%d: \"%s\".\n", d,
list->elems[d].data);
idx_found = d;
break;
}
}
/* Index was not found yet based on name string,
* just assume id is a one-character number index. */
if (idx_found == -1 && isdigit(id[0]))
{
idx_found = strtoul(id, NULL, 0);
RARCH_LOG("[MMDevice] Fallback, %s device index is a single number index instead: %u.\n",
data_flow_name, idx_found);
}
}
string_list_free(list);
if (idx_found == -1)
idx_found = 0;
hr = _IMMDeviceEnumerator_EnumAudioEndpoints(enumerator,
data_flow, DEVICE_STATE_ACTIVE, &collection);
if (FAILED(hr))
{
RARCH_ERR("[MMDevice] Failed to enumerate audio endpoints: %s.\n", mmdevice_hresult_name(hr));
goto error;
}
hr = _IMMDeviceCollection_GetCount(collection, &dev_count);
if (FAILED(hr))
{
RARCH_ERR("[MMDevice] Failed to count IMMDevices: %s.\n", mmdevice_hresult_name(hr));
goto error;
}
for (i = 0; i < dev_count; ++i)
{
hr = _IMMDeviceCollection_Item(collection, i, &device);
if (FAILED(hr))
{
RARCH_ERR("[MMDevice] Failed to get IMMDevice #%d: %s.\n", i, mmdevice_hresult_name(hr));
goto error;
}
if (i == (UINT32)idx_found)
break;
if (device)
#ifdef __cplusplus
device->Release();
#else
device->lpVtbl->Release(device);
#endif
device = NULL;
}
}
else
{
hr = _IMMDeviceEnumerator_GetDefaultAudioEndpoint(
enumerator, data_flow, eConsole, &device);
if (FAILED(hr))
{
RARCH_ERR("[MMDevice] Failed to get default audio endpoint: %s.\n", mmdevice_hresult_name(hr));
goto error;
}
}
if (!device)
goto error;
if (collection)
#ifdef __cplusplus
collection->Release();
#else
collection->lpVtbl->Release(collection);
#endif
if (enumerator)
#ifdef __cplusplus
enumerator->Release();
#else
enumerator->lpVtbl->Release(enumerator);
#endif
collection = NULL;
enumerator = NULL;
return device;
error:
if (collection)
#ifdef __cplusplus
collection->Release();
#else
collection->lpVtbl->Release(collection);
#endif
if (enumerator)
#ifdef __cplusplus
enumerator->Release();
#else
enumerator->lpVtbl->Release(enumerator);
#endif
collection = NULL;
enumerator = NULL;
if (id)
RARCH_WARN("[MMDevice] Failed to initialize %s device \"%s\".\n", data_flow_name, id);
else
RARCH_ERR("[MMDevice] Failed to initialize default %s device.\n", data_flow_name);
return NULL;
}
void *mmdevice_list_new(const void *u, unsigned data_flow)
{
HRESULT hr;
UINT i;
PROPVARIANT prop_var;
union string_list_elem_attr attr;
IMMDeviceEnumerator *enumerator = NULL;
IMMDeviceCollection *collection = NULL;
UINT dev_count = 0;
IMMDevice *device = NULL;
LPWSTR dev_id_wstr = NULL;
IPropertyStore *prop_store = NULL;
bool br = false;
bool prop_var_init = false;
char *dev_id_str = NULL;
char *dev_name_str = NULL;
struct string_list *sl = string_list_new();
@ -54,7 +440,7 @@ void *mmdevice_list_new(void *u)
goto error;
hr = _IMMDeviceEnumerator_EnumAudioEndpoints(enumerator,
eRender, DEVICE_STATE_ACTIVE, &collection);
data_flow, DEVICE_STATE_ACTIVE, &collection);
if (FAILED(hr))
goto error;
@ -75,19 +461,7 @@ void *mmdevice_list_new(void *u)
if (!(dev_id_str = utf16_to_utf8_string_alloc(dev_id_wstr)))
goto error;
hr = _IMMDevice_OpenPropertyStore(device, STGM_READ, &prop_store);
if (FAILED(hr))
goto error;
PropVariantInit(&prop_var);
prop_var_init = true;
hr = _IPropertyStore_GetValue(
prop_store, PKEY_Device_FriendlyName,
&prop_var);
if (FAILED(hr))
goto error;
if (!(dev_name_str = utf16_to_utf8_string_alloc(prop_var.pwszVal)))
if (!(dev_name_str = mmdevice_name(device)))
goto error;
br = string_list_append(sl, dev_name_str, attr);
@ -96,20 +470,41 @@ void *mmdevice_list_new(void *u)
if (dev_id_str)
sl->elems[sl->size-1].userdata = dev_id_str;
PropVariantClear(&prop_var);
prop_var_init = false;
if (dev_id_wstr)
CoTaskMemFree(dev_id_wstr);
if (dev_name_str)
free(dev_name_str);
dev_name_str = NULL;
dev_id_wstr = NULL;
IFACE_RELEASE(prop_store);
IFACE_RELEASE(device);
if (device)
{
#ifdef __cplusplus
device->Release();
#else
device->lpVtbl->Release(device);
#endif
device = NULL;
}
}
IFACE_RELEASE(collection);
IFACE_RELEASE(enumerator);
if (collection)
{
#ifdef __cplusplus
collection->Release();
#else
collection->lpVtbl->Release(collection);
#endif
collection = NULL;
}
if (enumerator)
{
#ifdef __cplusplus
enumerator->Release();
#else
enumerator->lpVtbl->Release(enumerator);
#endif
enumerator = NULL;
}
return sl;
@ -120,15 +515,36 @@ error:
free(dev_name_str);
dev_id_str = NULL;
dev_name_str = NULL;
if (prop_var_init)
PropVariantClear(&prop_var);
IFACE_RELEASE(prop_store);
if (dev_id_wstr)
CoTaskMemFree(dev_id_wstr);
dev_id_wstr = NULL;
IFACE_RELEASE(device);
IFACE_RELEASE(collection);
IFACE_RELEASE(enumerator);
if (device)
{
#ifdef __cplusplus
device->Release();
#else
device->lpVtbl->Release(device);
#endif
device = NULL;
}
if (collection)
{
#ifdef __cplusplus
collection->Release();
#else
collection->lpVtbl->Release(collection);
#endif
collection = NULL;
}
if (enumerator)
{
#ifdef __cplusplus
enumerator->Release();
#else
enumerator->lpVtbl->Release(enumerator);
#endif
enumerator = NULL;
}
if (sl)
string_list_free(sl);

View File

@ -1,27 +1,52 @@
/* RetroArch - A frontend for libretro.
* 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 <http://www.gnu.org/licenses/>.
*/
#ifndef _MMDEVICE_COMMON_H
#define _MMDEVICE_COMMON_H
#include <stdlib.h>
RETRO_BEGIN_DECLS
void *mmdevice_list_new(void *u);
RETRO_END_DECLS
#endif
/* RetroArch - A frontend for libretro.
* 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 <http://www.gnu.org/licenses/>.
*/
#ifndef _MMDEVICE_COMMON_H
#define _MMDEVICE_COMMON_H
#include <stdlib.h>
#include <retro_common_api.h>
RETRO_BEGIN_DECLS
void *mmdevice_list_new(const void *u, unsigned data_flow);
/**
* Gets the friendly name of the provided IMMDevice.
* The string must be freed with free().
*/
char* mmdevice_name(void *data);
/**
* Gets the samplerate of the provided IMMDevice.
*/
size_t mmdevice_samplerate(void *data);
/**
* Gets the handle of the IMMDevice.
*/
void *mmdevice_handle(int id, unsigned data_flow);
size_t mmdevice_get_samplerate(int id);
const char *mmdevice_hresult_name(int hr);
void *mmdevice_init_device(const char *id, unsigned data_flow);
RETRO_END_DECLS
#endif

View File

@ -1,114 +1,114 @@
/* RetroArch - A frontend for libretro.
* 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 <http://www.gnu.org/licenses/>.
*/
#ifndef _MMDEVICE_COMMON_INLINE_H
#define _MMDEVICE_COMMON_INLINE_H
#include <stdlib.h>
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x0600
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winerror.h>
#include <propidl.h>
#include <initguid.h>
#include <mmdeviceapi.h>
#include <mmreg.h>
#include <audioclient.h>
#include <retro_common_api.h>
#ifdef _MSC_VER
DEFINE_GUID(IID_IAudioClient, 0x1CB9AD4C, 0xDBFA, 0x4C32, 0xB1, 0x78, 0xC2, 0xF5, 0x68, 0xA7, 0x03, 0xB2);
DEFINE_GUID(IID_IAudioRenderClient, 0xF294ACFC, 0x3146, 0x4483, 0xA7, 0xBF, 0xAD, 0xDC, 0xA7, 0xC2, 0x60, 0xE2);
DEFINE_GUID(IID_IMMDeviceEnumerator, 0xA95664D2, 0x9614, 0x4F35, 0xA7, 0x46, 0xDE, 0x8D, 0xB6, 0x36, 0x17, 0xE6);
DEFINE_GUID(CLSID_MMDeviceEnumerator, 0xBCDE0395, 0xE52F, 0x467C, 0x8E, 0x3D, 0xC4, 0x57, 0x92, 0x91, 0x69, 0x2E);
#undef KSDATAFORMAT_SUBTYPE_IEEE_FLOAT
DEFINE_GUID(KSDATAFORMAT_SUBTYPE_IEEE_FLOAT, 0x00000003, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
#endif
DEFINE_PROPERTYKEY(PKEY_Device_FriendlyName, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14); /* DEVPROP_TYPE_STRING */
#ifdef __cplusplus
#define _IMMDeviceCollection_Item(This,nDevice,ppdevice) (This)->Item(nDevice,ppdevice)
#define _IAudioClient_Start(This) ( (This)->Start() )
#define _IAudioClient_Stop(This) ( (This)->Stop() )
#define _IAudioClient_GetCurrentPadding(This,pNumPaddingFrames) \
( (This)->GetCurrentPadding(pNumPaddingFrames) )
#define _IAudioRenderClient_GetBuffer(This,NumFramesRequested,ppData) \
( (This)->GetBuffer(NumFramesRequested,ppData) )
#define _IAudioRenderClient_ReleaseBuffer(This,NumFramesWritten,dwFlags) \
( (This)->ReleaseBuffer(NumFramesWritten,dwFlags) )
#define _IAudioClient_GetService(This,riid,ppv) ( (This)->GetService(riid,ppv) )
#define _IAudioClient_SetEventHandle(This,eventHandle) ( (This)->SetEventHandle(eventHandle) )
#define _IAudioClient_GetBufferSize(This,pNumBufferFrames) ( (This)->GetBufferSize(pNumBufferFrames) )
#define _IAudioClient_GetStreamLatency(This,phnsLatency) ( (This)->GetStreamLatency(phnsLatency) )
#define _IAudioClient_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) ( (This)->GetDevicePeriod(phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) )
#define _IMMDevice_Activate(This,iid,dwClsCtx,pActivationParams,ppv) ((This)->Activate(iid,(dwClsCtx),pActivationParams,ppv))
#define _IMMDeviceEnumerator_EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) (This)->EnumAudioEndpoints(dataFlow,dwStateMask,ppDevices)
#define _IMMDeviceEnumerator_GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) (This)->GetDefaultAudioEndpoint(dataFlow,role,ppEndpoint)
#define _IMMDevice_OpenPropertyStore(This,stgmAccess,ppProperties) (This)->OpenPropertyStore(stgmAccess,ppProperties)
#define _IMMDevice_GetId(This,ppstrId) ((This)->GetId(ppstrId))
#define _IPropertyStore_GetValue(This,key,pv) ( (This)->GetValue(key,pv) )
#define _IMMDeviceCollection_GetCount(This,cProps) ( (This)->GetCount(cProps) )
#else
#define _IMMDeviceCollection_Item(This,nDevice,ppdevice) (This)->lpVtbl->Item(This,nDevice,ppdevice)
#define _IAudioClient_Start(This) ( (This)->lpVtbl -> Start(This) )
#define _IAudioClient_Stop(This) ( (This)->lpVtbl -> Stop(This) )
#define _IAudioClient_GetCurrentPadding(This,pNumPaddingFrames) \
( (This)->lpVtbl -> GetCurrentPadding(This,pNumPaddingFrames) )
#define _IAudioRenderClient_GetBuffer(This,NumFramesRequested,ppData) \
( (This)->lpVtbl -> GetBuffer(This,NumFramesRequested,ppData) )
#define _IAudioRenderClient_ReleaseBuffer(This,NumFramesWritten,dwFlags) \
( (This)->lpVtbl -> ReleaseBuffer(This,NumFramesWritten,dwFlags) )
#define _IAudioClient_GetService(This,riid,ppv) ( (This)->lpVtbl -> GetService(This,&(riid),ppv) )
#define _IAudioClient_SetEventHandle(This,eventHandle) ( (This)->lpVtbl -> SetEventHandle(This,eventHandle) )
#define _IAudioClient_GetBufferSize(This,pNumBufferFrames) ( (This)->lpVtbl -> GetBufferSize(This,pNumBufferFrames) )
#define _IAudioClient_GetStreamLatency(This,phnsLatency) ( (This)->lpVtbl -> GetStreamLatency(This,phnsLatency) )
#define _IAudioClient_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) ( (This)->lpVtbl -> GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) )
#define _IMMDevice_Activate(This,iid,dwClsCtx,pActivationParams,ppv) ((This)->lpVtbl->Activate(This,&(iid),dwClsCtx,pActivationParams,ppv))
#define _IMMDeviceEnumerator_EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) (This)->lpVtbl->EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices)
#define _IMMDeviceEnumerator_GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) (This)->lpVtbl->GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint)
#define _IMMDevice_OpenPropertyStore(This,stgmAccess,ppProperties) (This)->lpVtbl->OpenPropertyStore(This,stgmAccess,ppProperties)
#define _IMMDevice_GetId(This,ppstrId) (This)->lpVtbl->GetId(This,ppstrId)
#define _IPropertyStore_GetValue(This,key,pv) ( (This)->lpVtbl -> GetValue(This,&(key),pv) )
#define _IMMDeviceCollection_GetCount(This,cProps) ( (This)->lpVtbl -> GetCount(This,cProps) )
#endif
#ifdef __cplusplus
#ifndef IFACE_RELEASE
#define IFACE_RELEASE(iface) \
if (iface) \
{ \
iface->Release(); \
iface = NULL; \
}
#endif
#else
#ifndef IFACE_RELEASE
#define IFACE_RELEASE(iface) \
if (iface) \
{ \
iface->lpVtbl->Release(iface);\
iface = NULL; \
}
#endif
#endif
#endif
/* RetroArch - A frontend for libretro.
* 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 <http://www.gnu.org/licenses/>.
*/
#ifndef _MMDEVICE_COMMON_INLINE_H
#define _MMDEVICE_COMMON_INLINE_H
#include <stdlib.h>
/* Fix for MSYS2 increasing _WIN32_WINNT to 0x0603 */
#if defined(__MINGW32__) || defined(__MINGW64__)
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
#include <winerror.h>
#include <propidl.h>
#include <initguid.h>
#include <mmdeviceapi.h>
#include <mmreg.h>
#include <audioclient.h>
#include <retro_common_api.h>
#ifdef _MSC_VER
DEFINE_GUID(IID_IAudioClient, 0x1CB9AD4C, 0xDBFA, 0x4C32, 0xB1, 0x78, 0xC2, 0xF5, 0x68, 0xA7, 0x03, 0xB2);
DEFINE_GUID(IID_IAudioRenderClient, 0xF294ACFC, 0x3146, 0x4483, 0xA7, 0xBF, 0xAD, 0xDC, 0xA7, 0xC2, 0x60, 0xE2);
DEFINE_GUID(IID_IAudioCaptureClient, 0xC8ADBD64, 0xE71E, 0x48A0, 0xA4, 0xDE, 0x18, 0x5C, 0x39, 0x5C, 0xD3, 0x17);
DEFINE_GUID(IID_IMMDeviceEnumerator, 0xA95664D2, 0x9614, 0x4F35, 0xA7, 0x46, 0xDE, 0x8D, 0xB6, 0x36, 0x17, 0xE6);
DEFINE_GUID(CLSID_MMDeviceEnumerator, 0xBCDE0395, 0xE52F, 0x467C, 0x8E, 0x3D, 0xC4, 0x57, 0x92, 0x91, 0x69, 0x2E);
#undef KSDATAFORMAT_SUBTYPE_IEEE_FLOAT
DEFINE_GUID(KSDATAFORMAT_SUBTYPE_IEEE_FLOAT, 0x00000003, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
#endif
DEFINE_PROPERTYKEY(PKEY_Device_FriendlyName, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14); /* DEVPROP_TYPE_STRING */
#ifdef __cplusplus
#define _IMMDeviceCollection_Item(This,nDevice,ppdevice) (This)->Item(nDevice,ppdevice)
#define _IAudioClient_Start(This) ( (This)->Start() )
#define _IAudioClient_Stop(This) ( (This)->Stop() )
#define _IAudioClient_GetCurrentPadding(This,pNumPaddingFrames) \
( (This)->GetCurrentPadding(pNumPaddingFrames) )
#define _IAudioRenderClient_GetBuffer(This,NumFramesRequested,ppData) \
( (This)->GetBuffer(NumFramesRequested,ppData) )
#define _IAudioRenderClient_ReleaseBuffer(This,NumFramesWritten,dwFlags) \
( (This)->ReleaseBuffer(NumFramesWritten,dwFlags) )
#define _IAudioClient_GetService(This,riid,ppv) ( (This)->GetService(riid,ppv) )
#define _IAudioClient_SetEventHandle(This,eventHandle) ( (This)->SetEventHandle(eventHandle) )
#define _IAudioClient_GetBufferSize(This,pNumBufferFrames) ( (This)->GetBufferSize(pNumBufferFrames) )
#define _IAudioClient_GetStreamLatency(This,phnsLatency) ( (This)->GetStreamLatency(phnsLatency) )
#define _IAudioClient_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) ( (This)->GetDevicePeriod(phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) )
#define _IAudioClient_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) \
( (This)->Initialize(ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid))
#define _IAudioClient_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) \
( (This)->IsFormatSupported(ShareMode,pFormat,ppClosestMatch))
#define _IMMDevice_Activate(This,iid,dwClsCtx,pActivationParams,ppv) ((This)->Activate(iid,(dwClsCtx),pActivationParams,ppv))
#define _IMMDeviceEnumerator_EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) (This)->EnumAudioEndpoints(dataFlow,dwStateMask,ppDevices)
#define _IMMDeviceEnumerator_GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) (This)->GetDefaultAudioEndpoint(dataFlow,role,ppEndpoint)
#define _IMMDevice_OpenPropertyStore(This,stgmAccess,ppProperties) (This)->OpenPropertyStore(stgmAccess,ppProperties)
#define _IMMDevice_GetId(This,ppstrId) ((This)->GetId(ppstrId))
#define _IPropertyStore_GetValue(This,key,pv) ( (This)->GetValue(key,pv) )
#define _IMMDeviceCollection_GetCount(This,cProps) ( (This)->GetCount(cProps) )
#define _IAudioCaptureClient_GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) \
( (This) -> GetBuffer(ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) )
#define _IAudioCaptureClient_ReleaseBuffer(This,NumFramesRead) \
( (This) -> ReleaseBuffer(NumFramesRead) )
#define _IAudioCaptureClient_GetNextPacketSize(This,pNumFramesInNextPacket) \
( (This) -> GetNextPacketSize(pNumFramesInNextPacket) )
#else
#define _IMMDeviceCollection_Item(This,nDevice,ppdevice) (This)->lpVtbl->Item(This,nDevice,ppdevice)
#define _IAudioClient_Start(This) ( (This)->lpVtbl -> Start(This) )
#define _IAudioClient_Stop(This) ( (This)->lpVtbl -> Stop(This) )
#define _IAudioClient_GetCurrentPadding(This,pNumPaddingFrames) \
( (This)->lpVtbl -> GetCurrentPadding(This,pNumPaddingFrames) )
#define _IAudioRenderClient_GetBuffer(This,NumFramesRequested,ppData) \
( (This)->lpVtbl -> GetBuffer(This,NumFramesRequested,ppData) )
#define _IAudioRenderClient_ReleaseBuffer(This,NumFramesWritten,dwFlags) \
( (This)->lpVtbl -> ReleaseBuffer(This,NumFramesWritten,dwFlags) )
#define _IAudioClient_GetService(This,riid,ppv) ( (This)->lpVtbl -> GetService(This,&(riid),ppv) )
#define _IAudioClient_SetEventHandle(This,eventHandle) ( (This)->lpVtbl -> SetEventHandle(This,eventHandle) )
#define _IAudioClient_GetBufferSize(This,pNumBufferFrames) ( (This)->lpVtbl -> GetBufferSize(This,pNumBufferFrames) )
#define _IAudioClient_GetStreamLatency(This,phnsLatency) ( (This)->lpVtbl -> GetStreamLatency(This,phnsLatency) )
#define _IAudioClient_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) ( (This)->lpVtbl -> GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) )
#define _IAudioClient_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) \
( (This)->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid))
#define _IAudioClient_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) \
( (This)->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch))
#define _IMMDevice_Activate(This,iid,dwClsCtx,pActivationParams,ppv) ((This)->lpVtbl->Activate(This,&(iid),dwClsCtx,pActivationParams,ppv))
#define _IMMDeviceEnumerator_EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) (This)->lpVtbl->EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices)
#define _IMMDeviceEnumerator_GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) (This)->lpVtbl->GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint)
#define _IMMDevice_OpenPropertyStore(This,stgmAccess,ppProperties) (This)->lpVtbl->OpenPropertyStore(This,stgmAccess,ppProperties)
#define _IMMDevice_GetId(This,ppstrId) (This)->lpVtbl->GetId(This,ppstrId)
#define _IPropertyStore_GetValue(This,key,pv) ( (This)->lpVtbl -> GetValue(This,&(key),pv) )
#define _IMMDeviceCollection_GetCount(This,cProps) ( (This)->lpVtbl -> GetCount(This,cProps) )
#define _IAudioCaptureClient_GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) \
( (This)->lpVtbl -> GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) )
#define _IAudioCaptureClient_ReleaseBuffer(This,NumFramesRead) \
( (This)->lpVtbl -> ReleaseBuffer(This,NumFramesRead) )
#define _IAudioCaptureClient_GetNextPacketSize(This,pNumFramesInNextPacket) \
( (This)-> lpVtbl -> GetNextPacketSize(This,pNumFramesInNextPacket) )
#endif
#endif

169
audio/common/pipewire.c Normal file
View File

@ -0,0 +1,169 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2024 Viachaslau Khalikin
*
* 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 <http://www.gnu.org/licenses/>.
*/
#include "pipewire.h"
#include <spa/utils/result.h>
#include <pipewire/pipewire.h>
#include <retro_assert.h>
#include "../../verbosity.h"
static void core_error_cb(void *data, uint32_t id, int seq, int res, const char *message)
{
pipewire_core_t *pw = (pipewire_core_t*)data;
RARCH_ERR("[PipeWire] Error id:%u seq:%d res:%d (%s): %s.\n",
id, seq, res, spa_strerror(res), message);
pw_thread_loop_stop(pw->thread_loop);
}
static void core_done_cb(void *data, uint32_t id, int seq)
{
pipewire_core_t *pw = (pipewire_core_t*)data;
retro_assert(id == PW_ID_CORE);
pw->last_seq = seq;
if (pw->pending_seq == seq)
pw_thread_loop_signal(pw->thread_loop, false);
}
static const struct pw_core_events core_events = {
PW_VERSION_CORE_EVENTS,
.done = core_done_cb,
.error = core_error_cb,
};
void pipewire_core_wait_resync(pipewire_core_t *pw)
{
retro_assert(pw);
pw->pending_seq = pw_core_sync(pw->core, PW_ID_CORE, pw->pending_seq);
for (;;)
{
pw_thread_loop_wait(pw->thread_loop);
if (pw->pending_seq == pw->last_seq)
break;
}
}
bool pipewire_stream_set_active(struct pw_thread_loop *loop, struct pw_stream *stream, bool active)
{
enum pw_stream_state st;
const char *error;
retro_assert(loop);
retro_assert(stream);
pw_thread_loop_lock(loop);
pw_stream_set_active(stream, active);
pw_thread_loop_wait(loop);
pw_thread_loop_unlock(loop);
st = pw_stream_get_state(stream, &error);
return active ? st == PW_STREAM_STATE_STREAMING : st == PW_STREAM_STATE_PAUSED;
}
bool pipewire_core_init(pipewire_core_t **pw, const char *loop_name, const struct pw_registry_events *events)
{
retro_assert(!*pw);
*pw = (pipewire_core_t*)calloc(1, sizeof(pipewire_core_t));
if (!*pw)
return false;
(*pw)->devicelist = string_list_new();
if (!(*pw)->devicelist)
{
free(*pw);
*pw = NULL;
return false;
}
pw_init(NULL, NULL);
(*pw)->thread_loop = pw_thread_loop_new(loop_name, NULL);
if (!(*pw)->thread_loop)
return false;
(*pw)->ctx = pw_context_new(pw_thread_loop_get_loop((*pw)->thread_loop), NULL, 0);
if (!(*pw)->ctx)
return false;
if (pw_thread_loop_start((*pw)->thread_loop) < 0)
return false;
pw_thread_loop_lock((*pw)->thread_loop);
(*pw)->core = pw_context_connect((*pw)->ctx, NULL, 0);
if (!(*pw)->core)
goto unlock;
if (pw_core_add_listener((*pw)->core,
&(*pw)->core_listener,
&core_events, *pw) < 0)
goto unlock;
if (events)
{
(*pw)->registry = pw_core_get_registry((*pw)->core, PW_VERSION_REGISTRY, 0);
spa_zero((*pw)->registry_listener);
pw_registry_add_listener((*pw)->registry, &(*pw)->registry_listener, events, *pw);
}
return true;
unlock:
pw_thread_loop_unlock((*pw)->thread_loop);
return false;
}
void pipewire_core_deinit(pipewire_core_t *pw)
{
if (!pw)
return pw_deinit();
if (pw->thread_loop)
pw_thread_loop_stop(pw->thread_loop);
if (pw->registry)
{
spa_hook_remove(&pw->registry_listener);
pw_proxy_destroy((struct pw_proxy*)pw->registry);
}
if (pw->core)
{
spa_hook_remove(&pw->core_listener);
pw_core_disconnect(pw->core);
}
if (pw->ctx)
pw_context_destroy(pw->ctx);
if (pw->thread_loop)
pw_thread_loop_destroy(pw->thread_loop);
if (pw->devicelist)
string_list_free(pw->devicelist);
free(pw);
pw_deinit();
}

63
audio/common/pipewire.h Normal file
View File

@ -0,0 +1,63 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2024 The RetroArch team
*
* 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 <http://www.gnu.org/licenses/>.
*/
#ifndef _RETROARCH_PIPEWIRE
#define _RETROARCH_PIPEWIRE
#include <stdint.h>
#include <spa/param/audio/format-utils.h>
#include <spa/utils/ringbuffer.h>
#include <pipewire/pipewire.h>
#include <lists/string_list.h>
#define PW_RARCH_APPNAME "RetroArch"
/* String literals are part of the PipeWire specification */
#define PW_RARCH_MEDIA_TYPE_AUDIO "Audio"
#define PW_RARCH_MEDIA_TYPE_VIDEO "Video"
#define PW_RARCH_MEDIA_TYPE_MIDI "Midi"
#define PW_RARCH_MEDIA_CATEGORY_PLAYBACK "Playback"
#define PW_RARCH_MEDIA_CATEGORY_RECORD "Capture"
#define PW_RARCH_MEDIA_ROLE "Game"
typedef struct pipewire_core
{
struct pw_thread_loop *thread_loop;
struct pw_context *ctx;
struct pw_core *core;
struct spa_hook core_listener;
int last_seq, pending_seq;
struct pw_registry *registry;
struct spa_hook registry_listener;
struct string_list *devicelist;
bool nonblock;
} pipewire_core_t;
bool pipewire_core_init(pipewire_core_t **pw, const char *loop_name, const struct pw_registry_events *events);
void pipewire_core_deinit(pipewire_core_t *pw);
void pipewire_core_wait_resync(pipewire_core_t *pw);
bool pipewire_stream_set_active(struct pw_thread_loop *loop, struct pw_stream *stream, bool active);
#endif /* _RETROARCH_PIPEWIRE */

View File

@ -1,7 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* copyright (c) 2011-2015 - Daniel De Matteis
* copyright (c) 2016-2019 - Brad Parker
* Copyright (C) 2011-2017 Daniel De Matteis
* Copyright (C) 2023 Jesse Talavera-Greenberg
*
* 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-
@ -15,28 +14,17 @@
* If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __VGA_COMMON_H
#define __VGA_COMMON_H
/**
* Contains WASAPI-specific support functions that are used
* by the WASAPI audio and microphone drivers.
*/
#define VGA_WIDTH 320
#define VGA_HEIGHT 200
#ifndef RETROARCH_COMMON_WASAPI_H
#define RETROARCH_COMMON_WASAPI_H
typedef struct vga
{
bool color;
bool vga_rgb32;
/* Shared buffer size replacement placeholders */
#define WASAPI_SH_BUFFER_AUDIO_LATENCY 0
#define WASAPI_SH_BUFFER_DEVICE_PERIOD 32
#define WASAPI_SH_BUFFER_CLIENT_BUFFER 64
unsigned vga_menu_width;
unsigned vga_menu_height;
unsigned vga_menu_pitch;
unsigned vga_menu_bits;
unsigned vga_video_width;
unsigned vga_video_height;
unsigned vga_video_pitch;
unsigned vga_video_bits;
unsigned char *vga_menu_frame;
unsigned char *vga_frame;
} vga_t;
#endif
#endif /* RETROARCH_COMMON_WASAPI_H */

View File

@ -1,6 +1,7 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2023-2025 - Jesse Talavera-Greenberg
*
* 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-
@ -20,180 +21,362 @@
#include <string/stdstring.h>
#include <alsa/asoundlib.h>
#include <alsa/pcm.h>
#include <asm-generic/errno.h>
#include "../audio_driver.h"
#include "../common/alsa.h"
#include "../../verbosity.h"
#ifdef HAVE_MICROPHONE
#include "../microphone_driver.h"
#define BYTES_TO_FRAMES(bytes, frame_bits) ((bytes) * 8 / frame_bits)
#define FRAMES_TO_BYTES(frames, frame_bits) ((frames) * frame_bits / 8)
typedef struct alsa_microphone_handle
{
snd_pcm_t *pcm;
alsa_stream_info_t stream_info;
} alsa_microphone_handle_t;
typedef struct alsa_microphone
{
bool nonblock;
} alsa_microphone_t;
static void *alsa_microphone_init(void)
{
alsa_microphone_t *alsa = (alsa_microphone_t*)calloc(1, sizeof(alsa_microphone_t));
if (!alsa)
{
RARCH_ERR("[ALSA] Failed to allocate driver context.\n");
return NULL;
}
RARCH_LOG("[ALSA] Using ALSA version %s.\n", snd_asoundlib_version());
return alsa;
}
static void alsa_microphone_close_mic(void *driver_context, void *mic_context);
static void alsa_microphone_free(void *driver_context)
{
alsa_microphone_t *alsa = (alsa_microphone_t*)driver_context;
/* The mic frontend should've closed all mics before calling free(). */
if (alsa)
{
snd_config_update_free_global();
free(alsa);
}
}
static bool alsa_microphone_start_mic(void *driver_context, void *mic_context);
static int alsa_microphone_read(void *driver_context, void *mic_context, void *s, size_t len)
{
size_t frames_size;
snd_pcm_sframes_t size;
snd_pcm_state_t state;
alsa_microphone_t *alsa = (alsa_microphone_t*)driver_context;
alsa_microphone_handle_t *mic = (alsa_microphone_handle_t*)mic_context;
uint8_t *buf = (uint8_t*)s;
snd_pcm_sframes_t read = 0;
int errnum = 0;
if (!alsa || !mic || !buf)
return -1;
size = BYTES_TO_FRAMES(len, mic->stream_info.frame_bits);
frames_size = mic->stream_info.has_float ? sizeof(float) : sizeof(int16_t);
state = snd_pcm_state(mic->pcm);
if (state != SND_PCM_STATE_RUNNING)
{
RARCH_WARN("[ALSA] Expected microphone \"%s\" to be in state RUNNING, was in state %s.\n",
snd_pcm_name(mic->pcm),
snd_pcm_state_name(state));
errnum = snd_pcm_start(mic->pcm);
if (errnum < 0)
{
RARCH_ERR("[ALSA] Failed to start microphone \"%s\": %s.\n",
snd_pcm_name(mic->pcm),
snd_strerror(errnum));
return -1;
}
}
if (alsa->nonblock)
{
while (size)
{
snd_pcm_sframes_t frames = snd_pcm_readi(mic->pcm, buf, size);
if (frames == -EPIPE || frames == -EINTR || frames == -ESTRPIPE)
{
errnum = snd_pcm_recover(mic->pcm, frames, 0);
if (errnum < 0)
{
RARCH_ERR("[ALSA] Failed to read from microphone: %s.\n", snd_strerror(frames));
RARCH_ERR("[ALSA] Additionally, recovery failed with: %s.\n", snd_strerror(errnum));
return -1;
}
break;
}
else if (frames == -EAGAIN)
break;
else if (frames < 0)
return -1;
read += frames;
buf += frames_size;
size -= frames;
}
}
else
{
bool eagain_retry = true;
while (size)
{
snd_pcm_sframes_t frames;
int rc = snd_pcm_wait(mic->pcm, -1);
if (rc == -EPIPE || rc == -ESTRPIPE || rc == -EINTR)
{
if (snd_pcm_recover(mic->pcm, rc, 1) < 0)
return -1;
continue;
}
frames = snd_pcm_readi(mic->pcm, buf, size);
if (frames == -EPIPE || frames == -EINTR || frames == -ESTRPIPE)
{
if (snd_pcm_recover(mic->pcm, frames, 1) < 0)
return -1;
break;
}
else if (frames == -EAGAIN)
{
/* Definitely not supposed to happen. */
if (eagain_retry)
{
eagain_retry = false;
continue;
}
break;
}
else if (frames < 0)
return -1;
read += frames;
buf += frames_size;
size -= frames;
}
}
return FRAMES_TO_BYTES(read, mic->stream_info.frame_bits);
}
static bool alsa_microphone_mic_alive(const void *driver_context, const void *mic_context)
{
alsa_microphone_handle_t *mic = (alsa_microphone_handle_t*)mic_context;
(void)driver_context;
if (!mic)
return false;
return snd_pcm_state(mic->pcm) == SND_PCM_STATE_RUNNING;
}
static void alsa_microphone_set_nonblock_state(void *driver_context, bool nonblock)
{
alsa_microphone_t *alsa = (alsa_microphone_t*)driver_context;
alsa->nonblock = nonblock;
}
static struct string_list *alsa_microphone_device_list_new(const void *data)
{
return alsa_device_list_type_new("Input");
}
static void alsa_microphone_device_list_free(const void *driver_context, struct string_list *devices)
{
(void)driver_context;
string_list_free(devices);
/* Does nothing if devices is NULL */
}
static void *alsa_microphone_open_mic(void *driver_context,
const char *device,
unsigned rate,
unsigned latency,
unsigned *new_rate)
{
alsa_microphone_t *alsa = (alsa_microphone_t*)driver_context;
alsa_microphone_handle_t *mic = NULL;
if (!alsa) /* If we weren't given a valid ALSA context... */
return NULL;
/* If the microphone context couldn't be allocated... */
if (!(mic = calloc(1, sizeof(alsa_microphone_handle_t))))
return NULL;
/* channels hardcoded to 1, because we only support mono mic input */
if (alsa_init_pcm(&mic->pcm, device, SND_PCM_STREAM_CAPTURE, rate, latency, 1,
&mic->stream_info, new_rate, SND_PCM_NONBLOCK) < 0)
goto error;
return mic;
error:
RARCH_ERR("[ALSA] Failed to initialize microphone.\n");
alsa_microphone_close_mic(alsa, mic);
return NULL;
}
static void alsa_microphone_close_mic(void *driver_context, void *mic_context)
{
alsa_microphone_handle_t *mic = (alsa_microphone_handle_t*)mic_context;
(void)driver_context;
if (mic)
{
alsa_free_pcm(mic->pcm);
free(mic);
}
}
static bool alsa_microphone_start_mic(void *driver_context, void *mic_context)
{
alsa_microphone_handle_t *mic = (alsa_microphone_handle_t*)mic_context;
if (!mic)
return false;
return alsa_start_pcm(mic->pcm);
}
static bool alsa_microphone_stop_mic(void *driver_context, void *mic_context)
{
alsa_microphone_handle_t *mic = (alsa_microphone_handle_t*)mic_context;
if (!mic)
return false;
return alsa_stop_pcm(mic->pcm);
}
static bool alsa_microphone_mic_use_float(const void *driver_context, const void *mic_context)
{
alsa_microphone_handle_t *mic = (alsa_microphone_handle_t*)mic_context;
return mic->stream_info.has_float;
}
microphone_driver_t microphone_alsa = {
alsa_microphone_init,
alsa_microphone_free,
alsa_microphone_read,
alsa_microphone_set_nonblock_state,
"alsa",
alsa_microphone_device_list_new,
alsa_microphone_device_list_free,
alsa_microphone_open_mic,
alsa_microphone_close_mic,
alsa_microphone_mic_alive,
alsa_microphone_start_mic,
alsa_microphone_stop_mic,
alsa_microphone_mic_use_float
};
#endif
typedef struct alsa
{
snd_pcm_t *pcm;
size_t buffer_size;
unsigned int frame_bits;
alsa_stream_info_t stream_info;
bool nonblock;
bool has_float;
bool can_pause;
bool is_paused;
} alsa_t;
static bool alsa_use_float(void *data)
{
alsa_t *alsa = (alsa_t*)data;
return alsa->has_float;
}
static bool find_float_format(snd_pcm_t *pcm, void *data)
{
snd_pcm_hw_params_t *params = (snd_pcm_hw_params_t*)data;
if (snd_pcm_hw_params_test_format(pcm, params, SND_PCM_FORMAT_FLOAT) == 0)
{
RARCH_LOG("[ALSA]: Using floating point format.\n");
return true;
}
RARCH_LOG("[ALSA]: Using signed 16-bit format.\n");
return false;
return alsa->stream_info.has_float;
}
static void alsa_free(void *data);
static void *alsa_init(const char *device, unsigned rate, unsigned latency,
unsigned block_frames,
unsigned *new_rate)
{
snd_pcm_format_t format;
snd_pcm_uframes_t buffer_size;
snd_pcm_hw_params_t *params = NULL;
snd_pcm_sw_params_t *sw_params = NULL;
unsigned latency_usec = latency * 1000;
unsigned channels = 2;
unsigned periods = 4;
unsigned orig_rate = rate;
const char *alsa_dev = "default";
alsa_t *alsa = (alsa_t*)calloc(1, sizeof(alsa_t));
alsa_t *alsa = (alsa_t*)calloc(1, sizeof(alsa_t));
if (!alsa)
{
RARCH_ERR("[ALSA] Failed to allocate driver context.\n");
return NULL;
}
if (device)
alsa_dev = device;
RARCH_LOG("[ALSA] Using ALSA version %s.\n", snd_asoundlib_version());
if (snd_pcm_open(
&alsa->pcm, alsa_dev, SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK) < 0)
if (alsa_init_pcm(&alsa->pcm, device, SND_PCM_STREAM_PLAYBACK, rate,
latency, 2, &alsa->stream_info, new_rate, SND_PCM_NONBLOCK) < 0)
goto error;
if (snd_pcm_hw_params_malloc(&params) < 0)
goto error;
if (snd_pcm_hw_params_any(alsa->pcm, params) < 0)
goto error;
alsa->has_float = find_float_format(alsa->pcm, params);
format = alsa->has_float ? SND_PCM_FORMAT_FLOAT : SND_PCM_FORMAT_S16;
if (snd_pcm_hw_params_set_access(
alsa->pcm, params, SND_PCM_ACCESS_RW_INTERLEAVED) < 0)
goto error;
/* channels hardcoded to 2 for now */
alsa->frame_bits = snd_pcm_format_physical_width(format) * 2;
if (snd_pcm_hw_params_set_format(alsa->pcm, params, format) < 0)
goto error;
if (snd_pcm_hw_params_set_channels(alsa->pcm, params, channels) < 0)
goto error;
/* Don't allow rate resampling when probing for the default rate (but ignore if this call fails) */
snd_pcm_hw_params_set_rate_resample(alsa->pcm, params, 0 );
if (snd_pcm_hw_params_set_rate_near(alsa->pcm, params, &rate, 0) < 0)
goto error;
if (rate != orig_rate)
*new_rate = rate;
if (snd_pcm_hw_params_set_buffer_time_near(
alsa->pcm, params, &latency_usec, NULL) < 0)
goto error;
if (snd_pcm_hw_params_set_periods_near(
alsa->pcm, params, &periods, NULL) < 0)
goto error;
if (snd_pcm_hw_params(alsa->pcm, params) < 0)
goto error;
/* Shouldn't have to bother with this,
* but some drivers are apparently broken. */
if (snd_pcm_hw_params_get_period_size(params, &buffer_size, NULL))
snd_pcm_hw_params_get_period_size_min(params, &buffer_size, NULL);
RARCH_LOG("[ALSA]: Period size: %d frames\n", (int)buffer_size);
if (snd_pcm_hw_params_get_buffer_size(params, &buffer_size))
snd_pcm_hw_params_get_buffer_size_max(params, &buffer_size);
RARCH_LOG("[ALSA]: Buffer size: %d frames\n", (int)buffer_size);
alsa->buffer_size = snd_pcm_frames_to_bytes(alsa->pcm, buffer_size);
alsa->can_pause = snd_pcm_hw_params_can_pause(params);
RARCH_LOG("[ALSA]: Can pause: %s.\n", alsa->can_pause ? "yes" : "no");
if (snd_pcm_sw_params_malloc(&sw_params) < 0)
goto error;
if (snd_pcm_sw_params_current(alsa->pcm, sw_params) < 0)
goto error;
if (snd_pcm_sw_params_set_start_threshold(
alsa->pcm, sw_params, buffer_size / 2) < 0)
goto error;
if (snd_pcm_sw_params(alsa->pcm, sw_params) < 0)
goto error;
snd_pcm_hw_params_free(params);
snd_pcm_sw_params_free(sw_params);
return alsa;
error:
RARCH_ERR("[ALSA]: Failed to initialize...\n");
if (params)
snd_pcm_hw_params_free(params);
RARCH_ERR("[ALSA] Failed to initialize.\n");
if (sw_params)
snd_pcm_sw_params_free(sw_params);
alsa_free(alsa);
if (alsa)
{
if (alsa->pcm)
{
snd_pcm_close(alsa->pcm);
snd_config_update_free_global();
}
free(alsa);
}
return NULL;
}
#define BYTES_TO_FRAMES(bytes, frame_bits) ((bytes) * 8 / frame_bits)
#define FRAMES_TO_BYTES(frames, frame_bits) ((frames) * frame_bits / 8)
static bool alsa_start(void *data, bool is_shutdown);
static ssize_t alsa_write(void *data, const void *buf_, size_t size_)
static bool alsa_start(void *data, bool is_shutdown)
{
alsa_t *alsa = (alsa_t*)data;
const uint8_t *buf = (const uint8_t*)buf_;
snd_pcm_sframes_t written = 0;
snd_pcm_sframes_t size = BYTES_TO_FRAMES(size_, alsa->frame_bits);
size_t frames_size = alsa->has_float ? sizeof(float) : sizeof(int16_t);
alsa_t *alsa = (alsa_t*)data;
if (!alsa->is_paused)
return true;
if ( alsa->stream_info.can_pause
&& alsa->is_paused)
{
int ret = snd_pcm_pause(alsa->pcm, 0);
if (ret < 0)
{
RARCH_ERR("[ALSA] Failed to unpause: %s.\n",
snd_strerror(ret));
return false;
}
alsa->is_paused = false;
}
return true;
}
static ssize_t alsa_write(void *data, const void *buf_, size_t len)
{
ssize_t _len = 0;
alsa_t *alsa = (alsa_t*)data;
const uint8_t *buf = (const uint8_t*)buf_;
snd_pcm_sframes_t size = BYTES_TO_FRAMES(len, alsa->stream_info.frame_bits);
size_t frames_size = alsa->stream_info.has_float ? sizeof(float) : sizeof(int16_t);
/* Workaround buggy menu code.
* If a write happens while we're paused, we might never progress. */
if (alsa->is_paused)
if (!alsa_start(alsa, false))
return -1;
if (alsa->is_paused && !alsa_start(alsa, false))
return -1;
if (alsa->nonblock)
{
@ -213,9 +396,9 @@ static ssize_t alsa_write(void *data, const void *buf_, size_t size_)
else if (frames < 0)
return -1;
written += frames;
buf += (frames << 1) * frames_size;
size -= frames;
_len += frames;
buf += (frames << 1) * frames_size;
size -= frames;
}
}
else
@ -256,13 +439,13 @@ static ssize_t alsa_write(void *data, const void *buf_, size_t size_)
else if (frames < 0)
return -1;
written += frames;
buf += (frames << 1) * frames_size;
size -= frames;
_len += frames;
buf += (frames << 1) * frames_size;
size -= frames;
}
}
return written;
return _len;
}
static bool alsa_alive(void *data)
@ -279,7 +462,7 @@ static bool alsa_stop(void *data)
if (alsa->is_paused)
return true;
if (alsa->can_pause
if (alsa->stream_info.can_pause
&& !alsa->is_paused)
{
int ret = snd_pcm_pause(alsa->pcm, 1);
@ -299,42 +482,15 @@ static void alsa_set_nonblock_state(void *data, bool state)
alsa->nonblock = state;
}
static bool alsa_start(void *data, bool is_shutdown)
{
alsa_t *alsa = (alsa_t*)data;
if (!alsa->is_paused)
return true;
if (alsa->can_pause
&& alsa->is_paused)
{
int ret = snd_pcm_pause(alsa->pcm, 0);
if (ret < 0)
{
RARCH_ERR("[ALSA]: Failed to unpause: %s.\n",
snd_strerror(ret));
return false;
}
alsa->is_paused = false;
}
return true;
}
static void alsa_free(void *data)
{
alsa_t *alsa = (alsa_t*)data;
if (alsa)
{
if (alsa->pcm)
{
snd_pcm_drop(alsa->pcm);
snd_pcm_close(alsa->pcm);
snd_config_update_free_global();
}
alsa_free_pcm(alsa->pcm);
snd_config_update_free_global();
free(alsa);
}
}
@ -345,73 +501,28 @@ static size_t alsa_write_avail(void *data)
snd_pcm_sframes_t avail = snd_pcm_avail(alsa->pcm);
if (avail < 0)
return alsa->buffer_size;
return alsa->stream_info.buffer_size;
return FRAMES_TO_BYTES(avail, alsa->frame_bits);
return FRAMES_TO_BYTES(avail, alsa->stream_info.frame_bits);
}
static size_t alsa_buffer_size(void *data)
{
alsa_t *alsa = (alsa_t*)data;
return alsa->buffer_size;
return alsa->stream_info.buffer_size;
}
static void *alsa_device_list_new(void *data)
void *alsa_device_list_new(void *data)
{
void **hints, **n;
union string_list_elem_attr attr;
struct string_list *s = string_list_new();
if (!s)
return NULL;
attr.i = 0;
if (snd_device_name_hint(-1, "pcm", &hints) != 0)
goto error;
n = hints;
while (*n)
{
char *name = snd_device_name_get_hint(*n, "NAME");
char *io = snd_device_name_get_hint(*n, "IOID");
char *desc = snd_device_name_get_hint(*n, "DESC");
/* description of device IOID - input / output identifcation
* ("Input" or "Output"), NULL means both) */
if (!io || (string_is_equal(io, "Output")))
string_list_append(s, name, attr);
if (name)
free(name);
if (io)
free(io);
if (desc)
free(desc);
n++;
}
/* free hint buffer too */
snd_device_name_free_hint(hints);
return s;
error:
string_list_free(s);
return NULL;
return alsa_device_list_type_new("Output");
}
static void alsa_device_list_free(void *data, void *array_list_data)
void alsa_device_list_free(void *data, void *array_list_data)
{
struct string_list *s = (struct string_list*)array_list_data;
if (!s)
return;
string_list_free(s);
if (s)
string_list_free(s);
}
audio_driver_t audio_alsa = {

View File

@ -64,14 +64,14 @@ static void *alsa_qsa_init(const char *device,
if ((err = snd_pcm_open_preferred(&alsa->pcm, &card, &dev,
SND_PCM_OPEN_PLAYBACK)) < 0)
{
RARCH_ERR("[ALSA QSA]: Audio open error: %s\n",
RARCH_ERR("[ALSA QSA] Audio open error: %s.\n",
snd_strerror(err));
goto error;
}
if((err = snd_pcm_nonblock_mode(alsa->pcm, 1)) < 0)
if ((err = snd_pcm_nonblock_mode(alsa->pcm, 1)) < 0)
{
RARCH_ERR("[ALSA QSA]: Can't set blocking mode: %s\n",
RARCH_ERR("[ALSA QSA] Can't set blocking mode: %s.\n",
snd_strerror(err));
goto error;
}
@ -80,7 +80,7 @@ static void *alsa_qsa_init(const char *device,
pi.channel = SND_PCM_CHANNEL_PLAYBACK;
if ((err = snd_pcm_channel_info(alsa->pcm, &pi)) < 0)
{
RARCH_ERR("[ALSA QSA]: snd_pcm_channel_info failed: %s\n",
RARCH_ERR("[ALSA QSA] snd_pcm_channel_info failed: %s.\n",
snd_strerror(err));
goto error;
}
@ -88,27 +88,27 @@ static void *alsa_qsa_init(const char *device,
memset(&params, 0, sizeof(params));
params.channel = SND_PCM_CHANNEL_PLAYBACK;
params.mode = SND_PCM_MODE_BLOCK;
params.mode = SND_PCM_MODE_BLOCK;
params.format.interleave = 1;
params.format.format = SND_PCM_SFMT_S16_LE;
params.format.rate = DEFAULT_RATE;
params.format.voices = 2;
params.format.format = SND_PCM_SFMT_S16_LE;
params.format.rate = DEFAULT_RATE;
params.format.voices = 2;
params.start_mode = SND_PCM_START_FULL;
params.stop_mode = SND_PCM_STOP_STOP;
params.stop_mode = SND_PCM_STOP_STOP;
params.buf.block.frag_size = pi.max_fragment_size;
params.buf.block.frags_min = 2;
params.buf.block.frags_max = 8;
RARCH_LOG("Fragment size: %d\n", params.buf.block.frag_size);
RARCH_LOG("Min Fragment size: %d\n", params.buf.block.frags_min);
RARCH_LOG("Max Fragment size: %d\n", params.buf.block.frags_max);
RARCH_LOG("[ALSA QSA] Fragment size: %d.\n", params.buf.block.frag_size);
RARCH_LOG("[ALSA QSA] Min Fragment size: %d.\n", params.buf.block.frags_min);
RARCH_LOG("[ALSA QSA] Max Fragment size: %d.\n", params.buf.block.frags_max);
if ((err = snd_pcm_channel_params(alsa->pcm, &params)) < 0)
{
RARCH_ERR("[ALSA QSA]: Channel Parameter Error: %s\n",
RARCH_ERR("[ALSA QSA] Channel Parameter Error: %s.\n",
snd_strerror(err));
goto error;
}
@ -117,7 +117,7 @@ static void *alsa_qsa_init(const char *device,
if ((err = snd_pcm_channel_setup(alsa->pcm, &setup)) < 0)
{
RARCH_ERR("[ALSA QSA]: Channel Parameter Read Back Error: %s\n",
RARCH_ERR("[ALSA QSA] Channel Parameter Read Back Error: %s.\n",
snd_strerror(err));
goto error;
}
@ -127,7 +127,7 @@ static void *alsa_qsa_init(const char *device,
else
alsa->buf_size = next_pow2(32 * latency);
RARCH_LOG("[ALSA QSA]: buffer size: %u bytes\n", alsa->buf_size);
RARCH_LOG("[ALSA QSA] Buffer size: %u bytes.\n", alsa->buf_size);
alsa->buf_count = (latency * 4 * rate + 500) / 1000;
alsa->buf_count = (alsa->buf_count + alsa->buf_size / 2) / alsa->buf_size;
@ -135,7 +135,7 @@ static void *alsa_qsa_init(const char *device,
if ((err = snd_pcm_channel_prepare(alsa->pcm,
SND_PCM_CHANNEL_PLAYBACK)) < 0)
{
RARCH_ERR("[ALSA QSA]: Channel Prepare Error: %s\n",
RARCH_ERR("[ALSA QSA] Channel Prepare Error: %s.\n",
snd_strerror(err));
goto error;
}
@ -153,7 +153,7 @@ static void *alsa_qsa_init(const char *device,
alsa->has_float = false;
alsa->can_pause = true;
RARCH_LOG("[ALSA QSA]: Can pause: %s.\n",
RARCH_LOG("[ALSA QSA] Can pause: %s.\n",
alsa->can_pause ? "yes" : "no");
return alsa;
@ -175,35 +175,35 @@ static int check_pcm_status(void *data, int channel_type)
{
if (status.status == SND_PCM_STATUS_UNSECURE)
{
RARCH_ERR("check_pcm_status got SND_PCM_STATUS_UNSECURE, aborting playback\n");
RARCH_ERR("[ALSA QSA] check_pcm_status got SND_PCM_STATUS_UNSECURE, aborting playback.\n");
ret = -EPROTO;
}
else if (status.status == SND_PCM_STATUS_UNDERRUN)
{
RARCH_LOG("check_pcm_status: SNDP_CM_STATUS_UNDERRUN.\n");
RARCH_LOG("[ALSA QSA] check_pcm_status: SNDP_CM_STATUS_UNDERRUN.\n");
if ((ret = snd_pcm_channel_prepare(alsa->pcm, channel_type)) < 0)
{
RARCH_ERR("Invalid state detected for underrun on snd_pcm_channel_prepare: %s\n",
RARCH_ERR("[ALSA QSA] Invalid state detected for underrun on snd_pcm_channel_prepare: %s.\n",
snd_strerror(ret));
ret = -EPROTO;
}
}
else if (status.status == SND_PCM_STATUS_OVERRUN)
{
RARCH_LOG("check_pcm_status: SNDP_CM_STATUS_OVERRUN.\n");
RARCH_LOG("[ALSA QSA] check_pcm_status: SNDP_CM_STATUS_OVERRUN.\n");
if ((ret = snd_pcm_channel_prepare(alsa->pcm, channel_type)) < 0)
{
RARCH_ERR("Invalid state detected for overrun on snd_pcm_channel_prepare: %s\n",
RARCH_ERR("[ALSA QSA] Invalid state detected for overrun on snd_pcm_channel_prepare: %s.\n",
snd_strerror(ret));
ret = -EPROTO;
}
}
else if (status.status == SND_PCM_STATUS_CHANGE)
{
RARCH_LOG("check_pcm_status: SNDP_CM_STATUS_CHANGE.\n");
RARCH_LOG("[ALSA QSA] check_pcm_status: SNDP_CM_STATUS_CHANGE.\n");
if ((ret = snd_pcm_channel_prepare(alsa->pcm, channel_type)) < 0)
{
RARCH_ERR("Invalid state detected for change on snd_pcm_channel_prepare: %s\n",
RARCH_ERR("[ALSA QSA] Invalid state detected for change on snd_pcm_channel_prepare: %s.\n",
snd_strerror(ret));
ret = -EPROTO;
}
@ -211,7 +211,7 @@ static int check_pcm_status(void *data, int channel_type)
}
else
{
RARCH_ERR("check_pcm_status failed: %s\n", snd_strerror(ret));
RARCH_ERR("[ALSA QSA] check_pcm_status failed: %s.\n", snd_strerror(ret));
if (ret == -ESRCH)
ret = -EBADF;
}
@ -219,24 +219,24 @@ static int check_pcm_status(void *data, int channel_type)
return ret;
}
static ssize_t alsa_qsa_write(void *data, const void *buf, size_t size)
static ssize_t alsa_qsa_write(void *data, const void *buf, size_t len)
{
alsa_qsa_t *alsa = (alsa_qsa_t*)data;
snd_pcm_sframes_t written = 0;
ssize_t _len = 0;
alsa_qsa_t *alsa = (alsa_qsa_t*)data;
while (size)
{
size_t avail_write = MIN(alsa->buf_size - alsa->buffer_ptr, size);
size_t avail_write = MIN(alsa->buf_size - alsa->buffer_ptr, len);
if (avail_write)
{
memcpy(alsa->buffer[alsa->buffer_index] +
alsa->buffer_ptr, buf, avail_write);
alsa->buffer_ptr += avail_write;
buf = (void*)((uint8_t*)buf + avail_write);
size -= avail_write;
written += avail_write;
alsa->buffer_ptr += avail_write;
buf = (void*)((uint8_t*)buf + avail_write);
len -= avail_write;
_len += avail_write;
}
if (alsa->buffer_ptr >= alsa->buf_size)
@ -260,10 +260,9 @@ static ssize_t alsa_qsa_write(void *data, const void *buf, size_t size)
return -1;
}
}
}
return written;
return _len;
}
static bool alsa_qsa_stop(void *data)
@ -300,7 +299,7 @@ static bool alsa_qsa_start(void *data, bool is_shutdown)
if (ret < 0)
{
RARCH_ERR("[ALSA QSA]: Failed to unpause: %s.\n",
RARCH_ERR("[ALSA QSA] Failed to unpause: %s.\n",
snd_strerror(ret));
return false;
}
@ -313,13 +312,12 @@ static bool alsa_qsa_start(void *data, bool is_shutdown)
static void alsa_qsa_set_nonblock_state(void *data, bool state)
{
int err;
alsa_qsa_t *alsa = (alsa_qsa_t*)data;
int err;
if((err = snd_pcm_nonblock_mode(alsa->pcm, state)) < 0)
if ((err = snd_pcm_nonblock_mode(alsa->pcm, state)) < 0)
{
RARCH_ERR("Can't set blocking mode to %d: %s\n", state,
RARCH_ERR("[ALSA QSA] Can't set blocking mode to %d: %s.\n", state,
snd_strerror(err));
return;
}

View File

@ -1,6 +1,7 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2012-2015 - Michael Lelli
* Copyright (C) 2023-2025 - Jesse Talavera-Greenberg
*
* 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-
@ -15,22 +16,21 @@
*/
#include <stdlib.h>
#include <lists/string_list.h>
#include <boolean.h>
#include <alsa/asoundlib.h>
#include <alsa/pcm.h>
#include <rthreads/rthreads.h>
#include <queues/fifo_queue.h>
#include <string/stdstring.h>
#include <asm-generic/errno.h>
#include "../audio_driver.h"
#include "../common/alsa.h" /* For some common functions/types */
#include "../../verbosity.h"
#define TRY_ALSA(x) if (x < 0) \
goto error;
typedef struct alsa_thread
typedef struct alsa_thread_info
{
snd_pcm_t *pcm;
fifo_buffer_t *buffer;
@ -38,50 +38,157 @@ typedef struct alsa_thread
slock_t *fifo_lock;
scond_t *cond;
slock_t *cond_lock;
size_t buffer_size;
size_t period_size;
snd_pcm_uframes_t period_frames;
bool nonblock;
bool is_paused;
bool has_float;
alsa_stream_info_t stream_info;
volatile bool thread_dead;
} alsa_thread_t;
} alsa_thread_info_t;
static void alsa_worker_thread(void *data)
static void alsa_thread_free_info_members(alsa_thread_info_t *info)
{
alsa_thread_t *alsa = (alsa_thread_t*)data;
uint8_t *buf = (uint8_t *)calloc(1, alsa->period_size);
if (!buf)
if (info)
{
RARCH_ERR("failed to allocate audio buffer");
if (info->worker_thread)
{
slock_lock(info->cond_lock);
info->thread_dead = true;
slock_unlock(info->cond_lock);
sthread_join(info->worker_thread);
}
if (info->buffer)
fifo_free(info->buffer);
if (info->cond)
scond_free(info->cond);
if (info->fifo_lock)
slock_free(info->fifo_lock);
if (info->cond_lock)
slock_free(info->cond_lock);
if (info->pcm)
alsa_free_pcm(info->pcm);
}
/* Do NOT free() info itself; it's embedded within another struct
* that will be freed. */
}
#ifdef HAVE_MICROPHONE
#include "../microphone_driver.h"
typedef struct alsa_thread_microphone_handle
{
alsa_thread_info_t info;
} alsa_thread_microphone_handle_t;
typedef struct alsa_thread_microphone
{
bool nonblock;
} alsa_thread_microphone_t;
static void *alsa_thread_microphone_init(void)
{
alsa_thread_microphone_t *alsa = (alsa_thread_microphone_t*)calloc(1, sizeof(alsa_thread_microphone_t));
if (!alsa)
{
RARCH_ERR("[ALSA] Failed to allocate driver context.\n");
return NULL;
}
RARCH_LOG("[ALSA] Using ALSA version %s\n", snd_asoundlib_version());
return alsa;
}
/* Forward declaration */
static void alsa_thread_microphone_close_mic(void *driver_context, void *mic_context);
static void alsa_thread_microphone_free(void *driver_context)
{
alsa_thread_microphone_t *alsa = (alsa_thread_microphone_t*)driver_context;
if (alsa)
free(alsa);
}
/** @see alsa_thread_read_microphone() */
static void alsa_microphone_worker_thread(void *mic_context)
{
alsa_thread_microphone_handle_t *mic = (alsa_thread_microphone_handle_t*)mic_context;
uint8_t *buf = NULL;
uintptr_t thread_id = sthread_get_current_thread_id();
if (!(buf = (uint8_t *)calloc(1, mic->info.stream_info.period_size)))
{
RARCH_ERR("[ALSA] [capture thread %p] Failed to allocate audio buffer.\n", thread_id);
goto end;
}
while (!alsa->thread_dead)
RARCH_DBG("[ALSA] [capture thread %p] Beginning microphone worker thread.\n", thread_id);
RARCH_DBG("[ALSA] [capture thread %p] Microphone \"%s\" is in state %s.\n",
thread_id,
snd_pcm_name(mic->info.pcm),
snd_pcm_state_name(snd_pcm_state(mic->info.pcm)));
/* Until we're told to stop... */
while (!mic->info.thread_dead)
{
size_t avail;
size_t fifo_size;
snd_pcm_sframes_t frames;
slock_lock(alsa->fifo_lock);
avail = FIFO_READ_AVAIL(alsa->buffer);
fifo_size = MIN(alsa->period_size, avail);
fifo_read(alsa->buffer, buf, fifo_size);
scond_signal(alsa->cond);
slock_unlock(alsa->fifo_lock);
int errnum = 0;
/* Lock the incoming sample queue (the main thread may block) */
slock_lock(mic->info.fifo_lock);
/* Fill the incoming sample queue with whatever we recently read */
avail = FIFO_WRITE_AVAIL(mic->info.buffer);
fifo_size = MIN(mic->info.stream_info.period_size, avail);
fifo_write(mic->info.buffer, buf, fifo_size);
/* Tell the main thread that it's okay to query the mic again */
scond_signal(mic->info.cond);
/* Unlock the incoming sample queue (the main thread may resume) */
slock_unlock(mic->info.fifo_lock);
/* If underrun, fill rest with silence. */
memset(buf + fifo_size, 0, alsa->period_size - fifo_size);
memset(buf + fifo_size, 0, mic->info.stream_info.period_size - fifo_size);
frames = snd_pcm_writei(alsa->pcm, buf, alsa->period_frames);
errnum = snd_pcm_wait(mic->info.pcm, 33);
if (frames == -EPIPE || frames == -EINTR ||
frames == -ESTRPIPE)
if (errnum == 0)
{
if (snd_pcm_recover(alsa->pcm, frames, 1) < 0)
RARCH_DBG("[ALSA] [capture thread %p] Timeout after 33ms waiting for input.\n", thread_id);
continue;
}
else if (errnum == -EPIPE || errnum == -ESTRPIPE || errnum == -EINTR)
{
RARCH_WARN("[ALSA] [capture thread %p] Wait error: %s.\n",
thread_id,
snd_strerror(errnum));
if ((errnum = snd_pcm_recover(mic->info.pcm, errnum, false)) < 0)
{
RARCH_ERR("[ALSA]: (#2) Failed to recover from error (%s)\n",
snd_strerror(frames));
RARCH_ERR("[ALSA] [capture thread %p] Failed to recover from prior wait error: %s.\n",
thread_id,
snd_strerror(errnum));
break;
}
continue;
}
frames = snd_pcm_readi(mic->info.pcm, buf, mic->info.stream_info.period_frames);
if (frames == -EPIPE || frames == -EINTR || frames == -ESTRPIPE)
{
RARCH_WARN("[ALSA] [capture thread %p] Read error: %s.\n",
thread_id,
snd_strerror(frames));
if ((errnum = snd_pcm_recover(mic->info.pcm, frames, false)) < 0)
{
RARCH_ERR("[ALSA] [capture thread %p] Failed to recover from prior read error: %s.\n",
thread_id,
snd_strerror(errnum));
break;
}
@ -89,36 +196,316 @@ static void alsa_worker_thread(void *data)
}
else if (frames < 0)
{
RARCH_ERR("[ALSA]: Unknown error occurred (%s).\n",
snd_strerror(frames));
RARCH_ERR("[ALSA] [capture thread %p] Read error: %s.\n",
thread_id,
snd_strerror(frames));
break;
}
}
end:
slock_lock(alsa->cond_lock);
alsa->thread_dead = true;
scond_signal(alsa->cond);
slock_unlock(alsa->cond_lock);
slock_lock(mic->info.cond_lock);
mic->info.thread_dead = true;
scond_signal(mic->info.cond);
slock_unlock(mic->info.cond_lock);
free(buf);
RARCH_DBG("[ALSA] [capture thread %p] Ending microphone worker thread.\n", thread_id);
}
static int alsa_thread_microphone_read(void *driver_context, void *mic_context, void *s, size_t len)
{
snd_pcm_state_t state;
size_t _len = 0;
alsa_thread_microphone_t *alsa = (alsa_thread_microphone_t*)driver_context;
alsa_thread_microphone_handle_t *mic = (alsa_thread_microphone_handle_t*)mic_context;
if (!alsa || !mic || !s) /* If any of the parameters were invalid... */
return -1;
if (mic->info.thread_dead) /* If the mic thread is shutting down... */
return -1;
state = snd_pcm_state(mic->info.pcm);
if (state != SND_PCM_STATE_RUNNING)
{
int errnum;
RARCH_WARN("[ALSA] Expected microphone \"%s\" to be in state RUNNING, was in state %s.\n",
snd_pcm_name(mic->info.pcm), snd_pcm_state_name(state));
errnum = snd_pcm_start(mic->info.pcm);
if (errnum < 0)
{
RARCH_ERR("[ALSA] Failed to start microphone \"%s\": %s.\n",
snd_pcm_name(mic->info.pcm), snd_strerror(errnum));
return -1;
}
}
/* If driver interactions shouldn't block... */
if (alsa->nonblock)
{
size_t avail;
/* "Hey, I'm gonna borrow the queue." */
slock_lock(mic->info.fifo_lock);
avail = FIFO_READ_AVAIL(mic->info.buffer);
_len = MIN(avail, len);
/* "It's okay if you don't have any new samples, I'll just check in on you later." */
fifo_read(mic->info.buffer, s, _len);
/* "Here, take this queue back." */
slock_unlock(mic->info.fifo_lock);
}
else
{
/* Until we've read all requested samples (or we're told to stop)... */
while (_len < len && !mic->info.thread_dead)
{
size_t avail;
/* "Hey, I'm gonna borrow the queue." */
slock_lock(mic->info.fifo_lock);
avail = FIFO_READ_AVAIL(mic->info.buffer);
if (avail == 0)
{ /* "Oh, wait, it's empty." */
/* "Here, take it back..." */
slock_unlock(mic->info.fifo_lock);
/* "...I'll just wait right here." */
slock_lock(mic->info.cond_lock);
/* "Unless we're closing up shop..." */
if (!mic->info.thread_dead)
/* "...let me know when you've produced some samples." */
scond_wait(mic->info.cond, mic->info.cond_lock);
/* "Oh, you're ready? Okay, I'm gonna continue." */
slock_unlock(mic->info.cond_lock);
}
else
{
size_t read_amt = MIN(len - _len, avail);
/* "I'll just go ahead and consume all these samples..."
* (As many as will fit in s, or as many as are available.) */
fifo_read(mic->info.buffer,s + _len, read_amt);
/* "I'm done, you can take the queue back now." */
slock_unlock(mic->info.fifo_lock);
_len += read_amt;
}
/* "I'll be right back..." */
}
}
return _len;
}
static bool alsa_thread_microphone_mic_alive(const void *driver_context, const void *mic_context);
static void *alsa_thread_microphone_open_mic(void *driver_context,
const char *device, unsigned rate, unsigned latency, unsigned *new_rate)
{
alsa_thread_microphone_t *alsa = (alsa_thread_microphone_t*)driver_context;
alsa_thread_microphone_handle_t *mic = NULL;
if (!alsa) /* If we weren't given a valid ALSA context... */
return NULL;
/* If the microphone context couldn't be allocated... */
if (!(mic = calloc(1, sizeof(alsa_thread_microphone_handle_t))))
{
RARCH_ERR("[ALSA] Failed to allocate microphone context.\n");
return NULL;
}
if (alsa_init_pcm(&mic->info.pcm, device, SND_PCM_STREAM_CAPTURE, rate, latency,
1, &mic->info.stream_info, new_rate, 0) < 0)
goto error;
mic->info.fifo_lock = slock_new();
mic->info.cond_lock = slock_new();
mic->info.cond = scond_new();
mic->info.buffer = fifo_new(mic->info.stream_info.buffer_size);
if (!mic->info.fifo_lock || !mic->info.cond_lock || !mic->info.cond || !mic->info.buffer || !mic->info.pcm)
goto error;
mic->info.worker_thread = sthread_create(alsa_microphone_worker_thread, mic);
if (!mic->info.worker_thread)
{
RARCH_ERR("[ALSA] Failed to initialize microphone worker thread.\n");
goto error;
}
RARCH_DBG("[ALSA] Initialized microphone worker thread.\n");
return mic;
error:
RARCH_ERR("[ALSA] Failed to initialize microphone.\n");
if (mic)
{
if (mic->info.pcm)
snd_pcm_close(mic->info.pcm);
alsa_thread_microphone_close_mic(alsa, mic);
}
return NULL;
}
static void alsa_thread_microphone_close_mic(void *driver_context, void *mic_context)
{
alsa_thread_microphone_handle_t *mic = (alsa_thread_microphone_handle_t*)mic_context;
if (mic)
{
alsa_thread_free_info_members(&mic->info);
free(mic);
}
}
static bool alsa_thread_microphone_mic_alive(const void *driver_context, const void *mic_context)
{
alsa_thread_microphone_handle_t *mic = (alsa_thread_microphone_handle_t *)mic_context;
if (!mic)
return false;
return snd_pcm_state(mic->info.pcm) == SND_PCM_STATE_RUNNING;
}
static void alsa_thread_microphone_set_nonblock_state(void *driver_context, bool state)
{
alsa_thread_microphone_t *alsa = (alsa_thread_microphone_t*)driver_context;
alsa->nonblock = state;
}
static struct string_list *alsa_thread_microphone_device_list_new(const void *data)
{
return alsa_device_list_type_new("Input");
}
static void alsa_thread_microphone_device_list_free(const void *driver_context, struct string_list *devices)
{
string_list_free(devices);
/* Does nothing if devices is NULL */
}
static bool alsa_thread_microphone_start_mic(void *driver_context, void *mic_context)
{
alsa_thread_microphone_handle_t *mic = (alsa_thread_microphone_handle_t*)mic_context;
if (!mic)
return false;
return alsa_start_pcm(mic->info.pcm);
}
static bool alsa_thread_microphone_stop_mic(void *driver_context, void *mic_context)
{
alsa_thread_microphone_handle_t *mic = (alsa_thread_microphone_handle_t*)mic_context;
if (!mic)
return false;
return alsa_stop_pcm(mic->info.pcm);
}
static bool alsa_thread_microphone_mic_use_float(const void *driver_context, const void *mic_context)
{
alsa_thread_microphone_handle_t *mic = (alsa_thread_microphone_handle_t*)mic_context;
return mic->info.stream_info.has_float;
}
microphone_driver_t microphone_alsathread = {
alsa_thread_microphone_init,
alsa_thread_microphone_free,
alsa_thread_microphone_read,
alsa_thread_microphone_set_nonblock_state,
"alsathread",
alsa_thread_microphone_device_list_new,
alsa_thread_microphone_device_list_free,
alsa_thread_microphone_open_mic,
alsa_thread_microphone_close_mic,
alsa_thread_microphone_mic_alive,
alsa_thread_microphone_start_mic,
alsa_thread_microphone_stop_mic,
alsa_thread_microphone_mic_use_float
};
#endif
typedef struct alsa_thread
{
alsa_thread_info_t info;
bool nonblock;
bool is_paused;
} alsa_thread_t;
static void alsa_worker_thread(void *data)
{
alsa_thread_t *alsa = (alsa_thread_t*)data;
uint8_t *buf = (uint8_t *)calloc(1, alsa->info.stream_info.period_size);
uintptr_t thread_id = sthread_get_current_thread_id();
if (!buf)
{
RARCH_ERR("[ALSA] [playback thread %u] Failed to allocate audio buffer.\n", thread_id);
goto end;
}
RARCH_DBG("[ALSA] [playback thread %p] Beginning playback worker thread.\n", thread_id);
while (!alsa->info.thread_dead)
{
size_t avail;
size_t fifo_size;
snd_pcm_sframes_t frames;
slock_lock(alsa->info.fifo_lock);
avail = FIFO_READ_AVAIL(alsa->info.buffer);
fifo_size = MIN(alsa->info.stream_info.period_size, avail);
fifo_read(alsa->info.buffer, buf, fifo_size);
scond_signal(alsa->info.cond);
slock_unlock(alsa->info.fifo_lock);
/* If underrun, fill rest with silence. */
memset(buf + fifo_size, 0, alsa->info.stream_info.period_size - fifo_size);
frames = snd_pcm_writei(alsa->info.pcm, buf, alsa->info.stream_info.period_frames);
if ( frames == -EPIPE
|| frames == -EINTR
|| frames == -ESTRPIPE)
{
if (snd_pcm_recover(alsa->info.pcm, frames, false) < 0)
{
RARCH_ERR("[ALSA] [playback thread %u] Failed to recover from error: %s.\n",
thread_id,
snd_strerror(frames));
break;
}
continue;
}
else if (frames < 0)
{
RARCH_ERR("[ALSA] [playback thread %u] Error writing audio to device: %s.\n",
thread_id,
snd_strerror(frames));
break;
}
}
end:
slock_lock(alsa->info.cond_lock);
alsa->info.thread_dead = true;
scond_signal(alsa->info.cond);
slock_unlock(alsa->info.cond_lock);
free(buf);
RARCH_DBG("[ALSA] [playback thread %p] Ending playback worker thread...\n", thread_id);
}
static bool alsa_thread_use_float(void *data)
{
alsa_thread_t *alsa = (alsa_thread_t*)data;
return alsa->has_float;
}
static bool alsathread_find_float_format(snd_pcm_t *pcm,
snd_pcm_hw_params_t *params)
{
if (snd_pcm_hw_params_test_format(pcm, params, SND_PCM_FORMAT_FLOAT) == 0)
{
RARCH_LOG("ALSA: Using floating point format.\n");
return true;
}
RARCH_LOG("ALSA: Using signed 16-bit format.\n");
return false;
return alsa->info.stream_info.has_float;
}
static void alsa_thread_free(void *data)
@ -127,26 +514,7 @@ static void alsa_thread_free(void *data)
if (alsa)
{
if (alsa->worker_thread)
{
slock_lock(alsa->cond_lock);
alsa->thread_dead = true;
slock_unlock(alsa->cond_lock);
sthread_join(alsa->worker_thread);
}
if (alsa->buffer)
fifo_free(alsa->buffer);
if (alsa->cond)
scond_free(alsa->cond);
if (alsa->fifo_lock)
slock_free(alsa->fifo_lock);
if (alsa->cond_lock)
slock_free(alsa->cond_lock);
if (alsa->pcm)
{
snd_pcm_drop(alsa->pcm);
snd_pcm_close(alsa->pcm);
}
alsa_thread_free_info_members(&alsa->info);
free(alsa);
}
}
@ -156,141 +524,90 @@ static void *alsa_thread_init(const char *device,
unsigned block_frames,
unsigned *new_rate)
{
snd_pcm_uframes_t buffer_size;
snd_pcm_format_t format;
snd_pcm_hw_params_t *params = NULL;
snd_pcm_sw_params_t *sw_params = NULL;
const char *alsa_dev = device ? device : "default";
unsigned latency_usec = latency * 1000 / 2;
unsigned channels = 2;
unsigned periods = 4;
alsa_thread_t *alsa = (alsa_thread_t*)
calloc(1, sizeof(alsa_thread_t));
alsa_thread_t *alsa = (alsa_thread_t*)calloc(1, sizeof(alsa_thread_t));
if (!alsa)
{
RARCH_ERR("[ALSA] Failed to allocate driver context.\n");
return NULL;
}
TRY_ALSA(snd_pcm_open(&alsa->pcm, alsa_dev, SND_PCM_STREAM_PLAYBACK, 0));
RARCH_LOG("[ALSA] Using ALSA version %s.\n", snd_asoundlib_version());
TRY_ALSA(snd_pcm_hw_params_malloc(&params));
TRY_ALSA(snd_pcm_hw_params_any(alsa->pcm, params));
alsa->has_float = alsathread_find_float_format(alsa->pcm, params);
format = alsa->has_float ? SND_PCM_FORMAT_FLOAT : SND_PCM_FORMAT_S16;
TRY_ALSA(snd_pcm_hw_params_set_access(
alsa->pcm, params, SND_PCM_ACCESS_RW_INTERLEAVED));
TRY_ALSA(snd_pcm_hw_params_set_format(alsa->pcm, params, format));
TRY_ALSA(snd_pcm_hw_params_set_channels(alsa->pcm, params, channels));
TRY_ALSA(snd_pcm_hw_params_set_rate(alsa->pcm, params, rate, 0));
TRY_ALSA(snd_pcm_hw_params_set_buffer_time_near(
alsa->pcm, params, &latency_usec, NULL));
TRY_ALSA(snd_pcm_hw_params_set_periods_near(
alsa->pcm, params, &periods, NULL));
TRY_ALSA(snd_pcm_hw_params(alsa->pcm, params));
/* Shouldn't have to bother with this,
* but some drivers are apparently broken. */
if (snd_pcm_hw_params_get_period_size(params, &alsa->period_frames, NULL))
snd_pcm_hw_params_get_period_size_min(
params, &alsa->period_frames, NULL);
RARCH_LOG("ALSA: Period size: %d frames\n", (int)alsa->period_frames);
if (snd_pcm_hw_params_get_buffer_size(params, &buffer_size))
snd_pcm_hw_params_get_buffer_size_max(params, &buffer_size);
RARCH_LOG("ALSA: Buffer size: %d frames\n", (int)buffer_size);
alsa->buffer_size = snd_pcm_frames_to_bytes(alsa->pcm, buffer_size);
alsa->period_size = snd_pcm_frames_to_bytes(alsa->pcm, alsa->period_frames);
TRY_ALSA(snd_pcm_sw_params_malloc(&sw_params));
TRY_ALSA(snd_pcm_sw_params_current(alsa->pcm, sw_params));
TRY_ALSA(snd_pcm_sw_params_set_start_threshold(
alsa->pcm, sw_params, buffer_size / 2));
TRY_ALSA(snd_pcm_sw_params(alsa->pcm, sw_params));
snd_pcm_hw_params_free(params);
snd_pcm_sw_params_free(sw_params);
alsa->fifo_lock = slock_new();
alsa->cond_lock = slock_new();
alsa->cond = scond_new();
alsa->buffer = fifo_new(alsa->buffer_size);
if (!alsa->fifo_lock || !alsa->cond_lock || !alsa->cond || !alsa->buffer)
if (alsa_init_pcm(&alsa->info.pcm, device, SND_PCM_STREAM_PLAYBACK, rate,
latency, 2, &alsa->info.stream_info, new_rate, 0) < 0)
goto error;
alsa->worker_thread = sthread_create(alsa_worker_thread, alsa);
if (!alsa->worker_thread)
alsa->info.fifo_lock = slock_new();
alsa->info.cond_lock = slock_new();
alsa->info.cond = scond_new();
alsa->info.buffer = fifo_new(alsa->info.stream_info.buffer_size);
if (!alsa->info.fifo_lock || !alsa->info.cond_lock || !alsa->info.cond || !alsa->info.buffer)
goto error;
alsa->info.worker_thread = sthread_create(alsa_worker_thread, alsa);
if (!alsa->info.worker_thread)
{
RARCH_ERR("error initializing worker thread");
RARCH_ERR("[ALSA] Failed to initialize worker thread.\n");
goto error;
}
return alsa;
error:
RARCH_ERR("ALSA: Failed to initialize...\n");
if (params)
snd_pcm_hw_params_free(params);
if (sw_params)
snd_pcm_sw_params_free(sw_params);
RARCH_ERR("[ALSA] Failed to initialize.\n");
alsa_thread_free(alsa);
return NULL;
}
static ssize_t alsa_thread_write(void *data, const void *buf, size_t size)
static ssize_t alsa_thread_write(void *data, const void *s, size_t len)
{
ssize_t _len = 0;
alsa_thread_t *alsa = (alsa_thread_t*)data;
if (alsa->thread_dead)
if (alsa->info.thread_dead)
return -1;
if (alsa->nonblock)
{
size_t avail;
size_t write_amt;
slock_lock(alsa->fifo_lock);
avail = FIFO_WRITE_AVAIL(alsa->buffer);
write_amt = MIN(avail, size);
slock_lock(alsa->info.fifo_lock);
avail = FIFO_WRITE_AVAIL(alsa->info.buffer);
_len = MIN(avail, len);
fifo_write(alsa->buffer, buf, write_amt);
slock_unlock(alsa->fifo_lock);
return write_amt;
fifo_write(alsa->info.buffer, s, _len);
slock_unlock(alsa->info.fifo_lock);
}
else
{
size_t written = 0;
while (written < size && !alsa->thread_dead)
while (_len < (ssize_t)len && !alsa->info.thread_dead)
{
size_t avail;
slock_lock(alsa->fifo_lock);
avail = FIFO_WRITE_AVAIL(alsa->buffer);
slock_lock(alsa->info.fifo_lock);
avail = FIFO_WRITE_AVAIL(alsa->info.buffer);
if (avail == 0)
{
slock_unlock(alsa->fifo_lock);
slock_lock(alsa->cond_lock);
if (!alsa->thread_dead)
scond_wait(alsa->cond, alsa->cond_lock);
slock_unlock(alsa->cond_lock);
slock_unlock(alsa->info.fifo_lock);
slock_lock(alsa->info.cond_lock);
if (!alsa->info.thread_dead)
scond_wait(alsa->info.cond, alsa->info.cond_lock);
slock_unlock(alsa->info.cond_lock);
}
else
{
size_t write_amt = MIN(size - written, avail);
fifo_write(alsa->buffer,
(const char*)buf + written, write_amt);
slock_unlock(alsa->fifo_lock);
written += write_amt;
size_t write_amt = MIN(len - _len, avail);
fifo_write(alsa->info.buffer,
(const char*)s + _len, write_amt);
slock_unlock(alsa->info.fifo_lock);
_len += write_amt;
}
}
return written;
}
return _len;
}
static bool alsa_thread_alive(void *data)
@ -304,7 +621,6 @@ static bool alsa_thread_alive(void *data)
static bool alsa_thread_stop(void *data)
{
alsa_thread_t *alsa = (alsa_thread_t*)data;
if (alsa)
alsa->is_paused = true;
return true;
@ -327,79 +643,20 @@ static bool alsa_thread_start(void *data, bool is_shutdown)
static size_t alsa_thread_write_avail(void *data)
{
size_t _len;
alsa_thread_t *alsa = (alsa_thread_t*)data;
size_t val;
if (alsa->thread_dead)
if (alsa->info.thread_dead)
return 0;
slock_lock(alsa->fifo_lock);
val = FIFO_WRITE_AVAIL(alsa->buffer);
slock_unlock(alsa->fifo_lock);
return val;
slock_lock(alsa->info.fifo_lock);
_len = FIFO_WRITE_AVAIL(alsa->info.buffer);
slock_unlock(alsa->info.fifo_lock);
return _len;
}
static size_t alsa_thread_buffer_size(void *data)
{
alsa_thread_t *alsa = (alsa_thread_t*)data;
return alsa->buffer_size;
}
static void *alsa_thread_device_list_new(void *data)
{
void **hints, **n;
union string_list_elem_attr attr;
struct string_list *s = string_list_new();
if (!s)
return NULL;
attr.i = 0;
if (snd_device_name_hint(-1, "pcm", &hints) != 0)
goto error;
n = hints;
while (*n)
{
char *name = snd_device_name_get_hint(*n, "NAME");
char *io = snd_device_name_get_hint(*n, "IOID");
char *desc = snd_device_name_get_hint(*n, "DESC");
/* description of device IOID - input / output identifcation
* ("Input" or "Output"), NULL means both) */
if (!io || string_is_equal(io,"Output"))
string_list_append(s, name, attr);
if (name)
free(name);
if (io)
free(io);
if (desc)
free(desc);
n++;
}
/* free hint buffer too */
snd_device_name_free_hint(hints);
return s;
error:
string_list_free(s);
return NULL;
}
static void alsa_thread_device_list_free(void *data, void *array_list_data)
{
struct string_list *s = (struct string_list*)array_list_data;
if (!s)
return;
string_list_free(s);
return alsa->info.stream_info.buffer_size;
}
audio_driver_t audio_alsathread = {
@ -412,8 +669,8 @@ audio_driver_t audio_alsathread = {
alsa_thread_free,
alsa_thread_use_float,
"alsathread",
alsa_thread_device_list_new,
alsa_thread_device_list_free,
alsa_device_list_new, /* Reusing these functions from alsa.c */
alsa_device_list_free, /* because they don't use the driver context */
alsa_thread_write_avail,
alsa_thread_buffer_size,
alsa_thread_buffer_size
};

View File

@ -33,12 +33,11 @@
#define DEFAULT_DEV "/dev/audio"
static void *audioio_init(const char *device, unsigned rate, unsigned latency,
unsigned block_frames,
unsigned *new_out_rate)
unsigned block_frames, unsigned *new_out_rate)
{
struct audio_info info;
const char *audiodev = device ? device : DEFAULT_DEV;
int *fd = (int*)calloc(1, sizeof(int));
const char *audiodev = device ? device : DEFAULT_DEV;
int *fd = (int*)calloc(1, sizeof(int));
if (!fd)
return NULL;
@ -46,17 +45,17 @@ static void *audioio_init(const char *device, unsigned rate, unsigned latency,
AUDIO_INITINFO(&info);
#ifdef AUMODE_PLAY_ALL
info.mode = AUMODE_PLAY_ALL;
info.mode = AUMODE_PLAY_ALL;
#elif defined(AUMODE_PLAY)
info.mode = AUMODE_PLAY;
info.mode = AUMODE_PLAY;
#endif
info.play.sample_rate = rate;
info.play.channels = 2;
info.play.precision = 16;
info.play.channels = 2;
info.play.precision = 16;
#ifdef AUDIO_ENCODING_SLINEAR
info.play.encoding = AUDIO_ENCODING_SLINEAR;
info.play.encoding = AUDIO_ENCODING_SLINEAR;
#else
info.play.encoding = AUDIO_ENCODING_LINEAR;
info.play.encoding = AUDIO_ENCODING_LINEAR;
#endif
if ((*fd = open(audiodev, O_WRONLY)) < 0)
@ -82,15 +81,15 @@ error:
return NULL;
}
static ssize_t audioio_write(void *data, const void *buf, size_t size)
static ssize_t audioio_write(void *data, const void *s, size_t len)
{
ssize_t ret;
ssize_t _len;
int *fd = (int*)data;
if (size == 0)
if (len == 0)
return 0;
if ((ret = write(*fd, buf, size)) < 0)
if ((_len = write(*fd, s, len)) < 0)
{
if (errno == EAGAIN && (fcntl(*fd, F_GETFL) & O_NONBLOCK))
return 0;
@ -98,7 +97,7 @@ static ssize_t audioio_write(void *data, const void *buf, size_t size)
return -1;
}
return ret;
return _len;
}
static bool audioio_stop(void *data)
@ -158,7 +157,7 @@ static void audioio_set_nonblock_state(void *data, bool state)
else
rc = fcntl(*fd, F_SETFL, fcntl(*fd, F_GETFL) & (~O_NONBLOCK));
if (rc != 0)
RARCH_WARN("Could not set nonblocking on audio file descriptor. Will not be able to fast-forward.\n");
RARCH_WARN("[AudioIO] Could not set nonblocking on audio file descriptor. Will not be able to fast-forward.\n");
}
static void audioio_free(void *data)
@ -189,11 +188,8 @@ static size_t audioio_write_avail(void *data)
return audioio_buffer_size(data);
}
static bool audioio_use_float(void *data)
{
(void)data;
return false;
}
/* TODO/FIXME - implement? */
static bool audioio_use_float(void *data) { return false; }
audio_driver_t audio_audioio = {
audioio_init,

View File

@ -0,0 +1,524 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2025 - OlyB
*
* 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 <http://www.gnu.org/licenses/>.
*/
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <boolean.h>
#include <emscripten/wasm_worker.h>
#include <emscripten/webaudio.h>
#include <emscripten/atomic.h>
#include "../../frontend/drivers/platform_emscripten.h"
#include <queues/fifo_queue.h>
#include <retro_timers.h>
#include "../audio_driver.h"
#include "../../verbosity.h"
#define WORKLET_STACK_SIZE 4096
/* additional buffer size (for EMSCRIPTEN_AUDIO_EXTERNAL_WRITE_BLOCK only) */
/* if this is too small, frames may be dropped and content could run too fast. */
/* very large slow-motion rate values may be too large for this; avoid anything higher than 6 or 7. */
#define EXTERNAL_BLOCK_BUFFER_MS 128
typedef struct audioworklet_data
{
uint8_t *worklet_stack;
uint32_t write_avail_bytes; /* atomic */
size_t visible_buffer_size;
#ifdef EMSCRIPTEN_AUDIO_EXTERNAL_WRITE_BLOCK
size_t write_avail_diff;
#endif
#ifdef PROXY_TO_PTHREAD
emscripten_lock_t trywrite_lock;
emscripten_condvar_t trywrite_cond;
#endif
emscripten_lock_t buffer_lock;
EMSCRIPTEN_WEBAUDIO_T context;
float *tmpbuf;
fifo_buffer_t *buffer;
unsigned rate;
unsigned latency;
bool nonblock;
bool initing;
#ifdef EMSCRIPTEN_AUDIO_FAKE_BLOCK
bool block_requested;
#endif
volatile bool running; /* currently only used by RetroArch */
volatile bool driver_running; /* whether the driver is running (buffer allocated) */
volatile bool context_running; /* whether the AudioContext is running */
volatile bool init_done;
volatile bool init_error;
} audioworklet_data_t;
/* We only ever want to create 1 worklet, so we need to keep its data even if the driver is inactive. */
static audioworklet_data_t *audioworklet_static_data = NULL;
/* Note that we cannot allocate any heap in here. */
static bool audioworklet_process_cb(int numInputs, const AudioSampleFrame *inputs,
int numOutputs, AudioSampleFrame *outputs,
int numParams, const AudioParamFrame *params,
void *data)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
size_t avail;
size_t max_read;
unsigned writing_frames = 0;
int i;
/* TODO: do we need to pay attention to audioworklet->running here too? */
if (audioworklet->driver_running)
{
/* can't use Atomics.wait in AudioWorklet */
/* busyspin is safe as of emscripten 4.0.4 */
if (!emscripten_lock_busyspin_wait_acquire(&audioworklet->buffer_lock, 2.5))
{
printf("[WARN] [AudioWorklet] Worklet: could not acquire lock\n");
return true;
}
avail = FIFO_READ_AVAIL(audioworklet->buffer);
max_read = MIN(avail, outputs[0].samplesPerChannel * 2 * sizeof(float));
if (max_read)
{
fifo_read(audioworklet->buffer, audioworklet->tmpbuf, max_read);
emscripten_atomic_add_u32(&audioworklet->write_avail_bytes, max_read);
}
emscripten_lock_release(&audioworklet->buffer_lock);
#ifdef PROXY_TO_PTHREAD
emscripten_condvar_signal(&audioworklet->trywrite_cond, 1);
#endif
writing_frames = max_read / 2 / sizeof(float);
for (i = 0; i < writing_frames; i++)
{
outputs[0].data[i] = audioworklet->tmpbuf[i * 2];
outputs[0].data[outputs[0].samplesPerChannel + i] = audioworklet->tmpbuf[i * 2 + 1];
}
}
if (writing_frames < outputs[0].samplesPerChannel)
{
int zero_frames = outputs[0].samplesPerChannel - writing_frames;
memset(outputs[0].data + writing_frames, 0, zero_frames * sizeof(float));
memset(outputs[0].data + writing_frames + outputs[0].samplesPerChannel, 0, zero_frames * sizeof(float));
}
return true;
}
static void audioworklet_processor_inited_cb(EMSCRIPTEN_WEBAUDIO_T context, bool success, void *data)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
int outputChannelCounts[1] = { 2 };
EmscriptenAudioWorkletNodeCreateOptions opts = { 0, 1, outputChannelCounts };
EMSCRIPTEN_AUDIO_WORKLET_NODE_T worklet_node;
if (!success)
{
RARCH_ERR("[AudioWorklet] Failed to init AudioWorkletProcessor.\n");
audioworklet->init_error = true;
audioworklet->init_done = true;
return;
}
worklet_node = emscripten_create_wasm_audio_worklet_node(context, "retroarch", &opts, audioworklet_process_cb, audioworklet);
emscripten_audio_node_connect(worklet_node, context, 0, 0);
audioworklet->init_done = true;
}
static void audioworklet_thread_inited_cb(EMSCRIPTEN_WEBAUDIO_T context, bool success, void *data)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
WebAudioWorkletProcessorCreateOptions opts = { "retroarch", 0 };
if (success)
emscripten_create_wasm_audio_worklet_processor_async(context, &opts,
audioworklet_processor_inited_cb, audioworklet);
else
{
RARCH_ERR("[AudioWorklet] Failed to init worklet thread! Is the worklet file in the right place?\n");
audioworklet->init_error = true;
audioworklet->init_done = true;
}
}
static void audioworklet_ctx_statechange_cb(void *data, bool state)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
audioworklet->context_running = state;
}
static void audioworklet_ctx_create(void *data)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
audioworklet->context = emscripten_create_audio_context(0);
audioworklet->tmpbuf = memalign(16, emscripten_audio_context_quantum_size(audioworklet->context) * 2 * sizeof(float));
audioworklet->rate = EM_ASM_INT({
return emscriptenGetAudioObject($0).sampleRate;
}, audioworklet->context);
audioworklet->context_running = EM_ASM_INT({
let ac = emscriptenGetAudioObject($0);
ac.addEventListener("statechange", function() {
getWasmTableEntry($2)($1, ac.state == "running");
});
return ac.state == "running";
}, audioworklet->context, audioworklet, audioworklet_ctx_statechange_cb);
emscripten_start_wasm_audio_worklet_thread_async(audioworklet->context,
audioworklet->worklet_stack, WORKLET_STACK_SIZE, audioworklet_thread_inited_cb, audioworklet);
}
static void audioworklet_alloc_buffer(void *data)
{
size_t buffer_size;
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
audioworklet->visible_buffer_size = (audioworklet->latency * audioworklet->rate * 2 * sizeof(float)) / 1000;
buffer_size = audioworklet->visible_buffer_size;
#ifdef EMSCRIPTEN_AUDIO_EXTERNAL_WRITE_BLOCK
audioworklet->write_avail_diff = (EXTERNAL_BLOCK_BUFFER_MS * audioworklet->rate * 2 * sizeof(float)) / 1000;
buffer_size += audioworklet->write_avail_diff;
#endif
audioworklet->buffer = fifo_new(buffer_size);
emscripten_atomic_store_u32(&audioworklet->write_avail_bytes, buffer_size);
RARCH_LOG("[AudioWorklet] Buffer size: %lu bytes.\n", audioworklet->visible_buffer_size);
}
static void audioworklet_init_error(void *data)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
RARCH_ERR("[AudioWorklet] Failed to initialize driver.\n");
free(audioworklet->worklet_stack);
free(audioworklet->tmpbuf);
free(audioworklet);
}
static bool audioworklet_resume_ctx(void *data)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
if (!audioworklet->context_running)
{
MAIN_THREAD_ASYNC_EM_ASM({
emscriptenGetAudioObject($0).resume();
}, audioworklet->context);
}
return audioworklet->context_running;
}
static void *audioworklet_init(const char *device, unsigned rate,
unsigned latency, unsigned block_frames, unsigned *new_rate)
{
audioworklet_data_t *audioworklet;
if (audioworklet_static_data)
{
if (audioworklet_static_data->driver_running || audioworklet_static_data->initing)
{
RARCH_ERR("[AudioWorklet] Tried to start already running driver.\n");
return NULL;
}
RARCH_LOG("[AudioWorklet] Reusing old context.\n");
audioworklet = audioworklet_static_data;
audioworklet->latency = latency;
*new_rate = audioworklet->rate;
RARCH_LOG("[AudioWorklet] Device rate: %d Hz.\n", *new_rate);
audioworklet_alloc_buffer(audioworklet);
audioworklet_resume_ctx(audioworklet);
audioworklet->driver_running = true;
return audioworklet;
}
audioworklet = (audioworklet_data_t*)calloc(1, sizeof(audioworklet_data_t));
if (!audioworklet)
return NULL;
audioworklet->worklet_stack = memalign(16, WORKLET_STACK_SIZE);
if (!audioworklet->worklet_stack)
return NULL;
audioworklet_static_data = audioworklet;
audioworklet->latency = latency;
platform_emscripten_run_on_browser_thread_sync(audioworklet_ctx_create, audioworklet);
*new_rate = audioworklet->rate;
RARCH_LOG("[AudioWorklet] Device rate: %d Hz.\n", *new_rate);
audioworklet->initing = true;
audioworklet_alloc_buffer(audioworklet);
emscripten_lock_init(&audioworklet->buffer_lock);
#ifdef PROXY_TO_PTHREAD
emscripten_lock_init(&audioworklet->trywrite_lock);
emscripten_condvar_init(&audioworklet->trywrite_cond);
#endif
#ifndef EMSCRIPTEN_AUDIO_EXTERNAL_BLOCK
/* TODO: can MIN_ASYNCIFY block here too? */
while (!audioworklet->init_done)
retro_sleep(1);
audioworklet->initing = false;
if (audioworklet->init_error)
{
audioworklet_init_error(audioworklet);
return NULL;
}
audioworklet->driver_running = true;
#elif defined(EMSCRIPTEN_AUDIO_FAKE_BLOCK)
audioworklet->block_requested = true;
platform_emscripten_enter_fake_block(1);
#endif
/* external block: will be handled later */
return audioworklet;
}
static ssize_t audioworklet_write(void *data, const void *s, size_t ss)
{
size_t avail;
size_t max_write;
size_t to_write_frames;
size_t to_write_bytes;
size_t _len = 0;
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
const float *samples = (const float*)s;
size_t num_frames = ss / 2 / sizeof(float);
/* too early! might happen with external blocking */
if (!audioworklet->driver_running)
return 0;
/* don't write audio if the context isn't running, just try to start it */
if (!audioworklet_resume_ctx(audioworklet))
return 0;
while (num_frames)
{
#ifdef PROXY_TO_PTHREAD
if (!emscripten_lock_wait_acquire(&audioworklet->buffer_lock, 2500000))
#else
if (!emscripten_lock_busyspin_wait_acquire(&audioworklet->buffer_lock, 2.5))
#endif
{
RARCH_WARN("[AudioWorklet] Main thread: could not acquire lock.\n");
break;
}
avail = FIFO_WRITE_AVAIL(audioworklet->buffer);
max_write = avail;
#ifdef EMSCRIPTEN_AUDIO_EXTERNAL_WRITE_BLOCK
/* make sure we don't write into the blocking buffer for nonblock */
if (audioworklet->nonblock)
{
if (max_write > audioworklet->write_avail_diff)
max_write -= audioworklet->write_avail_diff;
else
max_write = 0;
}
#endif
to_write_frames = MIN(num_frames, max_write / 2 / sizeof(float));
if (to_write_frames)
{
to_write_bytes = to_write_frames * 2 * sizeof(float);
avail -= to_write_bytes;
fifo_write(audioworklet->buffer, samples, to_write_bytes);
emscripten_atomic_store_u32(&audioworklet->write_avail_bytes, (uint32_t)avail);
num_frames -= to_write_frames;
samples += (to_write_frames * 2);
_len += to_write_frames;
}
emscripten_lock_release(&audioworklet->buffer_lock);
#ifdef EMSCRIPTEN_AUDIO_EXTERNAL_WRITE_BLOCK
#ifdef EMSCRIPTEN_AUDIO_FAKE_BLOCK
/* see if we're over the threshold to go to fake block */
if (avail < audioworklet->write_avail_diff)
{
audioworklet->block_requested = true;
platform_emscripten_enter_fake_block(1);
}
#endif
if (num_frames && !audioworklet->nonblock)
RARCH_WARN("[AudioWorklet] Dropping %lu frames.\n", num_frames);
break;
#endif
if (audioworklet->nonblock || !num_frames)
break;
#if defined(PROXY_TO_PTHREAD)
emscripten_condvar_wait(&audioworklet->trywrite_cond, &audioworklet->trywrite_lock, 3000000);
#elif defined(EMSCRIPTEN_FULL_ASYNCIFY)
retro_sleep(1);
#else /* equivalent to defined(EMSCRIPTEN_AUDIO_BUSYWAIT) */
while (emscripten_atomic_load_u32(&audioworklet->write_avail_bytes) < 2 * sizeof(float))
audioworklet_resume_ctx(audioworklet);
#endif
/* try resuming, on the off chance that the context was interrupted while blocking */
audioworklet_resume_ctx(audioworklet);
}
return _len;
}
#ifdef EMSCRIPTEN_AUDIO_EXTERNAL_BLOCK
/* returns true if fake block should continue */
bool audioworklet_external_block(void)
{
audioworklet_data_t *audioworklet = audioworklet_static_data;
if (audioworklet)
{
#ifdef EMSCRIPTEN_AUDIO_FAKE_BLOCK
if (!audioworklet->block_requested)
return false;
#endif
while (audioworklet->initing && !audioworklet->init_done)
#ifdef EMSCRIPTEN_AUDIO_ASYNC_BLOCK
retro_sleep(1);
#else
return true;
#endif
if (audioworklet->init_done && !audioworklet->driver_running)
{
audioworklet->initing = false;
if (audioworklet->init_error)
{
audioworklet_init_error(audioworklet);
abort();
return false;
}
audioworklet->driver_running = true;
}
#ifdef EMSCRIPTEN_AUDIO_EXTERNAL_WRITE_BLOCK
if (!audioworklet->driver_running)
return false;
while (emscripten_atomic_load_u32(&audioworklet->write_avail_bytes) < audioworklet->write_avail_diff)
{
audioworklet_resume_ctx(audioworklet);
#ifdef EMSCRIPTEN_AUDIO_ASYNC_BLOCK
retro_sleep(1);
#else
return true;
#endif
}
#endif
#ifdef EMSCRIPTEN_AUDIO_FAKE_BLOCK
audioworklet->block_requested = false;
platform_emscripten_exit_fake_block();
return true; /* return to RAF if needed */
#endif
}
return false;
}
#endif
static bool audioworklet_stop(void *data)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
audioworklet->running = false;
return true;
}
static bool audioworklet_start(void *data, bool is_shutdown)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
audioworklet->running = true;
return true;
}
static bool audioworklet_alive(void *data)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
return audioworklet->running;
}
static void audioworklet_set_nonblock_state(void *data, bool state)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
audioworklet->nonblock = state;
}
static void audioworklet_free(void *data)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
/* that's not good... this shouldn't happen? */
if (!audioworklet->driver_running)
{
RARCH_ERR("[AudioWorklet] Tried to free before done initing.\n");
return;
}
#ifdef PROXY_TO_PTHREAD
if (!emscripten_lock_wait_acquire(&audioworklet->buffer_lock, 10000000))
#else
if (!emscripten_lock_busyspin_wait_acquire(&audioworklet->buffer_lock, 10))
#endif
{
RARCH_ERR("[AudioWorklet] Main thread: could not acquire lock to free buffer.\n");
return;
}
audioworklet->driver_running = false;
fifo_free(audioworklet->buffer);
emscripten_lock_release(&audioworklet->buffer_lock);
MAIN_THREAD_ASYNC_EM_ASM({
emscriptenGetAudioObject($0).suspend();
}, audioworklet->context);
}
static size_t audioworklet_write_avail(void *data)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
#ifdef EMSCRIPTEN_AUDIO_EXTERNAL_WRITE_BLOCK
size_t avail = emscripten_atomic_load_u32(&audioworklet->write_avail_bytes);
if (avail > audioworklet->write_avail_diff)
return avail - audioworklet->write_avail_diff;
return 0;
#else
return emscripten_atomic_load_u32(&audioworklet->write_avail_bytes);
#endif
}
static size_t audioworklet_buffer_size(void *data)
{
audioworklet_data_t *audioworklet = (audioworklet_data_t*)data;
return audioworklet->visible_buffer_size;
}
static bool audioworklet_use_float(void *data) { return true; }
audio_driver_t audio_audioworklet = {
audioworklet_init,
audioworklet_write,
audioworklet_stop,
audioworklet_start,
audioworklet_alive,
audioworklet_set_nonblock_state,
audioworklet_free,
audioworklet_use_float,
"audioworklet",
NULL,
NULL,
audioworklet_write_avail,
audioworklet_buffer_size
};

View File

@ -31,9 +31,10 @@
#include <retro_endianness.h>
#include <string/stdstring.h>
#include <defines/cocoa_defines.h>
#include "../audio_driver.h"
#include "../../verbosity.h"
#include "defines/cocoa_defines.h"
typedef struct coreaudio
{
@ -51,10 +52,6 @@ typedef struct coreaudio
bool nonblock;
} coreaudio_t;
#if TARGET_OS_IOS
static bool g_interrupted;
#endif
static void coreaudio_free(void *data)
{
coreaudio_t *dev = (coreaudio_t*)data;
@ -81,7 +78,7 @@ static void coreaudio_free(void *data)
free(dev);
}
static OSStatus audio_write_cb(void *userdata,
static OSStatus coreaudio_audio_write_cb(void *userdata,
AudioUnitRenderActionFlags *action_flags,
const AudioTimeStamp *time_stamp, UInt32 bus_number,
UInt32 number_frames, AudioBufferList *io_data)
@ -105,39 +102,24 @@ static OSStatus audio_write_cb(void *userdata,
if (FIFO_READ_AVAIL(dev->buffer) < write_avail)
{
*action_flags = kAudioUnitRenderAction_OutputIsSilence;
/* Seems to be needed. */
memset(outbuf, 0, write_avail);
slock_unlock(dev->lock);
/* Technically possible to deadlock without. */
scond_signal(dev->cond);
return noErr;
}
fifo_read(dev->buffer, outbuf, write_avail);
else
fifo_read(dev->buffer, outbuf, write_avail);
slock_unlock(dev->lock);
scond_signal(dev->cond);
return noErr;
}
#if TARGET_OS_IPHONE
static void coreaudio_interrupt_listener(void *data, UInt32 interrupt_state)
#if !TARGET_OS_IPHONE
static void coreaudio_choose_output_device(coreaudio_t *dev, const char* device)
{
(void)data;
#if TARGET_OS_IOS
g_interrupted = (interrupt_state == kAudioSessionBeginInterruption);
#endif
}
#else
static void choose_output_device(coreaudio_t *dev, const char* device)
{
unsigned i;
UInt32 deviceCount;
int i;
UInt32 device_count;
AudioObjectPropertyAddress propaddr;
AudioDeviceID *devices = NULL;
UInt32 size = 0;
AudioDeviceID *devices = NULL;
UInt32 size = 0;
propaddr.mSelector = kAudioHardwarePropertyDevices;
#if HAS_MACOSX_10_12
@ -151,36 +133,35 @@ static void choose_output_device(coreaudio_t *dev, const char* device)
&propaddr, 0, 0, &size) != noErr)
return;
deviceCount = size / sizeof(AudioDeviceID);
devices = (AudioDeviceID*)malloc(size);
if (!devices || AudioObjectGetPropertyData(kAudioObjectSystemObject,
&propaddr, 0, 0, &size, devices) != noErr)
goto done;
device_count = size / sizeof(AudioDeviceID);
devices = (AudioDeviceID*)malloc(size);
if (devices && AudioObjectGetPropertyData(kAudioObjectSystemObject,
&propaddr, 0, 0, &size, devices) == noErr)
{
#if HAS_MACOSX_10_12
#else
propaddr.mScope = kAudioDevicePropertyScopeOutput;
propaddr.mScope = kAudioDevicePropertyScopeOutput;
#endif
propaddr.mSelector = kAudioDevicePropertyDeviceName;
propaddr.mSelector = kAudioDevicePropertyDeviceName;
for (i = 0; i < deviceCount; i ++)
{
char device_name[1024];
device_name[0] = 0;
size = 1024;
if (AudioObjectGetPropertyData(devices[i],
&propaddr, 0, 0, &size, device_name) == noErr
&& string_is_equal(device_name, device))
for (i = 0; i < (int)device_count; i ++)
{
AudioUnitSetProperty(dev->dev, kAudioOutputUnitProperty_CurrentDevice,
kAudioUnitScope_Global, 0, &devices[i], sizeof(AudioDeviceID));
goto done;
char device_name[1024];
device_name[0] = 0;
size = 1024;
if (AudioObjectGetPropertyData(devices[i],
&propaddr, 0, 0, &size, device_name) == noErr
&& string_is_equal(device_name, device))
{
AudioUnitSetProperty(dev->dev, kAudioOutputUnitProperty_CurrentDevice,
kAudioUnitScope_Global, 0, &devices[i], sizeof(AudioDeviceID));
break;
}
}
}
done:
free(devices);
}
#endif
@ -203,8 +184,6 @@ static void *coreaudio_init(const char *device,
#endif
AURenderCallbackStruct cb = {0};
AudioStreamBasicDescription stream_desc = {0};
bool component_unavailable = false;
static bool session_initialized = false;
#if !HAS_MACOSX_10_12
ComponentDescription desc = {0};
#else
@ -215,50 +194,37 @@ static void *coreaudio_init(const char *device,
if (!dev)
return NULL;
(void)session_initialized;
(void)device;
dev->lock = slock_new();
dev->cond = scond_new();
#if TARGET_OS_IOS
if (!session_initialized)
{
session_initialized = true;
AudioSessionInitialize(0, 0, coreaudio_interrupt_listener, 0);
AudioSessionSetActive(true);
}
#endif
/* Create AudioComponent */
desc.componentType = kAudioUnitType_Output;
desc.componentType = kAudioUnitType_Output;
#if TARGET_OS_IPHONE
desc.componentSubType = kAudioUnitSubType_RemoteIO;
desc.componentSubType = kAudioUnitSubType_RemoteIO;
#else
desc.componentSubType = kAudioUnitSubType_HALOutput;
desc.componentSubType = kAudioUnitSubType_HALOutput;
#endif
desc.componentManufacturer = kAudioUnitManufacturer_Apple;
#if !HAS_MACOSX_10_12
comp = FindNextComponent(NULL, &desc);
#else
comp = AudioComponentFindNext(NULL, &desc);
#endif
if (!comp)
if (!(comp = FindNextComponent(NULL, &desc)))
goto error;
#else
if (!(comp = AudioComponentFindNext(NULL, &desc)))
goto error;
#endif
#if !HAS_MACOSX_10_12
component_unavailable = (OpenAComponent(comp, &dev->dev) != noErr);
#else
component_unavailable = (AudioComponentInstanceNew(comp, &dev->dev) != noErr);
#endif
if (component_unavailable)
if ((OpenAComponent(comp, &dev->dev) != noErr))
goto error;
#else
if ((AudioComponentInstanceNew(comp, &dev->dev) != noErr))
goto error;
#endif
#if !TARGET_OS_IPHONE
if (device)
choose_output_device(dev, device);
coreaudio_choose_output_device(dev, device);
#endif
dev->dev_alive = true;
@ -271,9 +237,11 @@ static void *coreaudio_init(const char *device,
stream_desc.mBytesPerFrame = 2 * sizeof(float);
stream_desc.mFramesPerPacket = 1;
stream_desc.mFormatID = kAudioFormatLinearPCM;
stream_desc.mFormatFlags = kAudioFormatFlagIsFloat |
kAudioFormatFlagIsPacked | (is_little_endian() ?
0 : kAudioFormatFlagIsBigEndian);
stream_desc.mFormatFlags = kAudioFormatFlagIsFloat
| kAudioFormatFlagIsPacked;
if (!is_little_endian())
stream_desc.mFormatFlags |= kAudioFormatFlagIsBigEndian;
if (AudioUnitSetProperty(dev->dev, kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Input, 0, &stream_desc, sizeof(stream_desc)) != noErr)
@ -294,7 +262,7 @@ static void *coreaudio_init(const char *device,
if (real_desc.mFormatID != stream_desc.mFormatID)
goto error;
RARCH_LOG("[CoreAudio]: Using output sample rate of %.1f Hz\n",
RARCH_LOG("[CoreAudio] Using output sample rate of %.1f Hz.\n",
(float)real_desc.mSampleRate);
*new_rate = real_desc.mSampleRate;
@ -307,7 +275,7 @@ static void *coreaudio_init(const char *device,
#endif
/* Set callbacks and finish up. */
cb.inputProc = audio_write_cb;
cb.inputProc = coreaudio_audio_write_cb;
cb.inputProcRefCon = dev;
if (AudioUnitSetProperty(dev->dev, kAudioUnitProperty_SetRenderCallback,
@ -321,11 +289,10 @@ static void *coreaudio_init(const char *device,
fifo_size *= 2 * sizeof(float);
dev->buffer_size = fifo_size;
dev->buffer = fifo_new(fifo_size);
if (!dev->buffer)
if (!(dev->buffer = fifo_new(fifo_size)))
goto error;
RARCH_LOG("[CoreAudio]: Using buffer size of %u bytes: (latency = %u ms)\n",
RARCH_LOG("[CoreAudio] Using buffer size of %u bytes: (latency = %u ms).\n",
(unsigned)fifo_size, latency);
if (AudioOutputUnitStart(dev->dev) != noErr)
@ -334,35 +301,31 @@ static void *coreaudio_init(const char *device,
return dev;
error:
RARCH_ERR("[CoreAudio]: Failed to initialize driver ...\n");
RARCH_ERR("[CoreAudio] Failed to initialize driver.\n");
coreaudio_free(dev);
return NULL;
}
static ssize_t coreaudio_write(void *data, const void *buf_, size_t size)
static ssize_t coreaudio_write(void *data, const void *buf_, size_t len)
{
coreaudio_t *dev = (coreaudio_t*)data;
const uint8_t *buf = (const uint8_t*)buf_;
size_t written = 0;
size_t _len = 0;
#if TARGET_OS_IOS
while (!g_interrupted && size > 0)
#else
while (size > 0)
#endif
while (!dev->is_paused && len > 0)
{
size_t write_avail;
slock_lock(dev->lock);
write_avail = FIFO_WRITE_AVAIL(dev->buffer);
if (write_avail > size)
write_avail = size;
if (write_avail > len)
write_avail = len;
fifo_write(dev->buffer, buf, write_avail);
buf += write_avail;
written += write_avail;
size -= write_avail;
_len += write_avail;
len -= write_avail;
if (dev->nonblock)
{
@ -372,8 +335,11 @@ static ssize_t coreaudio_write(void *data, const void *buf_, size_t size)
#if TARGET_OS_IOS
if (write_avail == 0 && !scond_wait_timeout(
dev->cond, dev->lock, 3000000))
g_interrupted = true;
dev->cond, dev->lock, 300000))
{
slock_unlock(dev->lock);
break;
}
#else
if (write_avail == 0)
scond_wait(dev->cond, dev->lock);
@ -381,7 +347,7 @@ static ssize_t coreaudio_write(void *data, const void *buf_, size_t size)
slock_unlock(dev->lock);
}
return written;
return _len;
}
static void coreaudio_set_nonblock_state(void *data, bool state)
@ -402,26 +368,28 @@ static bool coreaudio_alive(void *data)
static bool coreaudio_stop(void *data)
{
coreaudio_t *dev = (coreaudio_t*)data;
if (!dev)
return false;
dev->is_paused = (AudioOutputUnitStop(dev->dev) == noErr) ? true : false;
return dev->is_paused ? true : false;
if (dev)
{
dev->is_paused = (AudioOutputUnitStop(dev->dev) == noErr) ? true : false;
if (dev->is_paused)
return true;
}
return false;
}
static bool coreaudio_start(void *data, bool is_shutdown)
{
coreaudio_t *dev = (coreaudio_t*)data;
if (!dev)
return false;
dev->is_paused = (AudioOutputUnitStart(dev->dev) == noErr) ? false : true;
return dev->is_paused ? false : true;
if (dev)
{
dev->is_paused = (AudioOutputUnitStart(dev->dev) == noErr) ? false : true;
if (!dev->is_paused)
return true;
}
return false;
}
static bool coreaudio_use_float(void *data)
{
(void)data;
return true;
}
static bool coreaudio_use_float(void *data) { return true; }
static size_t coreaudio_write_avail(void *data)
{
@ -441,16 +409,9 @@ static size_t coreaudio_buffer_size(void *data)
return dev->buffer_size;
}
static void *coreaudio_device_list_new(void *data)
{
/* TODO/FIXME */
return NULL;
}
static void coreaudio_device_list_free(void *data, void *array_list_data)
{
/* TODO/FIXME */
}
/* TODO/FIXME - implement */
static void *coreaudio_device_list_new(void *data) { return NULL; }
static void coreaudio_device_list_free(void *data, void *array_list_data) { }
audio_driver_t audio_coreaudio = {
coreaudio_init,

Some files were not shown because too many files have changed in this diff Show More