Compare commits

...
2109 Commits
Author SHA1 Message Date
twinaphex 5e551dd92b Bump up to version 1.9.0 2020-08-08 00:06:53 +02:00
Autechre 97799f9a74 Update CHANGES.md 2020-08-07 23:41:33 +02:00
Autechre 5258804cbc Update CHANGES.md 2020-08-07 23:40:27 +02:00
Autechre e16bf5b3be Update CHANGES.md 2020-08-07 23:38:07 +02:00
Autechre 9480fea658 Merge pull request #11161 from guoyunhe/crowdin-20200807
Improve Crowdin scripts and fetch translations
2020-08-07 22:42:11 +02:00
Guo Yunhe d7d13f64e9 Improve Crowdin scripts and fetch translations 2020-08-07 22:46:17 +03:00
Autechre e64d5d2310 Merge pull request #11158 from schellingb/playlist_rbuf
Change playlists to use a dynamic array
2020-08-07 17:41:47 +02:00
Bernhard Schelling a9ba760aae Fix string that references old maximum number
As the new maximum is now 2147483647, `'unlimited'` should be adequate.
2020-08-07 22:10:11 +09:00
Bernhard Schelling 5d54fff166 Increase maximum playlist size to 2147483647
Before the number decided the initial memory allocation, now it only defines an actual maximum cap. This sets it to the biggest signed 32-bit number in case this is ever read from/written to something that isn't explicitly size_t or unsigned int.
2020-08-07 22:07:05 +09:00
Bernhard Schelling f657d3d600 More index validation and avoid qsort with NULL 2020-08-07 21:13:40 +09:00
Bernhard Schelling 398aa25c98 Zero icon list even on menu drivers without icons
Otherwise there is a chance for a crash on program exit on certain gfx drivers because it tries to free uninitialized texture ids.
2020-08-07 20:49:06 +09:00
Bernhard Schelling 4a09907802 Return true when RBUF_TRYFIT is called with 0 2020-08-07 05:19:09 +09:00
Bernhard Schelling 0a67c0416a Change playlist to use dynamic array
Instead of initial 12MB memory allocation, use a dynamically growing array.
This shares the container structure (now called rbuf) with the explore menu.
2020-08-07 03:27:52 +09:00
Autechre 332505db86 Merge pull request #11153 from guoyunhe/create-metainfo-dir
Create metainfo directory if not exists
2020-08-06 18:36:48 +02:00
Autechre 3b67d49fb2 Merge pull request #11155 from jdgleaver/glui-playlist-icons
(GLUI) Add optional system-specific playlist icons
2020-08-06 18:36:16 +02:00
jdgleaver e6000afddb (GLUI) Add optional system-specific playlist icons 2020-08-06 17:24:28 +01:00
Guo Yunhe 3e4fa19638 Create metainfo directory if not exists 2020-08-06 12:10:08 +03:00
Autechre b05686efb1 Merge pull request #11150 from guoyunhe/appstream
Add AppStream support for Linux and BSD
2020-08-06 04:28:56 +02:00
Autechre cffde9b065 Update CHANGES.md 2020-08-06 04:28:41 +02:00
Autechre b0623f3f87 Merge pull request #11151 from yoshisuga/ios-hide-home-indicator
[iOS] Hide the home indicator as it obscures the content too frequently
2020-08-06 04:28:10 +02:00
Yoshi Sugawara 4456efa6c8 [iOS] Hide the home indicator as it obscures the content too frequently 2020-08-05 15:43:04 -10:00
twinaphex c3d8c8661f Buildfixes for C89_BUILD --disable-menu 2020-08-06 03:04:21 +02:00
twinaphex 365ca7cf63 Buildfix 2020-08-06 02:59:09 +02:00
Guo Yunhe 0791b658a9 Add AppStream support for Linux and BSD 2020-08-05 23:56:17 +03:00
Autechre bbff9215c0 Merge pull request #11147 from guoyunhe/crowdin-20200805
Fetch translations from Crowdin
2020-08-05 18:27:41 +02:00
Autechre d3eebe7c0f Merge pull request #11148 from jdgleaver/rgui-glui-scan-content-cleanup
(RGUI/GLUI) Clean up 'scan content' menu entries
2020-08-05 18:15:33 +02:00
Autechre 0e08fff6c8 Merge pull request #11149 from jdgleaver/ffmpeg-leak-fix
(ffmpeg) Fix memory leak/struct member issue
2020-08-05 18:04:48 +02:00
jdgleaver 0fcc5a784e (ffmpeg) Fix memory leak/struct member issue 2020-08-05 16:47:04 +01:00
twinaphex cd329a259c Revert "(MaterialUI) silence some warnings"
This reverts commit db7e38fed5.
2020-08-05 16:46:10 +02:00
Guo Yunhe 3d80b40dca Fetch translations from Crowdin 2020-08-05 16:35:24 +03:00
jdgleaver 15cf483cd9 (RGUI/GLUI) Clean up 'scan content' menu entries 2020-08-05 14:25:09 +01:00
twinaphex db7e38fed5 (MaterialUI) silence some warnings 2020-08-05 13:58:18 +02:00
twinaphex 76ec05314c Remove unused variable 2020-08-05 13:54:36 +02:00
Autechre 5d726bca45 Merge pull request #11146 from jdgleaver/comparison-warning-fix
'comparison of integer expressions of different signedness' warning fix
2020-08-05 13:52:16 +02:00
jdgleaver ada08e1c6f 'comparison of integer expressions of different signedness' warning fix 2020-08-05 09:55:06 +01:00
Autechre 2f16bc62cf Update CHANGES.md 2020-08-04 19:47:59 +02:00
Autechre 619d11c3bd Merge pull request #11144 from schellingb/explore_disable_original_title
Explore: Disable undocumented original_title field
2020-08-04 19:46:21 +02:00
Bernhard Schelling a0db4db6c6 Instead of #if 0 use an explicit unused name 2020-08-05 01:46:32 +09:00
Autechre b830a82478 Merge pull request #11145 from jdgleaver/ffmpeg-seek
(ffmpeg) Prevent seeking past the end of files (hang fix)
2020-08-04 18:41:57 +02:00
jdgleaver d36cd7037a (ffmpeg) Prevent seeking past the end of files (hang fix) 2020-08-04 17:21:18 +01:00
Bernhard Schelling 075c9162b7 Disable undocumented original_title field 2020-08-05 01:18:22 +09:00
Autechre 3d8ae1126a Merge pull request #11140 from schellingb/explore_icons_glui
Support for glui showing system icons in explore view
2020-08-04 14:58:43 +02:00
Bernhard Schelling b73c3dcde0 Cleaned up icon handling of glui to properly handle external icons 2020-08-04 21:54:39 +09:00
twinaphex 0ef0ceb0e4 Fix C89_BUILD and CXX_BUILD 2020-08-04 14:34:07 +02:00
Twinaphex faa468d87f Get rid of unused variables 2020-08-04 04:07:42 +02:00
twinaphex a1ce1e4f1d gl_glsl_set_proc_address unneeded - remove it 2020-08-04 03:58:51 +02:00
twinaphex bcd743d3c5 Cleanup 2020-08-04 03:32:56 +02:00
twinaphex ff8463ef86 Cleanup 2020-08-04 03:23:48 +02:00
twinaphex c68cd7851a (dispserv_x11) Cleanups 2020-08-04 03:15:09 +02:00
twinaphex 379cc9ca4a Small cleanup to get_refresh_rate function 2020-08-04 03:12:51 +02:00
twinaphex 3680804217 Undo path_basedir_size 2020-08-04 03:05:20 +02:00
twinaphex 14647915a1 Add comments 2020-08-04 02:24:06 +02:00
twinaphex 498f31229c Backport
https://github.com/neil4/RetroArch-Lite/commit/fe284542d0a18a5a09e6a8af0d7c02edffd26e0b
-
Added reverse look-up table for better keyboard driver efficiency
2020-08-04 02:23:20 +02:00
twinaphex 98b594666f Backport https://github.com/neil4/RetroArch-Lite/commit/d5e2d42008c1da74e49f13b67603ad35b1cc6c7f 2020-08-04 02:03:02 +02:00
twinaphex ae662b4fe2 Cleanup android_gfx_ctx_bind_api 2020-08-04 01:56:38 +02:00
twinaphex ca328662d0 Get rid of forward declaration 2020-08-04 01:37:18 +02:00
twinaphex 4a6f49fc0a (360) Fix build 2020-08-03 22:35:10 +02:00
twinaphex f47b67bb51 Get rid of forward declaration 2020-08-03 22:30:08 +02:00
twinaphex bafeebcd50 (Ozone) Get rid of some forward declarations 2020-08-03 22:23:48 +02:00
twinaphex e45d04b826 Cleanups 2020-08-03 22:09:14 +02:00
Autechre 77c2aa0150 Merge pull request #11142 from schellingb/explore_fix_pointless_comparison
Explore: Fix pointless comparison of unsigned value to zero
2020-08-03 21:33:09 +02:00
Bernhard Schelling 25c6664746 Fix pointless comparison of unsigned value to zero 2020-08-04 04:07:23 +09:00
Bernhard Schelling 948e2f9f8e Support for glui showing system icons in explore view 2020-08-04 03:32:49 +09:00
Autechre 849f88b8ff Merge pull request #11138 from farmerbb/master
Android: Apply "AArch64" and "32-bit" suffixes to app label
2020-08-03 20:12:00 +02:00
twinaphex c5b9786675 Turn retro_sleep into macros for most systems 2020-08-03 20:11:00 +02:00
twinaphex c9f2bb3455 Minor style nits 2020-08-03 19:47:08 +02:00
Autechre 585401d8db Merge pull request #11139 from schellingb/explore_icons
Show system icons in explore view
2020-08-03 19:46:10 +02:00
Bernhard Schelling 5229b255b5 Show system icons in explore view 2020-08-04 02:37:34 +09:00
Braden Farmer 9f6274b001 Android: Apply "AArch64" and "32-bit" suffixes to app label 2020-08-03 11:14:44 -06:00
twinaphex 84d849f49b Optimize vulkan_acquire_next_image 2020-08-03 19:12:55 +02:00
twinaphex f8b8f2a07d (slang) Cut down on code duplication 2020-08-03 18:37:07 +02:00
twinaphex 86d302099e Move build_vec4 to glslang_util.c 2020-08-03 18:34:33 +02:00
twinaphex cce2ac6904 (shaders slang) Cut down on code duplication 2020-08-03 18:13:08 +02:00
twinaphex 4465a7bd0b Cleanup 2020-08-03 18:03:15 +02:00
twinaphex d864fd9ead Cleanups 2020-08-03 17:59:44 +02:00
Autechre 3cbbccef52 Update CHANGES.md 2020-08-03 17:40:57 +02:00
Autechre 7b4b78777c Update CHANGES.md 2020-08-03 17:34:19 +02:00
Autechre 1158f2a05c Update CHANGES.md 2020-08-03 17:33:51 +02:00
Autechre a4c8e85751 Merge pull request #11137 from jdgleaver/runahead-fix
Prevent runahead from being disabled *permanently* when an error occurs
2020-08-03 17:33:29 +02:00
twinaphex 4676e102d0 (input/drivers_joypad) Add TODO/FIXME notes 2020-08-03 17:31:22 +02:00
jdgleaver dc6f0fd0b3 Prevent runahead from being disabled *permanently* when an error occurs 2020-08-03 16:21:21 +01:00
twinaphex e91e548f13 Add more notes 2020-08-03 17:18:54 +02:00
twinaphex 77cf0ad524 (libretro-db) Small cleanups 2020-08-03 17:13:54 +02:00
twinaphex 72afa2f932 Cleanups 2020-08-03 16:33:54 +02:00
twinaphex 3653451c40 Cleanup 2020-08-03 15:51:07 +02:00
twinaphex fe59fdb39a Cleanups 2020-08-03 15:49:44 +02:00
twinaphex 332bcc7f9e Remove dxgi_update_title 2020-08-03 15:48:08 +02:00
twinaphex 89461eb6a5 Move vulkan gpu_list to struct data 2020-08-03 15:30:46 +02:00
twinaphex f3c4b4fcf7 (GLCORE) Fix other use after free issues pointed to by jdgleaver 2020-08-03 15:19:34 +02:00
Autechre e2e502fc9a Merge pull request #11135 from jdgleaver/autoconfig-save-fix
Ensure correct directory is used when saving autoconfig profiles
2020-08-03 14:40:49 +02:00
jdgleaver 535d73cf37 Ensure correct directory is used when saving autoconfig profiles 2020-08-03 13:10:00 +01:00
twinaphex 1d6a760de3 (menu_explore) Cleanup - build_list now returns allocated struct 2020-08-03 12:49:42 +02:00
twinaphex 2d10d9fd7a (D3D10) Move these static global variables to D3D10 struct 2020-08-03 12:39:46 +02:00
twinaphex db80281b0f (D3D11) Move static global variables to D3D11 state 2020-08-03 12:36:51 +02:00
twinaphex 76398f4151 (glcore) Fix heap use after free 2020-08-03 12:15:52 +02:00
twinaphex cb8b2db3ad Turn this function static 2020-08-03 01:41:48 +02:00
twinaphex 5105216380 (Android) Fix build 2020-08-03 00:51:29 +02:00
twinaphex 85e5c783af Backport getting rid of video_context_driver_input_driver 2020-08-03 00:47:58 +02:00
twinaphex deee393dfb Backport video_context_driver_free changes 2020-08-03 00:35:07 +02:00
twinaphex 429a6bb9e3 Cleanup 2020-08-03 00:24:14 +02:00
twinaphex 345ea303f4 Backport video_context_driver_destroy_internal 2020-08-03 00:21:34 +02:00
twinaphex 3058e96d94 menu_input_get_dpi - make it go through wrapper function
for accessing get_metrics
2020-08-03 00:10:03 +02:00
twinaphex 81395689e6 Backport set_resize_null alterations 2020-08-03 00:06:13 +02:00
twinaphex 056f85bf45 Change video_context_driver_set_flags 2020-08-03 00:04:27 +02:00
twinaphex 3e41cbc381 Revert "Add get_metrics to poke interface"
This reverts commit 119689c940.
2020-08-02 23:44:28 +02:00
twinaphex 31f570fdf6 Revert "Cleanups"
This reverts commit 529886a3fe.
2020-08-02 23:44:21 +02:00
twinaphex 03fe023de4 Revert "Cleanup"
This reverts commit 576679ac05.
2020-08-02 23:44:09 +02:00
twinaphex da5806a810 Revert "Cleanups"
This reverts commit a01a2375a1.
2020-08-02 23:43:56 +02:00
twinaphex a77c559505 Revert "Cleanups"
This reverts commit 69e92fa03b.
2020-08-02 23:43:44 +02:00
twinaphex 5fe2f75842 Revert "Cleanups"
This reverts commit 184ce8e9b7.
2020-08-02 23:43:29 +02:00
twinaphex 2efa8ac80e Revert "Get rid of video_context_driver_input_driver"
This reverts commit 75b1a09184.
2020-08-02 23:43:19 +02:00
twinaphex 1c9f60f98d (Emscripten) Add Mr.Boom 2020-08-02 22:25:55 +02:00
twinaphex 75b1a09184 Get rid of video_context_driver_input_driver 2020-08-02 20:37:21 +02:00
twinaphex 184ce8e9b7 Cleanups 2020-08-02 20:27:19 +02:00
twinaphex 69e92fa03b Cleanups 2020-08-02 20:23:10 +02:00
twinaphex a01a2375a1 Cleanups 2020-08-02 20:19:42 +02:00
twinaphex 576679ac05 Cleanup 2020-08-02 19:59:26 +02:00
twinaphex 529886a3fe Cleanups 2020-08-02 19:53:44 +02:00
twinaphex 119689c940 Add get_metrics to poke interface 2020-08-02 19:25:45 +02:00
twinaphex 416363e9fd Cleanups 2020-08-02 18:49:31 +02:00
Autechre cdff2a2c3c Merge pull request #11132 from schellingb/explore_multilangfix3
Explore - Localization: Better accommodate different languages (update2)
2020-08-02 18:12:57 +02:00
Bernhard Schelling 90d2991ef1 Create per category "By ..." string
This avoids string concatenation that might be undesired by some languages
Rename string "Tags" to "Tag" as it just pertains to a single tag
Remove 3 old strings
2020-08-03 00:16:58 +09:00
twinaphex 4d17fde5ea None of the drivers that call video_driver_update_viewport
have either a context driver or have a 'fake' context driver
with translate_aspect implemented
2020-08-02 12:19:07 +02:00
twinaphex 035e7641c5 Cleanup video_driver_update_viewport 2020-08-02 12:16:02 +02:00
twinaphex f35010e1ae Cleanups 2020-08-02 10:28:23 +02:00
twinaphex e298ceb6bf Update vcproj 2020-08-02 10:22:52 +02:00
twinaphex ec57160709 (XB) Fix Salamander 2020-08-02 09:35:34 +02:00
twinaphex 602ea99c96 Fix 360 Salamander 2020-08-02 09:33:32 +02:00
Autechre 4371efafd7 Merge pull request #11127 from schellingb/explore_multilangfix2
Explore: Better accommodate different languages (updated)
2020-08-01 23:14:45 +02:00
twinaphex 8a24cc350e Resync 2020-08-01 22:55:08 +02:00
twinaphex 97297f71af (MSVC 2005) MSVC 2005 and earlier cannot use nbio_windowsmmap.c -
so disable it
2020-08-01 22:51:23 +02:00
Bernhard Schelling e26a9db3de Change "ITEM_COUNT" to "ITEMS_COUNT" 2020-08-02 05:09:39 +09:00
Twinaphex 8441f60314 Remove unused variable 2020-08-01 21:47:22 +02:00
Bernhard Schelling b396f29769 Replace 3 strings with format strings to better accommodate different languages
- "By" becomes "By %s"
- "Select" becomes "Select %s"
- "Items" becomes "%u Items"
2020-08-02 04:46:32 +09:00
twinaphex 83f4ce11f3 Revert "Replace 3 strings with format strings to better accommodate different languages"
This reverts commit a80fe4fbbc.
2020-08-01 21:24:59 +02:00
Autechre 5c05a03c97 Merge pull request #11126 from schellingb/explore_multilangfix
Explore: Better accommodate different languages
2020-08-01 21:21:24 +02:00
Bernhard Schelling a80fe4fbbc Replace 3 strings with format strings to better accommodate different languages
- "By" becomes "By %s"
- "Select" becomes "Select %s"
- "Items" becomes "%u Items"
2020-08-02 04:11:03 +09:00
twinaphex 6f0874f2b1 Silence warning 2020-08-01 18:26:20 +02:00
twinaphex aba17fdc92 Warning fix 2020-08-01 18:18:09 +02:00
twinaphex cd9ea1f44b Another warning fix 2020-08-01 18:16:19 +02:00
twinaphex 4ee45304b0 More warning fixes 2020-08-01 18:14:48 +02:00
twinaphex 3635bf0d01 Silence some warnings 2020-08-01 18:04:56 +02:00
twinaphex 2ab779f3b5 Buildfix 2020-08-01 18:00:07 +02:00
Autechre 62cc21f1af Merge pull request #11125 from guoyunhe/crowdin-20200801-2
Remove _LANG_ strings that should not be translated
2020-08-01 17:23:52 +02:00
Guo Yunhe 57d8c4065f Remove _LANG_ strings that should not be translated 2020-08-01 17:50:52 +03:00
Autechre 6546580588 Merge pull request #11124 from guoyunhe/crowdin-20200801
Fetch translations from Crowdin
2020-08-01 16:35:27 +02:00
Guo Yunhe b4bf2773ef Fetch translations from Crowdin 2020-08-01 17:31:28 +03:00
twinaphex 08a8de6227 (XInput) Proper joypad disconnect messages now with autoconfig
system
2020-07-31 22:31:38 +02:00
twinaphex 3518b4ef9c Cleanups - stray variables and functions can now be made static 2020-07-31 20:05:04 +02:00
twinaphex 65af2828da Move dinput_joypad_get_vidpid_from_xinput_index to
xinput_hybrid_joypad.c
2020-07-31 19:54:15 +02:00
twinaphex 212fc885ed Cleanups - xinput_hybrid_joypad.c no longer calls into separate
dinput_joypad driver interface
2020-07-31 19:52:03 +02:00
twinaphex 8ab1d7f8ec Cleanups 2020-07-31 19:30:03 +02:00
twinaphex 449f8dff8e Cleanups 2020-07-31 19:25:20 +02:00
twinaphex 5c7ba50ce1 Cleanups 2020-07-31 19:22:07 +02:00
twinaphex b171f35836 Move these globals out of dinput.c and into dinput_joypad_inl.h 2020-07-31 19:08:46 +02:00
twinaphex b5e0f7edfd Split up dinput_joypad.c into dinput_hybrid_joypad.c (both HAVE_DINPUT
and HAVE_XINPUT defined) and dinput_joypad.c (only HAVE_DINPUT defined)
2020-07-31 19:06:22 +02:00
twinaphex 5c5c57de9c Split up xinput_joypad.c into xinput_hybrid_joypad.c (assumes
-DHAVE_DINPUT) and xinput_joypad.c (no Dinput available at all)
2020-07-31 18:57:44 +02:00
twinaphex 95604f55b9 Add inline header files 2020-07-31 18:48:45 +02:00
twinaphex 04e67f1ac9 Make Xbox 360 reuse default xinput_joypad.c driver 2020-07-31 18:32:28 +02:00
twinaphex 771c0fec39 Add xinput_joypad.h header 2020-07-31 18:22:35 +02:00
twinaphex 748886c5e5 (DInput) Cleanups 2020-07-31 18:15:36 +02:00
Autechre bbcc863270 Merge pull request #11117 from jdgleaver/playlist-search
Enhanced playlist search functionality
2020-07-31 17:13:59 +02:00
jdgleaver 776301883c Enhanced playlist search functionality 2020-07-31 15:14:51 +01:00
twinaphex c522f97e0f Cleanups 2020-07-31 14:51:46 +02:00
twinaphex c19ea3e8ab Cleanup 2020-07-31 14:49:30 +02:00
twinaphex 1f1571425a (Switch) Cleanups 2020-07-31 14:47:14 +02:00
Autechre 0c7ee3d573 Merge pull request #11115 from hhromic/fix-stats-dpy
Fix audio/video statistics display flickering in certain Windows platforms
2020-07-31 11:37:48 +02:00
Hugo Hromic 879e469a50 Fix audio/video statistics display flickering in certain Windows platforms
Recent member addition caused struct misalignment.
2020-07-31 10:26:12 +01:00
twinaphex 573f9e60c7 (libnx) Prevent some warnings 2020-07-31 10:54:57 +02:00
Autechre 7046daf53d Merge pull request #11114 from guoyunhe/crowdin-20200731
Fetch translations from Crowdin
2020-07-31 09:58:23 +02:00
Guo Yunhe 4f62548f91 Fetch translations from Crowdin 2020-07-31 10:50:17 +03:00
Autechre b26739167e Merge pull request #11111 from schellingb/explore_multilang
Explore: Support for localization
2020-07-30 21:05:00 +02:00
Bernhard Schelling 1644e493f0 Explore: Support for internationalization
Replace hardcoded English strings with msg_hash_to_str lookups
2020-07-31 03:09:23 +09:00
Autechre 0ae214b2db Merge pull request #11110 from schellingb/explore_fix_cached_playlist
Explore: Fix freeing of cached playlist
2020-07-30 19:33:00 +02:00
Bernhard Schelling fc5a11d2e7 Remove wrong (re)initialization of cached_external, add NULL check 2020-07-31 01:26:58 +09:00
Bernhard Schelling 5da2ada6b8 Explore: Fix freeing of cached playlist (it could cause a crash in glui menu when jumping up multiple menu lists)
Also makes setting cached_playlist with an external list less of a hack and simplifies menu_explore.c a bit
2020-07-31 00:53:01 +09:00
Autechre e0ffe8184f Merge pull request #11105 from Jamiras/ogg_bsnes_crash
move large array off stack
2020-07-30 07:19:03 +02:00
Jamiras 92e61ccb5c move temporary buffer off stack 2020-07-29 19:54:48 -06:00
Autechre d09f3b7248 Merge pull request #11102 from jdgleaver/qt-icon-fix
(Qt) Fix display of settings icons
2020-07-29 15:44:37 +02:00
twinaphex f162875583 (PSP scanning) Add more PSP serials 2020-07-29 15:41:05 +02:00
twinaphex 784e1187e1 (PSP scanning) Regression fix - should scan games with serial ULU again 2020-07-29 15:29:51 +02:00
jdgleaver 90f4c5d8ae (Qt) Fix display of settings icons 2020-07-29 13:56:39 +01:00
Autechre c812727de7 Merge pull request #11101 from jdgleaver/hide-explore
Add option to hide 'Explore' tab + menu clean-ups
2020-07-29 14:30:03 +02:00
jdgleaver d77f6705df Add option to hide 'Explore' tab + menu clean-ups 2020-07-29 13:01:49 +01:00
twinaphex ed3ee2511f Cleanups - add local variable 2020-07-29 05:31:23 +02:00
twinaphex 4f931f2729 Use UINT32_C / UINT64_C throughout the codebase 2020-07-29 04:48:11 +02:00
twinaphex 1f0529a275 (libz) Silence some warnings - use INT64_C/UINT64_C 2020-07-29 04:41:13 +02:00
twinaphex 8eb7c1d226 (Win32) Another buildfix for CRT changes 2020-07-29 04:36:29 +02:00
Autechre 38a6d9b2d2 Merge pull request #11095 from rsn8887/master
Fix input port assignments
2020-07-29 04:22:56 +02:00
Autechre 74cd3ab99f Merge pull request #11097 from alphanu1/master
Fix for dispserv win32 compile issue
2020-07-29 04:21:01 +02:00
alphanu1 cba3da50df Merge branch 'master' of https://github.com/alphanu1/mme4crt 2020-07-28 22:42:10 +01:00
alphanu1 7e39a4a25c Update dispserv_win32.c 2020-07-28 22:41:56 +01:00
rsn8887 78c9dbbd20 Fix input port assignments 2020-07-28 16:35:16 -05:00
Autechre 175d998af4 Merge pull request #11094 from schellingb/explore_improvements_1
Explore view improvements
2020-07-28 21:53:51 +02:00
Bernhard Schelling 61e2b1581d Explore view improvements
If no database item can be connected to a playlist entry through CRC32, find a match of the database name value using the playlist label.
Use database name instead of the systemname field of core_info_t as system name (systemname of some cores contains multiple system names, database name is more appropriate).
2020-07-29 04:33:03 +09:00
Autechre 0f9f46f499 Merge pull request #11093 from alphanu1/master
On the fly CRT porch adjuments
2020-07-28 20:09:58 +02:00
alphanu1 e222d62f6c Merge pull request #7 from libretro/master
upstream
2020-07-28 18:55:54 +01:00
Twinaphex 8f068fae6c Cleanups 2020-07-28 19:49:17 +02:00
alphanu1 d3a2f2f921 Update video_crt_switch.c
Fixed infinate switching bug
2020-07-28 18:43:29 +01:00
alphanu1 50f54fcb43 Update video_display_server.h
fixed function
2020-07-28 18:28:31 +01:00
alphanu1 610f9d6c48 Fix missing arg 2020-07-28 18:15:01 +01:00
twinaphex b1acb00832 (menu_explore.c) Cleanups - prevent some implicit memsets 2020-07-28 17:38:50 +02:00
Autechre c963bbe15f Merge pull request #11092 from schellingb/explore_fix_crashonexit
Explore view - Fix crash when quitting while viewing item details
2020-07-28 17:14:45 +02:00
twinaphex dd524d7d35 (MaterialUI) Add placeholder Explore tab icon 2020-07-28 16:57:29 +02:00
Bernhard Schelling 6c8506399c Fix crash when quitting while viewing item details
When RetroArch was closed while viewing/playing a content item opened through the explore view there would be a crash during cleanup because the cached playlist would be freed twice (once by playlists own playlist_free_cached and once more through explore_free).
2020-07-28 23:51:06 +09:00
Autechre 8cb861798e Merge pull request #11075 from francescotintori/francesco/playlist_autofix
Playlist base content directory paths
2020-07-28 16:10:20 +02:00
alphanu1 55e3bd3d2d Added ability to adjust porch values
Porches can now be manipulated from the CRTSwitchRes menu
2020-07-28 14:25:38 +01:00
twinaphex 6ccb758939 Update 2020-07-28 14:33:23 +02:00
twinaphex 395de4bae5 (Menu explore) jdgleaver's memory leak fixes 2020-07-28 14:32:46 +02:00
Autechre 89bc5d9c0c Merge pull request #11091 from schellingb/explore_fix_leaks
Fix 2 memory leaks in explore view
2020-07-28 14:32:20 +02:00
Autechre da5f5319cf Merge pull request #11089 from bulzipke/patch-1
[3DS] Fix sound cracking when pause
2020-07-28 14:08:42 +02:00
Bernhard Schelling 77a7e7eecd Fix 2 memory leaks in explore view
Free cached playlist that could have been loaded before entering explore view
Free temporary hashmap used to filter sub-categories
2020-07-28 21:06:20 +09:00
twinaphex 89567dae5d (input hid) Change back to original code 2020-07-28 12:42:33 +02:00
Twinaphex 59549d9f62 Remove unused variable 2020-07-28 12:17:16 +02:00
twinaphex 4c6136d970 Stub out menu_explore.c when HAVE_LIBRETRODB is not defined 2020-07-28 12:15:05 +02:00
twinaphex 079d1fc2fc (menu explore) Further cleanups 2020-07-28 11:42:51 +02:00
twinaphex 36c27378bf Cleanups; C89_BUILD buildfixes, CXX_BUILD buildfixes, etc 2020-07-28 10:47:26 +02:00
bulzipke 1c0fb50877 Update ctr_gfx.c
It fixed the sound cracking when opening or closing the 3DS screen.
2020-07-28 15:03:43 +09:00
twinaphex 0d6ceafb8b (Menu explore) Buildfix 2020-07-28 05:26:44 +02:00
Bernhard Schelling 667e8a558e Explore view - WIP1
A top content view that combines all playlists with database entries to browse by year, developer, system, etc.
Depends on the quality of the available metadata in the database (RDB) files.
2020-07-28 04:44:31 +02:00
francescotintori 9744fcb76a Adds base content directory support in playlists. If playlist base content directory does not match configuration parameter 'rgui_browser_directory', all entries paths are automatically fixed to match parameter 'rgui_browser_directory'.
Functionality is enabled if new parameter 'playlist_autofix_paths' is enabled.
2020-07-27 20:59:56 +02:00
Autechre c13c045e64 Merge pull request #11086 from jdgleaver/rgui-switch-icons
(RGUI) Add optional 'toggle switch' icons
2020-07-27 17:26:56 +02:00
jdgleaver fba4a8e837 (RGUI) Add optional 'toggle switch' icons 2020-07-27 14:45:07 +01:00
twinaphex 7f1cd52d65 Remove video_driver_context_get_size 2020-07-27 14:33:21 +02:00
twinaphex d6465a1348 Refactor 'focus' function callback 2020-07-27 13:46:55 +02:00
twinaphex 74345f08d6 Refactor video_driver_has_windowed 2020-07-27 13:39:02 +02:00
twinaphex 0c78d2ec27 Cleanup 2020-07-27 13:22:23 +02:00
twinaphex 60f3265017 Cleanups 2020-07-27 13:16:14 +02:00
twinaphex 61b798b789 Get rid of video_context_driver_set_video_mode 2020-07-27 11:08:34 +02:00
twinaphex 197465c1ea make_current is only ever used for GL, so move it out of
video_driver_load/unload_texture and into the inner GL
drivers
2020-07-27 10:26:13 +02:00
twinaphex 3d893b7602 Add extra parameter to unload_texture 2020-07-27 10:15:28 +02:00
twinaphex 1204ae6edb Just call the poke function call here 2020-07-27 09:46:06 +02:00
twinaphex dc94356505 Cleanup context driver video output functions 2020-07-27 09:38:20 +02:00
twinaphex 3e04b158ab Get rid of video_context_driver_write_to_image_buffer 2020-07-27 08:25:11 +02:00
twinaphex 8dc7524e43 Get rid of video_context_driver_translate_aspect wrapper function 2020-07-27 08:15:35 +02:00
twinaphex 9db00e4143 Start using video_driver_get_flags_wrapper again 2020-07-27 06:40:30 +02:00
twinaphex 4120abd4d4 Cleanups 2020-07-27 06:27:35 +02:00
twinaphex 014875c3d3 Ensure size of msg_hash_enums is big enough for now 2020-07-27 05:07:44 +02:00
Autechre 9301344ea8 Update CHANGES.md 2020-07-26 23:42:18 +02:00
Autechre 7a07d4977f Merge pull request #11084 from hhromic/add-font-size
(Menu/DisplayList) Make notification font size option visible when graphics widgets are enabled
2020-07-26 23:41:48 +02:00
Hugo Hromic e5a50a4e33 (Menu/DisplayList) Make notification font size option visible when graphics widgets are enabled
The on-screen audio/video statistics uses the font size option for rendering.
2020-07-26 22:28:32 +01:00
twinaphex b9e471d22a Revert "Video context driver cleanups - less functions to go through with"
This reverts commit cd1d760a38.
2020-07-26 23:12:05 +02:00
twinaphex 26d915c1f2 Revert "(core_info.c) Cleanup"
This reverts commit ab8f3115da.
2020-07-26 23:11:53 +02:00
twinaphex b604200730 Revert "Cleanup core_info_hw_api_supported"
This reverts commit 9f653f27b0.
2020-07-26 23:11:38 +02:00
twinaphex 4e5037d7e1 Revert "Get rid of these context driver higher level functions"
This reverts commit 27b09229b3.
2020-07-26 23:11:24 +02:00
twinaphex b96ec6b8a8 Revert "Cleanup"
This reverts commit 3108df009e.
2020-07-26 23:11:16 +02:00
twinaphex 3108df009e Cleanup 2020-07-26 12:04:55 +02:00
twinaphex 27b09229b3 Get rid of these context driver higher level functions 2020-07-26 11:58:38 +02:00
twinaphex 9f653f27b0 Cleanup core_info_hw_api_supported 2020-07-26 08:29:17 +02:00
twinaphex ab8f3115da (core_info.c) Cleanup 2020-07-26 08:22:04 +02:00
twinaphex cd1d760a38 Video context driver cleanups - less functions to go through with
public scope
2020-07-26 08:00:49 +02:00
twinaphex f94b5864b2 Cleanup 2020-07-25 19:58:14 +02:00
twinaphex 30dd294c43 (GDI) Implement resolution callback functions 2020-07-25 19:36:19 +02:00
twinaphex 9f20a48602 (D3D10/11/12) Implement resolution callback functions 2020-07-25 11:47:49 +02:00
twinaphex cb138183ad (Vulkan) Implement video resolution callback functions 2020-07-25 11:35:42 +02:00
twinaphex dc14f4150d Cleanup 2020-07-25 00:04:25 +02:00
twinaphex d92280e20e Cleanups 2020-07-25 00:02:26 +02:00
twinaphex b9cb8c8890 (device_null) Cleanups 2020-07-24 23:57:15 +02:00
twinaphex 9d76412715 (WiiU) Another buildfix 2020-07-24 23:55:06 +02:00
twinaphex a49b5b7129 Cleanups 2020-07-24 22:23:52 +02:00
twinaphex 08776496ed Cleanups 2020-07-24 22:12:33 +02:00
Autechre d6d6dcdf5c Merge pull request #11076 from barbudreadmon/patch-6
gcm_gfx.c: oops, forgot to include this
2020-07-24 19:57:04 +02:00
barbudreadmon 2dedaca7b3 gcm_gfx.c: oops, forgot to include this 2020-07-24 19:40:07 +02:00
Autechre 2515863058 Merge pull request #11074 from barbudreadmon/patch-7
gcm_gfx.c: compatibility with recent psl1ght sdk
2020-07-24 19:16:17 +02:00
Autechre 80f978b683 Merge pull request #11072 from jdgleaver/core-options-tweaks
Core option improvements
2020-07-24 19:12:19 +02:00
Autechre 35183c1fbb Merge pull request #11073 from barbudreadmon/patch-6
psl1ght_input.c: fix typo
2020-07-24 19:12:10 +02:00
twinaphex 0003074cfe (Input HID) Cleanups/buildfixes 2020-07-24 19:11:20 +02:00
twinaphex 1b24c37919 (WiiU) More build fixes 2020-07-24 19:01:35 +02:00
barbudreadmon 70025e4d08 gcm_gfx.c: compatibility with all sdks 2020-07-24 18:39:00 +02:00
jdgleaver 013ec3ebb2 Core Options: Detect 'enable'/'disable' as boolean-type value labels 2020-07-24 17:15:47 +01:00
barbudreadmon 3f7895a668 gcm_gfx.c: compatibility with recent psl1ght sdk 2020-07-24 17:47:28 +02:00
barbudreadmon 6521eb980b psl1ght_input.c: fix typo 2020-07-24 17:37:07 +02:00
jdgleaver 9a19a7ae31 Core option improvements 2020-07-24 15:31:50 +01:00
twinaphex d93cf0d9dc Cleanups 2020-07-24 04:44:49 +02:00
twinaphex 2364fdd900 (Wiiu) Cleanups 2020-07-24 04:42:43 +02:00
twinaphex d2c3a6d71e (Wiiu) Buildfix 2020-07-24 04:40:39 +02:00
Autechre 75a764c668 Merge pull request #11071 from hhromic/reimpl-git-version
(Makefiles) Re-implement Git version handling
2020-07-24 00:21:52 +02:00
Hugo Hromic 4205e73c9a (Makefiles) Re-implement Git version handling
Better (more fine-grained) logic for version_git.o regeneration.
2020-07-23 21:28:22 +01:00
Francisco José García García 49b7a03335 (VITA) Rename frontend_psp_get_mem_used to free 2020-07-23 21:04:49 +02:00
Autechre a308be6e87 Update CHANGES.md 2020-07-23 18:43:15 +02:00
Autechre 53eee276c7 Merge pull request #11070 from Ryunam/notification-font
Make Notification Font option visible when Graphics Widgets are enabled
2020-07-23 18:42:47 +02:00
Autechre 6f6f9122d3 Update CHANGES.md 2020-07-23 18:40:57 +02:00
Autechre 72c8780714 Merge pull request #11069 from jdgleaver/input-remap-dropdown-lists
Add input remap drop-down lists
2020-07-23 18:40:17 +02:00
Ryunam ee8317a8e4 Make Notification Font visible when Widgets are enabled 2020-07-23 18:26:42 +02:00
jdgleaver 60407a84e6 Add input remap drop-down lists 2020-07-23 17:20:41 +01:00
twinaphex ad30ffa085 Cleanups 2020-07-23 18:11:20 +02:00
twinaphex a01380f847 (WiiU) Buildfixes 2020-07-23 18:01:15 +02:00
Autechre bf542c22d0 Update CHANGES.md 2020-07-23 17:49:17 +02:00
Autechre a644abcd6a Merge pull request #11068 from spec-chum/cheatfix
Fix for wrong number of remaining cheat search matches on some machines
2020-07-23 17:48:56 +02:00
Spec-Chum b7687215a6 Fix for wrong number of remaining cheat search matches on some machines 2020-07-23 11:57:01 +01:00
twinaphex d384b215f4 Hopefully silences Emscripten warning 2020-07-23 11:32:50 +02:00
twinaphex eba83390ba Warning fixes 2020-07-23 07:39:08 +02:00
twinaphex 2f6ba7f477 Silence Emscripten warnings and leave TODO/FIXME note 2020-07-23 06:50:08 +02:00
twinaphex b84f62c440 Silence warning - char buffer was too small for what we wanted to
fit into it
2020-07-23 06:46:05 +02:00
twinaphex fa6d5333f7 More silencing of warnings 2020-07-23 06:39:21 +02:00
twinaphex 98516280ad (s16_to_float) Silence aggressive-loop-optimization undefined
behavior because of potential signed integer overflow
2020-07-23 06:35:30 +02:00
twinaphex 06eeea3931 We do use it, but only for HAVE_NETWORKING builds 2020-07-23 06:03:13 +02:00
twinaphex efbb6aa81d stub this out for now until we actually start using this 2020-07-23 05:58:07 +02:00
twinaphex a3242daa5d Silence more warnings 2020-07-23 05:51:04 +02:00
twinaphex 8777a6eb6a (WiiU) Buildfix 2020-07-23 05:42:51 +02:00
twinaphex 4f39c60bc0 (Switch) Silence some more warnings 2020-07-23 05:29:42 +02:00
twinaphex 128a65cc4c Prevent more warnings 2020-07-23 05:24:33 +02:00
twinaphex d72b118a2d Make char array big enough 2020-07-23 05:21:32 +02:00
twinaphex 73e63d369c Fix more array subscript has type char warnings 2020-07-23 05:20:23 +02:00
twinaphex 270a22ce0b core_info_hw_api_supported - silence warning array subscript has type
'char'
2020-07-23 05:18:15 +02:00
twinaphex b929553231 - Silence 'variable might be used uninitialized' warning
- PS2 - Add TODO/FIXME note
2020-07-23 05:02:52 +02:00
twinaphex 968ec1f4b1 (Android) Silence warning 2020-07-23 03:59:37 +02:00
twinaphex 6922a36ea1 (CocoaGL) Another buildfix 2020-07-22 22:25:28 +02:00
twinaphex b78591d9b6 Buildfix 2020-07-22 22:18:18 +02:00
Autechre b521268748 Update CHANGES.md 2020-07-22 20:46:05 +02:00
Autechre 8de7d6660f Update CHANGES.md 2020-07-22 19:58:43 +02:00
Autechre 1297d0d019 Update CHANGES.md 2020-07-22 19:57:51 +02:00
Autechre 95221945bb Merge pull request #11065 from yoshisuga/yoshisuga/ios-metal-dpi
[iOS][tvOS][Metal] Support getting video metrics to support proper touchscreen interactions
2020-07-22 07:09:24 +02:00
twinaphex 12a4fa0809 Buildfix 2020-07-22 00:46:16 +02:00
twinaphex ca2a59e03d (Cocoa GL) Global variable cleanups 2020-07-22 00:44:45 +02:00
Yoshi Sugawara c462aaf374 iOS Metal: implement the metric method for the graphics context to support getting the dpi - this is needed to make the touch interactions with the menus work. Update the metal and opengl graphics context to support a lower dpi for larger screen iPhones to make better use of the screen 2020-07-21 11:33:37 -10:00
Autechre 6c7143d02d Merge pull request #10981 from yoshisuga/yoshisuga/ios-metal
iOS/tvOS Metal Renderer
2020-07-21 20:41:07 +02:00
Autechre c3ee17c842 Merge pull request #11064 from guoyunhe/crowdin-20200721
Fetch translations from Crowdin
2020-07-21 18:26:42 +02:00
Autechre e436852a5b Merge pull request #11063 from jdgleaver/quit-on-error
Fix 'content launched from command line' detection
2020-07-21 18:25:48 +02:00
Autechre e330209c99 Merge pull request #11062 from hhromic/fix-version-git
(Makefiles) Fix incorrect check in Git version checking
2020-07-21 18:25:23 +02:00
Guo Yunhe 9964c2a488 Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
jdgleaver 83f9817041 Fix 'content launched from command line' detection 2020-07-21 14:26:40 +01:00
Hugo Hromic 10ab4b9118 (Makefiles) Fix incorrect check in Git version checking 2020-07-21 13:52:28 +01:00
Autechre cdc7327e47 Merge pull request #11061 from fjtrujy/PS2PRI_SIZET
Fix issue with the PS2 and PRI_SIZET
2020-07-21 12:59:09 +02:00
Francisco Javier Trujillo Mata 8334be07bf Fix issue with the PS2 and PRI_SIZET 2020-07-21 10:17:16 +02:00
Yoshi Sugawara 0b0f55f043 remove commented out code, simplify ifdef for macOS 2020-07-20 16:51:55 -10:00
Yoshi Sugawara 2187cf67c9 Support the ApplePlatform delegate for all iOS builds (the OpenGL one) so that the view initialization happens in the same way; remove the companion UI for iOS; four finger swipe down now shows RA menu on iOS 2020-07-20 15:38:24 -10:00
Yoshi Sugawara 271ac7f925 support the OpenGL driver in the metal build by delegating the view initialization to the ApplePlatform delegate (metal build only for now) 2020-07-20 14:00:28 -10:00
twinaphex 41b9b8d650 (uwp_input.c) Refactor code 2020-07-20 23:22:07 +02:00
twinaphex caa1145b35 (joypad drivers) xdk_joypad.c - cleanup(joypad drivers) xdk_joypad.c -
cleanup(joypad drivers) xdk_joypad.c - cleanup(joypad drivers)
xdk_joypad.c - cleanup(joypad drivers) xdk_joypad.c - cleanup(joypad
drivers) xdk_joypad.c - cleanup(joypad drivers) xdk_joypad.c -
cleanup(joypad drivers) xdk_joypad.c - cleanup(joypad drivers)
xdk_joypad.c - cleanup
2020-07-20 23:15:19 +02:00
Autechre 2681991c29 Merge pull request #11056 from Tatsuya79/master
Make Blargg_snes filter customizable.
2020-07-20 23:10:50 +02:00
Autechre b152bfc808 Merge pull request #11057 from fjtrujy/fps_limiter
[PS2] Improve FPS Limiter
2020-07-20 23:10:24 +02:00
Francisco Javier Trujillo Mata 86c43d65fa Add FPSLimiter functionality 2020-07-20 22:58:31 +02:00
Tatsuya79 3bdf636e52 Make Blargg_snes filter customizable. 2020-07-20 22:57:07 +02:00
Autechre 77c59dea70 Merge pull request #11055 from jacobpa/master
Fix initialization of pattern and strengths arrays
2020-07-20 22:56:29 +02:00
Autechre c3dfae5ba6 Merge pull request #11054 from fjtrujy/fixPS2Joypad
Fix ps2_joypad compilation after refactor of the main driver
2020-07-20 22:55:03 +02:00
Francisco Javier Trujillo Mata 67e0a49941 Fix ps2_joypad compilation after refactor of the main driver 2020-07-20 22:51:00 +02:00
Jacob Patterson a28ea1e1c6 Fix initialization of pattern and strengths arrays
Vibrator.vibrate(long[] pattern, int repeat) and
VibrationEffect.createWaveform(long[] timings, int[] amplitudes, int repeat)
expect an array of off/on pairs for both timings and amplitudes. Add an initial
off time of zero to achieve expected vibration behavior.
2020-07-20 16:13:58 -04:00
twinaphex 4ca1692174 (Qt) Style nits 2020-07-20 22:05:12 +02:00
twinaphex 9ecc30a501 Cleanups 2020-07-20 21:39:54 +02:00
twinaphex 49539dbef4 (Qt) Style nits 2020-07-20 21:37:15 +02:00
Autechre 80763e0376 Merge pull request #11053 from Ryunam/screenshot-adjustments
Adjustments to Screenshot Notification options
2020-07-20 20:23:38 +02:00
twinaphex 2ecb6e654e Cleanups 2020-07-20 20:22:13 +02:00
Ryunam 4d2fe14c1d Adjustments to Screenshot Notification options 2020-07-20 19:44:55 +02:00
twinaphex 465e84d60c (context drivers) Make names uniform 2020-07-20 18:22:33 +02:00
twinaphex 7574a80391 Change some context driver names 2020-07-20 18:15:37 +02:00
Autechre 65369ddf20 Merge pull request #11048 from hhromic/fix-version-git
(Makefiles) Use fallback directory in Git version checking
2020-07-20 17:55:01 +02:00
Autechre 11972c900c Merge pull request #11052 from jdgleaver/unix-free-mem
(Linux/Android) Fix reporting of free memory
2020-07-20 17:40:16 +02:00
jdgleaver aefeae4b50 (Linux/Android) Fix reporting of free memory 2020-07-20 16:22:12 +01:00
Autechre 0162bbc4b0 Merge pull request #11047 from jdgleaver/autoconfig-fixes
Input autoconfig fixes/improvements
2020-07-20 17:07:04 +02:00
Hugo Hromic bdf795eb45 (Makefiles) Use fallback directory in Git version checking
Addresses the case when OBJDIR is not defined, e.g. libnx builds.
2020-07-20 13:44:39 +01:00
jdgleaver 8e2901d23a Minor optimisations 2020-07-20 13:24:18 +01:00
jdgleaver 9b1edc5eee Input autoconfig fixes/improvements 2020-07-20 12:34:29 +01:00
twinaphex 994d6aee63 Cleanups 2020-07-20 06:48:02 +02:00
twinaphex a5a3d64b18 (Vulkan) Cleanups 2020-07-20 06:31:15 +02:00
twinaphex 9ac9309991 Optimize call to vulkan_present 2020-07-20 04:45:12 +02:00
twinaphex 0e9a86816e xinput_joypad_poll - make UWP codepath leading 2020-07-20 03:35:52 +02:00
Yoshi Sugawara b1a718d8c5 fixed typo in bundle id 2020-07-19 15:32:23 -10:00
Yoshi Sugawara 59ae1a1ca8 revert bundle id and product name 2020-07-19 15:25:24 -10:00
Yoshi Sugawara a5fd455c33 fixed setting default audio driver for coreaudio - no need to check for HAVE_COCOA_METAL 2020-07-19 15:19:15 -10:00
twinaphex abd3365a34 (XInput Joypad) Cleanups 2020-07-20 03:19:14 +02:00
twinaphex 5f7e8593d0 (DInput Joypad) Cleanups(DInput Joypad) Cleanups(DInput Joypad)
Cleanups(DInput Joypad) Cleanups(DInput Joypad) Cleanups(DInput Joypad)
Cleanups(DInput Joypad) Cleanups(DInput Joypad) Cleanups(DInput Joypad)
Cleanups
2020-07-20 03:04:18 +02:00
twinaphex 54b04af8de More buildfixes 2020-07-20 02:11:03 +02:00
twinaphex 4337ec33d7 Buildfix 2020-07-20 02:09:07 +02:00
twinaphex 7672367b8b Buildfix for --disable-screenshots 2020-07-20 02:07:04 +02:00
twinaphex 6be4adffdf Silence warning with --disable-menu 2020-07-20 02:04:43 +02:00
twinaphex c387071298 Add static globals TODO/FIXME note 2020-07-20 02:02:00 +02:00
twinaphex 9fb54a0a1c Fix --disable-menu 2020-07-20 01:58:49 +02:00
twinaphex cd2d4f2248 Revert "Remove input_x11_common.c and merge into x11_input.c"
This reverts commit a0948c1d9d.
2020-07-20 01:46:03 +02:00
twinaphex c4557c9bbc Revert "Update Griffin"
This reverts commit 98a7a1ba93.
2020-07-20 01:45:54 +02:00
twinaphex 98a7a1ba93 Update Griffin 2020-07-20 01:40:16 +02:00
twinaphex a0948c1d9d Remove input_x11_common.c and merge into x11_input.c 2020-07-20 01:39:55 +02:00
twinaphex b4be9b7e03 (input/connect) Cleanup axis functions 2020-07-20 01:36:13 +02:00
twinaphex 2efb1600a8 (BTStack) Cleanup 2020-07-20 01:32:45 +02:00
twinaphex 005a9c005e (IOHIDManager) Cleanup 2020-07-20 01:30:42 +02:00
twinaphex 632329f4bb We should probably allow the user to individually control the screenshot
flash
2020-07-20 01:11:08 +02:00
twinaphex 279e142668 Properly hide other notification visibility screenshot settings
when master one is disabled
2020-07-20 01:09:08 +02:00
twinaphex 6cba44328d (PSP) Buildfix 2020-07-20 00:58:57 +02:00
twinaphex 174675ee71 (Wii) Buildfix 2020-07-20 00:57:16 +02:00
twinaphex 74e5d366c8 (WiiU) Buildfix 2020-07-20 00:53:21 +02:00
twinaphex 36a76d1248 Take out my own implementation in favor of Ryunam's 2020-07-20 00:50:40 +02:00
Autechre 8861416b32 Merge pull request #11046 from Ryunam/screenshot-notification
Add options to control visibility, duration and flashing effect of Screenshot Notifications
2020-07-20 00:27:02 +02:00
Autechre bda956e7a8 Merge pull request #11045 from hhromic/imprv-version-git
(Makefiles) Improve version_git.o regeneration
2020-07-20 00:25:48 +02:00
Hugo Hromic ca8e465cae (Makefiles) Improve version_git.o regeneration
Only rebuild the git version object when the git hash changes.
2020-07-19 23:02:37 +01:00
twinaphex f06af20a4a Cleanups 2020-07-19 23:48:18 +02:00
Yoshi Sugawara b83823f1f1 Add preprocessor flags for tvOS and other build settings; fix compiler errors when building for tvOS sdk 2020-07-19 11:42:19 -10:00
Ryunam 5014f90e4d Add options to customize Screenshot notifications 2020-07-19 23:42:16 +02:00
twinaphex ccd9b8ead4 (Widgets) onscreen Notifications -> Add setting to enable/disable 'take
screenshot' widget individually
2020-07-19 23:26:14 +02:00
twinaphex 723b42f655 Cleanups 2020-07-19 22:44:46 +02:00
Autechre e7ea698d58 Merge pull request #11044 from hhromic/imprv-mem-status
(Menu/OSD) Implement configurable update interval for memory usage display
2020-07-19 22:15:13 +02:00
Hugo Hromic 1e3fb9505c (Menu/OSD) Implement configurable update interval for memory usage display
Obtaining system memory metrics is generally an expensive operation.
2020-07-19 19:57:50 +01:00
Yoshi Sugawara 941a488733 removed btstack since less relevant for iOS 2020-07-19 08:37:06 -10:00
Yoshi Sugawara 6692a8797f added comments on why native companion menu is disabled 2020-07-19 08:04:17 -10:00
Yoshi Sugawara 588d0b7595 removed commented out code 2020-07-19 08:02:17 -10:00
Yoshi Sugawara 42e4854245 replaced confusing ifdef with a more concise #if TARGET_OS_OSX 2020-07-19 07:57:10 -10:00
Yoshi Sugawara 3dc716299f replaced confusing ifdef with a more concise #if TARGET_OS_OSX 2020-07-19 07:54:47 -10:00
Yoshi Sugawara a2327be378 improved readability for references to the platform specific metal storage mode option; removed support for btstack since its not compiling and is less relevant for the iOS platform; removed commented out code 2020-07-19 07:48:07 -10:00
twinaphex 897a9de5be (drivers_joypad) Cleanup axis functions 2020-07-19 18:51:05 +02:00
Autechre ff01ed8cc3 Merge pull request #11043 from hhromic/rfctr-status-text
(Menu/OSD) Refactor "fps_text" into "status_text" internally
2020-07-19 18:13:25 +02:00
Hugo Hromic c3bf17d3f5 (Menu/OSD) Refactor "fps_text" into "status_text" internally
"fps_text" is used for several status parameters, not just FPS.
2020-07-19 16:58:58 +01:00
Yoshi Sugawara fd9ac64d55 Merge branch 'master' into yoshisuga/ios-metal 2020-07-19 00:33:54 -10:00
Yoshi Sugawara a19f1451cd removed debug logging statements; enable multi touch on metal view to support touchscreen controls; fixed setting the metal view drawable size based on the view bounds size in pixels 2020-07-19 00:11:15 -10:00
twinaphex f1fed5397a (Winraw) code de-duplication 2020-07-19 05:17:11 +02:00
twinaphex 2509a75477 (Udev) Code de-duplication 2020-07-19 05:07:50 +02:00
twinaphex 6e2c519513 (X11) Buildfix 2020-07-19 04:51:22 +02:00
twinaphex abc19cbe02 (X11) Cleanups 2020-07-19 04:48:14 +02:00
twinaphex 0207e29ee9 (Android) Cleanups 2020-07-19 04:13:23 +02:00
twinaphex 24f310a26d Small cleanup 2020-07-19 03:48:26 +02:00
twinaphex 18dcda09d0 (IOHIDManager) Another buildfix 2020-07-19 03:39:32 +02:00
twinaphex b8f9e38b7e (IOHIDManager) Buildfix 2020-07-19 03:38:07 +02:00
twinaphex b5a52755a0 Buildfix 2020-07-19 03:26:35 +02:00
twinaphex de73e3bff9 Buildfixes 2020-07-19 03:25:30 +02:00
twinaphex b1a6b35379 Buildfix 2020-07-19 03:23:07 +02:00
twinaphex 285b0ec0bb Buildfix 2020-07-19 03:20:41 +02:00
twinaphex d97e590aaf Reimplement multi button state functions 2020-07-19 03:18:12 +02:00
twinaphex 6540038c6b Updated PSL1GHT joypad driver's 'button' function 2020-07-18 23:10:55 +02:00
twinaphex ad2279bb29 Cleanups 2020-07-18 23:06:12 +02:00
Autechre 38a410105e Merge pull request #11039 from hhromic/fix-win32-mem
(Drivers/Frontend/Win32) Report "free" memory instead of "used" as per driver contract.
2020-07-18 22:39:29 +02:00
twinaphex cb5b22b6ac (Android) Refactor axis functions 2020-07-18 22:38:23 +02:00
Autechre f8d6cea02a Update udev_joypad.c 2020-07-18 21:56:27 +02:00
Hugo Hromic 3d356a46d5 (Drivers/Frontend/Win32) Report "free" memory instead of "used" as per driver contract. 2020-07-18 19:28:36 +01:00
twinaphex 08ad00f5d3 Start preparing for being able to grab multiple buttons at the same time 2020-07-18 19:51:14 +02:00
Yoshi Sugawara eed84b3021 re-created RetroArch_iOS11_Metal.xcodeproj with the appropriate compiler flags and fixed building for both metal and opengl; hardcoding the metal drawable size for now for testing 2020-07-18 07:47:10 -10:00
twinaphex 8b078662cd Change function signature of joypad driver's 'button' 2020-07-18 18:07:57 +02:00
twinaphex 34662e8fe8 (Context drivers) Cleanups - use egl_get_proc_address directly instead
of wrapper functions
2020-07-18 17:22:24 +02:00
twinaphex 7c66f0adbc Simplify win32_check_window 2020-07-18 17:09:07 +02:00
twinaphex 04a0c55add Cleanups 2020-07-18 16:54:14 +02:00
twinaphex 0ccb86d130 Cleanup 2020-07-18 14:15:23 +02:00
twinaphex 80c405ce52 Cleanups 2020-07-18 14:11:13 +02:00
twinaphex ef552ba768 Style nits/cleanups 2020-07-18 14:06:45 +02:00
twinaphex ebd62ecd78 Cleanups 2020-07-18 14:01:35 +02:00
twinaphex 8cfbe3b8d4 Cleanups 2020-07-17 20:35:11 +02:00
twinaphex 9f9d59f2be Cleanups 2020-07-17 16:46:00 +02:00
twinaphex 2e4938601a Cleanups 2020-07-17 16:34:11 +02:00
twinaphex 8390388f3f (DRM Go2) This global seems unused, remove it 2020-07-17 16:30:01 +02:00
twinaphex fcf0663baa (DRM CTX) Get rid of static globals - put them in struct 2020-07-17 16:26:57 +02:00
Autechre 5909f946d5 Merge pull request #11034 from Tatsuya79/patch-4
qt: add 'cheats applied' visibility toggle
2020-07-17 15:05:25 +02:00
Autechre d6a4345c44 Merge pull request #11037 from jdgleaver/hide-set-initial-disk-notifications
Add option to show/hide 'last used disc restored' notifications
2020-07-17 15:05:13 +02:00
Autechre 357e382452 Merge pull request #11035 from jdgleaver/load-content-anim-favorites-fix
(Load Content Animation) Fix detection of 'favourites' playlist
2020-07-17 15:04:59 +02:00
twinaphex 318c11129b Cleanups 2020-07-17 15:02:14 +02:00
twinaphex 5deb8f8bd8 Cleanups 2020-07-17 14:59:19 +02:00
twinaphex 1ca5958832 Cleanups 2020-07-17 14:57:00 +02:00
twinaphex 3983a19281 (Context drivers) Cleanups 2020-07-17 14:53:49 +02:00
twinaphex 7c66a7457a Go for a consistent return value 2020-07-17 14:44:57 +02:00
twinaphex b02d538a63 set_resize should not return false on success 2020-07-17 14:43:47 +02:00
twinaphex d2b749e0e6 Unnecessary 2020-07-17 14:19:17 +02:00
twinaphex d18f9fb137 Buildfix 2020-07-17 14:16:29 +02:00
twinaphex 1fb77c43a3 (X11) Split up X11 context into two - GL and Vulkan 2020-07-17 14:15:30 +02:00
twinaphex e8e9a7b1d3 Get rid of multiple definition of wayland show mouse function 2020-07-17 13:59:13 +02:00
twinaphex 5e2c38060b Update Griffin 2020-07-17 13:57:24 +02:00
twinaphex ebd140752a Update Makefile.common 2020-07-17 13:56:59 +02:00
twinaphex f4bc332bcd (Wayland) Split up Wayland context driver into two - GL and Vulkan 2020-07-17 13:55:25 +02:00
jdgleaver 230c1cdde2 Add option to show/hide 'last used disc restored' notifications 2020-07-17 12:52:28 +01:00
twinaphex 501f737249 (Android) Split up Android context driver into two - GL and Vulkan 2020-07-17 13:45:37 +02:00
twinaphex 8ab4c23deb Move another context driver to VK context drivers 2020-07-17 13:21:44 +02:00
jdgleaver c1f67d3f72 (Load Content Animation) Fix detection of 'favourites' playlist 2020-07-17 10:49:06 +01:00
Tatsuya79 ed9aa75314 qt: add 'cheats applied' visibility toggle 2020-07-17 10:46:17 +02:00
twinaphex 2ff2604e69 MSVC buildfix 2020-07-17 04:35:01 +02:00
twinaphex cbca370d76 Split up wgl_ctx.c into two files - GL and Vulkan 2020-07-17 04:28:26 +02:00
twinaphex c9398a3855 (gfx widgets) Remove dead code 2020-07-17 04:06:02 +02:00
twinaphex 36b581c733 Add 'Show Cheats Applied' onscreen notification visibility setting 2020-07-17 03:32:22 +02:00
twinaphex baa349f2ec Cleanup 2020-07-17 02:32:37 +02:00
twinaphex df73277ca8 (WGL) Bind different callback for Vulkan 2020-07-17 02:31:12 +02:00
twinaphex ea920b1aaf Silence warning 2020-07-17 02:18:32 +02:00
twinaphex 105e135e48 Cleanup 2020-07-17 01:20:31 +02:00
twinaphex 6a5770af6d Cleanups 2020-07-17 01:17:37 +02:00
twinaphex 707b40d116 Cleanups 2020-07-17 01:09:00 +02:00
twinaphex be1e245396 Cleanups 2020-07-17 00:59:20 +02:00
twinaphex 318d5490cd Cleanups 2020-07-17 00:50:06 +02:00
twinaphex 2630727daa Start preparing groundwork for separate context_drivers 2020-07-17 00:44:30 +02:00
twinaphex 2ef69d61ed Remove two unused functions 2020-07-17 00:29:01 +02:00
Autechre bbe234898f Merge pull request #11030 from hhromic/menu-imprv
(Menu) General usability improvements for setting defaults
2020-07-16 18:55:18 +02:00
Autechre b4a2589279 Merge pull request #11032 from guoyunhe/github-action-crowdin
GitHub Action for Crowdin
2020-07-16 18:54:52 +02:00
Autechre 466db54e9c Merge pull request #11033 from jdgleaver/notification-visibility
Add 'Notification Visibility' menu
2020-07-16 18:15:35 +02:00
jdgleaver 75b3b5350c Add 'Notification Visibility' menu 2020-07-16 16:32:01 +01:00
Guo Yunhe b36c9d6723 GitHub Action for Crowdin 2020-07-16 15:09:27 +03:00
twinaphex 324eb4f098 (UWP) Buildfix 2020-07-16 11:49:15 +02:00
Autechre deba9fa531 Merge pull request #11031 from hhromic/patch-1
Update .gitignore
2020-07-16 11:47:50 +02:00
Hugo Hromic da9ab75e18 Update .gitignore
Added missing RetroArch generated files.
2020-07-16 09:39:25 +01:00
Hugo Hromic f4dec615ef (Menu) General usability improvements for setting defaults 2020-07-16 09:17:10 +01:00
twinaphex b8cc047d20 (context drivers) Cleanups 2020-07-16 03:40:52 +02:00
Autechre 343a04e2b8 Merge pull request #11027 from schellingb/archive_cleanup_1b
Use MMAP again for ZIP loading/parsing
2020-07-16 03:28:54 +02:00
Bernhard Schelling b03cdbd0da First set of cleanups to archive handling (Rev B)
- Don't read the entire archive file into memory on systems without HAVE_MMAP
- Support ZIP files between 2GB ~ 4GB on 32bit architectures
- Remove zip exclusive members from `file_archive_transfer`
- Add `zip_context_t` for zip like the already existing `sevenzip_context_t`
- Unify cleanups of zip and 7z in `file_archive_file_backend::archive_parse_file_free`
- Handle some sizes and offsets as int64_t (preparation for future Zip64 support)
- Handle ZIP compression methods in `zlib_stream_decompress_data_to_file_init` not in `file_archive_perform_mode`
- Return progress of 7z iterating with `file_archive_parse_file_progress`
- Uses MMAP where available, for files up to 256MB
2020-07-16 02:47:59 +09:00
Twinaphex 367530683c Get rid of unused variables 2020-07-15 19:47:45 +02:00
Autechre 5b693b2ab4 Merge pull request #11023 from jdgleaver/task-autodetect
Rewrite 'task_autodetect.c': Ensure thread safety + clean-ups/rationalisation
2020-07-15 16:08:10 +02:00
twinaphex d3c8704417 Build fix 2020-07-15 13:38:20 +02:00
Yoshi Sugawara 897aee0bcf add more logging, use autolayout constraints to pin metal view to superview to support orientation changes easier 2020-07-14 17:49:38 -10:00
Autechre e6608c6fd0 Merge pull request #11024 from valadaa48/oga_gfx_msg_fix
oga_gfx: fix last character from being chopped in on-screen messages
2020-07-15 03:46:57 +02:00
valadaa48 9bbf191523 oga_gfx: fix last character from being chopped in on-screen messages 2020-07-14 21:43:19 -04:00
twinaphex 9a34e9799a Cleanups 2020-07-15 03:22:01 +02:00
twinaphex 2427ebe0e8 Cleanups 2020-07-15 03:12:56 +02:00
twinaphex 47f86711a5 Cleanups 2020-07-15 03:08:56 +02:00
twinaphex 07b075c16f Cleanup 2020-07-15 02:59:02 +02:00
twinaphex 8696d292da Cleanup 2020-07-15 02:54:27 +02:00
twinaphex 014d0fafb4 (DRM) Cleanups 2020-07-15 02:45:34 +02:00
twinaphex f707994cb8 Get rid of gfx_ctx_network 2020-07-15 02:37:50 +02:00
jdgleaver 84a71ea133 Rewrite 'task_autodetect.c': Ensure thread safety + clean-ups/rationalisation 2020-07-14 17:46:58 +01:00
twinaphex 03c7403a05 Cleanups 2020-07-14 16:37:02 +02:00
twinaphex e416d96769 (UWP EGL) Cleanups 2020-07-14 16:27:49 +02:00
twinaphex 748e3dccf2 (wayland) buildfixes 2020-07-14 16:20:15 +02:00
twinaphex b7c2cbc6b2 Move flush_wayland_fd to input/common/wayland_common.c 2020-07-14 16:17:43 +02:00
twinaphex 4009919eca (Wayland) Fix code duplication 2020-07-14 16:14:47 +02:00
twinaphex 3d4a13e5b7 (Wayland) Add missing header 2020-07-14 16:10:01 +02:00
twinaphex 3cb1b7b4bb (Wayland) Move more code 2020-07-14 16:09:13 +02:00
twinaphex 646d627a6c Move more Wayland code 2020-07-14 16:04:10 +02:00
twinaphex 1f4a27abba Split up wayland code 2020-07-14 15:56:52 +02:00
Autechre 6a27bbfb42 Merge pull request #11018 from guoyunhe/crowdin-20200714
Fetch translations from Crowdin
2020-07-14 15:25:32 +02:00
Autechre e4281b0b8f Merge pull request #11019 from hhromic/patch-1
Update CHANGES.md
2020-07-14 15:25:19 +02:00
Hugo Hromic f21d8f6e63 Update CHANGES.md
Correct this CHANGELOG entry according to recent changes.
2020-07-14 14:10:04 +01:00
twinaphex 88f742894d Move wayland header to input/common 2020-07-14 14:32:37 +02:00
Guo Yunhe 6dfebe10cb Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
Autechre c3d18f118a Update CHANGES.md 2020-07-14 10:19:37 +02:00
Autechre a76274a884 Merge pull request #11017 from dylanscott20/master
(Emscripten) Fix input code to ignore unknown keys
2020-07-14 10:19:01 +02:00
Dylan Scott b4ac13cc5a (Emscripten) Fix input code to ignore unknown keys 2020-07-14 03:33:55 -04:00
twinaphex 3297e464c4 (Input) Optimize input bitmask codepath 2020-07-14 01:39:07 +02:00
twinaphex b6432cd8b4 (ffmpeg core) Use bitmasks 2020-07-14 01:27:19 +02:00
twinaphex 06064a0527 Revert "Bring back MMAP support"
This reverts commit 32dcff3880.
2020-07-13 23:52:23 +02:00
twinaphex c524733841 Merge branch 'master' of https://github.com/libretro/RetroArch 2020-07-13 21:46:38 +02:00
Autechre e87a96b5a2 Merge pull request #11009 from schellingb/archive_cleanup_1
First set of cleanups to archive handling
2020-07-13 21:46:23 +02:00
twinaphex c84aa90075 Merge branch 'archive_cleanup_1' of git://github.com/schellingb/RetroArch 2020-07-13 21:30:02 +02:00
twinaphex ed9d40caa2 (DRM) Cleanups 2020-07-13 20:24:14 +02:00
Bernhard Schelling 32dcff3880 Bring back MMAP support
Will be used where available for files up to 256MB
2020-07-14 03:04:01 +09:00
Bernhard Schelling c05f1e91fc Fix another memory leak that was there originally
When loading a single file out of a ZIP with many files it leaked memory allocated for all found filenames that weren't requested.
2020-07-14 03:00:47 +09:00
Bernhard Schelling a978b939ff Fix C89 build 2020-07-14 01:56:48 +09:00
Bernhard Schelling 54db0fe515 Fix memory leak
Properly release buffers for extracted files from ZIP
Use RETRO_VFS_SEEK_POSITION_START instead of SEEK_SET for filestream_seek
2020-07-14 00:29:46 +09:00
twinaphex 750140779c (libretro-common) Fix 2020-07-13 16:18:46 +02:00
twinaphex 0a492a49be (Vulkan) Fix regression 2020-07-13 15:22:27 +02:00
Autechre 171f7620b2 Merge pull request #11014 from Herdinger/entitlements
Fix Metal build not being able to load cores
2020-07-13 00:25:47 +02:00
Eduard Strehlau c3fe8f1203 Misread that memory protection includse libary validation 2020-07-12 23:49:41 +02:00
Autechre 6ad9df2c3e Update CHANGES.md 2020-07-12 19:18:21 +02:00
Autechre 84ca79fcc1 Merge pull request #11006 from Jamiras/save_task_wait
only wait for save task to complete
2020-07-12 19:14:04 +02:00
Autechre 5b50b498f6 Merge pull request #11012 from meleu/patch-12
Option to play sound on achievement unlock.
2020-07-12 17:45:46 +02:00
meleu 935bbd538d Option to play sound on achievement unlock. 2020-07-12 12:29:13 -03:00
Jamiras 6f964681ae update comment 2020-07-12 08:21:02 -06:00
twinaphex 5cdda30d5a Do away with HAVE_MENU ifdef 2020-07-12 15:48:21 +02:00
twinaphex 6248b1f30a (task_content.c) Cut down on some code duplication 2020-07-12 15:45:44 +02:00
Autechre 72edc1ac7c Merge pull request #11010 from Jamiras/cheevos_sound
(cheevos) add option to play custom sound on achievement unlock
2020-07-12 13:32:59 +02:00
twinaphex be0148406e fill_pathname_application_dir - cleanup 2020-07-11 19:45:24 +02:00
twinaphex 8656b3d6f8 Create specialized optimized path_basedir_size 2020-07-11 19:29:43 +02:00
Jamiras 96c5f5dfb0 add option to play custom sound on achievement unlock 2020-07-11 10:56:09 -06:00
Bernhard Schelling 0ddb073784 First set of cleanups to archive handling
- Don't read the entire archive file into memory on systems without HAVE_MMAP
- Support ZIP files between 2GB ~ 4GB on 32bit architectures
- Remove zip exclusive members from `file_archive_transfer`
- Add `zip_context_t` for zip like the already existing `sevenzip_context_t`
- Unify cleanups of zip and 7z in `file_archive_file_backend::archive_parse_file_free`
- Handle some sizes and offsets as int64_t (preparation for future Zip64 support)
- Handle compression methods in `zlib_stream_decompress_data_to_file_init` not in `file_archive_perform_mode`
- Return progress of 7z iterating with `file_archive_parse_file_progress`
2020-07-12 00:51:35 +09:00
Autechre 347d1964ba Merge pull request #11007 from schellingb/x_ctx_missing_header
Add missing header (for non griffin builds)
2020-07-11 17:04:45 +02:00
twinaphex 2f8f783d5c Small cleanup in content_load 2020-07-11 16:35:12 +02:00
twinaphex 2dd5ea66a1 Simplify content_file_init_subsystem 2020-07-11 16:24:10 +02:00
twinaphex 40cf0e13e7 (Load content) Don't try to log every single argument by default 2020-07-11 16:11:52 +02:00
Bernhard Schelling 2226226663 Add missing header (for non griffin builds) 2020-07-11 23:02:18 +09:00
twinaphex 8436b7fc6a Cleanup command_evnt_cmd_exec 2020-07-11 16:00:42 +02:00
twinaphex 46fd40b574 Use std::string concatenation instead of std::ostringstream 2020-07-11 08:24:13 +02:00
twinaphex 7a0338f5cc CXX_BUILD fix 2020-07-11 08:12:57 +02:00
Autechre 3ffc4fe687 Merge pull request #11005 from hhromic/video-null-sighandler
(Drivers/Video) Implement frontend signal handling in null video driver
2020-07-11 05:26:52 +02:00
Jamiras 9aa42c9d5e only wait for save task to complete 2020-07-10 20:18:03 -06:00
Hugo Hromic f9f4a69512 (Drivers/Video) Implement frontend signal handling in null video driver
Allows RetroArch to gracefully exit when receiving stop signals, e.g.
`SIGINT` or `SIGTERM`, when using the null video driver.
2020-07-11 00:12:32 +01:00
Autechre 5ebce6a238 Merge pull request #11002 from Tatsuya79/patch-4
QT: add "load content" animation option
2020-07-10 18:57:50 +02:00
Tatsuya79 91cc250976 QT: add "load content" animation option
Adds an option into the OSD menu for https://github.com/libretro/RetroArch/pull/10992.
2020-07-10 18:49:50 +02:00
Autechre e2eba31fea Merge pull request #11000 from hhromic/impl-null-input
(Drivers/Input) Implement no-op stubs for null input driver
2020-07-10 18:00:19 +02:00
Hugo Hromic 8123c0c0ec (Drivers/Input) Implement no-op stubs for null input driver
Prevents RetroArch from crashing if the "null" input driver is used with
the "null" video driver which provides no input driver.
2020-07-10 16:43:18 +01:00
twinaphex 5b21d660ed (glslang) Don't compile in OSDependent/Windows/main.cpp 2020-07-10 13:20:14 +02:00
Autechre eb85f49aed Merge pull request #10999 from jdgleaver/float-checked-item-fix
Fix 'current item' marker position in float drop-down lists
2020-07-10 12:55:03 +02:00
jdgleaver 73b502a16d Fix 'current item' marker position in float drop-down lists 2020-07-10 11:44:18 +01:00
twinaphex 39d3dd4b3c Revert vulkan_framebuffer_generate_mips 2020-07-10 11:20:50 +02:00
Autechre a063133a96 Merge pull request #10997 from Herdinger/entitlements_fix
Fixed entitlements
2020-07-10 06:51:55 +02:00
Eduard Strehlau 53ab46f88b Fixed entitlements 2020-07-10 06:20:46 +02:00
Autechre e3353bb46c Merge pull request #10996 from Herdinger/add_hardened_runtime_entitlements
Add hardened runtime entitlements
2020-07-10 05:20:25 +02:00
twinaphex 74e71d6d08 Revert "Update .travis.yml"
This reverts commit ef18704d63.
2020-07-10 05:19:46 +02:00
Eduard Strehlau 8058618b26 Added entitlement file to project settings 2020-07-10 05:02:11 +02:00
Eduard Strehlau 04f5402f8a Added entitlements file 2020-07-10 04:57:19 +02:00
Francisco José García García dc01bf8d46 [Vita][GL] Fix returning to menu and clear for fake hw render 2020-07-09 18:49:22 +02:00
twinaphex 375d6b9a2c (Emscripten) Buildfix 2020-07-09 17:32:13 +02:00
Autechre 58d508d77e Update CHANGES.md 2020-07-09 15:44:50 +02:00
Autechre 0de7ac247a Merge pull request #10993 from schellingb/invalid_dinput_calls
Fix invalid calls to dinput_handle_message when input driver is not set to dinput
2020-07-09 15:42:55 +02:00
Bernhard Schelling e0a9ded6a3 Fix invalid calls to dinput_handle_message when input driver is not set to dinput 2020-07-09 22:32:43 +09:00
twinaphex 4c5f4b244a (Sixel) Buildfixes 2020-07-09 15:07:06 +02:00
Autechre 4e951ee79c Merge pull request #10992 from jdgleaver/load-content-animation
Add optional widget-based 'load content' launch feedback animation
2020-07-09 14:39:33 +02:00
jdgleaver 506aa0a36c Add optional widget-based 'load content' launch feedback animation 2020-07-09 13:05:28 +01:00
twinaphex 4319379d57 Fix non-HAVE_NETWORKING targets 2020-07-09 13:39:15 +02:00
twinaphex 3fd7338df1 Cleanups 2020-07-09 10:36:49 +02:00
twinaphex d0736a1797 (MSVC) Buildfixes 2020-07-09 10:20:27 +02:00
twinaphex 77d630a0a5 (GDI) Only render framebuffer texture when menu is enabled 2020-07-09 09:40:13 +02:00
twinaphex 35762e07cb (GDI) Get rid of memory allocation per frame 2020-07-09 09:34:06 +02:00
twinaphex f56b6a3a0f (GDI) Merge gdi_ctx.c into gdi_gfx.c 2020-07-09 09:25:10 +02:00
twinaphex ba5d735e2c CLeanup 2020-07-09 09:01:23 +02:00
twinaphex d81f426060 Cleanups 2020-07-09 08:17:50 +02:00
twinaphex 255332c989 Remove sixel_ctx.c 2020-07-09 08:12:47 +02:00
twinaphex 6b466c6013 Cleanups 2020-07-09 07:46:40 +02:00
twinaphex f6c4890063 Get rid of cb_set_resize 2020-07-09 05:36:29 +02:00
twinaphex e10f4eed8d (Vulkan) Cleanups 2020-07-09 03:48:42 +02:00
twinaphex 9a148f6d48 Cleanups 2020-07-09 03:11:11 +02:00
twinaphex b0157cd47d CLeanups 2020-07-09 03:00:55 +02:00
twinaphex 364ee31712 (sixel) Simplifications 2020-07-09 02:55:25 +02:00
twinaphex 68aa5dc0db Move more global state to rarch_state 2020-07-09 02:41:13 +02:00
twinaphex 638d692d2e Cleanups 2020-07-09 02:35:32 +02:00
twinaphex 298413dce8 Cleanups 2020-07-09 00:33:19 +02:00
twinaphex e48ffd14cd Cleanups 2020-07-09 00:24:09 +02:00
Autechre aa40dbd337 Merge pull request #10988 from HyperspaceMadness/master
Changed SLANG_NUM_BINDINGS to 16 to fix D3D11 crash
2020-07-08 20:20:21 +02:00
HyperspaceMadness 5ceb30fc1b Changed SLANG_NUM_BINDINGS to 16 for D3D11 Fix 2020-07-08 12:06:59 -04:00
HyperspaceMadness f82b2ef9a0 Merge pull request #1 from libretro/master
Update to Latest
2020-07-08 11:00:12 -04:00
twinaphex 2bdec2d0b3 Move content_state global state to rarch_state 2020-07-08 11:48:33 +02:00
twinaphex ae86cbaa3d Move non-Salamander code in frontend_driver.c outside to retroarch.c 2020-07-08 01:39:58 +02:00
Autechre d507553c74 Merge pull request #10983 from hhromic/imprv-null-drivers
(Menu/Drivers) Improve null driver protection for critical drivers
2020-07-08 01:17:27 +02:00
Hugo Hromic 61aed8b911 (Menu/Drivers) Implement null driver protection for critical drivers
Can prevent the user from locking him/herself out of the program using the UI.
Protected drivers: input, joypad, hid, video and menu.

Note: Developer users can always override this protection by manually editing
the active configuration file or using `--appendconfig`.
2020-07-07 22:54:45 +01:00
Hugo Hromic 103d5dbf45 (Drivers) Cleanup unused add_null_entries parameter
Null driver entries will be now handled at the UI level.
2020-07-07 22:54:45 +01:00
Hugo Hromic c985dcc84d Revert "Add 'Ignore null drivers' setting"
This reverts commit f16f3d2968.
2020-07-07 22:54:45 +01:00
twinaphex b94a3928e4 (MSVC) Buildfix 2020-07-07 21:04:45 +02:00
Autechre 0bd8ffef04 Update CHANGES.md 2020-07-07 20:23:15 +02:00
Yoshi Sugawara 82d6d8e876 add the metal view to the view controller view after initializing the metal view for iOS 2020-07-07 08:19:46 -10:00
Yoshi Sugawara 8e1dd5def1 protocol conformance for ApplePlatform for iOS; add metal shader functions files to xcode project 2020-07-07 05:38:50 -10:00
Yoshi Sugawara 6308ba1acb support ApplePlatform for iOS and conform app delegate class to it, move app delegate class to apple_platform.h, fix metal references for iOS 2020-07-07 05:03:42 -10:00
Autechre 6df4e7778f Merge pull request #10973 from HyperspaceMadness/master
Increased Slang Max Params, Textures & Passes
2020-07-07 12:07:00 +02:00
Autechre abfd0ed030 Merge pull request #10959 from jdgleaver/static-core-load
(Static Platforms) Add option to not restart RetroArch when launching content with the currently loaded core
2020-07-07 11:45:18 +02:00
twinaphex 2401f116ee Revert "Add 7:3 aspect ratio"
This reverts commit 40a11e9407.
2020-07-07 11:44:57 +02:00
twinaphex 0a1942f528 Turn fifo_read_avail and fifo_write_avail into macros 2020-07-07 08:13:32 +02:00
twinaphex 11872ea157 Revert "Make Threaded Video an option that requires a restart"
This reverts commit 05d11f6c1d.
2020-07-07 07:49:33 +02:00
twinaphex 05d11f6c1d Make Threaded Video an option that requires a restart 2020-07-07 07:44:23 +02:00
twinaphex 6e59d52184 Cleanups/comments 2020-07-07 05:58:07 +02:00
twinaphex 5790f13798 Add comments 2020-07-07 03:49:54 +02:00
twinaphex 00518d3470 Add TODO/FIXME notes 2020-07-07 03:02:55 +02:00
Autechre 94e728ceda Update CHANGES.md 2020-07-07 01:18:34 +02:00
Autechre 5eb0b96438 Merge pull request #10977 from Jamiras/rcheevos_91
upgrade to rcheevos 9.1
2020-07-07 01:18:06 +02:00
twinaphex da0e87cc63 Add comment 2020-07-07 00:07:38 +02:00
twinaphex 6088c3b301 (win32 display server) Turn function static 2020-07-07 00:06:46 +02:00
twinaphex 3ad0187012 (Qt) Attempted fix for Qt 2020-07-06 19:27:05 +02:00
Jamiras 05845fc5d7 upgrade to rcheevos 9.1 2020-07-06 07:33:10 -06:00
Autechre 83038ed4f7 Merge pull request #10975 from fjtrujy/salamanderPS2
[PS2]Typo in the RetroArch boot
2020-07-06 10:24:57 +02:00
Francisco Javier Trujillo Mata af839ad726 Typo in the RetroArch boot 2020-07-06 10:23:20 +02:00
twinaphex 7c3f227cab (ffmpeg) Cleanup 2020-07-06 10:19:48 +02:00
twinaphex 7895722f03 Revert "Refactor CHECK_INPUT_DRIVER_BLOCK_HOTKEY"
This reverts commit b9cb839abf.
2020-07-06 10:15:59 +02:00
Francisco José García García f763d94d00 [Vita] Fix make clean 2020-07-06 09:41:30 +02:00
twinaphex b9cb839abf Refactor CHECK_INPUT_DRIVER_BLOCK_HOTKEY 2020-07-06 09:28:08 +02:00
twinaphex ff810482f7 Update autoconfig.diff 2020-07-06 09:17:57 +02:00
twinaphex ac1cbfe858 Put this in separate .diff for now 2020-07-06 07:55:55 +02:00
twinaphex ccf1a072a8 (glslang) doc.cpp is not necessary either 2020-07-06 05:16:01 +02:00
Autechre c10d94b15e Merge pull request #10972 from keithbowes/system-glslang-fix
Fix detection of system glslang
2020-07-06 05:07:37 +02:00
HyperspaceMadness 7c6bb925c4 Increased Slang Max Params, Textures & Passes 2020-07-05 13:45:58 -04:00
twinaphex 79cc4f9c4f Revert "Start going through wrapper functions for access to input_device_names"
This reverts commit 92293525c1.
2020-07-05 16:41:55 +02:00
Autechre e8f4db39b2 Merge pull request #10967 from Rinnegatamante/patch-3
[VITA] Improve custom bubbles stability.
2020-07-05 16:38:36 +02:00
Autechre 22e6bf8bae Merge pull request #10971 from Jamiras/gfx_widgets_achievements
pass correct userdata object to gfx_display functions
2020-07-05 16:37:55 +02:00
Autechre c4e54d13d9 Merge pull request #10970 from stenzek/vulkan-create-buffer
(Vulkan) Fix incorrect structure type in vulkan_create_buffer
2020-07-05 16:36:57 +02:00
Jamiras 00fad3c6d0 pass correct userdata object to gfx_display functions 2020-07-05 07:49:44 -06:00
Connor McLaughlin 7b7cffd545 (Vulkan) Fix incorrect structure type in vulkan_create_buffer 2020-07-05 22:36:58 +10:00
Francisco José García García e21558c207 [VITA] Fix a typo in renaming mem_init to vgl_mem_init 2020-07-05 12:34:48 +02:00
Francisco José García García 1af9fb9247 Merge pull request #10968 from libretro/vitashark
[VITA] Add support for provided runtime shader compiler
2020-07-05 12:16:36 +02:00
Francisco José García García 3227dbcfe8 [VITA] Fix VitaGL and add VitaShaRK 2020-07-05 12:11:36 +02:00
Francisco José García García 6004d2db39 Merge commit '2b1146d46e4993dd936f21ef713be88c7bcfc718' as 'deps/vitaShaRK' 2020-07-05 11:56:47 +02:00
Francisco José García García 2b1146d46e Squashed 'deps/vitaShaRK/' content from commit f54dc7bdd5
git-subtree-dir: deps/vitaShaRK
git-subtree-split: f54dc7bdd5cb14fb9de9dc21962ccd8b6938e56d
2020-07-05 11:56:47 +02:00
Francisco José García García a2af2f6d61 Merge commit '51922ea5be5e2448b1cbde5f6c083b62e092389c' 2020-07-05 11:54:55 +02:00
Francisco José García García 51922ea5be Squashed 'deps/vitaGL/' changes from c816fec50f..2934af8af0
2934af8af0 Added Patreon sponsor link.
c8f18b6f0f Getting current program only when required for vglDrawObjects.
4c5d136b0d Added directive to enable vitaShaRK usage from cmd.
4a10df3be5 Minor adjustments and bugfixes.
14a0124acf Added GL_TEXTURE_LOD_BIAS support.
40c8c6205e Added GL_NONE def and fixed glUniform4f impl.
868079c51e Added glUniform4f implementation.
0a682cbad2 Typo fix.
be3ce61ae7 Added GL_DEPTH_BITS and GL_STENCIL_BITS support.
21e6d1d330 Added runtime shader compiler support.
696e40bc62 Beautify error handler code.
537b37b110 Added glUniform3fv implementation.
7dd1403015 Fixed GLenum size and added missing types defines.
0c75f27ff1 Moved to NEON optimized memcpy usage.
98951895de Added gluPerspective implementation.
23e0b0b309 Fix for vglInitExtended not working on sys app mode.
4989c33ef5 Run clang-format.
429f1c1d8a Added system mode support.
9231680d02 Initializing sceGxm before free mem checking on vglInitExtended.
091e5e7882 Added vglInitWithCustomSizes.
f4c646ea78 Added vglSetParamBufferSize.
1b9a063c41 Beautify some code.
089e81efc5 Fix for duplicated symbols
789dcbf812 Typo fix in readRGBA4444.
1514a4b2cb Disabling lto due to it being broken on vitasdk with gcc 9.1.
fca18d9ab7 Added support for RGBA4444 texture format.
d449f12808 Added support for RGB565 texture format.

git-subtree-dir: deps/vitaGL
git-subtree-split: 2934af8af083a9acf598ab75233c518a251c6f0d
2020-07-05 11:43:47 +02:00
twinaphex 92293525c1 Start going through wrapper functions for access to input_device_names 2020-07-05 10:33:21 +02:00
twinaphex 20ed3be455 Minor cleanup 2020-07-05 10:28:26 +02:00
twinaphex f08ce88179 Turn this static 2020-07-05 10:27:07 +02:00
Rinnegatamante aae46f1ea9 [VITA] Improve custom bubbles stability. 2020-07-05 10:26:44 +02:00
twinaphex 9b228a5f00 (menu displaylist) Add ifdefs 2020-07-05 10:14:40 +02:00
twinaphex 40a11e9407 Add 7:3 aspect ratio 2020-07-05 09:23:32 +02:00
twinaphex ce98bbd395 Put this under HAVE_RUNAHEAD ifdef 2020-07-05 05:33:53 +02:00
twinaphex a3c1d4ac98 (query.c) Cleanups 2020-07-05 04:21:27 +02:00
twinaphex c1634914d6 (libretro-db) Cleanup 2020-07-05 02:52:56 +02:00
twinaphex 69b457a427 (libretro-db) Pass tmp_error_buff around to other functions 2020-07-05 02:50:46 +02:00
twinaphex d5bdec3f60 (net_http) Refactor 2020-07-05 00:51:41 +02:00
Autechre 9edd265bf4 Merge pull request #10964 from Jamiras/cheevos_lboard_zero
(cheevos) allow submission of 0 for leaderboard values
2020-07-04 16:49:10 +02:00
Jamiras a2cfc881a4 allow submission of 0 for leaderboard values 2020-07-04 07:20:51 -06:00
twinaphex 6fcd1406c3 Backport https://github.com/jtkukunas/zlib/commit/89245c0a84eac0c5cfc6f0eb2fe72854f4b2c9e6#diff-327188edf18799ffbb5a51cc69f797e8 2020-07-03 22:18:11 +02:00
twinaphex 2063f4ac41 (libz) Backport https://github.com/jtkukunas/zlib/commit/9852c209ac49c0d8d1192e46115d7c37d4344bbd 2020-07-03 22:16:40 +02:00
twinaphex da9a0786f7 (zlib) Backport https://github.com/jtkukunas/zlib/commit/60a5ecc62b18d1e2391993b1fcfc10e100720642#diff-e17b59778d9aff01f3b9b23f56d76d48 2020-07-03 19:21:45 +02:00
twinaphex b1d82f1b27 (zlib) Backport https://github.com/jtkukunas/zlib/commit/44e8ac810d7d50381429a15cdc6e48816beafd2b#diff-327188edf18799ffbb5a51cc69f797e8 2020-07-03 19:05:32 +02:00
twinaphex 9aa27010b8 (zlib) Backports from https://github.com/jtkukunas/zlib 2020-07-03 18:58:55 +02:00
jdgleaver e87b8311c8 (Static Platforms) Add option to not restart RetroArch when launching content with the currently loaded core 2020-07-03 17:12:23 +01:00
twinaphex 85d3a3723e (Vulkan) VULKAN_TRANSFER_IMAGE_OWNERSHIP - reuse existing macro 2020-07-03 18:05:40 +02:00
twinaphex 09180e64b5 Start unifying more macros 2020-07-03 18:00:40 +02:00
twinaphex a7a74a1d92 Cleanup 2020-07-03 17:51:07 +02:00
twinaphex 276e86a403 (Vulkan) Turn some of these functions into macros 2020-07-03 17:48:46 +02:00
twinaphex 25f682249f (Vulkan) Turn vulkan_image_layout_transition into macro 2020-07-03 08:45:53 +02:00
twinaphex 7a22eb1f44 Turn vulkan_image_layout_transition_levels into macro 2020-07-03 08:32:33 +02:00
twinaphex 108dc26c86 (MSVC 2010) Buildfix 2020-07-03 08:04:15 +02:00
twinaphex 4489e5490d Add more tests 2020-07-03 01:34:54 +02:00
twinaphex 8dd4819fd3 (libz) Replace two callocs with malloc 2020-07-02 23:57:54 +02:00
twinaphex 60c0470a88 (deps/libz) Cleanups 2020-07-02 20:48:54 +02:00
twinaphex 1f86ea1c4c (deps/libz) Cleanups 2020-07-02 18:55:54 +02:00
twinaphex c86ba43c73 (deps/libz) Cleanups 2020-07-02 18:48:23 +02:00
twinaphex f14f418eb7 Revert "improve performance by enabling game mode"
This reverts commit fed9490471.
2020-07-02 18:10:00 +02:00
twinaphex 21c3072ffb Fix menu 2020-07-02 17:14:31 +02:00
twinaphex 02ed18a93d Fix issues to do with HAVE_REWIND 2020-07-02 17:13:01 +02:00
Francisco José García García d66493ba9e Add HAVE_SCREENSHOTS 2020-07-02 16:58:26 +02:00
Autechre 45f6f1f360 Merge pull request #10873 from IlDucci/master
Updating the Spanish translation in the area that is not yet compatible with the Crowdin system.
2020-07-02 07:26:31 +02:00
twinaphex d9b4b44091 (Winraw) Cleanups 2020-07-02 07:07:42 +02:00
twinaphex a3c687f0a6 Add HAVE_WINRAWINPUT 2020-07-02 06:43:36 +02:00
twinaphex 41b0fd6f50 (cdrom) Don't bake in media_detect_cd.c when HAVE_CDROM is not defined 2020-07-02 06:35:00 +02:00
twinaphex 47e22d69bf Add HAVE_VIDEO_FILTER 2020-07-02 06:28:14 +02:00
twinaphex ac67463ebc Add HAVE_SCREENSHOTS ifdef 2020-07-02 02:16:47 +02:00
twinaphex 3ee788def2 Add HAVE_DSP_FILTER 2020-07-02 02:13:04 +02:00
twinaphex 2827fdcc71 (libz) Don't bake in compress.c and uncompress.c 2020-07-02 01:17:27 +02:00
twinaphex 169bb24ca1 (deps/libz) Cleanups 2020-07-02 01:10:36 +02:00
twinaphex 937396d784 (deps/libz) Cleanups 2020-07-01 23:43:32 +02:00
twinaphex b3d12c3dc9 (deps/libz) Backport https://github.com/madler/zlib/commit/9aaec95e82117c1cb0f9624264c3618fc380cecb 2020-07-01 23:39:26 +02:00
Autechre 043a60633f Merge pull request #10951 from fjtrujy/salamanderPS2
WIP: PS2 Salamander and multi-core
2020-07-01 21:18:53 +02:00
twinaphex d6bd12277f Hide Network Settings and Cheevos screens if HAVE_NETWORKING
and/or HAVE_CHEEVOS are not defined
2020-07-01 21:10:19 +02:00
twinaphex 87b9c2a367 Add HAVE_REWIND switch 2020-07-01 21:04:05 +02:00
twinaphex 96dd505a0f (libchdr) Backport baka0815 commits 2020-07-01 19:50:46 +02:00
twinaphex 6bdc9795e7 (libchdr) Backport https://github.com/rtissera/libchdr/commit/f08156f9471b637c0f41b7fcf1b96f98566204be 2020-07-01 19:44:17 +02:00
twinaphex 5ded7872de (libretro-common/libchdr) Backport https://github.com/rtissera/libchdr/commit/2785de84819aceb976ef51f05baf9d770a859ae9 2020-07-01 19:41:24 +02:00
twinaphex 8d8800229c (libchdr) Backport https://github.com/rtissera/libchdr/blob/16eae7e4e540a873b22cb5c7c0a6302628543ff3/src/chd.c 2020-07-01 19:27:14 +02:00
twinaphex d2afef58d7 (libchdr) Resync against https://github.com/rtissera/libchdr/commit/c05c91300a672b96e077ddde144b3737a01639d8#diff-b4791a43102472fe8d3959f86bd376c4 2020-07-01 19:23:33 +02:00
twinaphex 9e9fb47c05 (libchdr) More resyncs 2020-07-01 19:21:40 +02:00
twinaphex 436f161cc3 (libchdr) More rebases 2020-07-01 19:15:45 +02:00
twinaphex 88804a05de (libchdr) Cleanups + attempts to rebase against upstream 2020-07-01 19:12:20 +02:00
twinaphex d50c49c4e8 Add more HAVE_SCREENSHOTS ifdefs 2020-07-01 17:54:13 +02:00
Francisco Javier Trujillo Mata b799bb731a Improve dist scripts 2020-07-01 17:51:16 +02:00
twinaphex 7862166ed2 Add back HAVE_SCREENSHOTS define from SSNES days 2020-07-01 17:47:13 +02:00
twinaphex 8f65c4e6dd Cleanups 2020-07-01 17:10:00 +02:00
Francisco Javier Trujillo Mata 9d2a1b5ac4 Improve dist scripts
Improve cores folder
Improve WaitTillDeviceIsReady
Now every single driver, init and deinit the IRX binaries
Improve platform PS2
Make salamander to open proper elf
2020-07-01 17:07:53 +02:00
twinaphex 473f43daf7 (deps/mbedtls) Cleanups 2020-07-01 17:02:45 +02:00
twinaphex da29ab063e Cleanups 2020-07-01 16:57:34 +02:00
twinaphex 867daa7efb (deps/7zip) Cleanups 2020-07-01 16:50:54 +02:00
twinaphex 14e20cea51 Cleanups 2020-07-01 15:29:25 +02:00
Autechre ef18704d63 Update .travis.yml 2020-07-01 06:50:44 +02:00
twinaphex 3e2250b25f (netplay_discovery) Initialize structs 2020-07-01 06:15:21 +02:00
twinaphex af5eacf9d0 (Mbedtls) Assume HAVE_TIME 2020-07-01 05:27:36 +02:00
twinaphex adb203fd3e (GX) Add back audio mixer code for now - need to figure out a
solution with Mr. Boom
2020-07-01 04:56:37 +02:00
twinaphex 02c3fa8eb3 Try to fix build 2020-07-01 04:54:28 +02:00
twinaphex f1a8c07dfe (deps/mbedtls) Cleanups 2020-07-01 04:50:31 +02:00
twinaphex 539beed10a (deps/mbedtls) Remove error.c 2020-07-01 04:40:23 +02:00
twinaphex 5d9deb58c2 (mbedtls) Get rid of deprecated functions 2020-07-01 04:33:16 +02:00
twinaphex 35577ae15b (mbedtls) Get rid of exit function pointer 2020-07-01 04:26:49 +02:00
twinaphex a9d29758b6 (mbedtls) Some C89_BUILD fixes - doesn't compile yet 2020-07-01 04:19:45 +02:00
twinaphex ae7353993a (mbedtls) should now be CXX_BUILD compatible 2020-07-01 04:12:47 +02:00
twinaphex 3580db3ebe (deps/mbedtls) Cleanups 2020-07-01 03:48:13 +02:00
twinaphex 996840d2d4 Cleanups 2020-07-01 03:30:22 +02:00
twinaphex e5dc2b5bcb (mbedtls) Cleanups 2020-07-01 03:23:46 +02:00
twinaphex c664463242 (mbedtls) Remove MBEDTLS_CMAC_C 2020-07-01 01:43:50 +02:00
twinaphex fe9d92b208 (mbedtls) Cleanups 2020-07-01 01:41:48 +02:00
twinaphex d6ec4029db (mbedtls) Remove MBEDTLS_DEBUG_C 2020-07-01 01:29:27 +02:00
twinaphex 308e16f63e Cleanups 2020-07-01 01:21:20 +02:00
twinaphex 34b0ad0bbf (mbedtls) Cleanups 2020-07-01 01:11:36 +02:00
twinaphex 8fe5ad8fd4 (mbedtls) Get rid of MBEDTLS_SELF_TEST 2020-07-01 01:04:35 +02:00
Keith Bowes a867389fa2 Fixed detection of system glslang 2020-06-30 18:39:52 -04:00
twinaphex be289a4292 (mbedtls) Cleanups 2020-07-01 00:33:16 +02:00
twinaphex 1e6b8385fd Fix two potential memory leaks 2020-07-01 00:09:54 +02:00
Autechre 5f50e2b33a Merge pull request #10950 from hhromic/fixes
(Keyboard Input) Do not try to speak if accessibility is disabled
2020-06-30 23:17:59 +02:00
Hugo Hromic 175666de9b (Keyboard Input) Do not try to speak if accessibility is disabled 2020-06-30 21:25:56 +01:00
twinaphex 53797b15ce CXX_BUILD buildfix 2020-06-30 22:15:49 +02:00
twinaphex 9d27fdbe83 Add ifdef in griffin.c 2020-06-30 21:48:41 +02:00
twinaphex 69756ebd93 Add HAVE_NEAREST_RESAMPLER ifdef 2020-06-30 21:45:05 +02:00
twinaphex 395fd7fea7 (menu_cbs_get_value.c) Optimizations 2020-06-30 20:55:05 +02:00
twinaphex 0bdbe1c926 Add more HAVE_PATCH ifdefs 2020-06-30 20:09:53 +02:00
twinaphex 223d76680a Add HAVE_CHEATS ifdef 2020-06-30 19:35:55 +02:00
Autechre 9fe6fb521f Merge pull request #10948 from jdgleaver/progress-message-widget
Add 'progress message' widget (for 'RETRO_MESSAGE_TYPE_PROGRESS' core messages)
2020-06-30 19:09:35 +02:00
twinaphex 573765c7ca Fix warning when building without runahead 2020-06-30 18:20:06 +02:00
jdgleaver c48c26aff6 Add 'progress message' widget (for 'RETRO_MESSAGE_TYPE_PROGRESS' core messages) 2020-06-30 17:15:36 +01:00
twinaphex 2c62a10d6c - Fix codepaths for compiling without HAVE_RWAV
- Add back HAVE_BSV_MOVIE
2020-06-30 18:08:49 +02:00
twinaphex bf04ac93c8 Add HAVE_RWAV 2020-06-30 17:36:03 +02:00
twinaphex 92945b17e2 Dependencies
(libz) Cleanups
(glslang) SPVRemapper.cpp and disassemble.cpp don't seem
to be necessary to compile in
2020-06-30 16:52:40 +02:00
Autechre d405a317f3 Update CHANGES.md 2020-06-30 15:59:01 +02:00
Autechre f7667baf34 Merge pull request #10946 from guoyunhe/crowdin-sync-20200630
Crowdin synchronization
2020-06-30 15:58:15 +02:00
Autechre 0ca7404b6c Update CHANGES.md 2020-06-30 15:57:25 +02:00
Autechre 850ff548ed Merge pull request #10945 from stenzek/d3d-driver-switch
Fix core-initiated D3D9/D3D11 driver switches
2020-06-30 15:55:46 +02:00
Autechre 2de83ceb54 Merge pull request #10942 from hhromic/menu-cursor
(Menu) Fix cursor forced to first entry after displaying lists
2020-06-30 15:55:16 +02:00
twinaphex b77dd9cfe4 Add HAVE_PATCH ifdef; add patch switch support to qb 2020-06-30 15:54:31 +02:00
Hugo Hromic 9b2a4f3c21 (Menu) Fix cursor forced to first entry after displaying lists 2020-06-30 13:59:52 +01:00
Guo Yunhe 74220cfc87 Crowdin synchronization 2020-06-30 15:20:30 +03:00
Connor McLaughlin 07c6c57ec2 Fix core-initiated D3D9/D3D11 driver switches
Currently, RetroArch only does this for GL and Vulkan hardware render
contexts. Requesting a D3D11 context would result in the frontend
creating a GL context instead (or whatever was set in frontend config),
and then eventually crashing when it tried to render the UI.
2020-06-30 18:22:01 +10:00
twinaphex 6fcb97ee53 Some buildfixes 2020-06-30 08:37:41 +02:00
twinaphex 0a1775feb2 Cleanups 2020-06-30 07:56:16 +02:00
twinaphex a2438c67a6 Cleanups 2020-06-30 07:32:24 +02:00
twinaphex cf4b406366 Prevent NULL-pointer dereference 2020-06-30 07:04:55 +02:00
twinaphex 9fc3536237 Optimization 2020-06-30 07:04:23 +02:00
twinaphex 1315dd96f5 menu_setting_new_internal -replace calloc with malloc 2020-06-30 06:58:08 +02:00
twinaphex b721667523 (deps/7zip) Initialize values 2020-06-30 06:01:41 +02:00
twinaphex 99f8137972 (Menu) Cleanups 2020-06-30 05:43:39 +02:00
twinaphex 5479196a79 Get rid of setting_get_type 2020-06-30 05:21:47 +02:00
twinaphex 6419ed08cc We can now get rid of menu_setting_get_label 2020-06-30 03:30:41 +02:00
twinaphex f6dc06ac10 (menu_cbs_get_value.c) Cut down on all the slow menu_setting_find
calls
2020-06-30 03:22:38 +02:00
twinaphex 879cb375e7 (menu_cbs_get_value.c) Start getting rid of settings pointer
grabbing
2020-06-30 02:36:55 +02:00
twinaphex ad8c22e6ac Fix build for MSVC 2003 2020-06-30 01:50:12 +02:00
twinaphex 120afe5d21 (Vulkan) return early/error out if no context driver is found 2020-06-30 01:33:19 +02:00
twinaphex 9474f6b299 Silence another static code analysis warning 2020-06-29 23:03:26 +02:00
twinaphex d46706487c prevent two more static code analysis warnings 2020-06-29 22:37:59 +02:00
twinaphex 258d219aaa Fix CXX_BUILD 2020-06-29 22:25:23 +02:00
twinaphex 5d0b01ea07 (drivers_font) Cleanups 2020-06-29 22:14:15 +02:00
twinaphex 6ada72e09d (gl_raster_font) Try to prevent NULL pointer dereferences 2020-06-29 22:06:50 +02:00
twinaphex d5de55b674 Silence more static code analysis warnings 2020-06-29 21:45:51 +02:00
twinaphex 1a2adc193e Prevent more static code analysis warnings 2020-06-29 21:38:02 +02:00
twinaphex 968922e151 Fix static code analysis warnings 2020-06-29 21:24:32 +02:00
twinaphex a2f2a882cb Cleanups 2020-06-29 21:06:21 +02:00
twinaphex 3239576ba1 Prevent more static code analysis warnings 2020-06-29 21:01:30 +02:00
twinaphex b93c3b36ed Prevent more static code analysis warnings 2020-06-29 20:34:47 +02:00
twinaphex 5cfc4defc6 (libretro-common) Prevent more static code analysis warnings 2020-06-29 20:31:14 +02:00
twinaphex f83f0b2d44 Fix static code analysis warnings 2020-06-29 20:27:34 +02:00
twinaphex cf1eb2e989 Silence more warnings 2020-06-29 20:17:54 +02:00
twinaphex 55d9456cbb More static code analyzer fixes 2020-06-29 20:14:14 +02:00
twinaphex 672deef31a Prevent static code analyzer complaining about potential
memory leaks
2020-06-29 20:06:37 +02:00
twinaphex 6318e11027 Try to prevent static code analyzer warning about potential leak 2020-06-29 20:02:28 +02:00
twinaphex 28399641da task_queue_put - prevent dereference of null pointer 2020-06-29 19:57:52 +02:00
twinaphex bc61ceb338 (retroarch.c) Prevent dereference of NULL pointer 2020-06-29 19:54:27 +02:00
twinaphex 9b3cc339a7 Buildfix 2020-06-29 19:44:17 +02:00
twinaphex cf92d8fddb (gl.c) Prevent static code analysis warnings 2020-06-29 19:40:17 +02:00
twinaphex c9dd197ccb Add HAVE_ODROIDGO2 ifdef 2020-06-29 19:34:33 +02:00
twinaphex e58f91406f (video_filter.c) Cleanups 2020-06-29 19:32:54 +02:00
twinaphex ef51ef1fb1 database_info_list_new - md5 and sha1 need to be freed 2020-06-29 19:27:50 +02:00
twinaphex 316914cb45 Prevent another static code analysis warning 2020-06-29 19:23:45 +02:00
twinaphex 4c86e67c6e core_backup_list_init - prevent garbage values 2020-06-29 19:18:43 +02:00
twinaphex fded8ab357 Fix issues pointed out by static code analysis 2020-06-29 19:15:07 +02:00
twinaphex 8356fc90b6 Change this back 2020-06-29 18:50:42 +02:00
twinaphex 9892af701b Reduce size 2020-06-29 18:43:57 +02:00
twinaphex b10c7f5101 current_library_name/version/extensions don't need to be so big 2020-06-29 18:30:28 +02:00
twinaphex 479058d1a3 Prevent implicit memsets 2020-06-29 16:42:51 +02:00
twinaphex c7bb666214 CRITICAL_SECTION implementation can differ - use calloc here 2020-06-29 14:19:50 +02:00
twinaphex a16ebe401c (UWP) Remove unused local variable 2020-06-29 13:58:13 +02:00
twinaphex 03b232552e (MSVC) Buildfix 2020-06-29 13:53:40 +02:00
twinaphex d8824af4ac pass p_rarch around more 2020-06-29 07:06:07 +02:00
twinaphex ed71d91c77 Add placeholder tic80.png and uzem.png 2020-06-29 05:47:52 +02:00
twinaphex 4eb18094be Add this as placeholder for now 2020-06-29 05:44:19 +02:00
twinaphex a657ad7039 Cleanup 2020-06-29 05:41:25 +02:00
twinaphex b34b29a22f Replace calloc with malloc 2020-06-29 05:18:54 +02:00
twinaphex 0aca9386c4 menu_list_new - turn calloc into malloc 2020-06-29 04:36:23 +02:00
twinaphex d748b37e6b (Ozone/XMB) Use malloc instead of calloc for file_list 2020-06-29 04:24:06 +02:00
twinaphex dc35458761 Turn calloc into malloc 2020-06-29 03:49:56 +02:00
twinaphex fe14bc6e07 (core_info.c) Get rid of calloc 2020-06-29 03:46:27 +02:00
twinaphex dfeef4e772 (XInput) Do away with memsets 2020-06-29 02:44:35 +02:00
twinaphex aa4f84b037 (Dinput) get rid of memsets 2020-06-29 02:37:06 +02:00
twinaphex b4be553ccc (bluetooth) Cleanups 2020-06-29 00:25:37 +02:00
Autechre 0267736465 Merge pull request #10937 from parport0/master
Bluetooth fixes v2
2020-06-29 00:19:49 +02:00
twinaphex 570f6ffb87 vulkan_copy_staging_to_dynamic - avoid memset 2020-06-29 00:14:50 +02:00
twinaphex 1b3826b348 (Vulkan) Avoid some unnecessary memsets 2020-06-29 00:02:45 +02:00
twinaphex 26969dd4e1 (Vulkan) Avoid callocs and memsets 2020-06-28 23:56:33 +02:00
Twinaphex fc2e11d4b7 Fix pthread codepath 2020-06-28 23:31:44 +02:00
twinaphex a833c5f4a6 Cleanups in audio mixer code 2020-06-28 23:24:00 +02:00
twinaphex 6d50ac7cb7 Cleanups 2020-06-28 22:59:51 +02:00
twinaphex 47d93f7fb1 (formats/xml) Cleanups 2020-06-28 22:30:53 +02:00
parport0 8b4e30073a (wifi drivers) Move driver info to userdata 2020-06-28 23:08:58 +03:00
parport0 f2728ae0de Show TEXTURE_BLUETOOTH instead of TEXTURE_NETWORK 2020-06-28 23:08:58 +03:00
parport0 f668ed063e (bluetooth drivers) Move driver info to userdata, clean up API 2020-06-28 23:08:58 +03:00
twinaphex b2dbbeb386 (glslang_util_cxx.cpp) Use string_starts_with_size 2020-06-28 21:53:28 +02:00
twinaphex fe8a191012 (glslang_util_cxx.cpp) Use string_starts_with 2020-06-28 21:46:08 +02:00
twinaphex c600fbc6ff Cleanups 2020-06-28 21:33:07 +02:00
twinaphex 37bfbed3f5 (Vulkan) Cleanups 2020-06-28 21:20:18 +02:00
twinaphex 5a0bc479b1 (libretro-common) Avoid more callocs 2020-06-28 20:57:00 +02:00
twinaphex 1a625f32e8 Update 2020-06-28 20:40:43 +02:00
twinaphex 595c8ce5d0 (libretro-common/streams) Cleanups 2020-06-28 20:32:23 +02:00
twinaphex e120f76f87 (deps/7zip) Cleanups 2020-06-28 20:01:05 +02:00
twinaphex 54b371b767 (deps/7zip) Use rferror instead of ferror 2020-06-28 19:43:55 +02:00
Autechre db6cc3c7f9 Merge pull request #10936 from libretro/revert-10935-master
Revert "Bluetooth fixes"
2020-06-28 19:40:47 +02:00
Autechre b57e6e76c2 Revert "Bluetooth fixes" 2020-06-28 19:40:37 +02:00
Autechre 594e93fc64 Merge pull request #10935 from parport0/master
Bluetooth fixes
2020-06-28 19:31:02 +02:00
twinaphex bc73a815b7 Prevent memsets for vk->tracker 2020-06-28 19:18:48 +02:00
Autechre 0bac76fbde Merge pull request #10934 from hhromic/fix-git-version
(Makefiles) Fix version_git.o regeneration
2020-06-28 19:04:02 +02:00
Hugo Hromic b9fb6c62e9 (Makefiles) Fix version_git.o regeneration
Forgotten references to `git_version.c` (nowadays named `version_git.c`) were
causing the git version object to not be rebuilt every time.
2020-06-28 17:53:03 +01:00
twinaphex 9e65ab63fe (vulkan_common) Prevent memsets and implicit memsets 2020-06-28 18:45:46 +02:00
twinaphex 9684bde88a Cleanup vulkan_create_texture 2020-06-28 18:25:17 +02:00
twinaphex 16ed4ce2d6 Get rid of more callocs 2020-06-28 17:07:45 +02:00
twinaphex dddad35730 Get rid of more callocs 2020-06-28 16:49:13 +02:00
twinaphex 03eb5d8bf0 Use malloc for menu_file_list_cbs_t 2020-06-28 16:42:02 +02:00
twinaphex 695d1892b2 Cleanups 2020-06-28 16:28:32 +02:00
twinaphex 1c9286c2d7 Re-enable bluetooth icon again 2020-06-28 16:22:26 +02:00
twinaphex 6dcc7d5441 Use malloc where possible 2020-06-28 16:11:17 +02:00
parport0 5985d99466 Uncomment bluetooth.png 2020-06-28 15:59:07 +03:00
parport0 9e3dd965eb (bluetooth) Move driver info to userdata, clean up API 2020-06-28 15:58:01 +03:00
twinaphex 3dafbb8487 (libretro-common) Use malloc 2020-06-28 06:52:02 +02:00
twinaphex 3541b2aa0e task_init - use malloc 2020-06-28 06:41:07 +02:00
twinaphex 190ca68817 Update 2020-06-28 06:24:42 +02:00
Twinaphex 56c3b99dac (deps/7zip) Prevent warnings/errors 2020-06-28 05:25:44 +02:00
Twinaphex c10c6aa015 (7zip) Cleanup #1 2020-06-28 05:20:58 +02:00
twinaphex 61c1fa508d (deps/7zip) Change this to RFILE 2020-06-28 05:09:38 +02:00
twinaphex 8a8ddb2468 (deps/7zip) Update 2020-06-28 05:07:30 +02:00
twinaphex 722f13165b (HID) Fill in null HID driver again - might potentially fix older
iOS versions
2020-06-28 05:03:29 +02:00
twinaphex a8f8753bbc (deps/7zip) Change SRes to int64_t 2020-06-28 04:52:11 +02:00
twinaphex e2af6eb96b (deps/7zip) Change WRes to int64_t - and other cleanups 2020-06-28 04:15:11 +02:00
twinaphex 136a86f6aa (deps/7zip) Use libretro-common file_stream functions 2020-06-28 03:58:40 +02:00
twinaphex 503c8e089f (shader_vulkan) Cleanup 2020-06-28 01:17:36 +02:00
twinaphex c1f90e4c9a (Vulkan) Cleanups 2020-06-28 01:09:33 +02:00
twinaphex 128757554e (gfx/font_driver) Use malloc 2020-06-28 00:50:48 +02:00
twinaphex 6e015d32a8 Optimize some strlen and file_path_str usage - condense this
back to STRLEN_CONST usage
2020-06-28 00:36:23 +02:00
twinaphex c1c3f75804 dir_list_read - avoid two strcmps 2020-06-27 22:26:20 +02:00
twinaphex 6085ed358d (RPNG) Use malloc 2020-06-27 21:09:29 +02:00
twinaphex 37363e00c0 Start passing around p_rarch more 2020-06-27 20:54:52 +02:00
twinaphex 724a9a393e (bluetooth drivers) Cleanups and add TODO/FIXME notes 2020-06-27 19:46:27 +02:00
twinaphex 497dc7a38a (menu) move headers around - no more menu/widgets 2020-06-27 19:33:49 +02:00
twinaphex 8f2dec4196 rarch_timer_ functions can now be made static 2020-06-27 19:17:45 +02:00
twinaphex 01e2cc2465 Integrate menu_dialog.c into retroarch.c 2020-06-27 19:08:02 +02:00
twinaphex dda0c04d0a remove leftovers 2020-06-27 18:55:33 +02:00
twinaphex 8259a0fd89 (Menu) Merge menu_filebrowser.c into menu_displaylist.c 2020-06-27 18:54:14 +02:00
twinaphex deb7fc5bf9 Comment out bluetooth.png image for now until it has been added
to retroarch-assets
2020-06-27 18:32:15 +02:00
twinaphex 776e95d4e1 (vulkan_common.c) Cleanups 2020-06-27 18:28:33 +02:00
twinaphex 72d1a313ae (vulkan_common.c) Cleanups 2020-06-27 18:17:33 +02:00
Twinaphex 04fb139bcb Cleanup unused variables 2020-06-27 18:17:10 +02:00
Autechre 6b4237c04f Update CHANGES.md 2020-06-27 16:51:08 +02:00
Autechre f39e90bfe7 Update CHANGES.md 2020-06-27 16:49:03 +02:00
Autechre 0f7f9eba4b Update CHANGES.md 2020-06-27 16:47:17 +02:00
Autechre 10ddb274bc Merge pull request #10866 from parport0/master
Add a bluetooth driver
2020-06-27 16:46:11 +02:00
Autechre 91775e493b Merge pull request #10909 from WeedyWeedSmoker/iOS-update
[iOS] Update iOS Xcode projects
2020-06-27 16:44:55 +02:00
Autechre dca50bacb2 Merge pull request #10926 from fpscan/master
Update tgbdual.png
2020-06-27 16:44:24 +02:00
Ömercan Kömür 42f97453d5 Update tgbdual.png
re-upload
2020-06-27 17:38:28 +03:00
twinaphex 408f40f413 Cut down on some callocs 2020-06-27 16:36:08 +02:00
Autechre ecc41fc59c Merge pull request #10924 from benklop/master
Non-X11 lightgun support
2020-06-27 16:20:08 +02:00
twinaphex 4bd8c2a7ff Avoid calloc where possible 2020-06-27 15:06:45 +02:00
twinaphex 5783494e13 (libretro-common) Cleanups 2020-06-27 14:55:08 +02:00
twinaphex c3f8b7741c Add fallback paths for nbio_stdio.c 2020-06-27 14:07:41 +02:00
twinaphex c1275cc83d Cleanups 2020-06-27 13:58:15 +02:00
twinaphex b0b588a56a (VFS) Add fseeko/ftello support 2020-06-27 13:41:59 +02:00
twinaphex 5b9a51d353 (CTR) tgbdual.png - image needs to be exactly 48x48 or else
it will error out
2020-06-27 04:20:49 +02:00
Ben Klopfenstein 17465462b8 X11 lightgun support 2020-06-26 19:47:43 -06:00
twinaphex f16f3d2968 Add 'Ignore null drivers' setting 2020-06-27 03:00:28 +02:00
twinaphex e0c442c99a input_list_element_constructor - turn it into malloc 2020-06-27 02:02:01 +02:00
twinaphex 73199d5df3 (MaterialUI) Use malloc 2020-06-27 01:52:00 +02:00
twinaphex 1e67b4c04a (gx_widgets) Use malloc instead of calloc 2020-06-27 01:25:48 +02:00
twinaphex f420c2c843 Change menu_widget_msg_t to disp_widget_msg_t 2020-06-27 01:15:21 +02:00
twinaphex 035d7dad12 Go through utf8 to utf16 functions 2020-06-27 01:10:45 +02:00
twinaphex 0946604627 (Qt) Only call log_msg when the Qt companion UI window is active 2020-06-26 21:45:09 +02:00
twinaphex 1b86ea43c3 Try to use vsnprintf where possible instead of vsprintf 2020-06-26 20:56:14 +02:00
Autechre 5f607f5809 Merge pull request #10922 from jdgleaver/playlist-config
Refactor playlist struct configuration
2020-06-26 20:35:39 +02:00
twinaphex 5e3b353987 (libretro-db) Avoid callocs when possible 2020-06-26 20:24:05 +02:00
twinaphex 1ae20ea17c Style nits - turn macro names into upper-case - some while style nits 2020-06-26 20:00:19 +02:00
twinaphex fa50695b89 Cleanups 2020-06-26 19:25:53 +02:00
jdgleaver 5aeb479a31 DISABLE_NETWORKING buildfix 2020-06-26 18:09:08 +01:00
twinaphex 966348327d Cleanups 2020-06-26 19:07:38 +02:00
twinaphex 808c00db41 (drivers_shader) Move static functions to top of files 2020-06-26 18:54:30 +02:00
twinaphex 80581f14a8 Revert "Revert "Cleanups""
This reverts commit 1fda1e0b28.
2020-06-26 18:44:38 +02:00
twinaphex 021625fd4a Revert "Move static functions to top of files"
This reverts commit 02b542e2a5.
2020-06-26 18:40:26 +02:00
twinaphex efd98108c6 Revert "configuration.c - move static functions to top of file"
This reverts commit c0f3c5d083.
2020-06-26 18:40:20 +02:00
twinaphex 1fda1e0b28 Revert "Cleanups"
This reverts commit a9c8cf205d.
2020-06-26 18:39:34 +02:00
twinaphex a9c8cf205d Cleanups 2020-06-26 18:28:58 +02:00
twinaphex c0f3c5d083 configuration.c - move static functions to top of file 2020-06-26 18:25:12 +02:00
twinaphex 02b542e2a5 Move static functions to top of files 2020-06-26 18:15:38 +02:00
twinaphex 011806bce8 Cleanups 2020-06-26 17:45:35 +02:00
twinaphex 3aafed5030 Cleanups 2020-06-26 17:37:09 +02:00
twinaphex 0bb6fafac5 Revert "(Ozone) Cleanups"
This reverts commit ac601e6aeb.
2020-06-26 17:27:45 +02:00
twinaphex ac601e6aeb (Ozone) Cleanups 2020-06-26 17:21:32 +02:00
twinaphex e4c187b718 xmb_render - Make it more similar to materialui_render 2020-06-26 16:57:54 +02:00
twinaphex 1fe0dbafbe (XMB) Only do mouse processing once in render - not every time in frame 2020-06-26 16:51:50 +02:00
jdgleaver 0fcfb3deda Refactor playlist struct configuration 2020-06-26 15:40:19 +01:00
Autechre d243f62a80 Merge pull request #10919 from benklop/master
Non-X11 lightgun support
2020-06-26 16:13:30 +02:00
twinaphex 08a1a21d71 (libretro-common) Cleanups 2020-06-26 15:26:52 +02:00
twinaphex b39ef98d2a Small optimization 2020-06-26 14:45:48 +02:00
Ben Klopfenstein 9e0bb65e9b Merge remote-tracking branch 'lightgun/master' into master 2020-06-25 20:30:01 -06:00
twinaphex 7027b094c1 gfx_display_draw_text - cleanups 2020-06-25 23:45:14 +02:00
twinaphex 2f235f0abb Cleanups 2020-06-25 23:16:08 +02:00
twinaphex 91f5ca4105 Cleanups 2020-06-25 23:10:54 +02:00
Autechre 1397468496 Update CHANGES.md 2020-06-25 16:50:37 +02:00
Autechre b7ed6a48e6 Merge pull request #10916 from jdgleaver/config-file-optimisation
Optimise parsing of configuration files
2020-06-25 16:34:40 +02:00
jdgleaver b6364407fd Optimise parsing of configuration files 2020-06-25 15:15:08 +01:00
Autechre e2c7af85e6 Update CHANGES.md 2020-06-25 15:08:09 +02:00
twinaphex 6e072e245e Enlarged INT/UINT selection limit from 999 to 9999 2020-06-25 14:41:56 +02:00
twinaphex de36ff20fb Create string_ends_with_size 2020-06-25 14:38:06 +02:00
twinaphex e727e85b1d Updates 2020-06-25 14:01:19 +02:00
twinaphex aa48eeb98e Turn path_default_slash uppercase, and do some optimizations 2020-06-25 13:36:01 +02:00
twinaphex 601a73fa8b Use string_starts_with_size where possible - avoids the strlen 2020-06-25 12:51:04 +02:00
twinaphex 35527c24c3 Revert "Optimize config_get_bool"
This reverts commit 1c38dc67c2.
2020-06-25 12:08:36 +02:00
Autechre be49eb93e1 Merge pull request #10914 from jdgleaver/config-file-comment-fix
(config_file) Fix handling of comments at the end of config file lines
2020-06-25 11:49:17 +02:00
jdgleaver 9c2b6dffc2 (config_file) Fix handling of comments at the end of config file lines 2020-06-25 10:29:40 +01:00
twinaphex 1c38dc67c2 Optimize config_get_bool 2020-06-25 03:03:42 +02:00
twinaphex 8fccac666e Use STRLEN_CONST where possible 2020-06-24 22:57:41 +02:00
twinaphex 67898f5d12 (Font drivers) Simplifications 2020-06-24 21:27:47 +02:00
twinaphex 9cb4d924cb Revert "(drivers_font) Cut down on unnecessary strlen calls within a for loop"
This reverts commit 3e9d0b8758.
2020-06-24 21:09:44 +02:00
twinaphex 5fc63dc578 Cleanup 2020-06-24 21:07:35 +02:00
twinaphex 3e9d0b8758 (drivers_font) Cut down on unnecessary strlen calls within a for loop
- precompute once for function duration
2020-06-24 20:52:39 +02:00
twinaphex 198df77c29 Update 2020-06-24 20:18:06 +02:00
twinaphex 472bb775ee retro_vfs_file_open_impl - avoid two strlens at start 2020-06-24 20:17:09 +02:00
twinaphex b846599cc7 Cleanups/simplifications 2020-06-24 19:54:35 +02:00
twinaphex dd2844a2ac Convert calloc to malloc where possible 2020-06-24 19:45:09 +02:00
twinaphex 1c5276749a Turn calloc into malloc 2020-06-24 19:35:07 +02:00
twinaphex f5940ed188 Use malloc instead of calloc where possible 2020-06-24 19:27:02 +02:00
twinaphex 7cac61e5eb Use malloc instead of calloc when possible 2020-06-24 18:52:42 +02:00
twinaphex 74b3b505c9 This part of the code looked suspicious and was leaking memory
for one codepath
2020-06-24 18:39:21 +02:00
twinaphex 3a4af3149b (libretro-common) Use malloc instead of calloc when possible 2020-06-24 17:35:02 +02:00
twinaphex 53f3199652 Reordered this code somewhat 2020-06-24 15:40:42 +02:00
Autechre e7b73e179a Merge pull request #10910 from jdgleaver/config-file-strip-comment
(config_file) Optimise parsing of 'comment' lines in configuration files
2020-06-24 15:38:12 +02:00
jdgleaver 9b22874c73 (config_file) Optimise parsing of 'comment' lines in configuration files 2020-06-24 14:31:46 +01:00
twinaphex b9f65af98a (Libretro-common) Sync 2020-06-24 15:05:03 +02:00
twinaphex 7fc50e7ab6 Cleanups 2020-06-24 13:46:11 +02:00
twinaphex a2b83636d7 (Android) Some slight optimizations 2020-06-24 13:27:32 +02:00
twinaphex 84b53856a4 core_option_manager - don't go through config_get_string 2020-06-24 12:23:40 +02:00
twinaphex 0cdea62072 (core_info.c) Try to avoid config_get_string 2020-06-24 11:57:58 +02:00
parport0 a24d2b50a5 bluetooth: split into labels and sublabels 2020-06-24 12:53:27 +03:00
parport0 4f8ccb8642 Add bluez bluetooth driver 2020-06-24 12:53:27 +03:00
parport0 23c08ad9b0 Add bluetoothctl bluetooth driver 2020-06-24 12:53:27 +03:00
twinaphex 8486c8ebfb Cleanups 2020-06-24 10:54:25 +02:00
twinaphex 6b854f8766 Update 2020-06-24 10:47:30 +02:00
twinaphex f6acc190f6 Cleanups 2020-06-24 10:39:16 +02:00
twinaphex 58f67aacc7 Cleanups 2020-06-24 10:22:45 +02:00
twinaphex 634f18ad43 Turn more functions static 2020-06-24 10:14:03 +02:00
Weedy Weed Smoker 8c99ada501 [iOS] Oops… 2020-06-24 07:30:15 +07:00
Weedy Weed Smoker 865268ff1f [iOS] Update iOS Xcode projects 2020-06-24 06:48:44 +07:00
twinaphex d0e426011d Move video_driver_load/save_settings functions to configuration.c 2020-06-23 22:27:40 +02:00
twinaphex 2c185fe7e2 Move input remapping code to configuration.c 2020-06-23 22:18:33 +02:00
twinaphex 388342264c Cleanup 2020-06-23 22:01:33 +02:00
twinaphex ffff7e782a Cleanup 2020-06-23 21:56:41 +02:00
twinaphex d31f7a915b Simplify else conditional 2020-06-23 21:35:38 +02:00
Autechre 137aeee9e8 Update CHANGES.md 2020-06-23 19:16:25 +02:00
Autechre d927b6ec83 Merge pull request #10904 from Jamiras/cheevos_unlock_lbl
(cheevos) restore display of unlocked achievements across hardcore modes
2020-06-23 19:15:58 +02:00
twinaphex 1348902146 (GX Input) Cleanups 2020-06-23 19:10:27 +02:00
twinaphex c0bacea187 Cut down on some pointer grabbing 2020-06-23 19:06:53 +02:00
twinaphex 9c519b73aa Split up input_joypad_analog into two functions 2020-06-23 18:52:48 +02:00
twinaphex 689ac432d6 MOve input_joypad_analog call to inside retroarch.c instead of the
input driver itself, and make function static
2020-06-23 18:31:40 +02:00
twinaphex 2a0c490913 Cleanup 2020-06-23 18:08:53 +02:00
twinaphex a48af59c92 Cleanups 2020-06-23 18:05:07 +02:00
twinaphex c9f634e85d Cleanups 2020-06-23 17:51:45 +02:00
twinaphex 0864b3cd38 Cleanups - don't need input_driver_get_joypad_driver anymore 2020-06-23 17:42:32 +02:00
twinaphex 10abdc5a0e Implement get_joypad_driver stub for Xenon 360 2020-06-23 17:35:39 +02:00
twinaphex 0503467f2c Turn functions static 2020-06-23 17:32:27 +02:00
twinaphex edc5d1a1e5 Merge menu_input_bind_dialog into retroarch.c - global state is now
part of rarch_state
2020-06-23 17:26:33 +02:00
twinaphex d62bf9b16c (menu_input_bind_dialog.c) Cleanups 2020-06-23 17:13:46 +02:00
Jamiras e85b318038 display 'Unlocked' in hardcore mode for achievements earned in non-hardcore mode 2020-06-23 08:59:43 -06:00
twinaphex 459a7df778 (menu_input_bind_dialog.c) Pointer cleanups 2020-06-23 16:58:37 +02:00
twinaphex f8fecadd88 menu_input_bind_dialog - cleanups 2020-06-23 16:49:08 +02:00
twinaphex d0f57cdd6f Update 2020-06-23 15:06:20 +02:00
twinaphex dbb2cbb959 Cleanups 2020-06-23 15:03:48 +02:00
Autechre 2e60757c5d Merge pull request #10903 from fpscan/master
Original RACE icon
2020-06-23 14:48:37 +02:00
Ömercan Kömür cec6b2b324 Merge pull request #6 from fpscan/fpscan-patch-2
original race icon
2020-06-23 14:46:11 +03:00
Ömercan Kömür a89f2e81b2 original race icon
original race icon
2020-06-23 14:45:54 +03:00
twinaphex b5c14af74a Cleanups 2020-06-23 11:46:40 +02:00
twinaphex a6f6fb88f0 Cleanups 2020-06-23 09:28:41 +02:00
Autechre dd9aef0107 Update CHANGES.md 2020-06-23 08:58:30 +02:00
Autechre dffb54ac3c Merge pull request #10882 from Jamiras/cheevos_hash_buffered
(cheevos) hash buffered data when available
2020-06-23 08:58:04 +02:00
Autechre 74a88b10f3 Merge pull request #10897 from fpscan/steam-requirements
Update steam_us.json
2020-06-23 06:46:11 +02:00
Autechre d1bf6c7f52 Update CHANGES.md 2020-06-23 06:30:39 +02:00
Autechre 8afa258313 Merge pull request #10900 from valadaa48/oga_gfx_rgui_fix
oga_gfx: fix race condition with rgui callback
2020-06-23 06:29:55 +02:00
valadaa48 f753efeaa7 oga_gfx: fix race condition with rgui callback
- oga_gfx_frame is sometimes called before set_texture_frame has been
called
2020-06-22 21:38:19 -04:00
Ömercan Kömür a4c51afd1d Update steam_us.json
added requirements and legal limits
2020-06-22 23:20:29 +03:00
twinaphex 93eb2abdfe Cleanup 2020-06-22 20:49:55 +02:00
twinaphex 35c55c4b50 Potential fix for #10884 2020-06-22 20:34:40 +02:00
Autechre dd966ba58f Merge pull request #10894 from fpscan/3ds-missing
Some missing core banners for 3DS
2020-06-22 19:49:25 +02:00
Autechre c4a8b1ced4 Merge pull request #10895 from guoyunhe/patch-6
Fix JSON syntax
2020-06-22 19:24:08 +02:00
Guo Yunhe 2e56ce6aa8 Fix JSON syntax
The JSON was invalid because last item of object cannot end with `,`
2020-06-22 19:35:14 +03:00
Ömercan Kömür 11036f087d Add files via upload 2020-06-22 19:25:19 +03:00
Ömercan Kömür b19a509c71 Core banners for 3DS 2020-06-22 19:23:08 +03:00
Autechre ae70dcdd20 Merge pull request #10892 from fpscan/master
Google Play description translations for Crowding project
2020-06-22 17:16:42 +02:00
Autechre 783a3e7517 Merge pull request #10893 from jdgleaver/core-info-strdup
Prevent unnecessary string duplication when parsing core info files
2020-06-22 16:42:31 +02:00
jdgleaver 160b864d32 Prevent unnecessary string duplication when parsing core info files 2020-06-22 15:03:47 +01:00
Ömercan Kömür f33bf66ce0 Google Play translations 2020-06-22 16:19:50 +03:00
Ömercan Kömür 1d2dd8f400 Merge pull request #3 from libretro/master
updates
2020-06-22 15:58:06 +03:00
Autechre f36ceba596 Merge pull request #10881 from jdgleaver/core-message-flush
Do not flush the message queue when receiving core-generated notification messages
2020-06-22 07:34:47 +02:00
Autechre 788224aca1 Merge pull request #10883 from guoyunhe/steam-translations
Add steam translations
2020-06-22 07:34:37 +02:00
Autechre 3b855cb278 Merge pull request #10887 from hhromic/improv-menu-res
(Win32/DispServer) Improve screen resolution menu
2020-06-22 07:34:18 +02:00
Autechre b736100443 Merge pull request #10889 from Jamiras/scan_content_null
prevent NULL reference exception when scanning some directories
2020-06-22 06:46:32 +02:00
Jamiras 6e7eeb1d8f prevent NULL reference exception when scanning some directories 2020-06-21 22:35:35 -06:00
Hugo Hromic 2e57a690ce (Win32/DispServer) Improve video resolution switching
* Only switch to a display mode with the same current bit-depth and screen rotation
* Only switch to a display mode with default stretching mode
* Cleanup the function for consistency with other functions
2020-06-21 23:49:26 +01:00
Hugo Hromic 9ec3a5ccad (Win32/DispServer) Improve building of video resolution list
* Only use display modes with the same current bit-depth and screen rotation
* Only use display modes with default stretching mode
* Cleanup the function for consistency with other functions
2020-06-21 23:49:11 +01:00
Guo Yunhe 15609b52bb Add steam translations 2020-06-21 19:03:09 +03:00
Jamiras 527e9faa1f hash buffered data when available 2020-06-21 09:39:42 -06:00
jdgleaver 1651db288d Do not flush the message queue when receiving core-generated notification messages 2020-06-21 12:48:26 +01:00
Hugo Hromic 4bc4a4dae8 (Ozone/XMB) Use consistent icon for 'Screen Resolution' option in video output menu 2020-06-21 10:50:46 +01:00
Autechre 857b0da555 Merge pull request #10879 from libretro/fix-db-file_path
(Database) Fix rtime in db-converter compilation
2020-06-21 05:40:14 +02:00
Rob Loach 705cfe9e82 Fix rtime in db-converter compilation 2020-06-20 17:15:07 -04:00
Autechre 2e115baf36 Merge pull request #10875 from hhromic/add-state-slot-icon
(Ozone) Add missing icon for 'State Slot' option in Quick Menu
2020-06-20 01:50:30 +02:00
Hugo Hromic d9fabec88e (Ozone) Add missing icon for 'State Slot' option in Quick Menu 2020-06-19 22:55:47 +01:00
twinaphex 4c6b13919c Bump up version 2020-06-19 16:02:08 +02:00
Autechre d762519b8e Merge pull request #10874 from jdgleaver/core-message-fix
Fix display of core-generated messages when load content fails
2020-06-19 15:49:22 +02:00
jdgleaver 42537a67e1 Fix display of core-generated messages when load content fails 2020-06-19 12:22:37 +01:00
IlDucci 648df8fba0 Updating msg_hash_es.c
Updating the Spanish translation in the area that is not yet compatible with the Crowdin system.
2020-06-19 11:24:08 +02:00
Autechre 8098c5978f Merge pull request #10870 from Jamiras/gfx_widgets_achievements
gfx_widgets: move achievement popup widget into its own file
2020-06-18 23:03:03 +02:00
Autechre a88bc56ede Merge pull request #10871 from jdgleaver/core-update-block
Add option to selectively 'lock' (prevent modification of) installed cores
2020-06-18 23:02:44 +02:00
jdgleaver 80f36e16d0 Add option to selectively 'lock' (prevent modification of) installed cores 2020-06-18 17:36:33 +01:00
Autechre 4ed7ad8465 Merge pull request #10867 from jdgleaver/core-auto-backup-default
Enable automatic core backups by default on 'modern' desktop and mobile platforms
2020-06-17 23:21:49 +02:00
Jamiras 47dbaeabb8 gfx_widgets: move achievement popup widget into its own file 2020-06-17 10:48:01 -06:00
hizzlekizzle 2cbed1ac5d Merge pull request #10868 from jdgleaver/shader-preset-save-label-fix
Add missing labels for 'VIDEO_SHADER_PRESET_SAVE' enums
2020-06-17 09:38:36 -05:00
jdgleaver b49d6e9d3a Add missing labels for 'VIDEO_SHADER_PRESET_SAVE' enums 2020-06-17 13:59:52 +01:00
jdgleaver 52aabc02ba Enable automatic core backups by default on 'modern' desktop and mobile platforms 2020-06-17 12:57:12 +01:00
Autechre e91e9336a9 Update CHANGES.md 2020-06-17 13:33:42 +02:00
Autechre 3c8f539d3b Merge pull request #10865 from jdgleaver/disk-control-insert-new
(Disk Control Interface) Enable 'Load New Disc' while disk tray is open
2020-06-17 13:33:10 +02:00
jdgleaver 0c18da5d49 (Disk Control Interface) Enable 'Load New Disc' while disk tray is open 2020-06-17 11:43:54 +01:00
twinaphex a00ab53ef6 Put fprintfs and printfs behind ifndef NDEBUG 2020-06-17 11:22:31 +02:00
Autechre dba4ca04ee Update CHANGES.md 2020-06-16 22:21:15 +02:00
Autechre 43a65ec65a Merge pull request #10862 from jdgleaver/core-auto-backup
Add option to automatically backup cores when updating
2020-06-16 22:20:37 +02:00
Autechre 5f8419b8d2 Merge pull request #10861 from Jamiras/gfx_threaded_msg
(widgets) prevent freeing message while it's being rendered
2020-06-16 22:18:48 +02:00
Jamiras 42e2d740d3 add lock around current_msgs 2020-06-16 07:27:15 -06:00
jdgleaver 2782b87267 Add option to automatically backup cores when updating 2020-06-16 11:12:22 +01:00
Autechre 4b364fa1e1 Merge pull request #10859 from Jamiras/cheevos_multi_pop
(cheevos) load badge texture outside of lock
2020-06-15 23:51:59 +02:00
Jamiras 649f83c82e load badge texture outside of lock 2020-06-15 10:48:02 -06:00
Autechre 85d60bac8f Update CHANGES.md 2020-06-15 18:30:11 +02:00
Autechre ffdbb968f9 Merge pull request #10858 from Jamiras/cheevos_hardcore_pause_unlock
(cheevos) correctly report unlocked non-hardcore achievements when hardcore is paused
2020-06-15 18:29:46 +02:00
Jamiras 20380a8042 correctly report unlocked non-hardcore achievements when hardcore is paused 2020-06-15 07:06:12 -06:00
twinaphex 685948368e (libretro-db) Should fix buffer overflow - should fix Database
Information and Scan folder/File with GCC 10
2020-06-14 18:03:00 +02:00
Autechre 1099b58793 Merge pull request #10852 from jdgleaver/glui-list-insert
(GLUI) Optimise list insertion when adding playlist and dropdown list items
2020-06-14 17:48:57 +02:00
Autechre 122a68385f Merge pull request #10853 from valadaa48/oga_gfx_24bit_menu
oga_gfx 24bit menu support
2020-06-14 17:48:31 +02:00
jdgleaver 85bbba84c2 (GLUI) Optimise list insertion when adding playlist and dropdown list items 2020-06-14 14:45:53 +01:00
valadaa48 69e2bd986d oga_gfx 24bit menu support
- hack borrowed from drm_gfx
2020-06-14 03:54:36 +00:00
Autechre 439aee616e Update CHANGES.md 2020-06-13 17:51:05 +02:00
twinaphex 4f78264541 Cleanups 2020-06-13 17:46:39 +02:00
twinaphex cc43f3a355 (SDL2 Input) Add RARCH_DEVICE_MOUSE_SCREEN 2020-06-13 17:32:18 +02:00
twinaphex 367cf5985d (winraw_input) Fix mouse input processing 2020-06-13 17:27:12 +02:00
twinaphex bba60163f7 (Dinput) Fix RARCH_DEVICE_MOUSE_SCREEN 2020-06-13 17:22:34 +02:00
Autechre 8593b10bee Merge pull request #10847 from Jamiras/cheevos_bsv
(cheevos) disable hardcore mode when playing bsv file
2020-06-13 17:04:52 +02:00
Jamiras 950823e90b disable hardcore mode when playing bsv file 2020-06-13 08:05:23 -06:00
twinaphex 01bd76405f Buildfixes 2020-06-13 08:37:26 +02:00
twinaphex b74b8b6a6c Move launched_from_cli to global state 2020-06-13 08:19:49 +02:00
twinaphex b46a316df9 (core info) Pass pointer around to some functions 2020-06-13 07:29:26 +02:00
twinaphex 34af28461f Move core info global state to retroarch.c 2020-06-13 07:21:00 +02:00
Twinaphex 6e979931a1 Remove unused variable 2020-06-13 06:49:59 +02:00
twinaphex c7cd327b5b Rearrange input state input drivers for ANALOG - do joypad
processing first, then keyboard second
2020-06-13 05:25:10 +02:00
twinaphex dd79629015 (QNX) Get rid of qnx_is_pressed 2020-06-13 02:13:32 +02:00
twinaphex 5b81b6887b (X11) Buildfix #3 2020-06-13 02:07:43 +02:00
twinaphex 9d65f7e633 (X11) Buildfix #2 2020-06-13 02:06:24 +02:00
twinaphex 60ca3d0ad7 (X11) Buildfix 2020-06-13 02:05:16 +02:00
twinaphex 9ede38df93 (X11) Cleanups 2020-06-13 02:03:48 +02:00
twinaphex 52ff31f877 Get rid of udev_is_pressed 2020-06-13 01:54:22 +02:00
twinaphex 6cc9a3f9b4 (UWP) Buildfix + uwp_input cleanups 2020-06-13 01:01:30 +02:00
twinaphex 6690790dae Fix --disable-menu 2020-06-12 22:24:39 +02:00
twinaphex d03a0a7b51 (WiiU) Buildfix 2020-06-12 19:33:13 +02:00
Autechre 8173db0c4a Merge pull request #10846 from jdgleaver/task-pl-manager-heap-use-after-free
(Playlist management tasks) Fix potential heap-use-after-free errors
2020-06-12 18:54:22 +02:00
twinaphex 00df029557 Get rid of some extraneous 'valid' checks in in input_keys_pressed 2020-06-12 18:45:35 +02:00
twinaphex d998f86f1f Cleanups 2020-06-12 18:41:09 +02:00
jdgleaver 6f51ef5966 (Playlist management tasks) Fix potential heap-use-after-free errors 2020-06-12 17:40:24 +01:00
twinaphex 4a91b11806 Further input driver standardization 2020-06-12 18:28:07 +02:00
Autechre 6e621a98d9 Merge pull request #10845 from jdgleaver/x11-udev-input-fixes
(X11/udev) Input fixes
2020-06-12 17:22:44 +02:00
Autechre 4e49114c5c Merge pull request #10844 from jdgleaver/manual-scan-recursive
(Manual Content Scanner) Add option to disable recursive scanning
2020-06-12 17:13:00 +02:00
jdgleaver 2c956fbe85 (X11/udev) When fetching RETRO_DEVICE_ID_JOYPAD_MASK, only query keyboard if corresponding gamepad button is not pressed 2020-06-12 16:06:32 +01:00
jdgleaver 321ede2256 (X11/udev) Input fixes 2020-06-12 14:12:22 +01:00
jdgleaver 1cdd3c32c0 (Manual Content Scanner) Add option to disable recursive scanning 2020-06-12 10:00:38 +01:00
twinaphex 45f90ad89a (menu_dialog) Cleanups
Make menu_hash_help no longer dependent on the menu code
2020-06-12 08:06:30 +02:00
twinaphex 6092de544c (Wiiu) Buildfix 2020-06-12 07:13:55 +02:00
twinaphex 0e907f01ca (winraw_input) Cleanups - use button_is_pressed 2020-06-12 06:37:36 +02:00
twinaphex c1d63ca7c1 Revert "Grab pointer to video_driver_window_get_ptr once during init"
This reverts commit 784904071a.
2020-06-12 06:36:27 +02:00
twinaphex 451a06076d Revert "(dinput_joypad) Grab window pointer once"
This reverts commit d85eb927c1.
2020-06-12 06:36:19 +02:00
twinaphex 5a064ef4ca (dinput) Cleanups - use button_is_pressed 2020-06-12 06:26:03 +02:00
twinaphex d85eb927c1 (dinput_joypad) Grab window pointer once 2020-06-12 06:12:25 +02:00
twinaphex 784904071a Grab pointer to video_driver_window_get_ptr once during init
function, then use that throughout this driver's functions
2020-06-12 06:07:20 +02:00
twinaphex d903d684a0 (glslang) Group together more strings 2020-06-12 05:24:34 +02:00
twinaphex c2044beedd Fix shader regression with MinProgramTexelOffset 2020-06-12 05:18:38 +02:00
twinaphex eb78b608d3 Cut down on code duplication 2020-06-12 00:50:08 +02:00
twinaphex 0b95a8838a (OSX) Cleanups 2020-06-12 00:30:24 +02:00
twinaphex ecfdc867f8 Cleanups 2020-06-12 00:16:31 +02:00
twinaphex e40d381f6b (WiiU) Cleanups 2020-06-11 22:05:30 +02:00
twinaphex 255794d903 (Udev) buildfix 2020-06-11 21:40:37 +02:00
twinaphex d1d8386343 (udev) Cleanups 2020-06-11 21:38:58 +02:00
twinaphex a7ab21ac15 (Emscripten) Buildfix 2020-06-11 21:21:20 +02:00
twinaphex 88a93dc648 (OSX) Buildfix 2020-06-11 21:00:28 +02:00
twinaphex 8cc220a4d2 (CTR) Buildfix 2020-06-11 20:59:35 +02:00
twinaphex 11520f9704 (X11) Buildfix 2020-06-11 20:23:44 +02:00
twinaphex dee0c5dbca CTR buildfix + cleanups 2020-06-11 19:33:27 +02:00
twinaphex f12ac35438 Cleanups 2020-06-11 19:03:50 +02:00
twinaphex 42984968f2 (X11) Further optimizations to x_is_pressed 2020-06-11 19:00:08 +02:00
twinaphex f96e148f74 Change to 1 instead 2020-06-11 18:43:53 +02:00
twinaphex e2e5366925 Cleanups 2020-06-11 18:43:30 +02:00
Twinaphex dc967f41ec (Cocoa) Create cocoa_is_pressed 2020-06-11 18:40:14 +02:00
Autechre 204f705b35 Update CHANGES.md 2020-06-11 18:05:14 +02:00
Autechre dc10dc4702 Merge pull request #10837 from parport0/master
Add options for moving the on-screen overlay
2020-06-11 18:03:02 +02:00
twinaphex d8cf551608 Silence 'suggest braces around initialization of subobject' warning 2020-06-11 17:38:11 +02:00
twinaphex 9c1d40c364 (Android) Buildfix 2020-06-11 17:37:23 +02:00
twinaphex 3eaf7d5e66 Further cleanups and corrections 2020-06-11 17:18:28 +02:00
twinaphex 6ddbf911e3 (SDL input) Build fix - and further cleanups in other
drivers
2020-06-11 17:12:08 +02:00
Autechre 1979b42834 Merge pull request #10836 from jdgleaver/hotkey-sublabels
Add sublabels to all hotkey bind entries
2020-06-11 16:59:10 +02:00
twinaphex cd01e0a048 Standardize input lightgun code 2020-06-11 16:58:49 +02:00
jdgleaver a7ebae35de Rephrase 'Reset Game' hotkey sublabel 2020-06-11 15:52:33 +01:00
twinaphex f9c771b4a8 Standardize lightgun_aiming_state function 2020-06-11 16:50:36 +02:00
twinaphex cf3cdbbcc9 Cleanups 2020-06-11 16:49:27 +02:00
twinaphex 39279292ef (dinput) Cut down on code duplication 2020-06-11 16:42:33 +02:00
jdgleaver fa069c28f3 Add sublabels to all hotkey bind entries 2020-06-11 15:38:25 +01:00
twinaphex 4fb59f5319 (winraw_input) More fixes 2020-06-11 16:37:50 +02:00
twinaphex 1b5796b321 Fix --disable-menu 2020-06-11 16:30:45 +02:00
Autechre 2c94d9a573 Merge pull request #10838 from Jamiras/cheevos_hash_more_exts
(cheevos) support for less common file extensions
2020-06-11 16:19:44 +02:00
Autechre cabab419c5 Merge pull request #10839 from jdgleaver/core-manager
Add 'core management' menu
2020-06-11 16:19:23 +02:00
Jamiras ffb1f0b67b support for less common file extensions 2020-06-11 07:33:17 -06:00
jdgleaver 42ad070a1d Add 'core management' menu 2020-06-11 14:12:20 +01:00
parport0 a4590acde9 Add options for moving the on-screen overlay 2020-06-11 15:39:23 +03:00
twinaphex 479a3ab9a3 (Dinput) Optimizations - create dinput_is_pressed 2020-06-11 08:54:17 +02:00
twinaphex a14d54b3fd (winraw_input) Further optimizations 2020-06-11 08:34:30 +02:00
twinaphex 5d58acd2c0 (Android) Input driver optimizations - fill in device_model one time
inside the init function - mistake previously was putting it erroneously
inside an inner loop
2020-06-11 08:08:21 +02:00
twinaphex 108bbf0bf6 Turn this into static function 2020-06-11 07:12:54 +02:00
twinaphex d893e880ec Revert "(Android) android_input.c - optimize - hose code that always remains"
This reverts commit df4428bd7a.
2020-06-11 07:10:15 +02:00
twinaphex df4428bd7a (Android) android_input.c - optimize - hose code that always remains
the same outside of loops
2020-06-11 06:46:40 +02:00
twinaphex 02132985af Cleanups 2020-06-11 06:34:59 +02:00
twinaphex 9aafd3c723 (winraw) Cleanups - get rid of setting pointer grabbing everywhere -
clean up mouse state grabbing everywhere - would be costly in loops
2020-06-11 06:29:36 +02:00
twinaphex 7ee5ffcd1c Further optimize SlangProcess 2020-06-11 05:51:03 +02:00
twinaphex 703cc7198d (input drivers) cleanup log spam 2020-06-11 05:37:40 +02:00
twinaphex d924c656b7 (winraw_input) cleanups 2020-06-11 05:15:36 +02:00
twinaphex a0e6a9e1d5 (xinput joypad) Function can be made static 2020-06-11 04:53:20 +02:00
twinaphex cfc511cc6b (Dinput joypad) Some cleanups 2020-06-11 04:46:15 +02:00
twinaphex b363ed7d79 (drivers_joypad) get rid of excessive logging 2020-06-11 04:06:33 +02:00
twinaphex a68b942d1d Refactor AI Service code 2020-06-11 03:27:01 +02:00
twinaphex 30bfca0d71 (task database) Optimize extension_to_file_type 2020-06-11 02:53:31 +02:00
twinaphex a2184bcd07 (task database) optimize detect_psp_game 2020-06-11 02:39:07 +02:00
twinaphex d714520c64 (Autodetect) Cleanups 2020-06-11 02:29:32 +02:00
twinaphex 5aa26e7eee Optimize check_menu_driver_compatibility 2020-06-10 23:40:29 +02:00
twinaphex 963c01cf48 (RGUI) Move global state to struct 2020-06-10 23:33:20 +02:00
twinaphex 7c3a1a8bf0 Cleanups 2020-06-10 23:25:03 +02:00
twinaphex cec33cbc49 Disable savestate compression for UWP for now - apparently doesn't work 2020-06-10 22:44:45 +02:00
twinaphex 2b5496a417 Move input_osk.c to retroarch.c 2020-06-10 18:21:53 +02:00
twinaphex 8daa90da23 move osk_ptr global state to rarch_state 2020-06-10 18:07:20 +02:00
twinaphex e0090010f4 Cleanup menu_input_bind_dialog.c 2020-06-10 17:54:19 +02:00
twinaphex bc24092374 (VIDEOCRT SWITCH) move global state to rarch_state 2020-06-10 17:42:08 +02:00
twinaphex e04bce7dd0 Move gfx_thumbnail global state to rarch_state 2020-06-10 17:22:02 +02:00
twinaphex 66451f3ef0 Cleanups 2020-06-10 16:51:21 +02:00
twinaphex 4f3059c608 Cleanups 2020-06-10 16:33:44 +02:00
twinaphex 8eee7b3bb9 (Task database) Cleanups 2020-06-10 16:24:52 +02:00
twinaphex b2f5262a3b crt_first_run and crt_video_restore were both useless 2020-06-10 15:50:29 +02:00
twinaphex 78e0ab6c0e Update 2020-06-10 15:17:15 +02:00
Autechre 02ca1a1f01 Merge pull request #10829 from valadaa48/oga_gfx_ffwd
Add ffwd to non-threaded oga_gfx driver
2020-06-10 15:05:04 +02:00
Autechre 8576169eeb Merge pull request #10831 from jdgleaver/widget-fix
(Widgets) Fix serious heap-use-after-free errors
2020-06-10 15:04:38 +02:00
jdgleaver 9bbc9dd30e (Widgets) Fix serious heap-use-after-free errors 2020-06-10 12:32:50 +01:00
twinaphex c63a65ffa5 (WiiU) Cleanups 2020-06-10 06:30:23 +02:00
twinaphex 1e2b649a21 Cleanups 2020-06-10 05:54:00 +02:00
twinaphex fa6ca2e39c Revert "Create input_joypad_analog_button"
This reverts commit 9e7ca7cbbe.
2020-06-10 05:50:51 +02:00
twinaphex 11cba2e805 Revert "Cleanups and documentation"
This reverts commit ec2a1e79a0.
2020-06-10 05:50:42 +02:00
twinaphex 317648ecd4 Revert "Cleanup"
This reverts commit 2a6317c52f.
2020-06-10 05:50:26 +02:00
twinaphex 2a6317c52f Cleanup 2020-06-10 05:33:35 +02:00
twinaphex ec2a1e79a0 Cleanups and documentation 2020-06-10 05:18:59 +02:00
hizzlekizzle db63e0a60a add hold-select to hardcoded menu gamepad combos (#10827)
* add hold-select to hardcoded menu gamepad combos
2020-06-09 21:54:28 -05:00
twinaphex 9e7ca7cbbe Create input_joypad_analog_button 2020-06-10 04:17:08 +02:00
twinaphex a7a03984f1 (input drivers) Cleanups 2020-06-10 04:00:40 +02:00
valadaa48 3abcb2b922 Add ffwd to non-threaded oga_gfx driver 2020-06-09 20:24:28 -04:00
twinaphex 05e3a1d7e5 Get rid of unnecessary get_time_usec call in menu_input_post_iterate -
just pass current_time value around
2020-06-10 00:53:54 +02:00
twinaphex ea1ca4edcc Get rid of analog D-pad mapping macros 2020-06-10 00:41:13 +02:00
twinaphex 8eb70071f4 Cleanups 2020-06-09 22:21:02 +02:00
twinaphex 4bc39ee1cf Cleanups 2020-06-09 22:13:28 +02:00
twinaphex 8a715fab1c Cleanups 2020-06-09 20:48:54 +02:00
twinaphex 20f2654884 Remove input_menu_keys_pressed - use input_keys_pressed instead
for menu as well
2020-06-09 20:44:20 +02:00
twinaphex c4534509f7 Cleanups - make two functions nearly identical 2020-06-09 20:36:58 +02:00
twinaphex 01547ef768 Make function input_keys_pressed more like input_menu_keys_pressed 2020-06-09 20:32:48 +02:00
twinaphex 42478983a3 Cleanups/dehardcode port 2020-06-09 20:16:47 +02:00
twinaphex c09a3b75ab Further cleanups - aim is to make both of these functions one and the
same
2020-06-09 20:00:24 +02:00
twinaphex 7b879c2a2b input_keys_pressed - pass port parameter to functions 2020-06-09 19:38:15 +02:00
twinaphex 23fb0f3d4d Cleanups 2020-06-09 19:21:25 +02:00
twinaphex b19e83aa6d input_menu_keys_pressed/keys_pressed optimizations - this time
without breaking hotkey enable
2020-06-09 19:15:11 +02:00
twinaphex bb4aa82cb3 Revert "input_keys_pressed/menu_input_keys_pressed - optimizations"
This reverts commit be5985b8e6.
2020-06-09 17:18:31 +02:00
twinaphex be5985b8e6 input_keys_pressed/menu_input_keys_pressed - optimizations 2020-06-09 16:42:17 +02:00
Autechre 55b6107eb0 Update CHANGES.md 2020-06-09 16:12:25 +02:00
Autechre 2ac89ec04c Merge pull request #10826 from jdgleaver/quick-menu-suppress-no-entries
Suppress the display of 'empty' quick menu listings when closing content
2020-06-09 16:11:53 +02:00
twinaphex 11a4db3120 Revert "Reduce button state from 256bit to 128bit - all the bind IDs"
This reverts commit 47456cf94b.
2020-06-09 16:11:26 +02:00
jdgleaver eb425b997b Suppress the display of 'empty' quick menu listings when closing content 2020-06-09 14:09:22 +01:00
Autechre 9098ac9ea2 Update CHANGES.md 2020-06-09 14:46:32 +02:00
twinaphex 1597a6893d Get rid of 'All Users Control Menu' setting - was not properly
implemented - input system is in for a big overhaul in the near
future so this could be addressed in a better way then
2020-06-09 13:55:03 +02:00
Autechre 8e84c51c5c Merge pull request #10824 from jdgleaver/hotkey-delay-menu
Wire up menu entry for 'hotkey delay' option + 'hotkey enable' clarifications
2020-06-09 13:49:23 +02:00
Autechre 756afa48f7 Merge pull request #10825 from jdgleaver/3ds-build-fix
Fix 3DS build
2020-06-09 13:48:36 +02:00
jdgleaver 32a6d97e48 Set SD_FLAG_ADVANCED on 'Hotkey Enable Delay' setting 2020-06-09 11:22:36 +01:00
jdgleaver 1fde6f8aed Fix 3DS build 2020-06-09 10:57:00 +01:00
jdgleaver 47150cab07 Wire up menu entry for 'hotkey delay' option + 'hotkey enable' clarifications 2020-06-09 10:20:44 +01:00
Autechre 26e1b9d66e Update CHANGES.md 2020-06-09 06:40:52 +02:00
Autechre 60bdd1d323 Merge pull request #10821 from Themaister/wsi-rework-semaphores
Vulkan: Refactor WSI handling
2020-06-09 05:56:34 +02:00
twinaphex 84781b7f3a Buildfix for targets that don't define HAVE_NVDA 2020-06-09 03:22:10 +02:00
Themaister f089e1ccf5 Vulkan: Do not emulate mailbox on Android. 2020-06-09 00:24:29 +02:00
Themaister cd4f22c275 Vulkan: Add path which uses WSI acquire semaphores.
Fence wait path has some issues on certain platforms. For now, gate this
on whether the GPU is integrated or not.
2020-06-09 00:24:29 +02:00
Themaister 15df55d011 Vulkan: Refactor swapchain index and frame index.
Do not tie these concepts together, it will not work for upcoming
refactor of swapchain logic.
2020-06-09 00:24:29 +02:00
Themaister 6f68571805 Vulkan: Use VK_LAYER_KHRONOS_validation in VULKAN_DEBUG=1.
LUNARG_standard_validation was deprecated and removed ages ago.
2020-06-09 00:24:28 +02:00
twinaphex 5a690b7ac8 (display widgets) Cleanups 2020-06-09 00:13:34 +02:00
Autechre c9211aff57 Merge pull request #10820 from fjtrujy/newlibWithCDVD
Adding CDFS Support
2020-06-08 23:22:56 +02:00
twinaphex 52050739a1 Cleanups 2020-06-08 23:13:29 +02:00
twinaphex b183abbb0f More string_is_equal optimizations; localize more strings 2020-06-08 22:46:56 +02:00
twinaphex 2ae0583ac5 Optimize action_iterate_type 2020-06-08 22:07:04 +02:00
Rinnegatamante 0644190121 [VITA] Added custom bubbles support. 2020-06-08 21:56:10 +02:00
twinaphex 7841f07e08 Add ifdef 2020-06-08 21:45:31 +02:00
twinaphex 9364deb539 Cut down on string_is_equals for history lists 2020-06-08 21:34:39 +02:00
twinaphex c31bfb4dc8 (task_pl_thumbnail_download) Simplifications 2020-06-08 21:20:07 +02:00
twinaphex 03247eceba More localizations - some string is equal optimizations 2020-06-08 20:52:37 +02:00
twinaphex a88bf59b27 Update log messages 2020-06-08 20:31:08 +02:00
twinaphex 47456cf94b Reduce button state from 256bit to 128bit - all the bind IDs
combined right now are still under 80, so 256 bits is too
overboard for now
2020-06-08 20:13:00 +02:00
twinaphex f64da5cb1e Update more log messages 2020-06-08 19:11:43 +02:00
twinaphex aed8b7943d Cleanup log messages 2020-06-08 18:58:18 +02:00
twinaphex b97462c8a4 Builtin cores like ffmpeg and imageviewer would previously try
to erroneously load a dynamic core named 'builtin' - this would
fail and would just be a wasteful operation - this now skips
dylib loading in libretro_get_system_info for builtin cores
2020-06-08 18:40:45 +02:00
twinaphex 6fce0435a1 Update more logs 2020-06-08 18:04:29 +02:00
twinaphex be886bf2aa Update log message 2020-06-08 18:01:15 +02:00
twinaphex c2bc40bbc3 Update SRAM log messages 2020-06-08 17:57:40 +02:00
twinaphex 781835d53c More logging messages updates 2020-06-08 17:49:55 +02:00
twinaphex 12b22b7904 (Windows) Fix core path entries in image/video/music history playlists 2020-06-08 17:33:21 +02:00
twinaphex fc491e9ea4 Add more environ logs 2020-06-08 17:32:36 +02:00
twinaphex 9ff44cc682 Namespace some logs 2020-06-08 17:13:23 +02:00
twinaphex 38f9a1b1f0 (OSK) move some global state to rarch_state 2020-06-08 16:31:10 +02:00
twinaphex 5fc12c7761 Dehardcode strings and other cleanups 2020-06-08 16:02:06 +02:00
twinaphex b1425bcd91 Localize NA string 2020-06-08 15:50:43 +02:00
twinaphex 66602f4ff8 Refactor left/right callbacks for tabs - just look for '_tab'
at the end of a string
2020-06-08 15:44:36 +02:00
twinaphex 091b1c88c2 Optimize database_cursor_iterate 2020-06-08 15:27:08 +02:00
twinaphex fa5d8b6f86 Fix builds that don't have HAVE_GX_WIDGETS defined 2020-06-08 14:22:42 +02:00
Autechre be9eefeb22 Merge pull request #10816 from jdgleaver/screenshot-fix
Fix crash when taking screenshots with widgets enabled
2020-06-08 13:56:01 +02:00
Autechre 774f63d9db Merge pull request #10815 from jdgleaver/builtin-core-fix
Fix launching of playlist content assigned to 'built-in' cores
2020-06-08 13:46:32 +02:00
twinaphex ac8985a38f Buildfix for OSX PPC 2020-06-08 13:45:32 +02:00
jdgleaver 0c7f0df41a Fix crash when taking screenshots with widgets enabled 2020-06-08 12:41:22 +01:00
Twinaphex 80dd4548e1 Remove unused variables 2020-06-08 13:39:18 +02:00
jdgleaver ba6e53c2e4 Fix launching of playlist content assigned to 'built-in' cores 2020-06-08 12:00:40 +01:00
twinaphex e7082d3e5b Now that NVDA should dynamically lookup the DLL, linking against
nvdaControllerClient64.dll should no longer be necessary
2020-06-08 08:03:05 +02:00
Autechre 9071acf2ce Merge pull request #10812 from libretro/dynamic_nvda_load
Added nvda dynamic loading.
2020-06-08 08:02:27 +02:00
twinaphex ce95dcaf79 (task_pl_thumbnail_download) Some string_is__equal optimizations 2020-06-08 07:31:58 +02:00
twinaphex 5db62e73da (Ozone/XMB) Optimize some string_is_equal comparisons 2020-06-08 07:19:19 +02:00
twinaphex 58b22b0a6e Optimize some long iterations of string_is_equal 2020-06-08 07:00:22 +02:00
twinaphex cfbaa0c89d (X11) Cut down on video_driver_has_focus calls 2020-06-08 06:16:01 +02:00
twinaphex 2a21a3f893 Cleanups 2020-06-08 06:00:53 +02:00
twinaphex 8ba8772edb Cleanups 2020-06-08 05:57:47 +02:00
twinaphex a87d15e361 Cleanups 2020-06-08 05:52:25 +02:00
twinaphex 2660182d52 Get rid of gfx_widgets_ready call inside
gfx_widgets_frame
2020-06-08 05:45:15 +02:00
twinaphex 5c2a2ca485 Move widgets state over to retroarch global state 2020-06-08 05:09:42 +02:00
Barry Rowe 35f1a4af8c Added nvda dynamic loading. 2020-06-07 19:46:22 -07:00
twinaphex 57c3b1b041 Move widgets_persisting to retroarch.c 2020-06-08 04:36:40 +02:00
twinaphex 73b5bf438b Move widgets_active to retroarch.c 2020-06-08 04:32:54 +02:00
twinaphex d9565b6619 Cut down on unnecessary widgets_active early returns 2020-06-08 04:17:33 +02:00
twinaphex d6229ed70d gfx_widgets_deinit - turn return value into bool 2020-06-08 04:12:15 +02:00
twinaphex 9707f1f622 Get rid of gfx_ctx_animation_tag 2020-06-08 04:09:12 +02:00
twinaphex eb20c10713 Start getting rid of gfx_ctx_animation_tag - it's just a uintptr_t
typedef
2020-06-08 03:56:35 +02:00
twinaphex 573eddb5a4 (Metal) Always run this regardless 2020-06-08 03:28:32 +02:00
twinaphex c1aeafbe3d Fix --disable-menu 2020-06-08 03:24:47 +02:00
twinaphex 7f54f410f4 Remove pointer grabbing from get_msg_queue function 2020-06-08 03:11:59 +02:00
twinaphex 69bdf581f4 Change this back 2020-06-08 03:10:31 +02:00
Autechre f6d361ad08 Merge pull request #10811 from Jamiras/rcheevos_hash
(cheevos) use rcheevos for identifying games
2020-06-08 03:08:50 +02:00
twinaphex 876419294d (gfx widgets) Pass more state around 2020-06-08 02:54:01 +02:00
twinaphex 54372f2524 Pass state around to widget interface 2020-06-08 02:31:36 +02:00
twinaphex 77f5433f22 Create global wrapper function for state 2020-06-08 01:59:25 +02:00
twinaphex 9aa736b522 Move forward declarations up 2020-06-08 01:56:45 +02:00
twinaphex a2ea198fdd (gfx widgets) Pass pointer around more 2020-06-08 01:55:04 +02:00
twinaphex 3f163eaa8d Bring all graphics widget global state together under one struct 2020-06-08 01:41:21 +02:00
Jamiras 7d488aa200 use rcheevos for identifying games 2020-06-07 17:13:50 -06:00
twinaphex dc217b313c Buildfix 2020-06-07 23:45:48 +02:00
twinaphex ddf45fdad2 (gfx widgets) Cleanups 2020-06-07 23:43:59 +02:00
twinaphex 4524ff7cd7 (Gfx widgets) Cleanups 2020-06-07 23:39:11 +02:00
twinaphex 797d3f871c (Gfx widgets) get rid of this early return - already done outside 2020-06-07 23:26:37 +02:00
twinaphex 6b5e9a3224 (gfx widgets) Cleanups 2020-06-07 23:17:37 +02:00
Twinaphex 03c1283fcb Remove unused variable 2020-06-07 23:04:20 +02:00
twinaphex ce02161255 Cleanups 2020-06-07 23:01:52 +02:00
twinaphex 5e2649a6f5 Move gfx_display global state to rarch state 2020-06-07 22:58:06 +02:00
twinaphex 155a490f4e Update more US strings 2020-06-07 22:25:29 +02:00
twinaphex cb90fdb802 (Cheevos) Cleanups 2020-06-07 21:48:36 +02:00
twinaphex 55a8404d01 (Cheevos) Cleanups 2020-06-07 21:34:43 +02:00
twinaphex 2baa3be2da Cleanups 2020-06-07 21:18:07 +02:00
twinaphex d15942f6c8 Cleanups 2020-06-07 20:55:27 +02:00
Autechre 3b93c7c36d Merge pull request #10810 from shantigilbert/master
Fix undeclared (VIDEO_RGA_SCALING) label
2020-06-07 20:29:54 +02:00
twinaphex 81b2cc0d14 Get rid of menu_entry_is_password 2020-06-07 20:27:17 +02:00
shantigilbert 137c468ca4 Fix undeclared label
This commit, https://github.com/libretro/RetroArch/commit/2c635e9e1b73a697d22c703dad05f08c20595c11 is missing this declaration.
2020-06-07 13:18:26 -05:00
twinaphex 05a344d831 Cleanups 2020-06-07 20:06:56 +02:00
twinaphex 058adf247c Further optimizations to menu_entry_get - get rid of some unnecessary
small wrapper functions
2020-06-07 20:02:12 +02:00
Francisco Javier Trujillo Mata d896d59e8e Use -O3 for compilatino 2020-06-07 19:43:18 +02:00
Francisco Javier Trujillo Mata df4e715738 Clean Makefile dependencies 2020-06-07 19:43:18 +02:00
Francisco Javier Trujillo Mata 06606407f4 Add CDVDFS support back 2020-06-07 19:43:18 +02:00
twinaphex 45896eb26e (Ozone) Cleanups - move some static variables to only function
that needed them - and some other cleanups in loops
2020-06-07 18:17:53 +02:00
twinaphex ad29b70d9e (RGUI) Cleanups 2020-06-07 18:09:31 +02:00
twinaphex 26133d8336 (MaterialUI) Don't iteratively call menu_entries_get_size 2020-06-07 17:58:55 +02:00
twinaphex 4feed0031e (XMB) Optimize xmb_selection_pointer_changed 2020-06-07 17:53:23 +02:00
twinaphex 2460603ea5 Further optimization to ozone_draw_entries 2020-06-07 17:46:23 +02:00
twinaphex 41ffca2b6f (CTR) Style nits 2020-06-07 17:28:53 +02:00
twinaphex 98b847cad9 Fix some memory leaks and fallthrough errors picked up on by
Clang static code analyzer
2020-06-07 16:15:35 +02:00
Twinaphex df8df6c18b Fix EXC_BAD_ACCESS crash on RetroArch exit on OSX 2020-06-07 05:53:46 +02:00
twinaphex f2ae16e125 Pass global pointer state around 2020-06-07 05:40:44 +02:00
twinaphex 4a9f136aa9 Make menu_shader.c no longer dependent on menu driver state 2020-06-07 05:06:20 +02:00
twinaphex 0d12472e74 Cleanups 2020-06-07 04:32:36 +02:00
twinaphex 8175f3c98e Cleanup menu_list_flush_stack and menu_list_pop_stack 2020-06-07 04:19:10 +02:00
twinaphex fdf9f82593 (XMB) Delay menu_entry_get processing until necessary 2020-06-07 03:53:53 +02:00
twinaphex 08f1fb5b38 (Ozone) Cleanups 2020-06-07 03:45:57 +02:00
twinaphex 0010bffb63 action_select_default optimization 2020-06-07 03:33:24 +02:00
twinaphex b2124a1f89 Further menu_entry_get optimizations 2020-06-07 03:27:30 +02:00
twinaphex c97fbbb155 (XMB) Make similar optimizations for XMB 2020-06-07 03:13:02 +02:00
Autechre eddcde84b6 Merge pull request #10802 from heuripedes/coz
Ozone improvement
2020-06-07 03:01:47 +02:00
twinaphex be76958070 Unneeded gdi_has_menu_frame 2020-06-07 02:56:56 +02:00
twinaphex b42897d0b6 (GDI) Weird code - clean this up 2020-06-07 02:55:51 +02:00
twinaphex 7b5ea63329 remove now obsolete file 2020-06-07 02:42:42 +02:00
twinaphex 4990bebd8a Turn macro names into all-caps 2020-06-07 02:41:48 +02:00
Autechre 50e522c9ce Merge pull request #10801 from snackycakes/hotkey_block_delay
Added a hotkey delay option to fix issue #9080
2020-06-07 01:25:28 +02:00
twinaphex 37d926fc0d Updates 2020-06-07 01:22:34 +02:00
twinaphex de09440d1c Change macros to all caps 2020-06-07 01:19:17 +02:00
Higor Eurípedes ec197c441e ozone: Move some menu_entry_get*() calls to a better place
menu_entry_get*() was getting called even for entries that wouldn't be displayed.
2020-06-06 20:08:28 -03:00
Higor Eurípedes 1f45018ee8 shader_glsl.c: Move buffer null pointer check in gl_glsl_set_coords()
`buffer` is initialized to a statically allocated variable and can only be NULL
when the allocation of a bigger buffer fails. When only the core frame is being
displayed, the buffer never points to the heap thanks to the small buffer
optimization.
2020-06-06 20:08:28 -03:00
twinaphex 9dca8de90f (configuration.c) Turn enums into const 2020-06-07 00:33:48 +02:00
twinaphex 9059b4962e Cleanups 2020-06-07 00:05:41 +02:00
Robert Hammond af64bbb627 Changed default value for config option input_hotkey_block_delay to 5. 2020-06-06 18:04:24 -04:00
twinaphex 361b252de2 Fix C89_BUILD and --disable-menu 2020-06-06 23:32:09 +02:00
twinaphex aae94efcfb Cleanup 2020-06-06 22:46:05 +02:00
twinaphex 7413d05705 Cleanups 2020-06-06 22:42:43 +02:00
twinaphex 4bbc226335 Move netplay_frontend.c to retroarch.c - move global state to
retroarch global state
2020-06-06 21:57:22 +02:00
Robert Hammond bd17e13ef7 Added a hotkey delay option to allow hotkey input to work properly when it is assigned to another action. Original pull request from 9080 by paradadf was taken and modified to be configuration based. 2020-06-06 15:39:51 -04:00
twinaphex 1f2403392e Cleanup 2020-06-06 20:59:43 +02:00
twinaphex 543e4bca16 Merge Discord code into retroarch.c 2020-06-06 20:50:25 +02:00
twinaphex 9219eb5aaf Merge input_mapper.c into retroarch.c 2020-06-06 20:27:38 +02:00
twinaphex cd42d02020 Cleanups 2020-06-06 19:36:46 +02:00
twinaphex d98a0e2dce Refactor away menu_display_libretro_running 2020-06-06 19:29:54 +02:00
twinaphex 255cd3a937 MENU_ENTRIES_CTL_LIST_GET no longer used by menu drivers 2020-06-06 19:09:03 +02:00
twinaphex 4f568fa68f Turn macro names into uppercase 2020-06-06 19:02:42 +02:00
twinaphex 82c009d405 Pass state around to menu_shader_manager_free 2020-06-06 18:44:53 +02:00
twinaphex 35fce65656 Move menu_driver_shader into menu_handle state 2020-06-06 18:41:21 +02:00
twinaphex 01da7b95e2 Revert "Move menu_displaylist global state to menu_handle_t"
This reverts commit c79966bd62.
2020-06-06 18:30:08 +02:00
twinaphex c79966bd62 Move menu_displaylist global state to menu_handle_t 2020-06-06 18:20:06 +02:00
twinaphex 2fb53ba687 Cleanups 2020-06-06 18:02:07 +02:00
Twinaphex 473f94ed58 Remove unused variable 2020-06-06 17:54:06 +02:00
twinaphex 7dbe75e89b CXX_BUILD buildfix 2020-06-06 17:41:51 +02:00
twinaphex 9448896586 Change more labels 2020-06-06 17:26:51 +02:00
twinaphex 68d67d8e4e Backport suggested US translation improvements 2020-06-06 17:24:41 +02:00
twinaphex 351fe36a6d Cleanups 2020-06-06 15:37:28 +02:00
Autechre 2aeb95cbd4 Merge pull request #10799 from jdgleaver/core-info-search
Core info search optimisations + improved core selection logic + clean-ups
2020-06-06 15:35:42 +02:00
twinaphex cb78470471 Cleanups 2020-06-06 15:15:51 +02:00
twinaphex 78b030d8b8 Cut down on code duplication 2020-06-06 15:06:45 +02:00
jdgleaver 445921ac5d Core info search optimisations + improved core selection logic + clean-ups 2020-06-06 13:59:28 +01:00
twinaphex c1b3ef6661 Cleanups 2020-06-06 14:54:13 +02:00
twinaphex 742c49cee7 Revert "Cleanups"
This reverts commit 802d501c39.
2020-06-06 14:48:42 +02:00
twinaphex 7063f3df13 Cleanups 2020-06-06 14:17:58 +02:00
twinaphex 802d501c39 Cleanups 2020-06-06 14:01:09 +02:00
twinaphex b8374826ac Merge menu_cbs into retroarch.c 2020-06-06 03:58:03 +02:00
twinaphex 412d158d2e Start adding mechanism to not list 'null' drivers in Driver screen 2020-06-06 02:48:49 +02:00
twinaphex 73a5ad91a1 Get rid of find_handle functions 2020-06-06 01:51:53 +02:00
twinaphex 1d63f67877 Move more to retroarch global state 2020-06-06 01:28:52 +02:00
twinaphex f0e80e365a Cleanups 2020-06-05 23:59:06 +02:00
twinaphex d3887545ee Cleanups 2020-06-05 23:55:41 +02:00
twinaphex ab53d57079 Cleanups 2020-06-05 23:25:16 +02:00
twinaphex bb73fc6a89 Silence warnings 2020-06-05 22:39:44 +02:00
twinaphex 6de048371f Cleanups 2020-06-05 22:31:30 +02:00
twinaphex 7501b010f4 Cleanups 2020-06-05 22:00:10 +02:00
twinaphex c3943836dd (Menu) Cleanups 2020-06-05 20:58:09 +02:00
twinaphex e587f1a60e (Menu) Cleanups 2020-06-05 20:32:13 +02:00
twinaphex e732edbd9a Cleanups 2020-06-05 20:21:02 +02:00
twinaphex f8fc3fbbf8 Move static global stuff into rarch global state 2020-06-05 20:11:13 +02:00
twinaphex 5b3253c7aa Move menu_driver_state into p_rarch state 2020-06-05 19:42:34 +02:00
twinaphex 09f85d130d Merge menu_driver.c into retroarch.c - yes, it's even bigger I know,
this is so that we can consolidate global state and then start splitting
things up across several files
2020-06-05 19:29:14 +02:00
twinaphex bcf34b8f3b Start passing around retroarch pointer 2020-06-05 19:22:33 +02:00
twinaphex b8f5f22a87 Cleanups 2020-06-05 18:17:31 +02:00
twinaphex 110339c1cc (libretro-db) Add TODO/FIXME notes 2020-06-05 18:13:25 +02:00
twinaphex b8c41812bf Move use_gl variable outside of the while loop 2020-06-05 16:53:28 +02:00
twinaphex 52e1c38cf1 Fix C89 variable declaration issue 2020-06-05 16:27:56 +02:00
Autechre c8b64bef1d Update CHANGES.md 2020-06-05 12:52:07 +02:00
Autechre 2cec960ada Merge pull request #10774 from Jamiras/cheevos_report_err
report API errors when unlocking achievements or submitting leaderboards
2020-06-05 12:50:12 +02:00
twinaphex b42c1a2eda Silence some Emscripten warnings 2020-06-04 23:44:54 +02:00
twinaphex c74d145167 Hose this out of HAVE_NETWORKING ifdef 2020-06-04 23:41:13 +02:00
twinaphex fce29caff7 Add time/rtime.c to Salamander builds 2020-06-04 23:37:35 +02:00
Autechre 58b7fa58e3 Merge pull request #10791 from guoyunhe/persian-fallback-font
Use fallback font for Persian
2020-06-04 22:41:54 +02:00
Guo Yunhe 40eb37ba46 Use fallback font for Persian 2020-06-04 23:36:04 +03:00
Autechre b88377d277 Merge pull request #10787 from guoyunhe/new-languages
Add Persian, Hebrew and Asturian language options
2020-06-04 16:31:12 +02:00
Autechre 30a4610b12 Merge pull request #10788 from jdgleaver/core-backup
Add option to backup/restore installed cores
2020-06-04 16:30:55 +02:00
twinaphex 88f7515d1d Cleanups, comments, style nits 2020-06-04 14:41:28 +02:00
jdgleaver f78c0a8cc9 Fix licensing of core_backup.h/.c 2020-06-04 13:22:46 +01:00
twinaphex 9fda2bdebd Add TODO/FIXME comments 2020-06-04 14:09:45 +02:00
Guo Yunhe 0701b99039 Add Persian, Hebrew and Asturian language options 2020-06-04 14:54:28 +03:00
jdgleaver 0a33e562f4 Add option to backup/restore installed cores 2020-06-04 12:20:58 +01:00
twinaphex a3cce404b6 Turn this into a static global variable 2020-06-04 12:23:59 +02:00
Autechre 7965549204 Merge pull request #10358 from guoyunhe/master
Fetch translation from Crowdin
2020-06-04 11:53:33 +02:00
Autechre 0bf6c9b239 Merge pull request #10778 from guoyunhe/fix-line-breaks
Fix line breaks for Crowdin
2020-06-04 11:53:13 +02:00
Guo Yunhe 171dd52984 Synchronize translations 2020-06-04 12:40:25 +03:00
Francisco José García García 27a0e6a1a4 [VITA] Change error name to vgl_error 2020-06-03 20:48:16 +02:00
Francisco José García García 13b5450ff9 [GL1] Initial changes for hw context without FBO 2020-06-03 20:48:16 +02:00
Autechre 9e908b1255 Merge pull request #10781 from tunip3/master
improve performance by enabling game mode
2020-06-03 18:08:39 +02:00
tunip3 fed9490471 improve performance by enabling game mode
by using
<rescap:Capability Name="expandedResources" />
it should hopefully enable game mode and improve performance, especially on xbox one
https://docs.microsoft.com/en-us/windows/win32/api/_gamemode/
2020-06-03 16:57:36 +01:00
Guo Yunhe 898bed26f0 Fix line breaks for Crowdin 2020-06-03 16:49:43 +03:00
Autechre cfcb107caf Merge pull request #10771 from guoyunhe/key-format
Change keys to upper case
2020-06-03 14:05:41 +02:00
Autechre 26a5fdcba4 Merge pull request #10772 from guoyunhe/fix-ctx-scale-msg
Avoid duplicate keys
2020-06-03 14:05:16 +02:00
Jamiras 6e5b786329 report API errors when unlocking achievements or submitting leaderboards 2020-06-02 22:03:35 -06:00
Francisco José García García 4439e2fcb5 Squashed 'deps/vitaGL/' changes from fb87308d15..c816fec50f
c816fec50f Added stride arg to vglBindPackedAttribLocation.
07f4380e60 Added glUniform1i implementation.

git-subtree-dir: deps/vitaGL
git-subtree-split: c816fec50f823f1a7ee082042d5159dbdf16e46c
2020-06-02 18:31:03 +02:00
Francisco José García García ec5dcce74c [VITA] Fix name clash 2020-06-02 18:31:03 +02:00
Guo Yunhe 2c635e9e1b Avoid duplicate keys 2020-06-02 11:15:12 +03:00
Guo Yunhe e9916df9d0 Change keys to upper case 2020-06-02 10:28:00 +03:00
Autechre ff65c836c2 Update CHANGES.md 2020-06-01 19:27:23 +02:00
twinaphex 6083450d4e Ensure save states are correctly flushed to disk when quitting RetroArch (fixes broken save states when exiting RetroArch - without first closing content - with 'Auto Save State' enabled) 2020-06-01 17:39:52 +02:00
Francisco José García García ba0d5705fc [VITA] Fix vitagl clash with function names 2020-06-01 14:16:53 +02:00
twinaphex 5644bd43b1 Pass p_rarch pointer around 2020-06-01 12:15:18 +02:00
twinaphex 4163a84d62 Pass p_rarch pointer around 2020-06-01 12:00:30 +02:00
Rinnegatamante 14a6c42e0d [VITA] Using a global to prevent erroneous vitaGL re-initializations. 2020-06-01 11:12:16 +02:00
twinaphex 072a93d00c Cleanups 2020-06-01 03:10:29 +02:00
twinaphex b8faf43040 Buildfix 2020-06-01 03:04:45 +02:00
twinaphex 433547caa0 Cleanups 2020-06-01 03:02:07 +02:00
twinaphex a9495b8846 Buildfix 2020-06-01 03:01:53 +02:00
twinaphex 293e45f551 Cleanups 2020-05-31 23:38:18 +02:00
twinaphex 0427f08511 Cleanup 2020-05-31 23:06:03 +02:00
twinaphex 76ee0ab97e Cleanups 2020-05-31 22:24:06 +02:00
twinaphex 24d4547605 Cleanups 2020-05-31 22:16:12 +02:00
twinaphex fb7589e253 Move g_extern and retro_ctx and current_core into RetroArch
global state
2020-05-31 21:59:35 +02:00
twinaphex 99a971b105 OSX Buildfixes 2020-05-31 19:55:01 +02:00
twinaphex c2be385fe4 Move more globals to state struct 2020-05-31 19:37:26 +02:00
twinaphex 1392afea46 Move more to global state 2020-05-31 19:31:32 +02:00
Francisco José García García 5fe273195b [VITA] Disable sqrtfv 2020-05-31 18:04:10 +02:00
Francisco José García García a10abdd929 Merge pull request #10750 from libretro/vitagl
VitaGL and Math-neon update
2020-05-31 17:26:43 +02:00
Francisco José García García ae9bdba06f Merge commit 'af97efdc17a1215a63a9ee639cf9361876ded50d' as 'deps/math-neon' 2020-05-31 17:24:53 +02:00
Francisco José García García af97efdc17 Squashed 'deps/math-neon/' content from commit bf34c68a8e
git-subtree-dir: deps/math-neon
git-subtree-split: bf34c68a8e141f7e6f37040da9311b07f1bbe529
2020-05-31 17:24:53 +02:00
Francisco José García García b2f61389ff [VITA] Remove math-neon 2020-05-31 17:24:11 +02:00
Francisco José García García e16ae7a641 Merge commit '56797b8841ab5a9a9d7a9ab82383567300361252' 2020-05-31 17:18:53 +02:00
Francisco José García García 56797b8841 Squashed 'deps/vitaGL/' changes from 9a6e4b3397..fb87308d15
fb87308d15 Added vglBindPackedAttribLocation.
7e933f6051 Added NO_DEBUG compile option.
28e8516718 Faster textures storing when format is the same as internal format.

git-subtree-dir: deps/vitaGL
git-subtree-split: fb87308d15a387d2549fb45d860b3d87ede8a0ca
2020-05-31 17:18:53 +02:00
Francisco José García García ec336442bd Merge pull request #10749 from libretro/vitagl
VitaGL fixes
2020-05-31 17:14:23 +02:00
Francisco José García García f976078ef2 [VITA] GL fixes 2020-05-31 17:10:26 +02:00
twinaphex dd8ba82513 Move more variables to global state 2020-05-31 16:41:03 +02:00
twinaphex c8c54b61ef Move static global variables to struct 2020-05-31 11:07:38 +02:00
twinaphex 2016218fc7 Cleanups 2020-05-31 10:27:29 +02:00
twinaphex 994dfa714b (retroarch.c) Reorganize global variables 2020-05-31 09:37:29 +02:00
twinaphex b695ef4591 Move more variables to RetroArch global state 2020-05-31 07:12:33 +02:00
twinaphex 78d1efac12 Move more static variables to RetroArch global state 2020-05-31 05:57:26 +02:00
twinaphex fd84dc5e24 Only log messages for input descriptors/set_controller_info and other
libretro callbacks if core logging level is set to DEBUG
2020-05-31 05:41:07 +02:00
twinaphex 3ad6c9c84b Merge branch 'master' of https://github.com/libretro/RetroArch 2020-05-31 05:37:32 +02:00
twinaphex 0135a33a7c Move more variables to RetroArch global struct 2020-05-30 17:16:45 +02:00
Autechre 0fedfa220f Merge pull request #10734 from jdgleaver/cheevos-m3u
(Cheevos) Use 'm3u_file.h' library when parsing M3U files
2020-05-30 14:51:08 +02:00
twinaphex 8ae3fe1e80 Cleanups 2020-05-30 14:45:12 +02:00
twinaphex 3b9f131930 Move more RetroArch global state to struct 2020-05-30 14:26:10 +02:00
jdgleaver eb429f9211 (Cheevos) When parsing M3U files, only capture the first entry 2020-05-30 12:16:52 +01:00
Autechre c1fc796bf7 Update CHANGES.md 2020-05-30 04:51:52 +02:00
Autechre 4d406c95d3 Merge pull request #10735 from niacat/sdl-gl-glsl
sdl_gl_ctx: advertise GLSL support
2020-05-30 01:57:53 +02:00
nia ef0038de2a sdl_gl_ctx: advertise GLSL support 2020-05-29 18:03:25 +01:00
jdgleaver 21ad64ab77 (Cheevos) Use 'm3u_file.h' library when parsing M3U files 2020-05-29 17:44:31 +01:00
twinaphex 13be887d2d Solve this a different way, update .travis.yml, DISABLE_THREADS
target will also now disable glslang
2020-05-29 15:14:46 +02:00
twinaphex 358ffbd3b9 This is wrong 2020-05-29 13:52:29 +02:00
twinaphex 2d659c3484 (Glslang) Don't build it when --disable-networking is set 2020-05-29 13:45:40 +02:00
twinaphex 00167caf54 Use localized strings 2020-05-29 12:54:09 +02:00
twinaphex 941c3b9678 Cleanups 2020-05-29 12:46:18 +02:00
twinaphex f2ee7c8f0b Localize message 2020-05-29 11:57:03 +02:00
twinaphex 479a8a6e64 (PS2) Fix warning incompatible pointer type 2020-05-29 11:22:53 +02:00
twinaphex 7b5d338bed (Travis) Add --disable-threads check 2020-05-29 11:20:46 +02:00
twinaphex 9f9710beb6 Fix --disable-threads 2020-05-29 11:16:38 +02:00
twinaphex 11f63f379b Localized strings 2020-05-29 10:59:14 +02:00
twinaphex 40a4b395d7 Localize string 2020-05-29 10:50:08 +02:00
twinaphex 8ddacead9f Cleanups 2020-05-29 10:37:01 +02:00
twinaphex 93ae674624 Cleanups 2020-05-29 10:33:07 +02:00
twinaphex 6cc47f8ee0 task_pl_thumbnail_download - replace many subsequent strlcat calls
with one snprintf
2020-05-29 10:30:56 +02:00
twinaphex ec35ce7fdc Add TODO/FIXME notes 2020-05-29 10:23:48 +02:00
twinaphex 06f5f40cb3 Cleanups 2020-05-29 10:09:30 +02:00
twinaphex 56619d7276 Add more TODO/FIXME notes 2020-05-29 06:31:15 +02:00
twinaphex 3ae7e9f8df Update TODO/FIXMEs 2020-05-29 06:20:16 +02:00
twinaphex a5ca6c24de Add more TODO/FIXMEs for globals 2020-05-29 06:17:39 +02:00
twinaphex a50fd86f3e Add global state warnings 2020-05-29 06:11:07 +02:00
Autechre 8cf3a48106 Update CHANGES.md 2020-05-29 05:56:52 +02:00
twinaphex da3548e680 Update MENU_ENUM_SUBLABEL_DOWNLOAD_CORE 2020-05-29 05:55:18 +02:00
twinaphex 810f837596 Update 2020-05-29 05:52:17 +02:00
twinaphex 22f2cf1e56 Get rid of dir_get and other useless wrapper functions 2020-05-29 05:36:48 +02:00
twinaphex 3af84d73e9 Move menu_content_environment_get to retroarch.c 2020-05-29 05:28:29 +02:00
twinaphex 8b796d3b47 Add TODO/FIXME notes for globals 2020-05-29 05:27:13 +02:00
twinaphex ea0d3b5fd8 Remove obsolete function rarch_timer_begin_us 2020-05-29 05:21:37 +02:00
twinaphex 6b781d5a9b Move global performance counter state into retroarch.c 2020-05-29 05:12:09 +02:00
twinaphex 009d979b6c Move more variables to retroarch global state 2020-05-29 04:59:29 +02:00
Autechre eafb2b060d Merge pull request #10727 from WeedyWeedSmoker/International-language-names-update
International: Fix incorrect language names
2020-05-29 03:36:55 +02:00
twinaphex aa753eb492 Localize more strings 2020-05-29 02:52:56 +02:00
Twinaphex b697ff8acd Remove unused variables 2020-05-28 23:26:17 +02:00
Autechre 7759c83b13 Update CHANGES.md 2020-05-28 23:22:33 +02:00
Autechre 4b4c1f130c Merge pull request #10723 from jdgleaver/unix-paths
(Linux) Set default saves/save states/system paths
2020-05-28 23:21:23 +02:00
Autechre b9ada7bb28 Merge pull request #10726 from jdgleaver/core-updater-2
More core updater improvements
2020-05-28 23:21:09 +02:00
Autechre e2f351ed20 Update .travis.yml 2020-05-28 23:20:48 +02:00
Autechre eab924f428 Update .travis.yml 2020-05-28 23:20:15 +02:00
twinaphex 2293abd424 Fix DISABLE_NETWORKING 2020-05-28 23:19:34 +02:00
twinaphex aa2e9b9a00 Buildfixes 2020-05-28 23:15:28 +02:00
Weedy Weed Smoker 9997d2d7ab International: Fix incorrect language names
This commit aims to fix Arabic and Chinese characters not appearing correctly, as well as making clear a restart is required for some languages to display properly…
2020-05-29 02:47:41 +07:00
jdgleaver 044bd03a13 More core updater improvements 2020-05-28 17:48:18 +01:00
jdgleaver e44242db93 (Linux) Set default saves/save states/system paths 2020-05-28 12:09:46 +01:00
Autechre dd65d901ee Merge pull request #10719 from RobLoach/stdstring
libretro-db: Fix stdstring undefined in c_converter
2020-05-28 08:33:36 +02:00
Rob Loach 16aac7bfac libretro-db: Fix stdstring undefined in c_converter 2020-05-27 18:34:47 -04:00
Autechre c2b8b3f1e1 Update CHANGES.md 2020-05-27 20:14:38 +02:00
Autechre 9552f87157 Update CHANGES.md 2020-05-27 20:11:31 +02:00
Autechre 2b10350edc Merge pull request #10716 from jdgleaver/core-updater-improvements
Core updater improvements
2020-05-27 18:31:18 +02:00
jdgleaver 9f4a9e9cd6 Core updater improvements 2020-05-27 17:02:43 +01:00
twinaphex 02bc3ee1e8 Buildfixes/cleanups 2020-05-26 21:34:05 +02:00
Autechre a62cac03e6 Merge pull request #10679 from jdgleaver/retro-message-ext
Add API extension to provide cores with finer grained control over environment callback messages
2020-05-26 17:39:49 +02:00
Twinaphex 63f5723b27 Silence warnings 2020-05-26 17:38:52 +02:00
Autechre 434f046244 Merge pull request #10714 from jdgleaver/glui-divider-fix
(GLUI) Fix rendering of last on-screen entry divider in thumbnail views
2020-05-26 17:05:07 +02:00
jdgleaver 63c7deb583 (GLUI) Fix rendering of last on-screen entry divider in thumbnail views 2020-05-26 13:03:09 +01:00
jdgleaver a1210d63cc Extended core message interface - add API support for 'progress' messages 2020-05-26 11:42:46 +01:00
jdgleaver 23916f88c7 Extended core message interface - add concept of message 'type' 2020-05-26 10:03:25 +01:00
jdgleaver fc8b76708a Add API extension to provide cores with finer grained control over environment callback messages 2020-05-26 10:03:25 +01:00
Twinaphex e179a8e568 Cleanups 2020-05-26 08:53:29 +02:00
twinaphex fec69828a9 Cleanup 2020-05-26 08:49:59 +02:00
twinaphex a1ed747a7f Cleanups 2020-05-26 08:42:10 +02:00
twinaphex 2386ec8f0c Move more variables to rarch global struct 2020-05-26 08:34:43 +02:00
twinaphex 7cfbe73288 Move more variables to rarch global state struct 2020-05-26 08:15:35 +02:00
twinaphex c637686a76 Move more variables to retroarch global state 2020-05-26 03:18:34 +02:00
twinaphex fda235518a Cleanup command_event_disable_overrides 2020-05-26 02:11:59 +02:00
twinaphex 1c45a070d1 Avoid namespace collision 2020-05-26 02:03:34 +02:00
twinaphex 922d5a00e1 Cleanups and add FIXME/TODO note 2020-05-26 02:02:20 +02:00
twinaphex 24ca499570 Cleanups 2020-05-26 01:14:26 +02:00
twinaphex b70451d550 Start creating retroarch main state global struct 2020-05-26 00:01:59 +02:00
twinaphex 602d3d285c Revert "(glcore) switch to glcore video driver when requested"
This reverts commit 7a3ddcd77d.
2020-05-25 21:31:23 +02:00
Autechre bcefb124f3 Merge pull request #10709 from libretro/revert-10703-revert-10702-revert-10685-patch-6
Revert "Revert "Revert "(video) fix "Allow Cores to Switch the Video Driver OFF" behavior"""
2020-05-25 21:27:13 +02:00
Autechre 3db672a60d Revert "Revert "Revert "(video) fix "Allow Cores to Switch the Video Driver OFF" behavior""" 2020-05-25 21:26:11 +02:00
Autechre d6fca804b4 Update CHANGES.md 2020-05-25 19:20:17 +02:00
Autechre 1fd777106d Merge pull request #10707 from jdgleaver/date-separator
Enable configuration of date seperator in clock and runtime 'last played' displays
2020-05-25 18:22:01 +02:00
Autechre d3519a2b82 Merge pull request #10706 from jdgleaver/ozone-sort-after-truncate
(Ozone) Add option to sort playlists after name truncation
2020-05-25 17:07:36 +02:00
jdgleaver 18912ac23d Enable configuration of date seperator in clock and runtime 'last played' displays 2020-05-25 15:46:53 +01:00
jdgleaver 230198fe4a (Ozone) Add option to sort playlists after name truncation 2020-05-25 11:32:17 +01:00
Autechre 089c64f427 Merge pull request #10703 from libretro/revert-10702-revert-10685-patch-6
Revert "Revert "(video) fix "Allow Cores to Switch the Video Driver OFF" behavior""
2020-05-24 23:42:25 +02:00
Autechre 950bf29c27 Revert "Revert "(video) fix "Allow Cores to Switch the Video Driver OFF" behavior"" 2020-05-24 23:42:12 +02:00
Autechre 2e26a05875 Merge pull request #10702 from libretro/revert-10685-patch-6
Revert "(video) fix "Allow Cores to Switch the Video Driver OFF" behavior"
2020-05-24 23:25:04 +02:00
Autechre d1f4279b8f Revert "(video) fix "Allow Cores to Switch the Video Driver OFF" behavior" 2020-05-24 23:24:35 +02:00
twinaphex 31ff7e384f Cleanups 2020-05-24 21:55:41 +02:00
twinaphex fa37234a49 Cut down on strlens 2020-05-24 21:23:52 +02:00
twinaphex a1752db25a Put this behind DEBUG ifdef 2020-05-24 20:49:58 +02:00
twinaphex 737718ba5d (network) Turn functions that are not accessed outside static 2020-05-24 20:38:50 +02:00
twinaphex 8bf11e9b18 (libretro-common) Try to prevent implicit usage of stdio fprintf 2020-05-24 20:18:36 +02:00
twinaphex bc226305d7 (x11_common.c) Cleanup 2020-05-24 19:38:41 +02:00
twinaphex e030986837 Replace fprintfs with RARCH_LOG/RARCH_ERR 2020-05-24 19:29:55 +02:00
twinaphex bcbad532e6 Rewrite fprintf into RARCH_ERR 2020-05-24 19:22:17 +02:00
twinaphex 88b8e5a16a Replace with string_ends_with 2020-05-24 19:16:13 +02:00
twinaphex d9bbe604e9 silence unused variable warnings 2020-05-24 19:13:22 +02:00
twinaphex 67f0df94f9 (CDROM) Reduce log spam 2020-05-24 19:11:55 +02:00
twinaphex 53beaee6e6 Cleanup 2020-05-24 18:28:27 +02:00
twinaphex 5b562c4c24 Style nits/cleanups 2020-05-24 18:21:30 +02:00
twinaphex 1a2fdffd5b Move variables to top 2020-05-24 18:02:47 +02:00
Autechre 8ada7049c2 Update CHANGES.md 2020-05-24 17:50:24 +02:00
twinaphex 93e8edf2f9 Fix C89_BUILD error and several style nits 2020-05-24 17:41:27 +02:00
Autechre 8ce192de82 Merge pull request #10699 from guoyunhe/ar-cjk-fonts
Fix Arabic, Chinese and Korean font rendering
2020-05-24 17:36:49 +02:00
twinaphex 376b62e8fa Cut down on more unnecessary strlens 2020-05-24 17:25:52 +02:00
twinaphex 64c30610f5 Fix menu_shader_manager_save_preset_internal 2020-05-24 16:44:48 +02:00
Guo Yunhe b6561ee9ca Fix Arabic, Chinese and Korean font rendering 2020-05-24 17:39:22 +03:00
twinaphex cf1bc2634d Prevent doing unnecessary double strlen 2020-05-24 16:38:53 +02:00
twinaphex 2f836f786f (Dutch) Fix small typo for now - when Crowdin gets resynced this
should already be in there
2020-05-24 08:23:47 +02:00
Autechre 1431a0b275 Update CHANGES.md 2020-05-24 08:19:29 +02:00
Autechre 1c8b6bebce Update CHANGES.md 2020-05-24 08:18:04 +02:00
twinaphex cebc01cb1e C89_BUILD buildfix 2020-05-24 06:54:42 +02:00
Autechre 2ac18a621a Merge pull request #10697 from phcoder/x11
Improvements for XShm
2020-05-24 06:51:13 +02:00
twinaphex 51b868b6a4 (Vita) Buildfix 2020-05-24 06:47:04 +02:00
Vladimir Serbinenko c9c2d8a0b6 xshm_gfx: Add missing casts 2020-05-24 06:34:59 +02:00
Vladimir Serbinenko 54a07eaa60 Move decarations to the start of function 2020-05-24 06:33:20 +02:00
Vladimir Serbinenko 3f5eb55405 Replace C++ commants with C89 ones 2020-05-24 06:32:36 +02:00
Vladimir Serbinenko 77829a8e5b Rename xshm to x11 as it can now work without shm
xshm was disabled, so no problem with config update
2020-05-24 05:11:53 +02:00
Vladimir Serbinenko 1d4462b198 config.libs.sh: Improve messages for x components detection 2020-05-24 05:05:42 +02:00
Vladimir Serbinenko 62bb1d4da4 xshm: Allow to operate without shm extension
In most cases it doesn't make a nice gameplay but is still useful for debugging
on remote system and xnest
2020-05-24 05:01:51 +02:00
Autechre cdaf08b908 Update AndroidManifest.xml 2020-05-24 04:37:09 +02:00
Autechre af3006c3d7 Update RetroArch_iOS9-Info.plist 2020-05-24 04:36:49 +02:00
Autechre 5c3a7a7e7f Update Info_Metal.plist 2020-05-24 04:35:06 +02:00
Autechre 3613b666e5 Update Info.plist 2020-05-24 04:34:53 +02:00
Autechre 3689a719fd Update version.dtd 2020-05-24 04:32:17 +02:00
Autechre 5397f1c046 Update version.all 2020-05-24 04:32:00 +02:00
Autechre 4991245cdf Update CHANGES.md 2020-05-24 04:31:31 +02:00
twinaphex 5e772350b4 Turn rgui_osk_ptr_at_pos into static function 2020-05-24 04:06:49 +02:00
twinaphex eb92274f9b (RGUI) Cleanup function 2020-05-24 04:02:30 +02:00
twinaphex b5fe162c32 C89_BUILD fix 2020-05-24 03:52:23 +02:00
Vladimir Serbinenko c4b4961ed1 xshm: fix compatibility with x input 2020-05-24 03:52:13 +02:00
Autechre 32a4607eb6 Merge pull request #10695 from heuripedes/small-buffer-opt
Small buffer optimizations
2020-05-24 03:48:21 +02:00
Vladimir Serbinenko cfe68a4c2d Fix crash in x11_display_server_get_screen_orientation 2020-05-24 03:38:24 +02:00
Vladimir Serbinenko cde22645e5 Reeenable xshm 2020-05-24 03:35:40 +02:00
Higor Eurípedes 4ea0f232ef Use small buffer optimization in gfx_animation_ticker_smooth()
Like the previous commit, this one lowers the number of temporary allocations
while the menu is up.
2020-05-23 22:34:12 -03:00
Higor Eurípedes 0c9499a88e Implements small buffer optimization in font_driver_reshape_msg()
Use a stack-allocated 64 bytes long buffer to avoid so many temp heap
allocations when the menu is up. This size is more than enough store 75% of the
return values from msg_hash_to_str and 50% of the returned values from
msg_hash_get_help of any currently supported language (includes fallback to
English).

String size per type:
                     count       mean         std  ...   50%    75%    max
type                                               ...
msg_hash_get_help  83885.0  95.295476  106.331779  ...  54.0  103.0  842.0
msg_hash_to_str    83903.0  27.737959   33.389184  ...  19.0   31.0  440.0

string size per type and language:
                             count        mean         std  ...   50%    75%    max
type              language                                  ...
msg_hash_get_help 0         4415.0   89.922310   96.873902  ...  55.0  101.0  590.0
                  1         4415.0   97.555606  118.031412  ...  55.0  101.0  842.0
                  2         4415.0  118.459570  127.811760  ...  75.0  131.0  774.0
                  3         4415.0  111.978256  112.702991  ...  68.0  125.0  651.0
                  4         4415.0  106.040544  111.360658  ...  62.0  124.0  776.0
                  5         4415.0  100.129105  114.437432  ...  62.0  103.0  688.0
                  6         4415.0   32.987769   31.047851  ...  28.0   28.0  595.0
                  7         4415.0  109.366025  124.717259  ...  71.0  121.0  720.0
                  8         4415.0   98.023783  105.149942  ...  62.0  105.0  610.0
                  9         4415.0   93.834428  104.433820  ...  55.0  101.0  637.0
                  10        4415.0   93.657984   96.884429  ...  55.0  101.0  594.0
                  11        4415.0   93.452775  104.040553  ...  48.0  100.0  583.0
                  12        4415.0   89.729558  104.062959  ...  50.0  100.0  550.0
                  13        4415.0   91.462514   95.968107  ...  55.0  101.0  590.0
                  14        4415.0   92.062741   97.959207  ...  55.0  101.0  611.0
                  15        4415.0   92.597055   97.190835  ...  56.0  101.0  600.0
                  16        4415.0   92.088109   98.110738  ...  55.0  101.0  608.0
                  17        4415.0  102.483126  106.379639  ...  65.0  110.0  652.0
                  18        4415.0  104.782786  114.025678  ...  65.0  112.0  646.0
msg_hash_to_str   0         4415.0   24.591619   29.148312  ...  18.0   28.0  346.0
                  1         4416.0   31.247736   36.302532  ...  21.0   36.0  352.0
                  2         4416.0   31.853714   39.332395  ...  21.0   36.0  418.0
                  3         4416.0   28.270833   33.300996  ...  21.0   32.0  429.0
                  4         4416.0   27.139040   31.905206  ...  19.0   31.0  346.0
                  5         4416.0   27.380435   32.314188  ...  19.0   31.0  346.0
                  6         4416.0   25.028080   29.188490  ...  19.0   28.0  346.0
                  7         4416.0   29.660553   35.283592  ...  21.0   33.0  393.0
                  8         4416.0   27.685915   32.707466  ...  20.0   31.0  346.0
                  9         4416.0   34.786685   43.587766  ...  21.0   39.0  414.0
                  10        4416.0   28.769928   34.428596  ...  20.0   32.0  440.0
                  11        4416.0   24.407609   28.690934  ...  18.0   27.0  346.0
                  12        4416.0   23.970788   27.075638  ...  18.0   28.0  346.0
                  13        4416.0   24.587636   29.146213  ...  18.0   28.0  346.0
                  14        4416.0   27.642889   33.300451  ...  20.0   31.0  346.0
                  15        4416.0   25.036005   29.159115  ...  18.0   28.0  346.0
                  16        4416.0   24.732111   29.134002  ...  18.0   28.0  346.0
                  17        4416.0   32.068161   38.807095  ...  21.0   36.0  407.0
                  18        4416.0   28.160779   34.013300  ...  20.0   31.0  432.0
2020-05-23 22:33:45 -03:00
twinaphex 3a057d594b MSVC2003 buildfix 2020-05-24 00:05:14 +02:00
twinaphex a8a5372c6b (UWP) File I/O is slow, so enable playlist compression and
savefile compression by default
2020-05-23 23:48:01 +02:00
twinaphex cff87ab1e0 (OSX) Buildfix for Discord 2020-05-23 16:43:32 +02:00
Autechre 9b73f2a38c Update CHANGES.md 2020-05-23 05:51:57 +02:00
Autechre 4cdd5dce38 Update CHANGES.md 2020-05-23 05:51:09 +02:00
Autechre 020ee2d289 Update CHANGES.md 2020-05-23 05:50:05 +02:00
Autechre de8267d2e2 Update CHANGES.md 2020-05-23 05:49:09 +02:00
Autechre 942d82593b Merge pull request #10691 from phcoder/rbxv
Fix xvideo support on xwayland and input in general
2020-05-23 05:47:57 +02:00
Vladimir Serbinenko a86e8e0f36 Support YV12
Only I420 and YZ12 are available on xwayland. Support it
2020-05-23 05:39:18 +02:00
twinaphex c8940c130d Cleanup 2020-05-23 05:16:24 +02:00
twinaphex 4a388668a3 Update 2020-05-23 04:52:28 +02:00
twinaphex 5e3fd8e95e move GetProcessId to C files 2020-05-23 04:49:14 +02:00
Vladimir Serbinenko 9c4fde00ce xvideo: Fix order of context init
Current order causes an error in x11_input init and hence keyboard
doesn't work
2020-05-23 04:36:53 +02:00
twinaphex 6591b53547 Cleanup 2020-05-23 04:23:03 +02:00
twinaphex 7d6c0417eb Silence warning 2020-05-23 04:17:12 +02:00
twinaphex 268bf61da6 Silence warnings 2020-05-23 03:36:51 +02:00
twinaphex 506271e769 Expand size of frontend variable to avoid warning 2020-05-23 03:25:22 +02:00
twinaphex 5e88958e26 Silence warnings 2020-05-23 03:23:35 +02:00
twinaphex 6408da2ae4 Silence warnings 2020-05-23 03:19:25 +02:00
twinaphex b3a4c02d05 Reduce variable size 2020-05-23 03:12:16 +02:00
twinaphex 2518ad47d9 Reduce size of image_label 2020-05-23 03:11:35 +02:00
twinaphex 65534f0286 (netplay frontend) This variable doesn't need to be so big 2020-05-23 03:09:46 +02:00
twinaphex 8c7e785661 Convert more strstrs 2020-05-23 02:46:58 +02:00
twinaphex 1db42a5611 Cleanup filebrowser_parse 2020-05-23 02:40:31 +02:00
twinaphex 44a254264b Replace more strstrs 2020-05-23 02:29:13 +02:00
twinaphex d2d16ea171 Update CHANGES.md 2020-05-23 02:00:28 +02:00
Autechre 89f5eefb92 Merge pull request #10554 from WeedyWeedSmoker/International-translations-update
International: Add all the language updates from Crowdin…
2020-05-23 01:52:28 +02:00
twinaphex 9fe01ff0c8 Replace strstr with string_ends_with 2020-05-23 00:41:14 +02:00
Weedy Weed Smoker 8894caddc2 Polish: Unify timedate ENUMs and cleanup part 2 2020-05-23 04:29:48 +07:00
Weedy Weed Smoker 852eb8ab8e Polish: Unify timedate ENUMs and cleanup 2020-05-23 04:23:47 +07:00
twinaphex d717f3537a Update sdl2_gfx.c 2020-05-22 22:58:41 +02:00
Weedy Weed Smoker 4478167634 Greek: Correct typo in Unify timedate ENUMs 2020-05-23 03:57:02 +07:00
Weedy Weed Smoker dd612a6637 French: Correct typo in Unify timedate ENUMs 2020-05-23 03:46:50 +07:00
twinaphex 923dc52f87 Simplify menu_filebrowser.c and menu_shader.c code 2020-05-22 22:29:25 +02:00
Weedy Weed Smoker 80c1b54b52 Merge branch 'master' into International-translations-update 2020-05-23 03:14:09 +07:00
twinaphex 421bcb07d3 (task_audio_mixer.c) Optimize further 2020-05-22 22:00:25 +02:00
twinaphex eaba575c9e Replace strstrs where possible 2020-05-22 21:11:35 +02:00
twinaphex 31674f9246 Use string_ends_with and string_starts_with 2020-05-22 20:57:48 +02:00
twinaphex 9f4b3b0fc6 Start using string_ends_with 2020-05-22 20:07:21 +02:00
twinaphex 7cbb79277d Cleanup core_load_game function 2020-05-22 19:43:10 +02:00
Autechre 6044f8b335 Merge pull request #10686 from jdgleaver/image-type-detection-fix
Image file type detection fixes/optimisations
2020-05-22 18:18:22 +02:00
jdgleaver d24498bdf1 Image file type detection fixes/optimisations 2020-05-22 16:57:37 +01:00
Autechre 00d7c40c7a Merge pull request #10683 from barbudreadmon/patch-5
(vita) try at fixing upside-down vertical games
2020-05-22 16:47:17 +02:00
Autechre a97c884159 Merge pull request #10685 from barbudreadmon/patch-6
(video) fix "Allow Cores to Switch the Video Driver OFF" behavior
2020-05-22 16:46:53 +02:00
Autechre 5ad36f7040 Update CHANGES.md 2020-05-22 16:29:03 +02:00
barbudreadmon 2f57d3cbea (video) fix "Allow Cores to Switch the Video Driver OFF" behavior
fix #10677 : video driver must never be switched when this setting is set to OFF, it is the job of the core to request the right context
2020-05-22 15:38:47 +02:00
Autechre 6652bb4795 Merge pull request #10684 from jdgleaver/thumb-download-fix
(On Demand Thumbnails) Fix heap-use-after-free error
2020-05-22 14:05:47 +02:00
jdgleaver 955e25fc39 (On Demand Thumbnails) Fix heap-use-after-free error 2020-05-22 11:07:34 +01:00
barbudreadmon 2052f1595c (vita) try at fixing upside-down vertical games
it is a blind commit, i don't have access to the hardware, see #6859 for more explanations
2020-05-22 12:02:19 +02:00
Twinaphex f2bb7e29a4 Revert "(Discord RPC) Update"
This reverts commit a6030f89fe.
2020-05-22 05:37:01 +02:00
twinaphex a6030f89fe (Discord RPC) Update 2020-05-22 04:56:53 +02:00
Autechre 3cd320fa83 Merge pull request #10680 from im4potato/timedate
Unify timedate ENUMs and cleanup
2020-05-22 03:24:14 +02:00
twinaphex ec9efcb4b0 C89_BUILD buildfix 2020-05-22 02:32:36 +02:00
twinaphex 6dcaa04a93 (Ozone) Move static variables outside of the header file 2020-05-22 01:54:57 +02:00
twinaphex 70957aa52a (Ozone) Move these static variables outside of the header 2020-05-22 01:45:52 +02:00
im4potato 1c4cb37e61 Unify timedate ENUMs and cleanup 2020-05-21 16:26:06 -07:00
twinaphex 875791b40c (cheat manager) Cleanups - go through function pointer 2020-05-22 01:09:28 +02:00
twinaphex 6dc758a080 Move cheevos-new to cheevos/ 2020-05-21 23:23:01 +02:00
Twinaphex ede03659ca Update 2020-05-21 22:31:51 +02:00
Twinaphex 4b4a8693ac Remove unused variable 2020-05-21 22:27:20 +02:00
twinaphex 0edd97d5db file_path.c) Cleanup 2020-05-21 20:04:36 +02:00
twinaphex a9cf718e75 Get rid of auto variable in glslang.cpp 2020-05-21 20:04:36 +02:00
Autechre 52e8c102fc Merge pull request #10671 from johanbcn/improved-shader-preset-dirs
Improved shader preset dirs
2020-05-21 17:17:03 +02:00
Autechre 29e9a54000 Merge pull request #10678 from jdgleaver/path-is-absolute
Optimise 'path_is_absolute()'
2020-05-21 15:37:29 +02:00
jdgleaver f522cfcce8 Optimise 'path_is_absolute()' 2020-05-21 13:28:42 +01:00
Joan Coll Cerdán 04016ed4a6 Improve shader initialization code.
Patch by @jdgleaver.
2020-05-21 13:29:09 +02:00
twinaphex e1e6f2db51 Fix CXX_BUILD 2020-05-21 05:10:33 +02:00
Autechre 6fa4350ade Update CHANGES.md 2020-05-21 04:53:51 +02:00
twinaphex 70f57974c7 Buildfix 2020-05-21 04:23:01 +02:00
twinaphex 4f2566ad50 (JACK) Query audio device from settings struct again 2020-05-21 04:21:00 +02:00
twinaphex a4f143a71a Buildfix 2020-05-21 00:46:49 +02:00
twinaphex 2037de5b33 Silence more warnings 2020-05-20 23:40:26 +02:00
twinaphex 6173d11b62 Silence unused function warning 2020-05-20 23:35:32 +02:00
twinaphex 060ad38905 (WiiU) Buildfix 2020-05-20 23:34:23 +02:00
twinaphex 41fd598195 Update CHANGES.md 2020-05-20 23:02:54 +02:00
twinaphex 0fced84f93 (Netplay) Lower announce rate 2020-05-20 23:01:04 +02:00
Autechre 50cb20592c Merge pull request #10655 from fjtrujy/ps2-newlib
Adapt PS2 port to newlib support
2020-05-20 20:14:22 +02:00
Francisco Javier Trujillo Mata 1eeb3dcf30 Adapt PS2 port to new SDK with newlib support (CDVDFS support is missing) 2020-05-20 20:13:19 +02:00
twinaphex a3d3e18369 Update 2020-05-20 19:54:37 +02:00
Autechre 69ec94fe47 Merge pull request #10673 from jdgleaver/window-title-fix
NUL terminate 'fps_text' string
2020-05-20 18:55:26 +02:00
jdgleaver 41cee583e3 NUL terminate 'fps_text' string 2020-05-20 17:51:20 +01:00
Autechre 4713bf5cef Merge pull request #10672 from jdgleaver/file-path-optimisations
Various file path handling optimisations
2020-05-20 18:21:59 +02:00
jdgleaver c346e1f816 Various file path handling optimisations 2020-05-20 17:05:22 +01:00
twinaphex 3d677ee90c (Discord RPC) Simplify - use string_is_equal - de-auto type certain
variables where possible
2020-05-20 17:59:42 +02:00
Joan Coll Cerdán e43111d9cb Support fallback dirs to cycle user shader presets
When a user shader preset was saved, if the Video Shader directory
wasn't writable, it would fall back to the Menu Config directory, and
failing that, it would fall back to the directory where retroarch.cfg
is stored.

This change allows the shader cycling feature to use those directories
if no shader presets are found on the Video Shader directory.
2020-05-20 17:47:23 +02:00
Joan Coll Cerdán 2768655267 Cleaner structure for auto shader presets.
Additional changes:

* Restore the previous storage path for user-presets until a better
  solution is agreed upon.

* Stop using the Video Shaders directory as fallback directory to
  store autopresets. Will be used only when autoloading as last resort to
  ensure compatibility with old setups.
2020-05-20 17:47:23 +02:00
twinaphex 057ae3c134 Update CHANGES.md 2020-05-20 17:35:52 +02:00
twinaphex e64b4c1d24 For gamepad-like console/Android TV devices - default to Ozone 2020-05-20 17:34:39 +02:00
twinaphex aeb3f692d5 Get rid of superfluous get_ai_service_auto/set_ai_service_auto get/set
wrapper functions
2020-05-20 16:35:53 +02:00
twinaphex af01b97a11 Add TODO/FIXME 2020-05-20 16:32:20 +02:00
twinaphex d9ab59cb4a Comment out function that isn't used 2020-05-20 16:29:57 +02:00
twinaphex 4a20709645 (Win32) Cleanup accessibility_speak_windows 2020-05-20 16:26:39 +02:00
twinaphex 647bdc5cbd (Discord RPC) Cleanups 2020-05-20 16:10:46 +02:00
twinaphex 115e779cf0 (Discord) Comment out code that isn't being used 2020-05-20 16:03:46 +02:00
twinaphex 3387170d62 (Discord) Cleanups - get rid of discord_register.h header 2020-05-20 15:43:01 +02:00
twinaphex 03ea12d334 Move discord files to network/ 2020-05-20 15:27:27 +02:00
twinaphex a8fdfd77ce Make gamma correction 'int' type across the board 2020-05-20 15:04:16 +02:00
twinaphex cb5de27631 Cleanup 2020-05-20 14:48:22 +02:00
twinaphex d9ccd3a737 Turn core_poll_type_override into enum variable 2020-05-20 14:23:25 +02:00
Autechre 5874bb8b27 Update CHANGES.md 2020-05-20 14:02:41 +02:00
Autechre 2f42fc5932 Merge pull request #10670 from jdgleaver/remap-default-fix
(Input Remapping) Fix 'reset to default' action for analog sticks and undefined core inputs
2020-05-20 13:58:31 +02:00
jdgleaver 0bbd5b7a45 (Input Remapping) Fix 'reset to default' action for analog sticks and undefined core inputs 2020-05-20 11:48:09 +01:00
twinaphex d1c130d60a Global variable cleanups 2020-05-20 06:29:58 +02:00
twinaphex 692f37b91a Rearrange global variables 2020-05-20 06:04:51 +02:00
twinaphex 13279eb0d4 Move defines to top 2020-05-20 04:54:14 +02:00
twinaphex 9e5f00ba27 Turn retroarch_fail static 2020-05-20 04:43:35 +02:00
twinaphex 1e21bf5074 Move defines to top 2020-05-20 04:39:27 +02:00
twinaphex 51c1064609 retroarch_validate_per_core_options - cut down on code duplication 2020-05-20 04:18:57 +02:00
twinaphex a188826a10 Cleanups 2020-05-20 04:02:43 +02:00
twinaphex 24dd7409bc Move more global variables and forward declarations up top 2020-05-20 03:58:36 +02:00
twinaphex cc2d70f044 (retroarch.c) Turn some AI functions static 2020-05-20 03:47:14 +02:00
twinaphex 7b5b14b0a7 More reorganization of globals, enums, defines 2020-05-20 03:38:16 +02:00
twinaphex 969475254f (retroarch.c) Reorganize globals, forward declarations, and defines 2020-05-20 03:30:04 +02:00
twinaphex 2cc776d2d9 Cleanups 2020-05-20 02:42:39 +02:00
twinaphex 5852251d56 Fix --disable-menu 2020-05-20 02:25:33 +02:00
twinaphex 182ad31c63 (retroarch.c) Relocate structs and enums 2020-05-20 02:19:20 +02:00
twinaphex 2a36fa0855 Remove double ';' 2020-05-19 21:29:35 +02:00
twinaphex ad1aa59ce1 Cleanup != NULL comparisons 2020-05-19 21:15:06 +02:00
twinaphex 6d37d014a0 Simplify ozone_get_entries_padding 2020-05-19 20:51:40 +02:00
Autechre bc522c3fa5 Merge pull request #10664 from jdgleaver/menu-remove-hash
Remove last remaining menu hash
2020-05-19 18:43:09 +02:00
jdgleaver 73b9b5b270 Remove last remaining menu hash 2020-05-19 17:29:12 +01:00
Autechre 4b90fcdeac Update CHANGES.md 2020-05-19 18:06:04 +02:00
Autechre 7eaa771d57 Merge pull request #10663 from jdgleaver/overlay-leak-fix
Fix memory leak when loading overlays
2020-05-19 18:05:23 +02:00
twinaphex 521f4bfefc Remove more unneeded video_frame_info variables 2020-05-19 17:52:54 +02:00
jdgleaver 6800fadafe Fix memory leak when loading overlays 2020-05-19 16:37:20 +01:00
twinaphex 26c6c34817 video_frame_info - remove more unused settings 2020-05-19 16:51:05 +02:00
twinaphex 3f98cbc52d Get rid of some unneeded variables in video_frame_info 2020-05-19 16:42:56 +02:00
twinaphex 9ace693ec0 Refactor menu_driver_frame 2020-05-19 16:20:43 +02:00
twinaphex 0aff65e77b Sync libretro-common 2020-05-19 15:22:00 +02:00
Autechre 8c63ea2515 Update CHANGES.md 2020-05-19 15:14:24 +02:00
Autechre f9f0c5aea6 Merge pull request #10662 from jdgleaver/thumbnail-free-fix
(gfx_thumbnail) Fix heap-use-after-free error
2020-05-19 15:13:21 +02:00
jdgleaver 5eee8daa4f (gfx_thumbnail) Fix heap-use-after-free error 2020-05-19 14:03:02 +01:00
twinaphex d4dd1f71a5 (menu_displaylist.c) Move state into struct 2020-05-19 14:59:06 +02:00
twinaphex 25888db0af (menu_driver.c) Move state into struct 2020-05-19 13:40:27 +02:00
Autechre 2b19a50775 Update CHANGES.md 2020-05-19 12:50:26 +02:00
Autechre 8c0b15052a Merge pull request #10658 from jdgleaver/input-remap-start-scan-fix
(Input Mapping/Remapping) Restore broken 'reset to default' functionality
2020-05-19 12:47:34 +02:00
jdgleaver 5e904c4dc3 (Input Mapping/Remapping) Restore broken 'reset to default' functionality 2020-05-19 11:35:57 +01:00
twinaphex 54fd445c75 (verbosity) move static global variables to struct 2020-05-19 02:13:51 +02:00
Autechre 27a7ab20e2 Update CHANGES.md 2020-05-18 20:58:06 +02:00
Autechre 646efb91e1 Merge pull request #10654 from Jamiras/chd_find_special_fail
return false when special track cannot be found
2020-05-18 20:57:42 +02:00
Jamiras c805fd3213 return false when special track cannot be found 2020-05-18 09:10:06 -06:00
Weedy Weed Smoker 2d83b58703 French: disable hardcore when cheats are enabled 2020-05-18 18:12:52 +07:00
Autechre 582f967fb0 Update AndroidManifest.xml 2020-05-18 02:15:03 +02:00
Autechre 12af4ed7e3 Update CHANGES.md 2020-05-17 22:23:22 +02:00
Autechre f5623edec1 Merge pull request #10640 from Jamiras/cheevos_cheats
(cheevos) disable hardcore when cheats are enabled
2020-05-17 22:22:31 +02:00
Autechre 0be52f8a49 Update CHANGES.md 2020-05-17 22:22:00 +02:00
Autechre 83410572cc Merge pull request #10646 from QuarkTheAwesome/master
WiiU: Gamepad hotplugging support, theoretical multi-gamepad support, warning fixes
2020-05-17 22:21:21 +02:00
Ash Logan 70fba3e92e (WiiU/kpad) Actually return true when kpad_init succeeds, warning fix 2020-05-17 16:43:38 +10:00
Ash Logan 41541128c5 (WiiU/hid) Warning fixes 2020-05-17 16:42:31 +10:00
Ash Logan cdaf907467 (WiiU/hid) hid.h only used in drivers_hid/wiiu, don't include everywhere 2020-05-17 16:39:41 +10:00
Ash Logan f22af81e7d (WiiU/wpad) Allow hotplugging Gamepad, support >1 channel 2020-05-17 16:32:51 +10:00
Jamiras 9107e5767c make message less verbose 2020-05-16 09:28:13 -06:00
Jamiras 6946f878ef disable hardcore when cheats are enabled 2020-05-16 08:01:24 -06:00
Autechre f1158b988c Update RetroArch_iOS9-Info.plist 2020-05-16 15:22:20 +02:00
Autechre fb073544d2 Update Info_Metal.plist 2020-05-16 15:21:05 +02:00
Autechre a8d8523747 Update Info.plist 2020-05-16 15:20:52 +02:00
Autechre ef9a3c2007 Update AndroidManifest.xml 2020-05-16 15:20:15 +02:00
Autechre b0a549716f Update version.dtd 2020-05-16 15:19:53 +02:00
Autechre 435af0f982 Update version.all 2020-05-16 15:19:31 +02:00
Autechre 8c2c094830 Update CHANGES.md 2020-05-16 15:19:02 +02:00
Autechre feb39a114d Update CHANGES.md 2020-05-16 15:18:51 +02:00
Autechre b7f56fc551 Merge pull request #10627 from johanbcn/shader-presets-fallback-dirs
Fallback directories for shader presets
2020-05-16 13:55:58 +02:00
Weedy Weed Smoker 9631719061 Update msg_hash_pt_br.h according to PR #10551 2020-05-16 09:38:45 +07:00
Weedy Weed Smoker 056a5d1466 French: add cheevos_start_active option 2020-05-16 08:42:10 +07:00
Weedy Weed Smoker 493dd1749c French: Add option to stretch menu to fill screen 2020-05-16 08:38:15 +07:00
Weedy Weed Smoker f5a880b6c5 French: Add desktop-style playlist view mode 2020-05-16 08:36:06 +07:00
Weedy Weed Smoker ec624f7baa French: Add back RGUI_BORDER_FILLER_THICKNESS 2020-05-16 08:34:23 +07:00
Autechre d3a55ef732 Merge pull request #10637 from meleu/patch-11
cheevos: option to start a session with all achievements active
2020-05-15 22:31:09 +02:00
Autechre b910e6230f Merge pull request #10636 from jdgleaver/ozone-playlist-sorting
(Ozone) Fix sidebar playlist sort order when 'Truncate Playlist Names' is enabled
2020-05-15 22:30:11 +02:00
meleu 69949187f6 add cheevos_start_active option 2020-05-15 14:49:47 -03:00
jdgleaver b53f635441 (Ozone) Fix sidebar playlist sort order when 'Truncate Playlist Names' is enabled 2020-05-15 17:26:36 +01:00
Autechre c31d4e6b69 Merge pull request #10633 from jdgleaver/cheevos-disable
Don't perform unnecessary cheevos initialisation when cheevos are disabled
2020-05-15 15:22:16 +02:00
jdgleaver 706875160e Don't perform unnecessary cheevos initialisation when cheevos are disabled 2020-05-15 13:33:05 +01:00
Autechre a8eaf82e06 Merge pull request #10612 from Jamiras/rcheevos_90
(cheevos) upgrade to rcheevos 9.0
2020-05-15 09:53:03 +02:00
Autechre 82666abbdd Update CHANGES.md 2020-05-14 19:42:38 +02:00
Autechre e7c909fe66 Merge pull request #10631 from jdgleaver/global-core-options-default
Disable 'Use Global Core Options File' by default
2020-05-14 19:41:14 +02:00
jdgleaver d9673b8c8f Disable 'Use Global Core Options File' by default 2020-05-14 17:27:13 +01:00
Autechre 383fdae18f Merge pull request #10629 from jdgleaver/rgui-wallpaper
(RGUI) Enable custom wallpaper when menu size is reduced at low resolutions
2020-05-14 15:54:19 +02:00
jdgleaver 9d5a54ced4 (RGUI) Enable custom wallpaper when menu size is reduced at low resolutions 2020-05-14 14:18:53 +01:00
Autechre 50b4492fef Merge pull request #10628 from jdgleaver/tab-switch-rate
(XMB/GLUI) Limit tab switch rate when input repeat is active
2020-05-14 13:55:58 +02:00
jdgleaver eff8c31ffd (XMB/GLUI) Limit tab switch rate when input repeat is active 2020-05-14 11:24:32 +01:00
twinaphex 89c7d1a835 Update libretro-common 2020-05-14 09:27:58 +02:00
Autechre 7d517a431d Merge pull request #10626 from phcoder/mips
cpu_features_get_time_usec: Use sceKernelGetSystemTimeWide on PSP and…
2020-05-14 09:23:59 +02:00
Joan Coll Cerdán 718e9eaf37 Comply with the C89 standard 2020-05-14 00:32:52 +02:00
Joan Coll Cerdán fe42f6bb73 Changed the order of shader preset directories.
The Menu Config directory now takes precedence over the Video Shader
directory for the storage of shader preset overrides. With this, all
user overrides are grouped by default under the same path.
2020-05-13 19:54:08 +02:00
Joan Coll Cerdán f1f248dd11 Add fallback directories to shader presets.
Improves the management of shader presets by using the Menu Config directory
and the directory of the configuration file as alternate fallback directories
whenever the Video Shader directory is not writable.
2020-05-13 19:54:08 +02:00
Vladimir Serbinenko cab004f08a cpu_features_get_time_usec: Use sceKernelGetSystemTimeWide on PSP and Vita 2020-05-13 11:20:40 +02:00
Autechre 1545285953 Merge pull request #10625 from phcoder/dosalam
Support for dos salamander
2020-05-13 09:29:37 +02:00
Vladimir Serbinenko 31d9fedf47 cpu_features_get_time_usec: Use monotonic_clock on djgpp 2020-05-12 22:55:15 +02:00
Autechre 6c4c93e17b Update CHANGES.md 2020-05-12 18:09:38 +02:00
Autechre ba452c204b Merge pull request #10624 from dankcushions/menuticker
Adjusted menu defaults
2020-05-12 17:57:34 +02:00
Vladimir Serbinenko 70c57beea9 Support for dos salamander 2020-05-12 17:39:04 +02:00
dankcushions edb308ceb2 Adjusted menu defaults 2020-05-12 16:27:16 +01:00
twinaphex 2ab7da36f2 (Win32) Style nits 2020-05-12 17:16:36 +02:00
twinaphex cfd0731422 (PS3) Style nit cleanups 2020-05-12 17:11:51 +02:00
twinaphex 494c0f8fe4 (PSL1GHT) Cleanups 2020-05-12 17:06:58 +02:00
twinaphex 1d1c7e5a0d (PSL1GHT/GCM) Style nits 2020-05-12 15:10:15 +02:00
twinaphex bde18ba86a Style nits 2020-05-12 14:36:27 +02:00
twinaphex 9088137051 Remove unused function 2020-05-12 14:20:12 +02:00
twinaphex cc50eaa88f Cleanup 2020-05-12 14:02:10 +02:00
twinaphex 86b78e2fea Cleanups 2020-05-12 09:11:18 +02:00
twinaphex 57bbf7c944 (gfx widgets) Rearrange variables 2020-05-12 08:56:57 +02:00
twinaphex 84369cf6ba (Win32) Cleanups 2020-05-12 08:49:41 +02:00
twinaphex 3981b1cc82 (Qt) Cleanups 2020-05-12 08:02:55 +02:00
Autechre e8d2ea7a56 Update CHANGES.md 2020-05-12 06:27:57 +02:00
Autechre 1fabb661a6 Update CHANGES.md 2020-05-12 06:27:18 +02:00
Autechre 709d6a2214 Merge pull request #10617 from Jamiras/cheevos_image_loading
(cheevos) make sure texture pointer is null when load fails
2020-05-12 06:26:35 +02:00
Autechre ca9c022a7f Merge pull request #10618 from phcoder/dos
Dos/DJGPP fixes
2020-05-12 06:26:17 +02:00
Autechre 34b8b457c7 Merge pull request #10619 from phcoder/frodoid
3ds: Add ID for frodo
2020-05-12 06:25:26 +02:00
Vladimir Serbinenko 6d184abf84 Fix dist-cores.sh for dos 2020-05-12 03:20:53 +02:00
Vladimir Serbinenko 05500c6c39 dos: Add 32-bit gfx support 2020-05-12 03:09:38 +02:00
Vladimir Serbinenko 306fed32f6 Fix djgpp clock 2020-05-12 03:09:38 +02:00
Vladimir Serbinenko 67c3c93aec dos fixes 2020-05-12 03:09:38 +02:00
Vladimir Serbinenko 7b351da006 Fix crash with null audio driver 2020-05-12 03:09:38 +02:00
Vladimir Serbinenko cc73de48d6 Fix dos compilation 2020-05-12 03:09:38 +02:00
Vladimir Serbinenko cc52f140d0 3ds: Add ID for frodo 2020-05-12 02:10:36 +02:00
Jamiras 4093616e09 make sure texture pointer is null when load fails 2020-05-11 16:24:29 -06:00
Autechre 96cfa57d1b Update CHANGES.md 2020-05-11 23:33:23 +02:00
Autechre ef4261e1f8 Update CHANGES.md 2020-05-11 23:33:05 +02:00
Autechre 4fe372662a Merge pull request #10614 from jdgleaver/glui-desktop-thumb-persistence
(GLUI) Desktop View: When scrolling playlists, show last selected thumbnails while waiting for next entry to load
2020-05-11 23:32:39 +02:00
jdgleaver 43b890a269 (GLUI) Desktop View: When scrolling playlists, show last selected thumbnails while waiting for next entry to load 2020-05-11 16:32:49 +01:00
twinaphex 6a4a522244 Cut down on some code duplication and turn
retroarch_validate_game_options static
2020-05-11 17:19:55 +02:00
twinaphex dd721def41 (Qt) Cleanups 2020-05-11 17:07:37 +02:00
twinaphex 81a623c2b6 Style nits 2020-05-11 16:49:31 +02:00
Jamiras 1534e81bed upgrade to rcheevos 9.0 2020-05-11 08:43:11 -06:00
Autechre 718d9801da Update CHANGES.md 2020-05-11 16:26:26 +02:00
Autechre 42c5bb970e Merge pull request #10613 from jdgleaver/rgui-fill-screen
(RGUI) Add option to always stretch menu to fill the screen
2020-05-11 16:26:01 +02:00
jdgleaver 26c01dd34c (RGUI) Add option to always stretch menu to fill the screen 2020-05-11 11:38:24 +01:00
Autechre 98daa0d28c Update CHANGES.md 2020-05-11 10:19:05 +02:00
Autechre 01667b5fc3 Update CHANGES.md 2020-05-11 04:53:16 +02:00
twinaphex 4a9e1e6c7e Revert "Backport"
This reverts commit 685db05032.
2020-05-11 03:49:27 +02:00
Autechre f5b33c8912 Update CHANGES.md 2020-05-11 03:33:41 +02:00
Autechre 35269cce93 Update CHANGES.md 2020-05-11 03:32:10 +02:00
twinaphex 685db05032 Backport
https://github.com/neil4/RetroArch-Lite/commit/66876fe8581de7b2ee79a06a5c4912d0e8e52b41
- handles insertion/removal of audio devices for Xaudio2 - hopefully a
callback based approach can be done later
2020-05-11 03:29:01 +02:00
twinaphex 39dbfd1db4 Remove unused menu_content.h 2020-05-11 02:32:45 +02:00
Autechre 57cd3fdf06 Merge pull request #10611 from AlexKornitzer/master
cocoa: disable clipping cursor to window
2020-05-11 02:31:32 +02:00
Alex Kornitzer 1d2dd249f3 cocoa: disable clipping cursor to window 2020-05-11 00:58:06 +01:00
Alex Kornitzer cdfb8348b0 cocoa: use absolute positioning over relative
Now that we clip the window to locate the cursor correctly on re-entry
we need to do our cursor calculations using absolute coordinates
2020-05-11 00:58:06 +01:00
Autechre 211a8a149b Update CHANGES.md 2020-05-11 00:31:17 +02:00
Autechre c2b7ebbcdf Merge pull request #10610 from AlexKornitzer/master
cocoa: fix cursor tracking
2020-05-11 00:30:47 +02:00
Alex Kornitzer c4ee0463aa cocoa: don't update mouse events when outside nswindow 2020-05-10 22:44:44 +01:00
Alex Kornitzer edfafd9fad cocoa: fix mouse movement
The input driver was using absolute coordinate arithmetic while making
use of delta changes for each coordinate, as a result the absolute
change netted to zero. This fixes that and tries to mitigate cursor
event sync issues (sync issues will require more work).
2020-05-10 22:44:44 +01:00
Autechre 9c749f03eb Update CHANGES.md 2020-05-10 15:41:10 +02:00
Autechre 58b9b6c875 Merge pull request #10606 from TobiX/wiiu-gfx-widgets
Enable GFX widgets on WiiU
2020-05-10 15:40:13 +02:00
Tobias Gruetzmacher 29929acdba (WiiU) Enable GFX widgets 2020-05-10 15:13:23 +02:00
Tobias Gruetzmacher 3c192419dd (WiiU) Fix griffin build 2020-05-10 14:30:30 +02:00
Autechre 7b8983a0e0 Merge pull request #10594 from MrHuu/master
(3DS) Enable basic networking / cheevos
2020-05-10 14:07:21 +02:00
twinaphex e74161bc6c Change name of nvdaController.h 2020-05-10 08:51:25 +02:00
twinaphex 10e6ea21a3 Put this behind HAVE_ACCESSIBILITY ifdef 2020-05-10 07:17:15 +02:00
twinaphex ba8a07a2b6 (Menu driver) Turn some functions into static functions 2020-05-10 07:14:29 +02:00
Autechre a8e3917613 Update CHANGES.md 2020-05-10 07:04:44 +02:00
twinaphex 1e9b94ded4 Get rid of hash 2020-05-10 05:05:43 +02:00
Twinaphex 2f3ef75bf6 Remove some unused variables and some style nits 2020-05-10 01:10:45 +02:00
twinaphex 3ad4b057f9 Go back to 1.8.4 netcode 2020-05-10 01:02:47 +02:00
Autechre 1fc64df5f6 Merge pull request #10603 from Brottweiler/patch-1
Use GenericName correctly in desktop entry
2020-05-10 00:56:36 +02:00
Christoffer Tibell 1e6ccb2310 Use GenericName correctly in desktop entry 2020-05-09 23:14:30 +02:00
Autechre 29a28f0d02 Merge pull request #10600 from jdgleaver/glui-desktop-view
(GLUI) Add desktop-style playlist view mode
2020-05-09 22:36:08 +02:00
Autechre aa5ddee807 Merge pull request #10601 from barbudreadmon/patch-4
(glcore) switch to glcore video driver when requested
2020-05-09 22:33:46 +02:00
barbudreadmon 7a3ddcd77d (glcore) switch to glcore video driver when requested
fix #10486
2020-05-09 17:15:45 +02:00
jdgleaver 63644ac761 (GLUI) Add desktop-style playlist view mode 2020-05-09 14:53:52 +01:00
Francisco José García García df3af35ee4 (VITA) Fix for new VITASDK 2020-05-09 09:51:50 +02:00
Francisco José García García 84de78e7c9 (Vita) Fix for latest VITASDK 2020-05-09 09:46:12 +02:00
MrHuu e519ccd0be (3DS) Enable basic networking / cheevos 2020-05-08 20:50:15 +02:00
Autechre 470756e22c Merge pull request #10588 from im4potato/translation
US Translation: Add back RGUI_BORDER_FILLER_THICKNESS
2020-05-08 06:47:03 +02:00
im4potato 09e54d1e75 US Translation: Fix spelling of "checkerboard" to match other settings 2020-05-07 21:05:30 -07:00
im4potato 38c8369e58 US Translation: Add back RGUI_BORDER_FILLER_THICKNESS 2020-05-07 20:58:50 -07:00
Autechre 9fb170bcd4 Merge pull request #10586 from francescotintori/francesco/vs2019
Added VS2019 solution project (copied from VS2017)
2020-05-08 00:21:16 +02:00
francescotintori e1d0514ec5 Added VS2019 solution project (copied from VS2017) 2020-05-07 23:03:54 +02:00
twinaphex ad7612eef3 (wiiu) Style nit cleanups 2020-05-07 20:23:14 +02:00
twinaphex 33cf0e160c Style nits 2020-05-07 20:13:02 +02:00
Autechre b78c48c2c3 Merge pull request #10581 from Roet-Ivar/wiiu_storage_usb_access
Added access to WiiU-formated storage to be browsed by RetroArch
2020-05-07 20:05:09 +02:00
Autechre 778b42de58 Merge pull request #10584 from meleu/patch-9
retroarch.cfg: add cheevos related configs
2020-05-07 20:04:40 +02:00
meleu 2f392f2260 retroarch.cfg: add cheevos related configs 2020-05-07 14:28:15 -03:00
Roet-Ivar ad34f4845b Added access to WiiU-formated storage to be browsed by RetroArch 2020-05-07 12:49:04 +02:00
Autechre 36802f7133 Update CHANGES.md 2020-05-06 02:13:22 +02:00
Autechre ca782bd015 Update CHANGES.md 2020-05-06 02:13:01 +02:00
Autechre 7b3aaa6bbb Merge pull request #10570 from MrHuu/patch-7
(3DS) re-Enable 7z support
2020-05-05 18:02:34 +02:00
MrHuu 16d12e804c (3DS) re-Enable 7z support
Adds missing HAVE_7ZIP definition for griffin builds.

I have no issues with this. Browsing and loading .7z files works as it should.
Unless there's a specific reason this was removed, it can be enabled.
2020-05-05 12:25:13 +02:00
Autechre 25be09acd3 Merge pull request #10564 from jdgleaver/3ds-filter-fix
(3DS) Disable video filter if upscaled resolution exceeds hardware limits
2020-05-04 19:28:42 +02:00
Autechre 621e220177 Merge pull request #10569 from jdgleaver/3ds-font-fix
(3DS) Fix font driver
2020-05-04 19:28:10 +02:00
jdgleaver a305a48a11 (3DS) Fix font driver 2020-05-04 16:57:44 +01:00
hizzlekizzle 877a7f8d6c Merge pull request #10563 from phcoder/radir
psl1ght: Fix cores info path
2020-05-04 09:54:36 -05:00
jdgleaver 702bc18128 (3DS) Disable video filter if upscaled resolution exceeds hardware limits 2020-05-04 11:52:53 +01:00
Francisco José García García 78c27dc77a Squashed 'deps/vitaGL/' content from commit 9a6e4b3397
git-subtree-dir: deps/vitaGL
git-subtree-split: 9a6e4b3397c207e136b2d618fa4b58e2b37c383e
2020-05-04 12:43:18 +02:00
Francisco José García García 0de4efae44 Merge commit '78c27dc77af4a03886058cc76f3553a0b3e28cc1' as 'deps/vitaGL' 2020-05-04 12:43:18 +02:00
Francisco José García García ded0e13623 Remove old vitaGL 2020-05-04 12:43:11 +02:00
Vladimir Serbinenko afe68f9cd8 psl1ght: Fix cores info path 2020-05-04 11:43:47 +02:00
Weedy Weed Smoker d51cd37fa8 French: Add option to mute audio when fast-forward 2020-05-02 20:01:53 +07:00
Weedy Weed Smoker 695203212c French: (Ozone) Refactor footer display 2020-05-02 19:57:27 +07:00
Weedy Weed Smoker 7d849ac8fb International: Add all the languages from Crowdin… 2020-05-02 13:29:17 +07:00
Autechre 3ecde62930 Merge pull request #10550 from guoyunhe/unify-show-hide
unify "show/hide" -> "show or hide"
2020-05-01 21:17:01 +02:00
Guo Yunhe ab7c2f23cf unify "show/hide" -> "show or hide" 2020-05-01 21:17:52 +03:00
Autechre 0554e3cb3d Merge pull request #10549 from Alcaro/patch-4
Fix copypasted typo
2020-05-01 18:42:06 +02:00
Alcaro c9dcc18fa4 Fix copypasted typo 2020-05-01 17:46:18 +02:00
Autechre 43c521de44 Merge pull request #10548 from jdgleaver/qt-volume-settings
(Qt) Add 'audio mixer volume' and 'mute when fast-forwarding' settings options
2020-05-01 17:30:05 +02:00
jdgleaver 4ef5eb1eb2 (Qt) Add 'audio mixer volume' and 'mute when fast-forwarding' settings options 2020-05-01 13:58:20 +01:00
Autechre 1a07476138 Merge pull request #10547 from jdgleaver/fast-forward-mute
Add option to mute audio when fast-forwarding
2020-05-01 14:11:31 +02:00
jdgleaver 3f2ba2e791 Add option to mute audio when fast-forwarding 2020-05-01 12:19:31 +01:00
hizzlekizzle 9dc963e15a Merge pull request #10544 from jdgleaver/glcore-shader-fix
(glcore/slang) Set filter and wrap mode correctly when intialising shader textures
2020-04-30 15:45:45 -05:00
Autechre fb28c79e13 Merge pull request #10545 from aschain/maylashN64-fix
Fix for mayflash N64 adapter
2020-04-30 20:09:45 +02:00
A Schain 1e751d00ea In case last hatswitch does not match cookie
For the mayflash N64 adapter, I was getting a BAD EXC ADDRESS (in mac OS 10.13) for this line (tmp was NULL). Retroarch would crash in the gui if I pressed a button from the DPAD on controller 2. With this change, it no longer crashes in the gui and still registers the button push.
2020-04-30 13:27:44 -04:00
jdgleaver 548c5dc925 (glcore/slang) Set filter and wrap mode correctly when intialising shader textures 2020-04-30 17:04:02 +01:00
Autechre 9c100ded3a Merge pull request #10535 from jdgleaver/ozone-metadata-toggle
(Ozone) Enable second thumbnail/content metadata toggle using RetroPad 'select'
2020-04-30 15:52:51 +02:00
Autechre 5160f35bd8 Merge pull request #10531 from altiereslima/master
Update msg_hash_pt_br.h
2020-04-30 15:00:53 +02:00
Autechre 34d3641d0a Merge pull request #10534 from ShadowOne333/patch-2
Update and fix meta.xml file for the WiiU release
2020-04-30 15:00:38 +02:00
Autechre 4198a0d3a8 Merge pull request #10536 from karlforshaw/master
Advise against using -s and -S variables on the command line.
2020-04-30 14:59:46 +02:00
Autechre 8f0ef54455 Merge pull request #10539 from trioan/buildfix
MSVC Buildfix
2020-04-30 14:19:23 +02:00
Autechre e92331cf1f Merge pull request #10542 from jdgleaver/screenshot-fix
(task_screenshot) Fix heap-use-after-free error when widgets are disabled
2020-04-30 14:17:21 +02:00
jdgleaver 3a3c4f60bf (task_screenshot) Fix heap-use-after-free error when widgets are disabled 2020-04-30 11:25:53 +01:00
jdgleaver 19a8a815f0 (Ozone) Hide thumbnail button hints when viewing file browser lists 2020-04-30 09:57:44 +01:00
trioan 35bf716766 (MSVC 2012) Buildfix 2020-04-29 19:45:48 -05:00
trioan 3883616d93 (MSVC 2013) Buildfix 2020-04-29 19:45:32 -05:00
trioan de0b34aa0a (MSVC 2015) Buildfix 2020-04-29 22:59:20 +00:00
trioan e14fc1b087 (MSVC 2017) Buildfix 2020-04-29 22:55:22 +00:00
hizzlekizzle 53d07b30cc Merge pull request #10515 from im-4-potato/master
US Translation: Style changes and more cleanup
2020-04-29 17:49:28 -05:00
jdgleaver 0b294faa71 (Ozone) Refactor footer display 2020-04-29 17:54:49 +01:00
twinaphex d995fa045a (GDI) Get rid of unused functions 2020-04-29 18:40:48 +02:00
Karl Forshaw 5ed60cde04 Advise against using -s and -S variables on the command line.
Signed-off-by: Karl Forshaw <[email protected]>
2020-04-29 13:39:12 +01:00
twinaphex bb27496e2e Prevent NULL pointer dereference 2020-04-29 14:38:11 +02:00
twinaphex 9b8c596057 (GL Core) Buildfix for video context drivers that dont
implement this callback
2020-04-29 13:50:21 +02:00
jdgleaver 30555f8132 (Ozone) Enable second thumbnail/content metadata toggle using RetroPad 'select' 2020-04-29 12:29:42 +01:00
Shadow a319db9119 Typo fix
Typo fix
2020-04-28 21:36:13 -07:00
Shadow b5eabf633a Update and fix meta.xml file for the WiiU release
This change makes it so the information from the meta.xml file parsed for the WiiU's Homebrew Launcher is displayed properly.
2020-04-28 21:20:30 -07:00
altiereslima a27912b816 Update msg_hash_pt_br.h 2020-04-28 18:13:47 -03:00
twinaphex 156d3629e6 libretro-common Update 2020-04-28 16:26:26 +02:00
twinaphex 4f9a3f6813 Update 2020-04-28 16:25:00 +02:00
Autechre 3b6b067fe5 Merge pull request #10530 from jdgleaver/compress-states-default
Enable save state compression by default
2020-04-28 12:53:26 +02:00
jdgleaver 1ac544b612 Enable save state compression by default 2020-04-28 11:37:16 +01:00
Autechre e3a78e0ecf Merge pull request #10529 from jdgleaver/ozone-touch-fix
(Ozone) Fix undefined behaviour when using touch screen to change input remaps
2020-04-28 12:02:28 +02:00
jdgleaver 58e6ca9ad4 (Ozone) Fix undefined behaviour when using touch screen to change input remaps 2020-04-28 10:46:19 +01:00
im-4-potato 0c40b2b3ef Merge remote-tracking branch 'upstream/master' 2020-04-27 14:55:08 -07:00
Autechre 6642868b86 Merge pull request #10518 from guoyunhe/patch-5
Unify mixer settings strings
2020-04-27 23:06:13 +02:00
twinaphex 14c63e0cd5 Bump version number 2020-04-27 23:05:30 +02:00
im-4-potato fcb4933671 US Translation: A few fixes for Title Case 2020-04-27 13:43:55 -07:00
im-4-potato 571d9708e1 US Translation: Sync with other changes 2020-04-27 13:18:30 -07:00
Autechre bd319de5cf Merge pull request #10517 from guoyunhe/patch-4
Force Aspect -> Force Aspect Ratio
2020-04-27 20:30:13 +02:00
Autechre 78a67bd775 Merge pull request #10516 from guoyunhe/patch-3
Framerate -> Refresh Rate
2020-04-27 20:29:57 +02:00
Autechre 3744f2454c Merge pull request #10519 from julianaito/master
Remove OpenBSD/macppc specific quirk
2020-04-27 20:29:40 +02:00
Autechre 39aae2872d Merge pull request #10525 from libretro/set_gamepad_bitwise_fix
Added small fix to set_gamepad_input_override bit logic.
2020-04-27 20:28:54 +02:00
Autechre e9a35c1cab Merge pull request #10524 from jdgleaver/config-write-on-change
Only write config files to disk when parameters change
2020-04-27 19:35:55 +02:00
Barry Rowe d87fa1799e Added small fix to set_gamepad_input_override bit logic. 2020-04-27 10:16:11 -07:00
jdgleaver 9eb8472805 Only write config files to disk when parameters change 2020-04-27 17:06:35 +01:00
im-4-potato 6921ca44a7 US Translation: More Fixes 2020-04-26 17:07:06 -07:00
im-4-potato 7b4a4d1da4 US Translation: More Fixes 2020-04-26 17:00:59 -07:00
im-4-potato 60cfbce48b US Translation: More fixes 2020-04-26 14:51:20 -07:00
im-4-potato 3e3a84a602 US Translation: More fixes 2020-04-26 12:36:47 -07:00
Charlène Wendling 0e4857c8f6 Remove OpenBSD/macppc specific quirk
OpenBSD/macppc moved to clang and __mftb() is not available anymore,
leading to undefined references errors. It's fixed with #10383 already.
2020-04-26 14:13:59 +02:00
im-4-potato 68021903c9 US Translation: More minor fixes 2020-04-26 03:15:24 -07:00
im-4-potato f803ee2c0b US Translation: A few more "save state" fixes 2020-04-26 03:00:16 -07:00
Guo Yunhe c40f2ae5bb Unify mixer settings strings 2020-04-26 12:14:57 +03:00
Guo Yunhe 8d71714446 Update msg_hash_us.h 2020-04-26 11:36:18 +03:00
Guo Yunhe cc6a5a6077 Update msg_hash_us.h 2020-04-26 09:37:34 +03:00
Guo Yunhe 004588d627 Update msg_hash_us.h 2020-04-26 09:30:49 +03:00
Guo Yunhe 49d0045434 Force Aspect -> Force Aspect Ratio 2020-04-26 09:24:11 +03:00
Guo Yunhe f5c7b1bf73 Framerate -> Refresh Rate
Based on the key and context, here should be `refresh rate` instead of `frame rate`.
2020-04-26 08:55:48 +03:00
im-4-potato 6972492fb4 US Translation: Changes tabs back to spaces 2020-04-25 20:52:10 -07:00
im-4-potato 311a7d40d2 US Translation: Style changes and more cleanup 2020-04-25 20:40:29 -07:00
twinaphex c88ffa56ff (Vulkan) Fix crash 2020-04-25 17:44:13 +02:00
Autechre 05b1785f24 Merge pull request #10511 from WeedyWeedSmoker/International-translations-fix-formatting
International: Fix formatting for all languages & Remove untranslated strings
2020-04-25 16:15:56 +02:00
Weedy Weed Smoker 9b99393c20 International: Fix 2020-04-25 20:43:42 +07:00
Weedy Weed Smoker 38c70d5705 International: Remove untranslated strings + fixes 2020-04-25 19:26:25 +07:00
Weedy Weed Smoker 8def289271 International: Formatting fix for all languages 2020-04-25 19:24:22 +07:00
Autechre 88abadce43 Merge pull request #10505 from WeedyWeedSmoker/Japanese-translation-update
Japanese: Fix multi-line strings
2020-04-24 20:44:11 +02:00
Weedy Weed Smoker 7f7680da6e Japanese: Remove extraneous spaces 2020-04-25 00:45:23 +07:00
Weedy Weed Smoker 7b71f22e85 Japanese: Fix multi-line strings 2020-04-25 00:16:36 +07:00
Autechre c4d6c9541c Merge pull request #10504 from altiereslima/master
Update msg_hash_pt_br.h
2020-04-24 07:50:09 +02:00
altiereslima 5a468c8b3e Update msg_hash_pt_br.h 2020-04-23 21:37:01 -03:00
altiereslima 12e68bf477 Update msg_hash_pt_br.h 2020-04-23 21:19:52 -03:00
Autechre 1040e57c94 Merge pull request #10498 from WeedyWeedSmoker/French-translation-update
French: Add optional playlist compression
2020-04-24 01:10:59 +02:00
Autechre b18219687c Merge pull request #10500 from jdgleaver/vulkan-stats-fix
(Vulkan) Fix display of statistics text
2020-04-24 01:10:52 +02:00
Autechre e6fcf73a1e Merge pull request #10501 from maksun/patch-1
[Retroarch] Tiny glitch when displaying version
2020-04-24 01:10:43 +02:00
maksun b92ac7d439 [Retroarch] Tiny issue when displaying version
Just two lines to fix #10445
2020-04-23 19:48:51 +02:00
jdgleaver 0e3026d41f (Vulkan) Fix display of statistics text 2020-04-23 17:48:15 +01:00
Weedy Weed Smoker 3346124d21 French: Add optional playlist compression 2020-04-23 19:41:20 +07:00
Autechre 89c405b196 Merge pull request #10487 from jdgleaver/playlist-compression
Add optional playlist compression
2020-04-23 13:30:58 +02:00
jdgleaver 69305fda96 (playlist.c) Remove unused variable 2020-04-23 12:04:08 +01:00
jdgleaver 8cf629b3c2 (playlist.c) Minor clean-ups 2020-04-23 11:55:17 +01:00
jdgleaver 25c6499c5d (playlist.c) Omit whitespace when writing compressed JSON format playlists 2020-04-23 10:49:16 +01:00
twinaphex bdf9969c7e Update libretro-common 2020-04-23 07:20:06 +02:00
Autechre 62c2842c86 Merge pull request #10478 from WeedyWeedSmoker/French-translation-update
French: Add optional save (SRAM) file compression, Clean up and organize FR translation & Formatting
2020-04-23 04:23:23 +02:00
Autechre e8fe4e26ff Merge pull request #10497 from yoshisuga/ios_tvos_audio_session_fix
[iOS] [tvOS] Fix audio getting cut off on interruption
2020-04-23 04:18:13 +02:00
Autechre 1085e553d5 Merge pull request #10496 from altiereslima/master
Update Portuguese Brazilian Translation
2020-04-23 02:43:08 +02:00
altiereslima e38808b17c Update Portuguese Brazilian Translation 2020-04-22 20:32:09 -03:00
Autechre 21f15d5cbd Merge pull request #10490 from phcoder/msb
Remove manual MSB_FIRST definitions and switch to retro_endianness.h
2020-04-22 21:16:45 +02:00
Autechre 0c42b643a9 Merge pull request #10491 from QuarkTheAwesome/master
[WiiU] Warning fixes+devkitPPC updates
2020-04-22 21:16:33 +02:00
Autechre 28bf33cd78 Merge pull request #10493 from QuarkTheAwesome/gfx-display-wiiu-patch
WiiU: gfx_display: fix non-vertex coordinates in draws using tex shader
2020-04-22 21:16:17 +02:00
Autechre 7f0f36fb7a Merge pull request #10495 from MrHuu/patch-6
(3DS) Add ID for TGB-Dual
2020-04-22 21:15:26 +02:00
MrHuu 941b369016 (3DS) Add ID for TGB-Dual
Add unique id for TGB-Dual .cia build
2020-04-22 21:07:42 +02:00
Yoshi Sugawara a85ed986de Set audio session category to ambient so sound does not get cut off on interruption (phone call/playing back audio) 2020-04-22 08:54:57 -10:00
Weedy Weed Smoker 21d0320e42 French: Add optional save (SRAM) file compression 2020-04-22 21:19:24 +07:00
hizzlekizzle 843503e92a Merge pull request #10492 from phcoder/3ids
IDs for uzem and neocd
2020-04-22 09:12:02 -05:00
Ash Logan 08dfd58994 WiiU: Enable -Wall
This is the standard, according to CONTRIBUTING.md
2020-04-22 23:37:18 +10:00
Ash Logan ed24d05752 WiiU: gfx_display: fix non-vertex coordinates in draws using tex shader
This second case is hit when there's a quad with different-coloured 
corners, since the tex shader is needed to support that. In the quad 
case, there are no vertexes, and the ->x,y,width,height fields are used 
instead.

Fixes #8519.
2020-04-22 23:35:46 +10:00
Vladimir Serbinenko 28d30064b6 IDs for uzem and neocd 2020-04-22 13:44:23 +02:00
Ash Logan 7bac0220dc libfat: Remove st_spare for new devkitPPC versions
slurped from 
https://github.com/devkitPro/libfat/commit/d6bb60a4baa360946c32588a829f908607d85780
2020-04-22 10:56:49 +10:00
Autechre cb510f04d8 Merge pull request #10488 from MrHuu/patch-5
(3DS) Allow control bindings for multiple players
2020-04-22 01:08:34 +02:00
MrHuu 92dc0dc6d0 (3DS) Allow button presses up to INPUT_MAX_USERS
This enables the 3DS to bind and use buttons and axis for users up to the maximum set by 'Max Users' in the input settings menu.
2020-04-21 20:52:49 +02:00
jdgleaver fa9290cf1e Add optional playlist compression 2020-04-21 16:44:26 +01:00
Vladimir Serbinenko 1fcdddf579 Remove manual MSB_FIRST definitions and switch to retro_endianness.h 2020-04-21 04:16:55 +02:00
Autechre ce4c750326 Merge pull request #10484 from Tatsuya79/patch-3
qt: add saveram compression option
2020-04-21 02:03:21 +02:00
Tatsuya79 ce99109001 qt: add saveram compression option 2020-04-21 01:50:05 +02:00
twinaphex 8a15f0094a Bugfix 2020-04-21 00:49:02 +02:00
twinaphex 3a2a365ec9 (libretro-common) Fix retro_endianness.h 2020-04-21 00:46:48 +02:00
Autechre 3529f2da4c Merge pull request #10481 from jdgleaver/save-compression
Add optional save (SRAM) file compression
2020-04-21 00:25:58 +02:00
twinaphex 64bbe5b646 (MSVC 2010) Buildfix 2020-04-21 00:20:31 +02:00
hizzlekizzle 2427d90f48 Merge pull request #10482 from jdgleaver/font-fix
(WiiU/3DS) Fix font driver horizontal text alignment
2020-04-20 14:50:21 -05:00
jdgleaver 6c49ae5152 (WiiU/3DS) Fix font driver horizontal text alignment 2020-04-20 16:20:21 +01:00
jdgleaver 0d1fd657ab Add optional save (SRAM) file compression 2020-04-20 12:48:40 +01:00
Weedy Weed Smoker b4cadb1a16 Caught another formatting error… 2020-04-20 06:49:17 +07:00
Weedy Weed Smoker a2192b14db Caught a formatting error… 2020-04-20 06:18:39 +07:00
Weedy Weed Smoker ae467486ba French: Translate all FIXME tagged elements too 2020-04-20 05:25:07 +07:00
Weedy Weed Smoker 88d162452a French: Clean up and organize FR translation 2020-04-20 04:53:17 +07:00
twinaphex 3fa60d08de Update libretro-common 2020-04-19 20:44:22 +02:00
twinaphex 1eb612135b Revert "Revert "Take this out - cores that need usleep and such - address it in""
This reverts commit 7e3a400cb7.
2020-04-19 19:18:53 +02:00
twinaphex 7e3a400cb7 Revert "Take this out - cores that need usleep and such - address it in"
This reverts commit 48b6b4ca8e.
2020-04-19 18:54:05 +02:00
twinaphex 48b6b4ca8e Take this out - cores that need usleep and such - address it in
the core itself, or rewrite the reference so it uses libretro-common
sleeping functions instead
2020-04-19 18:15:47 +02:00
Autechre c2319b3a21 Merge pull request #10470 from jdgleaver/ai-service-menu-hide
AI Service Menu - Hide redundant entries when service is disabled
2020-04-18 18:01:06 +02:00
twinaphex 9a50205867 Add this around ifdefs 2020-04-18 17:59:27 +02:00
jdgleaver b1503bc7c8 AI Service Menu - Hide redundant entries when service is disabled 2020-04-18 14:06:35 +01:00
im4potatoandim-4-potato d5d4c1a319 msg_hash_us.h: Clean up and organize US translation (#10460)
* msg_hash_us.h: Clean up and organize US translation

* msg_hash_us.h: More cleanup

* msg_hash_us.h: Update to latest version after syncing with upstream

* msg_hash_us.h: Removed indents from preprocessor lines

Co-authored-by: im-4-potato <[email protected]>
2020-04-17 21:07:51 -05:00
Barry Rowe 8988e2d34b Added additional return to accessibility_speak_windows 2020-04-17 14:07:28 -07:00
Autechre 9588eb451b Merge pull request #10467 from jdgleaver/ai-fixes2
More build fixes
2020-04-17 18:40:29 +02:00
Autechre acfa3fc4d4 Merge pull request #10465 from jdgleaver/rzip-stream-additions
Expand functionality of 'rzip_stream' interface
2020-04-17 18:40:14 +02:00
jdgleaver 6ef5fa1aa5 More build fixes 2020-04-17 17:08:12 +01:00
Autechre af140741bc Merge pull request #10466 from jdgleaver/ai-fixes
Build fixes
2020-04-17 17:50:29 +02:00
jdgleaver ddc860d4b0 Build fixes 2020-04-17 16:42:37 +01:00
jdgleaver c1f4a7536a Expand functionality of 'rzip_stream' interface 2020-04-17 16:18:16 +01:00
twinaphex b91c342ff4 Buildfix MSVC 2010 2020-04-17 16:40:39 +02:00
twinaphex 352519c91e Another builfdix 2020-04-17 16:32:10 +02:00
twinaphex f3b82dc998 Buildfix 2020-04-17 16:29:23 +02:00
twinaphex 9f3a2db44e Merge branch 'master' of https://github.com/libretro/RetroArch 2020-04-17 16:24:39 +02:00
Autechre 018a0baed6 Merge pull request #10401 from libretro/accessibility_menu_fixes
Accessibility menu fixes
2020-04-17 03:19:17 +02:00
Autechre ddaeb2b24b Merge pull request #10458 from WeedyWeedSmoker/French-translation-update
French: Add optional save state compression, corrections, formatting
2020-04-17 01:51:44 +02:00
Autechre 51183787af Merge pull request #10459 from AlexKornitzer/feature/cocoa-fix
ui_cocoa: fix mouse input for cocoa
2020-04-17 01:49:38 +02:00
Autechre 2e3b6c5a17 Merge pull request #10463 from phcoder/kbl1ght
Implement psl1ght keyboard
2020-04-17 01:49:18 +02:00
Autechre f5a8e16109 Merge pull request #10462 from phcoder/f1x
platform_unix: Fix overflow when computing total memory on i386
2020-04-17 01:48:59 +02:00
Autechre 950cd41dfa Merge pull request #10448 from CrewMdk/patch-2
Updated spanish language translation
2020-04-17 01:48:32 +02:00
Autechre 0b86348711 Merge pull request #10461 from Tatsuya79/patch-2
qt: add savestate compression option
2020-04-17 01:48:15 +02:00
Autechre c8555924e0 Merge pull request #10464 from phcoder/vitasleep
Add usleep and sleep on Vita.
2020-04-17 01:47:56 +02:00
Vladimir Serbinenko a029cb9fc5 Add usleep and sleep on Vita.
libstdc++ links against them under some circumstances. This is needed for
neocd
2020-04-17 00:58:01 +02:00
Vladimir Serbinenko 5b668ae421 Implement psl1ght keyboard 2020-04-17 00:56:23 +02:00
Vladimir Serbinenko 99e9a1ea0d platform_unix: Fix overflow when computing total memory on i386 2020-04-17 00:54:06 +02:00
Tatsuya79 56159976af qt: add savestate compression option 2020-04-17 00:10:02 +02:00
Alex Kornitzer ac4b49f1c2 ui_cocoa: fix mouse input for cocoa
This brings back two lines of code that have been removed over time but
appear to be required in order for mouse input to work on macOS.
2020-04-16 22:01:40 +01:00
Weedy Weed Smoker 875bb8bda3 International: Formatting corrections 2020-04-17 03:52:25 +07:00
Weedy Weed Smoker c76e46d930 French: Corrections for clarity 2020-04-17 03:50:58 +07:00
Weedy Weed Smoker baf67a7dff French: Add optional save state compression 2020-04-17 03:49:34 +07:00
Barry Rowe adb5c4c7dd Moved SAPI code into a define. 2020-04-16 11:57:39 -07:00
Autechre 5303ecee22 Merge pull request #10454 from jdgleaver/save-state-compression
Add optional save state compression
2020-04-15 20:41:30 +02:00
jdgleaver 233456df47 Add optional save state compression 2020-04-15 15:48:41 +01:00
CrewMdk 725ee77383 Updated spanish language translation
The latest additions from English to Spanish have been added.
2020-04-13 20:18:53 -05:00
Barry Rowe 289be872f3 Added in auto-translate support, fixes for ozone and glui accessibility, and support for nvda and SAPI narration. 2020-04-13 17:46:08 -07:00
Autechre 910da74519 Merge pull request #10442 from WeedyWeedSmoker/French-translation-update
French: Add optional per-playlist alphabetical sorting
2020-04-13 02:56:00 +02:00
Weedy Weed Smoker 2e0f85ac93 French: Add per-playlist alphabetical sorting 2020-04-13 01:35:49 +07:00
Autechre ef2e51b4f6 Merge pull request #10434 from jdgleaver/per-playlist-sort
(Playlist Management) Add optional per-playlist alphabetical sorting
2020-04-12 14:02:56 +02:00
Autechre af3980ff66 Merge pull request #10420 from m4tsa/libnx_update
Fix the single breaking change from libnx 3.1.0
2020-04-11 18:10:08 +02:00
Mats A e3cbd2e62f add define to keep compat with previous libnx release 2020-04-11 18:07:59 +02:00
Autechre d98731d5d9 Merge pull request #10415 from LordeIlluminati/LordeIlluminati-patch-1
Update msg_hash_pt_br.h
2020-04-11 14:41:10 +02:00
Autechre ca4328b53c Merge pull request #10437 from valadaa48/oga_perf_fix
oga_gfx: move non-inlined function out of loop
2020-04-11 14:40:35 +02:00
Autechre 26bed1e264 Merge pull request #10429 from phcoder/f1x
Fix psl1ght compilation
2020-04-11 14:26:30 +02:00
jdgleaver 4dec80e9e3 Style nits 2020-04-11 13:00:24 +01:00
valadaa48 587a425f77 oga_gfx: move non-inlined function out of loop 2020-04-11 02:30:39 +00:00
hizzlekizzle 8096ced303 Merge pull request #10433 from felinben/translation
Update retroarch.desktop for German
2020-04-10 19:47:09 -05:00
Linux User 86e8aeaaa5 Update retroarch.desktop for German 2020-04-10 17:41:19 +01:00
jdgleaver 223cae66c1 (Playlist Management) Add optional per-playlist alphabetical sorting 2020-04-10 17:07:49 +01:00
hizzlekizzle d6058bba82 Merge pull request #10430 from Alcaro/patch-3
intl/README.md: Fix typo
2020-04-09 16:24:29 -05:00
Alcaro 3249c10215 intl/README.md: Fix typo 2020-04-09 21:07:17 +02:00
Vladimir Serbinenko c957e07399 Fix psl1ght compilation
pkg.py is not necessatily in path
mftb works better than posix on psl1ght
2020-04-09 15:53:38 +02:00
Autechre df1fefd775 Merge pull request #10421 from jdgleaver/playlist-fixes
Improve handling of 'broken' playlists
2020-04-09 14:17:01 +02:00
Autechre d521945479 Merge pull request #10425 from jdgleaver/ozone-font-alignemnt
(Ozone) Enable proper vertical text alignment + thumbnail display improvements
2020-04-09 14:16:46 +02:00
Autechre 74fb8cb7b2 Merge pull request #10426 from jdgleaver/ozone-pointer-fix
(Ozone) Pointer input fixes
2020-04-09 13:38:08 +02:00
jdgleaver 887999904b (Ozone) Pointer input fixes 2020-04-08 17:09:38 +01:00
jdgleaver 545e5fd6ab (Ozone) Enable proper vertical text alignment + thumbnail display improvements 2020-04-08 15:15:39 +01:00
Jeff Sousa ac5e151d1e Update msg_hash_pt_br.h 2020-04-08 09:16:46 -03:00
Jeff Sousa c8d269e5de Update msg_hash_pt_br.h 2020-04-08 09:15:15 -03:00
Jeff Sousa e7173e974b Update msg_hash_pt_br.h 2020-04-08 09:10:34 -03:00
Jeff Sousa 7b0d527ffe Update msg_hash_pt_br.h 2020-04-08 08:46:57 -03:00
Mats A 6f5f600f47 rename U64_MAX to UINT64_MAX due to libnx changes 2020-04-07 13:23:06 +02:00
jdgleaver ad8a1174f7 Improve handling of 'broken' playlists 2020-04-07 12:00:16 +01:00
Jeff Sousa 24b5e5234f Update msg_hash_pt_br.h 2020-04-07 01:37:00 -03:00
LordeIlluminati 1d438d8d06 Update msg_hash_pt_br.h 2020-04-07 00:43:16 -03:00
LordeIlluminati 891372c4b1 Update msg_hash_pt_br.h 2020-04-07 00:24:29 -03:00
LordeIlluminati 3de030ba74 Update msg_hash_pt_br.h 2020-04-06 22:37:34 -03:00
LordeIlluminati a6dd70a320 Update msg_hash_pt_br.h 2020-04-06 22:31:15 -03:00
LordeIlluminati ffe79897e5 Update msg_hash_pt_br.h 2020-04-06 19:13:03 -03:00
Autechre b01aabf7d1 Merge pull request #10411 from jdgleaver/widget-text-alignment
Widget text improvements
2020-04-06 15:37:58 +02:00
Autechre 304e13ac16 Merge pull request #10412 from jdgleaver/task-fix
Fix task deadlocks
2020-04-06 15:25:25 +02:00
jdgleaver c1d41e190c (task_queue) Add warning about the usage of 'task_queue_remove()' 2020-04-06 14:16:24 +01:00
jdgleaver 13df7795fc Fix task deadlocks 2020-04-06 13:51:22 +01:00
jdgleaver f559798750 Widget text improvements 2020-04-06 11:39:30 +01:00
twinaphex e88568625c Merge branch 'master' of https://github.com/libretro/RetroArch 2020-04-06 01:04:23 +02:00
Autechre 0716fa02d6 Update CHANGES.md 2020-04-05 13:12:18 +02:00
Autechre 325a8a4cbd Merge pull request #10394 from CrewMdk/patch-1
Updated spanish language translation
2020-04-05 13:06:39 +02:00
Autechre b0820ca1db Merge pull request #10386 from jdgleaver/rgui-downscale
(RGUI) Enable automatic menu size reduction when running at low resolutions (down to 256x192)
2020-04-05 13:06:30 +02:00
Autechre 8d44c0c752 Merge pull request #10397 from Jamiras/cheevos_gba_no_mmap
[cheevos] report non-memorymap gba cores as unsupported
2020-04-05 13:06:15 +02:00
Autechre 5b5a086fd3 Merge pull request #10398 from Jamiras/cheevos_null_check
[cheevos] prevent null reference rendering achievement list while closing application
2020-04-05 13:05:59 +02:00
Autechre f7e6d9e7b8 Merge pull request #10399 from Jamiras/thread_queue_unfinished
fix race condition where task could momentarily not be in the queue when reordering
2020-04-05 13:05:49 +02:00
Autechre 1f43533ff9 Merge pull request #10400 from yoshisuga/yoshisuga/tvos_no_overlay
tvOS: Disable overlays for tvOS, fix app icon
2020-04-05 13:05:30 +02:00
Yoshi Sugawara 4f5616cb91 tvOS: Disable overlays for tvOS, fix app icon 2020-04-04 08:22:24 -10:00
Jamiras 23ba478f82 fix race condition where task could momentarily not be in the queue when reordering 2020-04-04 09:37:55 -06:00
Jamiras ff3b033815 prevent null reference rendering achievement list while closing emulator 2020-04-04 09:28:11 -06:00
Jamiras a08840de6d report non-memorymap gba cores as unsupported 2020-04-04 09:13:10 -06:00
CrewMdk ed34643f01 Updated spanish language translation 2020-04-03 20:36:06 -06:00
jdgleaver a9c496e01f (RGUI) Enable automatic menu size reduction when running at low resolutions (down to 256x192) 2020-04-02 16:54:39 +01:00
twinaphex a9154373fc Merge branch 'master' of https://github.com/libretro/RetroArch 2020-04-02 02:13:12 +02:00
twinaphex 92c472c227 Merge branch 'master' of https://github.com/libretro/RetroArch 2020-03-29 06:01:31 +02:00
twinaphex 4589fde775 Simplify video_context_driver_translate_aspect 2020-03-28 05:44:58 +01:00
twinaphex 8b8d9e0841 Style nits 2020-03-28 05:40:16 +01:00
twinaphex 19c68fad43 Take out cb_update_window_title and cb_get_metrics 2020-03-28 05:36:31 +01:00
SindenLightgun 68c11b1ab5 Stop lightgun offscreen centering the aim
When the lightgun aim was on the edges it was flagging as offscreen which is good but was also centering the aim to the centre of the screen which doesn't seem necessary.
2020-01-25 00:11:14 +00:00
SindenLightgun 9e2b39b85a Added non-X11 lightgun support
The current method for getting the lightgun aiming coordinates "udev_lightgun_aiming_state" only work in X11 which is shown if you follow the code through, the required coordinates are not set otherwise. I've added an X11 if statement and left that block of code as it is. For the non-X11 code block I've used the methods from the touchscreen/pointer function which successfully gets absolute coordinates back from the mouse device in non-X11. This update is tested and working on the Raspberry Pi for an absolute mouse based device and it was not working before.
2019-11-02 17:29:14 +00:00
1118 changed files with 267415 additions and 177398 deletions

No files matched your search

+5
View File
@@ -15,6 +15,11 @@ charset = utf-8
indent_style = space
indent_size = 3
# 2 space indentation
[*.{json,xml,yaml,yml}]
indent_style = space
indent_size = 2
# Tab indentation
[Makefile*]
indent_style = tab
+28
View File
@@ -0,0 +1,28 @@
# Upload sources to Crowdin for translation
name: Crowdin Workflow
on:
push:
branches:
- master
paths:
- 'intl/*_us.h'
- 'intl/*_us.json'
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Setup Java JDK
uses: actions/[email protected]
with:
java-version: 1.8
- name: Setup Python
uses: actions/setup-python@v2
- name: Checkout
uses: actions/checkout@v2
- name: Crowdin Sync
run: |
cd intl
python3 crowdin_sync.py
+4 -1
View File
@@ -8,6 +8,7 @@
*.dol
*.map
*.swp
*.cache
.tmp
.tmp.c
.tmp.cxx
@@ -76,7 +77,9 @@ convert_rumble.awk
*~
assets
info
content_history.lpl
content_image_history.lpl
content_music_history.lpl
saves
screenshots
@@ -174,7 +177,7 @@ retroarch_switch.nso
# PS2
ps2/irx/*.c
ps2/libcdvd/lib/
*.irx
# Wayland
gfx/common/wayland/idle-inhibit-unstable-v1.c
+12
View File
@@ -40,12 +40,16 @@ matrix:
env: CXX_BUILD=1 CC=gcc-8 CXX=g++-8
- compiler: gcc
env: DISABLE_MENU=1 CC=gcc-8 CXX=g++-8
- compiler: gcc
env: DISABLE_NETWORKING=1 CC=gcc-8 CXX=g++-8
- compiler: gcc
env: DISABLE_OVERLAY=1 CC=gcc-8 CXX=g++-8
- compiler: gcc
env: DISABLE_CDROM=1 CC=gcc-8 CXX=g++-8
- compiler: gcc
env: DISABLE_VIDEO_LAYOUT=1 CC=gcc-8 CXX=g++-8
- compiler: gcc
env: DISABLE_THREADS=1 CC=gcc-8 CXX=g++-8
- compiler: gcc
env: DISABLE_AUDIOMIXER=1 CC=gcc-8 CXX=g++-8
- compiler: gcc
@@ -136,6 +140,10 @@ before_script:
if [ -n "$DISABLE_OVERLAY" ]; then
ARGS="$ARGS --disable-overlay"
fi
- |
if [ -n "$DISABLE_NETWORKING" ]; then
ARGS="$ARGS --disable-networking"
fi
- |
if [ -n "$DISABLE_CDROM" ]; then
ARGS="$ARGS --disable-cdrom"
@@ -144,6 +152,10 @@ before_script:
if [ -n "$DISABLE_VIDEO_LAYOUT" ]; then
ARGS="$ARGS --disable-video_layout"
fi
- |
if [ -n "$DISABLE_THREADS" ]; then
ARGS="$ARGS --disable-threads --disable-glslang"
fi
- |
if [ -n "$DISABLE_AUDIOMIXER" ]; then
ARGS="$ARGS --disable-audiomixer"
+2 -3
View File
@@ -1,15 +1,15 @@
{
"terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe",
"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,
"files.associations": {
"frontend_driver.h": "c",
"*.in": "c",
@@ -63,7 +63,6 @@
"xtree": "c",
"xutility": "c",
"menu_input_dialog.h": "c",
"menu_filebrowser.h": "c",
"ozone_sidebar.h": "c",
"menu_thumbnail_path.h": "c",
"badges.h": "c"
+232 -1
View File
@@ -1,18 +1,249 @@
# Future
# 1.9.0
- 3DS: Fix sound crackling when paused
- ANDROID/VIBRATION: Fixes "Vibrate on Key Press" having no effect on Android devices, which occurred because only the off time/strength was defined in what should have been a pair of off/on values
- AUTOCONFIG: Ensure correct directory is used when saving autoconfig profiles
- BLUETOOTH: Add a Bluetooth driver (Lakka-only for now)
- CHEATS: Fix for wrong number of remaining cheat search matches on some machines
- CHEEVOS: Option to play sound on achievement unlock.
- CHEEVOS: Upgrade to rcheevos 9.1
- CHEEVOS: Restore display of unlocked achievements across hardcore modes
- CHEEVOS: Hash buffered data when available
- CHEEVOS: Fix 'Auto Save State freezes RetroArch while Cheevos is enabled'
- CORE OPTIONS: Pressing OK (or clicking/tapping) on a 'boolean toggle' core option no longer opens a drop-down list. The value now toggles directly, just like boolean options everywhere else in the menu
- CORE OPTIONS: Toggling an option that changes the number of core options being displayed (i.e. things like `Show Advanced Audio/Video Settings) no longer resets the navigation pointer to the start of the list
- CORE OPTIONS: Before, RetroArch would identify core option values as being 'boolean' if they had labels matching the specific strings enabled or disabled. Most core devs would abide by this, but not always... As a result, we sometimes would end up with misidentified values, with all kinds of Enabled, Off, True, etc. strings littering the menu, in place of proper toggle switches. All boolean-type value labels are now detected, and replaced with standard ON/OFF strings.
- CLI: A new command line option --load-menu-on-error has been added
- CRT: On the fly CRT porch adjuments - these changes allow a user to adjust how the porch algorithm generates the 15khz/31khz output. Giving the ability to change over/under scan.
- CONFIG FILE: Optimise parsing of configuration files
- D3D9/D3D11: Fix core-initiated D3D9/D3D11 driver switches
- DRIVERS: Implemented protection to avoid setting critical drivers to nothing thus preventing the user from locking him/herself out of the program
- EMSCRIPTEN: Fix input code to ignore unknown keys
- FFMPEG CORE: Prevent seeking past the end of files (hang fix)
- FILE I/O: VFS and NBIO interfaces will now use 64-bit fseek/ftell where possible, should allow for reading/writing to files bigger than 2GB
- INPUT MAPPING/REMAPPING: Add input remap drop-down lists
- IOS: Fixed iOS 6 version
- IOS: Hide the home indicator as it obscures the content too frequently
- IOS/METAL: Metal video driver now works on RetroArch iOS
- IOS/METAL: Support getting video metrics to support proper touchscreen interactions
- LOCALIZATION: Updates for several languages (synchronized from Crowdin)
- MEMORY/LINUX/ANDROID: Fix reporting of free memory
- MEMORY/WINDOWS: Fix reporting of free memory
- MENU: Enlarged INT/UINT selection limit from 999 to 9999
- MENU: Fix cursor forced to first entry after displaying lists
- MENU: Make Notification Font option visible when Graphics Widgets are enabled
- MENU/RGUI: Add optional 'toggle switch' icons
- MENU/WIDGETS: Add optional widget-based 'load content' launch feedback animation
- MENU/WIDGETS: Make notification font size option visible when graphics widgets are enabled
- ODROID GO ADVANCE: Video driver - fix race condition with RGUI callback
- PLAYLISTS: Change playlists to use dynamic arrays. Instead of a fixed initial 12MB memory allocation (99999 * 128 byte (on 64bit arch)), use a dynamically growing array
- PLAYLISTS: Playlist base content directory paths - portable playlists
- PLAYLISTS/SEARCH: Enhanced playlist search functionality
- PLAYLISTS/DATABASE: Add 'Explore' view
- PLAYLISTS/DATABASE/EXPLORE: Show system icons in explore view
- PS2: Improve FPS Limiter
- RUNAHEAD: Prevent runahead from being disabled *permanently* when an error occurs
- SHADERS/SLANG: Increased Slang max Parameters, Textures & Passes
- VIDEO FILTERS/BLARGG: Make Blargg_snes filter customizable
- WINDOWS/RAWINPUT: Fix invalid calls to dinput_handle_message when input driver is not set to dinput
- X11: Add lightgun support
# 1.8.9
- AUTO SAVESTATES: Ensure save states are correctly flushed to disk when quitting RetroArch (fixes broken save states when exiting RetroArch - without first closing content - with 'Auto Save State' enabled)
- BUILTIN CORES: Builtin cores like ffmpeg and imageviewer would previously try to erroneously load a dynamic core named 'builtin' - this would fail and would just be a wasteful operation - this now skips dylib loading in libretro_get_system_info for builtin cores
- CHEEVOS: Report API errors when unlocking achievements or submitting leaderboards
- CHEEVOS: Support less common file extensions
- CHEEVOS: Disable hardcore mode when playing BSV file
- CHEEVOS: Correctly report unlocked non-hardcore achievements when hardcore is paused
- CHEEVOS/M3U: Bugfix - did not handle absolute/relative paths in M3U files correctly before
- CHEEVOS/M3U: Bugfix - it didn't handle comments/directives
- CHEEVOS/M3U: Bugfix - it doesn't handle trailing whitespace
- CHEEVOS/M3U: Bugfix - failed when loading M3U files with certain line endings
- CORE MANAGEMENT: Add 'core management' menu (Settings -> Core)
- CORE MANAGEMENT: Add option to backup/restore installed cores
- CORE MANAGEMENT: Improved core selection logic
- CORE INFO: Search search optimisations
- CORE DOWNLOADER: Rename 'Core Updater' to 'Core Downloader'
- CORE DOWNLOADER: Add 'Show Experimental Cores' setting under Settings > Network > Updater
- CORE DOWNLOADER: Core licenses are now shown for all entries in the Core Updater menu
- CORE DOWNLOADER: Pressing RetroPad select on a Core Updater entry will now display any text in the description field of its info file
- CORE DOWNLOADER: Installed cores are now highlighted via a [#] symbol
- CORE DOWNLOADER: Pressing RetroPad start on a selected, installed entry opens the Core Information menu (when using Material UI, swiping left or right triggers the same action). This means we can now view bios info etc. - and more importantly delete cores - without jumping through all the hoops of loading a core first and navigating all over the place
- CORE DOWNLOADER/UPDATER: Add option to automatically backup cores when updating
- DISK CONTROL: Enable 'Load New Disc' while disk tray is open
- INPUT: Added a hotkey delay option to allow hotkey input to work properly when it is assigned to another action
- INPUT: Remove 'All Users Control Menu' setting, was buggy and will be properly reintroduced after input overhaul
- LINUX: Set default saves/save states/system paths
- LOCALIZATION: Add Persian language
- LOCALIZATION: Add Hebrew language
- LOCALIZATION: Add Asturian language
- MENU: Proper line wrapping for message dialog boxes
- MENU/HOTKEYS: Add sublabels to all hotkey bind entries
- MENU/QUICK MENU: Suppress the display of 'empty' quick menu listings when closing content
- MENU/OZONE: Performance improvements
- MENU/SDL: Add mouse controls
- OPENGL1/VITA: Initial changes for HW context without FBO
- OVERLAYS: Add options for moving the on-screen overlay
- PLAYLISTS/WINDOWS: Fix core path entries in image/video/music history playlists
- PS2: Add back CDFS support
- SDL/GL: Advertise GLSL support
- VIDEO/WIDGETS: Fix heap-use-after-free errors, leading to memory corruption
- VITA: Added custom bubbles support
- VITA: VitaGL update
- VULKAN/WSI: Better frame pacing
- VULKAN/WSI: Fix Intel Mesa being broken when using Fences, we have to use Semaphores to acquire the swapchain or the entire GPU stalls
- VULKAN/WSI: Add support for either using fences or semaphores when syncing
- VULKAN/WSI: Prefer using semaphores for integrated GPUs as it promotes better throughput over fences
- VULKAN/WSI/ANDROID: Do not use mailbox emulation on Android
- UWP/XBOX: Potentially improve performance by enabling 'Game Mode'
# 1.8.8
- AUDIO/JACK: Fix regression introduced after 1.8.4 - would hang at startup
- CHEEVOS: Disable hardcore when cheats are enabled
- CHD: Return false when special track cannot be found
- DISCORD/MATCHMAKING: Fix Discord 'Ask To Join' functionality
- FILE PATH: Various file path handling optimisations
- FONT: Fix Arabic, Chinese and Korean font rendering
- INPUT MAPPING/REMAPPING: Restore broken 'reset to default' functionality with RetroPad 'start' button
- INPUT MAPPING/REMAPPING: Fix 'reset to default' action for analog sticks and undefined core inputs
- LOCALIZATION: Update Arabic translation
- LOCALIZATION: Update Chinese (Simplified) translation
- LOCALIZATION: Update Chinese (Traditional) translation
- LOCALIZATION: Update German translation
- LOCALIZATION: Update Greek translation
- LOCALIZATION: Update Spanish translation
- LOCALIZATION: Update French translation
- LOCALIZATION: Update Italian translation
- LOCALIZATION: Update Japanese translation
- LOCALIZATION: Update Korean translation
- LOCALIZATION: Update Dutch translation
- LOCALIZATION: Update Polish translation
- LOCALIZATION: Update Portuguese Brazilian translation
- LOCALIZATION: Update Russian translation
- LOCALIZATION: Update Turkish translation
- LOCALIZATION: Update Vietnamese translation
- LOCALIZATION: Add Slovak translation
- MENU: Small buffer optimizations
- MENU/THUMBNAILS/BUGFIX: Fix heap-use-after-free error
- MENU/OZONE: Add option to sort playlists after name truncation
- MENU/OZONE/ANDROIDTV: Default to Ozone menu driver
- MENU/OZONE/ANDROID: Gamepad-like devices default to Ozone now (Shield Portable)
- NETPLAY: Lower announcement rate
- OVERLAYS: Fix memory leak when loading overlays
- SHADER PRESETS: Improved shader preset dirs
- TIME/DATE: Enable configuration of date seperator in clock and runtime 'last played' displays
- VITA: Fix upside-down vertical games
- UWP: Enable playlist and savefile compression by default (because of slow file I/O)
- WIIU: Gamepad hotplugging support
- WIIU: Theoretical multi-gamepad support
- VIDEO/WIDGETS: Fix overlapping text when simultaneous pop-up notifications and core/shader messages are being displayed
- X11: Fix crash in x11_display_server_get_screen_orientation
- X11/XSHM: Allow X11/XHSM video driver to operate without SHM extension
- X11/XSHM: Fix compatibility with X11 input driver
- XVIDEO: Fix keyboard input initialization
- XVIDEO/XWAYLAND: Fix XVideo support on xwayland (by supporting I420 and YZ12)
# 1.8.7
- 3DS: Add IDs for Frodo
- 3DS: Enable basic networking / cheevos
- CHEEVOS/BUGFIX: Opening achievements list would crash RetroArch with badges enabled (on new games)
- CHEEVOS: Option to start a session with all achievements active
- CHEEVOS: Don't perform unnecessary cheevos initialisation when cheevos are disabled. Should reduce startup times when loading content.
- CORE OPTIONS: Disable 'Use Global Core Options File' by default
- DOS/DJGPP: Add 32bit color support for cores
- GLCORE: Switch to glcore video driver when requested by a core
- LINUX/XDG: Use GenericName correctly in desktop entry
- MAC/COCOA: Fix mouse cursor tracking
- MENU/MATERIALUI: Add desktop-style playlist view mode
- MENU/MATERIALUI/DESKTOPVIEW: When scrolling playlists, show last selected thumbnails while waiting for next entry to load
- MENU/MATERIALUI: Limit tab switch rate when input repeat is active
- MENU/OZONE: Fix sidebar playlist sort order when 'Truncate Playlist Names' is enabled
- MENU/RGUI: Adjusted menu defaults, adjusted default scrolling speed
- MENU/RGUI: Enable custom wallpaper when menu size is reduced at low resolutions
- MENU/XMB: Limit tab switch rate when input repeat is active
- NETPLAY: Fix regressions introduced in 1.8.5
- RGUI: Add option to always stretch menu to fill the screen
- WIIU: Enable graphics widgets
# 1.8.6
- 3DS: Add IDs for UZEM, TGB Dual, and NeoCD
- 3DS: Fix font driver horizontal text alignment
- 3DS: Allow button presses up to INPUT_MAX_USERS - this enables the 3DS to bind and use buttons and axis for users up to the maximum set by 'Max Users' in the input settings menu.
- 3DS: Disable video filter if upscaled resolution exceeds hardware limits. The 3DS has a maximum video buffer size of 2048x2048. This is sufficient for every core that it supports, but when using software video filters the core output resolution is doubled. This is made worse by the fact that the video filter upscaling buffer size is dependent upon the maximum output resolution of the core - which in some cases is very large indeed (e.g. pcsx-rearmed sets a maximum width of 1024, for enhanced resolution support). The 3DS has very limited 'linear memory' for graphics buffer purposes, and a large base core buffer + video filter buffer can easily exceed this - which may also disable video output, or cause a crash. This PR very simply adds a 3DS-specific check to the video filter initialisation: if the resultant upscaling buffer exceeds the hardware limitation, then the filter is automatically disabled.
- 3DS/FONT/BUGFIX: Text colour was wrong: the RGBA channels were muddled, and R was always set to 255
- 3DS/FONT/BUGFIX: When drawing multiline strings, the line spacing was completely incorrect
- 3DS/FONT: Improves the appearance of the drop shadow effect on notification text.
- 3DS/ARCHIVE/7Z: Re-enable 7zip support.
- ARCHIVE/ZIP: Expand functionality of 'rzip_stream' interface. This PR expands the functionality of the new rzip_stream archived stream interface such that it now has almost complete feature parity with the standard file_stream interface, and can therefore be used as a drop-in replacement in most situations
- AI SERVICE: Hide redundant entries when service is disabled
- AI SERVICE: Added in auto-translate support
- AI SERVICE: support for NVDA and SAPI narration
- AUTOCONFIG: Use correct port index in input device configured/disconnected notifications
- CHD: Fixes a crash caused by ignoring the return value from one of the CHD library functions.
- BUGFIX: Fix race condition where task could momentarily not be in the queue when reordering
- CHEEVOS/BUGFIX: Prevent null reference rendering achievement list while closing application
- CHEEVOS/BUGFIX: Report non-memorymap GBA cores as unsupported
- COMMANDLINE: Advise against using -s and -S variables on the command line. …
- CONFIG FILE: Only write config files to disk when parameters change
- CONFIG FILE/BUGFIX: RetroArch no longer crashes when attempting to save a config file after 'unsetting' a parameter (currently, this can be triggered quite easily by manipulating input remaps)
- CONFIG FILE/BUGFIX: When using Material UI, RetroArch no longer modifies the wrong setting (or segfaults...) when tapping entries in the Quick Menu > Controls input remapping submenu
- CONFIG FILE/BUGFIX: Quite a few real and potential memory leaks have been fixed.
- CHD: Fixes a crash caused by ignoring the return value from one of the CHD library functions
- FASTFORWARDING: A new Mute When Fast-Forwarding option has been added under Settings > Audio. When enabled, users can fast forward without having to listen to distorted audio.
- GLCORE/SLANG: Set filter and wrap mode correctly when intialising shader textures. Before, the glcore shader driver did not correctly initialise loaded textures. The texture filtering and wrap mode were forced on texture creation, but these settings were not recorded - subsequent updates would set garbage values, that would resolve to linear filtering OFF and wrap mode = CLAMP_TO_EDGE.
- LOCALIZATION: Update Japanese translation
- LOCALIZATION: Update Spanish translation
- LOCALIZATION: Update Portuguese Brazilian translation
- IOS: Set audio session category to ambient so sound does not get cut off on interruption (phone call/playing back audio)
- MAC/IOHIDMANAGER/BUGFIX: Fix for Mayflash N64 adapter. In case last hatswitch does not match cookie. For the mayflash N64 adapter, I was getting a BAD EXC ADDRESS (in mac OS 10.13) for this line (tmp was NULL). Retroarch would crash in the gui if I pressed a button from the DPAD on controller 2. With this change, it no longer crashes in the gui and still registers the button push.
- MAC/COCOA: Fix mouse input - this brings back two lines of code that have been removed over time but
appear to be required in order for mouse input to work on macOS
- METAL/BUGFIX: GPU capture on Metal/OSX/NVidia could crash
- METAL/BUGFIX: Taking screenshots could capture black frames. Resulting PNG screenshots were black.
- METAL/BUGFIX: Corrupted image due to incorrect viewport copy when taking screenshot
- MENU: Prevent font-related segfaults when using extremely small scales/window sizes
- MENU: Fix 'gfx_display_draw_texture_slice()'
- MENU/FONT: Enable correct vertical alignment of text (+ font rendering fixes)
- MENU/RGUI: Enable automatic menu size reduction when running at low resolutions (down to 256x192)
- MENU/OZONE: Update timedate style options for Last Played sublabel metadata
- MENU/OZONE: Hide 'Menu Color Theme' setting when 'Use preferred system color theme' is enabled
- MENU/OZONE: Fix thumbnail switching via 'scan' button functionality
- MENU/OZONE: Prevent glitches when rendering Ozone's selection cursor
- MENU/OZONE: Enable proper vertical text alignment + thumbnail display improvements
- MENU/OZONE: Enable second thumbnail/content metadata toggle using RetroPad 'select'
- MENU/OZONE: Refactor footer display
- MENU/OZONE: Hide thumbnail button hints when viewing file browser lists
- MENU/OZONE/INPUT/BUGFIX: Fix undefined behaviour when using touch screen to change input remaps
- MENU/OZONE/INPUT/BUGFIX: It turns out that Windows reports negative pointer coordinates when the mouse cursor goes beyond the left hand edge of the RetroArch window (this doesn't happen on Linux, so I never encountered this issue before!). As a result, if Ozone is currently not showing the sidebar (menu depth > 1), moving the cursor off the left edge of the window generates a false positive 'cursor in sidebar' event - which breaks menu navigation, as described in #10419. With this PR, we now handle 'cursor in sidebar' status correctly in all cases
- MENU/OZONE/INPUT/BUGFIX: Pointer input is now correctly disabled when message boxes are displayed
- MENU/XMB: Fix thumbnail switching via 'scan' button functionality
- ODROID GO ADVANCE: Add DRM HW context driver
- PSL1GHT: Initial port
- PSL1GHT/KEYBOARD: Implement PSL1GHT keyboard
- PLAYLIST/BUGFIX: Improve handling of 'broken' playlists - RetroArch will no longer segfault when attempting to run content via a playlist entry with missing path or core path fields.
- PLAYLIST/BUGFIX: Improve handling of 'broken' playlists - when a playlist entry has either core path and/or core name set to NULL, DETECT or an empty string, attempting to load content will fallback to the normal 'core selection' code (currently this happens only if both core path and core name are DETECT - this is wholly inadequate!)
- PLAYLIST/BUGFIX: RetroArch will no longer segfault when attempting to fetch content runtime information when core path is NULL
- PLAYLIST/BUGFIX: Core name + runtime info will only be displayed on playlists and in the Information submenu if both the core path and core name fields are 'valid' (i.e. not NULL or DETECT)
- PLAYLIST/BUGFIX: When handling entries with missing path fields, the menu sorting order now matches that of the playlist sorting order (at present, everything goes out of sync when paths are empty). Moreover, entries with missing path fields can now be 'selected', so users can remove them (currently, hitting A on such an entry immediately tries - and fails - to load the content, so the only way to remove the broken entry is via the Playlist Management > Clean Playlist feature)
- PLAYLIST: Add optional per-playlist alphabetical sorting
- PLAYLIST: Omit whitespace when writing compressed JSON format playlists
- PLAYLIST: Add optional playlist compression
- QNX: Support analog sticks
- SAVESTATES: Add optional save state compression (enabled by default now)
- SRAM: Add optional save (SRAM) file compression
- SCANNER: Prevent redundant playlist entries when handling M3U content
- SCANNER/ANDROID: Fix content scanner being unable to identify certain games from CHD images (raw data sector/subcode)
- TASKS/BUGFIX: Fix task deadlocks
- TASKS/SCREENSHOT/BUGFIX: Fix heap-use-after-free error when widgets are disabled
- TVOS: Disable overlays for tvOS, fix app icon
- VIDEO/WIDGETS/BUGFIX: The font ascender/descender metrics added in #10375 are now used to achieve 'pixel perfect' vertical text alignment
- VIDEO/WIDGETS/BUGFIX: Message queue text now uses its own dedicated font. Previously, a single (larger) font was used for all active widgets, and this was scaled down for message queue items. This 'squished' the text a little; more importantly, when using the stb font renderers (on Android. etc.) it caused ugly artefacts around the edges of glyphs due to pixel interpolation errors. Now that a correctly sized font is used, the message queue is always rendered cleanly.
- VIDEO/WIDGETS/BUGFIX: Previously, each widget font was 'flushed' (font_driver_flush()) at least once a frame. This is quite a slow operation. Now we only flush fonts if they have actually been used.
- VULKAN/BUGFIX: Fix display of statistics text
- UNIX/BUGFIX: Fix overflow when computing total memory on i386
- WIIU/BUGFIX: Fix font driver horizontal text alignment
- WIIU/BUGFIX: Fix non-vertex coordinates in draws using tex shader
- WIIU/BUGFIX: Update and fix meta.xml file for the WiiU release. This change makes it so the information from the meta.xml file parsed for the WiiU's Homebrew Launcher is displayed properly.
# 1.8.5
- 3DS: Keep the bottom screen hidden on sleep/wakeup. When the 3DS wakes back up after being closed, the bottom screen needs to be reinitialized. Adding the condition here will cause the screen to be turned on or off based on the state of ctr_bottom_screen_enabled, as you'd expect
+4 -8
View File
@@ -215,13 +215,6 @@ $(OBJDIR)/%.o: %.m
@$(if $(Q), $(shell echo echo OBJC $<),)
$(Q)$(CXX) $(OBJCFLAGS) $(DEFINES) -MMD -c -o $@ $<
.FORCE:
$(OBJDIR)/git_version.o: git_version.c .FORCE
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.S config.h config.mk $(HEADERS)
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo AS $<),)
@@ -233,16 +226,17 @@ $(OBJDIR)/%.o: %.rc $(HEADERS)
$(Q)$(WINDRES) -o $@ $<
install: $(TARGET)
rm -f $(OBJDIR)/git_version.o
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.appdata.xml $(DESTDIR)$(DATA_DIR)/metainfo
cp retroarch.desktop $(DESTDIR)$(DATA_DIR)/applications
cp docs/retroarch.6 $(DESTDIR)$(MAN_DIR)/man6
cp docs/retroarch-cg2glsl.6 $(DESTDIR)$(MAN_DIR)/man6
@@ -253,6 +247,7 @@ install: $(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)$(MAN_DIR)/man6/retroarch.6
chmod 644 $(DESTDIR)$(MAN_DIR)/man6/retroarch-cg2glsl.6
chmod 644 $(DESTDIR)$(DATA_DIR)/pixmaps/retroarch.svg
@@ -277,6 +272,7 @@ uninstall:
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)$(DOC_DIR)/COPYING
rm -f $(DESTDIR)$(DOC_DIR)/COPYING.assets
+231 -98
View File
@@ -19,6 +19,12 @@ ifeq ($(HAVE_CXX11), 1)
CXXFLAGS += $(CXX11_CFLAGS)
endif
ifeq ($(HAVE_SAPI), 1)
LIBS += sapi.dll
endif
ifeq ($(HAVE_GL_CONTEXT),)
HAVE_GL_CONTEXT = 0
HAVE_GL_MODERN = 0
@@ -151,10 +157,31 @@ ifeq ($(TARGET), retroarch_3ds)
OBJ += frontend/drivers/platform_ctr.o
endif
# Git
# Git Version
GIT_VERSION_CACHEDIR = $(if $(OBJDIR),$(OBJDIR),$(CURDIR))
GIT_VERSION_CACHEFILE = $(GIT_VERSION_CACHEDIR)/git-version.cache
GIT_VERSION := $(shell git rev-parse --short HEAD 2>/dev/null)
ifneq ($(GIT_VERSION),)
ifneq (,$(wildcard .git/index)) # Building inside a Git repository?
GIT_VERSION := $(shell git rev-parse --short HEAD 2>/dev/null)
endif
ifneq (,$(wildcard $(GIT_VERSION_CACHEFILE))) # Cached Git version?
GIT_VERSION_CACHE = $(shell cat "$(GIT_VERSION_CACHEFILE)" 2>/dev/null)
endif
ifeq ($(GIT_VERSION),)
ifneq ($(GIT_VERSION_CACHE),) # If no Git version, use cached if found
GIT_VERSION = $(GIT_VERSION_CACHE)
endif
endif
ifneq ($(GIT_VERSION),) # Enable version_git.o?
ifneq ($(GIT_VERSION),$(GIT_VERSION_CACHE)) # Update version_git.o?
$(shell \
mkdir -p "$(GIT_VERSION_CACHEDIR)" && \
echo "$(GIT_VERSION)" > "$(GIT_VERSION_CACHEFILE)" && \
touch version_git.c)
endif
DEFINES += -DHAVE_GIT_VERSION -DGIT_VERSION=$(GIT_VERSION)
OBJ += version_git.o
endif
@@ -169,16 +196,28 @@ OBJ += frontend/frontend_driver.o \
msg_hash.o \
intl/msg_hash_us.o \
$(LIBRETRO_COMM_DIR)/queues/task_queue.o \
tasks/task_content.o \
tasks/task_patch.o \
tasks/task_content.o
ifeq ($(HAVE_PATCH), 1)
DEFINES += -DHAVE_PATCH
OBJ += tasks/task_patch.o
endif
OBJ += \
tasks/task_save.o \
tasks/task_file_transfer.o \
tasks/task_image.o \
tasks/task_playlist_manager.o \
tasks/task_manual_content_scan.o \
tasks/task_core_backup.o \
$(LIBRETRO_COMM_DIR)/encodings/encoding_utf.o \
$(LIBRETRO_COMM_DIR)/encodings/encoding_crc32.o \
$(LIBRETRO_COMM_DIR)/encodings/encoding_base64.o \
$(LIBRETRO_COMM_DIR)/encodings/encoding_crc32.o
ifeq ($(HAVE_TRANSLATE), 1)
OBJ += $(LIBRETRO_COMM_DIR)/encodings/encoding_base64.o
endif
OBJ += \
$(LIBRETRO_COMM_DIR)/compat/fopen_utf8.o \
$(LIBRETRO_COMM_DIR)/lists/file_list.o \
$(LIBRETRO_COMM_DIR)/lists/dir_list.o \
@@ -188,8 +227,9 @@ OBJ += frontend/frontend_driver.o \
$(LIBRETRO_COMM_DIR)/streams/file_stream_transforms.o \
$(LIBRETRO_COMM_DIR)/streams/interface_stream.o \
$(LIBRETRO_COMM_DIR)/streams/memory_stream.o \
$(LIBRETRO_COMM_DIR)/vfs/vfs_implementation.o \
$(LIBRETRO_COMM_DIR)/media/media_detect_cd.o \
$(LIBRETRO_COMM_DIR)/vfs/vfs_implementation.o
OBJ += \
$(LIBRETRO_COMM_DIR)/lists/string_list.o \
$(LIBRETRO_COMM_DIR)/string/stdstring.o \
$(LIBRETRO_COMM_DIR)/memmap/memalign.o \
@@ -219,7 +259,6 @@ OBJ += \
file_path_str.o \
$(LIBRETRO_COMM_DIR)/hash/rhash.o \
input/common/input_hid_common.o \
input/input_mapper.o \
led/led_driver.o \
gfx/video_coord_array.o \
gfx/video_crt_switch.o \
@@ -230,45 +269,79 @@ OBJ += \
configuration.o \
$(LIBRETRO_COMM_DIR)/dynamic/dylib.o \
cores/dynamic_dummy.o \
$(LIBRETRO_COMM_DIR)/queues/message_queue.o \
managers/state_manager.o \
$(LIBRETRO_COMM_DIR)/queues/message_queue.o
ifeq ($(HAVE_REWIND), 1)
DEFINES += -DHAVE_REWIND
OBJ += managers/state_manager.o
endif
OBJ += \
gfx/drivers_font_renderer/bitmapfont.o \
tasks/task_autodetect.o \
input/input_autodetect_builtin.o \
input/input_keymaps.o \
$(LIBRETRO_COMM_DIR)/queues/fifo_queue.o \
$(LIBRETRO_COMM_DIR)/compat/compat_fnmatch.o \
$(LIBRETRO_COMM_DIR)/compat/compat_posix_string.o \
managers/cheat_manager.o \
$(LIBRETRO_COMM_DIR)/compat/compat_posix_string.o
ifeq ($(HAVE_CHEATS), 1)
DEFINES += -DHAVE_CHEATS
OBJ += managers/cheat_manager.o
endif
OBJ += \
core_info.o \
core_backup.o \
$(LIBRETRO_COMM_DIR)/file/config_file.o \
$(LIBRETRO_COMM_DIR)/file/config_file_userdata.o \
runtime_file.o \
disk_index_file.o \
tasks/task_screenshot.o \
disk_index_file.o
ifeq ($(HAVE_SCREENSHOTS), 1)
DEFINES += -DHAVE_SCREENSHOTS
OBJ += tasks/task_screenshot.o
endif
OBJ += \
tasks/task_powerstate.o \
$(LIBRETRO_COMM_DIR)/gfx/scaler/scaler.o \
$(LIBRETRO_COMM_DIR)/gfx/scaler/pixconv.o \
$(LIBRETRO_COMM_DIR)/gfx/scaler/scaler_int.o \
$(LIBRETRO_COMM_DIR)/gfx/scaler/scaler_filter.o \
gfx/font_driver.o \
gfx/video_filter.o \
$(LIBRETRO_COMM_DIR)/audio/resampler/audio_resampler.o \
$(LIBRETRO_COMM_DIR)/audio/dsp_filter.o \
$(LIBRETRO_COMM_DIR)/audio/resampler/drivers/sinc_resampler.o \
$(LIBRETRO_COMM_DIR)/audio/resampler/drivers/nearest_resampler.o \
gfx/font_driver.o
ifeq ($(HAVE_VIDEO_FILTER), 1)
DEFINES += -DHAVE_VIDEO_FILTER
OBJ += gfx/video_filter.o
endif
OBJ += $(LIBRETRO_COMM_DIR)/audio/resampler/audio_resampler.o
ifeq ($(HAVE_DSP_FILTER), 1)
DEFINES += -DHAVE_DSP_FILTER
OBJ += $(LIBRETRO_COMM_DIR)/audio/dsp_filter.o
endif
OBJ += $(LIBRETRO_COMM_DIR)/audio/resampler/drivers/sinc_resampler.o
ifeq ($(HAVE_NEAREST_RESAMPLER), 1)
DEFINES += -DHAVE_NEAREST_RESAMPLER
OBJ += $(LIBRETRO_COMM_DIR)/audio/resampler/drivers/nearest_resampler.o
endif
OBJ += \
$(LIBRETRO_COMM_DIR)/utils/md5.o \
playlist.o \
$(LIBRETRO_COMM_DIR)/features/features_cpu.o \
performance_counters.o \
verbosity.o \
$(LIBRETRO_COMM_DIR)/playlists/label_sanitization.o \
$(LIBRETRO_COMM_DIR)/time/rtime.o \
manual_content_scan.o \
disk_control_interface.o
ifeq ($(HAVE_CONFIGFILE), 1)
DEFINES += -DHAVE_CONFIGFILE
OBJ += input/input_remapping.o
endif
ifeq ($(HAVE_BLISSBOX), 1)
@@ -283,6 +356,10 @@ ifeq ($(HAVE_AUDIOMIXER), 1)
$(LIBRETRO_COMM_DIR)/audio/audio_mixer.o
endif
ifeq ($(HAVE_BSV_MOVIE), 1)
DEFINES += -DHAVE_BSV_MOVIE
endif
ifeq ($(HAVE_RUNAHEAD), 1)
DEFINES += -DHAVE_RUNAHEAD
endif
@@ -317,7 +394,11 @@ ifeq ($(HAVE_LANGEXTRA), 1)
intl/msg_hash_cht.o \
intl/msg_hash_ar.o \
intl/msg_hash_el.o \
intl/msg_hash_tr.o
intl/msg_hash_tr.o \
intl/msg_hash_sk.o \
intl/msg_hash_fa.o \
intl/msg_hash_he.o \
intl/msg_hash_ast.o
endif
ifneq ($(HAVE_GETOPT_LONG), 1)
@@ -450,6 +531,10 @@ ifeq ($(HAVE_LIBRETRODB), 1)
database_info.o \
tasks/task_database.o \
tasks/task_database_cue.o
ifeq ($(HAVE_MENU), 1)
OBJ += menu/menu_explore.o
endif
endif
ifeq ($(HAVE_BUILTINMBEDTLS), 1)
@@ -460,7 +545,8 @@ ifeq ($(HAVE_BUILTINMBEDTLS), 1)
DEFINES += -DMBEDTLS_SSL_DEBUG_ALL
endif
# MinGW requires this for some reason, even though the include paths are relative to the source
# MinGW requires this for some reason,
# even though the include paths are relative to the source
INCLUDE_DIRS += -Ideps/mbedtls
OBJS_TLS_CRYPTO = deps/mbedtls/aes.o \
@@ -475,27 +561,20 @@ ifeq ($(HAVE_BUILTINMBEDTLS), 1)
deps/mbedtls/ccm.o \
deps/mbedtls/cipher.o \
deps/mbedtls/cipher_wrap.o \
deps/mbedtls/cmac.o \
deps/mbedtls/ctr_drbg.o \
deps/mbedtls/des.o \
deps/mbedtls/dhm.o \
deps/mbedtls/ecdh.o \
deps/mbedtls/ecdsa.o \
deps/mbedtls/ecjpake.o \
deps/mbedtls/ecp.o \
deps/mbedtls/ecp_curves.o \
deps/mbedtls/entropy.o \
deps/mbedtls/entropy_poll.o \
deps/mbedtls/error.o \
deps/mbedtls/gcm.o \
deps/mbedtls/havege.o \
deps/mbedtls/hmac_drbg.o \
deps/mbedtls/md.o \
deps/mbedtls/md2.o \
deps/mbedtls/md4.o \
deps/mbedtls/md5.o \
deps/mbedtls/md_wrap.o \
deps/mbedtls/memory_buffer_alloc.o \
deps/mbedtls/oid.o \
deps/mbedtls/padlock.o \
deps/mbedtls/pem.o \
@@ -505,7 +584,6 @@ ifeq ($(HAVE_BUILTINMBEDTLS), 1)
deps/mbedtls/pkcs5.o \
deps/mbedtls/pkparse.o \
deps/mbedtls/pkwrite.o \
deps/mbedtls/platform.o \
deps/mbedtls/ripemd160.o \
deps/mbedtls/rsa.o \
deps/mbedtls/sha1.o \
@@ -513,12 +591,9 @@ ifeq ($(HAVE_BUILTINMBEDTLS), 1)
deps/mbedtls/sha512.o \
deps/mbedtls/threading.o \
deps/mbedtls/timing.o \
deps/mbedtls/version.o \
deps/mbedtls/version_features.o \
deps/mbedtls/xtea.o
OBJS_TLS_X509 = deps/mbedtls/certs.o \
deps/mbedtls/pkcs11.o \
deps/mbedtls/x509.o \
deps/mbedtls/x509_create.o \
deps/mbedtls/x509_crl.o \
@@ -557,6 +632,16 @@ ifeq ($(HAVE_EMSCRIPTEN), 1)
camera/drivers/rwebcam.o
endif
ifeq ($(HAVE_BLUETOOTH), 1)
OBJ += bluetooth/drivers/bluetoothctl.o
endif
ifeq ($(HAVE_BLUETOOTH), 1)
ifeq ($(HAVE_DBUS), 1)
OBJ += bluetooth/drivers/bluez.o
endif
endif
ifeq ($(HAVE_LAKKA), 1)
OBJ += wifi/drivers/connmanctl.o
endif
@@ -709,8 +794,11 @@ ifeq ($(HAVE_NEON),1)
endif
OBJ += $(LIBRETRO_COMM_DIR)/audio/conversion/s16_to_float.o \
$(LIBRETRO_COMM_DIR)/audio/conversion/float_to_s16.o \
$(LIBRETRO_COMM_DIR)/formats/wav/rwav.o
$(LIBRETRO_COMM_DIR)/audio/conversion/float_to_s16.o
ifeq ($(HAVE_RWAV), 1)
OBJ += $(LIBRETRO_COMM_DIR)/formats/wav/rwav.o
endif
ifeq ($(HAVE_NEON),1)
OBJ += $(LIBRETRO_COMM_DIR)/audio/conversion/s16_to_float_neon.o \
@@ -799,6 +887,10 @@ ifeq ($(HAVE_MENU), 1)
endif
endif
ifeq ($(HAVE_BLUETOOTH), 1)
DEFINES += -DHAVE_BLUETOOTH
endif
ifeq ($(HAVE_LAKKA), 1)
DEFINES += -DHAVE_LAKKA
endif
@@ -807,18 +899,8 @@ ifeq ($(HAVE_LAKKA_SWITCH), 1)
DEFINES += -DHAVE_LAKKA_SWITCH
endif
# Does not depend on HAVE_MENU
ifeq ($(HAVE_SHADERS_COMMON), 1)
OBJ += menu/menu_shader.o
endif
ifeq ($(HAVE_MENU_COMMON), 1)
OBJ += menu/menu_driver.o \
menu/menu_setting.o \
menu/widgets/menu_filebrowser.o \
menu/widgets/menu_dialog.o \
menu/widgets/menu_input_bind_dialog.o \
menu/menu_cbs.o \
OBJ += menu/menu_setting.o \
menu/cbs/menu_cbs_ok.o \
menu/cbs/menu_cbs_cancel.o \
menu/cbs/menu_cbs_select.o \
@@ -839,14 +921,22 @@ ifeq ($(HAVE_MENU_COMMON), 1)
menu/menu_displaylist.o
endif
OBJ += input/input_osk.o
ifeq ($(HAVE_GFX_WIDGETS), 1)
OBJ += gfx/gfx_widgets.o \
gfx/widgets/gfx_widget_screenshot.o \
OBJ += gfx/gfx_widgets.o
ifeq ($(HAVE_SCREENSHOTS), 1)
OBJ += gfx/widgets/gfx_widget_screenshot.o
endif
OBJ += \
gfx/widgets/gfx_widget_volume.o \
gfx/widgets/gfx_widget_generic_message.o \
gfx/widgets/gfx_widget_libretro_message.o
gfx/widgets/gfx_widget_libretro_message.o \
gfx/widgets/gfx_widget_progress_message.o \
gfx/widgets/gfx_widget_load_content_animation.o
ifeq ($(HAVE_CHEEVOS), 1)
OBJ += gfx/widgets/gfx_widget_achievement_popup.o
endif
endif
ifeq ($(HAVE_OVERLAY), 1)
@@ -988,11 +1078,17 @@ endif
ifeq ($(HAVE_WAYLAND), 1)
OBJ += gfx/drivers_context/wayland_ctx.o \
input/common/wayland_common.o \
input/drivers/wayland_input.o \
gfx/common/wayland/xdg-shell.o \
gfx/common/wayland/xdg-shell-unstable-v6.o \
gfx/common/wayland/idle-inhibit-unstable-v1.o \
gfx/common/wayland/xdg-decoration-unstable-v1.o
ifeq ($(HAVE_VULKAN), 1)
OBJ += gfx/drivers_context/wayland_vk_ctx.o
endif
DEF_FLAGS += $(WAYLAND_CFLAGS) $(WAYLAND_CURSOR_CFLAGS)
LIBS += $(WAYLAND_LIBS) $(WAYLAND_CURSOR_LIBS)
@@ -1010,13 +1106,22 @@ ifeq ($(HAVE_DINPUT), 1)
HAVE_DX_COMMON = 1
LIBS += -ldinput8 -lole32
DEFINES += -DHAVE_DINPUT
OBJ += input/drivers/dinput.o \
input/drivers_joypad/dinput_joypad.o
OBJ += input/drivers/dinput.o
ifeq ($(HAVE_XINPUT), 1)
OBJ += input/drivers_joypad/dinput_hybrid_joypad.o
else
OBJ += input/drivers_joypad/dinput_joypad.o
endif
endif
ifeq ($(HAVE_XINPUT), 1)
DEFINES += -DHAVE_XINPUT
OBJ += input/drivers_joypad/xinput_joypad.o
ifeq ($(HAVE_DINPUT), 1)
OBJ += input/drivers_joypad/xinput_hybrid_joypad.o
else
OBJ += input/drivers_joypad/xinput_joypad.o
endif
endif
ifeq ($(HAVE_OPENDINGUX_FBDEV), 1)
@@ -1039,6 +1144,9 @@ ifeq ($(HAVE_X11), 1)
ifneq ($(HAVE_OPENGLES), 1)
OBJ += gfx/drivers_context/x_ctx.o
endif
ifeq ($(HAVE_VULKAN), 1)
OBJ += gfx/drivers_context/x_vk_ctx.o
endif
endif
ifeq ($(HAVE_XCB),1)
@@ -1101,7 +1209,10 @@ ifeq ($(HAVE_PARPORT), 1)
endif
ifneq ($(findstring Win32,$(OS)),)
OBJ += input/drivers/winraw_input.o
ifeq ($(HAVE_WINRAWINPUT), 1)
DEFINES += -DHAVE_WINRAWINPUT
OBJ += input/drivers/winraw_input.o
endif
endif
# Companion UI
@@ -1140,8 +1251,8 @@ endif
ifeq ($(HAVE_SIXEL), 1)
DEFINES += -DHAVE_SIXEL
INCLUDE_DIRS += -I/usr/include/sixel
OBJ += gfx/drivers/sixel_gfx.o gfx/drivers_font/sixel_font.o \
gfx/drivers_context/sixel_ctx.o
OBJ += gfx/drivers/sixel_gfx.o \
gfx/drivers_font/sixel_font.o
LIBS += $(SIXEL_LIBS)
DEF_FLAGS += $(SIXEL_CFLAGS)
endif
@@ -1160,8 +1271,7 @@ ifeq ($(HAVE_NETWORK_VIDEO), 1)
endif
DEFINES += -DHAVE_NETWORK_VIDEO
OBJ += gfx/drivers/network_gfx.o \
gfx/drivers_context/network_ctx.o
OBJ += gfx/drivers/network_gfx.o
endif
ifeq ($(HAVE_PLAIN_DRM), 1)
@@ -1545,12 +1655,15 @@ ifeq ($(HAVE_BUILTINGLSLANG), 1)
GLSLANG_SOURCES := \
gfx/drivers_shader/glslang.cpp \
$(wildcard $(DEPS_DIR)/glslang/glslang/SPIRV/*.cpp) \
$(DEPS_DIR)/glslang/glslang/SPIRV/GlslangToSpv.cpp \
$(DEPS_DIR)/glslang/glslang/SPIRV/InReadableOrder.cpp \
$(DEPS_DIR)/glslang/glslang/SPIRV/Logger.cpp \
$(DEPS_DIR)/glslang/glslang/SPIRV/SpvBuilder.cpp \
$(wildcard $(DEPS_DIR)/glslang/glslang/glslang/GenericCodeGen/*.cpp) \
$(wildcard $(DEPS_DIR)/glslang/glslang/OGLCompilersDLL/*.cpp) \
$(wildcard $(DEPS_DIR)/glslang/glslang/glslang/MachineIndependent/*.cpp) \
$(wildcard $(DEPS_DIR)/glslang/glslang/glslang/MachineIndependent/preprocessor/*.cpp) \
$(wildcard $(DEPS_DIR)/glslang/glslang/glslang/OSDependent/$(GLSLANG_PLATFORM)/*.cpp)
$(DEPS_DIR)/glslang/glslang/glslang/OSDependent/$(GLSLANG_PLATFORM)/ossource.cpp
ifneq ($(findstring Win32,$(OS)),)
DEFINES += -DENABLE_HLSL
@@ -1589,6 +1702,9 @@ endif
ifeq ($(WANT_WGL), 1)
OBJ += gfx/drivers_context/wgl_ctx.o
ifeq ($(HAVE_VULKAN),1)
OBJ += gfx/drivers_context/w_vk_ctx.o
endif
LIBS += -lcomctl32
endif
@@ -1660,7 +1776,6 @@ endif
ifeq ($(HAVE_BUILTINZLIB), 1)
HAVE_ZLIB_COMMON = 1
OBJ += $(DEPS_DIR)/libz/adler32.o \
$(DEPS_DIR)/libz/compress.o \
$(DEPS_DIR)/libz/libz-crc32.o \
$(DEPS_DIR)/libz/deflate.o \
$(DEPS_DIR)/libz/gzclose.o \
@@ -1671,7 +1786,6 @@ ifeq ($(HAVE_BUILTINZLIB), 1)
$(DEPS_DIR)/libz/inflate.o \
$(DEPS_DIR)/libz/inftrees.o \
$(DEPS_DIR)/libz/trees.o \
$(DEPS_DIR)/libz/uncompr.o \
$(DEPS_DIR)/libz/zutil.o
INCLUDE_DIRS += -I$(LIBRETRO_COMM_DIR)/include/compat/zlib
else ifeq ($(HAVE_ZLIB),1)
@@ -1681,7 +1795,8 @@ endif
ifeq ($(HAVE_ZLIB_COMMON), 1)
OBJ += $(LIBRETRO_COMM_DIR)/file/archive_file_zlib.o \
$(LIBRETRO_COMM_DIR)/streams/trans_stream_zlib.o
$(LIBRETRO_COMM_DIR)/streams/trans_stream_zlib.o \
$(LIBRETRO_COMM_DIR)/streams/rzip_stream.o
DEFINES += -DHAVE_ZLIB
HAVE_COMPRESSION = 1
@@ -1713,7 +1828,8 @@ ifeq ($(HAVE_CDROM), 1)
DEFINES += -DHAVE_CDROM
OBJ += $(LIBRETRO_COMM_DIR)/cdrom/cdrom.o \
$(LIBRETRO_COMM_DIR)/vfs/vfs_implementation_cdrom.o
$(LIBRETRO_COMM_DIR)/vfs/vfs_implementation_cdrom.o \
$(LIBRETRO_COMM_DIR)/media/media_detect_cd.o
endif
ifeq ($(HAVE_RTGA), 1)
@@ -1764,7 +1880,16 @@ endif
# Accessibility
ifeq ($(HAVE_ACCESSIBILITY), 1)
DEFINES += -DHAVE_ACCESSIBILITY
ifeq ($(HAVE_SAPI), 1)
ifneq ($(findstring Win32,$(OS)),)
LIBS += -lsapi
endif
endif
endif
# Things that depend on network availability
@@ -1780,6 +1905,7 @@ ifeq ($(HAVE_NETWORKING), 1)
tasks/task_http.o \
tasks/task_netplay_lan_scan.o \
tasks/task_netplay_nat_traversal.o \
tasks/task_bluetooth.o \
tasks/task_wifi.o \
tasks/task_pl_thumbnail_download.o \
tasks/task_netplay_find_content.o
@@ -1810,38 +1936,41 @@ ifeq ($(HAVE_NETWORKING), 1)
# Netplay
DEFINES += -DHAVE_NETWORK_CMD
OBJ += network/netplay/netplay_delta.o \
network/netplay/netplay_handshake.o \
network/netplay/netplay_init.o \
network/netplay/netplay_io.o \
network/netplay/netplay_keyboard.o \
network/netplay/netplay_sync.o \
network/netplay/netplay_discovery.o \
network/netplay/netplay_buf.o \
network/netplay/netplay_room_parse.o
network/netplay/netplay_handshake.o \
network/netplay/netplay_init.o \
network/netplay/netplay_io.o \
network/netplay/netplay_keyboard.o \
network/netplay/netplay_sync.o \
network/netplay/netplay_discovery.o \
network/netplay/netplay_buf.o \
network/netplay/netplay_room_parse.o
# RetroAchievements
ifeq ($(HAVE_CHEEVOS), 1)
DEFINES += -DHAVE_CHEEVOS
INCLUDE_DIRS += -Ideps/rcheevos/include
OBJ += cheevos-new/cheevos.o \
cheevos-new/badges.o \
cheevos-new/fixup.o \
cheevos-new/parser.o \
cheevos-new/hash.o \
OBJ += cheevos/cheevos.o \
cheevos/badges.o \
cheevos/fixup.o \
cheevos/parser.o \
cheevos/hash.o \
$(LIBRETRO_COMM_DIR)/formats/cdfs/cdfs.o \
deps/rcheevos/src/rcheevos/trigger.o \
deps/rcheevos/src/rcheevos/condset.o \
deps/rcheevos/src/rcheevos/condition.o \
deps/rcheevos/src/rcheevos/operand.o \
deps/rcheevos/src/rcheevos/term.o \
deps/rcheevos/src/rcheevos/expression.o \
deps/rcheevos/src/rcheevos/value.o \
deps/rcheevos/src/rcheevos/lboard.o \
deps/rcheevos/src/rcheevos/alloc.o \
deps/rcheevos/src/rcheevos/compat.o \
deps/rcheevos/src/rcheevos/condition.o \
deps/rcheevos/src/rcheevos/condset.o \
deps/rcheevos/src/rcheevos/consoleinfo.o \
deps/rcheevos/src/rcheevos/format.o \
deps/rcheevos/src/rcheevos/lboard.o \
deps/rcheevos/src/rcheevos/memref.o \
deps/rcheevos/src/rcheevos/operand.o \
deps/rcheevos/src/rcheevos/richpresence.o \
deps/rcheevos/src/rcheevos/runtime.o \
deps/rcheevos/src/rcheevos/runtime_progress.o \
deps/rcheevos/src/rcheevos/trigger.o \
deps/rcheevos/src/rcheevos/value.o \
deps/rcheevos/src/rhash/hash.o \
deps/rcheevos/src/rurl/url.o
ifeq ($(HAVE_LUA), 1)
@@ -1890,7 +2019,8 @@ ifeq ($(HAVE_NETWORKING), 1)
ifeq ($(HAVE_DISCORD), 1)
NEED_CXX_LINKER = 1
DEFINES += -DHAVE_DISCORD
INCLUDE_DIRS += -Ideps/discord-rpc/include/ -Ideps/discord-rpc/thirdparty/rapidjson-1.1.0/include/
INCLUDE_DIRS += -Ideps/discord-rpc/include \
-Ideps/discord-rpc/thirdparty/rapidjson-1.1.0/include/
ifneq ($(HAVE_THREADS), 1)
DEFINES += -DDISCORD_DISABLE_IO_THREAD
@@ -1898,8 +2028,7 @@ ifeq ($(HAVE_NETWORKING), 1)
OBJ += deps/discord-rpc/src/discord_rpc.o \
deps/discord-rpc/src/rpc_connection.o \
deps/discord-rpc/src/serialization.o \
discord/discord.o
deps/discord-rpc/src/serialization.o
ifneq ($(findstring Win32,$(OS)),)
OBJ += deps/discord-rpc/src/discord_register_win.o \
@@ -1947,8 +2076,7 @@ ifeq ($(HAVE_NETWORKING), 1)
endif
ifneq ($(findstring FPGA,$(OS)),)
OBJ += gfx/drivers/fpga_gfx.o \
gfx/drivers_context/fpga_ctx.o
OBJ += gfx/drivers/fpga_gfx.o
endif
ifneq ($(findstring Win32,$(OS)),)
@@ -1959,7 +2087,6 @@ ifneq ($(findstring Win32,$(OS)),)
ifeq ($(HAVE_GDI), 1)
OBJ += gfx/drivers/gdi_gfx.o \
gfx/drivers_context/gdi_ctx.o \
gfx/drivers_font/gdi_font.o \
gfx/drivers_display/gfx_display_gdi.o
LIBS += -lmsimg32
@@ -2075,8 +2202,14 @@ ifeq ($(HAVE_MATH_NEON), 1)
endif
ifeq ($(HAVE_VITAGL), 1)
DEFINES += -DHAVE_VITAGL -DTRANSPOSE_MATRICES
INCLUDE_DIRS += -I$(DEPS_DIR)/vitaGL/source
INCLUDE_DIRS += -I$(DEPS_DIR)/vitaShaRK/source
SOURCES := $(DEPS_DIR)/vitaShaRK/source
OBJ += $(patsubst %.c,%.o,$(foreach dir,$(SOURCES), $(wildcard $(dir)/*.c)))
endif
ifeq ($(HAVE_VITAGL), 1)
DEFINES += -DHAVE_VITAGL -DSTB_DXT_IMPLEMENTATION -DSKIP_ERROR_HANDLING -DHAVE_SHARK
INCLUDE_DIRS += -I$(DEPS_DIR)/vitaGL/source -I$(DEPS_DIR)/vitaShaRK/include
SOURCES := $(DEPS_DIR)/vitaGL/source $(DEPS_DIR)/vitaGL/source/utils
OBJ += $(patsubst %.c,%.o,$(foreach dir,$(SOURCES), $(wildcard $(dir)/*.c)))
endif
+15 -2
View File
@@ -51,8 +51,12 @@ DEFINES :=
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_RGUI -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB -DHAVE_CC_RESAMPLER
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA
#DEFINES += -DHAVE_NETWORKING -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_SOCKET_LEGACY -DHAVE_THREADS
DEFINES += -DHAVE_ZLIB -DHAVE_7ZIP -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA
DEFINES += -DHAVE_NETWORKING -DHAVE_CHEEVOS -DRC_DISABLE_LUA
DEFINES += -DHAVE_PATCH -DHAVE_RWAV
DEFINES += -DHAVE_SCREENSHOTS
DEFINES += -DHAVE_REWIND
#DEFINES += -DHAVE_SOCKET_LEGACY -DHAVE_THREADS
#-DHAVE_SSL -DHAVE_BUILTINMBEDTLS -DMBEDTLS_SSL_DEBUG_ALL
#ssl is currently incompatible with griffin due to use of the "static" flag on repeating functions that will conflict when included in one file
else
@@ -72,6 +76,11 @@ else
HAVE_XMB = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_PATCH = 1
HAVE_SCREENSHOTS = 1
HAVE_REWIND = 1
HAVE_AUDIOMIXER = 1
HAVE_RWAV = 1
#HAVE_NETWORKING = 1
#HAVE_CHEEVOS = 1
#HAVE_SOCKET_LEGACY = 1
@@ -135,11 +144,15 @@ CFLAGS += -I. \
-Ideps \
-Ideps/7zip \
-Ideps/stb \
-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
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11
+1
View File
@@ -38,6 +38,7 @@ OBJ := ctr/ctr_system.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/hash/rhash.o \
libretro-common/time/rtime.o \
file_path_str.o \
verbosity.o
+6 -7
View File
@@ -4,10 +4,14 @@ PACKAGE_NAME = retroarch
DEBUG ?= 0
HAVE_SCREENSHOTS = 1
HAVE_REWIND = 1
HAVE_7ZIP = 1
HAVE_AL = 1
# this freezes when switching back from menu
HAVE_ALSA = 0
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_BUILTINMBEDTLS = 1
HAVE_BUILTINZLIB = 1
HAVE_C99 = 1
@@ -62,6 +66,8 @@ HAVE_VIDEO_LAYOUT = 1
HAVE_XMB = 1
HAVE_ZLIB = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_CHEATS = 1
OS = Linux
TARGET = retroarch
@@ -158,13 +164,6 @@ $(OBJDIR)/%.o: %.m
@$(if $(Q), $(shell echo echo OBJC $<),)
$(CXX) $(OBJCFLAGS) $(DEFINES) -MMD -c -o $@ $<
.FORCE:
$(OBJDIR)/git_version.o: git_version.c .FORCE
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CC $<),)
$(CC) $(CFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.S $(HEADERS)
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo AS $<),)
+5
View File
@@ -9,8 +9,12 @@ OBJ :=
DEFINES := -DRARCH_INTERNAL -DHAVE_MAIN -s USE_PTHREADS=$(PTHREAD)
DEFINES += -DHAVE_FILTERS_BUILTIN
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_OVERLAY = 1
HAVE_GLSL = 1
HAVE_SCREENSHOTS = 1
HAVE_REWIND = 1
HAVE_AUDIOMIXER = 1
HAVE_VIDEO_LAYOUT = 0
HAVE_CC_RESAMPLER = 1
@@ -30,6 +34,7 @@ HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_STB_FONT = 1
HAVE_CONFIGFILE = 1
HAVE_CHEATS = 1
MEMORY = 134217728
+142 -18
View File
@@ -155,7 +155,7 @@ else ifeq ($(libogc_platform), 1)
endif
LIBDIRS += -L.
MACHDEP += -DGEKKO -mcpu=750 -meabi -mhard-float -DMSB_FIRST
MACHDEP += -DGEKKO -mcpu=750 -meabi -mhard-float
ifeq ($(platform), ngc)
LDFLAGS += $(MACHDEP) -Wl,-Map,$(notdir $(EXT_INTER_TARGET)).map
@@ -191,8 +191,9 @@ else ifeq ($(libogc_platform), 1)
CFLAGS += -DGEKKO -U__INT32_TYPE__ -U __UINT32_TYPE__ -D__INT32_TYPE__=int
HAVE_AUDIOMIXER := 1
HAVE_RUNAHEAD := 1
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_THREADS := 1
HAVE_RPNG := 1
@@ -204,11 +205,16 @@ else ifeq ($(libogc_platform), 1)
HAVE_VIDEO_LAYOUT := 0
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
RARCH_CONSOLE = 1
ifeq ($(platform), wii)
HAVE_AUDIOMIXER := 1
#HAVE_LANGEXTRA := 1
HAVE_WIIUSB_HID := 1
HAVE_RARCH_EXEC := 1
@@ -244,7 +250,9 @@ else ifeq ($(platform), xenon360)
HAVE_THREADS := 1
HAVE_GETOPT_LONG := 1
RARCH_CONSOLE = 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
# PSP
else ifeq ($(platform), psp1)
@@ -269,7 +277,9 @@ else ifeq ($(platform), psp1)
HAVE_KERNEL_PRX := 1
#HAVE_LANGEXTRA := 1
RARCH_CONSOLE = 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
ifeq ($(BUILD_PRX), 1)
LDFLAGS += $(addprefix -L,$(PSPSDK)/lib) -specs=$(PSPSDK)/lib/prxspecs -Wl,-q,-T$(PSPSDK)/lib/linkfile.prx $(LDFLAGS)
@@ -309,6 +319,8 @@ else ifeq ($(platform), vita)
LIBDIRS += -L.
LDFLAGS += -Wl,-q
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_LANGEXTRA := 1
HAVE_RPNG := 1
@@ -327,7 +339,9 @@ else ifeq ($(platform), vita)
HAVE_THREADS := 1
HAVE_LIBRETRODB := 1
RARCH_CONSOLE = 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
else ifeq ($(platform), windows_msvc6_x86)
HAVE_RPNG := 1
HAVE_RJPEG := 1
@@ -351,7 +365,9 @@ else ifeq ($(platform), windows_msvc6_x86)
HAVE_DYLIB := 1
HAVE_DYNAMIC := 1
HAVE_GRIFFIN_CPP := 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -395,7 +411,9 @@ else ifeq ($(platform), windows_msvc2003_x86)
HAVE_DYLIB := 1
HAVE_DYNAMIC := 1
HAVE_GRIFFIN_CPP := 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -445,7 +463,9 @@ else ifeq ($(platform), windows_msvc2005_x86)
HAVE_DYNAMIC := 1
HAVE_GRIFFIN_CPP := 1
HAVE_DIRECTX ?= 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -472,7 +492,10 @@ else ifeq ($(platform), windows_msvc2005_x86)
endif
else ifneq (,$(findstring windows_msvc2010,$(platform)))
HAVE_GDI := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
@@ -497,7 +520,9 @@ else ifneq (,$(findstring windows_msvc2010,$(platform)))
HAVE_GRIFFIN_CPP := 1
HAVE_RUNAHEAD := 1
HAVE_DIRECTX ?= 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -547,7 +572,10 @@ else ifneq (,$(findstring windows_msvc2010,$(platform)))
endif
else ifneq (,$(findstring windows_msvc2012,$(platform)))
HAVE_GDI := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
@@ -572,7 +600,9 @@ else ifneq (,$(findstring windows_msvc2012,$(platform)))
HAVE_GRIFFIN_CPP := 1
HAVE_RUNAHEAD := 1
HAVE_DIRECTX ?= 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -626,7 +656,10 @@ else ifneq (,$(findstring windows_msvc2012,$(platform)))
endif
else ifneq (,$(findstring windows_msvc2013,$(platform)))
HAVE_GDI := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
@@ -651,7 +684,9 @@ else ifneq (,$(findstring windows_msvc2013,$(platform)))
HAVE_GRIFFIN_CPP := 1
HAVE_RUNAHEAD := 1
HAVE_DIRECTX ?= 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -705,7 +740,10 @@ else ifneq (,$(findstring windows_msvc2013,$(platform)))
endif
else ifneq (,$(findstring windows_msvc2015,$(platform)))
HAVE_GDI := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
@@ -730,7 +768,9 @@ else ifneq (,$(findstring windows_msvc2015,$(platform)))
HAVE_GRIFFIN_CPP := 1
HAVE_RUNAHEAD := 1
HAVE_DIRECTX ?= 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -799,7 +839,10 @@ else ifneq (,$(findstring windows_msvc2015,$(platform)))
export LIB := $(LIB)
endif
else ifeq (qnx,$(platform))
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
@@ -823,7 +866,10 @@ else ifeq (qnx,$(platform))
HAVE_DYNAMIC := 1
HAVE_GRIFFIN_CPP := 0
WANT_GLSLANG := 0
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
CC=qcc -Vgcc_ntoarmv7le
CXX=QCC -Vgcc_ntoarmv7le
@@ -831,13 +877,16 @@ 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_FBO -DHAVE_GL_SYNC -DHAVE_GLSLANG -DHAVE_BUILTINGLSLANG -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_RUNAHEAD -DHAVE_GFX_WIDGETS -DHAVE_CONFIGFILE -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 -DRARCH_MOBILE
PLATCFLAGS += -DHAVE_SHADERPIPELINE -DHAVE_OPENGL -DHAVE_OPENGLES -DHAVE_OPENGLES2 -DHAVE_OZONE -DHAVE_CC_RESAMPLER -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_FBO -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
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.
LIBS += -lEGL -lbps -lscreen -lsocket -lm -lGLESv2 -lOpenAL
else ifneq (,$(findstring unix,$(platform)))
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
@@ -861,13 +910,56 @@ else ifneq (,$(findstring unix,$(platform)))
HAVE_DYNAMIC := 1
HAVE_GRIFFIN_CPP := 1
WANT_GLSLANG := 1
HAVE_CONFIGFILE := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
PLATCFLAGS += -D__MMX__ -D__SSE__ -DHAVE_OPENGL -DHAVE_OPENGL1 -DHAVE_GLSL -DHAVE_SHADERPIPELINE -DHAVE_OZONE -DHAVE_CC_RESAMPLER -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_FBO -DHAVE_GL_SYNC -DHAVE_SLANG -DHAVE_GLSLANG -DHAVE_BUILTINGLSLANG -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_RUNAHEAD -DHAVE_GFX_WIDGETS -DHAVE_CONFIGFILE -DHAVE_SPIRV_CROSS -DHAVE_STB_FONT -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DHAVE_VULKAN -DHAVE_XMB -DRARCH_INTERNAL -DWANT_GLSLANG -DHAVE_X11 -DHAVE_XCB -DHAVE_UDEV -DHAVE_PULSE
PLATCFLAGS += -D__MMX__ -D__SSE__ -DHAVE_OPENGL -DHAVE_OPENGL1 -DHAVE_GLSL -DHAVE_SHADERPIPELINE -DHAVE_OZONE -DHAVE_CC_RESAMPLER -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_FBO -DHAVE_GL_SYNC -DHAVE_SLANG -DHAVE_GLSLANG -DHAVE_BUILTINGLSLANG -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_RUNAHEAD -DHAVE_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
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.
LIBS += -ldl -lm -lpthread -lGL -ludev -lpulse -lX11 -lX11-xcb -lXxf86vm
else ifeq (dos,$(platform))
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 0
HAVE_NETWORK_CMD := 0
HAVE_NETPLAYDISCOVERY := 0
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 0
HAVE_XMB := 0
HAVE_STB_FONT := 1
HAVE_THREADS := 0
HAVE_LIBRETRODB := 1
HAVE_COMMAND := 1
HAVE_STDIN_CMD := 1
HAVE_CMD := 1
HAVE_DYLIB := 0
HAVE_DYNAMIC := 0
HAVE_GRIFFIN_CPP := 0
WANT_GLSLANG := 0
HAVE_CONFIGFILE := 1
HAVE_PATCH := 0
HAVE_CHEATS := 0
CC=i586-pc-msdosdjgpp-gcc
CXX=i586-pc-msdosdjgpp-g++
ifeq ($(DEBUG), 1)
LDFLAGS += -g
endif
PLATCFLAGS += -DHAVE_SHADERPIPELINE -DHAVE_CC_RESAMPLER -DRC_DISABLE_LUA -DHAVE_FBO -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_GFX_WIDGETS -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_SPIRV_CROSS -DHAVE_STB_FONT -DRARCH_INTERNAL -DHAVE_XCB
TARGET_NAME := retrodos
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
INCLUDE += -Ilibretro-common/include -Igfx/include -Ideps -Ideps/stb -Ideps/SPIRV-Cross -Ideps/glslang -I.
LIBS += -lm
LIBDIRS += -L.
endif
ifneq (,$(findstring msvc,$(platform)))
@@ -955,6 +1047,10 @@ ifeq ($(HAVE_IMAGEVIEWER), 1)
CFLAGS += -DHAVE_IMAGEVIEWER
endif
ifeq ($(HAVE_BSV_MOVIE), 1)
CFLAGS += -DHAVE_BSV_MOVIE
endif
ifeq ($(HAVE_RUNAHEAD), 1)
CFLAGS += -DHAVE_RUNAHEAD
endif
@@ -963,10 +1059,22 @@ ifeq ($(HAVE_7ZIP), 1)
CFLAGS += -DHAVE_7ZIP
endif
ifeq ($(HAVE_SCREENSHOTS), 1)
CFLAGS += -DHAVE_SCREENSHOTS
endif
ifeq ($(HAVE_REWIND), 1)
CFLAGS += -DHAVE_REWIND
endif
ifeq ($(HAVE_AUDIOMIXER), 1)
CFLAGS += -DHAVE_AUDIOMIXER
endif
ifeq ($(HAVE_RWAV), 1)
CFLAGS += -DHAVE_RWAV
endif
ifeq ($(HAVE_OVERLAY), 1)
CFLAGS += -DHAVE_OVERLAY
endif
@@ -1013,6 +1121,14 @@ ifeq ($(HAVE_LANGEXTRA), 1)
CFLAGS += -DHAVE_LANGEXTRA
endif
ifeq ($(HAVE_DSP_FILTER), 1)
CFLAGS += -DHAVE_DSP_FILTER
endif
ifeq ($(HAVE_VIDEO_FILTER), 1)
CFLAGS += -DHAVE_VIDEO_FILTER
endif
ifeq ($(HAVE_FILTERS_BUILTIN), 1)
CFLAGS += -DHAVE_FILTERS_BUILTIN
endif
@@ -1033,6 +1149,14 @@ ifeq ($(HAVE_CONFIGFILE), 1)
CFLAGS += -DHAVE_CONFIGFILE
endif
ifeq ($(HAVE_PATCH), 1)
CFLAGS += -DHAVE_PATCH
endif
ifeq ($(HAVE_CHEATS), 1)
CFLAGS += -DHAVE_CHEATS
endif
ifeq ($(HAVE_RSOUND), 1)
CFLAGS += -DHAVE_RSOUND
endif
+6
View File
@@ -23,6 +23,8 @@ DEFINES := -D__SWITCH__=1 -U__linux__ -U__linux -DGLM_FORCE_PURE=1 -DRARCH_CONSO
HAVE_DR_MP3 = 1
HAVE_TRANSLATE = 1
HAVE_SCREENSHOTS = 1
HAVE_REWIND = 1
HAVE_AUDIOMIXER = 1
HAVE_CC_RESAMPLER = 1
HAVE_MENU_COMMON = 1
@@ -33,10 +35,14 @@ HAVE_RBMP = 1
HAVE_ZLIB = 1
HAVE_BUILTINZLIB = 1
HAVE_LIBRETRODB = 1
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_MENU = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_RUNAHEAD = 1
HAVE_NETWORKING = 1
HAVE_NETPLAYDISCOVERY = 1
+8 -3
View File
@@ -11,6 +11,10 @@ WindowsSdkDir = C:\Program Files (x86)\Windows Kits\10\$(NOTHING)
WindowsSDKVersion := 10.0.14393.0\$(NOTHING)
VCINSTALLDIR := C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\$(NOTHING)
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_AUDIOMIXER := 1
HAVE_D3DX := 1
HAVE_D3D8 := 0
@@ -32,6 +36,7 @@ HAVE_WINMM := 1
HAVE_RPNG := 1
HAVE_ZLIB := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_MENU := 1
HAVE_RGUI := 1
HAVE_XMB := 1
@@ -60,6 +65,8 @@ HAVE_LANGEXTRA := 1
HAVE_CHEEVOS := 1
HAVE_SHADERPIPELINE := 1
HAVE_IMAGEVIEWER := 1
HAVE_BSV_MOVIE := 1
HAVE_CHEATS := 1
ifeq ($(HAVE_D3D8), 1)
D3D8_LIBS := -ld3d8
@@ -192,11 +199,9 @@ else
OBJ := $(filter-out $(BLACKLIST),$(OBJ))
endif
DEFINES += -DRARCH_INTERNAL -DHAVE_DYNAMIC -DJSON_STATIC
DEFINES += -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_REWIND -DHAVE_DYNAMIC -DJSON_STATIC
INCLUDE_DIRS += -I. -Igfx/include
#OBJ := version_git.o
OBJ := $(patsubst %rarch.o,%rarch.res,$(OBJ))
OBJ := $(addprefix $(BUILD_DIR)/,$(OBJ))
OBJ := $(OBJ:.o=.obj)
+3 -1
View File
@@ -15,7 +15,9 @@ LDFLAGS = -L$(PNDSDK)/usr/lib -Wl,-rpath,$(PNDSDK)/usr/lib
LIBS = -lGLESv2 -lEGL -ldl -lm -lpthread -lrt -lasound
DEFINES = -std=gnu99 -DHAVE_THREADS -DHAVE_GETOPT_LONG=1 -DHAVE_GRIFFIN -DRARCH_INTERNAL
DEFINES += -DHAVE_CONFIGFILE -D__ARM_ARCH_6__ -DHAVE_OPENGL -DHAVE_OPENGLES -DHAVE_OPENGLES2 -DHAVE_GLSL -DHAVE_DYNAMIC -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_OVERLAY -DHAVE_VIDEO_LAYOUT -DHAVE_ALSA -DHAVE_ZLIB -D__linux__
DEFINES += -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_SCREENSHOTS -DHAVE_REWIND -D__ARM_ARCH_6__ -DHAVE_OPENGL -DHAVE_OPENGLES -DHAVE_OPENGLES2 -DHAVE_GLSL -DHAVE_DYNAMIC -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_OVERLAY -DHAVE_VIDEO_LAYOUT -DHAVE_ALSA -DHAVE_ZLIB -D__linux__
DEFINES += -DHAVE_DSP_FILTER
DEFINES += -DHAVE_VIDEO_FILTER
DEFINES += $(INCDIRS)
DEFINES += -D__OPENPANDORA__ -DPANDORA
DEFINES += -marm -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize
+8 -1
View File
@@ -16,13 +16,16 @@ DEFINES :=
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
DEFINES += -DHAVE_GRIFFIN=1
DEFINES += -DHAVE_MENU -DHAVE_LIBRETRODB -DHAVE_CONFIGFILE
DEFINES += -DHAVE_MENU -DHAVE_LIBRETRODB -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_SCREENSHOTS -DHAVE_CHEATS
DEFINES += -DHAVE_REWIND
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_CC_RESAMPLER
ifeq ($(DEBUG), 1)
DEFINES += -DHAVE_NETLOGGER
endif
else
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_LANGEXTRA := 0
HAVE_RPNG := 1
@@ -42,6 +45,10 @@ else
HAVE_MENU := 1
HAVE_MENU_COMMON := 1
HAVE_CONFIGFILE := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_RGUI := 0
HAVE_MATERIALUI := 0
HAVE_XMB := 1
+19 -37
View File
@@ -1,28 +1,22 @@
BUILD_FOR_PCSX2 = 0
DEBUG = 0
HAVE_KERNEL_PRX = 0
HAVE_LOGGER = 0
HAVE_FILE_LOGGER = 0
HAVE_THREADS = 0
BIG_STACK = 0
MUTE_WARNINGS = 1
PS2_IP = 192.168.1.150
TARGET = retroarchps2.elf
TARGET_RELEASE = retroarchps2-release.elf
# Lib CDVD
CDVD_DIR = ps2/libcdvd
TARGET = retroarchps2-debug.elf
TARGET_RELEASE = retroarchps2.elf
# Compile the IRXs first
IRX_DIR = ps2/irx
IRX_FILES = $(wildcard ps2/irx/*.c)
ifeq ($(DEBUG), 1)
OPTIMIZE_LV := -O0 -g
RARCH_DEFINES += -DDEBUG
else
OPTIMIZE_LV := -O2
OPTIMIZE_LV := -O3
LDFLAGS := -s
endif
@@ -30,20 +24,20 @@ ifeq ($(MUTE_WARNINGS), 1)
DISABLE_WARNINGS := -Wno-sign-compare -Wno-unused -Wno-parentheses
endif
INCDIR = -I$(PS2DEV)/gsKit/include -I$(PS2SDK)/ports/include -I$(CDVD_DIR)/ee
INCDIR += -Ips2 -Ips2/include -Ilibretro-common/include -Ideps -Ideps/stb -Ideps/7zip
INCDIR = -I$(PS2DEV)/gsKit/include -I$(PS2SDK)/ports/include
INCDIR += -Ips2/include -Ilibretro-common/include -Ideps -Ideps/stb -Ideps/7zip
INCDIR += -Ideps/pthreads -Ideps/pthreads/platform/ps2 -Ideps/pthreads/platform/helper
GPVAL = -G0
CFLAGS = $(OPTIMIZE_LV) $(DISABLE_WARNINGS) -ffast-math -fsingle-precision-constant
ASFLAGS = $(CFLAGS)
RARCH_DEFINES += -DPS2 -DUSE_IOP_CTYPE_MACRO -D_MIPS_ARCH_R5900 -DHAVE_ZLIB -DHAVE_NO_BUILTINZLIB -DHAVE_RPNG -DHAVE_RJPEG
RARCH_DEFINES += -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_RGUI -DHAVE_FILTERS_BUILTIN -DHAVE_7ZIP -DHAVE_CC_RESAMPLER
RARCH_DEFINES += -DPS2 -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_REWIND -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DHAVE_RGUI
RARCH_DEFINES += -DHAVE_ZLIB -DHAVE_NO_BUILTINZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_FILTERS_BUILTIN -DHAVE_7ZIP -DHAVE_CC_RESAMPLER
RARCH_DEFINES += -DHAVE_DSP_FILTER
RARCH_DEFINES += -DHAVE_VIDEO_FILTER
LIBDIR =
LDFLAGS += -L$(PS2SDK)/ports/lib -L$(PS2DEV)/gsKit/lib -L$(PS2SDK)/ee/lib -L$(CDVD_DIR)/lib -L.
LIBS += -lretro_ps2 -lgskit -ldmakit -lgskit_toolkit -laudsrv -lmf -lpadx -lmtap -lmc -lhdd -lsdl -lfileXio -lz
LIBS += -lcdvdfs -lpatches -lpoweroff
LDFLAGS += -L$(PS2DEV)/gsKit/lib -L$(PS2SDK)/ports/lib -L.
# Lib cdvd is needed to get proper time
LIBS += -lretro_ps2 -lpatches -lpoweroff -lgskit -ldmakit -laudsrv -lpadx -lmtap -lz -lcdvd -lelf-loader
ifeq ($(BUILD_FOR_PCSX2), 1)
RARCH_DEFINES += -DBUILD_FOR_PCSX2
@@ -57,27 +51,17 @@ ifeq ($(HAVE_FILE_LOGGER), 1)
CFLAGS += -DHAVE_FILE_LOGGER
endif
ifeq ($(HAVE_KERNEL_PRX), 1)
CFLAGS += -DHAVE_KERNEL_PRX
endif
ifeq ($(BIG_STACK), 1)
CFLAGS += -DBIG_STACK
endif
CFLAGS += $(RARCH_DEFINES)
# All the IRX objects
EE_OBJS += $(IRX_DIR)/freemtap_irx.o $(IRX_DIR)/freepad_irx.o $(IRX_DIR)/freesio2_irx.o $(IRX_DIR)/iomanX_irx.o
EE_OBJS += $(IRX_DIR)/fileXio_irx.o $(IRX_DIR)/mcman_irx.o $(IRX_DIR)/mcserv_irx.o $(IRX_DIR)/usbd_irx.o
EE_OBJS += $(IRX_DIR)/usbhdfsd_irx.o $(IRX_DIR)/freesd_irx.o $(IRX_DIR)/audsrv_irx.o $(IRX_DIR)/poweroff_irx.o
EE_OBJS += $(IRX_DIR)/cdvd_irx.o
EE_OBJS += $(IRX_DIR)/cdfs_irx.o
# Missing objecst on the PS2SDK
EE_OBJS += ps2/compat_files/compat_ctype.o ps2/compat_files/time.o ps2/compat_files/ps2_devices.o
EE_OBJS += ps2/compat_files/fileXio_cdvd.o ps2/compat_files/ps2_descriptor.o
EE_OBJS += ps2/compat_files/ps2_devices.o
#EE_OBJS = griffin/griffin.o bootstrap/ps2/kernel_functions.o
EE_OBJS += griffin/griffin.o
EE_CFLAGS = $(CFLAGS)
@@ -106,7 +90,10 @@ prepare:
run:
ps2client -h $(PS2_IP) execee host:$(EE_BIN)
debug: clean prepare all run
sim:
PCSX2 --elf=$(PWD)/$(EE_BIN) --nogui
debug: clean all run
package:
ps2-packer $(EE_BIN) $(TARGET_RELEASE)
@@ -115,9 +102,4 @@ release: clean all package
#Include preferences
include $(PS2SDK)/samples/Makefile.pref
include $(PS2SDK)/samples/Makefile.eeglobal
#Linking with C++
$(EE_BIN): $(EE_OBJS) $(PS2SDK)/ee/startup/crt0.o
$(EE_CXX) $(EE_NO_CRT) -T$(PS2SDK)/ee/startup/linkfile $(EE_CXXFLAGS) \
-o $(EE_BIN) $(PS2SDK)/ee/startup/crt0.o $(CRTI_OBJ) $(CRTBEGIN_OBJ) $(EE_OBJS) $(CRTEND_OBJ) $(CRTN_OBJ) $(EE_LDFLAGS) $(EE_LIBS)
include $(PS2SDK)/samples/Makefile.eeglobal_cpp
+103
View File
@@ -0,0 +1,103 @@
BUILD_FOR_PCSX2 = 0
DEBUG = 0
HAVE_FILE_LOGGER = 0
MUTE_WARNINGS = 1
PS2_IP = 192.168.1.150
TARGET = raboot-debug.elf
TARGET_RELEASE = raboot.elf
# Compile the IRXs first
IRX_DIR = ps2/irx
ifeq ($(DEBUG), 1)
OPTIMIZE_LV := -O0 -g
RARCH_DEFINES += -DDEBUG
else
OPTIMIZE_LV := -O3
LDFLAGS := -s
endif
ifeq ($(MUTE_WARNINGS), 1)
DISABLE_WARNINGS := -Wno-sign-compare -Wno-unused -Wno-parentheses
endif
INCDIR = -Ilibretro-common/include
INCDIR += -Ips2/include
CFLAGS = $(OPTIMIZE_LV) $(DISABLE_WARNINGS) -ffast-math -fsingle-precision-constant
ASFLAGS = $(CFLAGS)
RARCH_DEFINES += -DPS2 -DIS_SALAMANDER -DRARCH_CONSOLE
LIBDIR =
LDFLAGS =
LIBS = -lm -lelf-loader -lpatches -lpoweroff
ifeq ($(BUILD_FOR_PCSX2), 1)
RARCH_DEFINES += -DBUILD_FOR_PCSX2
endif
ifeq ($(HAVE_FILE_LOGGER), 1)
CFLAGS += -DHAVE_FILE_LOGGER
endif
CFLAGS += $(RARCH_DEFINES)
EE_OBJS = frontend/frontend_salamander.o \
frontend/frontend_driver.o \
frontend/drivers/platform_ps2.o \
libretro-common/file/file_path.o \
libretro-common/file/file_path_io.o \
libretro-common/string/stdstring.o \
libretro-common/lists/string_list.o \
libretro-common/lists/dir_list.o \
libretro-common/file/retro_dirent.o \
libretro-common/encodings/encoding_utf.o \
libretro-common/compat/fopen_utf8.o \
libretro-common/compat/compat_strl.o \
libretro-common/compat/compat_strcasestr.o \
libretro-common/file/config_file.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/hash/rhash.o \
libretro-common/time/rtime.o \
file_path_str.o \
verbosity.o \
ps2/compat_files/ps2_devices.o
# Needed IRX objects
EE_OBJS += $(IRX_DIR)/freesio2_irx.o $(IRX_DIR)/iomanX_irx.o $(IRX_DIR)/cdfs_irx.o
EE_OBJS += $(IRX_DIR)/fileXio_irx.o $(IRX_DIR)/mcman_irx.o $(IRX_DIR)/mcserv_irx.o $(IRX_DIR)/usbd_irx.o
EE_OBJS += $(IRX_DIR)/usbhdfsd_irx.o $(IRX_DIR)/freesd_irx.o $(IRX_DIR)/poweroff_irx.o
EE_CFLAGS = $(CFLAGS)
EE_CXXFLAGS = $(CFLAGS)
EE_LDFLAGS = $(LDFLAGS)
EE_LIBS = $(LIBS)
EE_ASFLAGS = $(ASFLAGS)
EE_INCS = $(INCDIR)
EE_BIN = $(TARGET)
EE_GPVAL = $(GPVAL)
all: irxdir $(EE_BIN)
irxdir:
$(MAKE) -C $(IRX_DIR)
clean:
rm -f $(EE_BIN) $(EE_OBJS)
$(MAKE) -C $(IRX_DIR) clean
debug: clean all run
run:
ps2client -h $(PS2_IP) execee host:$(EE_BIN)
package:
ps2-packer $(EE_BIN) $(TARGET_RELEASE)
release: clean all package
#Include preferences
include $(PS2SDK)/samples/Makefile.pref
include $(PS2SDK)/samples/Makefile.eeglobal_cpp
+2 -2
View File
@@ -70,7 +70,7 @@ endif
PPU_SRCS = griffin/griffin.c
DEFINES += -DHAVE_VIDEO_LAYOUT
DEFINES += -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_GFX_WIDGETS -DHAVE_RGUI -DHAVE_XMB -DHAVE_OZONE -DHAVE_LIBRETRODB -DHAVE_MATERIALUI -DHAVE_SHADERPIPELINE -DRARCH_INTERNAL -DMSB_FIRST -DHAVE_OVERLAY -DHAVE_CC_RESAMPLER -DHAVE_STB_VORBIS -DHAVE_STB_FONT -DHAVE_RUNAHEAD -DHAVE_DR_MP3 -DHAVE_DR_FLAC
DEFINES += -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DHAVE_GFX_WIDGETS -DHAVE_RGUI -DHAVE_XMB -DHAVE_OZONE -DHAVE_LIBRETRODB -DHAVE_MATERIALUI -DHAVE_SHADERPIPELINE -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_REWIND -DHAVE_OVERLAY -DHAVE_CC_RESAMPLER -DHAVE_STB_VORBIS -DHAVE_STB_FONT -DHAVE_RUNAHEAD -DHAVE_DR_MP3 -DHAVE_DR_FLAC
DEFINES += -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
ifeq ($(DEX_BUILD), 1)
@@ -117,7 +117,7 @@ PPU_LDLIBS = $(FONT_LIBS) $(GL_LIBS) $(WHOLE_START) -lretro_ps3 $(WHOLE_END) -l
PPU_RANLIB = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ranlib.exe
DEFINES += -DHAVE_THREADS -DRARCH_CONSOLE -DHAVE_OPENGL -DHAVE_HEADSET -DHAVE_LANGEXTRA -DHAVE_OPENGLES -DHAVE_OPENGLES1 -DHAVE_PSGL -DHAVE_CG -DHAVE_CG_RUNTIME_COMPILER -DHAVE_SYSMODULES -DHAVE_SYSUTILS -DHAVE_RARCH_EXEC -DHAVE_RSOUND -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_7Z -D__CELLOS_LV2__ -DHAVE_NETWORKING=1 -DHAVE_SOCKET_LEGACY=1 -DHAVE_MOUSE -DHAVE_GRIFFIN=1 -DHAVE_MULTIMAN=1 -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) -DHAVE_FILTERS_BUILTIN -DHAVE_CHEEVOS -DRC_DISABLE_LUA
DEFINES += -DHAVE_THREADS -DRARCH_CONSOLE -DHAVE_OPENGL -DHAVE_HEADSET -DHAVE_LANGEXTRA -DHAVE_OPENGLES -DHAVE_OPENGLES1 -DHAVE_PSGL -DHAVE_CG -DHAVE_CG_RUNTIME_COMPILER -DHAVE_SYSMODULES -DHAVE_SYSUTILS -DHAVE_RARCH_EXEC -DHAVE_RSOUND -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_7Z -D__CELLOS_LV2__ -DHAVE_NETWORKING=1 -DHAVE_SOCKET_LEGACY=1 -DHAVE_MOUSE -DHAVE_GRIFFIN=1 -DHAVE_MULTIMAN=1 -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) -DHAVE_FILTERS_BUILTIN -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_DSP_FILTER -DHAVE_VIDEO_FILTER
#DEFINES += -DHAVE_IMAGEVIEWER
+1 -1
View File
@@ -108,7 +108,7 @@ PPU_LDLIBS = $(FONT_LIBS) $(GL_LIBS) $(WHOLE_START) -lretro_ps3 $(WHOLE_END) -l
PPU_RANLIB = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ranlib.exe
#DEFINES += -DHAVE_VIDEO_LAYOUT
DEFINES += -DHAVE_THREADS -DRARCH_CONSOLE -DHAVE_OPENGL -DHAVE_OVERLAY -DHAVE_HEADSET -DHAVE_OPENGLES -DHAVE_OPENGLES1 -DHAVE_PSGL -DHAVE_CG -DHAVE_CG_RUNTIME_COMPILER -DHAVE_SYSMODULES -DHAVE_SYSUTILS -DHAVE_RARCH_EXEC -DHAVE_RSOUND -DHAVE_ZLIB -DHAVE_RPNG -D__CELLOS_LV2__ -DHAVE_NETWORKING=1 -DHAVE_SOCKET_LEGACY=1 -DHAVE_MOUSE -DHAVE_GRIFFIN=1 -DHAVE_MULTIMAN=0 -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) -DHAVE_STB_VORBIS
DEFINES += -DHAVE_THREADS -DHAVE_SCREENSHOTS -DHAVE_REWIND -DHAVE_PATCH -DRARCH_CONSOLE -DHAVE_OPENGL -DHAVE_OVERLAY -DHAVE_HEADSET -DHAVE_OPENGLES -DHAVE_OPENGLES1 -DHAVE_PSGL -DHAVE_CG -DHAVE_CG_RUNTIME_COMPILER -DHAVE_SYSMODULES -DHAVE_SYSUTILS -DHAVE_RARCH_EXEC -DHAVE_RSOUND -DHAVE_ZLIB -DHAVE_RPNG -D__CELLOS_LV2__ -DHAVE_NETWORKING=1 -DHAVE_SOCKET_LEGACY=1 -DHAVE_MOUSE -DHAVE_GRIFFIN=1 -DHAVE_MULTIMAN=0 -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) -DHAVE_STB_VORBIS
ifeq ($(DEBUG), 1)
PPU_OPTIMIZE_LV := -O0 -g
+1
View File
@@ -59,6 +59,7 @@ PPU_SRCS = frontend/frontend_salamander.c \
libretro-common/streams/file_stream.c \
libretro-common/vfs/vfs_implementation.c \
libretro-common/file/config_file.c \
libretro-common/time/rtime.c \
file_path_str.c \
verbosity.c
+1 -1
View File
@@ -66,7 +66,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 -DRARCH_INTERNAL -DHAVE_MULTIMAN -DHAVE_RGUI
SHARED_FLAGS += -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -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 -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_REWIND -DHAVE_MULTIMAN -DHAVE_RGUI
CFLAGS += -std=gnu99 $(SHARED_FLAGS)
CXXFLAGS += $(SHARED_FLAGS)
+1
View File
@@ -70,6 +70,7 @@ OBJ = frontend/frontend_salamander.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/file/config_file.o \
libretro-common/time/rtime.c \
file_path_str.o \
verbosity.o
+1 -1
View File
@@ -25,7 +25,7 @@ INCDIR = deps deps/stb deps/7zip deps/pthreads deps/pthreads/platform/psp deps/p
CFLAGS = $(OPTIMIZE_LV) -G0 -std=gnu99 -ffast-math -fsingle-precision-constant
ASFLAGS = $(CFLAGS)
RARCH_DEFINES = -DPSP -D_MIPS_ARCH_ALLEGREX -DHAVE_LANGEXTRA -DHAVE_ZLIB -DHAVE_AUDIOMIXER -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_RGUI -DHAVE_FILTERS_BUILTIN -DHAVE_7ZIP -DHAVE_CC_RESAMPLER
RARCH_DEFINES = -DPSP -D_MIPS_ARCH_ALLEGREX -DHAVE_LANGEXTRA -DHAVE_ZLIB -DHAVE_AUDIOMIXER -DHAVE_RWAV -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_REWIND -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DHAVE_RGUI -DHAVE_FILTERS_BUILTIN -DHAVE_DSP_FILTER -DHAVE_VIDEO_FILTER -DHAVE_7ZIP -DHAVE_CC_RESAMPLER
LIBDIR =
LDFLAGS =
+1
View File
@@ -49,6 +49,7 @@ OBJS = frontend/frontend_salamander.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/hash/rhash.o \
libretro-common/time/rtime.o \
file_path_str.o \
verbosity.o \
bootstrap/psp1/kernel_functions.o
+8 -2
View File
@@ -6,16 +6,18 @@ WHOLE_ARCHIVE_LINK = 0
OBJ :=
DEFINES := -DSWITCH=1 -U__linux__ -U__linux -DRARCH_INTERNAL -DHAVE_DYNAMIC
DEFINES := -DSWITCH=1 -U__linux__ -U__linux -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_DYNAMIC -DHAVE_REWIND
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_NEON -DHAVE_MATERIALUI -DHAVE_LIBRETRODB -DHAVE_CC_RESAMPLER
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA
DEFINES += -DHAVE_RUNAHEAD -DHAVE_DYNAMIC
DEFINES += -DHAVE_CONFIGFILE
DEFINES += -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS
else
HAVE_REWIND = 1
HAVE_AUDIOMIXER = 1
HAVE_RWAV = 1
HAVE_CC_RESAMPLER = 1
HAVE_MENU_COMMON = 1
HAVE_RTGA = 1
@@ -24,6 +26,8 @@ else
HAVE_RBMP = 1
HAVE_RGUI = 1
HAVE_ZLIB = 1
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_BUILTINZLIB = 1
HAVE_LIBRETRODB = 1
HAVE_MATERIALUI = 0 # enable later?
@@ -34,6 +38,8 @@ else
HAVE_CONFIGFILE = 1
HAVE_RUNAHEAD = 1
HAVE_DYNAMIC = 1
HAVE_PATCH = 1
HAVE_CHEATS = 1
include Makefile.common
CFLAGS += $(DEF_FLAGS)
+28 -7
View File
@@ -1,5 +1,6 @@
TARGET := retroarch_vita
DEBUG ?= 0
HAVE_FILE_LOGGER = 1
GRIFFIN_BUILD = 0
WHOLE_ARCHIVE_LINK = 0
@@ -17,18 +18,22 @@ INCDIRS :=
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
DEFINES += -DHAVE_GRIFFIN=1
DEFINES += -DHAVE_NEON -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB DEFINES -DHAVE_KEYMAPPER
DEFINES += -DHAVE_REWIND
DEFINES += -DHAVE_NEON -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB DEFINES -DHAVE_KEYMAPPER
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_CC_RESAMPLER
ifeq ($(DEBUG), 1)
DEFINES += -DHAVE_NETLOGGER
endif
INCDIRS += -I. -Ideps/7zip -Ilibretro-common/include -Ilibretro-common/include/compat/zlib -Ideps/stb
else
HAVE_REWIND := 1
HAVE_UPDATE_ASSETS := 1
HAVE_ONLINE_UPDATER := 1
HAVE_NEON := 1
HAVE_MATH_NEON := 1
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_SCREENSHOTS := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_LANGEXTRA := 1
HAVE_RPNG := 1
@@ -45,6 +50,8 @@ else
HAVE_MENU_COMMON := 1
HAVE_GFX_WIDGETS := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
@@ -60,6 +67,7 @@ else
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
ifeq ($(DEBUG), 1)
HAVE_NETLOGGER = 1
@@ -87,7 +95,7 @@ AR := $(PREFIX)ar
OBJCOPY := $(PREFIX)objcopy
STRIP := $(PREFIX)strip
NM := $(PREFIX)nm
LD := $(CXX)
LD := $(CC)
LIBDIRS := -L.
@@ -102,7 +110,9 @@ ASFLAGS := $(CFLAGS)
LDFLAGS := -Wl,-q
CFLAGS += -Wall -ffast-math -g
CFLAGS += -DRARCH_INTERNAL -DRARCH_CONSOLE
CFLAGS += -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DRARCH_CONSOLE
CFLAGS += -DHAVE_DSP_FILTER
CFLAGS += -DHAVE_VIDEO_FILTER
CFLAGS += -DHAVE_FILTERS_BUILTIN $(DEFINES)
ifneq ($(PC_DEVELOPMENT_IP_ADDRESS),)
@@ -122,7 +132,7 @@ CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
VITA_LIBS := -lSceDisplay_stub -lSceGxm_stub -lSceNet_stub -lSceNetCtl_stub -lSceAppUtil_stub \
-lSceSysmodule_stub -lSceCtrl_stub -lSceHid_stub -lSceTouch_stub -lSceAudio_stub \
-lScePower_stub -lSceRtc_stub -lSceCommonDialog_stub -lScePgf_stub -lSceMotion_stub \
-lSceFiber_stub -lSceMotion_stub -lSceAppMgr_stub -lpthread -lpng -lz
-lSceFiber_stub -lSceMotion_stub -lSceAppMgr_stub -lstdc++ -lpthread -lpng -lz -lSceShaccCg_stub
LIBS := $(WHOLE_START) -lretro_vita $(WHOLE_END) $(VITA_LIBS) -lm -lc
@@ -155,7 +165,13 @@ all: $(TARGETS)
%.depend: ;
$(TARGET).elf: $(OBJ) libretro_vita.a
libSceShaccCg_stub.a:
mkdir -p deps/vitaShaRK/SceShaccCg
vita-libs-gen deps/vitaShaRK/SceShaccCg.yml deps/vitaShaRK/SceShaccCg
make -C deps/vitaShaRK/SceShaccCg ARCH=arm-vita-eabi
cp deps/vitaShaRK/SceShaccCg/libSceShaccCg_stub.a .
$(TARGET).elf: $(OBJ) libretro_vita.a libSceShaccCg_stub.a
$(LD) $(OBJ) $(LDFLAGS) $(LIBDIRS) $(LIBS) -o $@
%.velf: %.elf
@@ -171,7 +187,8 @@ $(TARGET).elf: $(OBJ) libretro_vita.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 -f $(OBJ) $(TARGET).elf $(TARGET).elf.unstripped.elf $(TARGET).velf $(TARGET).self param.sfo $(TARGET).vpk libSceShaccCg_stub.a
rm -rf deps/vitaShaRK/SceShaccCg
rm -f $(OBJ:.o=.depend)
# Useful for developers
@@ -181,6 +198,10 @@ vpksend: $(TARGET).vpk
send: $(TARGET).self
curl -T $< ftp://$(PSVITAIP):1337/ux0:/app/$(VITA_TITLE_ID)/eboot.bin
launch: $(TARGET).self
curl -T $< ftp://$(PSVITAIP):1337/ux0:/app/$(VITA_TITLE_ID)/eboot.bin
echo "launch $(VITA_TITLE_ID)" | nc ${PSVITAIP} 1338
.PHONY: clean all send vpksend
.PRECIOUS: %.depend
+1
View File
@@ -49,6 +49,7 @@ OBJS = frontend/frontend_salamander.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/hash/rhash.o \
libretro-common/time/rtime.o \
file_path_str.o \
verbosity.o
+1
View File
@@ -69,6 +69,7 @@ OBJ = frontend/frontend_salamander.o \
libretro-common/compat/compat_strcasestr.o \
libretro-common/compat/fopen_utf8.o \
libretro-common/file/config_file.o \
libretro-common/time/rtime.o \
file_path_str.o \
verbosity.o \
$(APP_BOOTER_DIR)/app_booter.binobj
+16 -4
View File
@@ -67,12 +67,14 @@ ifeq ($(SALAMANDER_BUILD),1)
OBJ += libretro-common/streams/file_stream.o
OBJ += libretro-common/vfs/vfs_implementation.o
OBJ += libretro-common/hash/rhash.o
OBJ += libretro-common/time/rtime.o
OBJ += file_path_str.o
OBJ += verbosity.o
# $(SALAMANDER_BUILD),0
else
DEFINES += -DRARCH_INTERNAL
DEFINES += -DHAVE_SCREENSHOTS
DEFINES += -DHAVE_KEYMAPPER
DEFINES += -DHAVE_ONLINE_UPDATER
DEFINES += -DHAVE_UPDATE_ASSETS
@@ -97,7 +99,7 @@ endif
OBJ += gfx/drivers/gx2_shaders/snowflake.o
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
OBJ += griffin/griffin.o griffin/griffin_cpp.o
INCDIRS += -Ilibretro-common/include/compat/zlib
# for stb, libfat, iosuhax
@@ -107,7 +109,9 @@ endif
INCDIRS += -Ideps/SPIRV-Cross
DEFINES += -DHAVE_AUDIOMIXER
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_RGUI -DHAVE_LIBRETRODB
DEFINES += -DHAVE_RWAV
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_MENU -DHAVE_GFX_WIDGETS -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DHAVE_RGUI -DHAVE_LIBRETRODB
DEFINES += -DHAVE_REWIND
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_CC_RESAMPLER
DEFINES += -DHAVE_SPIRV_CROSS -DHAVE_SLANG
DEFINES += -DHAVE_STB_FONT -DHAVE_STB_VORBIS -DHAVE_LANGEXTRA -DHAVE_LIBRETRODB -DHAVE_NETWORKING -DHAVE_NETPLAYDISCOVERY
@@ -120,13 +124,19 @@ endif
# $(GRIFFIN_BUILD),0
else
HAVE_SCREENSHOTS = 1
HAVE_AUDIOMIXER = 1
HAVE_RWAV = 1
HAVE_MENU_COMMON = 1
HAVE_GFX_WIDGETS = 1
HAVE_RTGA = 1
HAVE_RPNG = 1
HAVE_RJPEG = 1
HAVE_RBMP = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_REWIND = 1
HAVE_CHEATS = 1
HAVE_MENU = 1
HAVE_RGUI = 1
HAVE_7ZIP = 1
@@ -147,6 +157,8 @@ endif
HAVE_SPIRV_CROSS = 1
HAVE_SLANG = 1
HAVE_VIDEO_LAYOUT = 0
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
WANT_LIBFAT = 1
@@ -163,7 +175,7 @@ OBJ := $(addprefix $(BUILD_DIR)/,$(OBJ))
#-----------------------------
# Compile flags
DEFINES += -DWIIU -DMSB_FIRST -D__WUT__ -DHW_WUP -D__wiiu__
DEFINES += -DWIIU -D__WUT__ -DHW_WUP -D__wiiu__
DEFINES += -DHAVE_MAIN
DEFINES += -DRARCH_CONSOLE
@@ -184,7 +196,7 @@ CFLAGS := -mcpu=750 -meabi -mhard-float
CFLAGS += -ffast-math -Werror=implicit-function-declaration
CFLAGS += -ffunction-sections -fdata-sections
#CFLAGS += -fomit-frame-pointer -mword-relocations
#CFLAGS += -Wall
CFLAGS += -Wall
ifeq ($(DEBUG), 1)
CFLAGS += -O0 -g
+8 -8
View File
@@ -1,6 +1,8 @@
TARGET = retroarch.exe
HAVE_SCREENSHOTS = 1
HAVE_AUDIOMIXER = 1
HAVE_RWAV = 1
HAVE_DINPUT = 1
HAVE_XAUDIO = 1
HAVE_DSOUND = 1
@@ -15,8 +17,13 @@ HAVE_COMMAND = 1
HAVE_THREADS = 1
HAVE_MENU = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_REWIND = 1
HAVE_CHEATS = 1
HAVE_RGUI = 1
HAVE_MATERIALUI = 1
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_7ZIP = 1
HAVE_PYTHON = 0
DYNAMIC = 1
@@ -96,7 +103,7 @@ OS := Win32
OBJ :=
LIBS := -lm
DEFINES :=
DEFINES += -I. -Ilibretro-common/include -Ilibretro-common/include/compat/zlib -DRARCH_INTERNAL -DHAVE_OVERLAY
DEFINES += -I. -Ilibretro-common/include -Ilibretro-common/include/compat/zlib -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_OVERLAY
#DEFINES += -DHAVE_VIDEO_LAYOUT
LDFLAGS := -L. -static-libgcc
@@ -160,13 +167,6 @@ $(OBJDIR)/%.o: %.c
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CFLAGS) $(DEFINES) -MMD -c -o $@ $<
.FORCE:
$(OBJDIR)/git_version.o: git_version.c .FORCE
@-mkdir -p $(dir $@) || mkdir $(subst /,\,$(dir $@)) || echo .
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.cpp | $(dir $@)
@-mkdir -p $(dir $@) || mkdir $(subst /,\,$(dir $@)) || echo .
@$(if $(Q), $(shell echo echo CXX $<),)
+1
View File
@@ -1,5 +1,6 @@
[![Build Status](https://travis-ci.org/libretro/RetroArch.svg?branch=master)](https://travis-ci.org/libretro/RetroArch)
[![Coverity Scan Build Status](https://scan.coverity.com/projects/8936/badge.svg)](https://scan.coverity.com/projects/retroarch)
[![Crowdin](https://badges.crowdin.net/retroarch/localized.svg)](https://crowdin.com/project/retroarch)
# RetroArch
-9
View File
@@ -30,13 +30,4 @@
#include "config.h"
#endif
RETRO_BEGIN_DECLS
bool is_accessibility_enabled(void);
bool accessibility_speak_priority(const char* speak_text, int priority);
RETRO_END_DECLS
#endif
+3 -2
View File
@@ -30,7 +30,7 @@ RETRO_BEGIN_DECLS
#define AUDIO_MIXER_MAX_STREAMS 16
#define AUDIO_MIXER_MAX_SYSTEM_STREAMS (AUDIO_MIXER_MAX_STREAMS + 4)
#define AUDIO_MIXER_MAX_SYSTEM_STREAMS (AUDIO_MIXER_MAX_STREAMS + 5)
/* do not define more than (MAX_SYSTEM_STREAMS - MAX_STREAMS) */
enum audio_mixer_system_slot
@@ -38,7 +38,8 @@ enum audio_mixer_system_slot
AUDIO_MIXER_SYSTEM_SLOT_OK = AUDIO_MIXER_MAX_STREAMS,
AUDIO_MIXER_SYSTEM_SLOT_CANCEL,
AUDIO_MIXER_SYSTEM_SLOT_NOTICE,
AUDIO_MIXER_SYSTEM_SLOT_BGM
AUDIO_MIXER_SYSTEM_SLOT_BGM,
AUDIO_MIXER_SYSTEM_SLOT_ACHIEVEMENT_UNLOCK
};
enum audio_action
+4 -4
View File
@@ -66,7 +66,7 @@ static void alsa_worker_thread(void *data)
size_t fifo_size;
snd_pcm_sframes_t frames;
slock_lock(alsa->fifo_lock);
avail = fifo_read_avail(alsa->buffer);
avail = FIFO_READ_AVAIL(alsa->buffer);
fifo_size = MIN(alsa->period_size, avail);
fifo_read(alsa->buffer, buf, fifo_size);
scond_signal(alsa->cond);
@@ -256,7 +256,7 @@ static ssize_t alsa_thread_write(void *data, const void *buf, size_t size)
size_t write_amt;
slock_lock(alsa->fifo_lock);
avail = fifo_write_avail(alsa->buffer);
avail = FIFO_WRITE_AVAIL(alsa->buffer);
write_amt = MIN(avail, size);
fifo_write(alsa->buffer, buf, write_amt);
@@ -271,7 +271,7 @@ static ssize_t alsa_thread_write(void *data, const void *buf, size_t size)
{
size_t avail;
slock_lock(alsa->fifo_lock);
avail = fifo_write_avail(alsa->buffer);
avail = FIFO_WRITE_AVAIL(alsa->buffer);
if (avail == 0)
{
@@ -334,7 +334,7 @@ static size_t alsa_thread_write_avail(void *data)
if (alsa->thread_dead)
return 0;
slock_lock(alsa->fifo_lock);
val = fifo_write_avail(alsa->buffer);
val = FIFO_WRITE_AVAIL(alsa->buffer);
slock_unlock(alsa->fifo_lock);
return val;
}
+5 -5
View File
@@ -103,7 +103,7 @@ static OSStatus audio_write_cb(void *userdata,
slock_lock(dev->lock);
if (fifo_read_avail(dev->buffer) < write_avail)
if (FIFO_READ_AVAIL(dev->buffer) < write_avail)
{
*action_flags = kAudioUnitRenderAction_OutputIsSilence;
@@ -356,14 +356,14 @@ static ssize_t coreaudio_write(void *data, const void *buf_, size_t size)
slock_lock(dev->lock);
write_avail = fifo_write_avail(dev->buffer);
write_avail = FIFO_WRITE_AVAIL(dev->buffer);
if (write_avail > size)
write_avail = size;
fifo_write(dev->buffer, buf, write_avail);
buf += write_avail;
buf += write_avail;
written += write_avail;
size -= write_avail;
size -= write_avail;
if (dev->nonblock)
{
@@ -430,7 +430,7 @@ static size_t coreaudio_write_avail(void *data)
coreaudio_t *dev = (coreaudio_t*)data;
slock_lock(dev->lock);
avail = fifo_write_avail(dev->buffer);
avail = FIFO_WRITE_AVAIL(dev->buffer);
slock_unlock(dev->lock);
return avail;
+16 -16
View File
@@ -31,8 +31,8 @@ typedef struct ringbuffer
float *buffer;
size_t cap;
atomic_int len;
size_t writePtr;
size_t readPtr;
size_t write_ptr;
size_t read_ptr;
} ringbuffer_t;
typedef ringbuffer_t * ringbuffer_h;
@@ -44,7 +44,7 @@ static inline size_t rb_len(ringbuffer_h r)
static inline size_t rb_cap(ringbuffer_h r)
{
return (r->readPtr + r->cap - r->writePtr) % r->cap;
return (r->read_ptr + r->cap - r->write_ptr) % r->cap;
}
static inline size_t rb_avail(ringbuffer_h r)
@@ -54,17 +54,17 @@ static inline size_t rb_avail(ringbuffer_h r)
static inline void rb_advance_write(ringbuffer_h r)
{
r->writePtr = (r->writePtr + 1) % r->cap;
r->write_ptr = (r->write_ptr + 1) % r->cap;
}
static inline void rb_advance_write_n(ringbuffer_h r, size_t n)
{
r->writePtr = (r->writePtr + n) % r->cap;
r->write_ptr = (r->write_ptr + n) % r->cap;
}
static inline void rb_advance_read(ringbuffer_h r)
{
r->readPtr = (r->readPtr + 1) % r->cap;
r->read_ptr = (r->read_ptr + 1) % r->cap;
}
static inline void rb_len_add(ringbuffer_h r, int n)
@@ -79,11 +79,11 @@ static inline void rb_len_sub(ringbuffer_h r, int n)
static void rb_init(ringbuffer_h r, size_t cap)
{
r->buffer = malloc(cap * sizeof(float));
r->cap = cap;
r->buffer = malloc(cap * sizeof(float));
r->cap = cap;
atomic_init(&r->len, 0);
r->writePtr = 0;
r->readPtr = 0;
r->write_ptr = 0;
r->read_ptr = 0;
}
static void rb_free(ringbuffer_h r)
@@ -102,13 +102,13 @@ static void rb_write_data(ringbuffer_h r, const float *data, size_t len)
size_t first_write = n;
size_t rest_write = 0;
if (r->writePtr + n > r->cap)
if (r->write_ptr + n > r->cap)
{
first_write = r->cap - r->writePtr;
rest_write = n - first_write;
first_write = r->cap - r->write_ptr;
rest_write = n - first_write;
}
memcpy(r->buffer + r->writePtr, data, first_write*sizeof(float));
memcpy(r->buffer + r->write_ptr, data, first_write*sizeof(float));
memcpy(r->buffer, data + first_write, rest_write*sizeof(float));
rb_advance_write_n(r, n);
@@ -126,9 +126,9 @@ static void rb_read_data(ringbuffer_h r,
int i = 0;
for (; i < n/2; i++)
{
d0[i] = r->buffer[r->readPtr];
d0[i] = r->buffer[r->read_ptr];
rb_advance_read(r);
d1[i] = r->buffer[r->readPtr];
d1[i] = r->buffer[r->read_ptr];
rb_advance_read(r);
}
+8 -15
View File
@@ -155,7 +155,7 @@ static DWORD CALLBACK dsound_thread(PVOID data)
avail = write_avail(read_ptr, write_ptr, ds->buffer_size);
EnterCriticalSection(&ds->crit);
fifo_avail = fifo_read_avail(ds->buffer);
fifo_avail = FIFO_READ_AVAIL(ds->buffer);
LeaveCriticalSection(&ds->crit);
if (avail < CHUNK_SIZE || ((fifo_avail < CHUNK_SIZE) && (avail < ds->buffer_size / 2)))
@@ -303,7 +303,8 @@ static void dsound_free(void *data)
free(ds);
}
static BOOL CALLBACK enumerate_cb(LPGUID guid, LPCSTR desc, LPCSTR module, LPVOID context)
static BOOL CALLBACK enumerate_cb(LPGUID guid,
LPCSTR desc, LPCSTR module, LPVOID context)
{
union string_list_elem_attr attr;
struct string_list *list = (struct string_list*)context;
@@ -511,7 +512,7 @@ static ssize_t dsound_write(void *data, const void *buf_, size_t size)
size_t avail;
EnterCriticalSection(&ds->crit);
avail = fifo_write_avail(ds->buffer);
avail = FIFO_WRITE_AVAIL(ds->buffer);
if (avail > size)
avail = size;
@@ -530,7 +531,7 @@ static ssize_t dsound_write(void *data, const void *buf_, size_t size)
size_t avail;
EnterCriticalSection(&ds->crit);
avail = fifo_write_avail(ds->buffer);
avail = FIFO_WRITE_AVAIL(ds->buffer);
if (avail > size)
avail = size;
@@ -558,21 +559,13 @@ static size_t dsound_write_avail(void *data)
dsound_t *ds = (dsound_t*)data;
EnterCriticalSection(&ds->crit);
avail = fifo_write_avail(ds->buffer);
avail = FIFO_WRITE_AVAIL(ds->buffer);
LeaveCriticalSection(&ds->crit);
return avail;
}
static size_t dsound_buffer_size(void *data)
{
return 4 * 1024;
}
static bool dsound_use_float(void *data)
{
(void)data;
return false;
}
static size_t dsound_buffer_size(void *data) { return 4 * 1024; }
static bool dsound_use_float(void *data) { return false; }
static void *dsound_list_new(void *u)
{
+1 -1
View File
@@ -109,7 +109,7 @@ static INLINE void copy_swapped(uint32_t * restrict dst,
{
uint32_t s = *src++;
*dst++ = (s >> 16) | (s << 16);
}while(--size);
} while (--size);
}
static ssize_t gx_audio_write(void *data, const void *buf_, size_t size)
+5 -4
View File
@@ -25,6 +25,7 @@
#include <boolean.h>
#include <rthreads/rthreads.h>
#include "../../configuration.h"
#include "../../retroarch.h"
#include "../../verbosity.h"
@@ -96,13 +97,13 @@ static void shutdown_cb(void *data)
#endif
}
static int parse_ports(const char *audio_device,
char **dest_ports, const char **jports)
static int parse_ports(char **dest_ports, const char **jports)
{
int i;
char *save = NULL;
int parsed = 0;
char *audio_device_cpy = strdup(audio_device);
settings_t *settings = config_get_ptr();
char *audio_device_cpy = strdup(settings->arrays.audio_device);
const char *con = strtok_r(audio_device_cpy, ",", &save);
if (con)
@@ -203,7 +204,7 @@ static void *ja_init(const char *device,
}
}
parsed = parse_ports(device, dest_ports, jports);
parsed = parse_ports(dest_ports, jports);
if (jack_activate(jd->client) < 0)
{
+1 -1
View File
@@ -67,7 +67,7 @@ static void opensl_callback(SLAndroidSimpleBufferQueueItf bq, void *ctx)
#define GOTO_IF_FAIL(x) do { \
if ((res = (x)) != SL_RESULT_SUCCESS) \
goto error; \
} while(0)
} while (0)
static void sl_free(void *data)
{
+3 -3
View File
@@ -61,7 +61,7 @@ static void event_loop(uint64_t data)
sys_event_queue_receive(id, &event, SYS_NO_TIMEOUT);
sys_lwmutex_lock(&aud->lock, SYS_NO_TIMEOUT);
if (fifo_read_avail(aud->buffer) >= sizeof(out_tmp))
if (FIFO_READ_AVAIL(aud->buffer) >= sizeof(out_tmp))
fifo_read(aud->buffer, out_tmp, sizeof(out_tmp));
else
memset(out_tmp, 0, sizeof(out_tmp));
@@ -152,11 +152,11 @@ static ssize_t ps3_audio_write(void *data, const void *buf, size_t size)
if (aud->nonblock)
{
if (fifo_write_avail(aud->buffer) < size)
if (FIFO_WRITE_AVAIL(aud->buffer) < size)
return 0;
}
while (fifo_write_avail(aud->buffer) < size)
while (FIFO_WRITE_AVAIL(aud->buffer) < size)
sys_lwcond_wait(&aud->cond, 0);
sys_lwmutex_lock(&aud->lock, SYS_NO_TIMEOUT);
+4 -1
View File
@@ -105,8 +105,11 @@ static bool ra_alive(void *data)
static void ra_set_nonblock_state(void *data, bool state)
{
roar_t *roar = (roar_t*)data;
if (roar_vs_blocking(roar->vss, (state) ? ROAR_VS_FALSE : ROAR_VS_TRUE, NULL) < 0)
fprintf(stderr, "RetroArch [ERROR]: Can't set nonblocking. Will not be able to fast-forward.\n");
{
RARCH_ERR("Can't set nonblocking. Will not be able to fast-forward.\n");
}
roar->nonblocking = state;
}
+5 -6
View File
@@ -39,9 +39,8 @@ typedef struct rsd
static ssize_t rsound_audio_cb(void *data, size_t bytes, void *userdata)
{
rsd_t *rsd = (rsd_t*)userdata;
size_t avail = fifo_read_avail(rsd->buffer);
rsd_t *rsd = (rsd_t*)userdata;
size_t avail = FIFO_READ_AVAIL(rsd->buffer);
size_t write_size = bytes > avail ? avail : bytes;
fifo_read(rsd->buffer, data, write_size);
scond_signal(rsd->cond);
@@ -115,7 +114,7 @@ static ssize_t rs_write(void *data, const void *buf, size_t size)
rsd_callback_lock(rsd->rd);
avail = fifo_write_avail(rsd->buffer);
avail = FIFO_WRITE_AVAIL(rsd->buffer);
write_amt = avail > size ? size : avail;
fifo_write(rsd->buffer, buf, write_amt);
@@ -130,7 +129,7 @@ static ssize_t rs_write(void *data, const void *buf, size_t size)
size_t avail;
rsd_callback_lock(rsd->rd);
avail = fifo_write_avail(rsd->buffer);
avail = FIFO_WRITE_AVAIL(rsd->buffer);
if (avail == 0)
{
@@ -209,7 +208,7 @@ static size_t rs_write_avail(void *data)
if (rsd->has_error)
return 0;
rsd_callback_lock(rsd->rd);
val = fifo_write_avail(rsd->buffer);
val = FIFO_WRITE_AVAIL(rsd->buffer);
rsd_callback_unlock(rsd->rd);
return val;
}
+3 -3
View File
@@ -46,7 +46,7 @@ typedef struct sdl_audio
static void sdl_audio_cb(void *data, Uint8 *stream, int len)
{
sdl_audio_t *sdl = (sdl_audio_t*)data;
size_t avail = fifo_read_avail(sdl->buffer);
size_t avail = FIFO_READ_AVAIL(sdl->buffer);
size_t write_size = len > (int)avail ? avail : len;
fifo_read(sdl->buffer, stream, write_size);
@@ -151,7 +151,7 @@ static ssize_t sdl_audio_write(void *data, const void *buf, size_t size)
size_t avail, write_amt;
SDL_LockAudio();
avail = fifo_write_avail(sdl->buffer);
avail = FIFO_WRITE_AVAIL(sdl->buffer);
write_amt = avail > size ? size : avail;
fifo_write(sdl->buffer, buf, write_amt);
SDL_UnlockAudio();
@@ -166,7 +166,7 @@ static ssize_t sdl_audio_write(void *data, const void *buf, size_t size)
size_t avail;
SDL_LockAudio();
avail = fifo_write_avail(sdl->buffer);
avail = FIFO_WRITE_AVAIL(sdl->buffer);
if (avail == 0)
{
+30 -30
View File
@@ -29,12 +29,11 @@
#define BUFFER_COUNT 3
#endif
static const int sample_rate = 48000;
static const int max_num_samples = sample_rate;
static const int num_channels = 2;
#ifndef HAVE_LIBNX
static const size_t sample_buffer_size = ((max_num_samples * num_channels * sizeof(uint16_t)) + 0xfff) & ~0xfff;
#endif
#define SAMPLE_RATE 48000
#define NUM_CHANNELS 2
#define SAMPLE_BUFFER_SIZE (((SAMPLE_RATE * NUM_CHANNELS * sizeof(uint16_t)) + 0xfff) & ~0xfff)
typedef struct
{
@@ -51,24 +50,26 @@ typedef struct
#endif
} switch_audio_t;
#ifdef HAVE_LIBNX
static uint32_t switch_audio_data_size(void)
{
#ifdef HAVE_LIBNX
static const int framerate = 1000 / 30;
static const int samplecount = (sample_rate / framerate);
return (samplecount * num_channels * sizeof(uint16_t));
#else
return sample_buffer_size;
#endif
static const int framerate = 1000 / 30;
static const int sample_count = (SAMPLE_RATE / framerate);
return (sample_count * NUM_CHANNELS * sizeof(uint16_t));
}
#else
static uint32_t switch_audio_data_size(void)
{
return SAMPLE_BUFFER_SIZE;
}
#endif
static size_t switch_audio_buffer_size(void *data)
{
(void) data;
#ifdef HAVE_LIBNX
return (switch_audio_data_size() + 0xfff) & ~0xfff;
#else
return sample_buffer_size;
return SAMPLE_BUFFER_SIZE;
#endif
}
@@ -106,7 +107,7 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size)
num = 0;
#ifdef HAVE_LIBNX
if (audoutWaitPlayFinish(&swa->current_buffer, &num, U64_MAX) != 0) { }
if (audoutWaitPlayFinish(&swa->current_buffer, &num, UINT64_MAX) != 0) { }
#else
svcWaitSynchronization(&handle_idx, &swa->event, 1, 33333333);
svcResetSignal(swa->event);
@@ -123,11 +124,11 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size)
if (to_write > switch_audio_buffer_size(NULL) - swa->current_buffer->data_size)
to_write = switch_audio_buffer_size(NULL) - swa->current_buffer->data_size;
#ifndef HAVE_LIBNX
memcpy(((uint8_t*) swa->current_buffer->sample_data) + swa->current_buffer->data_size, buf, to_write);
#else
memcpy(((uint8_t*) swa->current_buffer->buffer) + swa->current_buffer->data_size, buf, to_write);
#endif
#ifndef HAVE_LIBNX
memcpy(((uint8_t*) swa->current_buffer->sample_data) + swa->current_buffer->data_size, buf, to_write);
#else
memcpy(((uint8_t*) swa->current_buffer->buffer) + swa->current_buffer->data_size, buf, to_write);
#endif
swa->current_buffer->data_size += to_write;
swa->current_buffer->buffer_size = switch_audio_buffer_size(NULL);
@@ -151,7 +152,6 @@ static bool switch_audio_stop(void *data)
/* TODO/FIXME - fix libnx codepath */
#ifndef HAVE_LIBNX
if (!swa->is_paused)
if (switch_audio_ipc_output_stop(swa) != 0)
return false;
@@ -211,8 +211,7 @@ static void switch_audio_free(void *data)
static bool switch_audio_use_float(void *data)
{
(void) data;
return false; /* force INT16 */
return false; /* force INT16 */
}
static size_t switch_audio_write_avail(void *data)
@@ -239,8 +238,8 @@ static void *switch_audio_init(const char *device,
unsigned *new_rate)
{
unsigned i;
char names[8][0x20];
#ifndef HAVE_LIBNX
char names[8][0x20];
uint32_t num_names = 0;
#endif
switch_audio_t *swa = (switch_audio_t*) calloc(1, sizeof(*swa));
@@ -267,16 +266,16 @@ static void *switch_audio_init(const char *device,
if (audio_ipc_open_output(names[0], &swa->output) != 0)
goto fail_audio_ipc;
if (swa->output.sample_rate != sample_rate)
if (swa->output.sample_rate != SAMPLE_RATE)
{
RARCH_ERR("expected sample rate of %d, got sample rate of %d\n",
sample_rate, swa->output.sample_rate);
SAMPLE_RATE, swa->output.sample_rate);
goto fail_audio_output;
}
if (swa->output.num_channels != num_channels)
if (swa->output.num_channels != NUM_CHANNELS)
{
RARCH_ERR("expected %d channels, got %d\n", num_channels,
RARCH_ERR("expected %d channels, got %d\n", NUM_CHANNELS,
swa->output.num_channels);
goto fail_audio_output;
}
@@ -308,7 +307,8 @@ static void *switch_audio_init(const char *device,
#else
swa->buffers[i].ptr = &swa->buffers[i].sample_data;
swa->buffers[i].unknown = 0;
swa->buffers[i].sample_data = alloc_pages(sample_buffer_size, switch_audio_buffer_size(NULL), NULL);
swa->buffers[i].sample_data = alloc_pages(SAMPLE_BUFFER_SIZE,
switch_audio_buffer_size(NULL), NULL);
if (!swa->buffers[i].sample_data)
goto fail_audio_output;
+4
View File
@@ -46,6 +46,10 @@ typedef AudioOutBuffer compat_audio_out_buffer;
#define switch_audio_ipc_output_stop(a) audoutStopAudioOut()
#define switch_audio_ipc_output_start(a) audoutStartAudioOut()
#ifndef UINT64_MAX
#define UINT64_MAX U64_MAX
#endif
#else
/* libtransistor definitions */
+2 -2
View File
@@ -241,7 +241,7 @@ static ssize_t libnx_audren_audio_write(void *data,
if (aud->nonblock)
{
while(written < size)
while (written < size)
{
written += libnx_audren_audio_append(
aud, buf + written, size - written);
@@ -251,7 +251,7 @@ static ssize_t libnx_audren_audio_write(void *data,
}
else
{
while(written < size)
while (written < size)
{
written += libnx_audren_audio_append(
aud, buf + written, size - written);
@@ -96,7 +96,7 @@ static void thread_job(void* data)
if (current_wavebuf)
{
mutexLock(&aud->fifo_lock);
available = aud->paused ? 0 : fifo_read_avail(aud->fifo);
available = aud->paused ? 0 : FIFO_READ_AVAIL(aud->fifo);
written_tmp = MIN(available, aud->buffer_size - current_size);
dstbuf = current_pool_ptr + current_size;
if (written_tmp > 0)
@@ -295,7 +295,7 @@ static ssize_t libnx_audren_thread_audio_write(void *data,
if (aud->nonblock)
{
mutexLock(&aud->fifo_lock);
available = fifo_write_avail(aud->fifo);
available = FIFO_WRITE_AVAIL(aud->fifo);
written = MIN(available, size);
if (written > 0)
fifo_write(aud->fifo, buf, written);
@@ -307,7 +307,7 @@ static ssize_t libnx_audren_thread_audio_write(void *data,
while (written < size && aud->running)
{
mutexLock(&aud->fifo_lock);
available = fifo_write_avail(aud->fifo);
available = FIFO_WRITE_AVAIL(aud->fifo);
if (available)
{
written_tmp = MIN(size - written, available);
@@ -407,7 +407,7 @@ static size_t libnx_audren_thread_audio_write_avail(void *data)
return 0;
mutexLock(&aud->fifo_lock);
available = fifo_write_avail(aud->fifo);
available = FIFO_WRITE_AVAIL(aud->fifo);
mutexUnlock(&aud->fifo_lock);
return available;
+10 -11
View File
@@ -35,10 +35,9 @@
#include "switch_audio_compat.h"
static const size_t thread_stack_size = 1024 * 8;
static const int thread_preferred_cpu = 2;
static const int channel_count = 2;
static const size_t sample_size = sizeof(uint16_t);
#define THREAD_STACK_SIZE (1024 * 8)
#define THREAD_PREFERRED_CPU 2
#define SAMPLE_SIZE sizeof(uint16_t)
#define AUDIO_BUFFER_COUNT 2
@@ -86,7 +85,7 @@ static void mainLoop(void* data)
if (!released_out_buffer)
{
#ifdef HAVE_LIBNX
rc = audoutWaitPlayFinish(&released_out_buffer, &released_out_count, U64_MAX);
rc = audoutWaitPlayFinish(&released_out_buffer, &released_out_count, UINT64_MAX);
#else
uint32_t handle_idx = 0;
svcWaitSynchronization(&handle_idx, &swa->event, 1, 33333333);
@@ -107,7 +106,7 @@ static void mainLoop(void* data)
compat_mutex_lock(&swa->fifoLock);
avail = fifo_read_avail(swa->fifo);
avail = FIFO_READ_AVAIL(swa->fifo);
to_write = MIN(avail, buf_avail);
if (to_write > 0)
{
@@ -207,7 +206,7 @@ static void *switch_thread_audio_init(const char *device, unsigned rate, unsigne
#endif
*new_rate = swa->sampleRate;
swa->fifoSize = (swa->sampleRate * sample_size * swa->latency) / 1000;
swa->fifoSize = (swa->sampleRate * SAMPLE_SIZE * swa->latency) / 1000;
for (i = 0; i < AUDIO_BUFFER_COUNT; i++)
{
@@ -248,7 +247,7 @@ static void *switch_thread_audio_init(const char *device, unsigned rate, unsigne
device, rate, swa->sampleRate, swa->latency, block_frames, swa->fifoSize);
svcGetThreadPriority(&prio, 0xffff8000);
rc = compat_thread_create(&swa->thread, &mainLoop, (void*)swa, thread_stack_size, prio - 1, thread_preferred_cpu);
rc = compat_thread_create(&swa->thread, &mainLoop, (void*)swa, THREAD_STACK_SIZE, prio - 1, THREAD_PREFERRED_CPU);
if (R_FAILED(rc))
{
@@ -349,7 +348,7 @@ static ssize_t switch_thread_audio_write(void *data, const void *buf, size_t siz
if (swa->nonblock)
{
compat_mutex_lock(&swa->fifoLock);
avail = fifo_write_avail(swa->fifo);
avail = FIFO_WRITE_AVAIL(swa->fifo);
written = MIN(avail, size);
if (written > 0)
fifo_write(swa->fifo, buf, written);
@@ -361,7 +360,7 @@ static ssize_t switch_thread_audio_write(void *data, const void *buf, size_t siz
while (written < size && swa->running)
{
compat_mutex_lock(&swa->fifoLock);
avail = fifo_write_avail(swa->fifo);
avail = FIFO_WRITE_AVAIL(swa->fifo);
if (avail == 0)
{
compat_mutex_unlock(&swa->fifoLock);
@@ -413,7 +412,7 @@ static size_t switch_thread_audio_write_avail(void *data)
switch_thread_audio_t* swa = (switch_thread_audio_t*)data;
compat_mutex_lock(&swa->fifoLock);
val = fifo_write_avail(swa->fifo);
val = FIFO_WRITE_AVAIL(swa->fifo);
compat_mutex_unlock(&swa->fifoLock);
return val;
+6 -6
View File
@@ -1525,7 +1525,7 @@ static struct pcm_params *pcm_params_get(unsigned int card, unsigned int device,
fd = open(fn, O_RDWR|O_NONBLOCK);
if (fd < 0)
{
fprintf(stderr, "cannot open device '%s'\n", fn);
RARCH_ERR("[TINYALSA] Cannot open device '%s'\n", fn);
goto err_open;
}
@@ -1538,7 +1538,7 @@ static struct pcm_params *pcm_params_get(unsigned int card, unsigned int device,
param_init(params);
if (ioctl(fd, SNDRV_PCM_IOCTL_HW_REFINE, params))
{
fprintf(stderr, "SNDRV_PCM_IOCTL_HW_REFINE error (%d)\n", errno);
RARCH_ERR("[TINYALSA] SNDRV_PCM_IOCTL_HW_REFINE error (%d)\n", errno);
goto err_hw_refine;
}
@@ -2019,7 +2019,7 @@ static int pcm_mmap_transfer(struct pcm *pcm, const void *buffer, unsigned int b
avail = pcm_avail_update(pcm);
if (avail < 0)
{
fprintf(stderr, "cannot determine available mmap frames");
RARCH_ERR("[TINYALSA] Cannot determine available mmap frames");
return err;
}
@@ -2029,7 +2029,7 @@ static int pcm_mmap_transfer(struct pcm *pcm, const void *buffer, unsigned int b
{
if (pcm_start(pcm) < 0)
{
fprintf(stderr, "start error: hw 0x%x app 0x%x avail 0x%x\n",
RARCH_ERR("[TINYALSA] Start error: hw 0x%x app 0x%x avail 0x%x\n",
(unsigned int)pcm->mmap_status->hw_ptr,
(unsigned int)pcm->mmap_control->appl_ptr,
avail);
@@ -2052,7 +2052,7 @@ static int pcm_mmap_transfer(struct pcm *pcm, const void *buffer, unsigned int b
{
pcm->prepared = 0;
pcm->running = 0;
fprintf(stderr, "wait error: hw 0x%x app 0x%x avail 0x%x\n",
RARCH_ERR("[TINYALSA] Wait error: hw 0x%x app 0x%x avail 0x%x\n",
(unsigned int)pcm->mmap_status->hw_ptr,
(unsigned int)pcm->mmap_control->appl_ptr,
avail);
@@ -2073,7 +2073,7 @@ static int pcm_mmap_transfer(struct pcm *pcm, const void *buffer, unsigned int b
frames = pcm_mmap_transfer_areas(pcm, (void *)buffer, offset, frames);
if (frames < 0)
{
fprintf(stderr, "write error: hw 0x%x app 0x%x avail 0x%x\n",
RARCH_ERR("[TINYALSA] Write error: hw 0x%x app 0x%x avail 0x%x\n",
(unsigned int)pcm->mmap_status->hw_ptr,
(unsigned int)pcm->mmap_control->appl_ptr,
avail);
+11 -11
View File
@@ -632,7 +632,7 @@ static ssize_t wasapi_write_sh_buffer(wasapi_t *w, const void * data, size_t siz
{
ssize_t written = -1;
UINT32 padding = 0;
size_t write_avail = fifo_write_avail(w->buffer);
size_t write_avail = FIFO_WRITE_AVAIL(w->buffer);
if (!write_avail)
{
@@ -643,7 +643,7 @@ static ssize_t wasapi_write_sh_buffer(wasapi_t *w, const void * data, size_t siz
if (FAILED(_IAudioClient_GetCurrentPadding(w->client, &padding)))
return -1;
read_avail = fifo_read_avail(w->buffer);
read_avail = FIFO_READ_AVAIL(w->buffer);
write_avail = w->engine_buffer_size - padding * w->frame_size;
written = read_avail < write_avail ? read_avail : write_avail;
if (written)
@@ -651,7 +651,7 @@ static ssize_t wasapi_write_sh_buffer(wasapi_t *w, const void * data, size_t siz
return -1;
}
write_avail = fifo_write_avail(w->buffer);
write_avail = FIFO_WRITE_AVAIL(w->buffer);
written = size < write_avail ? size : write_avail;
if (written)
fifo_write(w->buffer, data, written);
@@ -685,20 +685,20 @@ static ssize_t wasapi_write_sh(wasapi_t *w, const void * data, size_t size)
static ssize_t wasapi_write_sh_nonblock(wasapi_t *w, const void * data, size_t size)
{
size_t write_avail = 0;
ssize_t written = -1;
UINT32 padding = 0;
size_t write_avail = 0;
ssize_t written = -1;
UINT32 padding = 0;
if (w->buffer)
{
write_avail = fifo_write_avail(w->buffer);
write_avail = FIFO_WRITE_AVAIL(w->buffer);
if (!write_avail)
{
size_t read_avail = 0;
if (FAILED(_IAudioClient_GetCurrentPadding(w->client, &padding)))
return -1;
read_avail = fifo_read_avail(w->buffer);
read_avail = FIFO_READ_AVAIL(w->buffer);
write_avail = w->engine_buffer_size - padding * w->frame_size;
written = read_avail < write_avail ? read_avail : write_avail;
if (written)
@@ -706,7 +706,7 @@ static ssize_t wasapi_write_sh_nonblock(wasapi_t *w, const void * data, size_t s
return -1;
}
write_avail = fifo_write_avail(w->buffer);
write_avail = FIFO_WRITE_AVAIL(w->buffer);
written = size < write_avail ? size : write_avail;
if (written)
fifo_write(w->buffer, data, written);
@@ -731,7 +731,7 @@ static ssize_t wasapi_write_sh_nonblock(wasapi_t *w, const void * data, size_t s
static ssize_t wasapi_write_ex(wasapi_t *w, const void * data, size_t size, DWORD ms)
{
ssize_t written = 0;
size_t write_avail = fifo_write_avail(w->buffer);
size_t write_avail = FIFO_WRITE_AVAIL(w->buffer);
if (!write_avail)
{
@@ -890,7 +890,7 @@ static size_t wasapi_write_avail(void *wh)
UINT32 padding = 0;
if (w->buffer)
return fifo_write_avail(w->buffer);
return FIFO_WRITE_AVAIL(w->buffer);
if (FAILED(_IAudioClient_GetCurrentPadding(w->client, &padding)))
return 0;
+11 -14
View File
@@ -187,7 +187,8 @@ static bool ax_audio_start(void* data, bool is_shutdown)
/* Set back to playing on enough buffered data */
if (ax->written > AX_AUDIO_SAMPLE_LOAD)
{
AXSetMultiVoiceCurrentOffset(ax->mvoice, ax_audio_limit(ax->pos - ax->written));
AXSetMultiVoiceCurrentOffset(ax->mvoice,
ax_audio_limit(ax->pos - ax->written));
AXSetMultiVoiceState(ax->mvoice, AX_VOICE_STATE_PLAYING);
}
@@ -206,9 +207,12 @@ static ssize_t ax_audio_write(void* data, const void* buf, size_t size)
return 0;
if (count > AX_AUDIO_MAX_FREE)
count = AX_AUDIO_MAX_FREE;
count = AX_AUDIO_MAX_FREE;
count_avail = ((ax->written > AX_AUDIO_MAX_FREE) ? 0 : (AX_AUDIO_MAX_FREE - ax->written));
count_avail = (
(ax->written > AX_AUDIO_MAX_FREE)
? 0
: (AX_AUDIO_MAX_FREE - ax->written));
if (ax->nonblock)
{
@@ -219,7 +223,7 @@ static ssize_t ax_audio_write(void* data, const void* buf, size_t size)
else if (count_avail < count)
{
/* Sync, wait for free memory */
while(AXIsMultiVoiceRunning(ax->mvoice) && (count_avail < count))
while (AXIsMultiVoiceRunning(ax->mvoice) && (count_avail < count))
{
OSYieldThread(); /* Gives threads with same priority time to run */
count_avail = (ax->written > AX_AUDIO_MAX_FREE ? 0 : (AX_AUDIO_MAX_FREE - ax->written));
@@ -301,24 +305,17 @@ static void ax_audio_set_nonblock_state(void* data, bool state)
ax->nonblock = state;
}
static bool ax_audio_use_float(void* data)
{
(void)data;
return false;
}
static bool ax_audio_use_float(void* data) { return false; }
static size_t ax_audio_write_avail(void* data)
{
ax_audio_t* ax = (ax_audio_t*)data;
size_t ret = AX_AUDIO_COUNT - ax->written;
return (ret < AX_AUDIO_SAMPLE_COUNT ? 0 : ret);
}
static size_t ax_audio_buffer_size(void* data)
{
(void)data;
return AX_AUDIO_COUNT;
}
@@ -335,6 +332,6 @@ audio_driver_t audio_ax =
"AX",
NULL, /* device_list_new */
NULL, /* device_list_free */
NULL, /* write_avail */
NULL, /* buffer_size */
ax_audio_write_avail,
ax_audio_buffer_size,
};
+2 -6
View File
@@ -410,16 +410,12 @@ static void xa_set_nonblock_state(void *data, bool state)
static bool xa_start(void *data, bool is_shutdown)
{
xa_t *xa = (xa_t*)data;
xa_t *xa = (xa_t*)data;
xa->is_paused = false;
return true;
}
static bool xa_use_float(void *data)
{
(void)data;
return true;
}
static bool xa_use_float(void *data) { return true; }
static void xa_free(void *data)
{
+9 -10
View File
@@ -765,13 +765,13 @@ static void rsnd_drain(rsound_t *rd)
delta /= 1000000;
/* Calculates the amount of data we have in our virtual buffer. Only used to calculate delay. */
slock_lock(rd->thread.mutex);
rd->bytes_in_buffer = (int)((int64_t)rd->total_written + (int64_t)fifo_read_avail(rd->fifo_buffer) - delta);
rd->bytes_in_buffer = (int)((int64_t)rd->total_written + (int64_t)FIFO_READ_AVAIL(rd->fifo_buffer) - delta);
slock_unlock(rd->thread.mutex);
}
else
{
slock_lock(rd->thread.mutex);
rd->bytes_in_buffer = fifo_read_avail(rd->fifo_buffer);
rd->bytes_in_buffer = FIFO_READ_AVAIL(rd->fifo_buffer);
slock_unlock(rd->thread.mutex);
}
}
@@ -789,7 +789,7 @@ static size_t rsnd_fill_buffer(rsound_t *rd, const char *buf, size_t size)
return 0;
slock_lock(rd->thread.mutex);
if ( fifo_write_avail(rd->fifo_buffer) >= size )
if (FIFO_WRITE_AVAIL(rd->fifo_buffer) >= size)
{
slock_unlock(rd->thread.mutex);
break;
@@ -886,7 +886,7 @@ static size_t rsnd_get_ptr(rsound_t *rd)
{
int ptr;
slock_lock(rd->thread.mutex);
ptr = fifo_read_avail(rd->fifo_buffer);
ptr = FIFO_READ_AVAIL(rd->fifo_buffer);
slock_unlock(rd->thread.mutex);
return ptr;
@@ -1060,7 +1060,7 @@ static int rsnd_update_server_info(rsound_t *rd)
int delay = rsd_delay(rd);
int delta = (int)(client_ptr - serv_ptr);
slock_lock(rd->thread.mutex);
delta += fifo_read_avail(rd->fifo_buffer);
delta += FIFO_READ_AVAIL(rd->fifo_buffer);
slock_unlock(rd->thread.mutex);
RSD_DEBUG("[RSound] Delay: %d, Delta: %d.\n", delay, delta);
@@ -1116,7 +1116,7 @@ static void rsnd_thread ( void * thread_data )
/* If the buffer is empty or we've stopped the stream, jump out of this for loop */
slock_lock(rd->thread.mutex);
if ( fifo_read_avail(rd->fifo_buffer) < rd->backend_info.chunk_size || !rd->thread_active )
if (FIFO_READ_AVAIL(rd->fifo_buffer) < rd->backend_info.chunk_size || !rd->thread_active)
{
slock_unlock(rd->thread.mutex);
break;
@@ -1382,11 +1382,10 @@ int rsd_exec(rsound_t *rsound)
fcntl(rsound->conn.socket, F_SETFL, O_NONBLOCK);
#endif
// Flush the buffer
if ( fifo_read_avail(rsound->fifo_buffer) > 0 )
/* Flush the buffer */
if (FIFO_READ_AVAIL(rsound->fifo_buffer) > 0 )
{
char buffer[fifo_read_avail(rsound->fifo_buffer)];
char buffer[FIFO_READ_AVAIL(rsound->fifo_buffer)];
fifo_read(rsound->fifo_buffer, buffer, sizeof(buffer));
if ( rsnd_send_chunk(fd, buffer, sizeof(buffer), 1) != (ssize_t)sizeof(buffer) )
{
+78
View File
@@ -0,0 +1,78 @@
/* RetroArch - A frontend for libretro.
*
* 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 __BLUETOOTH_DRIVER__H
#define __BLUETOOTH_DRIVER__H
#include <stdint.h>
#include <boolean.h>
#include <retro_common_api.h>
#include <lists/string_list.h>
RETRO_BEGIN_DECLS
enum rarch_bluetooth_ctl_state
{
RARCH_BLUETOOTH_CTL_NONE = 0,
RARCH_BLUETOOTH_CTL_DESTROY,
RARCH_BLUETOOTH_CTL_DEINIT,
RARCH_BLUETOOTH_CTL_FIND_DRIVER,
RARCH_BLUETOOTH_CTL_INIT
};
typedef struct bluetooth_driver
{
void *(*init)(void);
void (*free)(void *data);
void (*scan)(void *data);
void (*get_devices)(void *data, struct string_list *list);
bool (*device_is_connected)(void *data, unsigned i);
void (*device_get_sublabel)(void *data, char *s, unsigned i, size_t len);
bool (*connect_device)(void *data, unsigned i);
const char *ident;
} bluetooth_driver_t;
extern bluetooth_driver_t bluetooth_bluetoothctl;
extern bluetooth_driver_t bluetooth_bluez;
/**
* config_get_bluetooth_driver_options:
*
* Get an enumerated list of all bluetooth driver names,
* separated by '|'.
*
* Returns: string listing of all bluetooth driver names,
* separated by '|'.
**/
const char* config_get_bluetooth_driver_options(void);
void driver_bluetooth_scan(void);
void driver_bluetooth_get_devices(struct string_list *list);
bool driver_bluetooth_device_is_connected(unsigned i);
void driver_bluetooth_device_get_sublabel(char *s, unsigned i, size_t len);
bool driver_bluetooth_connect_device(unsigned i);
bool bluetooth_driver_ctl(enum rarch_bluetooth_ctl_state state, void *data);
RETRO_END_DECLS
#endif
+215
View File
@@ -0,0 +1,215 @@
/* RetroArch - A frontend for libretro.
*
* 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 <compat/strl.h>
#include <configuration.h>
#include "../bluetooth_driver.h"
#include "../../retroarch.h"
typedef struct
{
bool bluetoothctl_cache[256];
unsigned bluetoothctl_counter[256];
struct string_list* lines;
char command[256];
} bluetoothctl_t;
static void *bluetoothctl_init(void)
{
return calloc(1, sizeof(bluetoothctl_t));
}
static void bluetoothctl_free(void *data)
{
if (data)
free(data);
}
static void bluetoothctl_scan(void *data)
{
char line[512];
union string_list_elem_attr attr;
FILE *dev_file = NULL;
bluetoothctl_t *btctl = (bluetoothctl_t*) data;
attr.i = 0;
if (btctl->lines)
free(btctl->lines);
btctl->lines = string_list_new();
pclose(popen("bluetoothctl -- power on", "r"));
pclose(popen("bluetoothctl --timeout 10 scan on", "r"));
runloop_msg_queue_push(msg_hash_to_str(MSG_BLUETOOTH_SCAN_COMPLETE),
1, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT,
MESSAGE_QUEUE_CATEGORY_INFO);
dev_file = popen("bluetoothctl -- devices", "r");
while (fgets(line, 512, dev_file))
{
size_t len = strlen(line);
if (len > 0 && line[len-1] == '\n')
line[--len] = '\0';
string_list_append(btctl->lines, line, attr);
}
pclose(dev_file);
}
static void bluetoothctl_get_devices(void *data, struct string_list* devices)
{
unsigned i;
union string_list_elem_attr attr;
bluetoothctl_t *btctl = (bluetoothctl_t*) data;
attr.i = 0;
if (!btctl->lines)
return;
for (i = 0; i < btctl->lines->size; i++)
{
char device[64];
const char *line = btctl->lines->elems[i].data;
/* bluetoothctl devices outputs lines of the format:
* $ bluetoothctl devices
* 'Device (mac address) (device name)'
*/
strlcpy(device, line+24, sizeof(device));
string_list_append(devices, device, attr);
}
}
static bool bluetoothctl_device_is_connected(void *data, unsigned i)
{
bluetoothctl_t *btctl = (bluetoothctl_t*) data;
char ln[512] = {0};
char device[18] = {0};
const char *line = btctl->lines->elems[i].data;
FILE *command_file = NULL;
if (btctl->bluetoothctl_counter[i] == 60)
{
static struct string_list* list = NULL;
btctl->bluetoothctl_counter[i] = 0;
list = string_split(line, " ");
if (!list)
return false;
if (list->size == 0)
{
string_list_free(list);
return false;
}
strlcpy(device, list->elems[1].data, sizeof(device));
string_list_free(list);
snprintf(btctl->command, sizeof(btctl->command), "\
bluetoothctl -- info %s | grep 'Connected: yes'",
device);
command_file = popen(btctl->command, "r");
while (fgets(ln, 512, command_file))
{
btctl->bluetoothctl_cache[i] = true;
return true;
}
pclose(command_file);
btctl->bluetoothctl_cache[i] = false;
}
else
{
btctl->bluetoothctl_counter[i]++;
return btctl->bluetoothctl_cache[i];
}
return false;
}
static bool bluetoothctl_connect_device(void *data, unsigned idx)
{
unsigned i;
bluetoothctl_t *btctl = (bluetoothctl_t*) data;
char device[18] = {0};
const char *line = btctl->lines->elems[idx].data;
static struct string_list* list = NULL;
/* bluetoothctl devices outputs lines of the format:
* $ bluetoothctl devices
* 'Device (mac address) (device name)'
*/
list = string_split(line, " ");
if (!list)
return false;
if (list->size == 0)
{
string_list_free(list);
return false;
}
strlcpy(device, list->elems[1].data, sizeof(device));
string_list_free(list);
snprintf(btctl->command, sizeof(btctl->command), "\
bluetoothctl -- trust %s",
device);
pclose(popen(btctl->command, "r"));
snprintf(btctl->command, sizeof(btctl->command), "\
bluetoothctl -- pair %s",
device);
pclose(popen(btctl->command, "r"));
snprintf(btctl->command, sizeof(btctl->command), "\
bluetoothctl -- connect %s",
device);
pclose(popen(btctl->command, "r"));
btctl->bluetoothctl_counter[idx] = 0;
return true;
}
static void bluetoothctl_device_get_sublabel(
void *data, char *s, unsigned i, size_t len)
{
bluetoothctl_t *btctl = (bluetoothctl_t*) data;
/* bluetoothctl devices outputs lines of the format:
* $ bluetoothctl devices
* 'Device (mac address) (device name)'
*/
const char *line = btctl->lines->elems[i].data;
strlcpy(s, line+7, 18);
}
bluetooth_driver_t bluetooth_bluetoothctl = {
bluetoothctl_init,
bluetoothctl_free,
bluetoothctl_scan,
bluetoothctl_get_devices,
bluetoothctl_device_is_connected,
bluetoothctl_device_get_sublabel,
bluetoothctl_connect_device,
"bluetoothctl",
};
+616
View File
@@ -0,0 +1,616 @@
/* RetroArch - A frontend for libretro.
*
* 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 <dbus/dbus.h>
#include <compat/strl.h>
#include <configuration.h>
#include <retro_timers.h>
#include <string/stdstring.h>
#include "../bluetooth_driver.h"
#include "../../retroarch.h"
typedef struct
{
/* object path. usually looks like /org/bluez/hci0/dev_AA_BB_CC_DD_EE_FF
* technically unlimited, but should be enough */
char path[128];
/* for display purposes 64 bytes should be enough */
char name[64];
/* MAC address, 17 bytes */
char address[18];
/* freedesktop.org icon name
* See bluez/src/dbus-common.c
* Can be NULL */
char icon[64];
int connected;
int paired;
int trusted;
} device_info_t;
#define VECTOR_LIST_TYPE device_info_t
#define VECTOR_LIST_NAME device_info
#include "../../libretro-common/lists/vector_list.c"
#undef VECTOR_LIST_TYPE
#undef VECTOR_LIST_NAME
typedef struct
{
struct device_info_vector_list *devices;
char adapter[256];
DBusConnection* dbus_connection;
bool bluez_cache[256];
int bluez_cache_counter[256];
} bluez_t;
static void *bluez_init (void)
{
return calloc(1, sizeof(bluez_t));
}
static void bluez_free (void *data)
{
if (data)
free(data);
}
static int
set_bool_property (
bluez_t *bluez,
const char *path,
const char *arg_adapter,
const char *arg_property,
int value)
{
DBusError err;
DBusMessage *message, *reply;
DBusMessageIter req_iter, req_subiter;
dbus_error_init(&err);
message = dbus_message_new_method_call(
"org.bluez",
path,
"org.freedesktop.DBus.Properties",
"Set"
);
if (!message)
return 1;
dbus_message_iter_init_append(message, &req_iter);
if (!dbus_message_iter_append_basic(
&req_iter, DBUS_TYPE_STRING, &arg_adapter))
goto fault;
if (!dbus_message_iter_append_basic(
&req_iter, DBUS_TYPE_STRING, &arg_property))
goto fault;
if (!dbus_message_iter_open_container(
&req_iter, DBUS_TYPE_VARIANT,
DBUS_TYPE_BOOLEAN_AS_STRING, &req_subiter))
goto fault;
if (!dbus_message_iter_append_basic(
&req_subiter, DBUS_TYPE_BOOLEAN, &value))
goto fault;
if (!dbus_message_iter_close_container(
&req_iter, &req_subiter))
goto fault;
reply = dbus_connection_send_with_reply_and_block(bluez->dbus_connection,
message, 1000, &err);
if (!reply)
goto fault;
dbus_message_unref(reply);
dbus_message_unref(message);
return 0;
fault:
dbus_message_iter_abandon_container_if_open(&req_iter, &req_subiter);
dbus_message_unref(message);
return 1;
}
static int get_bool_property(
bluez_t *bluez,
const char *path,
const char *arg_adapter,
const char *arg_property,
int *value)
{
DBusMessage *message, *reply;
DBusError err;
DBusMessageIter root_iter, variant_iter;
dbus_error_init(&err);
message = dbus_message_new_method_call( "org.bluez", path,
"org.freedesktop.DBus.Properties", "Get");
if (!message)
return 1;
if (!dbus_message_append_args(message,
DBUS_TYPE_STRING, &arg_adapter,
DBUS_TYPE_STRING, &arg_property,
DBUS_TYPE_INVALID))
return 1;
reply = dbus_connection_send_with_reply_and_block(bluez->dbus_connection,
message, 1000, &err);
dbus_message_unref(message);
if (!reply)
return 1;
if (!dbus_message_iter_init(reply, &root_iter))
return 1;
if (DBUS_TYPE_VARIANT != dbus_message_iter_get_arg_type(&root_iter))
return 1;
dbus_message_iter_recurse(&root_iter, &variant_iter);
dbus_message_iter_get_basic(&variant_iter, value);
dbus_message_unref(reply);
return 0;
}
static int adapter_discovery (bluez_t *bluez, const char *method)
{
DBusMessage *message = dbus_message_new_method_call(
"org.bluez", bluez->adapter,
"org.bluez.Adapter1", method);
if (!message)
return 1;
if (!dbus_connection_send(bluez->dbus_connection, message, NULL))
return 1;
dbus_connection_flush(bluez->dbus_connection);
dbus_message_unref(message);
return 0;
}
static int get_managed_objects (bluez_t *bluez, DBusMessage **reply)
{
DBusMessage *message;
DBusError err;
dbus_error_init(&err);
message = dbus_message_new_method_call("org.bluez", "/",
"org.freedesktop.DBus.ObjectManager", "GetManagedObjects");
if (!message)
return 1;
*reply = dbus_connection_send_with_reply_and_block(bluez->dbus_connection,
message, -1, &err);
/* if (!reply) is done by the caller in this one */
dbus_message_unref(message);
return 0;
}
static int device_method (bluez_t *bluez, const char *path, const char *method)
{
DBusMessage *message, *reply;
DBusError err;
dbus_error_init(&err);
message = dbus_message_new_method_call( "org.bluez", path,
"org.bluez.Device1", method);
if (!message)
return 1;
reply = dbus_connection_send_with_reply_and_block(bluez->dbus_connection,
message, 10000, &err);
if (!reply)
return 1;
dbus_connection_flush(bluez->dbus_connection);
dbus_message_unref(message);
return 0;
}
static int get_default_adapter(bluez_t *bluez, DBusMessage *reply)
{
/* "...an application would discover the available adapters by
* performing a ObjectManager.GetManagedObjects call and look for any
* returned objects with an “org.bluez.Adapter1″ interface.
* The concept of a default adapter was always a bit fuzzy and the
* value could’t be changed, so if applications need something like it
* they could e.g. just pick the first adapter they encounter in the
* GetManagedObjects reply."
* -- http://www.bluez.org/bluez-5-api-introduction-and-porting-guide/
*/
DBusMessageIter root_iter;
DBusMessageIter dict_1_iter, dict_2_iter;
DBusMessageIter array_1_iter, array_2_iter;
char *obj_path, *interface_name;
/* a{oa{sa{sv}}} */
if (!dbus_message_iter_init(reply, &root_iter))
return 1;
/* a */
if (DBUS_TYPE_ARRAY != dbus_message_iter_get_arg_type(&root_iter))
return 1;
dbus_message_iter_recurse(&root_iter, &array_1_iter);
do
{
/* a{...} */
if (DBUS_TYPE_DICT_ENTRY != dbus_message_iter_get_arg_type(&array_1_iter))
return 1;
dbus_message_iter_recurse(&array_1_iter, &dict_1_iter);
/* a{o...} */
if (DBUS_TYPE_OBJECT_PATH != dbus_message_iter_get_arg_type(&dict_1_iter))
return 1;
dbus_message_iter_get_basic(&dict_1_iter, &obj_path);
if (!dbus_message_iter_next(&dict_1_iter))
return 1;
/* a{oa} */
if (DBUS_TYPE_ARRAY != dbus_message_iter_get_arg_type(&dict_1_iter))
return 1;
dbus_message_iter_recurse(&dict_1_iter, &array_2_iter);
do
{
/* empty array? */
if (DBUS_TYPE_INVALID ==
dbus_message_iter_get_arg_type(&array_2_iter))
continue;
/* a{oa{...}} */
if (DBUS_TYPE_DICT_ENTRY !=
dbus_message_iter_get_arg_type(&array_2_iter))
return 1;
dbus_message_iter_recurse(&array_2_iter, &dict_2_iter);
/* a{oa{s...}} */
if (DBUS_TYPE_STRING !=
dbus_message_iter_get_arg_type(&dict_2_iter))
return 1;
dbus_message_iter_get_basic(&dict_2_iter, &interface_name);
if (string_is_equal(interface_name, "org.bluez.Adapter1"))
{
strlcpy(bluez->adapter, obj_path, 256);
return 0;
}
} while (dbus_message_iter_next(&array_2_iter));
} while (dbus_message_iter_next(&array_1_iter));
/* Couldn't find an adapter */
return 1;
}
static int read_scanned_devices (bluez_t *bluez, DBusMessage *reply)
{
device_info_t device;
DBusMessageIter root_iter;
DBusMessageIter dict_1_iter, dict_2_iter, dict_3_iter;
DBusMessageIter array_1_iter, array_2_iter, array_3_iter;
DBusMessageIter variant_iter;
char *obj_path, *interface_name, *interface_property_name;
char *found_device_address, *found_device_name, *found_device_icon;
/* a{oa{sa{sv}}} */
if (!dbus_message_iter_init(reply, &root_iter))
return 1;
/* a */
if (DBUS_TYPE_ARRAY != dbus_message_iter_get_arg_type(&root_iter))
return 1;
dbus_message_iter_recurse(&root_iter, &array_1_iter);
do
{
/* a{...} */
if (DBUS_TYPE_DICT_ENTRY !=
dbus_message_iter_get_arg_type(&array_1_iter))
return 1;
dbus_message_iter_recurse(&array_1_iter, &dict_1_iter);
/* a{o...} */
if (DBUS_TYPE_OBJECT_PATH !=
dbus_message_iter_get_arg_type(&dict_1_iter))
return 1;
dbus_message_iter_get_basic(&dict_1_iter, &obj_path);
if (!dbus_message_iter_next(&dict_1_iter))
return 1;
/* a{oa} */
if (DBUS_TYPE_ARRAY !=
dbus_message_iter_get_arg_type(&dict_1_iter))
return 1;
dbus_message_iter_recurse(&dict_1_iter, &array_2_iter);
do
{
/* empty array? */
if (DBUS_TYPE_INVALID ==
dbus_message_iter_get_arg_type(&array_2_iter))
continue;
/* a{oa{...}} */
if (DBUS_TYPE_DICT_ENTRY !=
dbus_message_iter_get_arg_type(&array_2_iter))
return 1;
dbus_message_iter_recurse(&array_2_iter, &dict_2_iter);
/* a{oa{s...}} */
if (DBUS_TYPE_STRING !=
dbus_message_iter_get_arg_type(&dict_2_iter))
return 1;
dbus_message_iter_get_basic(&dict_2_iter, &interface_name);
if (!string_is_equal(interface_name, "org.bluez.Device1"))
continue;
memset(&device, 0, sizeof(device));
strlcpy(device.path, obj_path, 128);
if (!dbus_message_iter_next(&dict_2_iter))
return 1;
/* a{oa{sa}} */
if (DBUS_TYPE_ARRAY != dbus_message_iter_get_arg_type(&dict_2_iter))
return 1;
dbus_message_iter_recurse(&dict_2_iter, &array_3_iter);
do {
/* empty array? */
if (DBUS_TYPE_INVALID ==
dbus_message_iter_get_arg_type(&array_3_iter))
continue;
/* a{oa{sa{...}}} */
if (DBUS_TYPE_DICT_ENTRY !=
dbus_message_iter_get_arg_type(&array_3_iter))
return 1;
dbus_message_iter_recurse(&array_3_iter, &dict_3_iter);
/* a{oa{sa{s...}}} */
if (DBUS_TYPE_STRING !=
dbus_message_iter_get_arg_type(&dict_3_iter))
return 1;
dbus_message_iter_get_basic(&dict_3_iter,
&interface_property_name);
if (!dbus_message_iter_next(&dict_3_iter))
return 1;
/* a{oa{sa{sv}}} */
if (DBUS_TYPE_VARIANT !=
dbus_message_iter_get_arg_type(&dict_3_iter))
return 1;
/* Below, "Alias" property is used instead of "Name".
* "This value ("Name") is only present for
* completeness. It is better to always use
* the Alias property when displaying the
* devices name."
* -- bluez/doc/device-api.txt
*/
/* DBUS_TYPE_VARIANT is a container type */
dbus_message_iter_recurse(&dict_3_iter, &variant_iter);
if (string_is_equal(interface_property_name, "Address"))
{
dbus_message_iter_get_basic(&variant_iter,
&found_device_address);
strlcpy(device.address, found_device_address, 18);
}
else if (string_is_equal(interface_property_name, "Alias"))
{
dbus_message_iter_get_basic(&variant_iter,
&found_device_name);
strlcpy(device.name, found_device_name, 64);
}
else if (string_is_equal(interface_property_name, "Icon"))
{
dbus_message_iter_get_basic(&variant_iter,
&found_device_icon);
strlcpy(device.icon, found_device_icon, 64);
}
else if (string_is_equal(interface_property_name, "Connected"))
{
dbus_message_iter_get_basic(&variant_iter,
&device.connected);
}
else if (string_is_equal(interface_property_name, "Paired"))
{
dbus_message_iter_get_basic(&variant_iter,
&device.paired);
}
else if (string_is_equal(interface_property_name, "Trusted"))
{
dbus_message_iter_get_basic(&variant_iter,
&device.trusted);
}
} while (dbus_message_iter_next(&array_3_iter));
if (!device_info_vector_list_append(bluez->devices, device))
return 1;
} while (dbus_message_iter_next(&array_2_iter));
} while (dbus_message_iter_next(&array_1_iter));
return 0;
}
static void bluez_dbus_connect(bluez_t *bluez)
{
DBusError err;
dbus_error_init(&err);
bluez->dbus_connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
}
static void bluez_dbus_disconnect(bluez_t *bluez)
{
if (!bluez->dbus_connection)
return;
dbus_connection_close(bluez->dbus_connection);
dbus_connection_unref(bluez->dbus_connection);
bluez->dbus_connection = NULL;
}
static void bluez_scan(void *data)
{
DBusError err;
DBusMessage *reply;
bluez_t *bluez = (bluez_t*)data;
bluez_dbus_connect(bluez);
if (get_managed_objects(bluez, &reply))
return;
if (!reply)
return;
/* Get default adapter */
if (get_default_adapter(bluez, reply))
return;
dbus_message_unref(reply);
/* Power device on */
if (set_bool_property(bluez, bluez->adapter,
"org.bluez.Adapter1", "Powered", 1))
return;
/* Start discovery */
if (adapter_discovery(bluez, "StartDiscovery"))
return;
retro_sleep(10000);
/* Stop discovery */
if (adapter_discovery(bluez, "StopDiscovery"))
return;
/* Get scanned devices */
if (get_managed_objects(bluez, &reply))
return;
if (!reply)
return;
if (bluez->devices)
device_info_vector_list_free(bluez->devices);
bluez->devices = device_info_vector_list_new();
read_scanned_devices(bluez, reply);
dbus_message_unref(reply);
bluez_dbus_disconnect(bluez);
}
static void bluez_get_devices(void *data,
struct string_list* devices_string_list)
{
unsigned i;
union string_list_elem_attr attr;
bluez_t *bluez = (bluez_t*)data;
attr.i = 0;
if (!bluez->devices)
return;
for (i = 0; i < bluez->devices->count; i++)
{
char device[64];
strlcpy(device, bluez->devices->data[i].name, sizeof(device));
string_list_append(devices_string_list, device, attr);
}
}
static bool bluez_device_is_connected(void *data, unsigned i)
{
int value;
bluez_t *bluez = (bluez_t*)data;
if (bluez->bluez_cache_counter[i] == 60)
{
bluez->bluez_cache_counter[i] = 0;
bluez_dbus_connect(bluez);
/* Device disappeared */
if (get_bool_property(bluez, bluez->devices->data[i].path,
"org.bluez.Device1", "Connected", &value))
value = false;
bluez_dbus_disconnect(bluez);
bluez->bluez_cache[i] = value;
return value;
}
bluez->bluez_cache_counter[i]++;
return bluez->bluez_cache[i];
}
static void bluez_device_get_sublabel(
void *data, char *s, unsigned i, size_t len)
{
bluez_t *bluez = (bluez_t*)data;
strlcpy(s, bluez->devices->data[i].address, len);
}
static bool bluez_connect_device(void *data, unsigned i)
{
bluez_t *bluez = (bluez_t*)data;
bluez_dbus_connect(bluez);
/* Trust the device */
if (set_bool_property(bluez, bluez->devices->data[i].path,
"org.bluez.Device1", "Trusted", 1))
return false;
/* Pair the device */
device_method(bluez, bluez->devices->data[i].path, "Pair");
/* Can be "Already Exists" */
/* Connect the device */
if (device_method(bluez, bluez->devices->data[i].path, "Connect"))
return false;
bluez_dbus_disconnect(bluez);
bluez->bluez_cache_counter[i] = 0;
return true;
}
bluetooth_driver_t bluetooth_bluez = {
bluez_init,
bluez_free,
bluez_scan,
bluez_get_devices,
bluez_device_is_connected,
bluez_device_get_sublabel,
bluez_connect_device,
"bluez",
};
+15 -12
View File
@@ -39,25 +39,28 @@ unsigned int read_system_buttons(void)
void exitspawn_kernel(const char *fileName, SceSize args, void *argp)
{
int k1;
struct SceKernelLoadExecVSHParam game_param;
thread_active = 0;
thread_active = 0;
memset(&game_param,0,sizeof(game_param));
game_param.size = sizeof(game_param);
game_param.args = args;
game_param.argp = argp;
game_param.key = "game";
game_param.size = sizeof(game_param);
game_param.args = args;
game_param.argp = argp;
game_param.key = "game";
game_param.vshmain_args_size = 0;
game_param.vshmain_args = NULL;
game_param.configfile = 0;
game_param.unk4 = 0;
game_param.unk5 = 0x10000;
game_param.vshmain_args = NULL;
game_param.configfile = 0;
game_param.unk4 = 0;
game_param.unk5 = 0x10000;
int k1 = pspSdkSetK1(0);
//sceKernelSuspendAllUserThreads();
int ret = sceKernelLoadExecVSHMs2(fileName, &game_param);
k1 = pspSdkSetK1(0);
#if 0
sceKernelSuspendAllUserThreads();
#endif
sceKernelLoadExecVSHMs2(fileName, &game_param);
pspSdkSetK1(k1);
}
+1 -1
View File
@@ -402,7 +402,7 @@ static bool v4l_poll(void *data,
if (preprocess_image(data))
{
if (frame_raw_cb != NULL)
if (frame_raw_cb)
frame_raw_cb(v4l->buffer_output, v4l->width,
v4l->height, v4l->width * 4);
return true;
-301
View File
@@ -1,301 +0,0 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2015-2018 - Andre Leiradella
*
* 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 "fixup.h"
#include "cheevos.h"
#include "util.h"
#include "../retroarch.h"
#include "../core.h"
#include "../deps/rcheevos/include/rcheevos.h"
static int rcheevos_cmpaddr(const void* e1, const void* e2)
{
const rcheevos_fixup_t* f1 = (const rcheevos_fixup_t*)e1;
const rcheevos_fixup_t* f2 = (const rcheevos_fixup_t*)e2;
if (f1->address < f2->address)
{
return -1;
}
else if (f1->address > f2->address)
{
return 1;
}
else
{
return 0;
}
}
static size_t rcheevos_var_reduce(size_t addr, size_t mask)
{
while (mask)
{
size_t tmp = (mask - 1) & ~mask;
addr = (addr & tmp) | ((addr >> 1) & ~tmp);
mask = (mask & (mask - 1)) >> 1;
}
return addr;
}
static size_t rcheevos_var_highest_bit(size_t n)
{
n |= n >> 1;
n |= n >> 2;
n |= n >> 4;
n |= n >> 8;
n |= n >> 16;
return n ^ (n >> 1);
}
void rcheevos_fixup_init(rcheevos_fixups_t* fixups)
{
fixups->elements = NULL;
fixups->capacity = fixups->count = 0;
fixups->dirty = false;
}
void rcheevos_fixup_destroy(rcheevos_fixups_t* fixups)
{
CHEEVOS_FREE(fixups->elements);
rcheevos_fixup_init(fixups);
}
const uint8_t* rcheevos_fixup_find(rcheevos_fixups_t* fixups, unsigned address, int console)
{
rcheevos_fixup_t key;
rcheevos_fixup_t* found;
const uint8_t* location;
if (fixups->dirty)
{
qsort(fixups->elements, fixups->count, sizeof(rcheevos_fixup_t), rcheevos_cmpaddr);
fixups->dirty = false;
}
key.address = address;
found = (rcheevos_fixup_t*)bsearch(&key, fixups->elements, fixups->count, sizeof(rcheevos_fixup_t), rcheevos_cmpaddr);
if (found != NULL)
{
return found->location;
}
if (fixups->count == fixups->capacity)
{
unsigned new_capacity = fixups->capacity == 0 ? 16 : fixups->capacity * 2;
rcheevos_fixup_t* new_elements = (rcheevos_fixup_t*)
realloc(fixups->elements, new_capacity * sizeof(rcheevos_fixup_t));
if (new_elements == NULL)
{
return NULL;
}
fixups->elements = new_elements;
fixups->capacity = new_capacity;
}
fixups->elements[fixups->count].address = address;
fixups->elements[fixups->count++].location = location =
rcheevos_patch_address(address, console);
fixups->dirty = true;
return location;
}
const uint8_t* rcheevos_patch_address(unsigned address, int console)
{
rarch_system_info_t* system = runloop_get_system_info();
const void* pointer = NULL;
unsigned original_address = address;
if (console == RC_CONSOLE_NINTENDO)
{
if (address >= 0x0800 && address < 0x2000)
{
/* Address in the mirrorred RAM, adjust to real RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "NES memory address in mirrorred RAM %X, adjusted to %X\n", address, address & 0x07ff);
address &= 0x07ff;
}
}
else if (console == RC_CONSOLE_GAMEBOY_COLOR)
{
if (address >= 0xe000 && address <= 0xfdff)
{
/* Address in the echo RAM, adjust to real RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "GBC memory address in echo RAM %X, adjusted to %X\n", address, address - 0x2000);
address -= 0x2000;
}
}
if (system->mmaps.num_descriptors != 0)
{
/* We have memory descriptors, use it. */
const rarch_memory_descriptor_t* desc = NULL;
const rarch_memory_descriptor_t* end = NULL;
/* Patch the address to correctly map it to the mmaps. */
if (console == RC_CONSOLE_GAMEBOY_ADVANCE)
{
if (address < 0x8000)
{
/* Internal RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "GBA memory address %X adjusted to %X\n", address, address + 0x3000000);
address += 0x3000000;
}
else
{
/* Work RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "GBA memory address %X adjusted to %X\n", address, address + 0x2000000 - 0x8000);
address += 0x2000000 - 0x8000;
}
}
else if (console == RC_CONSOLE_PC_ENGINE)
{
if (address < 0x002000)
{
/* RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x1f0000);
address += 0x1f0000;
}
else if (address < 0x012000)
{
/* CD-ROM RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x100000 - 0x002000);
address += 0x100000 - 0x002000;
}
else if (address < 0x042000)
{
/* Super System Card RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x0d0000 - 0x012000);
address += 0x0d0000 - 0x012000;
}
else
{
/* CD-ROM battery backed RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x1ee000 - 0x042000);
address += 0x1ee000 - 0x042000;
}
}
else if (console == RC_CONSOLE_SUPER_NINTENDO)
{
if (address < 0x020000)
{
/* Work RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "SNES memory address %X adjusted to %X\n", address, address + 0x7e0000);
address += 0x7e0000;
}
else
{
/* Save RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "SNES memory address %X adjusted to %X\n", address, address + 0x006000 - 0x020000);
address += 0x006000 - 0x020000;
}
}
else if (console == RC_CONSOLE_SEGA_CD)
{
if (address < 0x010000)
{
/* Work RAM. */
address += 0xFF0000;
CHEEVOS_LOG(RCHEEVOS_TAG "Sega CD memory address %X adjusted to %X\n", original_address, address);
}
else
{
/* CD-ROM peripheral RAM - exposed at virtual address to avoid banking */
address += 0x80020000 - 0x010000;
CHEEVOS_LOG(RCHEEVOS_TAG "Sega CD memory address %X adjusted to %X\n", original_address, address);
}
}
desc = system->mmaps.descriptors;
end = desc + system->mmaps.num_descriptors;
for (; desc < end; desc++)
{
if (((desc->core.start ^ address) & desc->core.select) == 0)
{
pointer = desc->core.ptr;
address -= desc->core.start;
if (desc->disconnect_mask)
address = (unsigned)rcheevos_var_reduce(address & desc->disconnect_mask, desc->core.disconnect);
if (address >= desc->core.len)
address -= rcheevos_var_highest_bit(address);
address += desc->core.offset;
CHEEVOS_LOG(RCHEEVOS_TAG "address %X set to descriptor %d at offset %X\n", original_address, (int)((desc - system->mmaps.descriptors) + 1), address);
break;
}
}
}
else
{
unsigned i;
for (i = 0; i < 4; i++)
{
retro_ctx_memory_info_t meminfo;
switch (i)
{
case 0:
meminfo.id = RETRO_MEMORY_SYSTEM_RAM;
break;
case 1:
meminfo.id = RETRO_MEMORY_SAVE_RAM;
break;
case 2:
meminfo.id = RETRO_MEMORY_VIDEO_RAM;
break;
case 3:
meminfo.id = RETRO_MEMORY_RTC;
break;
}
core_get_memory(&meminfo);
if (address < meminfo.size)
{
pointer = meminfo.data;
break;
}
/**
* HACK Subtract the correct amount of bytes to reach the save RAM as
* it's size is not always set correctly in the core.
*/
if (i == 0 && console == RC_CONSOLE_NINTENDO)
address -= 0x6000;
else
address -= meminfo.size;
}
}
if (pointer == NULL)
{
CHEEVOS_LOG(RCHEEVOS_TAG "address %X not supported\n", original_address);
return NULL;
}
return (const uint8_t*)pointer + address;
}
+10 -5
View File
@@ -24,6 +24,7 @@
#ifdef HAVE_MENU
#define CHEEVOS_MENU_BADGE_LIMIT 256
/* TODO/FIXME - public global variables */
static uintptr_t cheevos_badge_menu_texture_list[CHEEVOS_MENU_BADGE_LIMIT] = { 0 };
void cheevos_reset_menu_badges(void)
@@ -54,7 +55,7 @@ void cheevos_set_menu_badge(int index, const char *badge, bool locked)
uintptr_t cheevos_get_menu_badge_texture(int index)
{
if (index < CHEEVOS_MENU_BADGE_LIMIT)
return cheevos_badge_menu_texture_list[index];
return cheevos_badge_menu_texture_list[index];
return 0;
}
@@ -65,19 +66,23 @@ uintptr_t cheevos_get_badge_texture(const char *badge, bool locked)
{
char badge_file[24];
char fullpath[PATH_MAX_LENGTH];
uintptr_t tex;
uintptr_t tex = 0;
if (!badge)
return 0;
snprintf(badge_file, sizeof(badge_file), "%s%s.png", badge, locked ? "_lock" : "");
strlcpy(badge_file, badge, sizeof(badge_file));
if (locked)
strlcat(badge_file, "_lock", sizeof(badge_file));
strlcat(badge_file, ".png", sizeof(badge_file));
fill_pathname_application_special(fullpath,
PATH_MAX_LENGTH * sizeof(char),
APPLICATION_SPECIAL_DIRECTORY_THUMBNAILS_CHEEVOS_BADGES);
gfx_display_reset_textures_list(badge_file, fullpath,
&tex, TEXTURE_FILTER_MIPMAP_LINEAR, NULL, NULL);
if (!gfx_display_reset_textures_list(badge_file, fullpath,
&tex, TEXTURE_FILTER_MIPMAP_LINEAR, NULL, NULL))
tex = 0;
return tex;
}
File renamed without changes.
File diff suppressed because it is too large. Load diff
+1 -5
View File
@@ -49,7 +49,7 @@ void rcheevos_get_achievement_state(unsigned index, char* buffer, size_t buffer_
bool rcheevos_get_description(rcheevos_ctx_desc_t *desc);
bool rcheevos_apply_cheats(bool *data_bool);
void rcheevos_pause_hardcore();
bool rcheevos_unload(void);
@@ -57,8 +57,6 @@ bool rcheevos_toggle_hardcore_mode(void);
void rcheevos_test(void);
bool rcheevos_set_cheats(void);
void rcheevos_set_support_cheevos(bool state);
bool rcheevos_get_support_cheevos(void);
@@ -73,8 +71,6 @@ extern bool rcheevos_loaded;
extern bool rcheevos_hardcore_active;
extern bool rcheevos_hardcore_paused;
extern bool rcheevos_state_loaded_flag;
extern int rcheevos_cheats_are_enabled;
extern int rcheevos_cheats_were_enabled;
RETRO_END_DECLS
File renamed without changes.
+314
View File
@@ -0,0 +1,314 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2015-2018 - Andre Leiradella
*
* 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 "fixup.h"
#include "cheevos.h"
#include "util.h"
#include "../retroarch.h"
#include "../core.h"
#include "../deps/rcheevos/include/rcheevos.h"
#include "../deps/rcheevos/include/rconsoles.h"
static int rcheevos_cmpaddr(const void* e1, const void* e2)
{
const rcheevos_fixup_t* f1 = (const rcheevos_fixup_t*)e1;
const rcheevos_fixup_t* f2 = (const rcheevos_fixup_t*)e2;
if (f1->address < f2->address)
return -1;
else if (f1->address > f2->address)
return 1;
return 0;
}
static size_t rcheevos_var_reduce(size_t addr, size_t mask)
{
while (mask)
{
size_t tmp = (mask - 1) & ~mask;
addr = (addr & tmp) | ((addr >> 1) & ~tmp);
mask = (mask & (mask - 1)) >> 1;
}
return addr;
}
static size_t rcheevos_var_highest_bit(size_t n)
{
n |= n >> 1;
n |= n >> 2;
n |= n >> 4;
n |= n >> 8;
n |= n >> 16;
return n ^ (n >> 1);
}
void rcheevos_fixup_init(rcheevos_fixups_t* fixups)
{
fixups->elements = NULL;
fixups->capacity = fixups->count = 0;
fixups->dirty = false;
}
void rcheevos_fixup_destroy(rcheevos_fixups_t* fixups)
{
CHEEVOS_FREE(fixups->elements);
rcheevos_fixup_init(fixups);
}
const uint8_t* rcheevos_fixup_find(
rcheevos_fixups_t* fixups, unsigned address, int console)
{
rcheevos_fixup_t key;
rcheevos_fixup_t* found;
const uint8_t* location;
if (fixups->dirty)
{
qsort(fixups->elements, fixups->count,
sizeof(rcheevos_fixup_t), rcheevos_cmpaddr);
fixups->dirty = false;
}
key.address = address;
found = (rcheevos_fixup_t*)bsearch(&key,
fixups->elements, fixups->count,
sizeof(rcheevos_fixup_t), rcheevos_cmpaddr);
if (found)
return found->location;
if (fixups->count == fixups->capacity)
{
unsigned new_capacity = fixups->capacity == 0 ? 16 : fixups->capacity * 2;
rcheevos_fixup_t* new_elements = (rcheevos_fixup_t*)
realloc(fixups->elements, new_capacity * sizeof(rcheevos_fixup_t));
if (!new_elements)
return NULL;
fixups->elements = new_elements;
fixups->capacity = new_capacity;
}
fixups->elements[fixups->count].address = address;
fixups->elements[fixups->count++].location = location =
rcheevos_patch_address(address, console);
fixups->dirty = true;
return location;
}
const uint8_t* rcheevos_patch_address(unsigned address, int console)
{
rarch_system_info_t* system = runloop_get_system_info();
const void* pointer = NULL;
unsigned original_address = address;
switch (console)
{
case RC_CONSOLE_NINTENDO:
if (address >= 0x0800 && address < 0x2000)
{
/* Address in the mirrorred RAM,
* adjust to real RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "NES memory address in mirrorred RAM %X, adjusted to %X\n", address, address & 0x07ff);
address &= 0x07ff;
}
break;
case RC_CONSOLE_GAMEBOY_COLOR:
if (address >= 0xe000 && address <= 0xfdff)
{
/* Address in the echo RAM, adjust to real RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "GBC memory address in echo RAM %X, adjusted to %X\n", address, address - 0x2000);
address -= 0x2000;
}
break;
default:
break;
}
if (system->mmaps.num_descriptors != 0)
{
/* We have memory descriptors, use it. */
const rarch_memory_descriptor_t* desc = NULL;
const rarch_memory_descriptor_t* end = NULL;
/* Patch the address to correctly map it to the mmaps. */
switch (console)
{
case RC_CONSOLE_GAMEBOY_ADVANCE:
if (address < 0x8000)
{
/* Internal RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "GBA memory address %X adjusted to %X\n", address, address + 0x3000000);
address += 0x3000000;
}
else
{
/* Work RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "GBA memory address %X adjusted to %X\n", address, address + 0x2000000 - 0x8000);
address += 0x2000000 - 0x8000;
}
break;
case RC_CONSOLE_PC_ENGINE:
if (address < 0x002000)
{
/* RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x1f0000);
address += 0x1f0000;
}
else if (address < 0x012000)
{
/* CD-ROM RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x100000 - 0x002000);
address += 0x100000 - 0x002000;
}
else if (address < 0x042000)
{
/* Super System Card RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x0d0000 - 0x012000);
address += 0x0d0000 - 0x012000;
}
else
{
/* CD-ROM battery backed RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x1ee000 - 0x042000);
address += 0x1ee000 - 0x042000;
}
break;
case RC_CONSOLE_SUPER_NINTENDO:
if (address < 0x020000)
{
/* Work RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "SNES memory address %X adjusted to %X\n", address, address + 0x7e0000);
address += 0x7e0000;
}
else
{
/* Save RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "SNES memory address %X adjusted to %X\n", address, address + 0x006000 - 0x020000);
address += 0x006000 - 0x020000;
}
break;
case RC_CONSOLE_SEGA_CD:
if (address < 0x010000)
{
/* Work RAM. */
address += 0xFF0000;
CHEEVOS_LOG(RCHEEVOS_TAG "Sega CD memory address %X adjusted to %X\n", original_address, address);
}
else
{
/* CD-ROM peripheral RAM - exposed at virtual address to avoid banking */
address += 0x80020000 - 0x010000;
CHEEVOS_LOG(RCHEEVOS_TAG "Sega CD memory address %X adjusted to %X\n", original_address, address);
}
break;
default:
break;
}
desc = system->mmaps.descriptors;
end = desc + system->mmaps.num_descriptors;
for (; desc < end; desc++)
{
if (((desc->core.start ^ address) & desc->core.select) == 0)
{
pointer = desc->core.ptr;
address -= desc->core.start;
if (desc->disconnect_mask)
address = (unsigned)rcheevos_var_reduce(
address & desc->disconnect_mask, desc->core.disconnect);
if (address >= desc->core.len)
address -= rcheevos_var_highest_bit(address);
address += desc->core.offset;
CHEEVOS_LOG(RCHEEVOS_TAG "address %X set to descriptor %d at offset %X\n", original_address,
(int)((desc - system->mmaps.descriptors) + 1), address);
break;
}
}
}
else if (console == RC_CONSOLE_GAMEBOY_ADVANCE)
{
/* The RetroAchievements implementation of memory access
* for GBA puts the save RAM first,
* so the default looping behavior below is backwards.
*
* If the core doesn't expose a
* memory map, say it isn't supported.
*/
pointer = NULL;
}
else
{
unsigned i;
for (i = 0; i < 4; i++)
{
retro_ctx_memory_info_t meminfo;
switch (i)
{
case 0:
meminfo.id = RETRO_MEMORY_SYSTEM_RAM;
break;
case 1:
meminfo.id = RETRO_MEMORY_SAVE_RAM;
break;
case 2:
meminfo.id = RETRO_MEMORY_VIDEO_RAM;
break;
case 3:
meminfo.id = RETRO_MEMORY_RTC;
break;
}
core_get_memory(&meminfo);
if (address < meminfo.size)
{
pointer = meminfo.data;
break;
}
/**
* HACK Subtract the correct amount of bytes to
* reach the save RAM as its size is not always
* set correctly in the core.
*/
if (i == 0 && console == RC_CONSOLE_NINTENDO)
address -= 0x6000;
else
address -= meminfo.size;
}
}
if (!pointer)
{
CHEEVOS_LOG(RCHEEVOS_TAG "address %X not supported\n", original_address);
return NULL;
}
return (const uint8_t*)pointer + address;
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
+9 -10
View File
@@ -291,7 +291,7 @@ typedef struct
static char* rcheevos_unescape_string(const char* string, size_t length)
{
const char* end = string + length;
char* buffer = (char*)malloc(length + 1);
char* buffer = (char*)malloc(length + 1);
char* buffer_it = buffer;
if (buffer == NULL)
@@ -329,18 +329,19 @@ static char* rcheevos_unescape_string(const char* string, size_t length)
{
char temp[5];
string += 2;
string += 2;
memcpy(temp, string, 4);
temp[4] = '\0';
utf16[j] = string_hex_to_unsigned(temp);
string += 4;
temp[4] = '\0';
utf16[j] = string_hex_to_unsigned(temp);
string += 4;
}
utf16[j] = 0;
if (utf16_to_char_string(utf16, utf8, sizeof(utf8)))
{
memcpy(buffer_it, utf8, strlen(utf8));
buffer_it += strlen(utf8);
size_t utf8_len = strlen(utf8);
memcpy(buffer_it, utf8, utf8_len);
buffer_it += utf8_len;
}
}
break;
@@ -349,12 +350,10 @@ static char* rcheevos_unescape_string(const char* string, size_t length)
*buffer_it++ = escaped_char;
string += 2;
break;
};
}
}
else
{
*buffer_it++ = *string++;
}
}
*buffer_it = '\0';
File renamed without changes.
+1 -1
View File
@@ -32,7 +32,7 @@ End of setup
*****************************************************************************/
#define RCHEEVOS_TAG "[RCHEEVOS]: "
#define CHEEVOS_FREE(p) do { void* q = (void*)p; if (q != NULL) free(q); } while (0)
#define CHEEVOS_FREE(p) do { void* q = (void*)p; if (q) free(q); } while (0)
#ifdef CHEEVOS_VERBOSE
+48
View File
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>com.libretro.RetroArch</id>
<launchable type="desktop-id">retroarch.desktop</launchable>
<metadata_license>CC0-1.0</metadata_license>
<name>RetroArch</name>
<summary>Frontend for emulators, game engines and media players</summary>
<description>
<p>
RetroArch is an open source and cross platform frontend/framework for emulators, game engines, video games, media players and other applications.
</p>
<p>
While it can do many things besides this, it is most widely known for enabling you to run classic games on a wide range of computers and consoles through a slick graphical interface. Settings are also unified so configuration is done once and for all.
</p>
<p>
In addition to this, you will soon be able to run original game discs (CDs) from RetroArch. We take videogame preservation seriously and want to ensure you can run your originally bought content on modern day PCs.
</p>
<p>
RetroArch has advanced features like shaders, netplay, rewinding, next-frame response times, runahead, and more!
</p>
</description>
<url type="homepage">https://www.retroarch.com/</url>
<url type="bugtracker">https://github.com/libretro/RetroArch/issues</url>
<url type="donation">https://www.retroarch.com/index.php?page=donate</url>
<releases>
<release version="1.9.0"/>
</releases>
<project_group>Libretro</project_group>
<project_license>GPL-3.0</project_license>
<developer_name>Libretro</developer_name>
<screenshots>
<screenshot type="default">
<image>https://www.retroarch.com/images/xmb-tabs.png</image>
</screenshot>
<screenshot type="default">
<image>https://www.retroarch.com/images/xmb-updater.png</image>
</screenshot>
<screenshot type="default">
<image>https://www.retroarch.com/images/xmb-osk.png</image>
</screenshot>
<screenshot type="default">
<image>https://www.retroarch.com/images/xmb-playlists.png</image>
</screenshot>
<screenshot type="default">
<image>https://www.retroarch.com/images/xmb-metadata.png</image>
</screenshot>
</screenshots>
</component>
+165 -56
View File
@@ -53,48 +53,6 @@
#define DEFAULT_ASPECT_RATIO -1.0f
#endif
#if defined(ANDROID)
#define DEFAULT_MAX_PADS 8
#define ANDROID_KEYBOARD_PORT DEFAULT_MAX_PADS
#elif defined(_3DS)
#define DEFAULT_MAX_PADS 1
#elif defined(SWITCH) || defined(HAVE_LIBNX)
#define DEFAULT_MAX_PADS 8
#elif defined(WIIU)
#ifdef WIIU_HID
#define DEFAULT_MAX_PADS 16
#else
#define DEFAULT_MAX_PADS 5
#endif
#elif defined(DJGPP)
#define DEFAULT_MAX_PADS 1
#define DOS_KEYBOARD_PORT DEFAULT_MAX_PADS
#elif defined(XENON)
#define DEFAULT_MAX_PADS 4
#elif defined(VITA) || defined(SN_TARGET_PSP2)
#define DEFAULT_MAX_PADS 4
#elif defined(PSP)
#define DEFAULT_MAX_PADS 1
#elif defined(PS2)
#define DEFAULT_MAX_PADS 2
#elif defined(GEKKO) || defined(HW_RVL)
#define DEFAULT_MAX_PADS 4
#elif defined(__linux__) || (defined(BSD) && !defined(__MACH__))
#define DEFAULT_MAX_PADS 8
#elif defined(__QNX__)
#define DEFAULT_MAX_PADS 8
#elif defined(__CELLOS_LV2__)
#define DEFAULT_MAX_PADS 7
#elif defined(_XBOX)
#define DEFAULT_MAX_PADS 4
#elif defined(HAVE_XINPUT) && !defined(HAVE_DINPUT)
#define DEFAULT_MAX_PADS 4
#elif defined(DINGUX)
#define DEFAULT_MAX_PADS 2
#else
#define DEFAULT_MAX_PADS 16
#endif
#if defined(GEKKO)
#define DEFAULT_MOUSE_SCALE 1
#endif
@@ -118,6 +76,8 @@
#ifdef HAVE_MATERIALUI
/* Show icons to the left of each menu entry */
#define DEFAULT_MATERIALUI_ICONS_ENABLE true
/* Show system-specific icons in the playlists tab */
#define DEFAULT_MATERIALUI_PLAYLIST_ICONS_ENABLE true
#endif
/* Material UI colour theme */
@@ -175,6 +135,8 @@
#define DEFAULT_CRT_SWITCH_CENTER_ADJUST 0
#define DEFAULT_CRT_SWITCH_PORCH_ADJUST 0
#define DEFAULT_HISTORY_LIST_ENABLE true
#define DEFAULT_PLAYLIST_ENTRY_RENAME true
@@ -258,6 +220,18 @@
#endif
#define DEFAULT_CHECK_FIRMWARE_BEFORE_LOADING false
/* Specifies whether to 'reload' (fork and quit)
* RetroArch when launching content with the
* currently loaded core
* > Only relevant on platforms without dynamic core
* loading support
* > Setting this to 'false' will decrease loading
* times when required core is already running,
* but may cause stability issues (if core misbehaves) */
#ifndef HAVE_DYNAMIC
#define DEFAULT_ALWAYS_RELOAD_CORE_ON_RUN_CONTENT true
#endif
/* Forcibly disable composition.
* Only valid on Windows Vista/7/8 for now. */
#define DEFAULT_DISABLE_COMPOSITION false
@@ -413,6 +387,7 @@
#define DEFAULT_OZONE_COLOR_THEME 1
#define DEFAULT_OZONE_COLLAPSE_SIDEBAR false
#define DEFAULT_OZONE_TRUNCATE_PLAYLIST_NAME true
#define DEFAULT_OZONE_SORT_AFTER_TRUNCATE_PLAYLIST_NAME true
#define DEFAULT_OZONE_SCROLL_CONTENT_METADATA false
#endif
@@ -517,8 +492,8 @@ static const bool menu_show_sublabels = true;
static const bool menu_scroll_fast = false;
#define DEFAULT_MENU_TICKER_TYPE (TICKER_TYPE_BOUNCE)
static const float menu_ticker_speed = 1.0f;
#define DEFAULT_MENU_TICKER_TYPE (TICKER_TYPE_LOOP)
static const float menu_ticker_speed = 2.0f;
#define DEFAULT_MENU_TICKER_SMOOTH true
@@ -539,12 +514,26 @@ static const bool content_show_music = true;
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
static const bool content_show_video = true;
#endif
#ifdef HAVE_NETWORKING
#if defined(HAVE_NETWORKING)
#if defined(_3DS)
static const bool content_show_netplay = false;
#else
static const bool content_show_netplay = true;
#endif
#endif
static const bool content_show_history = true;
static const bool content_show_add = true;
/* Specifies 'add content' visibility when using
* menus WITH a dedicated 'Import Content' tab */
#define DEFAULT_MENU_CONTENT_SHOW_ADD true
/* Specifies 'add content' visibility when using
* menus WITHOUT a dedicated 'Import Content' tab */
#define DEFAULT_MENU_CONTENT_SHOW_ADD_ENTRY MENU_ADD_CONTENT_ENTRY_DISPLAY_PLAYLISTS_TAB
static const bool content_show_playlists = true;
#if defined(HAVE_LIBRETRODB)
#define DEFAULT_MENU_CONTENT_SHOW_EXPLORE true
#endif
#ifdef HAVE_XMB
static const unsigned xmb_alpha_factor = 75;
@@ -596,6 +585,7 @@ static const bool rgui_shadows = false;
static const unsigned rgui_particle_effect = RGUI_PARTICLE_EFFECT_NONE;
#define DEFAULT_RGUI_PARTICLE_EFFECT_SPEED 1.0f
static const bool rgui_extended_ascii = false;
#define DEFAULT_RGUI_SWITCH_ICONS true
#endif
#ifdef HAVE_MENU
@@ -610,7 +600,7 @@ static const bool rgui_extended_ascii = false;
static const bool default_game_specific_options = true;
static const bool default_auto_overrides_enable = true;
static const bool default_auto_remaps_enable = true;
static const bool default_global_core_options = true;
static const bool default_global_core_options = false;
static const bool default_auto_shaders_enable = true;
static const bool default_sort_savefiles_enable = false;
@@ -640,6 +630,8 @@ static const unsigned input_backtouch_enable = false;
static const unsigned input_backtouch_toggle = false;
#endif
#define DEFAULT_OVERLAY_ENABLE_AUTOPREFERRED true
#define DEFAULT_SHOW_PHYSICAL_INPUTS true
#define DEFAULT_ALL_USERS_CONTROL_MENU false
@@ -750,6 +742,56 @@ static const bool audio_enable_menu_bgm = false;
#define DEFAULT_MENU_ENABLE_WIDGETS false
#endif
/* Display an animation when loading content
* > Currently implemented only as a widget */
#define DEFAULT_MENU_SHOW_LOAD_CONTENT_ANIMATION DEFAULT_MENU_ENABLE_WIDGETS
/* Display a notification when successfully
* connecting/disconnecting an autoconfigured
* controller
* > Disabled by default on the Switch */
#if defined(HAVE_LIBNX) && defined(HAVE_GFX_WIDGETS)
#define DEFAULT_NOTIFICATION_SHOW_AUTOCONFIG false
#else
#define DEFAULT_NOTIFICATION_SHOW_AUTOCONFIG true
#endif
#if defined(HAVE_SCREENSHOTS)
#define DEFAULT_NOTIFICATION_SHOW_SCREENSHOT_TAKEN true
#else
#define DEFAULT_NOTIFICATION_SHOW_SCREENSHOT_TAKEN false
#endif
/* Display a notification when cheats are being
* applied */
#define DEFAULT_NOTIFICATION_SHOW_CHEATS_APPLIED true
/* Display a notification when loading an
* input remap file */
#define DEFAULT_NOTIFICATION_SHOW_REMAP_LOAD true
/* Display a notification when loading a
* configuration override file */
#define DEFAULT_NOTIFICATION_SHOW_CONFIG_OVERRIDE_LOAD true
/* Display a notification when automatically restoring
* at launch the last used disk of multi-disk content */
#define DEFAULT_NOTIFICATION_SHOW_SET_INITIAL_DISK true
/* Display a notification when fast forwarding
* content */
#define DEFAULT_NOTIFICATION_SHOW_FAST_FORWARD true
/*Display a notification when taking a screenshot*/
#define DEFAULT_NOTIFICATION_SHOW_SCREENSHOT true
/*Desired duration of the screenshot notification*/
#define DEFAULT_NOTIFICATION_SHOW_SCREENSHOT_DURATION 0
/* Display a white flashing effect with the desired
* duration when taking a screenshot*/
#define DEFAULT_NOTIFICATION_SHOW_SCREENSHOT_FLASH 0
/* Output samplerate. */
#ifdef GEKKO
#define DEFAULT_OUTPUT_RATE 32000
@@ -803,6 +845,10 @@ static const bool audio_enable_menu_bgm = false;
#define DEFAULT_WASAPI_SH_BUFFER_LENGTH -16
#endif
/* Automatically mute audio when fast forward
* is enabled */
#define DEFAULT_AUDIO_FASTFORWARD_MUTE false
/* MISC */
/* Enables displaying the current frames per second. */
@@ -811,6 +857,9 @@ static const bool audio_enable_menu_bgm = false;
/* FPS display will be updated at the set interval (in frames) */
#define DEFAULT_FPS_UPDATE_INTERVAL 256
/* Memory status display will be updated at the set interval (in frames) */
#define DEFAULT_MEMORY_UPDATE_INTERVAL 256
/* Enables displaying the current frame count. */
#define DEFAULT_FRAMECOUNT_SHOW false
@@ -911,6 +960,23 @@ static const bool savestate_auto_load = false;
static const bool savestate_thumbnail_enable = false;
/* When creating save (srm) files, compress
* written data */
#if defined(__WINRT__) || defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
#define DEFAULT_SAVE_FILE_COMPRESSION true
#else
#define DEFAULT_SAVE_FILE_COMPRESSION false
#endif
/* When creating save state files, compress
* written data */
#if defined(__WINRT__) || defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
/* TODO/FIXME Apparently this is an issue on UWP for now, so disable it for now */
#define DEFAULT_SAVESTATE_FILE_COMPRESSION false
#else
#define DEFAULT_SAVESTATE_FILE_COMPRESSION true
#endif
/* Slowmotion ratio. */
#define DEFAULT_SLOWMOTION_RATIO 3.0
@@ -936,10 +1002,27 @@ static const bool stdin_cmd_enable = false;
static const uint16_t network_remote_base_port = 55400;
#if defined(ANDROID) || defined(IOS)
static const bool network_on_demand_thumbnails = true;
#define DEFAULT_NETWORK_BUILDBOT_AUTO_EXTRACT_ARCHIVE true
#define DEFAULT_NETWORK_BUILDBOT_SHOW_EXPERIMENTAL_CORES false
/* Automatically create a backup whenever a core is
* updated via the online updater
* > Enable by default on all modern platforms with
* online updater support */
#if defined(HAVE_ONLINE_UPDATER) && (defined(__i386__) || defined(__i486__) || defined(__i686__) || defined(__x86_64__) || defined(_M_X64) || defined(_WIN32) || defined(OSX) || defined(ANDROID) || defined(IOS))
#define DEFAULT_CORE_UPDATER_AUTO_BACKUP true
#else
static const bool network_on_demand_thumbnails = false;
#define DEFAULT_CORE_UPDATER_AUTO_BACKUP false
#endif
/* Number of automatic core backups to retain
* (oldest backup will be deleted when creating
* a new one) */
#define DEFAULT_CORE_UPDATER_AUTO_BACKUP_HISTORY_SIZE 1
#if defined(ANDROID) || defined(IOS)
#define DEFAULT_NETWORK_ON_DEMAND_THUMBNAILS true
#else
#define DEFAULT_NETWORK_ON_DEMAND_THUMBNAILS false
#endif
/* Number of entries that will be kept in content history playlist file. */
@@ -950,22 +1033,29 @@ static const unsigned default_content_history_size = 200;
static const int default_content_favorites_size = 200;
/* Sort all playlists (apart from histories) alphabetically */
static const bool playlist_sort_alphabetical = true;
#define DEFAULT_PLAYLIST_SORT_ALPHABETICAL true
/* File format to use when writing playlists to disk */
static const bool playlist_use_old_format = false;
#define DEFAULT_PLAYLIST_USE_OLD_FORMAT false
/* When creating/updating playlists, compress written data */
#if defined(__WINRT__) || defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
#define DEFAULT_PLAYLIST_COMPRESSION true
#else
#define DEFAULT_PLAYLIST_COMPRESSION false
#endif
#ifdef HAVE_MENU
/* Specify when to display 'core name' inline on playlist entries */
static const unsigned playlist_show_inline_core_name = PLAYLIST_INLINE_CORE_DISPLAY_HIST_FAV;
#define DEFAULT_PLAYLIST_SHOW_INLINE_CORE_NAME PLAYLIST_INLINE_CORE_DISPLAY_HIST_FAV
/* Specifies which runtime record to use on playlist sublabels */
static const unsigned playlist_sublabel_runtime_type = PLAYLIST_RUNTIME_PER_CORE;
#define DEFAULT_PLAYLIST_SUBLABEL_RUNTIME_TYPE PLAYLIST_RUNTIME_PER_CORE
/* Specifies time/date display format for runtime 'last played' data */
#define DEFAULT_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE PLAYLIST_LAST_PLAYED_STYLE_YMD_HMS
static const unsigned playlist_entry_remove_enable = PLAYLIST_ENTRY_REMOVE_ENABLE_ALL;
#define DEFAULT_PLAYLIST_ENTRY_REMOVE_ENABLE PLAYLIST_ENTRY_REMOVE_ENABLE_ALL
#endif
#define DEFAULT_SCAN_WITHOUT_CORE_MATCH false
@@ -980,6 +1070,8 @@ static const unsigned playlist_entry_remove_enable = PLAYLIST_ENTRY_REMOVE_ENABL
#define DEFAULT_PLAYLIST_FUZZY_ARCHIVE_MATCH false
#define DEFAULT_PLAYLIST_PORTABLE_PATHS false
/* Show Menu start-up screen on boot. */
#define DEFAULT_MENU_SHOW_START_SCREEN true
@@ -1044,6 +1136,8 @@ static const unsigned input_bind_timeout = 5;
static const unsigned input_bind_hold = 2;
#define DEFAULT_INPUT_HOTKEY_BLOCK_DELAY 5
static const unsigned gfx_thumbnails_default = 3;
static const unsigned menu_left_thumbnails_default = 0;
@@ -1051,7 +1145,8 @@ static const unsigned menu_left_thumbnails_default = 0;
static const unsigned gfx_thumbnail_upscale_threshold = 0;
#ifdef HAVE_MENU
static const unsigned menu_timedate_style = MENU_TIMEDATE_STYLE_DDMM_HM;
#define DEFAULT_MENU_TIMEDATE_STYLE MENU_TIMEDATE_STYLE_DDMM_HM
#define DEFAULT_MENU_TIMEDATE_DATE_SEPARATOR MENU_TIMEDATE_DATE_SEPARATOR_HYPHEN
#endif
static const bool xmb_vertical_thumbnails = false;
@@ -1233,4 +1328,18 @@ static const bool enable_device_vibration = false;
#define DEFAULT_AI_SERVICE_URL "http://localhost:4404/"
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
#define DEFAULT_BUILTIN_MEDIAPLAYER_ENABLE true
#else
#define DEFAULT_BUILTIN_MEDIAPLAYER_ENABLE false
#endif
#if defined(HAVE_IMAGEVIEWER)
#define DEFAULT_BUILTIN_IMAGEVIEWER_ENABLE true
#else
#define DEFAULT_BUILTIN_IMAGEVIEWER_ENABLE false
#endif
#define DEFAULT_FILTER_BY_CURRENT_CORE false
#endif
+723 -221
View File
File diff suppressed because it is too large. Load diff
+50 -3
View File
@@ -131,6 +131,7 @@ typedef struct settings
bool audio_rate_control;
bool audio_wasapi_exclusive_mode;
bool audio_wasapi_float_format;
bool audio_fastforward_mute;
/* Input */
bool input_remap_binds_enable;
@@ -143,7 +144,6 @@ typedef struct settings
bool input_overlay_auto_rotate;
bool input_descriptor_label_show;
bool input_descriptor_hide_unbound;
bool input_all_users_control_menu;
bool input_menu_swap_ok_cancel_buttons;
bool input_backtouch_enable;
bool input_backtouch_toggle;
@@ -158,6 +158,14 @@ typedef struct settings
/* Menu */
bool filter_by_current_core;
bool menu_enable_widgets;
bool menu_show_load_content_animation;
bool notification_show_autoconfig;
bool notification_show_cheats_applied;
bool notification_show_remap_load;
bool notification_show_config_override_load;
bool notification_show_set_initial_disk;
bool notification_show_fast_forward;
bool notification_show_screenshot;
bool menu_widget_scale_auto;
bool menu_show_start_screen;
bool menu_pause_libretro;
@@ -199,6 +207,7 @@ typedef struct settings
bool menu_show_video_layout;
#endif
bool menu_materialui_icons_enable;
bool menu_materialui_playlist_icons_enable;
bool menu_materialui_show_nav_bar;
bool menu_materialui_auto_rotate_nav_bar;
bool menu_materialui_dual_thumbnail_list_view_enable;
@@ -211,6 +220,7 @@ typedef struct settings
bool menu_rgui_inline_thumbnails;
bool menu_rgui_swap_thumbnails;
bool menu_rgui_extended_ascii;
bool menu_rgui_switch_icons;
bool menu_xmb_shadows_enable;
bool menu_xmb_vertical_thumbnails;
bool menu_content_show_settings;
@@ -222,6 +232,7 @@ typedef struct settings
bool menu_content_show_history;
bool menu_content_show_add;
bool menu_content_show_playlists;
bool menu_content_show_explore;
bool menu_use_preferred_system_color_theme;
bool menu_preferred_system_color_theme_set;
bool menu_unified_controls;
@@ -284,7 +295,9 @@ typedef struct settings
/* Network */
bool network_buildbot_auto_extract_archive;
bool network_buildbot_show_experimental_cores;
bool network_on_demand_thumbnails;
bool core_updater_auto_backup;
/* UI */
bool ui_menubar_enable;
@@ -303,10 +316,15 @@ typedef struct settings
bool cheevos_badges_enable;
bool cheevos_verbose_enable;
bool cheevos_auto_screenshot;
bool cheevos_start_active;
bool cheevos_unlock_sound_enable;
/* Camera */
bool camera_allow;
/* Bluetooth */
bool bluetooth_allow;
/* WiFi */
bool wifi_allow;
@@ -344,6 +362,8 @@ typedef struct settings
bool savestate_auto_save;
bool savestate_auto_load;
bool savestate_thumbnail_enable;
bool save_file_compression;
bool savestate_file_compression;
bool network_cmd_enable;
bool stdin_cmd_enable;
bool keymapper_enable;
@@ -351,6 +371,9 @@ typedef struct settings
bool network_remote_enable_user[MAX_USERS];
bool load_dummy_on_core_shutdown;
bool check_firmware_before_loading;
#ifndef HAVE_DYNAMIC
bool always_reload_core_on_run_content;
#endif
bool game_specific_options;
bool auto_overrides_enable;
@@ -377,18 +400,21 @@ typedef struct settings
bool sustained_performance_mode;
bool playlist_use_old_format;
bool playlist_compression;
bool content_runtime_log;
bool content_runtime_log_aggregate;
bool playlist_sort_alphabetical;
bool playlist_show_sublabels;
bool playlist_fuzzy_archive_match;
bool playlist_portable_paths;
bool quit_press_twice;
bool vibrate_on_keypress;
bool enable_device_vibration;
bool ozone_collapse_sidebar;
bool ozone_truncate_playlist_name;
bool ozone_sort_after_truncate_playlist_name;
bool ozone_scroll_content_metadata;
bool log_to_file;
@@ -431,6 +457,8 @@ typedef struct settings
float input_overlay_opacity;
float input_overlay_scale;
float input_overlay_center_x;
float input_overlay_center_y;
float slowmotion_ratio;
float fastforward_ratio;
@@ -447,6 +475,7 @@ typedef struct settings
int state_slot;
int audio_wasapi_sh_buffer_length;
int crt_switch_center_adjust;
int crt_switch_porch_adjust;
#ifdef HAVE_VULKAN
int vulkan_gpu_index;
#endif
@@ -470,6 +499,7 @@ typedef struct settings
unsigned audio_latency;
unsigned fps_update_interval;
unsigned memory_update_interval;
unsigned input_block_timeout;
@@ -485,6 +515,7 @@ typedef struct settings
#ifdef GEKKO
unsigned input_mouse_scale;
#endif
unsigned input_hotkey_block_delay;
unsigned input_menu_toggle_gamepad_combo;
unsigned input_keyboard_gamepad_mapping_type;
unsigned input_poll_type_behavior;
@@ -535,11 +566,14 @@ typedef struct settings
unsigned video_overscan_correction_bottom;
#endif
unsigned video_shader_delay;
unsigned notification_show_screenshot_duration;
unsigned notification_show_screenshot_flash;
/* Accessibility */
unsigned accessibility_narrator_speech_speed;
unsigned menu_timedate_style;
unsigned menu_timedate_date_separator;
unsigned gfx_thumbnails;
unsigned menu_left_thumbnails;
unsigned gfx_thumbnail_upscale_threshold;
@@ -569,6 +603,7 @@ typedef struct settings
unsigned menu_rgui_aspect_ratio_lock;
unsigned menu_rgui_particle_effect;
unsigned menu_ticker_type;
unsigned menu_content_show_add_entry;
unsigned playlist_entry_remove_enable;
unsigned playlist_show_inline_core_name;
@@ -611,6 +646,8 @@ typedef struct settings
unsigned ai_service_mode;
unsigned ai_service_target_lang;
unsigned ai_service_source_lang;
unsigned core_updater_auto_backup_history_size;
} uints;
struct
@@ -626,6 +663,7 @@ typedef struct settings
char video_driver[32];
char record_driver[32];
char camera_driver[32];
char bluetooth_driver[32];
char wifi_driver[32];
char led_driver[32];
char location_driver[32];
@@ -746,6 +784,15 @@ typedef struct settings
**/
const char *config_get_default_camera(void);
/**
* config_get_default_bluetooth:
*
* Gets default bluetooth driver.
*
* Returns: Default bluetooth driver.
**/
const char *config_get_default_bluetooth(void);
/**
* config_get_default_wifi:
*
@@ -859,11 +906,11 @@ bool config_load_remap(const char *directory_input_remapping,
/**
* config_save_autoconf_profile:
* @path : Path that shall be written to.
* @device_name : Input device name
* @user : Controller number to save
* Writes a controller autoconf file to disk.
**/
bool config_save_autoconf_profile(const char *path, unsigned user);
bool config_save_autoconf_profile(const char *device_name, unsigned user);
/**
* config_save_file:
+4 -4
View File
@@ -43,7 +43,7 @@ typedef struct content_ctx_info
bool content_load_ram_file(unsigned slot);
/* Save a RAM state from memory to disk. */
bool content_save_ram_file(unsigned slot);
bool content_save_ram_file(unsigned slot, bool compress);
/* Load a state from disk to memory. */
bool content_load_state(const char* path, bool load_to_backup_buffer, bool autoload);
@@ -51,6 +51,9 @@ bool content_load_state(const char* path, bool load_to_backup_buffer, bool autol
/* Save a state from memory to disk. */
bool content_save_state(const char *path, bool save_to_disk, bool autosave);
/* Waits for any in-progress save state tasks to finish */
void content_wait_for_save_state_task(void);
/* Copy a save state. */
bool content_rename_state(const char *origin, const char *dest);
@@ -82,9 +85,6 @@ bool content_reset_savestate_backups(void);
bool content_undo_load_buf_is_empty(void);
bool content_undo_save_buf_is_empty(void);
/* Checks if launched from the commandline */
bool content_launched_from_cli(void);
/* Clears the pending subsystem rom buffer */
bool content_is_subsystem_pending_load(void);
+2
View File
@@ -156,7 +156,9 @@ typedef struct retro_callbacks
bool core_set_default_callbacks(struct retro_callbacks *cbs);
#ifdef HAVE_REWIND
bool core_set_rewind_callbacks(void);
#endif
#ifdef HAVE_NETWORKING
bool core_set_netplay_callbacks(void);
+767
View File
@@ -0,0 +1,767 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2014-2017 - Jean-André Santoni
* Copyright (C) 2016-2019 - Brad Parker
* Copyright (C) 2019-2020 - James Leaver
*
* 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 <string/stdstring.h>
#include <lists/string_list.h>
#include <file/file_path.h>
#include <streams/interface_stream.h>
#include <streams/file_stream.h>
#include <lists/dir_list.h>
#include <time/rtime.h>
#include <retro_miscellaneous.h>
#include "frontend/frontend_driver.h"
#include "file_path_special.h"
#include "verbosity.h"
#include "core_backup.h"
/* Holds all entries in a core backup list */
struct core_backup_list
{
size_t size;
size_t capacity;
core_backup_list_entry_t *entries;
};
/*********************/
/* Utility Functions */
/*********************/
/* Generates backup directory path for specified core.
* Returns false if 'core_path' and/or 'dir_core_assets'
* are invalid, or a filesystem error occurs */
static bool core_backup_get_backup_dir(
const char *dir_libretro, const char *dir_core_assets,
const char *core_filename,
char *backup_dir, size_t len)
{
char *last_underscore = NULL;
char core_file_id[PATH_MAX_LENGTH];
char tmp[PATH_MAX_LENGTH];
core_file_id[0] = '\0';
tmp[0] = '\0';
/* Extract core file 'ID' (name without extension + suffix)
* from core path */
if (string_is_empty(dir_libretro) ||
string_is_empty(core_filename) ||
(len < 1))
return false;
strlcpy(core_file_id, core_filename, sizeof(core_file_id));
/* > Remove file extension */
path_remove_extension(core_file_id);
if (string_is_empty(core_file_id))
return false;
/* > Remove platform-specific file name suffix,
* if required */
last_underscore = strrchr(core_file_id, '_');
if (!string_is_empty(last_underscore))
if (!string_is_equal(last_underscore, "_libretro"))
*last_underscore = '\0';
if (string_is_empty(core_file_id))
return false;
/* Get core backup directory
* > If no assets directory is defined, use
* core directory as a base */
fill_pathname_join(tmp, string_is_empty(dir_core_assets) ?
dir_libretro : dir_core_assets,
"core_backups", sizeof(tmp));
fill_pathname_join(backup_dir, tmp,
core_file_id, len);
if (string_is_empty(backup_dir))
return false;
/* > Create directory, if required */
if (!path_is_directory(backup_dir))
{
if (!path_mkdir(backup_dir))
{
RARCH_ERR("[core backup] Failed to create backup directory: %s.\n", backup_dir);
return false;
}
}
return true;
}
/* Generates a timestamped core backup file path from
* the specified core path. Returns true if successful */
bool core_backup_get_backup_path(
const char *core_path, uint32_t crc, enum core_backup_mode backup_mode,
const char *dir_core_assets, char *backup_path, size_t len)
{
int n;
time_t current_time;
struct tm time_info;
const char *core_filename = NULL;
char core_dir[PATH_MAX_LENGTH];
char backup_dir[PATH_MAX_LENGTH];
char backup_filename[PATH_MAX_LENGTH];
core_dir[0] = '\0';
backup_dir[0] = '\0';
backup_filename[0] = '\0';
/* Get core filename and parent directory */
if (string_is_empty(core_path))
return false;
core_filename = path_basename(core_path);
if (string_is_empty(core_filename))
return false;
fill_pathname_parent_dir(core_dir, core_path, sizeof(core_dir));
if (string_is_empty(core_dir))
return false;
/* Get backup directory */
if (!core_backup_get_backup_dir(core_dir, dir_core_assets, core_filename,
backup_dir, sizeof(backup_dir)))
return false;
/* Get current time */
time(&current_time);
rtime_localtime(&current_time, &time_info);
/* Generate backup filename */
n = snprintf(backup_filename, sizeof(backup_filename),
"%s.%04u%02u%02uT%02u%02u%02u.%08x.%u%s",
core_filename,
(unsigned)time_info.tm_year + 1900,
(unsigned)time_info.tm_mon + 1,
(unsigned)time_info.tm_mday,
(unsigned)time_info.tm_hour,
(unsigned)time_info.tm_min,
(unsigned)time_info.tm_sec,
crc,
(unsigned)backup_mode,
file_path_str(FILE_PATH_CORE_BACKUP_EXTENSION));
if ((n < 0) || (n >= 128))
n = 0; /* Silence GCC warnings... */
/* Build final path */
fill_pathname_join(backup_path, backup_dir,
backup_filename, len);
return true;
}
/* Returns detected type of specified core backup file */
enum core_backup_type core_backup_get_backup_type(const char *backup_path)
{
const char *backup_ext = NULL;
struct string_list *metadata_list = NULL;
char core_ext[255];
core_ext[0] = '\0';
if (string_is_empty(backup_path) || !path_is_valid(backup_path))
goto error;
/* Get backup file extension */
backup_ext = path_get_extension(backup_path);
if (string_is_empty(backup_ext))
goto error;
/* Get platform-specific dynamic library extension */
if (!frontend_driver_get_core_extension(core_ext, sizeof(core_ext)))
goto error;
/* Check if this is an archived backup */
if (string_is_equal_noncase(backup_ext,
file_path_str(FILE_PATH_CORE_BACKUP_EXTENSION_NO_DOT)))
{
const char *backup_filename = NULL;
const char *src_ext = NULL;
/* Split the backup filename into its various
* metadata components */
backup_filename = path_basename(backup_path);
if (string_is_empty(backup_filename))
goto error;
metadata_list = string_split(backup_filename, ".");
if (!metadata_list || (metadata_list->size != 6))
goto error;
/* Get extension of source core file */
src_ext = metadata_list->elems[1].data;
if (string_is_empty(src_ext))
goto error;
/* Check whether extension is valid */
if (!string_is_equal_noncase(src_ext, core_ext))
goto error;
string_list_free(metadata_list);
metadata_list = NULL;
return CORE_BACKUP_TYPE_ARCHIVE;
}
/* Check if this is a plain dynamic library file */
if (string_is_equal_noncase(backup_ext, core_ext))
return CORE_BACKUP_TYPE_LIB;
error:
if (metadata_list)
{
string_list_free(metadata_list);
metadata_list = NULL;
}
return CORE_BACKUP_TYPE_INVALID;
}
/* Fetches crc value of specified core backup file.
* Returns true if successful */
bool core_backup_get_backup_crc(char *backup_path, uint32_t *crc)
{
struct string_list *metadata_list = NULL;
enum core_backup_type backup_type;
if (string_is_empty(backup_path) || !crc)
goto error;
/* Get backup type */
backup_type = core_backup_get_backup_type(backup_path);
switch (backup_type)
{
case CORE_BACKUP_TYPE_ARCHIVE:
{
const char *backup_filename = NULL;
const char *crc_str = NULL;
/* Split the backup filename into its various
* metadata components */
backup_filename = path_basename(backup_path);
if (string_is_empty(backup_filename))
goto error;
metadata_list = string_split(backup_filename, ".");
if (!metadata_list || (metadata_list->size != 6))
goto error;
/* Get crc string */
crc_str = metadata_list->elems[3].data;
if (string_is_empty(crc_str))
goto error;
/* Convert to an integer */
*crc = (uint32_t)string_hex_to_unsigned(crc_str);
if (*crc == 0)
goto error;
string_list_free(metadata_list);
metadata_list = NULL;
}
return true;
case CORE_BACKUP_TYPE_LIB:
{
intfstream_t *backup_file = NULL;
/* This is a plain dynamic library file,
* have to read file data to determine crc */
/* Open backup file */
backup_file = intfstream_open_file(
backup_path, RETRO_VFS_FILE_ACCESS_READ,
RETRO_VFS_FILE_ACCESS_HINT_NONE);
if (backup_file)
{
bool success;
/* Get crc value */
success = intfstream_get_crc(backup_file, crc);
/* Close backup file */
intfstream_close(backup_file);
free(backup_file);
backup_file = NULL;
return success;
}
}
break;
default:
/* Backup is invalid */
break;
}
error:
if (metadata_list)
{
string_list_free(metadata_list);
metadata_list = NULL;
}
return false;
}
/* Fetches core path associated with specified core
* backup file. Returns detected type of backup
* file - CORE_BACKUP_TYPE_INVALID indicates that
* backup file cannot be restored/installed, or
* arguments are otherwise invalid */
enum core_backup_type core_backup_get_core_path(
const char *backup_path, const char *dir_libretro,
char *core_path, size_t len)
{
const char *backup_filename = NULL;
char *core_filename = NULL;
enum core_backup_type backup_type = CORE_BACKUP_TYPE_INVALID;
if (string_is_empty(backup_path) || string_is_empty(dir_libretro))
return backup_type;
backup_filename = path_basename(backup_path);
if (string_is_empty(backup_filename))
return backup_type;
/* Check backup type */
switch (core_backup_get_backup_type(backup_path))
{
case CORE_BACKUP_TYPE_ARCHIVE:
{
char *period = NULL;
/* This is an archived backup with timestamp/crc
* metadata in the filename */
core_filename = strdup(backup_filename);
/* Find the location of the second period */
period = strchr(core_filename, '.');
if (!period || (*(++period) == '\0'))
break;
period = strchr(period, '.');
if (!period)
break;
/* Trim everything after (and including) the
* second period */
*period = '\0';
if (string_is_empty(core_filename))
break;
/* All good - build core path */
fill_pathname_join(core_path, dir_libretro,
core_filename, len);
backup_type = CORE_BACKUP_TYPE_ARCHIVE;
}
break;
case CORE_BACKUP_TYPE_LIB:
/* This is a plain dynamic library file */
fill_pathname_join(core_path, dir_libretro,
backup_filename, len);
backup_type = CORE_BACKUP_TYPE_LIB;
break;
default:
/* Backup is invalid */
break;
}
if (core_filename)
{
free(core_filename);
core_filename = NULL;
}
return backup_type;
}
/*************************/
/* Backup List Functions */
/*************************/
/**************************************/
/* Initialisation / De-Initialisation */
/**************************************/
/* Parses backup file name and adds to backup list, if valid */
static bool core_backup_add_entry(core_backup_list_t *backup_list,
const char *core_filename, const char *backup_path)
{
char *backup_filename = NULL;
core_backup_list_entry_t *entry = NULL;
unsigned backup_mode = 0;
if (!backup_list ||
string_is_empty(core_filename) ||
string_is_empty(backup_path) ||
(backup_list->size >= backup_list->capacity))
goto error;
backup_filename = strdup(path_basename(backup_path));
if (string_is_empty(backup_filename))
goto error;
/* Ensure base backup filename matches core */
if (!string_starts_with(backup_filename, core_filename))
goto error;
/* Remove backup file extension */
path_remove_extension(backup_filename);
/* Parse backup filename metadata
* - <core_filename>.<timestamp>.<crc>.<backup_mode>
* - timestamp: YYYYMMDDTHHMMSS */
entry = &backup_list->entries[backup_list->size];
if (sscanf(backup_filename + strlen(core_filename),
".%04u%02u%02uT%02u%02u%02u.%08x.%u",
&entry->date.year, &entry->date.month, &entry->date.day,
&entry->date.hour, &entry->date.minute, &entry->date.second,
&entry->crc, &backup_mode) != 8)
goto error;
entry->backup_mode = (enum core_backup_mode)backup_mode;
/* Cache backup path */
entry->backup_path = strdup(backup_path);
backup_list->size++;
free(backup_filename);
return true;
error:
if (backup_filename)
free(backup_filename);
return false;
}
/* Creates a new core backup list containing entries
* for all existing backup files.
* Returns a handle to a new core_backup_list_t object
* on success, otherwise returns NULL. */
core_backup_list_t *core_backup_list_init(
const char *core_path, const char *dir_core_assets)
{
size_t i;
const char *core_filename = NULL;
struct string_list *dir_list = NULL;
core_backup_list_t *backup_list = NULL;
core_backup_list_entry_t *entries = NULL;
char core_dir[PATH_MAX_LENGTH];
char backup_dir[PATH_MAX_LENGTH];
core_dir[0] = '\0';
backup_dir[0] = '\0';
/* Get core filename and parent directory */
if (string_is_empty(core_path))
goto error;
core_filename = path_basename(core_path);
if (string_is_empty(core_filename))
goto error;
fill_pathname_parent_dir(core_dir, core_path, sizeof(core_dir));
if (string_is_empty(core_dir))
goto error;
/* Get backup directory */
if (!core_backup_get_backup_dir(core_dir, dir_core_assets, core_filename,
backup_dir, sizeof(backup_dir)))
goto error;
/* Get backup file list */
dir_list = dir_list_new(
backup_dir,
file_path_str(FILE_PATH_CORE_BACKUP_EXTENSION),
false, /* include_dirs */
false, /* include_hidden */
false, /* include_compressed */
false /* recursive */
);
/* Sanity check */
if (!dir_list)
goto error;
if (dir_list->size < 1)
goto error;
/* Ensure list is sorted in alphabetical order
* > This corresponds to 'timestamp' order */
dir_list_sort(dir_list, true);
/* Create core backup list */
backup_list = (core_backup_list_t*)malloc(sizeof(*backup_list));
if (!backup_list)
goto error;
backup_list->entries = NULL;
backup_list->capacity = 0;
backup_list->size = 0;
/* Create entries array
* (Note: Set this to the full size of the directory
* list - this may be larger than we need, but saves
* many inefficiencies later) */
entries = (core_backup_list_entry_t*)
calloc(dir_list->size, sizeof(*entries));
if (!entries)
goto error;
backup_list->entries = entries;
backup_list->capacity = dir_list->size;
/* Loop over backup files and parse file names */
for (i = 0; i < dir_list->size; i++)
{
const char *backup_path = dir_list->elems[i].data;
core_backup_add_entry(backup_list, core_filename, backup_path);
}
if (backup_list->size == 0)
goto error;
string_list_free(dir_list);
return backup_list;
error:
if (dir_list)
string_list_free(dir_list);
if (backup_list)
core_backup_list_free(backup_list);
return NULL;
}
/* Frees specified core backup list */
void core_backup_list_free(core_backup_list_t *backup_list)
{
size_t i;
if (!backup_list)
return;
if (backup_list->entries)
{
for (i = 0; i < backup_list->size; i++)
{
core_backup_list_entry_t *entry = &backup_list->entries[i];
if (!entry)
continue;
if (entry->backup_path)
{
free(entry->backup_path);
entry->backup_path = NULL;
}
}
free(backup_list->entries);
backup_list->entries = NULL;
}
free(backup_list);
}
/***********/
/* Getters */
/***********/
/* Returns number of entries in core backup list */
size_t core_backup_list_size(core_backup_list_t *backup_list)
{
if (!backup_list)
return 0;
return backup_list->size;
}
/* Returns number of entries of specified 'backup mode'
* (manual or automatic) in core backup list */
size_t core_backup_list_get_num_backups(
core_backup_list_t *backup_list,
enum core_backup_mode backup_mode)
{
size_t i;
size_t num_backups = 0;
if (!backup_list || !backup_list->entries)
return 0;
for (i = 0; i < backup_list->size; i++)
{
core_backup_list_entry_t *current_entry = &backup_list->entries[i];
if (current_entry &&
(current_entry->backup_mode == backup_mode))
num_backups++;
}
return num_backups;
}
/* Fetches core backup list entry corresponding
* to the specified entry index.
* Returns false if index is invalid. */
bool core_backup_list_get_index(
core_backup_list_t *backup_list,
size_t idx,
const core_backup_list_entry_t **entry)
{
if (!backup_list || !backup_list->entries || !entry)
return false;
if (idx >= backup_list->size)
return false;
*entry = &backup_list->entries[idx];
if (*entry)
return true;
return false;
}
/* Fetches core backup list entry corresponding
* to the specified core crc checksum value.
* Note that 'manual' and 'auto' backups are
* considered independent - we only compare
* crc values for the specified backup_mode.
* Returns false if entry is not found. */
bool core_backup_list_get_crc(
core_backup_list_t *backup_list,
uint32_t crc, enum core_backup_mode backup_mode,
const core_backup_list_entry_t **entry)
{
size_t i;
if (!backup_list || !backup_list->entries || !entry)
return false;
for (i = 0; i < backup_list->size; i++)
{
core_backup_list_entry_t *current_entry = &backup_list->entries[i];
if (current_entry &&
(current_entry->crc == crc) &&
(current_entry->backup_mode == backup_mode))
{
*entry = current_entry;
return true;
}
}
return false;
}
/* Fetches a string representation of a backup
* list entry timestamp.
* Returns false in the event of an error */
bool core_backup_list_get_entry_timestamp_str(
const core_backup_list_entry_t *entry,
enum core_backup_date_separator_type date_separator,
char *timestamp, size_t len)
{
int n;
const char *format_str = "";
if (!entry || (len < 20))
return false;
/* Get time format string */
switch (date_separator)
{
case CORE_BACKUP_DATE_SEPARATOR_SLASH:
format_str = "%04u/%02u/%02u %02u:%02u:%02u";
break;
case CORE_BACKUP_DATE_SEPARATOR_PERIOD:
format_str = "%04u.%02u.%02u %02u:%02u:%02u";
break;
default:
format_str = "%04u-%02u-%02u %02u:%02u:%02u";
break;
}
n = snprintf(timestamp, len,
format_str,
entry->date.year,
entry->date.month,
entry->date.day,
entry->date.hour,
entry->date.minute,
entry->date.second);
if ((n < 0) || (n >= 32))
n = 0; /* Silence GCC warnings... */
return true;
}
/* Fetches a string representation of a backup
* list entry crc value.
* Returns false in the event of an error */
bool core_backup_list_get_entry_crc_str(
const core_backup_list_entry_t *entry,
char *crc, size_t len)
{
int n;
if (!entry || (len < 9))
return false;
n = snprintf(crc, len, "%08x", entry->crc);
if ((n < 0) || (n >= 32))
n = 0; /* Silence GCC warnings... */
return true;
}
+177
View File
@@ -0,0 +1,177 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2014-2017 - Jean-André Santoni
* Copyright (C) 2016-2019 - Brad Parker
* Copyright (C) 2019-2020 - James Leaver
*
* 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 __CORE_BACKUP_H
#define __CORE_BACKUP_H
#include <retro_common_api.h>
#include <libretro.h>
#include <boolean.h>
RETRO_BEGIN_DECLS
/* Defines the various types of supported core backup
* file. Allows us to handle manual core installs
* (via downloaded/compiled dynamic libraries dropped
* in the 'downloads' folder) using the same task
* interface as 'managed'/archived backups */
enum core_backup_type
{
CORE_BACKUP_TYPE_INVALID = 0,
CORE_BACKUP_TYPE_ARCHIVE,
CORE_BACKUP_TYPE_LIB
};
/* Used to distinguish manual and automatic
* core backups */
enum core_backup_mode
{
CORE_BACKUP_MODE_MANUAL = 0,
CORE_BACKUP_MODE_AUTO
};
/* Note: These must be kept synchronised with
* 'enum menu_timedate_date_separator_type' in
* 'menu_defines.h' */
enum core_backup_date_separator_type
{
CORE_BACKUP_DATE_SEPARATOR_HYPHEN = 0,
CORE_BACKUP_DATE_SEPARATOR_SLASH,
CORE_BACKUP_DATE_SEPARATOR_PERIOD,
CORE_BACKUP_DATE_SEPARATOR_LAST
};
/* Holds all timestamp info for a core backup file */
typedef struct
{
unsigned year;
unsigned month;
unsigned day;
unsigned hour;
unsigned minute;
unsigned second;
} core_backup_list_date_t;
/* Holds all info related to a core backup file */
typedef struct
{
char *backup_path;
core_backup_list_date_t date;
uint32_t crc;
enum core_backup_mode backup_mode;
} core_backup_list_entry_t;
/* Prevent direct access to core_backup_list_t
* members */
typedef struct core_backup_list core_backup_list_t;
/*********************/
/* Utility Functions */
/*********************/
/* Generates a timestamped core backup file path from
* the specified core path. Returns true if successful */
bool core_backup_get_backup_path(
const char *core_path, uint32_t crc, enum core_backup_mode backup_mode,
const char *dir_core_assets, char *backup_path, size_t len);
/* Returns detected type of specified core backup file */
enum core_backup_type core_backup_get_backup_type(const char *backup_path);
/* Fetches crc value of specified core backup file.
* Returns true if successful */
bool core_backup_get_backup_crc(char *backup_path, uint32_t *crc);
/* Fetches core path associated with specified core
* backup file. Returns detected type of backup
* file - CORE_BACKUP_TYPE_INVALID indicates that
* backup file cannot be restored/installed, or
* arguments are otherwise invalid */
enum core_backup_type core_backup_get_core_path(
const char *backup_path, const char *dir_libretro,
char *core_path, size_t len);
/*************************/
/* Backup List Functions */
/*************************/
/**************************************/
/* Initialisation / De-Initialisation */
/**************************************/
/* Creates a new core backup list containing entries
* for all existing backup files.
* Returns a handle to a new core_backup_list_t object
* on success, otherwise returns NULL. */
core_backup_list_t *core_backup_list_init(
const char *core_path, const char *dir_core_assets);
/* Frees specified core backup list */
void core_backup_list_free(core_backup_list_t *backup_list);
/***********/
/* Getters */
/***********/
/* Returns number of entries in core backup list */
size_t core_backup_list_size(core_backup_list_t *backup_list);
/* Returns number of entries of specified 'backup mode'
* (manual or automatic) in core backup list */
size_t core_backup_list_get_num_backups(
core_backup_list_t *backup_list,
enum core_backup_mode backup_mode);
/* Fetches core backup list entry corresponding
* to the specified entry index.
* Returns false if index is invalid. */
bool core_backup_list_get_index(
core_backup_list_t *backup_list,
size_t idx,
const core_backup_list_entry_t **entry);
/* Fetches core backup list entry corresponding
* to the specified core crc checksum value.
* Note that 'manual' and 'auto' backups are
* considered independent - we only compare
* crc values for the specified backup_mode.
* Returns false if entry is not found. */
bool core_backup_list_get_crc(
core_backup_list_t *backup_list,
uint32_t crc, enum core_backup_mode backup_mode,
const core_backup_list_entry_t **entry);
/* Fetches a string representation of a backup
* list entry timestamp.
* Returns false in the event of an error */
bool core_backup_list_get_entry_timestamp_str(
const core_backup_list_entry_t *entry,
enum core_backup_date_separator_type date_separator,
char *timestamp, size_t len);
/* Fetches a string representation of a backup
* list entry crc value.
* Returns false in the event of an error */
bool core_backup_list_get_entry_crc_str(
const core_backup_list_entry_t *entry,
char *crc, size_t len);
RETRO_END_DECLS
#endif
+552 -194
View File
File diff suppressed because it is too large. Load diff
+76 -3
View File
@@ -35,10 +35,29 @@ typedef struct
bool optional;
} core_info_firmware_t;
/* Simple container/convenience struct for
* holding the 'id' of a core file
* > 'id' is the filename without extension or
* platform-specific suffix
* > 'id' is used for core info searches - enables
* matching regardless of core file base path,
* and is platform-independent (e.g. an Android
* core file will be correctly identified on Linux)
* > 'len' is used to cache the length of 'str', for
* improved performance when performing string
* comparisons */
typedef struct
{
char *str;
size_t len;
} core_file_id_t;
typedef struct
{
bool supports_no_game;
bool database_match_archive_member;
bool is_experimental;
bool is_locked;
size_t firmware_count;
char *path;
void *config_data;
@@ -56,6 +75,7 @@ typedef struct
char *databases;
char *notes;
char *required_hw_api;
char *description;
struct string_list *categories_list;
struct string_list *databases_list;
struct string_list *note_list;
@@ -65,9 +85,20 @@ typedef struct
struct string_list *licenses_list;
struct string_list *required_hw_api_list;
core_info_firmware_t *firmware;
core_file_id_t core_file_id;
void *userdata;
} core_info_t;
/* A subset of core_info parameters required for
* core updater tasks */
typedef struct
{
bool is_experimental;
char *display_name;
char *description;
char *licenses;
} core_updater_info_t;
typedef struct
{
core_info_t *list;
@@ -98,6 +129,18 @@ enum core_info_list_qsort_type
CORE_INFO_LIST_SORT_SYSTEM_NAME
};
struct core_info_state
{
#ifdef HAVE_COMPRESSION
const struct string_list *tmp_list;
#endif
const char *tmp_path;
core_info_t *current;
core_info_list_t *curr_list;
};
typedef struct core_info_state core_info_state_t;
size_t core_info_list_num_info_files(core_info_list_t *list);
/* Non-reentrant, does not allocate. Returns pointer to internal state. */
@@ -109,6 +152,14 @@ bool core_info_list_get_display_name(core_info_list_t *list,
bool core_info_get_display_name(const char *path, char *s, size_t len);
/* Returns core_info parameters required for
* core updater tasks, read from specified file.
* Returned core_updater_info_t object must be
* freed using core_info_free_core_updater_info().
* Returns NULL if 'path' is invalid. */
core_updater_info_t *core_info_get_core_updater_info(const char *path);
void core_info_free_core_updater_info(core_updater_info_t *info);
void core_info_get_name(const char *path, char *s, size_t len,
const char *path_info, const char *dir_cores,
const char *exts, bool show_hidden_files,
@@ -116,7 +167,7 @@ void core_info_get_name(const char *path, char *s, size_t len,
core_info_t *core_info_get(core_info_list_t *list, size_t i);
void core_info_free_current_core(void);
void core_info_free_current_core(core_info_state_t *p_coreinfo);
bool core_info_init_current_core(void);
@@ -132,9 +183,11 @@ bool core_info_get_list(core_info_list_t **core);
bool core_info_list_update_missing_firmware(core_info_ctx_firmware_t *info,
bool *set_missing_bios);
bool core_info_find(core_info_ctx_find_t *info, const char *name);
bool core_info_find(core_info_ctx_find_t *info);
bool core_info_load(core_info_ctx_find_t *info);
bool core_info_load(
core_info_ctx_find_t *info,
core_info_state_t *p_coreinfo);
bool core_info_database_supports_content_path(const char *database_path, const char *path);
@@ -149,6 +202,26 @@ bool core_info_list_get_info(core_info_list_t *core_info_list,
bool core_info_hw_api_supported(core_info_t *info);
/* Sets 'locked' status of specified core
* > Returns true if successful
* > Like all functions that access the cached
* core info list this is *not* thread safe */
bool core_info_set_core_lock(const char *core_path, bool lock);
/* Fetches 'locked' status of specified core
* > If 'validate_path' is 'true', will search
* cached core info list for a corresponding
* 'sanitised' core file path. This is *not*
* thread safe
* > If 'validate_path' is 'false', performs a
* direct filesystem check. This *is* thread
* safe, but validity of specified core path
* must be checked externally */
bool core_info_get_core_lock(const char *core_path, bool validate_path);
core_info_state_t *coreinfo_get_ptr(void);
bool core_info_core_file_id_is_equal(const char* core_path_a, const char* core_path_b);
RETRO_END_DECLS
#endif /* CORE_INFO_H_ */
+106 -22
View File
@@ -82,6 +82,18 @@ static void core_updater_list_free_entry(core_updater_list_entry_t *entry)
free(entry->display_name);
entry->display_name = NULL;
}
if (entry->description)
{
free(entry->description);
entry->description = NULL;
}
if (entry->licenses_list)
{
string_list_free(entry->licenses_list);
entry->licenses_list = NULL;
}
}
/* Creates a new, empty core updater list.
@@ -97,7 +109,7 @@ core_updater_list_t *core_updater_list_init(size_t max_size)
return NULL;
/* Create core updater list */
core_list = (core_updater_list_t*)calloc(1, sizeof(*core_list));
core_list = (core_updater_list_t*)malloc(sizeof(*core_list));
if (!core_list)
return NULL;
@@ -410,13 +422,11 @@ static bool core_updater_list_set_paths(
char remote_core_path[PATH_MAX_LENGTH];
char local_core_path[PATH_MAX_LENGTH];
char local_info_path[PATH_MAX_LENGTH];
char display_name[255];
bool is_archive;
remote_core_path[0] = '\0';
local_core_path[0] = '\0';
local_info_path[0] = '\0';
display_name[0] = '\0';
if (!entry || string_is_empty(filename_str))
return false;
@@ -499,10 +509,8 @@ static bool core_updater_list_set_paths(
last_underscore = (char*)strrchr(local_info_path, '_');
if (!string_is_empty(last_underscore))
{
if (string_is_not_equal_fast(last_underscore, "_libretro", 9))
if (!string_is_equal(last_underscore, "_libretro"))
*last_underscore = '\0';
}
/* > Add proper file extension */
strlcat(
@@ -518,29 +526,94 @@ static bool core_updater_list_set_paths(
entry->local_info_path = strdup(local_info_path);
/* display_name
* > Note: It's a bit rubbish that we have to
* read the actual core info files here...
* Would be better to cache this globally
* (at present, we only cache info for
* *installed* cores...) */
if (path_is_valid(local_info_path))
if (!core_info_get_display_name(
local_info_path, display_name, sizeof(display_name)))
display_name[0] = '\0';
return true;
}
/* > If info file does not exist, just use
* core filename */
if (string_is_empty(display_name))
strlcpy(display_name, filename_str, sizeof(display_name));
/* Reads info file associated with core and
* adds relevant information to updater list
* entry */
static bool core_updater_list_set_core_info(
core_updater_list_entry_t *entry,
const char *local_info_path,
const char *filename_str)
{
core_updater_info_t *core_info = NULL;
if (!entry ||
string_is_empty(local_info_path) ||
string_is_empty(filename_str))
return false;
/* Clear any existing core info */
if (entry->display_name)
{
free(entry->display_name);
entry->display_name = NULL;
}
entry->display_name = strdup(display_name);
if (entry->description)
{
free(entry->description);
entry->description = NULL;
}
if (entry->licenses_list)
{
/* Note: We can safely leave this as NULL if
* the core info file is invalid */
string_list_free(entry->licenses_list);
entry->licenses_list = NULL;
}
entry->is_experimental = false;
/* Read core info file
* > Note: It's a bit rubbish that we have to
* read the actual core info files here...
* Would be better to cache this globally
* (at present, we only cache info for
* *installed* cores...) */
core_info = core_info_get_core_updater_info(local_info_path);
if (core_info)
{
/* display_name + is_experimental */
if (!string_is_empty(core_info->display_name))
{
entry->display_name = strdup(core_info->display_name);
entry->is_experimental = core_info->is_experimental;
}
else
{
/* If display name is blank, use core filename and
* assume core is experimental (i.e. all 'fit for consumption'
* cores must have a valid/complete core info file) */
entry->display_name = strdup(filename_str);
entry->is_experimental = true;
}
/* description */
if (!string_is_empty(core_info->description))
entry->description = strdup(core_info->description);
else
entry->description = strdup("");
/* licenses_list */
if (!string_is_empty(core_info->licenses))
entry->licenses_list = string_split(core_info->licenses, "|");
/* Clean up */
core_info_free_core_updater_info(core_info);
}
else
{
/* If info file is missing, use core filename and
* assume core is experimental (i.e. all 'fit for consumption'
* cores must have a valid/complete core info file) */
entry->display_name = strdup(filename_str);
entry->is_experimental = true;
entry->description = strdup("");
}
return true;
}
@@ -576,10 +649,15 @@ static bool core_updater_list_push_entry(
list_entry->remote_core_path = entry->remote_core_path;
list_entry->local_core_path = entry->local_core_path;
list_entry->local_info_path = entry->local_info_path;
/* Assign core info */
list_entry->display_name = entry->display_name;
list_entry->description = entry->description;
list_entry->licenses_list = entry->licenses_list;
list_entry->is_experimental = entry->is_experimental;
/* Copy crc */
list_entry->crc = entry->crc;
list_entry->crc = entry->crc;
/* Copy date */
memcpy(&list_entry->date, &entry->date, sizeof(core_updater_list_date_t));
@@ -644,6 +722,12 @@ static void core_updater_list_add_entry(
filename_str))
goto error;
if (!core_updater_list_set_core_info(
&entry,
entry.local_info_path,
filename_str))
goto error;
/* Add entry to list */
if (!core_updater_list_push_entry(core_list, &entry))
goto error;
+5
View File
@@ -26,6 +26,8 @@
#include <retro_common_api.h>
#include <libretro.h>
#include <lists/string_list.h>
#include <boolean.h>
RETRO_BEGIN_DECLS
@@ -52,6 +54,9 @@ typedef struct
char *local_core_path;
char *local_info_path;
char *display_name;
char *description;
struct string_list *licenses_list;
bool is_experimental;
uint32_t crc;
core_updater_list_date_t date;
} core_updater_list_entry_t;
+1 -1
View File
@@ -144,7 +144,7 @@ void libretro_dummy_retro_get_system_av_info(
refresh_rate = 60.0;
info->timing.fps = refresh_rate;
info->timing.sample_rate = 30000.0;
info->timing.sample_rate = 48000.0;
info->geometry.base_width = frame_buf_width;
info->geometry.base_height = frame_buf_height;
-6
View File
@@ -126,12 +126,6 @@ else ifneq (,$(findstring win,$(platform)))
endif
endif
ifeq ($(HAVE_BIGENDIAN),1)
CPUOPTS += -DHAVE_BIGENDIAN=1 -DMSB_FIRST
else
CPUOPTS += -DHAVE_BIGENDIAN=0
endif
ifeq ($(HAVE_SSA), 1)
LIBS += $(shell pkg-config libass --libs)
DEFINES += -DHAVE_SSA
+239 -77
View File
@@ -67,6 +67,8 @@ extern "C" {
s ##_version() & 0xFF);
static bool reset_triggered;
static bool libretro_supports_bitmasks = false;
static void fallback_log(enum retro_log_level level, const char *fmt, ...)
{
va_list va;
@@ -193,11 +195,20 @@ static struct
{
unsigned width;
unsigned height;
double interpolate_fps;
unsigned sample_rate;
float aspect;
struct
{
double time;
unsigned hours;
unsigned minutes;
unsigned seconds;
} duration;
} media;
#ifdef HAVE_SSA
@@ -231,10 +242,27 @@ void CORE_PREFIX(retro_init)(void)
reset_triggered = false;
av_register_all();
if (CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_GET_INPUT_BITMASKS, NULL))
libretro_supports_bitmasks = true;
}
void CORE_PREFIX(retro_deinit)(void)
{}
{
libretro_supports_bitmasks = false;
if (video_buffer)
{
video_buffer_destroy(video_buffer);
video_buffer = NULL;
}
if (tpool)
{
tpool_destroy(tpool);
tpool = NULL;
}
}
unsigned CORE_PREFIX(retro_api_version)(void)
{
@@ -473,23 +501,89 @@ static void check_variables(bool firststart)
static void seek_frame(int seek_frames)
{
char msg[256];
struct retro_message msg_obj = {0};
struct retro_message_ext msg_obj = {0};
int seek_frames_capped = seek_frames;
unsigned seek_hours = 0;
unsigned seek_minutes = 0;
unsigned seek_seconds = 0;
int8_t seek_progress = -1;
msg[0] = '\0';
/* Handle resets + attempts to seek to a location
* before the start of the video */
if ((seek_frames < 0 && (unsigned)-seek_frames > frame_cnt) || reset_triggered)
frame_cnt = 0;
else
/* Handle backwards seeking */
else if (seek_frames < 0)
frame_cnt += seek_frames;
/* Handle forwards seeking */
else
{
double current_time = (double)frame_cnt / media.interpolate_fps;
double seek_step_time = (double)seek_frames / media.interpolate_fps;
double seek_target_time = current_time + seek_step_time;
double seek_time_max = media.duration.time - 1.0;
seek_time_max = (seek_time_max > 0.0) ?
seek_time_max : 0.0;
/* Ensure that we don't attempt to seek past
* the end of the file */
if (seek_target_time > seek_time_max)
{
seek_step_time = seek_time_max - current_time;
/* If seek would have taken us to the
* end of the file, restart it instead
* (less jarring for the user in case of
* accidental seeking...) */
if (seek_step_time < 0.0)
seek_frames_capped = -1;
else
seek_frames_capped = (int)(seek_step_time * media.interpolate_fps);
}
if (seek_frames_capped < 0)
frame_cnt = 0;
else
frame_cnt += seek_frames_capped;
}
slock_lock(fifo_lock);
do_seek = true;
seek_time = frame_cnt / media.interpolate_fps;
snprintf(msg, sizeof(msg), "Seek: %u s.", (unsigned)seek_time);
msg_obj.msg = msg;
msg_obj.frames = 180;
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_MESSAGE, &msg_obj);
/* Convert seek time to a printable format */
seek_seconds = (unsigned)seek_time;
seek_minutes = seek_seconds / 60;
seek_seconds %= 60;
seek_hours = seek_minutes / 60;
seek_minutes %= 60;
if (seek_frames < 0)
snprintf(msg, sizeof(msg), "%02d:%02d:%02d / %02d:%02d:%02d",
seek_hours, seek_minutes, seek_seconds,
media.duration.hours, media.duration.minutes, media.duration.seconds);
/* Get current progress */
if (media.duration.time > 0.0)
{
seek_progress = (int8_t)((100.0 * seek_time / media.duration.time) + 0.5);
seek_progress = (seek_progress < -1) ? -1 : seek_progress;
seek_progress = (seek_progress > 100) ? 100 : seek_progress;
}
/* Send message to frontend */
msg_obj.msg = msg;
msg_obj.duration = 2000;
msg_obj.priority = 3;
msg_obj.level = RETRO_LOG_INFO;
msg_obj.target = RETRO_MESSAGE_TARGET_OSD;
msg_obj.type = RETRO_MESSAGE_TYPE_PROGRESS;
msg_obj.progress = seek_progress;
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_MESSAGE_EXT, &msg_obj);
if (seek_frames_capped < 0)
{
log_cb(RETRO_LOG_INFO, "[FFMPEG] Resetting PTS.\n");
frames[0].pts = 0.0;
@@ -522,6 +616,7 @@ void CORE_PREFIX(retro_run)(void)
double min_pts;
int16_t audio_buffer[2048];
bool left, right, up, down, l, r;
int16_t ret = 0;
size_t to_read_frames = 0;
int seek_frames = 0;
bool updated = false;
@@ -552,20 +647,28 @@ void CORE_PREFIX(retro_run)(void)
CORE_PREFIX(input_poll_cb)();
left = CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0,
RETRO_DEVICE_ID_JOYPAD_LEFT);
right = CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0,
RETRO_DEVICE_ID_JOYPAD_RIGHT);
up = CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0,
RETRO_DEVICE_ID_JOYPAD_UP) ||
CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_WHEELUP);
down = CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0,
RETRO_DEVICE_ID_JOYPAD_DOWN) ||
CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_WHEELDOWN);
l = CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0,
RETRO_DEVICE_ID_JOYPAD_L);
r = CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0,
RETRO_DEVICE_ID_JOYPAD_R);
if (libretro_supports_bitmasks)
ret = CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD,
0, RETRO_DEVICE_ID_JOYPAD_MASK);
else
{
unsigned i;
for (i = RETRO_DEVICE_ID_JOYPAD_B; i <= RETRO_DEVICE_ID_JOYPAD_R; i++)
if (CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0, i))
ret |= (1 << i);
}
if (CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_WHEELUP))
ret |= (1 << RETRO_DEVICE_ID_JOYPAD_UP);
if (CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_WHEELDOWN))
ret |= (1 << RETRO_DEVICE_ID_JOYPAD_DOWN);
left = ret & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT);
right = ret & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT);
up = ret & (1 << RETRO_DEVICE_ID_JOYPAD_UP);
down = ret & (1 << RETRO_DEVICE_ID_JOYPAD_DOWN);
l = ret & (1 << RETRO_DEVICE_ID_JOYPAD_L);
r = ret & (1 << RETRO_DEVICE_ID_JOYPAD_R);
if (left && !last_left)
seek_frames -= 10 * media.interpolate_fps;
@@ -579,7 +682,9 @@ void CORE_PREFIX(retro_run)(void)
if (l && !last_l && audio_streams_num > 0)
{
char msg[256];
struct retro_message msg_obj = {0};
struct retro_message_ext msg_obj = {0};
msg[0] = '\0';
slock_lock(decode_thread_lock);
audio_streams_ptr = (audio_streams_ptr + 1) % audio_streams_num;
@@ -587,23 +692,36 @@ void CORE_PREFIX(retro_run)(void)
snprintf(msg, sizeof(msg), "Audio Track #%d.", audio_streams_ptr);
msg_obj.msg = msg;
msg_obj.frames = 180;
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_MESSAGE, &msg_obj);
msg_obj.msg = msg;
msg_obj.duration = 3000;
msg_obj.priority = 1;
msg_obj.level = RETRO_LOG_INFO;
msg_obj.target = RETRO_MESSAGE_TARGET_ALL;
msg_obj.type = RETRO_MESSAGE_TYPE_NOTIFICATION;
msg_obj.progress = -1;
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_MESSAGE_EXT, &msg_obj);
}
else if (r && !last_r && subtitle_streams_num > 0)
{
char msg[256];
struct retro_message msg_obj = {0};
struct retro_message_ext msg_obj = {0};
msg[0] = '\0';
slock_lock(decode_thread_lock);
subtitle_streams_ptr = (subtitle_streams_ptr + 1) % subtitle_streams_num;
slock_unlock(decode_thread_lock);
snprintf(msg, sizeof(msg), "Subtitle Track #%d.", subtitle_streams_ptr);
msg_obj.msg = msg;
msg_obj.frames = 180;
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_MESSAGE, &msg_obj);
msg_obj.msg = msg;
msg_obj.duration = 3000;
msg_obj.priority = 1;
msg_obj.level = RETRO_LOG_INFO;
msg_obj.target = RETRO_MESSAGE_TARGET_ALL;
msg_obj.type = RETRO_MESSAGE_TYPE_NOTIFICATION;
msg_obj.progress = -1;
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_MESSAGE_EXT, &msg_obj);
}
last_left = left;
@@ -649,7 +767,7 @@ void CORE_PREFIX(retro_run)(void)
to_read_bytes = to_read_frames * sizeof(int16_t) * 2;
slock_lock(fifo_lock);
while (!decode_thread_dead && fifo_read_avail(audio_decode_fifo) < to_read_bytes)
while (!decode_thread_dead && FIFO_READ_AVAIL(audio_decode_fifo) < to_read_bytes)
{
main_sleeping = true;
scond_signal(fifo_decode_cond);
@@ -658,7 +776,7 @@ void CORE_PREFIX(retro_run)(void)
}
reading_pts = decode_last_audio_time -
(double)fifo_read_avail(audio_decode_fifo) / (media.sample_rate * sizeof(int16_t) * 2);
(double)FIFO_READ_AVAIL(audio_decode_fifo) / (media.sample_rate * sizeof(int16_t) * 2);
expected_pts = (double)audio_frames / media.sample_rate;
old_pts_bias = pts_bias;
pts_bias = reading_pts - expected_pts;
@@ -692,38 +810,44 @@ void CORE_PREFIX(retro_run)(void)
frames[0] = tmp;
}
while (!decode_thread_dead && min_pts > frames[1].pts)
{
int64_t pts = 0;
if (!decode_thread_dead)
video_buffer_wait_for_finished_slot(video_buffer);
if (!decode_thread_dead)
{
uint32_t *data = video_frame_temp_buffer;
video_decoder_context_t *ctx = NULL;
video_buffer_get_finished_slot(video_buffer, &ctx);
pts = ctx->pts;
#if defined(HAVE_OPENGL) || defined(HAVE_OPENGLES)
if (use_gl)
if (use_gl)
{
float mix_factor;
while (!decode_thread_dead && min_pts > frames[1].pts)
{
int64_t pts = 0;
if (!decode_thread_dead)
video_buffer_wait_for_finished_slot(video_buffer);
if (!decode_thread_dead)
{
#ifndef HAVE_OPENGLES
unsigned y;
int stride, width;
const uint8_t *src = NULL;
video_decoder_context_t *ctx = NULL;
uint32_t *data = NULL;
video_buffer_get_finished_slot(video_buffer, &ctx);
pts = ctx->pts;
#ifdef HAVE_OPENGLES
data = video_frame_temp_buffer;
#else
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, frames[1].pbo);
#ifdef __MACH__
data = (uint32_t*)glMapBuffer(GL_PIXEL_UNPACK_BUFFER, GL_WRITE_ONLY);
data = (uint32_t*)glMapBuffer(GL_PIXEL_UNPACK_BUFFER, GL_WRITE_ONLY);
#else
data = (uint32_t*)glMapBufferRange(GL_PIXEL_UNPACK_BUFFER,
data = (uint32_t*)glMapBufferRange(GL_PIXEL_UNPACK_BUFFER,
0, media.width * media.height * sizeof(uint32_t), GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT);
#endif
#endif
const uint8_t *src = ctx->target->data[0];
int stride = ctx->target->linesize[0];
int width = media.width * sizeof(uint32_t);
for (unsigned y = 0; y < media.height; y++, src += stride, data += width/4)
src = ctx->target->data[0];
stride = ctx->target->linesize[0];
width = media.width * sizeof(uint32_t);
for (y = 0; y < media.height; y++, src += stride, data += width/4)
memcpy(data, src, width);
#ifndef HAVE_OPENGLES
@@ -741,28 +865,13 @@ void CORE_PREFIX(retro_run)(void)
#ifndef HAVE_OPENGLES
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0);
#endif
video_buffer_open_slot(video_buffer, ctx);
}
else
#endif
{
const uint8_t *src = ctx->target->data[0];
int stride = ctx->target->linesize[0];
size_t width = media.width * sizeof(uint32_t);
for (unsigned y = 0; y < media.height; y++, src += stride, data += width/4)
memcpy(data, src, width);
dupe = false;
}
video_buffer_open_slot(video_buffer, ctx);
frames[1].pts = av_q2d(fctx->streams[video_stream_index]->time_base) * pts;
}
frames[1].pts = av_q2d(fctx->streams[video_stream_index]->time_base) * pts;
}
#if defined(HAVE_OPENGL) || defined(HAVE_OPENGLES)
if (use_gl)
{
float mix_factor = (min_pts - frames[0].pts) / (frames[1].pts - frames[0].pts);
mix_factor = (min_pts - frames[0].pts) / (frames[1].pts - frames[0].pts);
if (!temporal_interpolation)
mix_factor = 1.0f;
@@ -804,6 +913,36 @@ void CORE_PREFIX(retro_run)(void)
else
#endif
{
while (!decode_thread_dead && min_pts > frames[1].pts)
{
int64_t pts = 0;
if (!decode_thread_dead)
video_buffer_wait_for_finished_slot(video_buffer);
if (!decode_thread_dead)
{
unsigned y;
const uint8_t *src;
int stride, width;
uint32_t *data = video_frame_temp_buffer;
video_decoder_context_t *ctx = NULL;
video_buffer_get_finished_slot(video_buffer, &ctx);
pts = ctx->pts;
src = ctx->target->data[0];
stride = ctx->target->linesize[0];
width = media.width * sizeof(uint32_t);
for (y = 0; y < media.height; y++, src += stride, data += width/4)
memcpy(data, src, width);
dupe = false;
video_buffer_open_slot(video_buffer, ctx);
}
frames[1].pts = av_q2d(fctx->streams[video_stream_index]->time_base) * pts;
}
CORE_PREFIX(video_cb)(dupe ? NULL : video_frame_temp_buffer,
media.width, media.height, media.width * sizeof(uint32_t));
}
@@ -1171,6 +1310,28 @@ static bool init_media_info(void)
av_q2d(vctx->sample_aspect_ratio) / vctx->height;
}
if (fctx)
{
if (fctx->duration != AV_NOPTS_VALUE)
{
int64_t duration = fctx->duration + (fctx->duration <= INT64_MAX - 5000 ? 5000 : 0);
media.duration.time = (double)(duration / AV_TIME_BASE);
media.duration.seconds = (unsigned)media.duration.time;
media.duration.minutes = media.duration.seconds / 60;
media.duration.seconds %= 60;
media.duration.hours = media.duration.minutes / 60;
media.duration.minutes %= 60;
}
else
{
media.duration.time = 0.0;
media.duration.hours = 0;
media.duration.minutes = 0;
media.duration.seconds = 0;
log_cb(RETRO_LOG_ERROR, "[FFMPEG] Could not determine media duration\n");
}
}
#ifdef HAVE_SSA
if (sctx[0])
{
@@ -1477,7 +1638,8 @@ static int16_t *decode_audio(AVCodecContext *ctx, AVPacket *pkt,
pts = frame->best_effort_timestamp;
slock_lock(fifo_lock);
while (!decode_thread_dead && fifo_write_avail(audio_decode_fifo) < required_buffer)
while (!decode_thread_dead &&
FIFO_WRITE_AVAIL(audio_decode_fifo) < required_buffer)
{
if (!main_sleeping)
scond_wait(fifo_decode_cond, fifo_lock);
@@ -1549,7 +1711,7 @@ static void decode_thread(void *data)
{
unsigned i;
bool eof = false;
struct SwrContext *swr[audio_streams_num];
struct SwrContext *swr[(audio_streams_num > 0) ? audio_streams_num : 1];
AVFrame *aud_frame = NULL;
size_t frame_size = 0;
int16_t *audio_buffer = NULL;
+4 -2
View File
@@ -1,10 +1,12 @@
#include "packet_buffer.h"
struct AVPacketNode {
struct AVPacketNode
{
AVPacket *data;
struct AVPacketNode *next;
struct AVPacketNode *previous;
};
typedef struct AVPacketNode AVPacketNode_t;
struct packet_buffer
@@ -14,7 +16,7 @@ struct packet_buffer
size_t size;
};
packet_buffer_t *packet_buffer_create()
packet_buffer_t *packet_buffer_create(void)
{
packet_buffer_t *b = (packet_buffer_t*)malloc(sizeof(packet_buffer_t));
if (!b)
+6
View File
@@ -6,7 +6,13 @@
#include <boolean.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#include <libavcodec/avcodec.h>
#ifdef __cplusplus
}
#endif
#include <retro_miscellaneous.h>
+52 -27
View File
@@ -1,4 +1,10 @@
#ifdef __cplusplus
extern "C" {
#endif
#include <libavformat/avformat.h>
#ifdef __cplusplus
}
#endif
#include <rthreads/rthreads.h>
@@ -6,7 +12,7 @@
enum kbStatus
{
KB_OPEN,
KB_OPEN = 0,
KB_IN_PROGRESS,
KB_FINISHED
};
@@ -23,32 +29,41 @@ struct video_buffer
int64_t tail;
};
video_buffer_t *video_buffer_create(size_t capacity, int frame_size, int width, int height)
video_buffer_t *video_buffer_create(
size_t capacity, int frame_size, int width, int height)
{
unsigned i;
video_buffer_t *b = (video_buffer_t*)malloc(sizeof(video_buffer_t));
if (!b)
return NULL;
memset(b, 0, sizeof(video_buffer_t));
b->capacity = capacity;
b->buffer = NULL;
b->capacity = capacity;
b->lock = NULL;
b->open_cond = NULL;
b->finished_cond = NULL;
b->head = 0;
b->tail = 0;
b->status = (enum kbStatus*)malloc(sizeof(enum kbStatus) * capacity);
b->status = (enum kbStatus*)malloc(sizeof(enum kbStatus) * capacity);
if (!b->status)
goto fail;
for (int i = 0; i < capacity; i++)
b->status[i] = KB_OPEN;
b->lock = slock_new();
b->open_cond = scond_new();
for (i = 0; i < capacity; i++)
b->status[i] = KB_OPEN;
b->lock = slock_new();
b->open_cond = scond_new();
b->finished_cond = scond_new();
if (!b->lock || !b->open_cond || !b->finished_cond)
goto fail;
b->buffer = (video_decoder_context_t*)malloc(sizeof(video_decoder_context_t) * capacity);
b->buffer = (video_decoder_context_t*)
malloc(sizeof(video_decoder_context_t) * capacity);
if (!b->buffer)
goto fail;
for (int i = 0; i < capacity; i++)
for (i = 0; i < (unsigned)capacity; i++)
{
b->buffer[i].index = i;
b->buffer[i].pts = 0;
@@ -58,18 +73,16 @@ video_buffer_t *video_buffer_create(size_t capacity, int frame_size, int width,
b->buffer[i].hw_source = av_frame_alloc();
#endif
b->buffer[i].target = av_frame_alloc();
b->buffer[i].frame_buf = (uint8_t*)av_malloc(frame_size);
avpicture_fill((AVPicture*)b->buffer[i].target, (const uint8_t*)b->buffer[i].frame_buf,
avpicture_alloc((AVPicture*)b->buffer[i].target,
PIX_FMT_RGB32, width, height);
if (!b->buffer[i].sws ||
!b->buffer[i].source ||
if (!b->buffer[i].sws ||
!b->buffer[i].source ||
#if LIBAVUTIL_VERSION_MAJOR > 55
!b->buffer[i].hw_source ||
#endif
!b->buffer[i].target ||
!b->buffer[i].frame_buf)
!b->buffer[i].target)
goto fail;
}
return b;
@@ -81,6 +94,7 @@ fail:
void video_buffer_destroy(video_buffer_t *video_buffer)
{
unsigned i;
if (!video_buffer)
return;
@@ -89,22 +103,25 @@ void video_buffer_destroy(video_buffer_t *video_buffer)
scond_free(video_buffer->finished_cond);
free(video_buffer->status);
if (video_buffer->buffer)
for (int i = 0; i < video_buffer->capacity; i++)
{
for (i = 0; i < video_buffer->capacity; i++)
{
#if LIBAVUTIL_VERSION_MAJOR > 55
#if LIBAVUTIL_VERSION_MAJOR > 55
av_frame_free(&video_buffer->buffer[i].hw_source);
#endif
#endif
av_frame_free(&video_buffer->buffer[i].source);
avpicture_free((AVPicture*)video_buffer->buffer[i].target);
av_frame_free(&video_buffer->buffer[i].target);
av_freep(&video_buffer->buffer[i].frame_buf);
sws_freeContext(video_buffer->buffer[i].sws);
}
}
free(video_buffer->buffer);
free(video_buffer);
}
void video_buffer_clear(video_buffer_t *video_buffer)
{
unsigned i;
if (!video_buffer)
return;
@@ -115,13 +132,14 @@ void video_buffer_clear(video_buffer_t *video_buffer)
video_buffer->head = 0;
video_buffer->tail = 0;
for (int i = 0; i < video_buffer->capacity; i++)
for (i = 0; i < video_buffer->capacity; i++)
video_buffer->status[i] = KB_OPEN;
slock_unlock(video_buffer->lock);
}
void video_buffer_get_open_slot(video_buffer_t *video_buffer, video_decoder_context_t **context)
void video_buffer_get_open_slot(
video_buffer_t *video_buffer, video_decoder_context_t **context)
{
slock_lock(video_buffer->lock);
@@ -136,7 +154,8 @@ void video_buffer_get_open_slot(video_buffer_t *video_buffer, video_decoder_cont
slock_unlock(video_buffer->lock);
}
void video_buffer_return_open_slot(video_buffer_t *video_buffer, video_decoder_context_t *context)
void video_buffer_return_open_slot(
video_buffer_t *video_buffer, video_decoder_context_t *context)
{
slock_lock(video_buffer->lock);
@@ -150,7 +169,9 @@ void video_buffer_return_open_slot(video_buffer_t *video_buffer, video_decoder_c
slock_unlock(video_buffer->lock);
}
void video_buffer_open_slot(video_buffer_t *video_buffer, video_decoder_context_t *context)
void video_buffer_open_slot(
video_buffer_t *video_buffer,
video_decoder_context_t *context)
{
slock_lock(video_buffer->lock);
@@ -165,7 +186,9 @@ void video_buffer_open_slot(video_buffer_t *video_buffer, video_decoder_context_
slock_unlock(video_buffer->lock);
}
void video_buffer_get_finished_slot(video_buffer_t *video_buffer, video_decoder_context_t **context)
void video_buffer_get_finished_slot(
video_buffer_t *video_buffer,
video_decoder_context_t **context)
{
slock_lock(video_buffer->lock);
@@ -175,7 +198,9 @@ void video_buffer_get_finished_slot(video_buffer_t *video_buffer, video_decoder_
slock_unlock(video_buffer->lock);
}
void video_buffer_finish_slot(video_buffer_t *video_buffer, video_decoder_context_t *context)
void video_buffer_finish_slot(
video_buffer_t *video_buffer,
video_decoder_context_t *context)
{
slock_lock(video_buffer->lock);
+14
View File
@@ -6,13 +6,27 @@
#include <boolean.h>
#include <stdint.h>
#ifdef RARCH_INTERNAL
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#endif
#ifdef HAVE_SSA
#include <ass/ass.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
#include <libavutil/frame.h>
#include <libswscale/swscale.h>
#ifdef __cplusplus
}
#endif
#include <retro_miscellaneous.h>
RETRO_BEGIN_DECLS
+18 -9
View File
@@ -37,25 +37,32 @@ void ctr_linear_free_pages(u32 pages);
void ctr_free_pages(u32 pages)
{
u32 linear_free_pages;
u32 stack_free, stack_usage, stack_free_pages;
if(!pages)
return;
u32 linear_free_pages = ctr_get_linear_free() >> 12;
linear_free_pages = ctr_get_linear_free() >> 12;
if((ctr_get_linear_unused() >> 12) > pages + 0x100)
if ((ctr_get_linear_unused() >> 12) > pages + 0x100)
return ctr_linear_free_pages(pages);
#if 0
if(linear_free_pages > pages + 0x400)
if (linear_free_pages > pages + 0x400)
return ctr_linear_free_pages(pages);
#endif
u32 stack_free = ctr_get_stack_free();
u32 stack_usage = __stacksize__ > stack_free? __stacksize__ - stack_free: 0;
stack_free = ctr_get_stack_free();
stack_usage = __stacksize__ > stack_free
? __stacksize__ - stack_free
: 0;
stack_free = stack_free > __stack_size_extra ? __stack_size_extra : stack_free;
stack_free = stack_free > __stack_size_extra
? __stack_size_extra
: stack_free;
u32 stack_free_pages = stack_free >> 12;
stack_free_pages = stack_free >> 12;
if(linear_free_pages + (stack_free_pages - (stack_usage >> 12)) > pages)
{
@@ -83,7 +90,8 @@ void ctr_free_pages(u32 pages)
__stacksize__ -= stack_free_pages << 12;
#if 0
printf("s:0x%08X-->0x%08X(-0x%08X) \n", stack_free,
stack_free - (stack_free_pages << 12), stack_free_pages << 12);
stack_free - (stack_free_pages << 12),
stack_free_pages << 12);
DEBUG_HOLD();
#endif
}
@@ -111,11 +119,12 @@ void* _sbrk_r(struct _reent *ptr, ptrdiff_t incr)
{
static u32 sbrk_top = 0;
u32 tmp;
int diff;
if (!sbrk_top)
sbrk_top = __heapBase;
int diff = ((sbrk_top + incr + 0xFFF) & ~0xFFF)
diff = ((sbrk_top + incr + 0xFFF) & ~0xFFF)
- (__heapBase + __heap_size);
if (diff > 0)
+154 -111
View File
@@ -15,13 +15,53 @@
#define SVC_ACL_MASK(svc_id) (0x1 << ((svc_id) & 0x1F))
#define THREAD_PAGE_ACL_OFFSET 0xF38
u32 __ctr_svchax = 0;
u32 __ctr_svchax = 0;
u32 __ctr_svchax_srv = 0;
extern void* __service_ptr;
typedef u32(*backdoor_fn)(u32 arg0, u32 arg1);
typedef struct
{
Handle started_event;
Handle lock;
volatile u32 target_kaddr;
volatile u32 target_val;
} mch2_thread_args_t;
typedef struct
{
u32* stack_top;
Handle handle;
bool keep;
mch2_thread_args_t args;
} mch2_thread_t;
typedef struct
{
u32 old_cpu_time_limit;
bool isNew3DS;
u32 kernel_fcram_mapping_offset;
Handle arbiter;
volatile u32 alloc_address;
volatile u32 alloc_size;
u8* flush_buffer;
Handle dummy_threads_lock;
Handle target_threads_lock;
Handle main_thread_lock;
u32* thread_page_va;
u32 thread_page_kva;
u32 threads_limit;
Handle alloc_thread;
Handle poll_thread;
mch2_thread_t threads[MCH2_THREAD_COUNT_MAX];
} mch2_vars_t;
__attribute((naked))
static u32 svc_7b(backdoor_fn entry_fn, ...) /* can pass up to two arguments to entry_fn(...) */
{
@@ -46,7 +86,7 @@ static u32 svc_7b(backdoor_fn entry_fn, ...) /* can pass up to two arguments to
static void k_enable_all_svcs(u32 isNew3DS)
{
u32* thread_ACL = *(*(u32***)CURRENT_KTHREAD + 0x22) - 0x6;
u32* thread_ACL = *(*(u32***)CURRENT_KTHREAD + 0x22) - 0x6;
u32* process_ACL = *(u32**)CURRENT_KPROCESS + (isNew3DS ? 0x24 : 0x22);
memset(thread_ACL, 0xFF, 0x10);
@@ -88,45 +128,6 @@ static u32 get_thread_page(void)
return 0;
}
typedef struct
{
Handle started_event;
Handle lock;
volatile u32 target_kaddr;
volatile u32 target_val;
} mch2_thread_args_t;
typedef struct
{
u32* stack_top;
Handle handle;
bool keep;
mch2_thread_args_t args;
} mch2_thread_t;
typedef struct
{
u32 old_cpu_time_limit;
bool isNew3DS;
u32 kernel_fcram_mapping_offset;
Handle arbiter;
volatile u32 alloc_address;
volatile u32 alloc_size;
u8* flush_buffer;
Handle dummy_threads_lock;
Handle target_threads_lock;
Handle main_thread_lock;
u32* thread_page_va;
u32 thread_page_kva;
u32 threads_limit;
Handle alloc_thread;
Handle poll_thread;
mch2_thread_t threads[MCH2_THREAD_COUNT_MAX];
} mch2_vars_t;
static void alloc_thread_entry(mch2_vars_t* mch2)
{
u32 tmp;
@@ -162,7 +163,7 @@ static u32 get_first_free_basemem_page(bool isNew3DS)
{
s64 v1;
int memused_base_linear; /* guessed */
int memused_base = osGetMemRegionUsed(MEMREGION_BASE);
int memused_base = osGetMemRegionUsed(MEMREGION_BASE);
svcGetSystemInfo(&v1, 2, 0);
memused_base_linear = 0x6C000 + v1 +
@@ -197,13 +198,25 @@ static void do_memchunkhax2(void)
{
static u8 flush_buffer[0x8000];
static u8 thread_stacks[MCH2_THREAD_STACKS_SIZE];
extern u32 __heapBase;
extern u32 __heap_size;
int i;
u32 tmp;
mch2_vars_t mch2 = {0};
u32 linear_buffer;
u32 linear_address;
u32 dst_memchunk;
u32 mem_free;
u32 fragmented_size;
u32* mapped_page;
volatile u32 *thread_ACL;
u32 alloc_address_kaddr;
u32 fragmented_address = 0;
u32 linear_size = 0xF000;
u32 skip_pages = 2;
mch2_vars_t mch2 = {0};
mch2.flush_buffer = flush_buffer;
mch2.threads_limit = get_threads_limit();
mch2.flush_buffer = flush_buffer;
mch2.threads_limit = get_threads_limit();
mch2.kernel_fcram_mapping_offset = (osGetKernelVersion() > SYSTEM_VERSION(2, 40, 0)) ? 0xC0000000 : 0xD0000000;
for (i = 0; i < MCH2_THREAD_COUNT_MAX; i++)
@@ -215,8 +228,10 @@ static void do_memchunkhax2(void)
for (i = 0; i < mch2.threads_limit; i++)
{
svcCreateThread(&mch2.threads[i].handle, (ThreadFunc)check_tls_thread_entry, (u32)&mch2.threads[i].keep,
mch2.threads[i].stack_top, 0x18, 0);
svcCreateThread(&mch2.threads[i].handle,
(ThreadFunc)check_tls_thread_entry,
(u32)&mch2.threads[i].keep,
mch2.threads[i].stack_top, 0x18, 0);
svcWaitSynchronization(mch2.threads[i].handle, U64_MAX);
}
@@ -229,61 +244,70 @@ static void do_memchunkhax2(void)
for (i = 0; i < mch2.threads_limit; i++)
if (!mch2.threads[i].keep)
svcCreateThread(&mch2.threads[i].handle, (ThreadFunc)dummy_thread_entry, mch2.dummy_threads_lock,
mch2.threads[i].stack_top, 0x3F - i, 0);
svcCreateThread(&mch2.threads[i].handle,
(ThreadFunc)dummy_thread_entry,
mch2.dummy_threads_lock,
mch2.threads[i].stack_top, 0x3F - i, 0);
svcSignalEvent(mch2.dummy_threads_lock);
for (i = mch2.threads_limit - 1; i >= 0; i--)
{
if (!mch2.threads[i].keep)
{
svcWaitSynchronization(mch2.threads[i].handle, U64_MAX);
svcCloseHandle(mch2.threads[i].handle);
mch2.threads[i].handle = 0;
}
}
svcCloseHandle(mch2.dummy_threads_lock);
u32 fragmented_address = 0;
mch2.arbiter = __sync_get_arbiter();
mch2.arbiter = __sync_get_arbiter();
svcControlMemory(&linear_buffer, 0, 0, 0x1000,
MEMOP_ALLOC_LINEAR, MEMPERM_READ | MEMPERM_WRITE);
u32 linear_buffer;
svcControlMemory(&linear_buffer, 0, 0, 0x1000, MEMOP_ALLOC_LINEAR, MEMPERM_READ | MEMPERM_WRITE);
mch2.alloc_size = ((((linear_size - (skip_pages << 12))
+ 0x1000) >> 13) << 12);
u32 linear_size = 0xF000;
u32 skip_pages = 2;
mch2.alloc_size = ((((linear_size - (skip_pages << 12)) + 0x1000) >> 13) << 12);
u32 mem_free = osGetMemRegionFree(MEMREGION_APPLICATION);
mem_free = osGetMemRegionFree(MEMREGION_APPLICATION);
fragmented_size = mem_free - linear_size;
u32 fragmented_size = mem_free - linear_size;
extern u32 __heapBase;
extern u32 __heap_size;
fragmented_address = __heapBase + __heap_size;
u32 linear_address;
mch2.alloc_address = fragmented_address + fragmented_size;
fragmented_address = __heapBase + __heap_size;
mch2.alloc_address = fragmented_address + fragmented_size;
svcControlMemory(&linear_address, 0x0, 0x0, linear_size, MEMOP_ALLOC_LINEAR,
MEMPERM_READ | MEMPERM_WRITE);
svcControlMemory(&linear_address,
0x0, 0x0, linear_size, MEMOP_ALLOC_LINEAR,
MEMPERM_READ | MEMPERM_WRITE);
if (fragmented_size)
svcControlMemory(&tmp, (u32)fragmented_address, 0x0, fragmented_size, MEMOP_ALLOC,
MEMPERM_READ | MEMPERM_WRITE);
svcControlMemory(&tmp,
(u32)fragmented_address, 0x0, fragmented_size, MEMOP_ALLOC,
MEMPERM_READ | MEMPERM_WRITE);
if (skip_pages)
svcControlMemory(&tmp, (u32)linear_address, 0x0, (skip_pages << 12), MEMOP_FREE, MEMPERM_DONTCARE);
svcControlMemory(&tmp,
(u32)linear_address, 0x0, (skip_pages << 12), MEMOP_FREE,
MEMPERM_DONTCARE);
for (i = skip_pages; i < (linear_size >> 12) ; i += 2)
svcControlMemory(&tmp, (u32)linear_address + (i << 12), 0x0, 0x1000, MEMOP_FREE, MEMPERM_DONTCARE);
svcControlMemory(&tmp,
(u32)linear_address + (i << 12), 0x0, 0x1000,
MEMOP_FREE, MEMPERM_DONTCARE);
u32 alloc_address_kaddr = osConvertVirtToPhys((void*)linear_address) + mch2.kernel_fcram_mapping_offset;
alloc_address_kaddr = osConvertVirtToPhys(
(void*)linear_address) + mch2.kernel_fcram_mapping_offset;
mch2.thread_page_kva = get_first_free_basemem_page(mch2.isNew3DS) - 0x10000; /* skip down 16 pages */
mch2.thread_page_kva = get_first_free_basemem_page(mch2.isNew3DS)
- 0x10000; /* skip down 16 pages */
((u32*)linear_buffer)[0] = 1;
((u32*)linear_buffer)[1] = mch2.thread_page_kva;
((u32*)linear_buffer)[2] = alloc_address_kaddr + (((mch2.alloc_size >> 12) - 3) << 13) + (skip_pages << 12);
u32 dst_memchunk = linear_address + (((mch2.alloc_size >> 12) - 2) << 13) + (skip_pages << 12);
dst_memchunk = linear_address
+ (((mch2.alloc_size >> 12) - 2) << 13)
+ (skip_pages << 12);
memcpy(flush_buffer, flush_buffer + 0x4000, 0x4000);
@@ -291,18 +315,21 @@ static void do_memchunkhax2(void)
GSPGPU_FlushDataCache((void*)linear_buffer, 16);
memcpy(flush_buffer, flush_buffer + 0x4000, 0x4000);
/* can't clear gspEvents[GSPGPU_EVENT_PPF]), directly so execute a dummy copy
* and use gspWaitForEvent to clear it. */
/* can't clear gspEvents[GSPGPU_EVENT_PPF]),
* directly so execute a dummy copy
* and use gspWaitForEvent to clear it. */
/* LightEvent_Clear(&gspEvents[GSPGPU_EVENT_PPF]); */
/* LightEvent_Clear(&gspEvents[GSPGPU_EVENT_PPF]); */
GX_TextureCopy((void*)linear_buffer, 0, (void*)dst_memchunk, 0, 16, 8);
gspWaitForEvent(GSPGPU_EVENT_PPF, false);
svcCreateThread(&mch2.alloc_thread, (ThreadFunc)alloc_thread_entry, (u32)&mch2,
mch2.threads[MCH2_THREAD_COUNT_MAX - 1].stack_top, 0x3F, 1);
svcCreateThread(&mch2.alloc_thread,
(ThreadFunc)alloc_thread_entry, (u32)&mch2,
mch2.threads[MCH2_THREAD_COUNT_MAX - 1].stack_top, 0x3F, 1);
while ((u32) svcArbitrateAddress(mch2.arbiter, mch2.alloc_address, ARBITRATION_WAIT_IF_LESS_THAN_TIMEOUT, 0,
0) == 0xD9001814);
while ((u32) svcArbitrateAddress(mch2.arbiter, mch2.alloc_address,
ARBITRATION_WAIT_IF_LESS_THAN_TIMEOUT, 0,
0) == 0xD9001814);
GX_TextureCopy((void*)linear_buffer, 0, (void*)dst_memchunk, 0, 16, 8);
memcpy(flush_buffer, flush_buffer + 0x4000, 0x4000);
@@ -311,9 +338,9 @@ static void do_memchunkhax2(void)
svcWaitSynchronization(mch2.alloc_thread, U64_MAX);
svcCloseHandle(mch2.alloc_thread);
u32* mapped_page = (u32*)(mch2.alloc_address + mch2.alloc_size - 0x1000);
volatile u32* thread_ACL = &mapped_page[THREAD_PAGE_ACL_OFFSET >> 2];
mapped_page = (u32*)
(mch2.alloc_address + mch2.alloc_size - 0x1000);
thread_ACL = &mapped_page[THREAD_PAGE_ACL_OFFSET >> 2];
svcCreateEvent(&mch2.main_thread_lock, 0);
svcCreateEvent(&mch2.target_threads_lock, 1);
@@ -325,16 +352,18 @@ static void do_memchunkhax2(void)
continue;
mch2.threads[i].args.started_event = mch2.main_thread_lock;
mch2.threads[i].args.lock = mch2.target_threads_lock;
mch2.threads[i].args.target_kaddr = 0;
mch2.threads[i].args.lock = mch2.target_threads_lock;
mch2.threads[i].args.target_kaddr = 0;
thread_ACL[0] = 0;
thread_ACL[0] = 0;
GSPGPU_FlushDataCache((void*)thread_ACL, 16);
GSPGPU_InvalidateDataCache((void*)thread_ACL, 16);
svcClearEvent(mch2.main_thread_lock);
svcCreateThread(&mch2.threads[i].handle, (ThreadFunc)target_thread_entry, (u32)&mch2.threads[i].args,
mch2.threads[i].stack_top, 0x18, 0);
svcCreateThread(&mch2.threads[i].handle,
(ThreadFunc)target_thread_entry,
(u32)&mch2.threads[i].args,
mch2.threads[i].stack_top, 0x18, 0);
svcWaitSynchronization(mch2.main_thread_lock, U64_MAX);
if (thread_ACL[0])
@@ -342,8 +371,10 @@ static void do_memchunkhax2(void)
thread_ACL[SVC_ACL_OFFSET(0x7B) >> 2] = SVC_ACL_MASK(0x7B);
GSPGPU_FlushDataCache((void*)thread_ACL, 16);
GSPGPU_InvalidateDataCache((void*)thread_ACL, 16);
mch2.threads[i].args.target_kaddr = get_thread_page() + THREAD_PAGE_ACL_OFFSET + SVC_ACL_OFFSET(0x7B);
mch2.threads[i].args.target_val = SVC_ACL_MASK(0x7B);
mch2.threads[i].args.target_kaddr = get_thread_page()
+ THREAD_PAGE_ACL_OFFSET
+ SVC_ACL_OFFSET(0x7B);
mch2.threads[i].args.target_val = SVC_ACL_MASK(0x7B);
break;
}
@@ -365,14 +396,18 @@ static void do_memchunkhax2(void)
svcCloseHandle(mch2.target_threads_lock);
svcCloseHandle(mch2.main_thread_lock);
svcControlMemory(&tmp, mch2.alloc_address, 0, mch2.alloc_size, MEMOP_FREE, MEMPERM_DONTCARE);
svcControlMemory(&tmp, mch2.alloc_address, 0, mch2.alloc_size,
MEMOP_FREE, MEMPERM_DONTCARE);
write_kaddr(alloc_address_kaddr + linear_size - 0x3000 + 0x4, alloc_address_kaddr + linear_size - 0x1000);
svcControlMemory(&tmp, (u32)fragmented_address, 0x0, fragmented_size, MEMOP_FREE, MEMPERM_DONTCARE);
svcControlMemory(&tmp, (u32)fragmented_address, 0x0, fragmented_size,
MEMOP_FREE, MEMPERM_DONTCARE);
for (i = 1 + skip_pages; i < (linear_size >> 12) ; i += 2)
svcControlMemory(&tmp, (u32)linear_address + (i << 12), 0x0, 0x1000, MEMOP_FREE, MEMPERM_DONTCARE);
svcControlMemory(&tmp, (u32)linear_address + (i << 12), 0x0, 0x1000,
MEMOP_FREE, MEMPERM_DONTCARE);
svcControlMemory(&tmp, linear_buffer, 0, 0x1000, MEMOP_FREE, MEMPERM_DONTCARE);
svcControlMemory(&tmp, linear_buffer, 0, 0x1000, MEMOP_FREE,
MEMPERM_DONTCARE);
APT_SetAppCpuTimeLimit(mch2.old_cpu_time_limit);
}
@@ -418,7 +453,8 @@ static void memchunkhax1_write_pair(u32 val1, u32 val2)
u32* next_ptr1;
u32* prev_ptr6;
svcControlMemory(&linear_buffer, 0, 0, 0x10000, MEMOP_ALLOC_LINEAR, MEMPERM_READ | MEMPERM_WRITE);
svcControlMemory(&linear_buffer, 0, 0, 0x10000,
MEMOP_ALLOC_LINEAR, MEMPERM_READ | MEMPERM_WRITE);
flush_buffer = (u8*)(linear_buffer + 0x8000);
@@ -426,23 +462,24 @@ static void memchunkhax1_write_pair(u32 val1, u32 val2)
svcControlMemory(&tmp, linear_buffer + 0x3000, 0, 0x2000, MEMOP_FREE, 0);
svcControlMemory(&tmp, linear_buffer + 0x6000, 0, 0x1000, MEMOP_FREE, 0);
next_ptr1 = (u32*)(linear_buffer + 0x0004);
next_ptr1 = (u32*)(linear_buffer + 0x0004);
gspwn(linear_buffer + 0x0000, linear_buffer + 0x1000, 16, flush_buffer);
next_ptr3 = (u32*)(linear_buffer + 0x2004);
prev_ptr3 = (u32*)(linear_buffer + 0x2008);
next_ptr3 = (u32*)(linear_buffer + 0x2004);
prev_ptr3 = (u32*)(linear_buffer + 0x2008);
gspwn(linear_buffer + 0x2000, linear_buffer + 0x3000, 16, flush_buffer);
prev_ptr6 = (u32*)(linear_buffer + 0x5008);
prev_ptr6 = (u32*)(linear_buffer + 0x5008);
gspwn(linear_buffer + 0x5000, linear_buffer + 0x6000, 16, flush_buffer);
*next_ptr1 = *next_ptr3;
*prev_ptr6 = *prev_ptr3;
*next_ptr1 = *next_ptr3;
*prev_ptr6 = *prev_ptr3;
*prev_ptr3 = val1 - 4;
*next_ptr3 = val2;
*prev_ptr3 = val1 - 4;
*next_ptr3 = val2;
gspwn(linear_buffer + 0x3000, linear_buffer + 0x2000, 16, flush_buffer);
svcControlMemory(&tmp, 0, 0, 0x2000, MEMOP_ALLOC_LINEAR, MEMPERM_READ | MEMPERM_WRITE);
svcControlMemory(&tmp, 0, 0, 0x2000,
MEMOP_ALLOC_LINEAR, MEMPERM_READ | MEMPERM_WRITE);
gspwn(linear_buffer + 0x1000, linear_buffer + 0x0000, 16, flush_buffer);
gspwn(linear_buffer + 0x6000, linear_buffer + 0x5000, 16, flush_buffer);
@@ -450,7 +487,6 @@ static void memchunkhax1_write_pair(u32 val1, u32 val2)
svcControlMemory(&tmp, linear_buffer + 0x0000, 0, 0x1000, MEMOP_FREE, 0);
svcControlMemory(&tmp, linear_buffer + 0x2000, 0, 0x4000, MEMOP_FREE, 0);
svcControlMemory(&tmp, linear_buffer + 0x7000, 0, 0x9000, MEMOP_FREE, 0);
}
static void do_memchunkhax1(void)
@@ -458,7 +494,9 @@ static void do_memchunkhax1(void)
u32 saved_vram_value = *(u32*)0x1F000008;
/* 0x1F000000 contains the enable bit for svc 0x7B */
memchunkhax1_write_pair(get_thread_page() + THREAD_PAGE_ACL_OFFSET + SVC_ACL_OFFSET(0x7B), 0x1F000000);
memchunkhax1_write_pair(get_thread_page()
+ THREAD_PAGE_ACL_OFFSET
+ SVC_ACL_OFFSET(0x7B), 0x1F000000);
write_kaddr(0x1F000008, saved_vram_value);
}
@@ -480,9 +518,11 @@ Result get_luma_version(u32 *major, u32 *minor)
Result svchax_init(bool patch_srv)
{
bool isNew3DS;
u32 kver;
APT_CheckNew3DS(&isNew3DS);
u32 kver = osGetKernelVersion();
kver = osGetKernelVersion();
if (!__ctr_svchax)
{
@@ -491,9 +531,11 @@ Result svchax_init(bool patch_srv)
u32 luma_major, luma_minor;
if (kver > SYSTEM_VERSION(2, 50, 11) &&
(R_FAILED(get_luma_version(&luma_major, &luma_minor) || luma_major < 8)))
(R_FAILED(get_luma_version(&luma_major, &luma_minor)
|| luma_major < 8)))
return -1;
else if (kver > SYSTEM_VERSION(2, 46, 0) && kver <= SYSTEM_VERSION(2, 50, 11))
else if (kver > SYSTEM_VERSION(2, 46, 0)
&& kver <= SYSTEM_VERSION(2, 50, 11))
do_memchunkhax2();
else if (kver <= SYSTEM_VERSION(2, 46, 0))
do_memchunkhax1();
@@ -506,8 +548,9 @@ Result svchax_init(bool patch_srv)
if (patch_srv && !__ctr_svchax_srv)
{
u32 PID_kaddr = read_kaddr(CURRENT_KPROCESS) + (isNew3DS ? 0xBC : (kver > SYSTEM_VERSION(2, 40, 0)) ? 0xB4 : 0xAC);
u32 old_PID = read_kaddr(PID_kaddr);
u32 PID_kaddr = read_kaddr(CURRENT_KPROCESS)
+ (isNew3DS ? 0xBC : (kver > SYSTEM_VERSION(2, 40, 0)) ? 0xB4 : 0xAC);
u32 old_PID = read_kaddr(PID_kaddr);
write_kaddr(PID_kaddr, 0);
srvExit();
srvInit();
+41 -39
View File
@@ -10,6 +10,7 @@
#define CTR_APPMEMALLOC_PTR ((u32*)0x1FF80040)
/* Global variables */
u32 __stacksize__ = 0x00400000;
u32 __linear_heap_size = 0x01000000;
@@ -22,22 +23,24 @@ u32 __stack_size_extra;
extern u32 __linear_heap_size_hbl;
extern u32 __heap_size_hbl;
extern void* __service_ptr;
extern void (*__system_retAddr)(void);
/* Forward declarations */
void envDestroyHandles(void);
void __appExit();
void __appExit(void);
void __libc_fini_array(void);
void __appInit();
void __appInit(void);
void __libc_init_array(void);
void __system_initSyscalls(void);
void __system_initArgv();
void __system_initArgv(void);
void __ctru_exit(int rc);
int __libctru_gtod(struct _reent* ptr, struct timeval* tp, struct timezone* tz);
int __libctru_gtod(struct _reent* ptr,
struct timeval* tp, struct timezone* tz);
void (*__system_retAddr)(void);
extern void* __service_ptr;
Result __sync_init(void) __attribute__((weak));
@@ -79,9 +82,8 @@ void __attribute__((weak)) __libctru_init(void (*retAddr)(void))
{
/* Store the return address */
__system_retAddr = NULL;
if (envIsHomebrew()) {
if (envIsHomebrew())
__system_retAddr = retAddr;
}
/* Initialize the synchronization subsystem */
__sync_init();
@@ -140,37 +142,41 @@ extern const char* __system_arglist;
char __argv_hmac[0x20] = {0x1d, 0x78, 0xff, 0xb9, 0xc5, 0xbc, 0x78, 0xb7, 0xac, 0x29, 0x1d, 0x3e, 0x16, 0xd0, 0xcf, 0x53,
0xef, 0x12, 0x58, 0x83, 0xb6, 0x9e, 0x2f, 0x79, 0x47, 0xf9, 0x35, 0x61, 0xeb, 0x50, 0xd7, 0x67};
Result APT_ReceiveDeliverArg_(void* param, size_t param_size, void* hmac, size_t hmac_size, u64* source_pid, bool* received)
Result APT_ReceiveDeliverArg_(void* param, size_t param_size,
void* hmac, size_t hmac_size, u64* source_pid, bool* received)
{
u32 cmdbuf[16];
cmdbuf[0]=IPC_MakeHeader(0x35,2,0);
cmdbuf[1]=param_size;
cmdbuf[2]=hmac_size;
u32 saved_threadstorage[4];
u32* staticbufs = getThreadStaticBuffers();
saved_threadstorage[0]=staticbufs[0];
saved_threadstorage[1]=staticbufs[1];
saved_threadstorage[2]=staticbufs[2];
saved_threadstorage[3]=staticbufs[3];
staticbufs[0]=IPC_Desc_StaticBuffer(param_size, 0);
staticbufs[1]=(u32)param;
staticbufs[2]=IPC_Desc_StaticBuffer(hmac_size, 2);
staticbufs[3]=(u32)hmac;
u32 *staticbufs;
Result ret;
Result ret = aptSendCommand(cmdbuf);
staticbufs[0]=saved_threadstorage[0];
staticbufs[1]=saved_threadstorage[1];
staticbufs[2]=saved_threadstorage[2];
staticbufs[3]=saved_threadstorage[3];
cmdbuf[0] = IPC_MakeHeader(0x35,2,0);
cmdbuf[1] = param_size;
cmdbuf[2] = hmac_size;
staticbufs = getThreadStaticBuffers();
saved_threadstorage[0] = staticbufs[0];
saved_threadstorage[1] = staticbufs[1];
saved_threadstorage[2] = staticbufs[2];
saved_threadstorage[3] = staticbufs[3];
staticbufs[0] = IPC_Desc_StaticBuffer(param_size, 0);
staticbufs[1] = (u32)param;
staticbufs[2] = IPC_Desc_StaticBuffer(hmac_size, 2);
staticbufs[3] = (u32)hmac;
ret = aptSendCommand(cmdbuf);
staticbufs[0] = saved_threadstorage[0];
staticbufs[1] = saved_threadstorage[1];
staticbufs[2] = saved_threadstorage[2];
staticbufs[3] = saved_threadstorage[3];
if(R_FAILED(ret))
return ret;
if(source_pid)
*source_pid = ((u64*)cmdbuf)[1];
*source_pid = ((u64*)cmdbuf)[1];
if(received)
*received = ((bool*)cmdbuf)[16];
*received = ((bool*)cmdbuf)[16];
return cmdbuf[1];
}
@@ -202,13 +208,15 @@ void __system_initArgv(void)
if (__system_argc)
{
__system_argv = (char**) malloc((__system_argc + 1) * sizeof(char**));
__system_argv[0] = arg_struct->args;
__system_argv = (char**)malloc(
(__system_argc + 1) * sizeof(char**));
__system_argv[0] = arg_struct->args;
for (i = 1; i < __system_argc; i++)
__system_argv[i] = __system_argv[i - 1] + strlen(__system_argv[i - 1]) + 1;
i = __system_argc - 1;
i = __system_argc - 1;
__system_argc = 1;
while (i)
{
if(__system_argv[i] && isalnum(__system_argv[i][0])
@@ -223,8 +231,8 @@ void __system_initArgv(void)
}
else
{
__system_argc = 1;
__system_argv = (char**) malloc(sizeof(char**) * 2);
__system_argc = 1;
__system_argv = (char**) malloc(sizeof(char**) * 2);
__system_argv[0] = "sdmc:/retroarch/retroarch";
}
__system_argv[__system_argc] = NULL;
@@ -269,8 +277,6 @@ void dump_result_value(Result val)
printf("level : %u\n", res.level);
}
bool select_pressed = false;
void wait_for_input(void)
{
printf("\n\nPress Start.\n\n");
@@ -290,10 +296,6 @@ void wait_for_input(void)
if (kDown & KEY_SELECT)
exit(0);
#if 0
select_pressed = true;
#endif
svcSleepThread(1000000);
}
}
+9 -8
View File
@@ -15,12 +15,12 @@ static void (*launch_3dsx)(const char* path,
static int exec_3dsx_actual(const char* path,
const char** args, bool appendPath)
{
bool inited;
bool fileExists;
struct stat sBuff;
argData_s newProgramArgs;
unsigned int argChars = 0;
unsigned int argNum = 0;
bool fileExists;
bool inited;
unsigned int argNum = 0;
if (!path || path[0] == '\0')
{
@@ -51,7 +51,8 @@ static int exec_3dsx_actual(const char* path,
newProgramArgs.dst += strlen(path) + 1;
newProgramArgs.buf[0]++;
}
while(args[argNum] != NULL)
while(args[argNum])
{
strcpy(newProgramArgs.dst, args[argNum]);
newProgramArgs.dst += strlen(args[argNum]) + 1;
@@ -59,18 +60,18 @@ static int exec_3dsx_actual(const char* path,
argNum++;
}
inited = loader_Rosalina.init();
launch_3dsx = loader_Rosalina.launchFile;
inited = loader_Rosalina.init();
launch_3dsx = loader_Rosalina.launchFile;
if (!inited)
{
inited = loader_Ninjhax2.init();
inited = loader_Ninjhax2.init();
launch_3dsx = loader_Ninjhax2.launchFile;
}
if (!inited)
{
inited = loader_Ninjhax1.init();
inited = loader_Ninjhax1.init();
launch_3dsx = loader_Ninjhax1.launchFile;
}
+32 -22
View File
@@ -6,9 +6,10 @@
#define FILE_CHUNK_SIZE 4096
typedef struct{
u32 argc;
char args[0x300 - 0x4];
typedef struct
{
u32 argc;
char args[0x300 - 0x4];
}ciaParam;
char argvHmac[0x20] = {0x1d, 0x78, 0xff, 0xb9, 0xc5, 0xbc, 0x78, 0xb7, 0xac, 0x29, 0x1d, 0x3e, 0x16, 0xd0, 0xcf, 0x53, 0xef, 0x12, 0x58, 0x83, 0xb6, 0x9e, 0x2f, 0x79, 0x47, 0xf9, 0x35, 0x61, 0xeb, 0x50, 0xd7, 0x67};
@@ -28,11 +29,10 @@ static int isCiaInstalled(u64 titleId, u16 version)
u32 titlesToRetrieve;
u32 titlesRetrieved;
u64* titleIds;
bool titleExists = false;
u32 titlesToCheck;
AM_TitleEntry titleInfo;
Result failed;
failed = AM_GetTitleCount(MEDIATYPE_SD, &titlesToRetrieve);
bool titleExists = false;
Result failed = AM_GetTitleCount(MEDIATYPE_SD, &titlesToRetrieve);
if (R_FAILED(failed))
return -1;
@@ -44,7 +44,7 @@ static int isCiaInstalled(u64 titleId, u16 version)
if (R_FAILED(failed))
return -1;
for(u32 titlesToCheck = 0; titlesToCheck < titlesRetrieved; titlesToCheck++)
for(titlesToCheck = 0; titlesToCheck < titlesRetrieved; titlesToCheck++)
{
if (titleIds[titlesToCheck] == titleId)
{
@@ -57,7 +57,8 @@ static int isCiaInstalled(u64 titleId, u16 version)
if (titleExists)
{
failed = AM_GetTitleInfo(MEDIATYPE_SD, 1 /*titleCount*/, &titleId, &titleInfo);
failed = AM_GetTitleInfo(MEDIATYPE_SD,
1 /*titleCount*/, &titleId, &titleInfo);
if (R_FAILED(failed))
return -1;
@@ -70,15 +71,13 @@ static int isCiaInstalled(u64 titleId, u16 version)
static int installCia(Handle ciaFile)
{
Result failed;
Handle outputHandle;
u64 fileSize;
u64 fileOffset = 0;
u32 bytesRead;
u32 bytesWritten;
u8 transferBuffer[FILE_CHUNK_SIZE];
failed = AM_StartCiaInstall(MEDIATYPE_SD, &outputHandle);
u64 fileOffset = 0;
Result failed = AM_StartCiaInstall(MEDIATYPE_SD, &outputHandle);
if (R_FAILED(failed))
return -1;
@@ -89,14 +88,19 @@ static int installCia(Handle ciaFile)
while(fileOffset < fileSize)
{
u64 bytesRemaining = fileSize - fileOffset;
failed = FSFILE_Read(ciaFile, &bytesRead, fileOffset, transferBuffer, bytesRemaining < FILE_CHUNK_SIZE ? bytesRemaining : FILE_CHUNK_SIZE);
failed = FSFILE_Read(ciaFile, &bytesRead,
fileOffset, transferBuffer,
bytesRemaining < FILE_CHUNK_SIZE
? bytesRemaining
: FILE_CHUNK_SIZE);
if (R_FAILED(failed))
{
AM_CancelCIAInstall(outputHandle);
return -1;
}
failed = FSFILE_Write(outputHandle, &bytesWritten, fileOffset, transferBuffer, bytesRead, 0);
failed = FSFILE_Write(outputHandle, &bytesWritten,
fileOffset, transferBuffer, bytesRead, 0);
if (R_FAILED(failed))
{
AM_CancelCIAInstall(outputHandle);
@@ -146,6 +150,7 @@ int exec_cia(const char* path, const char** args)
}
inited = R_SUCCEEDED(amInit()) && R_SUCCEEDED(fsInit());
if (inited)
{
AM_TitleEntry ciaInfo;
@@ -155,12 +160,15 @@ int exec_cia(const char* path, const char** args)
ciaParam param;
int argsLength;
/* open CIA file */
Result res = FSUSER_OpenArchive(&ciaArchive, ARCHIVE_SDMC, fsMakePath(PATH_EMPTY, ""));
Result res = FSUSER_OpenArchive(&ciaArchive,
ARCHIVE_SDMC, fsMakePath(PATH_EMPTY, ""));
if (R_FAILED(res))
errorAndQuit("Cant open SD FS archive.");
res = FSUSER_OpenFile(&ciaFile, ciaArchive, fsMakePath(PATH_ASCII, path + 5/*skip "sdmc:"*/), FS_OPEN_READ, 0);
res = FSUSER_OpenFile(&ciaFile,
ciaArchive, fsMakePath(PATH_ASCII, path + 5/*skip "sdmc:"*/),
FS_OPEN_READ, 0);
if (R_FAILED(res))
errorAndQuit("Cant open CIA file.");
@@ -185,10 +193,11 @@ int exec_cia(const char* path, const char** args)
FSFILE_Close(ciaFile);
FSUSER_CloseArchive(ciaArchive);
param.argc = 0;
argsLength = 0;
char* argLocation = param.args;
while(args[param.argc] != NULL)
param.argc = 0;
argsLength = 0;
char *argLocation = param.args;
while(args[param.argc])
{
strcpy(argLocation, args[param.argc]);
argLocation += strlen(args[param.argc]) + 1;
@@ -200,7 +209,8 @@ int exec_cia(const char* path, const char** args)
if (R_FAILED(res))
errorAndQuit("CIA cant run, cant prepare.");
res = APT_DoApplicationJump(&param, sizeof(param.argc) + argsLength, argvHmac);
res = APT_DoApplicationJump(&param, sizeof(param.argc)
+ argsLength, argvHmac);
if (R_FAILED(res))
errorAndQuit("CIA cant run, cant jump.");
+7 -3
View File
@@ -3,20 +3,24 @@
Handle launchOpenFile(const char* path)
{
Handle file;
Result res;
ssize_t units;
static uint16_t __utf16path[PATH_MAX+1];
if (strncmp(path, "sdmc:/", 6) == 0)
path += 5;
else if (*path != '/')
return 0;
/* Convert the executable path to UTF-16 */
static uint16_t __utf16path[PATH_MAX+1];
ssize_t units = utf8_to_utf16(__utf16path, (const uint8_t*)path, PATH_MAX);
units = utf8_to_utf16(__utf16path, (const uint8_t*)path, PATH_MAX);
if (units < 0 || units >= PATH_MAX) return 0;
__utf16path[units] = 0;
/* Open the file directly */
FS_Path apath = { PATH_EMPTY, 1, (u8*)"" };
FS_Path fpath = { PATH_UTF16, (units+1)*2, (u8*)__utf16path };
Result res = FSUSER_OpenFileDirectly(&file, ARCHIVE_SDMC, apath, fpath, FS_OPEN_READ, 0);
res = FSUSER_OpenFileDirectly(&file, ARCHIVE_SDMC,
apath, fpath, FS_OPEN_READ, 0);
return R_SUCCEEDED(res) ? file : 0;
}
+16 -11
View File
@@ -9,28 +9,32 @@ static bool init(void)
static Result HBLDR_SetTarget(const char* path)
{
Result rc;
u32 pathLen = strlen(path) + 1;
u32* cmdbuf = getThreadCommandBuffer();
cmdbuf[0] = IPC_MakeHeader(2, 0, 2); /* 0x20002 */
cmdbuf[1] = IPC_Desc_StaticBuffer(pathLen, 0);
cmdbuf[2] = (u32)path;
cmdbuf[0] = IPC_MakeHeader(2, 0, 2); /* 0x20002 */
cmdbuf[1] = IPC_Desc_StaticBuffer(pathLen, 0);
cmdbuf[2] = (u32)path;
Result rc = svcSendSyncRequest(hbldrHandle);
if (R_SUCCEEDED(rc)) rc = cmdbuf[1];
rc = svcSendSyncRequest(hbldrHandle);
if (R_SUCCEEDED(rc))
rc = cmdbuf[1];
return rc;
}
static Result HBLDR_SetArgv(const void* buffer, u32 size)
{
Result rc;
u32* cmdbuf = getThreadCommandBuffer();
cmdbuf[0] = IPC_MakeHeader(3, 0, 2); /* 0x30002 */
cmdbuf[1] = IPC_Desc_StaticBuffer(size, 1);
cmdbuf[2] = (u32)buffer;
cmdbuf[0] = IPC_MakeHeader(3, 0, 2); /* 0x30002 */
cmdbuf[1] = IPC_Desc_StaticBuffer(size, 1);
cmdbuf[2] = (u32)buffer;
Result rc = svcSendSyncRequest(hbldrHandle);
if (R_SUCCEEDED(rc)) rc = cmdbuf[1];
rc = svcSendSyncRequest(hbldrHandle);
if (R_SUCCEEDED(rc))
rc = cmdbuf[1];
return rc;
}
@@ -39,7 +43,8 @@ static void deinit(void)
svcCloseHandle(hbldrHandle);
}
static void launchFile(const char* path, argData_s* args, executableMetadata_s* em)
static void launchFile(const char* path,
argData_s* args, executableMetadata_s* em)
{
if (strncmp(path, "sdmc:/",6) == 0)
path += 5;
Loaded 100 of 1118 files, more files were not shown because too many files have changed in this diff. Show more