Compare commits

...
1464 Commits
Author SHA1 Message Date
libretroadmin 0bf818af8d Bump version to 1.13.0 2022-11-19 03:10:12 +01:00
github-actions c641f20e6a Fetch translations from Crowdin 2022-11-19 00:12:59 +00:00
libretroadmin 8976a179df (video_thread_wrapper) For threaded/audio video wrapper we will use
bools instead of flags
2022-11-18 20:42:47 +01:00
libretroadmin 63a080af3f (Android) Do not enable threaded video by default for Android 2022-11-18 20:03:19 +01:00
RichardandRichard c0926ad1a1 feat(iOS13): Pointer Movement Accuracy (#14641)
Co-authored-by: Richard <[email protected]>
2022-11-18 19:45:36 +01:00
github-actions 61a8b19b2b Fetch translations from Crowdin 2022-11-18 00:15:32 +00:00
libretroadmin a50f9bae85 Turn scroll.mode into enum 2022-11-17 19:44:42 +01:00
libretroadmin 5402b781fe (menu_cbs_ok.c) Cleanups 2022-11-17 19:08:21 +01:00
github-actions 2103280fdd Fetch translations from Crowdin 2022-11-17 00:12:45 +00:00
libretroadmin 9e0c0865cd Use HAVE_DYLIB more 2022-11-16 17:09:53 +01:00
libretroadmin 63153620a7 There can be builds that are statically built against a libretro core
but still have dylib support
2022-11-16 16:51:53 +01:00
libretroadmin 0b71407b62 Use flags for state_manager_rewind_state 2022-11-16 15:13:59 +01:00
RichardandYuki Fushimi 5e9e5177ec feat(iOS13.4): Add Trackpad Support(iOS13.4 and above) (#14633)
Co-authored-by: Yuki Fushimi <[email protected]>
2022-11-16 14:52:58 +01:00
sonninnos 706d79f535 Consistent left-right scrolling for Quick Menu items (#14631) 2022-11-16 10:37:26 +01:00
sonninnos b080b39d2b Remove useless sublabel from System Information (#14632) 2022-11-16 10:36:54 +01:00
github-actions ff5e0220c3 Fetch translations from Crowdin 2022-11-16 00:13:51 +00:00
sonninnos 3e8ff57e2c (Ozone) Show metadata helper in footer only with second thumbnail (#14630) 2022-11-16 00:20:36 +01:00
sonninnos 3b921ffbfa Fix shader toggle and add hotkey + sublabel (#14628) 2022-11-15 22:14:09 +01:00
LibretroAdmin 7ca0d36169 Update .gitlab-ci.yml 2022-11-15 20:44:11 +01:00
libretroadmin e24d62715e (font_renderer) Cleanups 2022-11-15 16:03:01 +01:00
libretroadmin 527d1557ce (Fonts) Cleanups 2022-11-15 16:00:21 +01:00
github-actions 6ff82319fb Fetch translations from Crowdin 2022-11-15 00:13:23 +00:00
libretroadmin d5a268a2ac * Fix signed/unsigned mismatches
* Fix missing IPAddr on MSVC2017 UWP - use ULONG instead since this is
just a typedef
2022-11-15 00:24:26 +01:00
sonninnos 030c3cba44 Don't show override notification with appendconfig alone (#14624) 2022-11-14 20:52:05 +01:00
sonninnos cd2392c559 (XMB) Improve background image selector (#14623) 2022-11-14 11:48:40 +01:00
github-actions 1ada87736a Fetch translations from Crowdin 2022-11-14 00:13:12 +00:00
Jamiras e46e03094f upgrade to rcheevos 10.5 (#14622) 2022-11-13 23:24:42 +01:00
Francisco Javier Trujillo Mata 106a6c268e Point to libretro.gitlab package container (#14621) 2022-11-13 20:17:13 +01:00
sonninnos 86669d21e2 Pausing cleanups and corrections (#14618) 2022-11-13 17:22:36 +01:00
neil4 3de186e374 Overlays: Ignore hitboxes with zero area (#14619)
I.e. Set 'reach_x' or 'reach_y' to zero to ensure no hitbox math is done

nits
2022-11-13 10:46:41 +01:00
github-actions 6c05f4794c Fetch translations from Crowdin 2022-11-13 00:13:32 +00:00
GABO1423 b6563f7b5d (UWP) Build Fix (#14617) 2022-11-12 20:06:15 +01:00
github-actions d5a54cb782 Fetch translations from Crowdin 2022-11-12 00:14:02 +00:00
flk d6cbd8a5a9 config.libs: dont fail if OSDependent/OGLCompiler libraries are not present (#14612)
glslang no longer installs them separately, and all needed
functionality has been merged into glslang shared library itself.

This wasn't a problem previously as they were still provided
as static libraries but in latest glslang they no longer are:
https://github.com/KhronosGroup/glslang/commit/7cd519511c32d7e86d901c7ed231cb84c652d18

Signed-off-by: Markus Volk <[email protected]>

Signed-off-by: Markus Volk <[email protected]>
2022-11-11 15:11:17 +01:00
Michael Burgardt 648b0ab7b7 (Bug fix) Fix the weird 'empty translations' & correct backslash escaping in translation strings (#14609)
* (Bug fix) Fix the weird 'empty translations' & correct backslash escaping in translation strings

* Update crowdin workflows
GitHub is deprecating Node.js 12, so some actions need to be updated to ensure functionality into the future.
2022-11-11 07:56:17 +01:00
github-actions a73e1beb1c Fetch translations from Crowdin 2022-11-11 00:14:18 +00:00
Francisco Javier Trujillo Mata c28fede937 Adding Orbis actions to RA 2022-11-10 21:48:19 +01:00
Francisco Javier Trujillo Mata 0b329b1694 Merge pull request #14596 from libretro/orbis-release
[Orbis] Prepare for release
2022-11-10 20:06:45 +01:00
Ryunam 49b973ac89 (Ozone+XMB) Add option to customize cursor memory (#14605) 2022-11-10 15:46:44 +01:00
Ryunam eb5b4197f8 (Ozone+XMB) Further extend texture support for Core Option categories (#14607) 2022-11-10 09:27:49 +01:00
github-actions c3d2548a38 Fetch translations from Crowdin 2022-11-10 00:14:31 +00:00
github-actions e3ba29b434 Fetch translations from Crowdin 2022-11-09 00:14:13 +00:00
Francisco Javier Trujillo Mata 7a8617bad5 Improve makefiles 2022-11-08 21:36:44 +01:00
sonninnos 68401205f2 Add option for pause on controller disconnect (#14601) 2022-11-08 12:46:09 +01:00
github-actions 6083ab14e5 Fetch translations from Crowdin 2022-11-08 00:14:27 +00:00
sonninnos 954d1bf605 Driver independent disconnection notification (#14600) 2022-11-07 05:51:37 -08:00
Michael Burgardt e3a25793b6 (Bug fix) Escape backslashes in translation strings (#14599) 2022-11-07 10:46:54 +01:00
sonninnos da6e560e72 (Ozone) Fixes, nits and cleanups (#14598) 2022-11-07 05:48:32 +01:00
github-actions ec625cf145 Fetch translations from Crowdin 2022-11-07 00:14:34 +00:00
Francisco José García García 4d92fc5f76 (Orbis) Add salamander 2022-11-06 20:40:08 +01:00
neil4 217fba48c5 minor overlay-related fixes (#14594)
input_overlay_loaded: Only update menu entries if changed

input_overlay_add_inputs: Set 'updated' for analogs when touched
2022-11-06 17:25:44 +01:00
sonninnos 6d34ef46f4 Prevent video filter init if game is not running (#14593) 2022-11-06 10:16:20 +01:00
sonninnos 9796024f3d (XInput) Ensure disconnection notification (#14592)
* (XInput) Ensure disconnection notification

* Prefer display_name in autoconfig disconnect notification
2022-11-06 02:34:03 +01:00
github-actions 5869caf7f2 Fetch translations from Crowdin 2022-11-06 00:15:22 +00:00
neil4 b47fb0b807 Overlays: Add 'reach' and 'exclusive' for hitboxes (#14591)
Allows stretching hitboxes and handling their overlap

reach_up, reach_down, reach_left, reach_right:
- Stretches in one direction:
reach_x, reach_y
- Stretches symmetrically

exclusive:
- If true, blocks input from overlapped hitboxes
range_mod_exclusive:
- Similar, but only applies when this hitbox is extended by range_mod
- After range_mod takes effect, has priority over 'exclusive'

E.g. This creates a D-Pad area and extends its hitbox left & right 50%, up 15%, and down 30%. Then applies range_mod_exclusive:
overlay0_desc0 = "dpad_area,0.15,0.57,rect,0.166228,0.295516"
overlay0_desc0_reach_x = 1.5
overlay0_desc0_reach_up = 1.15
overlay0_desc0_reach_down = 1.3
overlay0_desc0_range_mod = 2.0
overlay0_desc0_range_mod_exclusive = true
2022-11-05 21:32:22 +01:00
github-actions 7a6c56e947 Fetch translations from Crowdin 2022-11-05 00:13:28 +00:00
Michael Burgardt b89692c532 Add Hungarian language option (#14585) 2022-11-04 19:52:39 +01:00
github-actions 5b8baaf2d9 Fetch translations from Crowdin 2022-11-04 00:14:32 +00:00
Hans-Kristian Arntzen 498835a1f7 Vulkan: Fix HDR inverse tonemapping. (#14587)
Only skip tonemapper if HDR10 is explicitly enabled by last shader pass.
Otherwise, we are simply just inheriting the bit-depth of the swapchain.
2022-11-04 00:50:19 +01:00
sonninnos 69060796bb Improve widget appearance with missing assets (#14588) 2022-11-04 00:15:31 +01:00
sonninnos d4eef18f18 Addition to analog stick menu navigation (#14584) 2022-11-03 20:28:24 +01:00
DiktatorShadalooandDiktatorShadaloo 5587ab4f8b Adding some usb hid drivers (#14581)
* Added usb hid controllers for the famous ZeroDelay encoder and also for "Kade: Kick Ass Dynamic Encoder" to be able to use some custom arcade sticks.

* Add accidentally missing change to Makefile

Co-authored-by: DiktatorShadaloo <[email protected]>
2022-11-03 03:00:42 +01:00
LibretroAdmin bba1fdca30 (D3D12) Use flags instead of boolean variables 2022-11-03 01:31:15 +01:00
github-actions 3b300f395b Fetch translations from Crowdin 2022-11-03 00:14:28 +00:00
LibretroAdmin 1263b53dae Silence warning 2022-11-03 00:34:33 +01:00
LibretroAdmin 7aa8c6bb11 (D3D10) Turn boolean variables into flags 2022-11-02 23:19:41 +01:00
LibretroAdmin 56ad3fa091 (Vk struct) Turn boolean variables into flags 2022-11-02 21:34:00 +01:00
LibretroAdmin 15048027e7 (D3D11) Turn booleans into flags 2022-11-02 08:31:40 +01:00
sonninnos 1aa258faa0 Enable menu navigation also with right analog stick (#14579) 2022-11-02 07:42:36 +01:00
LibretroAdmin c4d2788c08 Rollback extended character PR - caused too many issues
and caused crashes - contributor can submit a new improved PR -
would also prefer increased readability
2022-11-02 06:23:46 +01:00
LibretroAdmin 0ffdf0790c (Ozone) Turn more booleans into flags 2022-11-02 03:19:31 +01:00
LibretroAdmin 01649d7955 (Ozone) Turn more booleans into flags 2022-11-02 01:45:43 +01:00
github-actions a024d620bb Fetch translations from Crowdin 2022-11-02 00:13:41 +00:00
LibretroAdmin db6e0b1f42 Removed credits - requested by author 2022-11-01 21:40:13 +01:00
sonninnos 1c7855acc8 Add option for swapping menu scrolling buttons (#14577) 2022-11-01 19:48:28 +01:00
sonninnos aa3c8de64c Update AUTHORS.h (#14576) 2022-11-01 17:25:09 +01:00
LibretroAdmin e4e776abf7 (Ozone) Partial conversion of booleans to flags 2022-11-01 08:27:10 +01:00
LibretroAdmin bfd9419d6a (MaterialUI) Turn booleans into flags 2022-11-01 06:51:53 +01:00
LibretroAdmin ea4b815117 (RGUI) Turn booleans into flags 2022-11-01 05:33:58 +01:00
LibretroAdmin 6176b6a764 (3DS/CTR) Remove MaterialUI as per MrHuu recommendation 2022-11-01 04:01:45 +01:00
github-actions db1184c19d Fetch translations from Crowdin 2022-11-01 00:16:10 +00:00
LibretroAdmin aeef3d6220 (3DS/CTR) Remove debug button combo that quites RetroArch 2022-10-31 23:02:35 +01:00
LibretroAdmin b2e2330ed7 Addendum to prior commit - should be good now 2022-10-31 20:32:11 +01:00
LibretroAdmin 9a3a5688b8 Go about this a better way - the conditionals should now be fixed 2022-10-31 20:23:57 +01:00
LibretroAdmin 8485233b08 Update CHANGES.md 2022-10-31 19:40:14 +01:00
LibretroAdmin cb1b02a1c3 Revert changes to struct - concern trolling over perceived
backwards compat. regression (whether proven or not)
2022-10-31 19:17:05 +01:00
redenvelope2000 47070a64e6 Fixed macOS keyboard bindings in game focus mode. (#14570)
In the game focus mode the keyboard should not be remapped for joypads unless it is used for toggling the game focus mode.
2022-10-31 11:35:17 +01:00
github-actions 9e84c89233 Fetch translations from Crowdin 2022-10-31 00:14:55 +00:00
LibretroAdmin cf0951b5d5 (Android) Do device initialization only once in init function 2022-10-31 00:36:55 +01:00
LibretroAdmin 03a2f10117 Turn some variables static 2022-10-31 00:20:23 +01:00
LibretroAdmin 5705ff95cb (Cocoa) Revert this until reported issue with Game Focus is resolved 2022-10-30 23:39:02 +01:00
LibretroAdmin 5d4c6a9564 Some small opts to two conditionals 2022-10-30 23:21:43 +01:00
LibretroAdmin 724acc4eb9 (Vulkan) Use flags for vulkan_ctx_data 2022-10-30 23:07:07 +01:00
LibretroAdmin 0159c2f70f gfx_ctx_vulkan_data - use flags instead of booleans 2022-10-30 22:03:36 +01:00
LibretroAdmin 250a0b9542 Implicitly use floats in float arrays 2022-10-30 20:16:16 +01:00
LibretroAdmin 07378abbdf (task_save) Use flags instead of booleans
(task_screenshot) Start reducing amount of parameters
2022-10-30 18:41:41 +01:00
LibretroAdmin 11047c6f4d (netplay_frontend) Use flags instead of booleans 2022-10-30 18:20:08 +01:00
AKuHAK c3914d1c85 (database) Added serial scanning for PS2 (#14566)
reworked ps1 magic numbers
PS1 scan: fixed not scanned LSP titles, added PSX.EXE titles, extended ps1 serial variations
2022-10-30 17:21:48 +01:00
neil4 2de52baf74 Overlays: Add eightway area types (#14565)
- New descriptors: 'dpad_area' and 'abxy_area'
- Each has a diagonal sensitivity setting, 100% being 8-way symmetry
- Buttons can be redefined in the cfg file

E.g. This would create a d-pad area, then redefine it to use analog directions:
overlay0_desc0 = "dpad_area,0.85,0.57,rect,0.166228,0.295516"
overlay0_desc0_up = "r_y_minus"
overlay0_desc0_down = "r_y_plus"
overlay0_desc0_left = "r_x_minus"
overlay0_desc0_right = "r_x_plus"
2022-10-30 06:31:27 +01:00
github-actions 6a9eea5958 Fetch translations from Crowdin 2022-10-30 00:15:31 +00:00
LibretroAdmin a94c4c72c2 Use size_t as type for returned value of strlen instead of int 2022-10-29 19:40:48 +02:00
LibretroAdmin b4a2216049 (Context drivers) Cleanups; use flags instead of booleans etc. 2022-10-29 19:36:50 +02:00
LibretroAdmin 9b21848f4c (Cocoa GL CTX) Turn booleans into flags 2022-10-29 19:25:47 +02:00
LibretroAdmin ffd3d195b5 Another C++ comment that had to be converted to C-style comment 2022-10-29 19:18:22 +02:00
LibretroAdmin 8825eea884 Style nits 2022-10-29 19:13:17 +02:00
LibretroAdmin c1a3085939 Fix UNIX builds 2022-10-29 19:07:49 +02:00
LibretroAdmin 55daddf286 * Fix C++ comments - turn them into C comments for C files
* Some other additional style nits along the way
2022-10-29 19:05:39 +02:00
Kangmo-Ahn 3a744b7dae Extended character ime (#14559)
* Update Makefile

* Update win32_common.c

* Update input_driver.c

* Update gfx_thumbnail_path.c
2022-10-29 19:01:30 +02:00
LibretroAdmin edfc96feea Fix PSL1GHT build 2022-10-29 18:59:19 +02:00
LibretroAdmin 4854643ead (input_driver.c) Small cleanups 2022-10-29 18:52:10 +02:00
LibretroAdmin 91d7f5970b Cleanups in platform_unix.c 2022-10-29 18:37:12 +02:00
AKuHAK 3a6a34b2dd (Frontend) Fix default remaps folder for various cores: remap should be nested in config folder (#14563) 2022-10-29 16:34:08 +02:00
neil4 1dd165a3bf Fix overlay next_index for unnamed targets (#14562) 2022-10-29 16:33:34 +02:00
github-actions cab6cbca48 Fetch translations from Crowdin 2022-10-29 00:12:27 +00:00
LibretroAdmin f6866fe6ce Buildfix for Linux 2022-10-28 22:33:28 +02:00
LibretroAdmin 174b01f7d9 Remove unnecessary video_driver_is_cache_context 2022-10-28 19:36:56 +02:00
LibretroAdmin 2ec2f4719f (video_thread_wrapper) Use flags instead of bools 2022-10-28 19:21:09 +02:00
Ruben Nine 2e73b87328 Fix broken fullscreen mode in macOS Ventura by setting NS_WINDOW_COLLECTION_BEHAVIOR_FULLSCREEN_PRIMARY TO 1 << 7 as defined by NSWindowCollectionBehaviorFullScreenPrimary. (#14556) 2022-10-28 07:20:07 +02:00
github-actions 902a693bdb Fetch translations from Crowdin 2022-10-28 00:14:51 +00:00
sonninnos 194be57da1 (XMB) Add truncate playlist name option (#14553) 2022-10-27 05:42:46 +02:00
github-actions 3f53de09c1 Fetch translations from Crowdin 2022-10-27 00:14:37 +00:00
LibretroAdmin c7eee86fd5 Turn core boolean variables into flags 2022-10-27 00:29:24 +02:00
LibretroAdmin c0d6d6e750 Create video_driver_get_st_flags 2022-10-26 22:35:04 +02:00
LibretroAdmin e8f4268e6e Addendum for previous commit - buildfixes for PS4 and C89 (cg) 2022-10-26 21:29:35 +02:00
LibretroAdmin d0b3c1742d (Video) use flags for FBO passes, GL2 renderchain, etc 2022-10-26 21:21:21 +02:00
LibretroAdmin fc78f96a3a (X11) Turn boolean variables into flags 2022-10-26 19:30:36 +02:00
LibretroAdmin 8a0491b282 (Dinput) Fix Mouse L button behavior 2022-10-26 19:25:38 +02:00
LibretroAdmin 92a2c0f71a (Dinput) Turn boolean variables into flags 2022-10-26 19:22:35 +02:00
LibretroAdmin 27dbf06dfb Create g_plat_win32_flags - reduce amount of global booleans 2022-10-26 17:51:15 +02:00
LibretroAdmin 46c2a9b950 (Cocoa) small style nits; don't use NSLog 2022-10-26 17:36:58 +02:00
LibretroAdmin 18639cca6e (Win32) Create g_win32_flags - reduce amount of global booleans kept
around for state
2022-10-26 17:31:42 +02:00
github-actions b41f6b2885 Fetch translations from Crowdin 2022-10-26 00:13:59 +00:00
LibretroAdmin 94a3eba9ef Turn checked into flag for menu_entry_t 2022-10-26 00:28:57 +02:00
LibretroAdmin 299875f8b6 (Qt) Cleanups 2022-10-25 18:12:19 +02:00
LibretroAdmin 0d16eb6e10 (Menu) menu_entries - get rid of boolean variables and
turn them into flags
2022-10-25 17:22:35 +02:00
LibretroAdmin 44cb5be2ef (task_content.c) Cut down on code duplication 2022-10-25 16:32:16 +02:00
LibretroAdmin 069de60efc (Qt) Remove SSL/TLS check at startup 2022-10-25 15:42:29 +02:00
LibretroAdmin d30f16dc79 Remove cursor directory/cursor manager list - Views obsoleted
this
2022-10-25 15:21:47 +02:00
github-actions e3e0040063 Fetch translations from Crowdin 2022-10-25 00:20:48 +00:00
LibretroAdmin 18ea6fa81e Turn more boolean variables into flags for runloop
- Get rid of RARCH_CTL_IS_INITED, use runloop_get_flags instead
2022-10-24 18:16:00 +02:00
LibretroAdmin 9b7be5f2af Update CHANGES.md 2022-10-24 17:53:50 +02:00
LibretroAdmin 198be07542 Update CHANGES.md 2022-10-24 17:52:41 +02:00
LibretroAdmin 94733e4a4c Update CHANGES.md 2022-10-24 17:52:26 +02:00
LibretroAdmin 11c96ce2d3 (MaterialUI)
* Remove unused variables
* Turn loop counter variable into int
2022-10-24 16:49:01 +02:00
LibretroAdmin 3c7e4b032e (Menu drivers) Remove warnings about missing assets 2022-10-24 16:45:17 +02:00
reallibretroadmin f389c08109 (Menu) Remove unused variables 2022-10-24 16:41:37 +02:00
github-actions 3d1bcf9836 Fetch translations from Crowdin 2022-10-24 00:18:34 +00:00
github-actions 7cfa69be1b Fetch translations from Crowdin 2022-10-23 00:19:16 +00:00
github-actions 622cc61671 Fetch translations from Crowdin 2022-10-22 00:18:28 +00:00
github-actions 50e5c40c40 Fetch translations from Crowdin 2022-10-21 00:17:37 +00:00
redenvelope2000 89d9fe9981 Fixed RETROK_LMETA not working on macOS port. (#14538)
The RETROK_LMETA key was not defined in the rarch_key_map_apple_hid[].
2022-10-20 15:59:14 +02:00
redenvelope2000 c161c35738 Fixed Z/X keys not working on the macOS port. (#14539)
Need to check keyboard_mapping_blocked before using apple_key_state[].
2022-10-20 15:59:03 +02:00
hunterk a90a79fa95 revert offending function
fixes https://github.com/libretro/RetroArch/issues/14528
2022-10-20 06:29:04 +02:00
LibretroAdmin 22f43a4b75 C89_BUILD buildfix 2022-10-20 04:30:28 +02:00
github-actions 170ed8ea0f Fetch translations from Crowdin 2022-10-20 00:19:02 +00:00
Dyllan Kobal 6ade32336a Fixed error for UWP 2022-10-19 18:52:21 +02:00
Dyllan Kobal 55ce774527 Fixed the way devices were previously indexed 2022-10-19 18:52:21 +02:00
sonninnos 6c0be28b98 (Ozone) Footer improvements (#14534) 2022-10-19 03:32:21 +02:00
Keith Bowes 72a076a58d Fixed compiling with --disable-menu (#14535) 2022-10-19 03:30:52 +02:00
sonninnos 03c901dfb8 Playlist + database changes: (#14531)
- Cleanup 'entry_slot'
- Fallback label + logging
2022-10-18 21:32:54 +02:00
LibretroAdmin 07ae7ff7f1 Turn more static const variables in config.def.h into define macros 2022-10-18 13:39:21 +02:00
LibretroAdmin 57d5b8749e (Android) Enable 'Vibrate On Key Press' by default
(config.def.h) Turn some const variables into define macros
2022-10-18 12:13:47 +02:00
sonninnos 0597aa6939 Thumbnail fullscreen toggle behavior correction (#14527) 2022-10-18 10:05:01 +02:00
github-actions b846a5d792 Fetch translations from Crowdin 2022-10-18 00:18:28 +00:00
LibretroAdmin 320886f9fa Fix some function declarations 2022-10-17 19:56:32 +02:00
reallibretroadmin c594abb10d Cleanups; fixes of warnings 2022-10-17 19:29:33 +02:00
sonninnos 0cebebbfdc (Ozone) Remember selection per main tabs (#14526) 2022-10-17 16:04:54 +02:00
LibretroAdmin 840c4481ab Update CHANGES.md 2022-10-17 02:51:07 +02:00
Colin KinlochandColin Kinloch 8bbc4a90f3 (Wayland) Set correct app ID (#14521)
Signed-off-by: Colin Kinloch <[email protected]>

Signed-off-by: Colin Kinloch <[email protected]>
Co-authored-by: Colin Kinloch <[email protected]>
2022-10-17 00:06:27 +02:00
sonninnos feea90d877 (XMB) Vertical Fade fix (#14525) 2022-10-17 00:06:14 +02:00
sonninnos ababfcc0c8 (XMB) Playlist entry index fixes (#14523) 2022-10-16 23:46:27 +02:00
LibretroAdmin 415925c5dc Update CHANGES.md 2022-10-16 18:16:50 +02:00
sonninnos 3c61126578 (XMB) Remember selection per main tabs (#14519) 2022-10-16 18:15:50 +02:00
LibretroAdmin df879b52cd Bump to version 1.12.0 2022-10-16 15:41:59 +02:00
neil4 b98c53ddb7 Improve haptic feedback for input overlays (#14517)
Repurpose vibrate_on_keypress to enable device's standard keypress feedback on overlay key/button state changes

- Add keypress_vibrate function ptr to input_driver_t (only implemented on Android for now)
- (Android) Remove APP_CMD_VIBRATE_KEYPRESS
- (Android) Add doHapticFeedback, called directly to avoid latency
2022-10-16 09:58:09 +02:00
github-actions 5b08c3fc22 Fetch translations from Crowdin 2022-10-16 00:18:14 +00:00
yoshisuga cac8b82368 [iOS] Fixes to iOS toolbar, add iOS 16 lockscreen widget (#14516)
* tweaked helper bar display behavior
* tweaked ui handling
* Add iOS 16 lockscreen circular widget
2022-10-15 23:33:34 +02:00
LibretroAdmin e62abac647 Add BSV movie flags 2022-10-15 14:32:26 +02:00
sonninnos bbd6c0ae9a Add delay to savestate notifications (#14514) 2022-10-15 11:29:07 +02:00
github-actions 74d7aa3691 Fetch translations from Crowdin 2022-10-14 00:18:51 +00:00
github-actions 48bfc6d6f8 Fetch translations from Crowdin 2022-10-13 00:17:44 +00:00
Michael Burgardt 254ac65549 Add British English language option (#14504) 2022-10-12 23:26:00 +02:00
LibretroAdmin a153738bbd Create retroarch_get_flags and use it 2022-10-12 13:27:54 +02:00
LibretroAdmin abf8bdc660 Update meta.xml 2022-10-12 12:46:57 +02:00
LibretroAdmin f90b71b2ed Update meta.xml 2022-10-12 12:46:17 +02:00
Giovanni Cascione 18b3997a15 mali_fbdev: change bools to flags (#14508) 2022-10-12 12:12:16 +02:00
sonninnos 50ace058ce Config appendconfig + saving + logging (#14505)
* Config override + logging cleanups

* 'config_save_on_exit' cleanup
2022-10-12 11:37:36 +02:00
github-actions 8b39654368 Fetch translations from Crowdin 2022-10-11 00:18:14 +00:00
LibretroAdmin 41de5ec80b Cleanups for runloop_state grabbing 2022-10-10 20:32:46 +02:00
LibretroAdmin da68e73f94 Get rid of some RARCH_CTL_ commands 2022-10-10 20:14:54 +02:00
LibretroAdmin cc3a339011 (Runloop) Use more flags 2022-10-10 19:54:54 +02:00
LibretroAdmin 2371e5cbd2 (Runloop) Turn more bools into flags 2022-10-10 18:53:55 +02:00
LibretroAdmin 78ffb973b1 Add WIIU ifdef for socket_connect_with_timeout and revert (#14503)
else default codepath
2022-10-10 18:04:05 +02:00
LibretroAdmin d100e73780 Use more runloop flags 2022-10-10 08:59:27 +02:00
Bernhard Schelling c9bbe7683f Add View feature (#14467)
* Add View feature
Add saving of a filter set in the Explore menu into a so called "View" file which then gets listed alongside playlists.
This also adds the ability to filter a category by range in the Explore menu and not just filter on exact matches.

* Menu improvements for explore and views

* Collapse ozone sidebar in view

* Fix problems with the sidebar in explore/view

* Ignore view files in the Qt playlists menu

* Add missing semicolon

* Support downloading thumbnails in views
2022-10-10 06:36:02 +02:00
LibretroAdmin 076a1a398c (Runloop) Turn some boolean variables into flags 2022-10-10 04:37:17 +02:00
LibretroAdmin 2218ea1d96 Buildfix for libnx 2022-10-10 01:49:31 +02:00
GABO1423 baaf8e03fa (UWP) Another Buildfix (#14501) 2022-10-10 00:06:49 +02:00
LibretroAdmin 2cddea21f8 * Cleanups
* Less pointer grabbing (dispwidget_get_ptr)
2022-10-09 22:53:39 +02:00
LibretroAdmin 479e3b23d9 Turn content_get_status into content_get_flags 2022-10-09 20:32:39 +02:00
LibretroAdmin d3384fd89d Fix parameter names omitted 2022-10-09 10:25:35 +02:00
LibretroAdmin d5a6c4f150 (content) use flags for content_state
(xaudio2) Use flags
2022-10-09 10:20:43 +02:00
github-actions 73f766f133 Fetch translations from Crowdin 2022-10-09 00:16:58 +00:00
LibretroAdmin 385029786c Simplify code part 2022-10-08 23:08:17 +02:00
LibretroAdmin a1edae126c Fix Pending Quick Menu 2022-10-08 23:01:42 +02:00
LibretroAdmin d506210fbe (menu_driver.c) Use flags instead of bools (#14500)
* (menu_driver.c) Use flags instead of bools
2022-10-08 22:52:18 +02:00
Giovanni Cascione fd2a026f96 mali_fbdev: add conditional support for gles3 (#14494) 2022-10-08 19:05:26 +02:00
LibretroAdmin fcbd72dbf3 Use flags pt4 (#14497)
* * Use flags for rarch_state
* Get rid of ^M linebreaks in retroarch_types.h

* Buildfixes for consoles

* (audio driver) use flags instead of bools

* (video) Use flags instead of bools

* Rewrite input driver state bools into flags
2022-10-08 10:39:15 +02:00
gblues 7f8d358f17 WIIU: Add some missing default directories (#14498)
There's a bunch of directories that should have defaults, that don't,
which causes a few issues.

Defaults added:
- thumbnails
- overlays
- screenshots
- autoconfig
2022-10-08 07:03:42 +02:00
github-actions da06989296 Fetch translations from Crowdin 2022-10-08 00:17:38 +00:00
LibretroAdmin f40d157571 Use flags pt3 (#14491)
* (Vulkan) Use flags for vulkan_emulated_mailbox

* Use flags for vk_texture

* dispgfx_widget - use flags instead of bools

* (Autoconfig) Use flags
2022-10-07 11:08:17 +02:00
gblues c51b1491ef Get mkdir working on wiiu (#14490)
== DETAILS
Looks like Wii U's mkdir() implementation doesn't like trailing
slashes either.

Since we already have an implementation to handle this, I just added
Wii U to it.
2022-10-07 06:19:54 +02:00
GABO1423 df8571b3ca (UWP) Build Fix (#14489) 2022-10-07 02:56:07 +02:00
LibretroAdmin 83c1e502ba (display servers) Use flags instead of bools 2022-10-07 02:40:19 +02:00
github-actions 903fcffe64 Fetch translations from Crowdin 2022-10-07 00:20:33 +00:00
LibretroAdmin 91119d038f (gfx_display/gfx_animation) Use flags instead of bools (#14488)
* (gfx_display/gfx_animation) Use flags instead of bools
* (task_save) Use flags instead of bools
2022-10-07 00:10:32 +02:00
LibretroAdmin 4f071e47c7 screenshot_task_state - use flags instead of bools 2022-10-06 20:57:07 +02:00
LibretroAdmin 28f55845b6 * database_info cleanups:
- database_cursor_close's return value was never used, and doesn't
necessitate a function either
- some other misc. cleanups
2022-10-06 19:43:44 +02:00
LibretroAdmin cc199b71db Update CHANGES.md 2022-10-06 19:28:28 +02:00
LibretroAdmin 951b98fe1b Bools to flags (#14486)
* (D3D11) Use flags instead of bools

* (RPNG) Use flags

* Simplify rpng_is_valid

* (rpng_is_valid) Prevent potential NULL pointer dereference
(D3D11) Some whitespacing changes/code nits

* (task_pl_thumbnail_download.c) Simplify some code
2022-10-06 19:26:38 +02:00
gblues 714878783a Fix socket_connect_with_timeout for WIIU (#14483)
== DETAILS
Previous work to clean up the HTTP networking code surfaced a bug
in `socket_connect_with_timeout()` that caused connections to
immediately fail. Specifically, achievements stopped working because
the http task code path was rewritten to use
`socket_connect_with_timeout` instead of `socket_connect`.

The bug appears to come down to an unsupported socket option. The final
check is to try to read `SO_ERROR` from the socket, and on WIIU the
`getsockopt()` call returns -1 and sets `lastsocketerr()` (WIIU's
equivalent to errno) to 16.

The fix is to change the logic to only abort the connection if that
`getsockopt()` call succeeds *and* the error is set.
2022-10-06 17:01:19 +02:00
LibretroAdmin 0bdc761adb Buildfix for previous commit 2022-10-06 09:32:26 +02:00
LibretroAdmin 30eb0edcf8 Use flags for some structs instead of tons of bools - less state/variables to bookkeep,
less memory used
2022-10-06 06:53:13 +02:00
LibretroAdmin 141c33ceb5 (Qt/Logging) Increase log buffer to 2048 characters - Vulkan
validation layer messages output correctly.
2022-10-06 03:19:28 +02:00
LibretroAdmin fbf55a1999 Update CHANGES.md 2022-10-06 01:58:42 +02:00
LibretroAdmin b3bb62881a Disable poll support for MSVC 2010 and earlier 2022-10-06 01:27:27 +02:00
LibretroAdmin 92e996e272 Revert "(Win32/Sockets/Networking) WSAPoll is only available since Windows Vista; disable"
This reverts commit d832ce15d6.
2022-10-06 00:46:33 +02:00
sonninnos 8e9d19568c Unload screenshot widget texture early (#14482) 2022-10-06 00:06:41 +02:00
LibretroAdmin d832ce15d6 (Win32/Sockets/Networking) WSAPoll is only available since Windows Vista; disable
NETWORK_HAVE_POLL for MSVC2003/2005/2010
2022-10-05 23:54:25 +02:00
LibretroAdmin f8a9b0a197 Combine bit setting 2022-10-05 20:42:30 +02:00
LibretroAdmin e8c53cad10 Update CHANGES.md 2022-10-05 18:45:55 +02:00
LibretroAdmin d0c6dfee0b Cleanup bitmask setting 2022-10-05 18:43:58 +02:00
LibretroAdmin b2521c53ae Filebrowser - fix regression #14425 2022-10-05 17:31:21 +02:00
LibretroAdmin 6447c6c39b (dingux_utils.c) Style nits 2022-10-05 06:45:40 +02:00
LibretroAdmin 7d956b611c rarch_setting - we can downgrade flags and free_flags to 32bit
since the flags don't come anywhere near close to 64 unique flags
2022-10-05 04:34:47 +02:00
LibretroAdmin ffa1ae4143 setting_list.c - implement cmd_trigger_event_triggered as flag 2022-10-05 04:23:02 +02:00
github-actions acc2128a6e Fetch translations from Crowdin 2022-10-05 00:18:02 +00:00
sonninnos 3a0d8cbc50 (Vulkan) Fix screenshot widget crash when ticker animating (#14475) 2022-10-05 02:09:56 +02:00
GABO1423 236621d6ac (UWP) Bump up Version Number, again (#14472) 2022-10-05 00:06:42 +02:00
LibretroAdmin ab1f21ef78 (Ozone/MaterialUI) sublabel lines will not ever go beyond uint8_t
max value, so change variable types from 32bit to 8bit
2022-10-04 23:58:04 +02:00
LibretroAdmin fa40754585 (MIST/STEAM/STEAMDECK) Don't expose Black Frame Insertion if we are
running RetroArch on a Steam Deck
2022-10-04 22:59:57 +02:00
LibretroAdmin e9ad1e494f Update CODING-GUIDELINES 2022-10-04 17:53:52 +02:00
LibretroAdmin 1eebd1196e Update CODING-GUIDELINES 2022-10-04 17:26:23 +02:00
LibretroAdmin 1a46943a76 Update CODING-GUIDELINES 2022-10-04 17:24:39 +02:00
LibretroAdmin 088ef4f6f9 Update CODING-GUIDELINES 2022-10-04 17:23:44 +02:00
LibretroAdmin 389ef31a8f Bump up to version 1.11.1 - point release 2022-10-04 07:46:48 +02:00
github-actions 8fb91ce1af Fetch translations from Crowdin 2022-10-04 00:18:09 +00:00
LibretroAdmin 12cc56f712 netplay_frontend.c - innocuous style nits - direct initialization of
variables where possible, no brackets for one line, move local variables
to proper scope, etc
2022-10-03 23:05:50 +02:00
LibretroAdmin 185e1af39b (MaterialUI) Prevent pointless self-assignment with tertiary operators 2022-10-03 21:41:39 +02:00
LibretroAdmin 2429c472b6 Buildfix for previous commit 2022-10-03 19:18:52 +02:00
LibretroAdmin e5897caa8f Cut down on menu_displaylist_info_t size - use flags instead of all
these boolean members
2022-10-03 18:13:32 +02:00
LibretroAdmin 8c49eed56c rarch_setting - remove dont_use_enum_idx_representation value -
set it as a flag instead
2022-10-03 15:42:36 +02:00
LibretroAdmin 0874a41e36 Update CHANGES.md 2022-10-03 15:13:50 +02:00
sonninnos 4fe477ee39 Avoid 'video_gpu_screenshot' with savestates (#14464) 2022-10-03 15:13:01 +02:00
Cthulhu-throwaway d774256e0d (Network) Add the const qualifier to some function parameters (#14463) 2022-10-03 07:35:37 +02:00
LibretroAdmin 5ad204bea5 (Wayland) Turn more functions static 2022-10-03 03:38:56 +02:00
LibretroAdmin 91f4892cbe (wayland) Cleanups; turn functions static and other nits 2022-10-03 03:36:12 +02:00
LibretroAdmin 0a8ff5d15d (menu_setting) enforce_minrange and enforce_maxrange become flags,
and make remainder of minrange/maxrange local variables of type
float
2022-10-03 02:28:12 +02:00
github-actions cb280dcf5e Fetch translations from Crowdin 2022-10-03 00:17:05 +00:00
LibretroAdmin 13cc6b7f46 Use float values now that setting min/max are float instead of double 2022-10-03 01:53:58 +02:00
LibretroAdmin 4672c5a5c0 Update CHANGES.md 2022-10-03 01:19:31 +02:00
Cthulhu-throwaway daf8cb9bc8 (Netplay) Add a private or CGNAT address warning to UPnP (#14461) 2022-10-03 01:18:34 +02:00
LibretroAdmin 5627a09e0d rarch_setting - downgrade min/max from double to float 2022-10-03 01:15:48 +02:00
LibretroAdmin 7df0157af5 Fix #14460 - ./configure --enable-network_video option fails to build 2022-10-02 22:33:09 +02:00
LibretroAdmin 284466b04b Update CHANGES.md 2022-10-02 15:58:56 +02:00
reallibretroadmin 0033224c25 Fix some implicit conversion signedness warnings 2022-10-02 03:22:34 +02:00
github-actions 4253b06f2d Fetch translations from Crowdin 2022-10-02 00:18:42 +00:00
sonninnos 25f5d9ae2a Fix DEFAULT_FILL_TITLE_MACRO (#14456) 2022-10-01 23:51:25 +02:00
reallibretroadmin cd0d0eb541 Can save config now without WINRT ifdef - we do config file deinit
AFTER ui companion driver deinit now
2022-10-01 23:37:49 +02:00
LibretroAdmin 741b54d4be Ifdef this for UWP for now since this will segfault on OSX - we
need a more uniform way of tearing things down without ifdefs
for all platforms
2022-10-01 23:17:04 +02:00
libretroadmin 13ac88c9df (Metal common) Cleanups 2022-10-01 21:41:32 +02:00
LibretroAdmin 86dccbf1d6 Buildfix 2022-10-01 18:47:41 +02:00
LibretroAdmin ace21d28f7 Fix C++ comments 2022-10-01 17:56:16 +02:00
LibretroAdmin 6be8dccd46 (UWP) Style nits/cleanups 2022-10-01 15:46:09 +02:00
Bashar Astifan b93599c7e0 UWP OnSuspending and save on quit fix (#14452)
* Update uwp_main.cpp

* Update retroarch.c
2022-10-01 14:28:23 +02:00
LibretroAdmin 5bfe70221c Revert "UWP OnSuspending crash fix (#14372)"
This reverts commit 6226d0442f.
2022-10-01 00:27:22 +02:00
LibretroAdmin 4251eb5f61 Turn uwp_mkdir_impl function static 2022-09-30 17:50:07 +02:00
GABO1423 9586d679a8 (UWP) Bump up version number (#14448)
* (UWP) Bump Version Number for msvc2019

* (UWP) Bump up Version Number for msvc2017
2022-09-30 03:04:45 +02:00
LibretroAdmin fcdb383dc6 Update CHANGES.md 2022-09-29 22:59:02 +02:00
LibretroAdmin d3cb2b2ba9 Bump up to 1.11.0 2022-09-29 22:49:56 +02:00
LibretroAdmin 3c81e21589 Massive changelog for 1.11.0 2022-09-29 21:18:48 +02:00
github-actions a16725f47c Fetch translations from Crowdin 2022-09-28 00:21:25 +00:00
Cthulhu-throwaway f584f7a5f8 (Netplay) Fix for another incorrect operator (#14444) 2022-09-27 13:01:52 +02:00
github-actions 3cdccb6b90 Fetch translations from Crowdin 2022-09-27 00:20:42 +00:00
Cthulhu-throwaway ecccdd5484 (Netplay) Fix for an incorrect operator (#14443) 2022-09-26 17:57:30 +02:00
LibretroAdmin 1571035fb7 (DS3/connect) Fix some warnings 2022-09-26 16:12:31 +02:00
gblues a4b934b71a Fix some HID bugs (#14435)
* Fix Sixaxis gamepad operation

== DETAILS
It looks like commit 78e7d23c14 broke
the DualShock. Sorry, @revvv, but this is probably going to break the
Retrode driver. We'll need to figure out a different solution.

* Fix a bunch of HID implementations

== DETAILS
As mentioned in the previous commit, the thing that broke the DS3
driver was a change to the wiiu HID handler, which did some pointer
math on the data buffer.

The thing is.. there's no reason to do that pointer math. Yet, I found
the same thing on almost every other HID driver: OSX, libusb, wiiusb.
The only other HID driver that did not do this was the Bluetooth
HID driver.

It doesn't make any sense. The only reason it doesn't crash is because
the memory right before the buffer is valid memory.

Change summary:
- remove the weird pointer math from all HID controllers
- remove the `#ifdef apple ...` in the ds3 and gamecube adapter
  drivers, because it's no longer needed.
- in the pad packet handlers, decrement data buffer offset references
  to account for the removal of the buffer manipulation.

* Fix DualShock 4

== DETAILS
Should've only subtracted 1, not 2; and now the pad works.

Also, added a PID to cover newer model DS4s. I picked "R2" out of the air
for the constant.

Tested on Mac OS

* Really really fix iohidmanager_set_report

A huge apology to @23rd for insulting your fix. I was wrong to call you
wrong.

That left the question: why did that change break the DS3?

Well, it's because `IOHIDDeviceSetReport` expects the report buffer to be
just the report. All of RA's HID SetReport calls include the report number
in the first byte, so we have to trim that off.

We actually do this in a different invocation of `IOHIDDeviceSetReport`
elsewhere in the file! This commit applies that same logic to
`iohidmanager_set_report`

This has two benefits:

1. The DS3 works
2. The DS3 no longer requres the user to press the PS button to activate
   it the first time. You plug it in and it Just Works, just like on Wii U.
2022-09-26 14:32:49 +02:00
sonninnos e902df3b0d (XMB) Add options for hiding header and horizontal title margin (#14439) 2022-09-26 12:57:20 +02:00
github-actions 614e502b41 Fetch translations from Crowdin 2022-09-26 00:16:23 +00:00
MrHuu a878bd3f95 (Network) Adapt POLL for 3DS platform (#14431) 2022-09-25 17:15:56 +02:00
Bobby Smith 440264778d Fix incorrect lines in .cht files for 'cheat10' and above (#14436) 2022-09-25 17:15:07 +02:00
GABO1423 403eaef516 (UWP) Remove expandedResources (#14438) 2022-09-25 17:14:52 +02:00
github-actions 08ccc59e3c Fetch translations from Crowdin 2022-09-23 00:15:49 +00:00
Bobby Smith cd93bdc058 Fix "Windowed Scale" dropdown menu (#14433) 2022-09-22 12:58:56 +02:00
github-actions 0973e8d4b0 Fetch translations from Crowdin 2022-09-22 00:15:00 +00:00
github-actions ab57d3cab7 Fetch translations from Crowdin 2022-09-20 00:18:11 +00:00
23rd 171a79e879 Fixed sending of report id to HID device on macOS. (#14430) 2022-09-19 18:01:27 +02:00
github-actions 568d788d54 Fetch translations from Crowdin 2022-09-19 00:13:32 +00:00
Filipe Azevedo c10a4d632f Fix label sanitization (#14428)
This simplify and trim whitespaces left.
ie, starting, trailing and multiple consecutive whitespaces are now
removed.
2022-09-18 19:25:21 +02:00
github-actions e8f4425eed Fetch translations from Crowdin 2022-09-18 00:14:04 +00:00
yesfish c1309a34c2 Fix video_layout fbo (#14418) 2022-09-18 01:16:05 +02:00
sonninnos b014a9ef98 Move PLAYLIST_SHOW_HISTORY_ICONS upwards (#14427) 2022-09-18 01:15:33 +02:00
Cthulhu-throwaway 9346a15864 (Netplay) Move some timed features from frame count to a timer (#14419) 2022-09-18 01:15:19 +02:00
MrHuu dbba69a2d1 (Network) Check connect errno for successful connection (#14420) 2022-09-18 01:15:09 +02:00
github-actions 83ce6f42d9 Fetch translations from Crowdin 2022-09-16 00:15:20 +00:00
sonninnos 8842603165 Online Updater menu reorganizing (#14414) 2022-09-15 09:24:35 +02:00
github-actions 262d9720fe Fetch translations from Crowdin 2022-09-15 00:13:48 +00:00
Jamiras ec333e261f Update wording for hardcore (#14413) 2022-09-14 02:42:35 +02:00
github-actions c16a50f1dd Fetch translations from Crowdin 2022-09-14 00:14:28 +00:00
LibretroAdmin be044c09dd Disable Feral GameMode for Android - only available on Linux 2022-09-13 19:29:45 +02:00
LibretroAdmin ce8389d4a6 (menu_setting.c) Remove code duplicated functions 2022-09-13 11:06:37 +02:00
LibretroAdmin b32b1f277b Disable HAVE_IFINFO for MSVC 2003/2005 builds 2022-09-13 10:53:15 +02:00
LibretroAdmin 045fd38f19 Reduce tertiary operators 2022-09-13 10:28:03 +02:00
LibretroAdmin c1709f2218 (gfx_widget_load_content_animation) Get rid of strlen 2022-09-13 09:14:43 +02:00
LibretroAdmin c5d70d49e5 (gfx_widgets_progress_message) Cut down on another strlen 2022-09-13 03:58:54 +02:00
LibretroAdmin 5e8987839e (gfx_widgets) Cut down on strlens 2022-09-13 03:57:05 +02:00
github-actions 663b5eed9d Fetch translations from Crowdin 2022-09-13 00:13:53 +00:00
tr12345 8cc866b051 New Menu Items for disabling Info & Search buttons in the menu (#14259)
* New Menu Items Disable Info & Search

Add menu options for disabling Info and   Search buttons

* Update msg_hash_us.h

Update Sublabels

* Update menu_setting.c

Set Advanced flag for new settings
2022-09-12 23:17:24 +02:00
LibretroAdmin 36d60f6bf4 (Ozone/MaterialUI/RGUI/XMB) Get rid of some tertiary operators - was basically reassigning the same
value
2022-09-12 22:20:03 +02:00
MrHuu 911308327d (3DS) Set default bottom font values (#14404) 2022-09-12 01:44:02 +02:00
LibretroAdmin 75757d7d02 Remove unused DXGI inline functions 2022-09-11 23:15:25 +02:00
LibretroAdmin da094eeb2f Remove unused XMB_DEBUG 2022-09-11 19:53:44 +02:00
gblues cdd39a6364 MacOS: Fix Sixaxis (DS3) support (#14402)
* MacOS: Fix sixaxis on MacOS 12.x

== DETAILS
Mac OS 12.x "Monterey" dropped some built-in support for the
Sixaxis controller--exactly what changed is unclear, but other
projects reported similar issues with the OS.

This commit ports the work done on SDL, which is basically to
read two feature reports after writing out the activation report.
I think we did this at one point in the past, but it got lost
among HID driver rewrites.

I've tested this locally and it resolves the issue; after connecting
the sixaxis and pressing the Playstation button, the pad is registered
and works successfully.

I have not tested this on other platforms.

* Gracefully handle incomplete HID implementations

== DETAILS
Not all HID drivers implement all HID methods; since this controller
has a magic sequence that requires the ability to set and get HID
reports, we need to make sure we don't crash if we're running on
an incomplete implementation.

- Add a null check for the driver methods and log useful info if checks
  fail
- Fix minor formatting
2022-09-11 09:40:38 +02:00
MrHuu 422d2fcf12 (3DS) Fix CIA installation issues (#14399)
- Fixes CIA installation failing
- Add CIA installation progress stats
2022-09-11 02:57:31 +02:00
LibretroAdmin 14f4f35445 Exclude unused HAVE_HID for Miyoo and RetroFW 2022-09-10 00:01:20 +02:00
LibretroAdmin 2dec44188b (connect_ps3.c) Buildfixg 2022-09-09 23:58:00 +02:00
LibretroAdmin 2bdb5d488b (connect/ps3) Remove unused variable, style nits 2022-09-09 21:26:47 +02:00
LibretroAdmin f5fc1fb24e Fix build 2022-09-09 19:26:21 +02:00
LibretroAdmin 4cd63c20f4 (input/connect) Use calloc for setting DualShock3 struct 2022-09-09 19:22:29 +02:00
github-actions a665498775 Fetch translations from Crowdin 2022-09-09 00:15:05 +00:00
github-actions ad9836a5f8 Fetch translations from Crowdin 2022-09-08 00:15:22 +00:00
github-actions 959d077649 Fetch translations from Crowdin 2022-09-07 00:12:34 +00:00
sonninnos 4806105a2c Logging cleanups (#14393) 2022-09-06 18:48:58 +02:00
LibretroAdmin bafbbc8a1a Don't bake in OpenAL and libcaca by default unless explicitly enabled
with configure switch.
Reasons:
* Libcaca video driver support seems half baked, can't even render RGUI
right now on Windows. Not worth the troubleshooting for regular users or
the DLL linkage (which adds to filesize) until further developed
* Better native audio driver alternatives exist for OpenAL on both Windows and Linux
2022-09-06 17:40:36 +02:00
Jamiras 906d885b8e allow creating auto savestate in hardcore (#14392) 2022-09-06 05:04:54 +02:00
Jamiras 3601610b6f prevent invalid memory reference if game has achievements but core doesn't expose memory (#14391) 2022-09-06 05:04:29 +02:00
github-actions 84f599503d Fetch translations from Crowdin 2022-09-06 00:19:38 +00:00
LibretroAdmin 98ee07eaa0 (MaterialUI) Silence warning 2022-09-06 01:57:08 +02:00
Jamiras 43f5812a18 show achievement badge icons in glui driver (#14390) 2022-09-06 01:53:22 +02:00
Bobby Smith 82cac0f9ba Fix Redump bin/cue scan for some DC games + add RVZ/WIA scan support for GC/Wii (#14380) 2022-09-06 01:52:01 +02:00
MrHuu b88c297f8e (Network) Don't call getsockopt on 3DS platform (#14389) 2022-09-06 01:51:15 +02:00
MrHuu 1c31efaa91 (3DS) Only enable internal counter with CONSOLE_LOG defined (#14388) 2022-09-05 20:31:23 +02:00
LibretroAdmin 7ae555a51d (X11/Xinerama) Style nits; slightly optimize x11_get_metrics 2022-09-05 19:44:15 +02:00
sonninnos 87457eb678 Hide 'Notification Visibility' when notifications are disabled (#14386) 2022-09-05 19:11:39 +02:00
LibretroAdmin 6b4e20d414 (deps/switchres) Remove unused files grid.cpp and examples/ 2022-09-05 18:39:45 +02:00
LibretroAdmin ddeef350bd (X11) Simplify HAVE_XF86VM code ifdefs some more
(CodeQL) Take out for now while it fails to build
2022-09-05 18:36:45 +02:00
LibretroAdmin 77f3e20e3c (CodeQL) Only use 'cpp' language
(X11) Use HAVE_XF86VM for XFree86-VidMode X extension library
2022-09-05 18:26:08 +02:00
LibretroAdmin 5e985f0553 Create codeql.yml 2022-09-05 18:00:04 +02:00
LibretroAdmin 84868ab21f (Setting) Windowed scale should be an integer instead of float 2022-09-05 04:03:04 +02:00
github-actions c9ab8a6cbb Fetch translations from Crowdin 2022-09-05 00:15:29 +00:00
sonninnos c4c55077a1 Allow On-Demand Thumbnails in Explore menu (#14385) 2022-09-05 00:01:38 +02:00
Filipe Azevedo 788d602ec7 Fix various vfs / file stream issues (#14384)
* VFS: Fix stream size after truncate / write calls
Those changes ensure the stream size get updated correctly after a
truncate or write call.
* File Stream: Fix file stream eof
After a write call, EOF would be incorrect because it was only updated
after a read call.
2022-09-04 23:11:54 +02:00
LibretroAdmin 3bd36941a6 (Menu) Allow the user to use volume up/down/mute hotkeys from within the menu 2022-09-04 21:01:18 +02:00
LibretroAdmin 1e035b9385 (file_list) Get rid of superfluous small functions 2022-09-04 17:52:06 +02:00
LibretroAdmin dfb4b603e4 Get rid of superfluous wrapper function file_list_get_at_offset 2022-09-04 07:30:21 +02:00
LibretroAdmin 1a24bfe60c (file_list) Get rid of useless wrapper functions 2022-09-04 05:39:16 +02:00
LibretroAdmin 866ce4c50d (Menu drivers) Get rid of verbosity.h include 2022-09-04 04:58:22 +02:00
LibretroAdmin bbdc6d36da (qb) Disable HAVE_HID by default for now for Windows/Linux as long
as there are no working backends for both
2022-09-04 02:28:56 +02:00
github-actions e1990ba0dd Fetch translations from Crowdin 2022-09-04 00:13:08 +00:00
LibretroAdmin dfff8e127a Simplify joypad_connection.c 2022-09-04 02:03:20 +02:00
MrHuu 835bbc6f68 (3DS) Set bottom_asset directory default (#14376)
- Fix default value while generating retroarch.cfg
- Update 'Asset not found' error message
2022-09-03 20:40:01 +02:00
LibretroAdmin 532840c4b8 Change size of path_config_append_file to PATH_MAX_LENGTH - fixes #12906 2022-09-03 17:27:16 +02:00
LibretroAdmin 3abd414656 Backport https://github.com/LazyBumHorse/RetroArch/commit/ebe5f2cc3d368e862b22524e357f1b226e049885 -
Remove config_file_exists, replace with path_is_valid
2022-09-03 06:35:41 +02:00
LibretroAdmin 8b5c5358ad (playlists) Small cleanups:
- Don't need to NULL terminate strings passed to strlcpy
- Misc. code cleanups
2022-09-03 06:31:25 +02:00
LibretroAdmin 5d36d80318 Fix compilation with ./configure --disable-builtinglslang - was
missing linking against -lMachineIndependent and -lGenericCodeGen
static libs
2022-09-03 04:04:00 +02:00
LibretroAdmin bea2eb719b write_file_with_random_name - don't cast strlen return result to
different type
2022-09-03 03:38:14 +02:00
github-actions 57f3e4ca42 Fetch translations from Crowdin 2022-09-03 00:11:50 +00:00
LibretroAdmin ab39c6c2c8 * VFS:
- Simplify retro_vfs_file_seek_impl
- Some cleanups of vfs_implementation_uwp.cpp - backport some of the
improvements made to the non-UWP version
2022-09-03 01:42:57 +02:00
LibretroAdmin 654203be0a (Autosave) Change/improve exit behavior of autosave thread -
if condition variable is signaled, the loop is ran another
last time so we can do a final check/save before stopping the thread.
Old commit courtesy of tobiasjakobi
2022-09-03 00:21:58 +02:00
LibretroAdmin 8f14143859 Don't do implicit memsets for struct timespec - always has only
a tv_sec and tv_nsec member field which always get set
2022-09-02 23:47:58 +02:00
LibretroAdmin 2463a63c78 (task_save.c) Miscellaneous cleanups:
* Remove unused return type of one function
* Remove some TODO/FIXME notes
* Small style nits
2022-09-02 23:35:48 +02:00
Bashar Astifan 6226d0442f UWP OnSuspending crash fix (#14372) 2022-09-02 13:26:11 +02:00
LibretroAdmin 8c3acb7adb Make record_drivers_init_first more robust 2022-09-02 03:45:12 +02:00
github-actions bfcdc7a764 Fetch translations from Crowdin 2022-09-02 00:12:26 +00:00
LibretroAdmin 55391ac29f Plug some more implication conversion of return value of strlen 2022-09-02 01:22:12 +02:00
LibretroAdmin 328ff1f0e9 Avoid one implicit conversion warning 2022-09-02 01:18:50 +02:00
LibretroAdmin 0ffdd14940 Change msg_len of font driver to size_t - avoids all the type
casting/conversion
2022-09-02 01:10:28 +02:00
LibretroAdmin 77e83a4e60 config_save_file - simplification in snprintf call in loop 2022-09-01 18:38:20 +02:00
LibretroAdmin 6f84af2efa * Simplify menu_entries_get_title
* Add TODO/FIXME - localize strings to hardcoded strings
* Some more simplifications in for loops
2022-09-01 15:42:25 +02:00
LibretroAdmin 003cea5d42 Fix some 'implicit conversion loses precision' warnings 2022-09-01 15:15:48 +02:00
LibretroAdmin 793370aa97 Reduce snprintf (#14371)
* Don't do snprintf calls in loops that can be done once outside
* Try to prevent some msg_hash_to_str calls in loops
* Add FIXME/TODO localize notes to hardcoded strings
* Reduce some snprintf calls by moving them out of if/else blocks
* Simplify early return path for one function
2022-09-01 14:54:07 +02:00
LibretroAdmin 60030e373e Reduce snprintfs + assorted cleanups (#14369)
* Reduce snprintf and/or use them only for concatenating the
string formatting of numbers/values
* Reduce snprintfs
* Use snprintf for concatenation at parts
* * We don't need to NULL-terminate strings that get passed to strlcpy/strlcat
and friends
* Use snprintf for concatenation in certain instances
* Do away with some string intermediary copies where we can avoid it
* Fix warning unused variable
* * Reduce snprintf calls
* Rewrite snprintf calls into strlcpy where possible
* Use snprintf for concatenation when necessary
* Do away with some string intermediary copies in task_translation.c
* run_translation_service - make switch slightly smaller
2022-09-01 04:17:07 +02:00
LibretroAdmin 67afa426e5 Merge pull request #14367 from sonninnos/menu-paging
Menu paging navigation adjustments
2022-08-31 22:47:26 +02:00
LibretroAdmin 9daf072901 Merge pull request #14368 from Themaister/master
Vulkan: Fix more validation errors
2022-08-31 22:39:27 +02:00
Themaister a058c78fd0 Attempt to fix validation errors with HDR swapchain.
Always use final render pass type equal to swapchain format. Use more
direct logic to expose if filter chain emits HDR10 color space or not.
2022-08-31 21:59:25 +02:00
Themaister 3a25b53175 Fix more validation errors. 2022-08-31 21:03:07 +02:00
sonninnos 9b60e6c993 Menu paging navigation adjustments 2022-08-31 21:34:47 +03:00
LibretroAdmin 06ab11d3e5 Merge pull request #14366 from Themaister/master
Vulkan: Fix some validation errors
2022-08-31 20:25:30 +02:00
Themaister f508a6a87f Fix some potential validation errors in HDR code. 2022-08-31 19:57:54 +02:00
Themaister f9eda02a74 Fix leak of HDR UBO buffer. 2022-08-31 19:46:11 +02:00
Themaister d6413f2a43 Automatically mark buffer/images/memory with names. 2022-08-31 19:46:11 +02:00
Themaister d9088dd2a9 Add helpers to mark object names automatically.
Can be trivially extended as required.
2022-08-31 19:45:33 +02:00
Themaister 6038d503c2 Move over to VK_EXT_debug_utils.
Debug marker is deprecated years ago.
2022-08-31 19:45:21 +02:00
LibretroAdmin fd41b0f90c RARCH_LOG_V - increase buffer size from 256 to 1024, otherwise
Vulkan log messages get truncated
2022-08-31 16:38:30 +02:00
sonninnos a96c5f77c8 (Ozone/XMB/RGUI) Explore menu thumbnails (#14365) 2022-08-31 14:42:10 +02:00
github-actions 08fe9be7d1 Fetch translations from Crowdin 2022-08-31 00:14:12 +00:00
LibretroAdmin 56f66f68e2 Fix memory usage being shown alone 2022-08-29 21:58:36 +02:00
LibretroAdmin 8f1389c067 (GX) Fix potential datarace (#13795) 2022-08-29 18:31:14 +02:00
LibretroAdmin ef0e9ccc38 (MaterialUI/RGUI/XMB) Less snprintf calls
(menu_displaylist.c) Do away with one less strlen by using
the return value of snprintf here instead
2022-08-29 14:38:26 +02:00
LibretroAdmin 08154e2656 (task_autodetect.c) Use snprintfs for concatenating strings (and only
use them for formatting numbers/values)
2022-08-29 14:05:16 +02:00
LibretroAdmin 8e949c516e (video_driver_frame) Do away with a lot of string intermediary copies
for formatting the status text
2022-08-29 13:29:11 +02:00
LibretroAdmin 200897f61e (configuration.c) Use snprintf in specific instances for concatenation 2022-08-29 12:40:25 +02:00
LibretroAdmin 22a12c9861 vulkan_context_init_device - simplify some string concatenation 2022-08-29 12:09:40 +02:00
LibretroAdmin 12bc84bc08 * Add TODO/FIXME notes for localization
* Turn some trivial snprintf calls into strlcpy/strlcat
2022-08-29 11:41:49 +02:00
LibretroAdmin fcbc71fef8 retro_vfs_opendir_impl - one less unnecessary strlen for Win32 2022-08-29 10:04:18 +02:00
github-actions 72eb52a5bc Fetch translations from Crowdin 2022-08-28 00:15:21 +00:00
LibretroAdmin 8b3e5b66bc Silence warning 2022-08-27 18:18:43 +02:00
LibretroAdmin 86c22742b3 (libnx/lakka switch) Another buildfix 2022-08-27 18:13:53 +02:00
LibretroAdmin ee672bf785 Buildfixes for libnx/lakka switch 2022-08-27 17:56:10 +02:00
LibretroAdmin b4f0b2827f Remove another unused variable warning 2022-08-27 17:53:43 +02:00
LibretroAdmin fabccce437 Silence some unused variable warnings 2022-08-27 17:52:19 +02:00
LibretroAdmin f1ff92c881 * menu_entries_append and menu_entries_append_enum are now combined into
one - if you set the last parameter to a valid 'rarch_setting_t' pointer
and enum_msg to MSG_UNKNOWN, you will get the previous menu_entries_append
behavior
* Renamed remaining function to menu_entries_append so that we have one
consistent way of adding menu entries instead of two
Reduces some code duplication significantly
2022-08-27 17:40:52 +02:00
LibretroAdmin e6fd2c9cdb (Win32) Do optimization for Windows where we only update the title
when the previous title differs from the current title
(X11) Have to roll back the previous title optimization/less calls to XChangeProperty,
because the title is lost upon toggling between fullscreen/windowed and is no longer
set
2022-08-27 16:16:24 +02:00
LibretroAdmin 938d7c1fc4 (X11) Optimize x11_update_title - it was previously calling XChangeProperty
at regular intervals even when the title output for the window title had not
changed at all, now we compare it properly against the last set title, and
only if it has changed will we make the call to XChangeProperty. Also, do
away with strlen(title) calculation and use return value of
video_driver_get_window_title instead
2022-08-27 16:03:38 +02:00
LibretroAdmin eaae2aec46 Increase the size of formatted_number to 16 so we no longer get
-Wformat-truncation warnings (state slot would be way too big though
regardless, even the current cap at 999 is ridiculous)
2022-08-27 15:45:49 +02:00
LibretroAdmin 0c7408ee16 (EGL) Buildfix 2022-08-27 15:43:16 +02:00
LibretroAdmin bbf93812a5 (EGL) Turn some EGL functions static 2022-08-27 15:35:08 +02:00
LibretroAdmin 25b76fdb54 input_keyboard_osk_event_append and others: don't call strlen
implicitly, always leave it up to caller
font_driver_get_message_width - try to avoid scenario where 'len'
is 0
2022-08-27 15:13:56 +02:00
LibretroAdmin f34f4d060c (video_shader_get_type_from_ext) remove strlen call 2022-08-27 14:29:37 +02:00
LibretroAdmin 19c72a413f (gfx_thumbnail_path.c) Cache localized string
(menu_displaylist.c) Some optimizations:
* Make sure val_d is never bigger than 16, it should just
contain a number. 16 is more than plenty (and probably too big even)
* Hose val_d out of loops if its value never changes inside the loop
* Attempt to avoid calling msg_hash_to_str inside loops unnecessarily
2022-08-27 13:20:29 +02:00
LibretroAdmin 87de6bda46 (input_autoconfigure_disconnect_handler) Simplify some code 2022-08-27 09:22:20 +02:00
LibretroAdmin b200ab6f8f Simplify code, and no longer have to deal with GCC suppression of warnings 2022-08-27 09:07:55 +02:00
LibretroAdmin 388183d971 (menu_displaylist)
* Don't attempt to call msg_hash_to_str in a loop, cache it once outside
inside a local variable
* Do away with some spurious snprintf usage for RGUI (truncation does not matter
as pointed out by jdgleaver, so we needn't be concerned)
2022-08-27 09:02:43 +02:00
LibretroAdmin c0221ae340 Fix typo 2022-08-27 07:59:22 +02:00
LibretroAdmin 61e24132bf (task_save.c) Simplification in control flow
(snprintf) Try to reduce or simplify snprintf calls, only tend to
use it for processing integers/numbers and avoid it for regular
string concatenation (NOTE: we try to be a bit safer about it to
address earlier cited criticism, although we don't consider concatenating
3 or 4 characters at the end to be insecure)
(msg_hash_to_str) Try to avoid duplicate calls to the same localized
string when we can just cache the results once instead locally
2022-08-27 07:55:02 +02:00
github-actions 45b05ea3db Fetch translations from Crowdin 2022-08-27 00:12:27 +00:00
LibretroAdmin f3c13cf669 * (cheat_manager_save) Reduce amount of snprintf calls from 4 to 1 2022-08-26 23:35:45 +02:00
LibretroAdmin 8f47621857 (libretro-common) Remove unused jsonsax files - we use rjson now instead 2022-08-26 17:38:34 +02:00
LibretroAdmin c3a1c578b6 Prefer to use string_starts_with_size/string_ends_with_size (less strlen
calls)
2022-08-26 17:27:55 +02:00
LibretroAdmin be9b4031d9 Remove some 'Unused variable' warnings 2022-08-26 17:10:45 +02:00
LibretroAdmin a47ccd81ed (video_shader_parse.c) Don't keep recreating formatted_num unnecessarily
when we already have it
2022-08-26 16:37:24 +02:00
sonninnos 1f048dd358 (XMB+Ozone) Core option category icon refinements (#14354) 2022-08-26 16:11:36 +02:00
LibretroAdmin 7507e20703 Revert "(RJSON) Combine multiple consecutive rjsonwriter_raw calls into one"
This reverts commit 82efa5a3d6.
2022-08-26 14:44:29 +02:00
LibretroAdmin 82efa5a3d6 (RJSON) Combine multiple consecutive rjsonwriter_raw calls into one
- significantly reduces the amount of function calls
2022-08-26 13:55:52 +02:00
LibretroAdmin dfe712da95 (Steam) Buildfix 2022-08-26 12:58:06 +02:00
LibretroAdmin 842121ca16 (Steam) restore to original code 2022-08-26 12:38:53 +02:00
LibretroAdmin 205b9f862f (CTR) Buildfix/ fix typo 2022-08-26 11:49:27 +02:00
LibretroAdmin 29caa95f7e (platform_unix.c) Use safer 'fill_pathname_join_special' for assembling
file path names instead of snprintf
(ctr_gfx.c) Use strlcpy instead of snprintf where possible
(ctr_gfx.c) Use snprintf instead of sprintf where possible
(ctr_gfx.c) Some general style nits
2022-08-26 10:43:42 +02:00
LibretroAdmin b8b3fe55fe Turn Advanced Settings on by default, this entire filtering of
settings will need a complete rethink anyways
2022-08-26 10:06:03 +02:00
LibretroAdmin 62fffe726c Steam buildfix #3 2022-08-26 09:57:34 +02:00
LibretroAdmin 112a350789 (Steam) Buildfix #2 2022-08-26 09:39:40 +02:00
LibretroAdmin 1b07e2bdce (Steam) Buildfix 2022-08-26 09:37:22 +02:00
sonninnos de67f174bf (XMB) Fix icons in 'Load Content' Favorites (#14353) 2022-08-26 08:35:12 +02:00
LibretroAdmin 9535c5c0ad Optimize menu_displaylist_parse_core_options_dropdown_list:
* Hose val_d snprintf outside of loop
* Make it smaller
2022-08-26 00:02:04 +02:00
LibretroAdmin d67cb22c7f (menu_setting.c) Replace trivial usage of snprintf with strlcpy (where it only printed a
string and nothing else, or similar simple usage)
2022-08-25 19:56:44 +02:00
LibretroAdmin ee16c4558d Forgot to add compat_strldup.c to Wii and WiiU salamanders 2022-08-25 17:02:05 +02:00
LibretroAdmin 1a646d17e0 Add compat_strldup.c to Salamander versions 2022-08-25 17:00:23 +02:00
LibretroAdmin 288b2da13e Create separate file compat_strldup.c since compat_strl.c is not
getting built-in for Apple targets at all
2022-08-25 16:50:12 +02:00
LibretroAdmin 625e63c3cc Simplify DEFAULT_FILL_TITLE_MACRO 2022-08-25 16:42:46 +02:00
LibretroAdmin 575e331fd1 If we already know the length of the string, use strldup instead.
Avoids the internal strlen call inside strdup, and strdup is a deprecated
function starting from MSVC2005 anyways.

NOTE: Do NOT pass STRLEN_CONST as n parameter to strldup, it needs to
be at least +1 character higher than the strlen return value of the same
string
2022-08-25 16:31:54 +02:00
LibretroAdmin 5bb3fbab93 Fix mistake in prior commit - should be concatenated to string 2022-08-25 15:17:31 +02:00
LibretroAdmin 6caa139700 (cheevos.c) Fix some function prototypes for C
Rewrite some snprintfs as strlcpy/strlcat/manual assignment - only
use snprintf if we actually need the formatting
2022-08-25 15:08:02 +02:00
LibretroAdmin 15fe258c1b Reduce snprintf calls 2022-08-25 13:03:08 +02:00
LibretroAdmin 1b181185c2 Simplify override_shader_values - entry variable never used 2022-08-25 08:51:55 +02:00
LibretroAdmin a1f5a03551 (libretrodb) Replace strncpy 2022-08-25 08:32:02 +02:00
LibretroAdmin f5ac33c0b6 Simplify task_database_cue.c code -
* Was copying pre_game_id into several memory buffers for no real reason,
gets rid of some unnecessary strncpy calls this way too
2022-08-25 07:15:27 +02:00
LibretroAdmin 88187e7ef2 * Start getting rid of strncpy
* steam.c - cleanups:
  * Use string_to_lower from libretro-common/stdstring.c instead of
    its own version
  * Some stylistic changes
  * Rewrite strncpy calls into strlcpy/strlcat/manual assignment
  * Make it C89 compliant
  * Some unused variables
2022-08-25 06:51:39 +02:00
LibretroAdmin 8017410098 task_database_cue_get_token - correct to 'if (rv < 0)' instead 2022-08-25 05:52:42 +02:00
LibretroAdmin c841e191f7 (task_database_cue.c) Put this conditional back 2022-08-25 05:36:48 +02:00
LibretroAdmin da13fb0f48 Don't include errno.h in files that don't justify its use 2022-08-25 05:19:30 +02:00
LibretroAdmin 39241699a0 Drop errno dependency in database_cue_get_token - was some legacy
code that is probably not needed
2022-08-25 04:51:00 +02:00
LibretroAdmin 93babdd6f7 Remove mono_crash.mem.413585.1.blob 2022-08-25 04:43:51 +02:00
lucasmr 808fc7f389 Refactor task_database_cue.c (#14349) 2022-08-25 04:42:23 +02:00
sonninnos 8fd0961c9a Show playlist entry as 'Quick Menu' header title (#14350) 2022-08-25 04:41:14 +02:00
Cthulhu-throwaway e45958b25a (Network) Get rid of the timeout_enable parameter for socket_connect (#14351) 2022-08-25 04:40:19 +02:00
Apaczer 23f649b050 enable screenshots on MIYOO (#14347)
update Makefile.miyoo
2022-08-25 02:56:16 +02:00
github-actions a5eb06b2b5 Fetch translations from Crowdin 2022-08-25 00:14:56 +00:00
Cthulhu-throwaway ea9dd022d6 (Netplay) Do not try to receive new data if the data is in the buffer (#14345) 2022-08-24 21:55:48 +02:00
LibretroAdmin 72cc98e9bd Remove unused variables 2022-08-24 17:42:01 +02:00
Cthulhu-throwaway b59624adc8 (Netplay) Copy data on receive, even if the buffer is full (#14344) 2022-08-24 16:57:11 +02:00
LibretroAdmin 9aef0eff90 Resync 2022-08-24 16:41:21 +02:00
LibretroAdmin 56a6c50728 (task_database_cue.c) Get rid of some strcmps 2022-08-24 16:32:55 +02:00
LibretroAdmin c79904f8b3 (task_database_cue.c) More simplifications 2022-08-24 16:21:45 +02:00
LibretroAdmin f2d8b67f23 (task_database_cue.c) Simplifications:
- unsafe strcpy/strcat/sprintf were used, so pass 'len' parameters
to detect_{system} functions so that we can use the safer strlcpy/strlcat
calls instead
- thanks to strlcat/strlcpy return values, we can do less string concatenations
and get the same results
- some other miscellanous cleanups
2022-08-24 16:08:06 +02:00
LibretroAdmin fdc563e6f7 Remove errno dep (task_database_cue.c) (#14341)
* (task_database_cue.c) Turn some functions static - some general cleanups

* Start removing errno dependency on task_database_cue.c
2022-08-24 15:15:21 +02:00
LibretroAdmin 6b9a382f2e Resync 2022-08-24 15:09:51 +02:00
LibretroAdmin 6894600d41 (stdstring) word_wrap - use strlcpy instead of strcpy 2022-08-24 15:06:03 +02:00
LibretroAdmin 6126a86259 Try to avoid sprintf/strcat/strcpy calls as much as possible in
RetroArch codebase
2022-08-24 13:49:05 +02:00
LibretroAdmin 2bc723bb4b (Menu) Move duplicate code is_running_quickmenu to menu_driver.c 2022-08-24 13:28:53 +02:00
LibretroAdmin a147cb09d9 Get rid of duplicate code - move function to menu_driver.c and have
both XMB and Ozone use it
2022-08-24 13:14:55 +02:00
sonninnos 5f7d14966c (Ozone+XMB) Fullscreen thumbnail browsing (#14342) 2022-08-24 12:35:54 +02:00
LibretroAdmin 8776c79a60 Fix 'inconsistent instance variable specification' error for OSX 10.5 / Xcode 3.1.4 2022-08-24 11:46:02 +02:00
23rd 9663e4b4f1 Fixed items of system top menu bar on macOS. (#14288)
The second attempt.
This reverts commit e1caf32817.
2022-08-24 03:57:43 +02:00
Cthulhu-throwaway 620e048c52 (Netplay) Do not try to receive new data if the buffer is full (#14343) 2022-08-24 03:32:09 +02:00
LibretroAdmin fc861c167c - Get rid of some strerror usage
- Get rid of errno.h include in task_audio_mixer.c
- Rename get_token so it has less chance to conflict with other symbols
2022-08-23 19:58:20 +02:00
LibretroAdmin f48ba41b67 Remove unused variables 2022-08-23 19:41:45 +02:00
LibretroAdmin c04201927b Don't make libretrodb dependent on errno anymore (#14340)
* Don't make libretrodb dependent on errno anymore
2022-08-23 19:36:52 +02:00
LibretroAdmin d969facdb4 C89_BUILD buildfix 2022-08-23 19:23:53 +02:00
LibretroAdmin c22c69e792 (gfx_animation.c) Simplify build_line_ticker_string 2022-08-23 18:26:49 +02:00
LibretroAdmin e769436876 (word wrap functions in stdstring.c) Avoid implicit strlens, caller
should pass the 'length' to the function instead
2022-08-23 17:06:01 +02:00
Jamiras 85c44f9245 more thread-awareness in task callbacks (#14337)
* more thread-awareness in task callbacks
2022-08-23 15:11:11 +02:00
LibretroAdmin 6f738d4fbd Gradually get rid of strcpy_literal
Reasons:
1 - Just a macro for strcpy
1.2 - doesn't have a return type unlike strlcpy, can't be used
for string concatenation
1.3 - unsafe compared to strlcpy

Do either manual string assignment per character or strlcpy, no
inbetween by resorting to strcpy
2022-08-23 15:04:47 +02:00
LibretroAdmin 5a036de53c (configuration.c) reduce snprintf calls 2022-08-23 08:29:48 +02:00
LibretroAdmin 0e5b2ff280 (LED drivers) Miscellaneous cleanups 2022-08-23 08:11:22 +02:00
LibretroAdmin e87db6f0a2 utf8cpy already does NULL termination 2022-08-23 07:52:03 +02:00
github-actions c97bc0ddbd Fetch translations from Crowdin 2022-08-23 00:14:24 +00:00
Cthulhu-throwaway 1a1db6177d (Netplay) Fix lobby sublabel CRC display on some platforms (#14338) 2022-08-22 23:05:13 +02:00
LibretroAdmin f5e5a1b201 strlcpy already does NULL termination 2022-08-22 12:22:54 +02:00
LibretroAdmin a96d12e8bc Put back property locking in threaded_gather_internal - without this,
core updater tasks would crash/segfault - heap corruption
2022-08-22 03:41:17 +02:00
Cthulhu-throwaway e1a139ec0f (Network Stream) Add function netstream_eof (#14335) 2022-08-21 21:52:57 +02:00
LibretroAdmin 30977a2603 Enable savestate file compression by default for UWP/Xbox - got told there
are no more issues with it
2022-08-21 20:48:28 +02:00
github-actions 278baf212b Fetch translations from Crowdin 2022-08-21 00:13:44 +00:00
LibretroAdmin 10a351228b * Rewrite some snprintfs
* task_steam.c - add license header
2022-08-20 19:17:28 +02:00
LibretroAdmin 23b06dca69 (video_shader_parse) reduce amount of snprintfs - create
formatted number once then keep appending it to strings
2022-08-20 17:56:19 +02:00
LibretroAdmin be2d35a1f4 (core_option_manager_new) rewrite snprintf 2022-08-20 16:53:10 +02:00
Cthulhu-throwaway f27c8c0c1d (Network Stream) Add string functions (#14333) 2022-08-20 16:36:13 +02:00
github-actions f3eaa5cfa8 Fetch translations from Crowdin 2022-08-20 00:11:50 +00:00
Ryunam 597c33fa94 Fix core option categories regression (#14332) 2022-08-19 17:37:31 +02:00
LibretroAdmin 90e0d0bb70 (core_option_manager.c) Some simplifications 2022-08-19 10:37:32 +02:00
github-actions a510fb5d20 Fetch translations from Crowdin 2022-08-19 00:13:33 +00:00
MrHuu 3f8fde540d (3DS) Add unique ID's (#14330)
- Arduous
- Gong
- Jump 'n Bump
- Mini vMac
- RETRO8
- Super Mario War
- Vapor Spec
- vitaQuake2-rogue
- vitaQuake2-xatrix
- vitaQuake2-zaero
2022-08-18 19:11:29 +02:00
Jamiras 2acc7c4b39 release achievement badge textures when video driver is deinitialized (#14329) 2022-08-18 04:28:55 +02:00
Jamiras e0a065d20e don't hold property_lock while gathering tasks (#14328) 2022-08-18 04:28:40 +02:00
sonninnos c818024bc6 (RGUI) Savestate thumbnails (#14326) 2022-08-18 02:12:50 +02:00
github-actions 245319c389 Fetch translations from Crowdin 2022-08-18 00:12:16 +00:00
LibretroAdmin 4c7e316aa2 Turn functions static 2022-08-17 16:47:44 +02:00
MrHuu 46bafd6e46 (3DS) Add bottom menu options (#14323) 2022-08-17 08:23:07 +02:00
github-actions b55e6d10c7 Fetch translations from Crowdin 2022-08-17 00:11:51 +00:00
Giovanni Cascione 093432d6c4 mali_fbdev: fix assertion failed on video threaded switch (#14316)
* mali_fbdev: fix assertion failed on video thread switch

* mali_fbdev: added fallback to get refresh rate currently set
2022-08-16 22:13:43 +02:00
github-actions b32ec36130 Fetch translations from Crowdin 2022-08-16 00:14:31 +00:00
Filipe Azevedo e8668a5c71 rzipstream_tell: Fix missing tell for non compressed files (#14313)
The tell call would always return the compressed stream position.
2022-08-15 17:48:09 +02:00
github-actions cb82725cc2 Fetch translations from Crowdin 2022-08-15 00:11:58 +00:00
github-actions 212013f677 Fetch translations from Crowdin 2022-08-14 00:12:45 +00:00
Cthulhu-throwaway c180560165 (Netplay) Improve check frames menu entry (#14320) 2022-08-13 22:28:43 +02:00
Cthulhu-throwaway 8914f0b6fe (Netplay) Less cryptic error messages (#14319) 2022-08-13 10:54:09 +02:00
LibretroAdmin 1580dbae6b Go about this a different way - lck and lsae are read from exts
instead of the string_list
2022-08-13 02:55:33 +02:00
Cthulhu-throwaway 2d1c238c1d Special functions for core serialization (#14317) 2022-08-13 02:24:28 +02:00
github-actions 74ef6a0f4a Fetch translations from Crowdin 2022-08-13 00:13:23 +00:00
LibretroAdmin 4a1aaa55ec * Safer way of appending extensions at the end of the string - (#14318)
instead of this manual assignment, we can take advantage of the
string list in one of the instances to add the extensions to it.
Less string copying/concatenation that way later on as well.
* Append the extension to the string earlier before it's passed
to the leaf function that needs it
2022-08-13 01:40:45 +02:00
LibretroAdmin 59866ddac6 (video_shader_parse.c) Safer code 2022-08-12 22:09:33 +02:00
LibretroAdmin e264ab0547 Add necessary compilation files to Griffin and Makefile.common 2022-08-12 21:56:36 +02:00
LibretroAdmin 86e4c0394b (glslang) Go back to prior code 2022-08-12 21:49:42 +02:00
hunterk b793169638 add credits to Cyber for their NTSC presets (#14315) 2022-08-12 07:31:46 +02:00
github-actions 1920430539 Fetch translations from Crowdin 2022-08-12 00:11:11 +00:00
Cthulhu-throwaway 54f06c55f5 (Netplay) More removal of older unused code (#14314) 2022-08-12 01:36:55 +02:00
Cthulhu-throwaway 908667d97a (Netplay) Removal of older unused code (#14312) 2022-08-11 23:17:33 +02:00
Filipe Azevedo d62b866237 rzipstream_gets: Fix missing eol (#14311)
The eol was always stripped from the data, leading to behavior
differences with filestream_gets and general read line implementations.
2022-08-11 23:17:00 +02:00
LibretroAdmin 4c4bec11f7 NULL termination already happens in strlcpy 2022-08-10 02:45:27 +02:00
github-actions 13b5ec4b1a Fetch translations from Crowdin 2022-08-10 00:11:42 +00:00
LibretroAdmin d5cc01c574 Fix another assignment mistake of the NULL terminator 2022-08-09 19:28:29 +02:00
LibretroAdmin ec47b9883d (configuration.c) Fix mistake in NULL terminator assignment 2022-08-09 18:53:45 +02:00
github-actions 440a67e4b8 Fetch translations from Crowdin 2022-08-09 00:13:27 +00:00
LibretroAdmin 96a0486790 C89_BUILD buildfix 2022-08-09 00:01:55 +02:00
LibretroAdmin a6e210e9db Get rid of some strlcats 2022-08-08 22:41:32 +02:00
LibretroAdmin 05cf639712 Reduce amount of strlcats in retroarch.c 2022-08-08 21:46:37 +02:00
Cthulhu-throwaway c030e1c5dc (Netplay) Support for customizing chat colors (#14305) 2022-08-08 20:09:06 +02:00
LibretroAdmin a9157f975e String cleanups (#14304)
(retroarch.c) retroarch_get_capabilities - get rid of strlcat
party in RARCH_CAPABILITIES_CPU, do simple manual assignment for
concatenation instead and NULL terminate at the end
(menu_displaylist.c) Do something about some of the unnecessarily huge
local strings of PATH_MAX_LENGTH size (can be as large as 8192)
(menu_displaylist.c) Replace some trivial strlcats / snprintfs
(D3D10/D3D11/D3D12) Strings don't need to be initialized -
strlcpy already null-terminates - get rid of some constants
2022-08-08 19:11:15 +02:00
Cthulhu-throwaway d3f3c58e61 (Network) Fix getnameinfo_retro's port value for HAVE_SOCKET_LEGACY platforms (#14303) 2022-08-08 15:28:42 +02:00
github-actions 5ffe62a52b Fetch translations from Crowdin 2022-08-08 00:11:35 +00:00
Cthulhu-throwaway 078f712b34 (WiiU) Attempt fix (#14302) 2022-08-07 20:32:27 +02:00
Cthulhu-throwaway 976a49ad2b Ensure #ifdef instead of #if for HAVE_NETWORKING (#14299) 2022-08-07 13:42:09 +02:00
github-actions 3dc979356f Fetch translations from Crowdin 2022-08-07 00:13:49 +00:00
LibretroAdmin ba8cc5f381 Cut down on some of the strlcats 2022-08-07 00:28:13 +02:00
LibretroAdmin 0edbe945b4 (MaterialUI/XMB) Optimize refreshing of playlists 2022-08-06 20:32:19 +02:00
LibretroAdmin 1b43e60c7c (Ozone) Use less path_remove_extension and work more with return values
from file_path.c functions
(menu_cbs_title) Small optimization to string concatenation
2022-08-06 19:51:00 +02:00
LibretroAdmin c7786a45e1 Create path_get_extension_mutable and use it in menu_explore function
for trivial extension replacement in string
2022-08-06 19:06:31 +02:00
LibretroAdmin 94ed25be56 Cleanups (#14296)
- (database_info.c) Optimizations for database_info_build_query_enum() -
 it would call strlcat at the very least 3 times, normally more than that.
 Every strlcat call is at least one or more strlens. Reduce it all down
 to manual string concatenation and one strlcat
- (database_info_build_query_enum) - always NULL terminates string so no need for NULL termination done by callee
* (menu_displaylist) use smaller strings for basename paths, remove one unnecessary string
in menu_displaylist.c function
- (disk_index_file.c) Avoid another trivial string concatenation by doing
it manually after fill_pathname_join_special
- (fill_pathname_join_delim) since fill_pathname_join_delim() now has a return value, use it for 
string concatenation
- (platform_unix) - Use BUFSIZ as size for a buffer in system_property_get
- some other trivial strlcat usage replacements
2022-08-06 18:04:40 +02:00
Tatsuya79 72b4cf914e Rename video filters (#14293) 2022-08-06 13:05:01 +02:00
github-actions 5b09b6614b Fetch translations from Crowdin 2022-08-06 00:12:09 +00:00
LibretroAdmin 879674d4c3 Had to update Makefile.emscripten too 2022-08-05 23:51:34 +02:00
LibretroAdmin 6d054a2d96 Add Emscripten.yml 2022-08-05 23:50:29 +02:00
LibretroAdmin 3b0f20768b Add RetroFW/RS90/RetroFW workflows 2022-08-05 22:43:37 +02:00
LibretroAdmin bebe803658 Add DOS/DJGPP workflow 2022-08-05 21:52:57 +02:00
LibretroAdmin fa9f39c0ab Add Switch/libnx workflow 2022-08-05 20:17:02 +02:00
LibretroAdmin 30bdd8b447 Add 3DS workflow 2022-08-05 19:20:54 +02:00
LibretroAdmin 5739c537a2 Some CXX_BUILD fixes 2022-08-05 17:40:06 +02:00
LibretroAdmin 0ed18d16c4 Add GameCube/Wii workflows 2022-08-05 17:08:08 +02:00
LibretroAdmin cd7a6afd20 Add WiiU workflow 2022-08-05 16:24:46 +02:00
LibretroAdmin 03971308a3 (PIA) Fix warning 2022-08-05 15:27:55 +02:00
LibretroAdmin 1135bf0534 Add PSVita github workflow 2022-08-05 15:23:32 +02:00
LibretroAdmin dab528ca11 Update Windows-i686-MXE.yml 2022-08-05 13:53:51 +02:00
LibretroAdmin a30f256bb0 Create Windows-i686-MXE.yml 2022-08-05 13:53:00 +02:00
LibretroAdmin 7eecf3bdd0 Create Windows-x64-MXE.yml 2022-08-05 13:22:34 +02:00
Cthulhu-throwaway a7c93eb9ed (PS3) Silence Warnings (#14287) 2022-08-05 12:45:35 +02:00
LibretroAdmin ef551478d3 Use fill_pathname_join when out and dir overlap 2022-08-05 05:27:51 +02:00
TheRhysWyrill 9d939a35d6 Add Daite XMB Icon Theme (#14263) 2022-08-05 04:27:34 +02:00
Cthulhu-throwaway b04cb4b1e5 (PS3) Buildfix (#14285) 2022-08-05 04:19:28 +02:00
LibretroAdmin e3b82184a7 (glslang) Silence warning 2022-08-05 02:29:59 +02:00
Cthulhu-throwaway add4a1e8a0 (Network) Define inet_ntop and inet_pton for older Windows versions (#14284) 2022-08-05 02:23:35 +02:00
github-actions 9c7b96b9d0 Fetch translations from Crowdin 2022-08-05 00:14:42 +00:00
LibretroAdmin 72a7b3ce07 (X11) Turn these two functions static 2022-08-05 02:00:09 +02:00
Cthulhu-throwaway c6b99a5df0 (Network) Always have getaddrinfo and getnameinfo flags defined (#14283) 2022-08-04 23:06:28 +02:00
LibretroAdmin 0594df8cce Remove some unused variables 2022-08-04 22:41:17 +02:00
LibretroAdmin e1caf32817 Revert "Fixed items of system top menu bar on macOS. (#14271)" (#14279)
This reverts commit 7068eebe0c.
2022-08-04 17:56:26 +02:00
LibretroAdmin 2e5df6a973 fill_str_dated_filename: add size_t return value 2022-08-04 17:18:32 +02:00
LibretroAdmin 0c21a92581 * fill_pathname_expand_special will NULL-terminate string so not
necessary to NULL terminate passed string
* fill_pathname - add size_t return value
* Some general cleanups
2022-08-04 17:10:51 +02:00
LibretroAdmin 9ae46d2648 (file_path.c)
- file_path_expand_special - cut down on code duplication
- file_path_expand_special - add size_t return value
- fill_pathname_abbreviate_special - add size_t return value
2022-08-04 16:53:53 +02:00
LibretroAdmin 5172fe2ba6 fill_pathname_abbreviated_or_relative - add return value 2022-08-04 16:44:01 +02:00
LibretroAdmin 67c23aec0e (Wayland) Stub out unused variables for now
(menu_contentless_cores) Fix mistake - needed to set len to return
value of fill_pathname_join_special
(configuration.c) Fix some unused variable warnings on Linux
2022-08-04 16:19:50 +02:00
23rd 7068eebe0c Fixed items of system top menu bar on macOS. (#14271) 2022-08-04 15:47:30 +02:00
CyberLabSystems 993aaee716 Adding CyberLab custom Blargg NTSC Filter Presets (#14231)
CyberLab custom Blargg NTSC Filter Presets offer improved dedithering with less scrolling, shimmering and other artifacts than current core included Blargg NTSC Filter implementations.

They also work properly with several cores that would otherwise result in a squished image if using the Blargg NTSC SNES filters currently available in the Video Filters folder.
2022-08-04 15:44:47 +02:00
LibretroAdmin 6ad88b080e Turn these two fill_pathname_join_delim() calls into plain strlcat() 2022-08-04 15:15:27 +02:00
LibretroAdmin b2634ea588 * Create fill_pathname_join_special - and specify fill_pathname_join
as deprecated.
* Use fill_pathname_join_special in the vast majority of cases where
we can ensure out_path is a new empty string
* Get rid of some extension concatenation with strlcat where encountered
* Some general cleanups with NULL termination of strings that get immediately
passed to strlcpy/strlcpy-adjacent functions
2022-08-04 14:19:38 +02:00
Cthulhu-throwaway 3aa1811ca9 (Network) Add getnameinfo_retro (#14278) 2022-08-04 13:22:49 +02:00
LibretroAdmin 88bc26da4e Replace some more trivial strlcat calls 2022-08-04 04:05:27 +02:00
LibretroAdmin e7f3432e48 Replace some trivial strlcat usage - use return value of preceding
strlcpy then simply append the extension to it at this location
2022-08-04 03:45:09 +02:00
github-actions eab5898790 Fetch translations from Crowdin 2022-08-04 00:11:40 +00:00
LibretroAdmin 32314eddaf (video_crt_switch.c) Get rid of unnecessary strlen 2022-08-04 00:10:19 +02:00
LibretroAdmin ec4c15e8e4 (gfx_widget_load_content_animation) Cleanups - one strlen instead of two,
NULL termination of some strings is not necessary since it gets passed to
strlcpy and/or fill_pathname_join anyway
2022-08-04 00:00:21 +02:00
LibretroAdmin f4c22cb236 (file_path.c) fill_pathname_join - do away with one less strlcat 2022-08-03 23:54:10 +02:00
LibretroAdmin 819337d5d4 video_shader_get_type_from_ext - get rid of unnecessary strlen 2022-08-03 23:35:16 +02:00
LibretroAdmin c240340c91 (vfs_implementation.c) We need to include stdstring.h for string_is_empty 2022-08-03 19:49:02 +02:00
LibretroAdmin 53d2fdbd97 net_http_urlencode - avoid one strlen call by clever use of strlcpy
return value and some subtraction arithmetic
2022-08-03 15:53:12 +02:00
LibretroAdmin 8e6369ef33 (vfs_implementation.c) An unnecessary repeated conditional removed 2022-08-03 15:19:54 +02:00
LibretroAdmin 7871e9fbc1 retro_vfs_file_open_impl - bunch of inefficiencies here:
- was doing a strlen first on path to calculate the length
- stored at least three local variables for string constants
- did another memcmp check after doing the length comparison conditional first
Simplify all this into a simple string comparison checking if the
path starts with the string 'vfsonly://' and/or 'cdrom://' -
avoid both strlen and memcmp cost. Also removed the need for
stdstring.h header include - just translated STRLEN_CONST into
(sizeof(x)-1) - no header file dependency for the only usage of stdstring.h
in this file
2022-08-03 15:07:02 +02:00
LibretroAdmin 02df727cb2 Avoid strtof() since it's C99/POSIX. Go for strtod followed by float
cast since it should be almost identical
2022-08-03 14:07:32 +02:00
github-actions 16930150f8 Fetch translations from Crowdin 2022-08-03 00:13:16 +00:00
LibretroAdmin 01a7f2010d Buildfix for tvOS - tvOS apparently doesn't build in all the menu
drivers which is how this error was found
2022-08-02 23:26:34 +02:00
LibretroAdmin 08cc1c986a Refactor file path special (#14275)
* First pass - unique variable names

* (file_path_special.c) fill_pathname_application_special() - no longer
a recursive function, other optimizations

* Buildfix

* Put another HAVE_XMB ifdef around xmb_theme_ident

* Remove unused variables

* Remove more unused variables and use fill_pathname_join instead of strlcpy
at the end
2022-08-02 20:57:55 +02:00
LibretroAdmin bde84b926f fill_pathname_application_special - redo string concatenation for
Ozone icons - avoid fill_pathname_slash when possible and use
fill_pathname_join instead - avoids the strlen cost
2022-08-02 18:47:34 +02:00
LibretroAdmin 6dd52d9bb1 Get rid of more boilerplate code in file_path_special.c 2022-08-02 18:05:51 +02:00
LibretroAdmin 556e6702ef Start downscaling on file_path_special.c 2022-08-02 17:54:38 +02:00
LibretroAdmin 70ca20fbf9 (MaterialUI) Fix earlier mistakes made (cd04f770b9) -
we need two separate icon paths cached - one for MaterialUI and one for Ozone (the system
icons)x
2022-08-02 17:25:52 +02:00
LibretroAdmin 7a993a5951 Count amount of characters window title has so that we can (#14274)
return the value when calling video_driver_get_window_title -
this is so we can prevent strlen calls in x11_common.c
2022-08-02 17:00:33 +02:00
LibretroAdmin 3c7fa43f29 (Windows/Linux) Fix windows title regressions 2022-08-02 16:35:50 +02:00
LibretroAdmin 33c9f56df0 (RPNG) PNG decoder - proper namespacing of functions, general cleanups 2022-08-02 15:55:26 +02:00
LibretroAdmin 342d3da620 (RPNG optimizations)
- Use memcpy to inflate_buf into array
- Some miscellaneous tweaks
2022-08-02 15:17:37 +02:00
Cthulhu-throwaway 8105688a99 (Netplay) Show client slowdown information (#14272) 2022-08-02 13:31:55 +02:00
LibretroAdmin e6f3a387b2 png_reverse_filter_copy_line - optimization - paeth would always return
'b' input value (and input is unsigned, so abs would have no effect), so
get rid of the paeth function call for the first loop iteration
2022-08-02 13:22:13 +02:00
LibretroAdmin 78f4e0abda C89_BUILD buildfix 2022-08-02 11:34:41 +02:00
LibretroAdmin a974cef001 (sinc resampler) Simplifications - call besseli0 directly instead of
through kaiser_window_function wrapper function - get rid of some unnecessary
sqrtf calls and such, some other small opts
2022-08-02 11:29:05 +02:00
LibretroAdmin 605c4608d9 Optimize fill_pathname_join - avoid the call to fill_pathname_slash()
which would have an implicit strlen cost
2022-08-01 22:14:26 +02:00
LibretroAdmin 9d66e2d5e1 General cleanups -
* struct was erroneously named 'catagory' - changed to 'category'
* Removed some strlcpys that were just setting the string to a fixed constant value
* Random nits
2022-08-01 21:31:45 +02:00
LibretroAdmin e4bff7c12c Move rjsonwriter helper inline functions over to separate file rjson_helpers.h 2022-08-01 17:41:34 +02:00
LibretroAdmin 5b56ff145f Refine documentation 2022-08-01 15:46:08 +02:00
LibretroAdmin f79875536a (libretro-common) Move file_crc32 out of encoding_crc32.c - we don't want file I/O
code in encodings/encoding_crc32.c
2022-08-01 14:04:01 +02:00
LibretroAdmin ec6f4c1f55 (libretro-common) refinements to documentation 2022-08-01 13:06:35 +02:00
LibretroAdmin 107c69ab9e (libretro-common) More documentation refinement 2022-08-01 11:03:58 +02:00
LibretroAdmin c7a1d83675 (libretro-common) Start documenting leaf functon calls in function documentation
(libretro-common) docs - document when string has to be non-NULL or else UB (undefined behavior)
(libretro-common) stdstring.c - string_hex_to_unsigned - make strlen call unneeded
2022-08-01 09:52:39 +02:00
Cthulhu-throwaway 20c4407928 Add HAVE_IFINFO macro (#14265) 2022-08-01 07:51:02 +02:00
LibretroAdmin f472e4d0de (gfx_widgets) Call fill_pathname_application_special outside of hot functions
(gfx widgets) Pre-assemble and store paths that are not subject to change
2022-08-01 02:07:36 +02:00
LibretroAdmin cd04f770b9 (MaterialUI) Don't keep assembling MaterialUI icons path - store it once
in materialui_init
2022-08-01 01:17:39 +02:00
LibretroAdmin e9a6252fc7 (Ozone) Some simplifications - less string concatenation 2022-08-01 01:06:38 +02:00
LibretroAdmin 83a2ec1da8 (Ozone/XMB) Move some fill_pathname_join operations out of the loops since
the output string is not subject to change during iterations
2022-08-01 00:49:33 +02:00
LibretroAdmin 4b8d3ab8a0 (glslang) Use string append 2022-07-31 22:48:30 +02:00
LibretroAdmin e602f8762b (glslang) Turn functions static 2022-07-31 19:52:41 +02:00
LibretroAdmin 2b84be1210 Get rid of HlslLegalization 2022-07-31 19:34:30 +02:00
LibretroAdmin 5cb8d34ac8 (glslang) Relaxed errors will never be enabled 2022-07-31 19:26:54 +02:00
LibretroAdmin 819d02ab24 (glslang) Remove more unused code -
* EShMsgKeepUncalled will never be used
* ShBinding never used
* TIOMapResolver never used
2022-07-31 19:02:36 +02:00
LibretroAdmin 0faee680c0 (glslang) remove more code we won't need - EShMsgAST, etc 2022-07-31 18:49:16 +02:00
LibretroAdmin 5a4e7cfbd1 (glslang) Remove no longer used RemoveTree.cpp/.h 2022-07-31 18:28:45 +02:00
LibretroAdmin 2ba46da700 (glslang) Simplifications - cuts down on binary size 2022-07-31 17:41:22 +02:00
LibretroAdmin a176a935da (glslang) Further simplifications of InfoSink - get rid of message() and prefix() -
we want simple string concatenation/addition instead of all these layers
2022-07-31 16:37:49 +02:00
LibretroAdmin a2e525a1b6 (glslang) Further simplification of InfoSink 2022-07-31 16:08:33 +02:00
LibretroAdmin 0db7062c87 (glslang) Slim down TInfoSinkBase 2022-07-31 15:24:32 +02:00
LibretroAdmin e4b933cb88 (glslang) Cleanups - get rid of obsolete public API functions that
were never used, turn some functions static in ShaderLang.cpp
2022-07-31 15:06:13 +02:00
LibretroAdmin fdd5940951 (Font driver) render_msg function was sometimes doing two strlen
calculations instead of just one. NOTE/TODO/FIXME - see opportunity
to optimize this further
2022-07-31 12:59:50 +02:00
LibretroAdmin fca6015011 (file_path) path_basedir - remove unnecessary strlcpy - add return value comment
to another function
2022-07-31 12:45:14 +02:00
LibretroAdmin 88bdaffa87 path_basedir_wrapper - get rid of unnecessary strlcpy 2022-07-31 12:42:50 +02:00
LibretroAdmin 36edb15c5b path_parent_dir - don't do implicit strlen inside 2022-07-31 12:31:55 +02:00
Cthulhu-throwaway 9b10579a54 (Network) Fix getaddrinfo_retro (#14261) 2022-07-31 11:22:28 +02:00
kikmonandpapa afd463be16 added make clean between Release and Debug build (#14262)
Co-authored-by: papa <papa>
2022-07-31 11:22:04 +02:00
github-actions 4b7be8de3f Fetch translations from Crowdin 2022-07-31 00:13:16 +00:00
Cthulhu-throwaway f96ef5407a (Network) Refactor getaddrinfo_retro (#14258) 2022-07-30 22:43:32 +02:00
LibretroAdmin f711940339 (task_database_cue.c) Use STRLEN_CONST macro for last param to
string_is_equal_fast instead of hardcoded magic numbers - sizeof
is compile-time so should be at no detriment to performance
2022-07-30 18:31:05 +02:00
kikmonandpapa 44f5cb2935 Improved success rate of Serial scanning on PS1 by adding support for the xx.xxx format (#14256)
Co-authored-by: papa <papa>
2022-07-30 18:22:04 +02:00
LibretroAdmin 19e4b8c0ca Fix DEBUG codepath 2022-07-30 12:50:59 +02:00
Cthulhu-throwaway 40c974a19c (3DS) Silence Warnings (#14252) 2022-07-30 06:52:27 +02:00
github-actions 9906d2daca Fetch translations from Crowdin 2022-07-30 00:11:28 +00:00
Cthulhu-throwaway 6b9a2b4bb0 (Netplay) Small launch compatibility patch adjustments (#14251) 2022-07-29 22:49:10 +02:00
Cthulhu-throwaway aca5169416 (Netplay/WiiU) Launch compatibility patch (#14249) 2022-07-29 20:25:26 +02:00
LibretroAdmin 454e6f9b07 Convert some glslang files to C (#14248)
* Convert some glslang files to C (OSIndependent files)

* Fix some strings that were preventing Unix from being compilable

* Remove leftover for Apple in griffin_glslang.cpp - fixes compilation
2022-07-29 17:42:10 +02:00
GABO1423 3d69321c70 (msg_hash_us.h) Small touch up (#14246)
* Update msg_hash_us.h

* Update menu_displaylist.c

* Update msg_hash_us.h

* Update menu_displaylist.c
2022-07-29 17:41:26 +02:00
sonninnos 349ef1add2 (XMB) Dynamic wallpaper fixes: (#14247)
- 'Load Content' playlists
- Period in the playlist name
2022-07-29 17:40:11 +02:00
sonninnos 0c4bf5f2e3 (Ozone) Fix playlist thumbnail mouse hover after returning from QM (#14244) 2022-07-29 15:01:44 +02:00
LibretroAdmin a933b74b1e Buildfix 2022-07-29 15:01:06 +02:00
LibretroAdmin 11340c3c9c (glslang) Further removal of code we don't need 2022-07-29 14:43:22 +02:00
LibretroAdmin 22bef5dc6b (Ozone) Remove unused arrays 2022-07-29 13:07:16 +02:00
LibretroAdmin 6a8fe15772 (glslang) SpvBuildLogger never used, remove 2022-07-29 10:35:27 +02:00
LibretroAdmin 24a2f1e7c3 (glslang) Remove further unused files - SPVRemapper.cpp/.h, disassemble.cpp/.h,
doc.cpp/.h, LiveTraverser.h
2022-07-29 09:42:59 +02:00
LibretroAdmin 125d7dcc3b (glslang) Stripdowns - results in significant binary size decrease -
* Get rid of unused glslang/GenericCodeGen files
* Get rid of unused test files
* Get rid of unused Sh import interface
* Get rid of unused standalone files
* Get rid of unused Reflection/IoMapper files
2022-07-29 09:22:21 +02:00
LibretroAdmin 592f9384b0 Silence code analysis warnings by Xcode - unused variables - nothing
done with value set - etc
2022-07-29 08:29:43 +02:00
GABO1423 bcd921b012 (UWP) Build Fix (#14241) 2022-07-29 07:21:47 +02:00
sonninnos 052cdce29b (Ozone+XMB) Add playlist icons under 'Load Content' (#14243) 2022-07-29 07:12:01 +02:00
github-actions 79e7360938 Fetch translations from Crowdin 2022-07-29 00:11:30 +00:00
Sean O'Neil b999eaa4c9 Update uwp_main.cpp (#14239)
Added launch protocol arg 'forceExit' so a frontend can tell an already-running RetroArch UWP instance to quit.
2022-07-28 23:56:55 +02:00
sonninnos 6c38efb0ee Prevent playlist thumbnail cycle from showing duplicate images (#14238) 2022-07-28 23:55:47 +02:00
Cthulhu-throwaway 02905650cc (Switch) Silence Warnings (#14237) 2022-07-28 23:55:18 +02:00
Cthulhu-throwaway adea9559a7 (Netplay/Switch) Launch compatibility patch (#14235) 2022-07-28 21:40:07 +02:00
sonninnos 6c1de85add (Ozone+XMB) Thumbnail fixes (#14210) 2022-07-28 19:21:59 +02:00
LibretroAdmin 4afe0c55d5 (autoconfig) Go back to prior behavior 2022-07-28 18:21:06 +02:00
Cthulhu-throwaway 56130ec587 (Netplay/PS3) Launch compatibility patch (#14232) 2022-07-28 17:24:44 +02:00
Cthulhu-throwaway d7a30f2a18 (Netplay/Wii) Launch compatibility patch (#14230) 2022-07-27 16:26:48 +02:00
LibretroAdmin 2c3c9e1e71 Add note to string_list_join_concat 2022-07-27 15:51:16 +02:00
LibretroAdmin ba752b6364 Fix regression #14229 - NULL termination for strings still necessary
when passed to string_list_join_concat
2022-07-27 15:15:33 +02:00
github-actions 9f218f923c Fetch translations from Crowdin 2022-07-27 00:14:24 +00:00
Cthulhu-throwaway 51f5515c63 (Vita) Build fix (#14227) 2022-07-26 10:16:34 -07:00
Cthulhu-throwaway 83ac65d855 (Vita) Silence warnings (#14226) 2022-07-26 09:03:23 -07:00
Cthulhu-throwaway 29f0ba2e71 (Network/Vita) Add net_ifinfo support (#14225) 2022-07-26 16:10:23 +01:00
libretroadmin eb4440fafa Fix previous mistake in menu_action_sublabel_contentless_core 2022-07-26 13:45:41 +02:00
libretroadmin 88c2ae9ddf No null termination for strings passed to strlcpy/srlcat 2022-07-26 13:23:28 +02:00
Cthulhu-throwaway acfe990ec6 (Netplay/Vita) Enable partial LAN discovery (#14222) 2022-07-26 12:16:53 +02:00
Cthulhu-throwaway e083c46d6e (Netplay/Vita) Change default port (#14223) 2022-07-26 12:15:42 +02:00
Cthulhu-throwaway 8d4a64ab96 (Netplay) Disallow netplay start when content is not loaded for static core platforms (#14220) 2022-07-26 07:21:57 +02:00
libretroadmin 8ac1a36259 Don't do NULL termination on strings when passing to strlcpy and/or
a file_path function that calls strlcpy under the hood
2022-07-26 07:01:10 +02:00
github-actions d5becf92e8 Fetch translations from Crowdin 2022-07-26 00:12:24 +00:00
kikmonandpapa 45d78f2a60 [PS1 Serial Scanning] (#14219)
Changed return value of detect_ps1_game function to actuially return a
failure when the Serial couldn't be extracted.
Scanner will then fallback on crc check, and usually ends up finding the
games in the database.

Co-authored-by: papa <papa>
2022-07-25 22:41:32 +02:00
libretroadmin cedbcb10c6 Take out some more unnecessary NULL string termination 2022-07-25 14:12:54 +02:00
Cthulhu-throwaway 566b4b4520 (Vita) Silence warning (#14218) 2022-07-25 10:43:48 +02:00
Cthulhu-throwaway 97e3ef6ec7 (Network/Vita) Do not multiply negative timeout values (#14217) 2022-07-25 07:55:08 +02:00
Cthulhu-throwaway 262b0601e2 (Netplay/3DS) Launch compatibility patch (#14203) 2022-07-25 07:08:06 +02:00
Cthulhu-throwaway 153f77d764 (Netplay/Vita) Launch compatibility patch (#14215) 2022-07-25 07:07:22 +02:00
Cthulhu-throwaway 07e03c86fa (Network/Vita) Fix epoll's timeout parameter (#14216) 2022-07-25 07:07:14 +02:00
libretroadmin a6a4b845a4 Some string simplifications - don't NULL terminate if we pass
string to strlcpy and/or a file_path function using strlcpy under
the hood - don't do strlcpy for trivial setting of 2/3 char strings
2022-07-25 04:39:08 +02:00
github-actions ddd9544a4f Fetch translations from Crowdin 2022-07-25 00:12:34 +00:00
TheRhysWyrill 54d0d84696 Fixed Purple Rain Theme (#14214)
* Add Purple Rain Theme
2022-07-25 00:44:31 +02:00
TheRhysWyrill 522d1ed16d Add Purple Rain Theme (#14212)
* Add Purple Rain Theme

* Revert "Add Purple Rain Theme"

This reverts commit ceb896785b.

* Add Purple Rain Theme
2022-07-24 21:26:16 +02:00
libretroadmin 35d6c31b5b Solve some code analysis warnings 2022-07-24 11:27:39 +02:00
libretroadmin 5c98caa7fd Don't NULL-terminate string if we pass it to strlcpy and/or a
file_path function that calls strlcpy under the hood
2022-07-24 06:22:35 +02:00
libretroadmin 69a2d124c0 Don't do NULL termination on string if we pass it off to strlcpy
and/or a file_path function that uses strlcpy under the hood
2022-07-24 05:39:51 +02:00
Cthulhu-throwaway cc7c310aa1 (Netplay) Refactor fork arguments (#14208) 2022-07-24 04:26:50 +02:00
github-actions 83a7c0d798 Fetch translations from Crowdin 2022-07-24 00:14:07 +00:00
libretroadmin 34a18f64e8 Don't do NULL termination on string when we pass the string to
strlcpy and/or a file_path function that does strlcpy under the hood
2022-07-23 10:46:05 +02:00
Sergei Trofimovich f5ee9e74ba ui/drivers/cocoa: fix -fno-common build (#14204)
`llvm-11` changed the default from `-fcommon` to `-fno-common`:
  https://reviews.llvm.org/D75056

As a result build fails as:

    LD retroarch
    duplicate symbol '_apple_platform' in:
        obj-unix/release/ui/drivers/ui_cocoa.o
        obj-unix/release/ui/drivers/cocoa/cocoa_common.o
    duplicate symbol '_apple_platform' in:
        obj-unix/release/ui/drivers/ui_cocoa.o
        obj-unix/release/gfx/drivers_context/cocoa_gl_ctx.o
    ld: 2 duplicate symbols for architecture x86_64

The change moves `apple_platform` definition from `apple_platform.h`
to `cocoa_common.m` leaving only declaration in `apple_platform.h`.
2022-07-23 10:24:46 +02:00
Cthulhu-throwaway eb36c35ebf (Netplay) Fix content reload deadlocks on static core platforms #2 (#14202) 2022-07-23 03:08:26 +02:00
github-actions 8108931e04 Fetch translations from Crowdin 2022-07-23 00:13:04 +00:00
libretroadmin 30d38d108a Cleanups :
* Don't NULL terminate string if we pass to strlcpy and/or a file_path
function that uses strlcpy under the hood
* General cleanups in gfx_animation.c
2022-07-23 00:35:57 +02:00
libretroadmin e865ea83bd * Don't NULL terminate string if we pass it to strlcpy and/or a
file_path function that calls strlcpy under the hood
* Replace some snprintf calls to strlcpy/strlcat
2022-07-22 22:23:54 +02:00
libretroadmin 8d12918243 (libretro-common) Small cleanups - don't NULL-terminate string
if we pass it off to fill_pathname_join (or another function that
uses strlcpy under the hood)
2022-07-22 19:33:30 +02:00
sonninnos 1245cbc63b Widget color+position adjustments (#14195) 2022-07-22 02:36:49 +02:00
Cthulhu-throwaway 09d9366bc0 (Netplay) Fix content reload deadlocks on static core platforms (#14196) 2022-07-22 02:36:24 +02:00
libretroadmin d2aeba0a92 Cleanup - remove NULL-termination since we pass fullname now to
strlcpy always at first
2022-07-22 02:25:49 +02:00
libretroadmin 6cfcd749e4 (menu_driver.c)
* Fix issue 14190
* Simplify code by removing unneeded code
2022-07-22 02:13:18 +02:00
sonninnos 1f244aac01 (Ozone+XMB) Thumbnail improvements (#14188) 2022-07-21 15:25:12 +02:00
libretroadmin 3cf7e881ec Get rid of unnecessary log spam about non-required/non-essential files/directories 2022-07-21 03:48:11 +02:00
libretroadmin 2cf6f6ce8f * Don't do NULL termination on string if we pass it to strlcpy
* Cleanups in connmanctl.c - abuse of strlcat, strlcpy should
precede it first and/or other more optimal ways of setting the path
2022-07-21 01:47:34 +02:00
Cthulhu-throwaway ee9cb6cb1b (Netplay) Fix NAT traversal announce for HAVE_SOCKET_LEGACY platforms (#14191) 2022-07-21 01:30:38 +02:00
libretroadmin 05622ebe85 Some trivial strlen usage simplifications where possible, removing
the need for strlen
2022-07-20 17:23:28 +02:00
GABO1423 6d4a113eb4 (UWP) Misc. Changes (#14189) 2022-07-20 03:37:29 +02:00
libretroadmin ba35f0de93 (file_path.c) Do away with trivial strlen checks (checked if
return number was <= 2/>= 2, instead check first two characters
of the string directly instead for NULL
2022-07-19 23:23:37 +02:00
libretroadmin 7ff58265bf Simplify fopen_utf8 2022-07-19 21:31:26 +02:00
libretroadmin f994c0b371 Get rid of superfluous wrapper function config_entry_exists 2022-07-19 21:00:40 +02:00
libretroadmin 4b5c7856e6 Remove some more explicit NULL-termination when we're calling a
string function that calls strlcpy under the hood
2022-07-19 20:43:12 +02:00
libretroadmin a23231525d (Android) frontend_android_get_version_sdk - use strtol again - this
time assign the return value to the dereferenced pointer
2022-07-19 10:59:32 +02:00
libretroadmin 62fd667f41 (netplay_frontend.c) Remove unused variable 2022-07-19 10:35:38 +02:00
LibretroAdmin 29774f5b7a Small opts (#14186)
* (joypad_connection) Small optimizations -
* Turn functions static where possible
* Hose strlen call out of loop

* (input_driver.c) General cleanups:
* Some small code/style nits

task_screenshot.c:
* Move widget callback function for screenshots to task_screenshot.c

(file_path.c):
* Turn get_pathname_num_slashes into static function
* path_linked_list_free - always returns true, so get rid of return value
* path_linked_list_new - fix function signature
* path_get_archive_delim - do not NULL-terminate string, already done by strlcpy later on

General:
* Slight optimizations - use int/size_t for loop counter variable instead of unsigned
* Take advantage of fact that strlcpy already NULL-terminates, so don't do this explicitly
outside if we're just going to end up calling strlcpy/fill_pathname_join on it anyway
2022-07-19 10:01:33 +02:00
LibretroAdmin 87240556ea Should fix Android strtol regression (when converting from sscanf) (#14183) 2022-07-18 04:38:52 +02:00
libretroadmin fbd765f167 Change menu_setting.c back 2022-07-18 03:11:38 +02:00
libretroadmin a64f0332f9 Replace sscanf call in frontend_unix_get_os 2022-07-18 02:10:40 +02:00
libretroadmin 8f37c2e3c2 Don't call config_set_bool, call config_set_string directly 2022-07-18 01:59:32 +02:00
LibretroAdmin 71eb74d256 Update .gitlab-ci.yml - don't make ctr-legacy and djgpp depend on build pipeline pass
Set needs to []
2022-07-17 21:23:53 +02:00
Cthulhu-throwaway 83ed9a5980 (Network) Implement binary network streams (#14180) 2022-07-17 19:43:48 +02:00
libretroadmin de6c077e4d (menu_cbs_get_value.c) Small nits 2022-07-17 19:23:46 +02:00
libretroadmin 66ea402de8 We already check if descriptor is empty beforehand 2022-07-17 19:15:37 +02:00
libretroadmin a39532f19d (menu_cbs_get_value) Try to prevent assignments to string buffer if not needed 2022-07-17 18:59:21 +02:00
libretroadmin 610292db61 Replace more trivial sscanf usage with strtol 2022-07-17 18:38:28 +02:00
libretroadmin c89f6cf0a9 Replace more trivial usage of sscanf 2022-07-17 18:33:54 +02:00
libretroadmin 08cccc811c Some slight optimizations of menu callback functions - better variable
scoping
2022-07-17 18:09:28 +02:00
libretroadmin c3483654c9 Revert back to sscanf for versions of MSVC prior to MSVC2013 - prior
to MSVC2013, MSVC did not yet support strtof
2022-07-17 17:37:22 +02:00
libretroadmin 3ebfcbc7c7 setting_set_with_string_representation - avoid sscanf for trivial
operations when we can use strtol/strtoul/strtof
2022-07-17 09:46:27 +02:00
libretroadmin 27704a18de Remove unused core_info_hw_api_supported 2022-07-17 08:10:01 +02:00
libretroadmin 113b9e96d1 Miscellaneous cleanups to VFS layers:
* Indents
* Simplifications
2022-07-17 07:29:00 +02:00
libretroadmin e4b33fd0e6 (formats/json/rjson.c) Get rid of some implicit strlens and pass
size parameter to the functions instead˜
2022-07-17 06:58:22 +02:00
libretroadmin 0a12062e1c Remove unnecessary content_crc in bsv_movie_init_playback 2022-07-17 04:26:49 +02:00
github-actions dec0ee87d5 Fetch translations from Crowdin 2022-07-17 00:12:04 +00:00
Jacob 78c286471f Fixed typos in README.md (#14181)
In the requirements the section about Direct3D 11 had some typos
2022-07-16 22:01:15 +02:00
libretroadmin f990fa86fa (Freetype) Prevent potential free issue on WiiU - play it safe for
now until further clarified what is going on
2022-07-15 19:28:21 +02:00
libretroadmin b56b447f08 Fix these two memory errors that popped up with ASAN -
* Argument base for qsort cannot be NULL
* When system_count is 0 or less, early return out of explore_load_icons
2022-07-15 19:16:21 +02:00
libretroadmin c570e657c1 (CDROM) Fix memory leak caught with asan - buf passed to filestream_read_file
was not being freed after we were done with it (we are done with it after iterating
over the string list)
2022-07-15 19:00:59 +02:00
libretroadmin 5e13851a7a (Freetype) Fix severe memory leaks that happened after using FT_New_Memory_Face -
according to documentation note - 'You must not deallocate memory before calling
FT_Done_Face' - so store a pointer to the font data and then free it after calling
FT_Done_Face
2022-07-15 18:57:02 +02:00
libretroadmin 675ff6b9b6 net_http_send_str - reduce the amount of times strlen is called by
hardcoding the length when we feed the function a constant string
(with STRLEN_CONST)
2022-07-15 17:37:30 +02:00
libretroadmin 4b1766cf61 Silence more -Wdocumentation warnings 2022-07-15 01:12:04 +02:00
libretroadmin eb2c3e35d4 Silence some of the warnings being generated by Objective-C 2022-07-15 00:33:08 +02:00
libretroadmin c7c42409f1 Revert "Attempt to silence warnings by casting to socklen_t"
This reverts commit 6c8f649b02.
2022-07-14 22:51:17 +02:00
libretroadmin 6c8f649b02 Attempt to silence warnings by casting to socklen_t 2022-07-14 21:27:34 +02:00
Cthulhu-throwaway f5d46681c2 (UWP) Enable core downloader/updater (#14173) 2022-07-14 15:21:49 +02:00
github-actions c5c5e7539f Fetch translations from Crowdin 2022-07-13 00:14:08 +00:00
libretroadmin 37bb66ef6e (Freetype) Fix warnings 'local variable hides a parameter of the same name' 2022-07-12 22:37:17 +02:00
Cthulhu-throwaway 98ca6232aa (String) Some function fixes (#14171) 2022-07-12 22:32:58 +02:00
libretroadmin c4fb055fdb Cleanups:
* Combine early return and assignment lines
* use path_basename_nocompression when possible
* Move variables to proper scope
2022-07-12 20:44:00 +02:00
libretroadmin f7194e167f use path_basename_nocompression where it is safe to do so 2022-07-12 19:14:12 +02:00
libretroadmin 69ddf03c91 Remove unused return variables 2022-07-12 18:00:33 +02:00
libretroadmin ec70bb84ca Remove unused variable 2022-07-12 17:31:47 +02:00
libretroadmin 83655420f6 file_list_prepend just a thin wrapper around file_list_insert - get
rid of it and just pass 0 as the last argument instead
2022-07-12 16:56:44 +02:00
libretroadmin 06e1b6a68f Revert "Move strftime_am_pm to libretro-common rtime.c, remove duplicate"
This reverts commit 99186b1056.
2022-07-12 03:31:42 +02:00
libretroadmin 99186b1056 Move strftime_am_pm to libretro-common rtime.c, remove duplicate
functions
2022-07-12 03:29:16 +02:00
Cthulhu-throwaway f39df40728 (String) Do not assume char is unsigned (#14168) 2022-07-12 02:55:56 +02:00
github-actions 33386787b6 Fetch translations from Crowdin 2022-07-12 00:11:49 +00:00
libretroadmin 01d68fdb7e Remove unused fill_pathname_basedir_noext 2022-07-12 00:09:22 +02:00
libretroadmin 293722ac38 Get rid of fill_pathname_join_concat_ext 2022-07-11 22:01:20 +02:00
libretroadmin b7926605f4 Remove fill_short_pathname_representation 2022-07-11 21:40:09 +02:00
libretroadmin b1c9f93903 (file_path) remove deprecated functions 2022-07-11 21:29:01 +02:00
Cthulhu-throwaway da53b24c6c (Localization/PT-BR) Fix some bad localization (#14167) 2022-07-11 20:21:40 +02:00
libretroadmin adf9994828 Deprecate fill_pathname_base_noext 2022-07-11 20:13:44 +02:00
libretroadmin 7186d75c44 Designate fill_pathname_noext as deprecated function 2022-07-11 20:03:42 +02:00
libretroadmin d706c9c5bf Start deprecating trivial functions in file_path.c 2022-07-11 19:56:46 +02:00
libretroadmin 4bcc479041 Further refinement of function 2022-07-11 19:14:48 +02:00
libretroadmin 6475d0ca54 Make code identical for last_played_strftime and strftime_am_pm -
see opportunity here to cutdown on duplication and make this a public
function
2022-07-11 19:12:14 +02:00
libretroadmin e91cf0e40d No longer use fill_pathname_noext - just basic strlcpy/strlcat string
concatenation
2022-07-11 18:48:02 +02:00
libretroadmin 7b83636b64 Remove variables that are never used because the return value
of the function is already used instead
2022-07-11 18:15:08 +02:00
libretroadmin 0d4ef1cef4 (file_path.c) Call trivial strlcpy/strlcat operations directly
instead of going through functions
2022-07-11 17:23:06 +02:00
libretroadmin 6438d575d4 (file_path.c) Simplifications 2022-07-11 17:14:09 +02:00
libretroadmin f8d14a0af6 (net_http) Simplify net_http_update - get rid of the majority of
gotos
2022-07-11 16:50:32 +02:00
libretroadmin 99ac1af9d2 (video_shader_parse)
* Return value of function was never used, so remove it
* Move variables to proper scope
* Miscellaneous cleanups
2022-07-11 14:00:35 +02:00
libretroadmin 61ba6d06cc (config_file.c) Cleanups - config_file_extract_value - only
one of three instances used the 'use_value' parameter, so take it
out of the function
2022-07-11 12:58:03 +02:00
github-actions e275e9d64e Fetch translations from Crowdin 2022-07-11 00:11:52 +00:00
libretroadmin 9e430cd8b9 (libretro-common) Cleanups:
* Work more with return values, prevent unnecessary local stack variables
when possible
* Reduce lines of code
* Move local stack variables to proper scope
2022-07-10 19:06:18 +02:00
libretroadmin 0e85113eb3 (libretro-common) Style nits/cleanups 2022-07-10 18:13:49 +02:00
github-actions 79fc6d3b50 Fetch translations from Crowdin 2022-07-10 00:13:42 +00:00
sonninnos b44ad6f890 (WIN32) Skip console attach when logging to file (#14163) 2022-07-09 19:22:59 +02:00
libretroadmin 05fb6fd9a3 task_push_load_content_playlist_from_menu - cleanup error_string 2022-07-09 18:43:44 +02:00
libretroadmin 3b2b4ea49d (task_content.c) Cleanups - remove error_string where not used 2022-07-09 18:41:18 +02:00
libretroadmin cda235d124 (task_autodetect.c) Cleanups - don't check for variables that
we already know are non-NULL, cleanup variable scope, etc.
2022-07-09 18:08:25 +02:00
libretroadmin ad87f88b72 (task_pl_thumbnail_download.c) Minor cleanups/style nits - reducing
return paths
2022-07-09 17:13:26 +02:00
libretroadmin f78f64f6be (task_core_updater) small cleanups -
* Get rid of early returns where not necessary
* Reduce return paths to one where possible
2022-07-09 16:52:43 +02:00
Cthulhu-throwaway 177691e6fa (Core Info) Ensure current core info is initialized at runloop_event_init_core when netplay is enabled (#14162) 2022-07-09 16:25:27 +02:00
libretroadmin 285d89b7d9 (win32_common.c) Optimize win32_save_positions - is always called whenever the window moves around (WM_MOVE) so is worth optimizing
- Get rid of memset, set the member variables to 0 manually instead. Note - rcDevice is behind a _MAC ifdef in the headers (some hypothetical Mac port
of Windows which never happened and therefore the ifdef is useless), so rcDevice is not set and will just be unused anyway
- Variable scoping, move variables to where they are needed
2022-07-09 16:16:23 +02:00
libretroadmin c54499c5fb (Ozone) Simplify code 2022-07-09 14:29:49 +02:00
libretroadmin aae8c65880 Prevent unnecessary variable self-assignments caused by tertiary
operators - also simplify focused variable assignment
2022-07-09 13:58:10 +02:00
libretroadmin 0f24d52407 audio_driver_mixer_add_stream - add fall-through - simplify code 2022-07-09 13:44:55 +02:00
libretroadmin a9b074fa0a Rewrite content_file_list_init - check return value first before assigning it 2022-07-09 13:32:38 +02:00
libretroadmin 274ce86d89 content_file_list_init - size < 1 will never happen, checked outside
before calling the function
2022-07-09 13:24:01 +02:00
libretroadmin c2f618d394 * (gfx_widgets) ptr_width >= ptr_height - equal would just mean setting ptr_width to
the same value, so turn it into 'greater than' instead
* Avoid some tertiary operators where we just set the variable back to its
own value
2022-07-09 13:00:50 +02:00
libretroadmin 4d3587a2e8 Cleanups in task_content.c -
split up some code between HAVE_MENU and whatnot
2022-07-09 02:07:34 +02:00
github-actions 126c2fa7ac Fetch translations from Crowdin 2022-07-09 00:10:35 +00:00
libretroadmin 460ca09c87 (task_http) Cleanups 2022-07-09 01:24:59 +02:00
libretroadmin fa9e56d824 input_autoconfigure_connect - have boolean return value
- task_autodetect.c - cleanups, try to do less with generic
error labels and gotos, etc.
2022-07-09 00:53:08 +02:00
libretroadmin 81de36e1ff (GL1/GL2 Raster fonts) remove dead code 2022-07-08 22:46:03 +02:00
libretroadmin 7f3930b71b (platform_win32.c) Style nits 2022-07-08 22:23:12 +02:00
libretroadmin d95e426b4e (Platform drivers) Cleanups - get rid of unnecessary logs
(VGA Font driver) Get rid of unused code by if 0ing it out
2022-07-08 22:10:53 +02:00
libretroadmin e53a623f4a (dispserv_win32.c) General cleanups 2022-07-08 21:45:04 +02:00
libretroadmin 71a3c24d52 (Vulkan) Solve some warnings - set VkResult variables to VK_SUCCESS
by default
2022-07-08 21:32:19 +02:00
libretroadmin 14afdf0e87 (Android) Backport https://github.com/robinei/RetroArch/commit/2020e9ce6a15a9d87777fd26ecf10f6ab8cf7ecc -
* Gingerbread support
* Touchpads support
* builtin Xperia Play autoconfig profile
2022-07-08 21:03:19 +02:00
Cthulhu-throwaway ef022ffe90 (Netplay) Force a core update when starting netplay (#14157) 2022-07-08 18:20:01 +02:00
libretroadmin a6516512b6 (font_driver.c) Some cleanups - remove unnecessary log messages
that were dependent on a global variable - move a conditional outside
for get_text_replacement
2022-07-08 16:03:58 +02:00
github-actions 882829cafc Fetch translations from Crowdin 2022-07-08 00:13:42 +00:00
libretroadmin 6fadb1bbf0 (PS2 Font driver) Buildfix 2022-07-07 21:35:45 +02:00
libretroadmin 3494c0de0a (Caca/GDI/Sixel/VGA) Did not have proper implemented free functions 2022-07-07 21:29:14 +02:00
Cthulhu-throwaway af71dcb893 (Netplay) Memory leak fix (#14154) 2022-07-07 21:14:38 +02:00
Cthulhu-throwaway a87e95ad8f (Netplay) Fix input for some cores when hosting (#14153) 2022-07-07 20:59:12 +02:00
libretroadmin c19e24a584 (font drivers) Simplify render_line functions 2022-07-07 19:51:36 +02:00
libretroadmin 281a498474 Backport https://github.com/robinei/RetroArch/commit/05a98b7efe68c1df3d56c0c4512d40aea1c0ff7c
- fix off by one error for input_block_timeout setting
also default to 0 for this setting (pretty massive performance gain)
2022-07-07 18:03:45 +02:00
libretroadmin b023001d29 (Win32/taskbar) Backport m4xw commit - Release ITaskbarList3 on failed HrInit
The pointer wasn't NULL'd, thus set_window_progress would cause weird behavior
2022-07-07 17:58:48 +02:00
libretroadmin a547abbbaf (gfx_animation.c) Cleanups - use float constant values -
and get rid of some tertiary operators where unnecessary
2022-07-07 16:56:54 +02:00
libretroadmin cd28d5ec8a (PSL1GHT/Switch) Fix warnings 2022-07-07 16:38:12 +02:00
Cthulhu-throwaway 9af17b633e (Netplay) Host Ban Submenu (#14151) 2022-07-07 16:08:46 +02:00
LibretroAdmin f9c6ccee75 Update crowdin.yml 2022-07-07 15:55:08 +02:00
LibretroAdmin 91a351adf8 Update crowdin-daily.yml 2022-07-07 15:54:26 +02:00
LibretroAdmin 20ad96355f Update crowdin-daily.yml 2022-07-07 14:29:02 +02:00
Cthulhu-throwaway c6e0e7e198 (Netplay) Support for banning clients (#14146) 2022-07-07 13:40:38 +02:00
libretroadmin 6318e5da5e (Configuration.c) simplify some code 2022-07-07 10:45:15 +02:00
libretroadmin 2daeb23504 input_remapping_save_file - optimization from https://github.com/neil4/RetroArch-Lite/commit/5a451f6324d1250fb45d8e957c3544fbccb5d565 -
existing remapping file was needlessly reloaded
2022-07-07 10:33:31 +02:00
libretroadmin 19b2ad56b0 (gfx_animation.c) Cleanups; prevent useless tertiary operators where
possible
2022-07-07 10:03:33 +02:00
libretroadmin 547c88259d (Qt) Replace some unnecessary pow usage 2022-07-07 09:27:16 +02:00
libretroadmin 6df4ab4982 gfx_animation - use direct multiplication instead of pow when exponent
is an integer. Also try to use float values instead of implicit double
values
2022-07-07 09:15:35 +02:00
libretroadmin 92264826de (gfx_display.c) Cleanups -
- get rid of unused gfx_display_driver_exists
- get rid of useless wrapper function gfx_display_font_init_first
- rewrite gfx_display_font_file somewhat
2022-07-06 20:05:43 +02:00
libretroadmin aeb07432cc gfx_display_draw_keyboard - we don't need mymat and/or
gfx_display_rotate_z here
2022-07-06 19:20:41 +02:00
libretroadmin 821bb86b37 Get rid of HAVE_THREADS macros 2022-07-06 15:01:53 +02:00
libretroadmin b6c9740ba3 Get rid of gfx_timer_t typedef - replace with float 2022-07-06 14:41:15 +02:00
libretroadmin 3c20e709ea Move gfx_display_reset_textures_list_buffer to gfx_display.c 2022-07-06 13:11:44 +02:00
libretroadmin 3aafa40c69 Bugfix for previous commit - cosine/sine were wrong 2022-07-06 12:09:08 +02:00
libretroadmin bb6937949d gfx_widget_draw_icon optimization - if radians is 0, we know cosine and
sine already. Avoid sinf/cosf computation when possible
2022-07-06 11:40:59 +02:00
libretroadmin bf5409881c gfx_display_rotate_z optimizations - if radians is 0, we know cosine
and sine already. Avoid the computation with sinf/cosf and pass it as value to the
function when possible
2022-07-06 11:03:15 +02:00
libretroadmin 6607ff3aaa rotate_draw - get rid of scale_x/y/enable - scaling is only done now
in XMB at two spots - refactor gfx_display_rotate_z so that it only
manipulates the input matrix' Z axis
2022-07-05 20:50:01 +02:00
libretroadmin 95db09d8c5 Move bundle_assets_{src/dst} to settings->paths 2022-07-05 19:15:29 +02:00
libretroadmin fbd37f8926 Consistency in variable naming conventions - rename temp_path to tmp_path
for uniformity with rest of code
2022-07-05 19:06:38 +02:00
libretroadmin f12ad9ed34 Simplify audio mixer functions 2022-07-05 18:57:56 +02:00
libretroadmin 69605b7c9c (task_screenshot.c) Simplify code 2022-07-05 18:15:12 +02:00
libretroadmin 2d33c49b26 (FPGA Gfx) get rid of unused viewport_info/read_viewport functions 2022-07-05 18:02:52 +02:00
libretroadmin 336ca1a68c Don't call gfx_display_rotate_z unless the display driver implementation's
'handles_transform' is set to false
2022-07-05 17:20:01 +02:00
libretroadmin 1798651041 (gfx_widgets) scale_enable can b set to false for widgets, scale_factor was always 1.0f
(XMB) set scale_enable to false when scale_factor is 1.0f
2022-07-05 14:18:20 +02:00
libretroadmin 681e1dea94 gfx_display_rotate_z - if scale_x/y/z are all 1.0f, then set
scale_enable to false
2022-07-05 14:02:38 +02:00
sonninnos 494c93df3e Thumbnail aspect ratio fix (#14145) 2022-07-05 12:01:21 +02:00
libretroadmin 9dd1fb895b - Turn rotation arrows static where possible
- Don't call matrix_4x4_rotate_z - inline the code instead
2022-07-04 15:28:54 +02:00
Cthulhu-throwaway 0b2be028ca (Netplay) Fix client info devices index (#14142) 2022-07-04 04:00:55 +02:00
libretroadmin 794e088ae1 (C89_BUILD) Buildfix 2022-07-03 18:18:52 +02:00
sonninnos 7043873fba Reformat rdb_entry_int (#14140) 2022-07-03 17:46:03 +02:00
libretroadmin 50873f7c38 Simplify gfx_display_rotate_z 2022-07-03 17:38:09 +02:00
sonninnos 91c8541e20 (Ozone+XMB) Savestate thumbnail aspect ratio (#14139) 2022-07-03 16:14:51 +02:00
libretroadmin b021f96522 (PSL1GHT) Silence some warnings 2022-07-03 14:20:10 +02:00
libretroadmin cd36af1d24 Use NAME_MAX_LENGTH for some char array variables that have a fixed
width of 256
2022-07-03 13:59:23 +02:00
Cthulhu-throwaway b55fa28896 (Netplay/Menu) Localize relay servers (#14136) 2022-07-03 13:45:13 +02:00
Cthulhu-throwaway 42f75e7f72 (Netplay/Menu) Add client devices info to the kick sub-menu (#14138) 2022-07-03 13:44:46 +02:00
dependabot[bot] 61bf5fba91 Bump actions/checkout from 2 to 3 (#14130)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

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

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-02 14:09:29 +02:00
dependabot[bot] 602b3fc43f Bump actions/upload-artifact from 2 to 3 (#14129)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

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

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-02 14:09:19 +02:00
dependabot[bot] d69f1e46ab Bump actions/setup-python from 2 to 4 (#14128)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v4)

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

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-02 14:09:12 +02:00
dependabot[bot] c97492f85c Bump actions/setup-java from 1 to 3 (#14127)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 1 to 3.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v1...v3)

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

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-02 14:09:00 +02:00
sonninnos ed83f0e7be Fix and cleanup playlist last played 'Ago' (#14132) 2022-07-02 14:08:41 +02:00
sonninnos ee8993c76a Silence Linux snprintf warnings (#14131) 2022-07-02 14:08:27 +02:00
Naveen df25f88432 chore: Included githubactions in the dependabot config (#14126)
This should help with keeping the GitHub actions updated on new releases. This will also help with keeping it secure.

Dependabot helps in keeping the supply chain secure https://docs.github.com/en/code-security/dependabot

GitHub actions up to date https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot

https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool
Signed-off-by: naveen <[email protected]>
2022-07-02 08:37:20 +02:00
github-actions 89048993ef Fetch translations from Crowdin 2022-07-02 00:12:03 +00:00
aldebaran27 58decac935 Increase DEFAULT_MAX_PADS to 8 for ODROIDGO2, since that impacts the RG351[X] consoles. The RG351[X] have a USB host controller and can have an arbitrary number of USB gamepads. (#14122) 2022-07-02 01:06:46 +02:00
Cthulhu-throwaway 78bc42de68 (Netplay/Lobby) Add setting for filtering out rooms with non-installed cores (#14124) 2022-07-02 00:24:33 +02:00
Cthulhu-throwaway e7b9ff1ff6 (Netplay) Minor tweaks to the find content task (#14125) 2022-07-02 00:24:16 +02:00
sonninnos 0232fc8e10 (Ozone+XMB) Savestate thumbnail fullscreen + dropdown (#14116)
* (Ozone+XMB) Savestate thumbnail fullscreen toggle

* (Ozone+XMB) Savestate thumbnail dropdown
2022-07-01 23:41:46 +02:00
libretroadmin f4803b1023 Silence warning - video_shader_is_shader_chain_config 2022-07-01 14:16:13 +02:00
libretroadmin 126940a98b Silence unused variable warnings for Emscripten 2022-07-01 13:49:49 +02:00
Naveen 6bc73ed8af chore: Set permissions for GitHub actions (#14120)
Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

Signed-off-by: naveen <[email protected]>
2022-07-01 07:43:08 +02:00
Cthulhu-throwaway ab208fca91 (Netplay) Ensure current content is reloaded before joining a host (#14117) 2022-07-01 01:02:04 +02:00
Cthulhu-throwaway 58fc77850c (Netplay/Lobby) Hide older (incompatible) rooms (#14118) 2022-07-01 01:01:24 +02:00
barbudreadmon e9d67f2bbe savestates: implement an api call for context awareness (#14101) 2022-06-30 10:45:59 +02:00
Cthulhu-throwaway a5ebfc442a (Netplay) Disallow clients from loading states and resetting (#14114) 2022-06-30 09:48:51 +02:00
github-actions 8583038d7f Fetch translations from Crowdin 2022-06-30 00:12:09 +00:00
Cthulhu-throwaway 5b6d11cc60 (Netplay) Special saves directory for clients (#14111) 2022-06-29 10:18:39 +02:00
github-actions 11101f23b1 Fetch translations from Crowdin 2022-06-28 00:12:59 +00:00
Anders Storhaug 8addb08250 (Win32) Remove black margins with borderless non-fullscreen window (#14098) 2022-06-27 07:30:51 +02:00
libretroadmin 0172d57ada (CTR) Simply font_render_driver_bottom 2022-06-27 02:46:13 +02:00
github-actions 2fb55f86bd Fetch translations from Crowdin 2022-06-27 00:11:56 +00:00
libretroadmin ce1d1fd430 (font_driver.c) Simplify code - get rid of unneeded array loops 2022-06-27 01:04:14 +02:00
Cthulhu-throwaway f2b3948b39 (UPnP) Attempt support for remaining platforms (#14107) 2022-06-26 21:38:52 +02:00
libretroadmin 128753c81d (Freetype) Use FT_New_Memory_Face instead of FT_New_Face to load
font from memory - first read it from file to memory beforehand -
this solves an asset extraction issue when selecting 'Update Assets' -
apparently FT_New_Face keeps an open file handle to the font file which
prevents it from being overwritten/deleted while the program is still
running.
TODO/FIXME - move file loading code out of the font renderer init function
and move it higher level
2022-06-26 20:38:46 +02:00
libretroadmin 367dfd6e71 No longer include file_path_special.h in gfx_display.h 2022-06-26 18:35:07 +02:00
libretroadmin 4e13134c40 Remove unnecessary wrapper function gfx_display_font - just wrapped
around gfx_display_font_file
2022-06-26 18:19:43 +02:00
libretroadmin cf12a5e7e7 (Font drivers) Uniformity in naming conventions 2022-06-26 18:01:43 +02:00
libretroadmin aab64da1be (Font driver/drivers display) All the font_init_first implementations
were exactly the same, cut down on code duplication
2022-06-26 17:27:59 +02:00
Cthulhu-throwaway 6aa16442db (Network/Wii) Enable net_ifinfo for some features (#14106) 2022-06-26 16:37:05 +02:00
libretroadmin 38f6ad95f4 (Winraw) Get rid of some debug logs 2022-06-26 06:12:30 +02:00
github-actions a6538d0d9c Fetch translations from Crowdin 2022-06-26 00:13:30 +00:00
Cthulhu-throwaway bc78e423ee (WiiU) Buildfix 2 (#14104) 2022-06-25 19:47:23 +02:00
Cthulhu-throwaway e961f27786 (WiiU) Buildfix (#14103) 2022-06-25 19:19:26 +02:00
Cthulhu-throwaway 14e5cd317b (Network) net_ifinfo refactor (#14102) 2022-06-25 16:37:12 +02:00
Cthulhu-throwaway a7dc57f68f (Network) Move the addr_6to4 function to a proper place (#14100) 2022-06-25 09:18:32 +02:00
github-actions 865993ffa7 Fetch translations from Crowdin 2022-06-25 00:11:13 +00:00
Cthulhu-throwaway 8c6c399a01 (Network) Move the HAVE_INET6 macro to a proper place (#14096) 2022-06-25 00:54:39 +01:00
github-actions 456fb6f2c9 Fetch translations from Crowdin 2022-06-24 00:11:34 +00:00
libretroadmin 41a073da73 (gfx_display_metal) Change ident name - should fix #14094 2022-06-23 18:39:24 +02:00
Cthulhu-throwaway c1e8925f87 (Netplay) Find content task refactor (#14089) 2022-06-23 14:48:57 +02:00
sonninnos 7553dc66b5 Add missing sublabels for non-running Quick Menu (#14090) 2022-06-23 14:47:54 +02:00
sonninnos bd9eda38e3 Reorganize Quick Menu Information (#14091) 2022-06-23 14:47:29 +02:00
Cthulhu-throwaway 2a0fce77d3 (Wii) Silence some warnings (#14092) 2022-06-23 14:46:53 +02:00
sonninnos 3615deed9e Savestate thumbnails (#14093)
* Savestate slot reset action

* (Ozone) Thumbnail visibility corrections
2022-06-23 14:46:29 +02:00
github-actions ad64159fe4 Fetch translations from Crowdin 2022-06-23 00:11:31 +00:00
sonninnos 745652bbbf (Ozone) Playlist metadata reformat (#14082) 2022-06-22 22:56:03 +02:00
sonninnos 10a2103f7e (GLUI) Add icon for 'Download Thumbnails' (#14084) 2022-06-22 22:55:38 +02:00
sonninnos 860155969e Add 'Ago' to playlist last played styles (#14086) 2022-06-22 22:55:32 +02:00
github-actions 28a41ad1b1 Fetch translations from Crowdin 2022-06-22 00:12:57 +00:00
sonninnos 807fd35300 (Ozone) Savestate thumbnail fixes (#14079) 2022-06-21 22:37:39 +02:00
libretroadmin bb15f009e4 Simplify gfx_display_check_compatibility 2022-06-21 19:45:27 +02:00
sonninnos 1ad9b20b09 (WinRaw) Clear key states when unfocused (#14080) 2022-06-21 18:01:28 +02:00
libretroadmin fae8d7e38f (Debug) Fix build failure 2022-06-21 03:33:36 +02:00
github-actions 961357137f Fetch translations from Crowdin 2022-06-21 00:11:07 +00:00
sonninnos 645b4864fc Allow changing savestate slots with left/right on save/load (#14078) 2022-06-21 00:57:04 +02:00
libretroadmin 61e08ee35b Fix line breaks in gfx/video_driver.c 2022-06-20 20:26:02 +02:00
libretroadmin 0356c563b8 Simplify gfx_display_check_compatibility 2022-06-20 20:19:16 +02:00
sonninnos 44a52b4617 Better Disc Control append focus (#14075) 2022-06-20 18:07:46 +02:00
sonninnos 2ff77a363e (Ozone) Add savestate thumbnails (#14068) 2022-06-20 16:34:41 +02:00
github-actions 3c89172516 Fetch translations from Crowdin 2022-06-20 00:10:53 +00:00
sonninnos a0bfdcce3b (D3D11/12) Make waitable swapchains optional (#14074) 2022-06-19 21:25:37 +02:00
libretroadmin e954a69708 Truncation is intentional - see if using the return value and storing it
in a local var can work around the warning
2022-06-19 19:20:19 +02:00
libretroadmin a06f3b98ce For Griffin builds it is important this define does not get redefined
Note to Cthulhu: We should probably put this in a header file somewhere
2022-06-19 18:43:25 +02:00
libretroadmin 01eab0fba5 (3DS/CTR) Take out HAVE_SOCKET_LEGACY for 3DS as per Cthulhu recommendation
and instead put in the extra conditional for natt.c and netplay_frontend.c
2022-06-19 18:32:26 +02:00
libretroadmin 64bf25542f Android has HAVE_TRANSLATE defined but not HAVE_ACCESSIBILITY, so
add this to the conditional
2022-06-19 18:24:07 +02:00
libretroadmin e0c7e78e27 netplay_frontend.c - show_chat() - prevent warning 'format truncation' -
snprintf output between 3 and 129 bytes into a destination of size 96
2022-06-19 18:19:47 +02:00
libretroadmin cf67c102ed command_event - access_st local variable is unused when HAVE_ACCESSIBILITY
is not defined
2022-06-19 18:17:00 +02:00
libretroadmin 050107a90e (Cheevos) On platforms like WiiU that have cheevos support but no threading support, it was complaining about unused variables like rcheevos_locals. The macros for
slock_lock/slock_unlock seem needless anyway, so we just reference slock_lock/slock_unlock directly and put it behind
HAVE_THREADS ifdefs so the user/programmer knows what is going on
2022-06-19 18:06:17 +02:00
libretroadmin f0e340fd23 (3DS/CTR) Now that 3DS/CTR defines HAVE_SOCKET_LEGACY, we don't need
this conditional anymore
2022-06-19 17:57:50 +02:00
libretroadmin 757b0642ba (3DS/CTR) Define HAVE_SOCKET_LEGACY 2022-06-19 17:36:23 +02:00
Cthulhu-throwaway 216489512c (UPnP) Support for IPv4 tunneling (#14067) 2022-06-19 14:40:14 +02:00
libretroadmin 278f088c99 Fix 'function declaration is not a prototype' warning on Clang/Mac 2022-06-19 14:09:55 +02:00
sonninnos ca0b3095e8 (D3D11/12) Make low-latency optional (#14073) 2022-06-19 14:14:34 +02:00
Cthulhu-throwaway dabd9cb996 (Netplay/LAN Discovery) Task refactor (#14070) 2022-06-19 03:41:04 +02:00
LibretroAdmin 0008691aa0 Remove unused variables (#14065) 2022-06-18 19:28:07 +02:00
libretroadmin 60161982b2 (task_database) Simplify code - put logging behind DEBUG ifdef 2022-06-18 19:19:18 +02:00
libretroadmin 8bad1559f9 (task_database_cue.c) strlen returns value of size_t type, change variables
(task_database_cue.c) Comment out log and put it behind DEBUG ifdef
2022-06-18 19:12:03 +02:00
libretroadmin 4f1ad9b665 video_shader_load_preset_into_shader - remove unused variable 2022-06-18 19:08:30 +02:00
LibretroAdmin 4a38831c47 Try to reduce fixed size char arrays from PATH_MAX_LENGTH to lower sizes (#14062)
* Try to reduce fixed size char arrays from PATH_MAX_LENGTH to lower sizes
2022-06-18 19:07:15 +02:00
LibretroAdmin 9a1f678e31 Merge pull request #14064 from farmerbb/master
Add F-Droid metadata to repo in Fastlane format
2022-06-18 18:02:51 +01:00
LibretroAdmin d7f827d5ad Merge pull request #14066 from Cthulhu-throwaway/netplay-cleanup-loc
(Netplay/Lobby) Remove help placeholder text for rooms
2022-06-18 18:02:30 +01:00
Cthulhu-throwaway 9715c0dbb3 (Netplay/Lobby) Remove help placeholder text for rooms 2022-06-18 13:56:35 -03:00
Braden Farmer a71b4c421e Add F-Droid metadata to repo in Fastlane format 2022-06-18 10:30:13 -06:00
LibretroAdmin 852b3f2071 Merge pull request #14061 from Cthulhu-throwaway/netplay-buildfix
(Netplay) Buildfix for some "dumber" compilers
2022-06-18 16:32:13 +01:00
Cthulhu-throwaway e6e5e46be3 (Netplay) Buildfix for some "dumber" compilers 2022-06-18 12:10:01 -03:00
LibretroAdmin fcf8d2e5b7 Merge pull request #14058 from sonninnos/shader-icons
Add proper icons for shader items
2022-06-18 13:27:45 +01:00
LibretroAdmin 054bf83f53 Merge pull request #14056 from sonninnos/disc-append-browsed
Disc Control append focus correction
2022-06-18 13:26:48 +01:00
sonninnos 1539e720f1 Add proper icons for shader items 2022-06-18 11:22:50 +03:00
LibretroAdmin 1dc7481139 Merge pull request #14057 from sonninnos/fill-title
Reformat fill titles
2022-06-18 07:14:55 +01:00
sonninnos 8ec6c7517c Reformat fill titles 2022-06-18 09:06:52 +03:00
sonninnos 5c9501b4c4 Disc Control append focus correction 2022-06-18 08:54:14 +03:00
LibretroAdmin 838e5117d0 Merge pull request #14054 from Cthulhu-throwaway/netplay-refactor
(Netplay) Some refactoring and fixes
2022-06-18 03:28:47 +01:00
Cthulhu-throwaway 7e798d04ba (Netplay) Some refactoring and fixes 2022-06-17 18:00:48 -03:00
LibretroAdmin 244ace9c9d Merge pull request #14053 from libretro/qt-new-url
(Qt) Use new URL for scraping thumbnails
2022-06-17 19:43:08 +01:00
LibretroAdmin f24ced37e8 Merge pull request #14052 from sonninnos/database-title
Reformat database titles
2022-06-17 18:32:37 +01:00
libretroadmin e9b8602c6e Get rid of debug logs 2022-06-17 19:14:18 +02:00
libretroadmin e3a716d06a (Qt) Use new URL for scraping thumbnails 2022-06-17 19:10:29 +02:00
sonninnos 72d38a4b3c Reformat database titles 2022-06-17 20:01:46 +03:00
LibretroAdmin ef53037cdc Merge pull request #14051 from sonninnos/database-icon
More suitable icons for database entries
2022-06-17 16:53:23 +01:00
sonninnos 325ba96613 More suitable icons for database entries 2022-06-17 18:10:08 +03:00
LibretroAdmin 48f13dfaaa Merge pull request #14047 from StormedBubbles/lightgun_y_axis
Fix lightgun scaling on Y axis
2022-06-17 15:12:54 +01:00
LibretroAdmin 0fe694665c Merge pull request #14050 from sonninnos/ozone-header-icon-spacing
(Ozone) Header icon spacing adjustment
2022-06-17 14:05:10 +01:00
sonninnos 098f14dcd4 (Ozone) Header icon spacing adjustment 2022-06-17 15:23:42 +03:00
StormedBubbles 53d0e161e1 Fix lightgun scaling on Y axis 2022-06-16 22:16:32 -04:00
github-actions a69387089c Fetch translations from Crowdin 2022-06-17 00:11:36 +00:00
LibretroAdmin 50f65a893f Merge pull request #14044 from sonninnos/overlay-pointer
Block pointer input when overlay is pressed
2022-06-16 15:42:57 +01:00
sonninnos 53be17aee2 Block pointer input when overlay is pressed 2022-06-16 16:49:51 +03:00
LibretroAdmin e759f81149 Merge pull request #14042 from sonninnos/winraw-pointer
(WINRAW) Fix pointer device position
2022-06-16 12:45:05 +01:00
sonninnos 8d9f772dce (WINRAW) Fix pointer device position 2022-06-16 11:34:54 +03:00
github-actions 702a7b37ad Fetch translations from Crowdin 2022-06-16 00:11:14 +00:00
LibretroAdmin 109b6f9781 Merge pull request #14039 from sonninnos/d3d11-vblank
(D3D11/12) Reduce lag with WaitForVBlank
2022-06-15 19:23:17 +01:00
github-actions ff2d6f65d8 Fetch translations from Crowdin 2022-06-15 00:13:27 +00:00
LibretroAdmin 56ca328d95 Merge pull request #14038 from sonninnos/win32-update-title
(WIN32) Don't update title on every frame
2022-06-14 15:13:22 +01:00
sonninnos 31a43b9390 (D3D11/12) Reduce lag with WaitForVBlank 2022-06-14 16:49:30 +03:00
sonninnos b444377b50 (WIN32) Don't update title on every frame 2022-06-14 16:43:32 +03:00
LibretroAdmin a5d145e211 Merge pull request #14036 from sonninnos/frame-delay-auto
Automatic Frame Delay improvements
2022-06-14 12:33:17 +01:00
sonninnos 3d619de114 Automatic Frame Delay improvements 2022-06-14 07:11:43 +03:00
libretroadmin 844d27c315 (libretro-common) Resync 2022-06-13 18:56:28 +02:00
LibretroAdmin 7fecaf6182 Merge pull request #14035 from Cthulhu-throwaway/poll-ext
(Network) Replace socket_select calls
2022-06-12 14:20:59 +01:00
LibretroAdmin dcaba084f9 Merge pull request #14033 from phcoder/miyoorewind
Enable rewind on miyoo
2022-06-12 11:43:20 +01:00
Cthulhu-throwaway 43ad2b64b2 (Network) Replace socket_select calls 2022-06-12 02:13:34 -03:00
Vladimir Serbinenko c597583816 Enable rewind on miyoo
Tested on my PowKiddy V90
2022-06-12 03:35:22 +02:00
github-actions 1e4042d08b Fetch translations from Crowdin 2022-06-11 00:10:31 +00:00
LibretroAdmin 13732ba0da Merge pull request #14030 from Cthulhu-throwaway/wii-buildfix-ext-2
Wii buildfix (round 3)
2022-06-10 18:36:06 +01:00
Cthulhu-throwaway fed60aaee6 Wii buildfix (round 3)
Annoying preprocessor...
2022-06-10 14:34:54 -03:00
LibretroAdmin 423cc50b6d Merge pull request #14029 from Cthulhu-throwaway/wii-buildfix-ext
Wii buildfix (round 2)
2022-06-10 18:17:40 +01:00
Cthulhu-throwaway a6e5811dc7 Wii buildfix (round 2) 2022-06-10 14:06:02 -03:00
LibretroAdmin 856bfb75ee Merge pull request #14028 from Cthulhu-throwaway/wii-buildfix
Wii buildfix
2022-06-10 17:23:15 +01:00
Cthulhu-throwaway 349be66031 Wii buildfix 2022-06-10 13:00:59 -03:00
libretroadmin 9c34a83aa7 task_push_load_contentless_from_menu - prevent warning when
compiling without HAVE_DYNAMIC defined
2022-06-10 14:40:06 +02:00
LibretroAdmin 9fe100a3dd Merge pull request #14026 from Cthulhu-throwaway/vita-buildfix-1
Vita buildfix
2022-06-10 09:34:53 +01:00
Cthulhu-throwaway f46e41f6c4 Vita buildfix 2022-06-10 05:11:29 -03:00
LibretroAdmin 332074df40 Merge pull request #14001 from Cthulhu-throwaway/poll
(Network) poll support
2022-06-10 06:47:20 +01:00
github-actions b1351723f3 Fetch translations from Crowdin 2022-06-10 00:11:43 +00:00
github-actions b0ca2e381c Fetch translations from Crowdin 2022-06-09 00:11:30 +00:00
LibretroAdmin e8d5c0d4e1 Merge pull request #14022 from MrHuu/master
(3DS) Add CONSOLE_LOG guards
2022-06-08 08:45:38 +01:00
LibretroAdmin ea914e80e7 Merge pull request #14023 from sonninnos/vulkan-logging
(Vulkan) Show swapchain images logging again
2022-06-08 07:09:54 +01:00
sonninnos b630b98c60 (Vulkan) Show swapchain images logging again 2022-06-08 08:59:53 +03:00
github-actions 8d80071047 Fetch translations from Crowdin 2022-06-08 00:10:37 +00:00
LibretroAdmin 21a942665c Merge pull request #14008 from HyperspaceMadness/Shader_Load_Extra_Param_References
Shader Load Extra Parameter Reference Files
2022-06-08 00:52:14 +01:00
MrHuu 3a1d567ced (3DS) Add CONSOLE_LOG guards 2022-06-07 22:23:45 +02:00
libretroadmin 8ec1f3294e (D3D10/11/12) Miscellaneous corrections/safety checks 2022-06-07 06:37:23 +02:00
libretroadmin 65ab04e775 (D3D11/D3D12) Prevent Griffin build failure 2022-06-07 04:30:28 +02:00
LibretroAdmin 491cf7f2b4 Merge pull request #14010 from sonninnos/x11-led-keyboard
(X11) Add LED keyboard driver
2022-06-07 02:39:20 +01:00
LibretroAdmin e51d3450cd Merge pull request #14009 from sonninnos/win32-led-keyboard
(WIN32) LED keyboard driver cleanup
2022-06-07 02:38:51 +01:00
github-actions 65f45b07c5 Fetch translations from Crowdin 2022-06-07 00:10:18 +00:00
LibretroAdmin 2b182bfc4a Merge pull request #14019 from sonninnos/d3d11-waitable-swapchain
(D3D11/12) Add waitable swapchains and max frame latency option
2022-06-07 01:00:45 +01:00
LibretroAdmin c06e18c4ed Merge pull request #14014 from QuarkTheAwesome/wiiu-sysconf
(WiiU) Implement sysconf and __clear_cache
2022-06-06 23:19:20 +01:00
sonninnos 0bb65fb39c (D3D11/12) Add waitable swapchains and max frame latency option 2022-06-07 00:25:03 +03:00
Ash Logan d6250fd58c (WiiU) Implement __clear_cache
This seems to maybe be a libgcc builtin and even explicit calls to it 
are removed.. so we have a Makefile workaround!
2022-06-07 01:07:01 +10:00
Ash Logan 148f5f7499 (WiiU) Implement sysconf()
_SC_PAGESIZE is used in some cores.
2022-06-07 01:02:53 +10:00
github-actions 65901cb133 Fetch translations from Crowdin 2022-06-06 00:10:28 +00:00
Tony Jansson a8cff31420 (X11) Add LED keyboard driver 2022-06-05 08:27:41 +03:00
sonninnos 38f258c504 (WIN32) LED keyboard driver cleanup 2022-06-05 08:26:49 +03:00
HyperspaceMadness 8d177ed865 Shader Load Extra Parameter Reference Files
When a shader preset is loaded now when there are more than one #reference line the parameter values will be loaded from the references after the first one
2022-06-04 20:12:21 -04:00
libretroadmin 8b5b1ce96d (D3D) Get rid of unnecesary inline functions 2022-06-04 23:14:15 +02:00
libretroadmin 85ca66bfad (D3D) Move d3d{}_release_texture out of d3d{}_init_texture 2022-06-04 21:31:43 +02:00
libretroadmin d0ce0ac06f (D3D12) Fix regression 2022-06-04 21:28:00 +02:00
libretroadmin 4dc08fad5c (D3D) Miscellaneous cleanups 2022-06-04 19:16:14 +02:00
LibretroAdmin 4226a8311e Merge pull request #14006 from MrHuu/ctr_compile_flags
(3DS) Support latest libctru
2022-06-04 17:14:00 +01:00
Cthulhu-throwaway d4324d9a0d (Network) poll support 2022-06-04 10:46:31 -03:00
MrHuu a4c40da647 (3DS) Support latest libctru
- Fixes compilations warnings dus to FLAG changes
2022-06-04 14:27:55 +02:00
libretroadmin c0c1198d35 (GCC12) Get rid of warning: the comparison will always evaluate as 'true' for the pointer operand in 'filt->thread_data + (sizetype)((long long unsigned int)i * 48)' must not be NULL [-Waddress] 2022-06-04 10:04:59 +02:00
libretroadmin 85cd386cb3 (Input) Cleanups 2022-06-04 08:55:35 +02:00
libretroadmin c9149895f5 (GCC12) Get rid of warning: the comparison will always evaluate as 'true' for the pointer operand in 'binds + (sizetype)((long long unsigned int)port * 4032)' must not be NULL [-Waddress] 2022-06-04 08:50:35 +02:00
libretroadmin 0fbb36c61a (D3D12) Try to fix compilation for mingw toolchains with GCC 12.x
and beyond
2022-06-04 07:02:32 +02:00
libretroadmin 18bebe0c73 (D3D12) Small cleanups - less implicit memsets 2022-06-04 06:55:34 +02:00
libretroadmin 2a747ada5d (GCC 12) Silence some new warnings generated 2022-06-04 06:35:05 +02:00
libretroadmin 05797eb6b8 (D3D12) Move functions over to files that need it 2022-06-04 06:02:50 +02:00
libretroadmin 92a7d5bf61 (D3D12) Get rid of some unused inline functions 2022-06-04 02:51:59 +02:00
libretroadmin 281fe83936 (D3D12) Remove unused inline functions 2022-06-04 00:20:47 +02:00
libretroadmin cb56b35568 (D3D12) Won't work on older mingw versions too, roll this back 2022-06-03 23:22:40 +02:00
libretroadmin c0a7739f85 (D3D12) Try alternative approach in hopes it will still work on older mingw versions 2022-06-03 23:12:11 +02:00
libretroadmin 92a1dac0ea (D3D12) Fix newer mingw versions 2022-06-03 23:04:58 +02:00
LibretroAdmin 9ea46f34fb Merge pull request #13997 from Cthulhu-throwaway/lan-discovery-ipv4-tunneling
(Netplay/LAN Discovery) Support for IPv4 tunneling (6to4)
2022-06-02 08:43:24 +01:00
LibretroAdmin 9fbf1c846f Merge pull request #13998 from sonninnos/win32-fs-log
(WIN32) Fix video resolution logging
2022-06-01 16:59:43 +01:00
sonninnos 5bf82038ad (WIN32) Fix video resolution logging 2022-06-01 18:45:33 +03:00
Cthulhu-throwaway bcc31be6da (Netplay/LAN Discovery) Support for IPv4 tunneling (6to4) 2022-06-01 06:34:43 -03:00
LibretroAdmin a92a37e3f4 Merge pull request #13996 from Cthulhu-throwaway/netplay-cleanup-2
(Netplay) Some cleaning
2022-06-01 10:00:09 +01:00
Cthulhu-throwaway 9fab981317 (Netplay) Some cleaning 2022-06-01 04:31:33 -03:00
LibretroAdmin 4a21553f06 Merge pull request #13994 from fr500/master
fix previous PR
2022-06-01 07:37:37 +01:00
LibretroAdmin 6755eac963 Merge pull request #13995 from Cthulhu-throwaway/natt-fix
(UPnP) Fix for zero-length datagrams
2022-06-01 07:37:28 +01:00
Cthulhu-throwaway 2abf42515b (UPnP) Fix for zero-length datagrams 2022-06-01 03:24:46 -03:00
radius 109cd28a6f fix previous PR 2022-06-01 01:00:28 -05:00
LibretroAdmin b4dc4f3cc9 Merge pull request #13993 from fr500/patch-2
Fix lan rooms on android
2022-06-01 05:14:39 +01:00
libretroadmin 63d1ef4677 (Wayland) Prevent implicit declarations 2022-06-01 05:43:28 +02:00
libretroadmin e33f6cbbe2 Don't define _GNU_SOURCE when already defined 2022-06-01 05:39:28 +02:00
Andrés cf2ecf506c Fix lan rooms on android
This simple change makes lan discovery work on android again.
The is_lan_address function was meant to filter out duplicate rooms only anyway and this change shouldn't harm anything

The responses on android are seen as IPv6 mapped IPv4 addresses so this is needed for this to work anyway

I/RetroArch: [Discovery] Responnse received on LAN interface ::ffff:192.168.1.241.
I/RetroArch: [Netplay]: Connecting to ::ffff:192.168.1.241|55435 (deferred)
2022-05-31 22:39:10 -05:00
libretroadmin b0597d91a2 Try to define F_ADD_SEALS and F_SEAL_SHRINK when not defined 2022-06-01 05:37:45 +02:00
libretroadmin b8d9070c9b (DXGI/HDR) Move global to only function that requires it 2022-05-31 21:03:38 +02:00
libretroadmin 06d62cf86a Simplify vulkan set_resize function callbacks 2022-05-31 20:18:27 +02:00
libretroadmin bf7b1c9d9c (Wayland) Fixups 2022-05-31 20:04:33 +02:00
libretroadmin ccdf68e64a (Wayland) Buildfix 2022-05-31 19:51:41 +02:00
libretroadmin 6408cc8958 Make memfd_create call more backwards compatible by calling it through
syscall -
On older systems, you'll have to include linux/memfd.h for the MFD_ defines, and call memfd_create() via the the syscall(2) wrapper (and include unistd.h and sys/syscall.h for it work). We exclude linux/memfd.h header include because we already provide
the MFD_ defines in case they are missing
2022-05-31 19:45:55 +02:00
libretroadmin 5b85d46383 (Vulkan) Get rid of g_win32_inited = true line - this is already done
in create_vk_context
2022-05-31 19:14:12 +02:00
LibretroAdmin e470461b14 Merge pull request #13991 from Cthulhu-throwaway/isinprogress
(Networking) Define isinprogress function
2022-05-31 17:07:17 +01:00
Cthulhu-throwaway 39de84eb05 Wii buildfix 2022-05-31 06:07:57 -03:00
Cthulhu-throwaway 8f7b5a1050 (Networking) Define isinprogress function 2022-05-31 05:07:23 -03:00
LibretroAdmin cb6b41e10f Merge pull request #13990 from Cthulhu-throwaway/netplay-cleanup
Proper buildfix for some Windows environments
2022-05-31 05:13:04 +01:00
Cthulhu-throwaway 400faff5ba Proper buildfix for some Windows environments 2022-05-31 01:08:45 -03:00
libretroadmin 4811f8d3f6 Revert "Attempted buildfix for net_socket"
This reverts commit 17d31e6dff.
2022-05-31 06:06:43 +02:00
libretroadmin 17d31e6dff Attempted buildfix for net_socket 2022-05-31 05:43:50 +02:00
LibretroAdmin 4c3482faab Merge pull request #13989 from Cthulhu-throwaway/netplay-cleanup
(Netplay) Some cleaning
2022-05-31 04:33:12 +01:00
Cthulhu-throwaway 17b7b1322e (Netplay) Some cleaning 2022-05-30 22:02:24 -03:00
github-actions 037ae4b87d Fetch translations from Crowdin 2022-05-31 00:11:36 +00:00
LibretroAdmin 5e258eb8f0 Merge pull request #13987 from Cthulhu-throwaway/master
(Netplay) Enforce a timeout during connection
2022-05-30 18:14:12 +01:00
Cthulhu-throwaway de30f212bc (Netplay) Enforce a timeout during connection 2022-05-30 05:23:39 -03:00
LibretroAdmin 4e82b40515 Merge pull request #13986 from QuarkTheAwesome/wiiu-mmap-imports
(WiiU) Add OS memory mapping imports
2022-05-30 03:44:06 +01:00
Ash Logan 7c34fd46e1 (WiiU) Add OS memory mapping imports
Used in some upcoming cores.
2022-05-30 11:50:58 +10:00
LibretroAdmin 56feacf3b6 Merge pull request #13985 from libretro/revert-13959-Shader_Loading_Multiple_References
Revert "Shader Preset Loading of Multiple additional #references lines for settings"
2022-05-30 01:39:59 +01:00
LibretroAdmin 6ba8fe225d Revert "Shader Preset Loading of Multiple additional #references lines for settings" 2022-05-30 02:39:25 +02:00
github-actions c6bd7d8b8a Fetch translations from Crowdin 2022-05-30 00:14:02 +00:00
libretroadmin 96a485f885 Move struct and macros for input to input_types.h 2022-05-29 21:58:39 +02:00
LibretroAdmin ccdda219b8 Merge pull request #13980 from Ophidon/master
Fix BFI Regression
2022-05-29 08:58:39 +01:00
Ophidon 4c934e66d5 Fix BFI Regression 2022-05-29 00:51:28 -04:00
LibretroAdmin 4e5cc3fef1 Merge pull request #13979 from phcoder/dostime
djgpp: Add a workaround for libc bug
2022-05-29 05:32:50 +01:00
github-actions adc6ac1429 Fetch translations from Crowdin 2022-05-29 00:13:19 +00:00
Vladimir Serbinenko 46e86ff503 djgpp: Add a workaround for libc bug 2022-05-28 22:24:36 +02:00
github-actions 3b27f7730c Fetch translations from Crowdin 2022-05-28 00:11:31 +00:00
LibretroAdmin b65c933a09 Merge pull request #13975 from Cthulhu-throwaway/netplay-cleanup
(Netplay) Some refactoring and cleaning
2022-05-27 23:37:43 +01:00
LibretroAdmin 98a13f386f Merge pull request #13974 from DisasterMo/source-text-fixes
Fix some grammar & spelling mistakes
2022-05-27 22:24:17 +01:00
Cthulhu-throwaway e4f8b531d5 (Netplay) Some refactoring and cleaning 2022-05-27 17:21:34 -03:00
DisasterMo 51e0515f44 Fix some grammar mistakes 2022-05-27 20:31:52 +02:00
LibretroAdmin 16c0f5e223 Merge pull request #13964 from 5th-fork/master
[UWP] add support for 4k to angle on xbox
2022-05-27 15:10:33 +01:00
LibretroAdmin 3f6d8508a4 Merge pull request #13971 from stevenjamescox/master
revision to macOS app icon set
2022-05-26 17:54:03 +01:00
Steve Cox 134f645e72 revision to macOS app icon set 2022-05-25 20:04:48 -07:00
LibretroAdmin 37a17df182 Merge pull request #13970 from Cthulhu-throwaway/upnp-fix
(Netplay/UPnP) Stability Issue
2022-05-25 17:45:27 +01:00
Cthulhu-throwaway 61610bd7d3 (Netplay/UPnP) Stability Issue 2022-05-25 12:30:17 -03:00
LibretroAdmin cc1325ff82 Merge pull request #13959 from HyperspaceMadness/Shader_Loading_Multiple_References
Shader Preset Loading of Multiple additional #references lines for settings
2022-05-25 14:49:01 +01:00
LibretroAdmin 24b6a0ae7d Merge pull request #13968 from Cthulhu-throwaway/master
(Netplay) Change default for input sharing to "no sharing"
2022-05-25 14:48:37 +01:00
Cthulhu-throwaway ade5444d5f (Netplay) Change default for input sharing to "no sharing" 2022-05-25 07:45:02 -03:00
github-actions af7db7c08f Fetch translations from Crowdin 2022-05-25 00:13:38 +00:00
Remi McGill 684889507b Shader Loading of Multiple References for settings
Multi reference settings working

Config fixes

Multi-Reference Loading Working, Checking for shader chain not working

Checking References is working

Improved path_linked_list_add_path

Simplify path list stuff

Fixed Static Definition

Fixes

Fixes

Fix to Trigger PR Update

Removed Legacy Orbis which got left in a merge

Memory Leak Fix
2022-05-24 14:07:55 -04:00
LibretroAdmin 8f1de8a343 Merge pull request #13965 from stevenjamescox/master
Revised tvOS icons w/ updated invader.
2022-05-24 12:50:52 +01:00
github-actions d4795b8cf6 Fetch translations from Crowdin 2022-05-24 00:12:09 +00:00
Steve Cox d54df6f18e Revised tvOS icons w/ updated alien. 2022-05-23 15:58:48 -07:00
tunip3 accbfb3a96 update angle readme 2022-05-23 23:30:55 +01:00
tunip3 d5f5f8e202 update libs 2022-05-23 23:29:17 +01:00
tunip3 6994ff3ab7 add display res matching 2022-05-23 22:55:41 +01:00
tunip3 6c6d16e978 Update gl2.c 2022-05-23 22:54:29 +01:00
LibretroAdmin 49370f1f26 Merge pull request #13961 from libretro/orbisdev-orbis
WIP: Orbis/PS4 Support using OrbisDev toolchain (pt. 2)
2022-05-23 22:00:08 +01:00
LibretroAdmin c92da21647 Merge pull request #13954 from Apaczer/upscale240x160_mix
Add Upscale_240x160-320x240 video filter with 'mixed' method
2022-05-23 20:46:40 +01:00
Apaczer 8722f83dee change function's alias
fixes PSP build
2022-05-23 20:40:31 +02:00
LibretroAdmin 4a985b0765 Merge pull request #13963 from davidgfnet/test-fixes
Fix string test that fails.
2022-05-23 18:48:28 +01:00
David Guillen Fandos 8b53aaf45f Fix string test that fails. 2022-05-23 18:47:29 +02:00
libretroadmin 14c0948fb9 (video_thread_wrapper.c) Put back logs at request 2022-05-23 13:43:54 +02:00
LibretroAdmin f3a4a87eae Merge pull request #13962 from stevenjamescox/master
iOS app icon fixes & revisions
2022-05-23 12:44:17 +01:00
Steve Cox 0e486f9468 iOS app icon fixes & revisions
Replaced many blurry app icons, instead using icons from higher resolution sources.

Revised iOS app icon color & spacing slightly, attempting to match the pattern used in the recent Android and Switch versions of RetroArch.
2022-05-23 02:36:23 -07:00
github-actions 7b95f3e2ea Fetch translations from Crowdin 2022-05-23 00:12:07 +00:00
libretroadmin 802b3ecd05 (Drivers shader) Revert back to earlier version 2022-05-22 20:49:45 +02:00
libretroadmin 9590fdd0d4 Cleanups pt.2 2022-05-22 20:29:53 +02:00
libretroadmin 41d225f937 Cleanup 2022-05-22 20:14:56 +02:00
libretroadmin a14ccc2d4d (Orbis) Remove some logs 2022-05-22 19:59:20 +02:00
libretroadmin 13c746f703 Merge branch 'orbis' of https://github.com/orbisdev/RetroArch into orbisdev-orbis 2022-05-22 19:51:41 +02:00
LibretroAdmin 08e3cd07ef Update README.md 2022-05-22 19:38:10 +02:00
github-actions 4654fc1b75 Fetch translations from Crowdin 2022-05-22 00:11:22 +00:00
LibretroAdmin e4f3a781a6 Update README.md 2022-05-21 23:53:09 +02:00
LibretroAdmin d45dbe1e66 Update README.md 2022-05-21 23:52:33 +02:00
LibretroAdmin e65679da09 Update README.md 2022-05-21 23:40:56 +02:00
LibretroAdmin 3a6956f429 Update README.md 2022-05-21 23:40:28 +02:00
libretroadmin 5c6d5b0aa3 (thread_wrapper) Logging is not thread-safe, remove log messages 2022-05-21 20:31:38 +02:00
libretroadmin cc61c90602 (Vulkan shader) Add framebuffer copy/clear to inner functions - remove
functions
2022-05-21 18:49:21 +02:00
libretroadmin 68608e5db1 (shader_vulkan) Cleanups:
* Properly namespace functions
* Get rid of functions that were never used
* More cleanups in general
2022-05-21 17:55:43 +02:00
Francisco Javier Trujillo Mata ba47d09c4b [ORBIS] Update xxHash dependecy 2022-05-21 17:10:36 +02:00
Francisco Javier Trujillo Mata f56f28d226 [ORBIS] Update to latest toolchain changes 2022-05-21 17:10:36 +02:00
Francisco Javier Trujillo Mata 5ef1309742 [ORBIS] Adding CPP libs 2022-05-21 17:10:36 +02:00
Francisco Javier Trujillo Mata 0c3506fbdc [ORBIS] Use orbis as suffix for core 2022-05-21 17:10:36 +02:00
Francisco Javier Trujillo Mata 91758569b2 [ORBIS] Include crt0 in the makefile 2022-05-21 17:10:36 +02:00
Francisco Javier Trujillo Mata 05a03164bd [ORBIS] Use user_mem_sys library 2022-05-21 17:10:36 +02:00
Francisco José García García 8f81692b78 [ORBIS] shader cache 2022-05-21 17:10:36 +02:00
Francisco Javier Trujillo Mata a5a90a1dc7 [ORBIS] Clean Makefile and show memory available and used 2022-05-21 17:10:35 +02:00
Francisco Javier Trujillo Mata 6974dee535 [ORBIS] Remove the dummy core option by default 2022-05-21 17:10:35 +02:00
Francisco Javier Trujillo Mata 6366fcf8e3 [ORBIS] Remove legacy implementation and compile with Werror 2022-05-21 17:10:35 +02:00
libretroadmin f30cbaf7a3 (shader_vulkan) More rewrites 2022-05-21 17:00:43 +02:00
Francisco Javier Trujillo Mata 50d8982943 [ORBIS] Add CI to GitHub Actions 2022-05-21 16:31:10 +02:00
Antonio Jose Ramos Marquez 9dd060dbc8 [ORBIS] some changes for input 2022-05-21 16:31:10 +02:00
Francisco Javier Trujillo Mata 7a15f81b39 [ORBIS] Improve memory reservation 2022-05-21 16:31:10 +02:00
Antonio Jose Ramos Marquez 4dd779467d [ORBIS] add debugnet support 2022-05-21 16:31:10 +02:00
OsirizX c6d51fdb32 [ORBIS] Initial changes for PS4 2022-05-21 16:31:10 +02:00
libretroadmin 46603db2fa (shader_vulkan) Get rid of Pass:set_pass_info 2022-05-21 14:49:31 +02:00
libretroadmin 302169b49a (shader_vulkan) Cleanups 2022-05-21 14:37:07 +02:00
libretroadmin 28bfa238d4 (RGUI) Buildfix 2022-05-21 13:54:37 +02:00
libretroadmin c48209d323 (shader_vulkan) More cleanups 2022-05-21 13:08:13 +02:00
LibretroAdmin 7164598a29 Merge pull request #13956 from GABO1423/patch-1
(Ozone) UWP Build fix.
2022-05-21 11:04:14 +01:00
LibretroAdmin 44288455cb Merge pull request #13957 from Cthulhu-throwaway/more-threaded-video-fixes
(Threaded Video) FIxes
2022-05-21 10:54:21 +01:00
libretroadmin 49954569f9 (shader_vulkan) Simplifications 2022-05-21 11:47:08 +02:00
Cthulhu-throwaway 68d864e01b (Threaded Video) FIxes 2022-05-21 06:23:17 -03:00
Gabriel Morazán 9a0f59677b (Ozone) UWP Build fix. 2022-05-20 22:10:27 -04:00
github-actions 4ee841b5e1 Fetch translations from Crowdin 2022-05-21 00:10:21 +00:00
libretroadmin 66a2a12766 (Vulkan) Move functions to proper place where they're used
and turn them static
2022-05-21 01:40:23 +02:00
LibretroAdmin 4966d2a130 Merge pull request #13952 from stevenjamescox/master
tvOS app icon fix & revisions
2022-05-21 00:18:24 +01:00
libretroadmin 3b99b42812 (shader_vulkan) Simplify - move functions over that were exclusively
used in shader_vulkan.cpp from vulkan_common.c to there
2022-05-21 01:11:28 +02:00
libretroadmin 25c33a8306 (drivers_shader) Simplify shader_gl3/shader_vulkan 2022-05-21 00:43:52 +02:00
libretroadmin 3d010cd7a9 (XMB) Cleanups 2022-05-20 22:40:36 +02:00
libretroadmin 63157a6f09 (RGUI) Cleanups 2022-05-20 21:28:15 +02:00
Apaczer 455dbb6dd0 add upscale240x160 mixed method 2022-05-20 20:46:00 +02:00
libretroadmin f879a723c6 (MaterialUI) Cleanups 2022-05-20 20:41:46 +02:00
libretroadmin 69d251ff6d (Menu) Cleanups for drivers 2022-05-20 20:31:06 +02:00
libretroadmin d9948c00e1 (Ozone) Cleanups 2022-05-20 19:50:33 +02:00
libretroadmin 05eca53290 (RGUI) Cleanups 2022-05-20 19:20:59 +02:00
libretroadmin 93e0baf715 (RGUI/MaterialUI) Cleanups 2022-05-20 16:10:15 +02:00
libretroadmin 14ab2db692 (Ozone) Cleanups 2022-05-20 14:46:45 +02:00
libretroadmin 07d19dd807 (XMB) Cleanups 2022-05-20 14:13:45 +02:00
libretroadmin e1db81787d (video_thread_wrapper) Small variable cleanup 2022-05-20 13:45:38 +02:00
LibretroAdmin adf3929f78 Merge pull request #13938 from Cthulhu-throwaway/threaded-video-cleanup
(Threaded Video/video_thread_wrapper.c) Cleaning and optimization
2022-05-20 12:44:56 +01:00
Steve Cox fbcc99013e tvOS app icon fix, also icon revisions
Fixed the @2x icon sizing. Each @2x icon was previously the same size as its @1x counterpart, resulting in odd graphical errors when the icon was selected on the tvOS home screen.

Switched to the non-outlined RetroArch logo to match the iOS app icon—and because I was unable to find a high enough resolution version of the outlined logo to properly create @2x icon layers for it.

Separated the icon layers further, going from two layers to three (eyes on their own layer now) to improve the resultant tvOS home screen parallax effect on it. The eyes now move ever so slightly—independent of the body.
2022-05-20 02:10:44 -07:00
libretroadmin 41f45becdb (D3D12) Buildfix 2022-05-20 04:41:43 +02:00
libretroadmin 7c2d033b83 (DXGI) Untangle macros 2022-05-20 00:21:57 +02:00
libretroadmin 937ad8bfc6 (D3D9) Cleanups 2022-05-19 22:32:03 +02:00
LibretroAdmin ae7cc2ef4d Merge pull request #13947 from jdgleaver/ozone-xmb-minimise-thumb-requests
(Ozone/XMB) Prevent unnecessary thumbnail requests when scrolling through playlists
2022-05-19 18:08:30 +01:00
jdgleaver f2dca12a22 (Ozone/XMB) Prevent unnecessary thumbnail requests when scrolling through playlists 2022-05-19 16:42:01 +01:00
libretroadmin 30685c6e60 (d3dcompiler_common) Cleanups 2022-05-19 16:18:34 +02:00
libretroadmin af89df2b82 (Vulkan) Some C89_BUILD fixes 2022-05-19 15:47:45 +02:00
libretroadmin 493b8fdef8 (Vulkan) Style nits/cleanups 2022-05-19 15:43:51 +02:00
libretroadmin eaabfefcb0 (Vulkan) Cleanups 2022-05-19 15:28:26 +02:00
libretroadmin a378ce0aec (Vulkan) Buildfix 2022-05-19 13:40:37 +02:00
LibretroAdmin a227989fd8 Merge pull request #13945 from Cthulhu-throwaway/move-natt
(Network) Move natt files to "network"
2022-05-19 12:41:45 +01:00
Cthulhu-throwaway f0baf977fa (Network) Move natt files to "network" 2022-05-18 23:23:40 -03:00
github-actions 011e371e42 Fetch translations from Crowdin 2022-05-19 00:13:17 +00:00
libretroadmin 7a55686a95 (Vulkan) Fix XMB regression 2022-05-18 23:29:04 +02:00
Cthulhu-throwaway 9e39abcd00 (Threaded Video/video_thread_wrapper.c) Cleaning and optimization 2022-05-18 18:27:54 -03:00
libretroadmin 241d6eb901 (Vulkan) Simplify vulkan_create_texture 2022-05-18 23:19:58 +02:00
libretroadmin 8881020b75 (vulkan_common.c) Cleanups 2022-05-18 21:00:42 +02:00
LibretroAdmin 7bf4515cd2 Merge pull request #13943 from Tatsuya79/patch-2
QT: add recent new options in video settings
2022-05-18 15:55:53 +01:00
libretroadmin 6f156d064e (Vulkan) vulkan_transition_texture - get rid of early return 2022-05-18 16:48:23 +02:00
libretroadmin 3cad090b4c (Vulkan) Optimizations/cleanups -
* Honor SUBOPTIMAL on non-Android since you'd want to recreate
swapchains then. On Android it can be promoted to SUCCESS.
SUBOPTIMAL_KHR can happen there when rotation (pre-rotate) is wrong.
* Small cleanups in general - less conditionals
2022-05-18 16:39:54 +02:00
Tatsuya79 581ebcc0ac QT: add recent new options in video settings 2022-05-18 16:35:00 +02:00
github-actions 650101083d Fetch translations from Crowdin 2022-05-18 00:11:52 +00:00
libretroadmin c527bce8e3 (D3D) Cleanups 2022-05-17 23:28:18 +02:00
libretroadmin 5a5c65d9b9 (D3D10) Remove inline functions 2022-05-17 23:13:33 +02:00
LibretroAdmin b3632586f5 Merge pull request #13902 from Ryunam/autorr-toggle
Add option to manually enable/disable automatic refresh rate switching
2022-05-17 21:39:07 +01:00
libretroadmin 255522f9a0 (D3D10) Get rid of lots of inline functions 2022-05-17 18:39:22 +02:00
libretroadmin fe37647c84 (D3D11) d3d11_init_shader - simplify some code 2022-05-17 17:26:13 +02:00
libretroadmin de4bfa0805 (D3D11) Get rid of some inlined functions 2022-05-17 17:04:43 +02:00
libretroadmin 7eb9f6b49b (D3D8) Set suppress_screensaver depending on preprocessor define 2022-05-17 14:22:51 +02:00
libretroadmin efe6d14d37 Get rid of d3d9_suppress_screensaver in d3d9_common.c 2022-05-17 14:21:22 +02:00
libretroadmin a396cd872c (GL2 Raster font) Prefix gl_raster_font with gl2_ 2022-05-17 14:16:53 +02:00
libretroadmin 87b76dc7a4 (video_shader_parse.c) Cleanups 2022-05-17 14:12:02 +02:00
libretroadmin 49bf60cc90 (Win32) Cleanups 2022-05-17 13:21:56 +02:00
libretroadmin 7896341dfc Revert "Move d3d_input_driver to win32_common and rename it win32_input_driver"
This reverts commit 201eeae7f1.
2022-05-17 12:34:12 +02:00
github-actions be567da82b Fetch translations from Crowdin 2022-05-17 00:13:01 +00:00
libretroadmin cdcc8fe992 (D3D11) Fix regression with XMB pipeline shaders 2022-05-17 00:50:07 +02:00
libretroadmin 0a5eff8468 (Metal raster font) Buildfix 2022-05-16 22:48:33 +02:00
libretroadmin 3115338849 (D3D10/D3D11/Vulkan) Cleanups 2022-05-16 22:26:46 +02:00
libretroadmin bfa627737e (D3D/Vulkan) Try to prevent implicit memsets 2022-05-16 21:37:02 +02:00
libretroadmin c8e3ae09e7 Font driver cleanups #2 2022-05-16 20:34:46 +02:00
libretroadmin ee0749e884 (Font drivers) Font driver cleanups 2022-05-16 19:41:00 +02:00
libretroadmin 93dfa0217d (D3D10/D3D11/D3D12) Simplify font drivers 2022-05-16 18:00:55 +02:00
Ryunam d7cfcd3f9b Add option to toggle automatic refresh rate switching 2022-05-16 17:50:11 +02:00
libretroadmin 1c1d37e959 (D3D8) Simplifications 2022-05-16 14:19:17 +02:00
libretroadmin 3b7ff9d69b (D3D9) Simplify d3d9_reset 2022-05-16 13:34:32 +02:00
libretroadmin 0df2be001e (D3D9) Only d3d9_renderchain_add_lut requires create_texture_from_file now,
so split up into two separate functions - this function requires D3DX
which we intend to get rid of long-term
2022-05-16 13:24:58 +02:00
libretroadmin 372ac81ee1 (D3D8) d3d8_texture_new - path never used, so get rid of it and get
rid of D3DX remnants for D3D8
2022-05-16 13:19:40 +02:00
LibretroAdmin 9dd03f6d9f Merge pull request #13835 from sonninnos/quickmenu-reorder
Reorganize Quick Menu items
2022-05-16 12:06:19 +01:00
libretroadmin df5f5cd9a4 (D3D9) Cut down on ifdefs 2022-05-16 13:00:24 +02:00
LibretroAdmin f4964c1937 Merge pull request #13936 from Cthulhu-throwaway/kick-submenu-ext
(Netplay) Chat supported info for the host kick submenu
2022-05-16 11:41:52 +01:00
libretroadmin 88d0a4ac75 (D3D9 HLSL) Simplifications 2022-05-16 12:01:23 +02:00
libretroadmin 5ffd95aa1b (D3D9) Simplify d3d9_vertex_buffer_new 2022-05-16 11:33:15 +02:00
libretroadmin 201eeae7f1 Move d3d_input_driver to win32_common and rename it win32_input_driver 2022-05-16 08:03:13 +02:00
libretroadmin 275e58c6ce Cleanup D3D8/D3D9 matrix functions 2022-05-16 07:55:39 +02:00
libretroadmin e061e7028b Revert "(D3D) Start cutting down on d3d_matrix_identity"
This reverts commit d6e6fb2a93.
2022-05-16 07:46:21 +02:00
libretroadmin d6e6fb2a93 (D3D) Start cutting down on d3d_matrix_identity 2022-05-16 07:37:24 +02:00
libretroadmin 23f1f98c01 (D3D8) Cleanups - remove unused code 2022-05-16 07:32:36 +02:00
github-actions ab858c65a1 Fetch translations from Crowdin 2022-05-16 00:13:33 +00:00
Cthulhu-throwaway 82c9773e0d (Netplay) Chat supported info for the host kick submenu 2022-05-15 19:38:44 -03:00
libretroadmin 52bb930cc7 (D3D9) Cleanup 2022-05-15 21:04:53 +02:00
libretroadmin febd584930 (D3D9) Cleanups - cut down on pointless inlined functions 2022-05-15 17:20:54 +02:00
libretroadmin 28cd77c5b4 (D3D9) Cleanups 2022-05-15 16:28:18 +02:00
LibretroAdmin 720cca5e45 Merge pull request #13935 from Cthulhu-throwaway/kick-submenu
(Netplay) Host Kick Submenu
2022-05-15 08:35:01 +01:00
Cthulhu-throwaway 81593fda42 (Netplay) Host Kick Submenu
Path: Netplay -> Host -> Kick Client

- Allows the host to kick clients.
- Allows the host to view client information: connected clients (names), status (playing/spectating) and ping.
2022-05-15 04:04:15 -03:00
libretroadmin 2ca4d8bd7b (D3D8) Cleanups 2022-05-15 08:15:35 +02:00
libretroadmin c2ae445a85 (D3D8) More buildfixes 2022-05-15 07:25:12 +02:00
libretroadmin 77fd75dd06 (D3D8) More buildfixes 2022-05-15 06:11:58 +02:00
libretroadmin 0676db9096 (D3D8) More buildfixes 2022-05-15 06:01:44 +02:00
libretroadmin a496bfa57b (D3D8) Buildfixes 2022-05-15 05:53:04 +02:00
libretroadmin 7934e677ca Get rid of inline functions in d3d8_common.h - simplify code 2022-05-15 05:48:09 +02:00
LibretroAdmin 927982e0d6 Merge pull request #13934 from Cthulhu-throwaway/master
(Netplay) Free client_info when it's no longer in use
2022-05-15 03:11:28 +01:00
github-actions 08e69fbd08 Fetch translations from Crowdin 2022-05-15 00:14:24 +00:00
Cthulhu-throwaway cb2d6b3d8e (Netplay) Free client_info when it's no longer in use 2022-05-14 12:06:57 -03:00
twinaphex a577d7d224 (netplay_frontend) Small style nits/cleanups 2022-05-14 04:34:11 +02:00
LibretroAdmin b934b41758 Merge pull request #13932 from Cthulhu-throwaway/master
(Netplay) Support for gathering client info and kicking
2022-05-14 03:33:45 +01:00
Cthulhu-throwaway 6d96df0e49 (Netplay) Support for gathering client info and kicking
Client info and kicking (by the host) is now implemented through netplay_driver_ctl and can be used by future features.
2022-05-13 22:42:08 -03:00
github-actions c88e03df06 Fetch translations from Crowdin 2022-05-14 00:13:18 +00:00
LibretroAdmin e9914d6605 Merge pull request #13931 from Cthulhu-throwaway/master
(Netplay) More cleaning and organization
2022-05-13 14:28:57 +01:00
Cthulhu-throwaway f29256bb0d (Netplay) More cleaning and organization 2022-05-13 10:22:55 -03:00
LibretroAdmin dc0054a747 Merge pull request #13927 from jdgleaver/auto-video-swap-interval
Enable automatic configuration of 'VSync Swap Interval'
2022-05-13 14:17:56 +01:00
github-actions 143655eec6 Fetch translations from Crowdin 2022-05-13 00:13:09 +00:00
LibretroAdmin 533d746f64 Merge pull request #13649 from phcoder/ctrl
Add a configurable workaround for Android reconnecting devices
2022-05-12 20:56:58 +02:00
LibretroAdmin 9919aac510 Merge pull request #13929 from Cthulhu-throwaway/master
(Netplay) Fixes and cleanup
2022-05-12 20:47:46 +02:00
Cthulhu-throwaway 99e517d2a9 (Netplay) Fixes and cleanup
(Netplay) Buildfix and warnings
2022-05-12 14:26:53 -03:00
jdgleaver 801b16885e Enable automatic configuration of 'VSync Swap Interval' 2022-05-12 14:22:46 +01:00
twinaphex 6099428ab7 (Windows) Fix exclusive fullscreen video refresh rate when vsync swap interval is not equal to one -
Refresh rate in exclusive fullscreen mode was being incorrectly multiplied by vsync swap interval, breaking swap interval functionality at the gfx driver level
2022-05-12 15:05:02 +02:00
LibretroAdmin 1b8c1faa8a Merge pull request #13921 from nfp0/menu-increase-shader-scale-max-value
menu - Increase shader scale max value
2022-05-12 00:54:33 +02:00
LibretroAdmin f57e46ceb5 Merge pull request #13917 from phcoder/retrofw2
Support battery indicator on RetroFW
2022-05-12 00:54:20 +02:00
tunip3 fc16da3440 remove copy perms as its inefficient as we can just directly assign the new acl and that works (#13926) 2022-05-11 19:16:04 +02:00
github-actions 51c558c8f4 Fetch translations from Crowdin 2022-05-11 00:10:58 +00:00
Cthulhu-throwaway 796bc15837 C89 buildfix (#13923)
* C89 buildfix

* More buildfixes
2022-05-10 07:37:33 +02:00
github-actions af224493b3 Fetch translations from Crowdin 2022-05-10 00:10:43 +00:00
nfp0 0e44673053 menu - Increase shader scale max value 2022-05-09 16:54:26 +01:00
github-actions 1982c82dcd Fetch translations from Crowdin 2022-05-09 00:11:05 +00:00
Cthulhu-throwaway 80a9c16b3f (Netplay/Lobby) Add a toggleable filter for passworded rooms (#13920)
In addition, move lobby filters into its own submenu for better organization.
2022-05-08 04:24:58 +02:00
github-actions 2a15a4cba3 Fetch translations from Crowdin 2022-05-08 00:12:15 +00:00
github-actions 8475bcbab3 Fetch translations from Crowdin 2022-05-07 00:10:07 +00:00
Autechre d2e7674e3e Update .gitlab-ci.yml 2022-05-07 01:21:02 +02:00
Vladimir Serbinenko 25a8e05597 Support battery indicator on RetroFW 2022-05-07 00:53:02 +02:00
Cthulhu-throwaway b57a1b0c72 (Netplay) Fix possible deadlock (#13919) 2022-05-07 00:40:46 +02:00
twinaphex c3c7f5167f Buildfix 2022-05-06 22:31:42 +02:00
tunip3 ba2203e1e4 fix uwp debug build (#13918)
* fix uwp debug build
2022-05-06 21:49:21 +02:00
Cthulhu-throwaway 9a3b8f4a0a (Netplay) Disable netplay for unsupported cores (#13916)
With stateless mode being disabled for now, there is no reason not to include this.

Refuse to initialize netplay when the current core is not supported (no proper savestates support).
2022-05-06 04:31:37 +02:00
github-actions 5a85748de6 Fetch translations from Crowdin 2022-05-06 00:11:54 +00:00
jdgleaver dbcce3f564 Analog button mapping fixes (#13913) 2022-05-05 20:47:23 +02:00
Cthulhu-throwaway 0a52964015 (Netplay) Disable and hide stateless mode (#13915)
Stateless mode is nonfunctional at the moment, despite my attempts to get it working.
A significant amount of work is required to get it working.

For now, force-disable stateless mode and hide it from menus and the CLI's help text.
2022-05-05 20:46:48 +02:00
github-actions 19b7ff81b9 Fetch translations from Crowdin 2022-05-05 00:10:58 +00:00
Jamiras e3b59fd36d upgrade to rcheevos 10.4 (#13908) 2022-05-04 04:46:47 +02:00
github-actions 4804d7015a Fetch translations from Crowdin 2022-05-03 00:11:07 +00:00
Alexander Trufanov 55aceb5356 Allow mitm server selection on OK callback (#13906)
* Allow mitm server selection on OK callback
2022-05-02 19:44:53 +02:00
github-actions 102abb0223 Fetch translations from Crowdin 2022-05-02 00:11:05 +00:00
github-actions e51febaa7d Fetch translations from Crowdin 2022-05-01 00:14:28 +00:00
Cthulhu-throwaway 4674241bf9 (Networking) Move macro to its correct place (#13904) 2022-04-30 03:39:10 +02:00
github-actions 9cbdc783be Fetch translations from Crowdin 2022-04-30 00:11:26 +00:00
Cthulhu-throwaway 7c3dfa5e3a (Netplay/LAN Discovery) Ensure fixed width ints on packet struct (#13901) 2022-04-29 20:26:34 +02:00
Cthulhu-throwaway 7a70b36c8b (Threaded Tasks) Fix race condition at task_queue_wait (#13898) 2022-04-29 14:29:07 +02:00
twinaphex 984f857621 (D3D11) Fix overlay not showing up regression 2022-04-29 14:23:36 +02:00
github-actions 499ccad74e Fetch translations from Crowdin 2022-04-29 00:11:09 +00:00
sonninnos 0b55188969 Reorganize Quick Menu items 2022-04-28 18:57:46 +03:00
m4xw e389b8c7a1 Fix readability and precision issues in aspectratio_lut (#13893) 2022-04-28 15:30:13 +02:00
Cthulhu-throwaway a268ffe6ce (Netplay) Replace sscanf with safer strtol and strtoul (#13897) 2022-04-28 14:14:00 +02:00
github-actions 11234aad11 Fetch translations from Crowdin 2022-04-28 00:18:59 +00:00
jdgleaver 37c56d0d09 Add option to disable automatic saving of input remap files (#13894) 2022-04-27 19:12:53 +02:00
twinaphex 604335bc27 (D3D9) Simplifications to HLSL/Cg drivers 2022-04-27 19:07:04 +02:00
twinaphex 251208fd0b (D3D9 Cg)d3d9_cg_renderchain_add_lut function no longer used - remove 2022-04-27 18:47:44 +02:00
twinaphex 9463f0ee55 (D3D9 Cg) Buildfix 2022-04-27 18:04:24 +02:00
github-actions a923b62966 Fetch translations from Crowdin 2022-04-27 00:11:58 +00:00
twinaphex 84e49bd2d1 (D3D9) Simplify some code 2022-04-26 18:33:30 +02:00
jdgleaver c1d1e57ec9 Fix audio mixer memory leak + remove redundant 'single threaded' rthreads implementation (#13890) 2022-04-26 14:22:59 +02:00
Autechre 1493533345 Revert "ensure history list will contain crc32 (#13883)" (#13891)
This reverts commit 141bba0464.
2022-04-26 14:22:33 +02:00
Vladimir Serbinenko c2db12c727 Enable menu toggle button on retrofw devices (#13889) 2022-04-26 09:59:36 +02:00
github-actions 7489b5b078 Fetch translations from Crowdin 2022-04-26 00:11:44 +00:00
twinaphex 47a1f8f851 (D3D8/D3D9) Do not run unnecessary d3d_matrix_identity call before
d3d_matrix_rotation_z - rotation_z already sets identity matrix for
the matrix
2022-04-25 19:21:52 +02:00
twinaphex 3c3a305eb3 Add HAVE_GDI ifdef 2022-04-25 18:39:41 +02:00
Cthulhu-throwaway 1f879b0472 (Netplay/Content Find Task) Ensure CRC32 is 8 characters long (#13887)
Ensure CRC32 is 8 hexadecimal characters long when comparing CRCs with loaded content.
2022-04-25 18:36:59 +02:00
twinaphex 339a8736c1 (feralgamemode) Cleanups - get rid of fprintfs 2022-04-25 18:14:31 +02:00
Autechre f42591305d Revert "Fix crc32 comparision (#13884)" (#13886)
This reverts commit f377c0d041.
2022-04-25 18:06:04 +02:00
twinaphex 3d0f8c1ed5 (D3D9) Get rid of d3d9_set_stream_source inline function 2022-04-25 17:40:18 +02:00
twinaphex 609c56b7cd (D3D9) Cleanups 2022-04-25 17:06:11 +02:00
Vladimir Serbinenko eaf98919a9 Add missing locks in audio_mixer.c (#13858) 2022-04-25 16:54:10 +02:00
Alexander Trufanov 141bba0464 ensure history list will contain crc32 (#13883) 2022-04-25 15:53:23 +02:00
Alexander Trufanov f377c0d041 Fix crc32 comparision (#13884)
As state->content_crc has "|crc" suffix.
2022-04-25 15:40:25 +02:00
twinaphex 2864f70bd9 (D3D12) Cleanups 2022-04-24 23:33:08 +02:00
twinaphex 589548337c (D3D10) Cleanup 2022-04-24 22:03:08 +02:00
twinaphex 77adfb1c1a Simplify D3D10/D3D12 headers 2022-04-24 21:56:06 +02:00
twinaphex abe85e5e13 (D3D11) Get rid of more ununused inline functions 2022-04-24 21:38:05 +02:00
twinaphex d6aa3fdce5 (D3D9) Cleanups - get rid of more inline functions 2022-04-24 15:07:56 +02:00
twinaphex 96d7c31983 (D3D11) Cleanups 2022-04-24 13:40:38 +02:00
twinaphex fc2b3f1ed9 (D3D) Cleanups 2022-04-24 12:59:23 +02:00
twinaphex 736f6eb8b6 (D3D8) Rewrite D3D8 code somewhat - this driver will never
have renderchains, so simplify it
2022-04-24 12:23:01 +02:00
twinaphex 6a537a656d (D3D10/D3D11/D3D12) Get rid of save_hlsl codepath when loading
shaders (and they fail), or debug mode
2022-04-24 12:01:36 +02:00
twinaphex 3c6098dff7 (D3D11) Cleanups of unused inline functions 2022-04-24 11:59:20 +02:00
github-actions 1613ebdfb4 Fetch translations from Crowdin 2022-04-24 00:11:14 +00:00
twinaphex 8973f2ae01 (D3D11) Cleanups - use less inlined functions 2022-04-23 16:25:59 +02:00
twinaphex 0888297f31 (D3D11) Cleanups - go through less inlined functions 2022-04-23 11:36:10 +02:00
twinaphex 1887aee7c4 (D3D11) Cleanup some inline functions 2022-04-23 09:07:00 +02:00
github-actions d0ef0eccbf Fetch translations from Crowdin 2022-04-23 00:09:39 +00:00
twinaphex 5d82b36f9c (D3D11) Use less inlined functions 2022-04-22 22:58:35 +02:00
twinaphex 7f8a0e352f (D3D11) Get rid of some inline functions 2022-04-22 21:12:05 +02:00
twinaphex af029ed2f9 (Gitlab) Re-enable osx-ppc 2022-04-22 17:58:49 +02:00
twinaphex a25fabd6f7 (D3D9 HLSL) Set this parameter to 0 to indicate we are using
vertex declarations instead of FVFs
2022-04-22 16:41:08 +02:00
twinaphex 90f53bf6f4 (D3D9) Cleanups 2022-04-22 16:21:27 +02:00
twinaphex 845a469d4c (D3D8/9) Cleanups 2022-04-22 16:02:21 +02:00
Cthulhu-throwaway 669af1d9c6 (Netplay) Initialize client's allow_pausing to true (#13873) 2022-04-22 15:37:11 +02:00
twinaphex c4b8b9cfe9 (D3D8) Buildfixes 2022-04-22 15:29:33 +02:00
twinaphex 45c901ca53 (D3D8) Cleanups - get rid of many inline functions 2022-04-22 15:05:28 +02:00
twinaphex 0117228fec (D3D9 HLSL) Buildfix 2022-04-22 14:41:50 +02:00
twinaphex afb04b419b (D3D9) Cleanups 2022-04-22 14:37:39 +02:00
Alexander Trufanov 7f0cf651f1 Fix gamecrc parsing (#13872) 2022-04-22 14:31:37 +02:00
twinaphex b231ae7c41 (D3D9) Start getting rid of inline D3D9 functions 2022-04-22 14:25:13 +02:00
twinaphex cedf77d87f Move d3d9_renderchain_blit_to_texture to d3d9_common.c 2022-04-22 13:50:36 +02:00
twinaphex 6f71879012 (MSVC2017) Cleanup vcxproj 2022-04-22 13:38:58 +02:00
twinaphex bc018cff15 (D3D9 Cg) Cleanups 2022-04-22 13:36:42 +02:00
twinaphex 3336e61859 (Qt) Combine Qt header files 2022-04-22 08:26:27 +02:00
Autechre a23127c51b Update .gitlab-ci.yml 2022-04-22 06:43:33 +02:00
Autechre 3d1f01fecc Cg rewrite (#13871)
* (D3D9 Cg) rewrite/cleanups

* Buildfixes
2022-04-22 05:39:14 +02:00
twinaphex a0738111e9 (D3D9 Cg) Cleanups 2022-04-22 05:14:04 +02:00
github-actions cc4aa85bc0 Fetch translations from Crowdin 2022-04-22 00:12:32 +00:00
driver1998 2f0bdac2f5 Fixes the d3d9cg driver (#13870) 2022-04-22 00:15:54 +01:00
twinaphex 6f0bef6b7b (D3D8) Cleanups 2022-04-21 17:06:14 +02:00
twinaphex b43039f7b0 (D3D8) Buildfixes 2022-04-20 18:25:34 +02:00
twinaphex 5b97ba65c0 (D3D8) Buildfix 2022-04-20 18:06:20 +02:00
twinaphex ac45f16d79 Buildfix 2022-04-20 17:45:31 +02:00
twinaphex 437051c112 (D3D8) Replace inline function calls with straight function calls 2022-04-20 17:26:03 +02:00
twinaphex 56b08940c2 (D3D8) Replace inline function calls with direct function calls 2022-04-20 17:11:59 +02:00
twinaphex 8c27e58e20 (D3D8/D3D9) Cleanups 2022-04-20 16:00:00 +02:00
twinaphex 3cf86d3093 Get rid of d3d9_SDKVersion 2022-04-20 15:47:32 +02:00
twinaphex 53b039cf7d Try to use inline functions less - call D3D9 functions directly 2022-04-20 15:01:40 +02:00
Michael Burgardt e185955bc1 Add Catalan language option (#13850) 2022-04-20 14:37:24 +02:00
twinaphex a348571ba8 (D3D9 HLSL/Cg) Create specialized versions of set_vertices_on_change 2022-04-20 14:04:12 +02:00
twinaphex d1cbba2847 (D3D9 HLSL) Don't go through inlined functions 2022-04-20 13:34:20 +02:00
twinaphex 825bc0739e (D3D9) Cleanups 2022-04-20 12:50:59 +02:00
twinaphex e1f74d3959 Merge renderchain code 2022-04-20 12:32:44 +02:00
twinaphex 68032c7734 (D3D9) Split up D3D9 driver into two separate drivers - one for D3D9 HLSL
and another one for D3D9 Cg
2022-04-19 15:45:22 +02:00
twinaphex 6195711bb3 (D3D9) Move functions to d3d9.c 2022-04-19 14:49:08 +02:00
twinaphex 6a032fc1f8 (D3D9) Move global over to d3d9_common.c 2022-04-19 14:27:40 +02:00
twinaphex 4114545564 (D3D9) Remove d3d9_clear 2022-04-19 14:03:29 +02:00
twinaphex 7c37f9c053 Get rid of some inline functions 2022-04-19 13:49:32 +02:00
twinaphex bceb753993 Turn it into static function 2022-04-19 13:19:14 +02:00
twinaphex df3927dd33 Cleanups 2022-04-19 12:12:03 +02:00
Joel Puig Rubio 03146e4604 Label Valencian as a Catalan dialect (#13837) 2022-04-19 11:58:50 +02:00
twinaphex a5802ce757 (D3D9) Cleanups 2022-04-19 11:03:24 +02:00
twinaphex 9a354982a9 Move common D3D9 common out to file d3d9_common.c 2022-04-19 10:32:15 +02:00
Jamiras 56c9db9c4c re-enforce hardcore limitations once achievements are loaded (#13862) 2022-04-19 09:41:49 +02:00
Vladimir Serbinenko da5d135a9f Enable rwav on libnx (#13857)
While on it merge setting of HAVE_RWAV with inclusion of rwav-files in
Makefile.common
2022-04-17 20:02:53 +02:00
twinaphex 7bdcc8bfe1 (D3D9) Cleanups 2022-04-17 02:23:28 +02:00
github-actions ee6570f3dc Fetch translations from Crowdin 2022-04-17 00:11:12 +00:00
twinaphex 2ef0ea0cc7 Cleanups 2022-04-16 22:33:18 +02:00
driver1998 67e3e37ab0 d3d9 hlsl xmb fix (#13855) 2022-04-16 19:21:32 +02:00
Gabriel Morazán 3f2d4b1885 Fix wrong version number (Android) (#13852) 2022-04-16 18:51:21 +02:00
github-actions 5121c66624 Fetch translations from Crowdin 2022-04-16 00:10:32 +00:00
github-actions 1ff91fe74d Fetch translations from Crowdin 2022-04-15 00:10:17 +00:00
Autechre a597c95c98 Update CHANGES.md 2022-04-14 08:29:41 +02:00
Autechre f38b7afce9 Update CHANGES.md 2022-04-14 08:29:07 +02:00
barbudreadmon d14d218b76 allow proper descriptor declaration for analog triggers (#13845) 2022-04-13 15:11:30 +02:00
twinaphex 95fad4d32c Cleanups 2022-04-13 15:08:22 +02:00
sonninnos c185c3b916 Hide UI Companion menu items when they are not available (#13807) 2022-04-13 14:50:33 +02:00
hunterk 0a9ea2da4d allow audio playback capture on android (#13846) 2022-04-13 14:50:21 +02:00
github-actions dcc6727875 Fetch translations from Crowdin 2022-04-13 00:11:10 +00:00
github-actions f9d0a49d42 Fetch translations from Crowdin 2022-04-12 00:10:22 +00:00
Autechre 9b282aa742 Update CHANGES.md 2022-04-11 07:17:19 +02:00
twinaphex c659751976 (PSP) Take out HAVE_LANGEXTRA for PSP - RAM is not at a premium for this
console
2022-04-11 07:11:16 +02:00
github-actions 41d84c6db1 Fetch translations from Crowdin 2022-04-11 00:10:18 +00:00
github-actions 260a0a4194 Fetch translations from Crowdin 2022-04-10 00:10:42 +00:00
Gabriel Morazán e9da17b058 Bump up version numbers. (UWP) (#13841)
* Bump up version number. (msvc2017)

* Bump up version number. (msvc2019)
2022-04-10 00:43:56 +02:00
twinaphex 5ed375b7df Bump version to 1.10.3 2022-04-10 00:03:11 +02:00
Autechre d3004fe2c2 Update CHANGES.md 2022-04-09 23:58:40 +02:00
twinaphex ee9b6ba78e Hide Help menu until there is useful info to be shown 2022-04-09 17:23:14 +02:00
github-actions 5d2b5e8722 Fetch translations from Crowdin 2022-04-09 00:10:39 +00:00
Tony 044e1ec655 (WinRaw) Fix multiple light guns (#13840)
* (WinRaw) Fix multiple light guns

* Strip non-ASCII characters from mouse display names
2022-04-08 21:46:00 +02:00
github-actions d82bba38ad Fetch translations from Crowdin 2022-04-08 00:11:05 +00:00
github-actions c3220e212f Fetch translations from Crowdin 2022-04-07 00:10:52 +00:00
nfp0andnfp0 d13fec5db5 Bring back number of swapchain images log (#13836)
Co-authored-by: nfp0 <[email protected]>
2022-04-06 19:52:22 +02:00
Tony 85fef3427a Fast-Forward Frameskip improvement (#13834) 2022-04-06 15:39:25 +01:00
github-actions bf579df8b9 Fetch translations from Crowdin 2022-04-06 00:10:20 +00:00
Vladimir Serbinenko 2ef2ff1b36 Add a configurable workaround for Android reconnecting devices
Closes https://github.com/libretro/RetroArch/issues/3414

I have investigated the issue. The crux of the problem is that on Android there
is no way distinguishing 2 scenarios:
1) 2 identical bluetooth controllers A and B and first there are button presses
only on controller A and then on controller B
2) the same controller disconnects and reconnects.
Android doesn't give bluetooth mac address of where the touch came from, only
opaque ID and this opaque ID changes after reconnect. Hence without changes to
android this is infeasible without giving up the ability for 2 users to play on
identical controllers.

I guess that this sacrifice makes sense for affected users
2022-04-05 18:40:27 +02:00
Autechre 5e85d22d8f Update CHANGES.md 2022-04-05 17:48:23 +02:00
Braden Farmer ee6c9384e9 [Android] Decouple Play Core dependency to bring app into compliance for F-Droid (#13830) 2022-04-05 08:38:54 +02:00
twinaphex fb2da8e8fd Backport https://github.com/libretro/libretro-common/pull/192/commits/42b3ebe12afe3cd6700bef4a657ca0f0a643d08f 2022-04-05 07:32:22 +02:00
twinaphex 573dfb87f2 Merge branch 'master' of https://github.com/libretro/RetroArch 2022-04-05 07:30:15 +02:00
github-actions a43ae5d08a Fetch translations from Crowdin 2022-04-05 00:10:01 +00:00
Jamiras dcabde33fc disallow manual frame delay setting in hardcore (#13826) 2022-04-05 01:06:47 +02:00
Autechre 9cbcaf1798 Update CHANGES.md 2022-04-04 20:25:00 +02:00
jdgleaver c687a29d6a Input Remaps: Fix saving of 'Analog to Digital Type' when configuration overrides are used (#13824) 2022-04-04 19:08:17 +02:00
Autechre a91b538ba9 Update CHANGES.md 2022-04-04 16:51:34 +02:00
jdgleaver 1e7265e7aa Static Platforms: Populate all history list metadata when launching content from playlists (#13822) 2022-04-04 16:33:44 +02:00
github-actions 77b5e31203 Fetch translations from Crowdin 2022-04-04 00:10:31 +00:00
Autechre 23f5b6fb86 Update CHANGES.md 2022-04-03 19:29:36 +02:00
Tomáš Kelemen b2b2425203 bluetoothctl: add / modify pairing steps (#13818)
due to some changes in bluez / bluetoothctl, `pairable on` is required
in order to create a `[LinkKey]` section in the configuration file for
the connected device. if this section is missing, the device / gamepad
will not pair after being disconnect and has to be repaired again.
2022-04-03 19:29:03 +02:00
twinaphex e38e699fbf Merge branch 'master' of https://github.com/libretro/RetroArch 2022-04-03 18:09:17 +02:00
Autechre f353898a9d Update CHANGES.md 2022-04-03 04:09:18 +02:00
Tomáš Kelemen 2f6b9c7971 core system files downloader: remove for Lakka (#13794)
Lakka ships these files already in the image. in some cases downloading
files provided by the buildbot can cause issues, as these files might be
not compatible with the core version provided by the Lakka image.
2022-04-03 04:08:59 +02:00
Romeo 686628b8ad (Database) Serial scanning for Wii now includes WBFS (#13816)
* Update task_database.c
2022-04-03 04:08:30 +02:00
github-actions acf21260e7 Fetch translations from Crowdin 2022-04-03 00:10:31 +00:00
twinaphex 14578c0b18 (gl3/glcore) Remove gl3_build_default_matrix 2022-04-02 23:48:34 +02:00
twinaphex 8cdfc8e8b6 Fix CXX_BUILD errors 2022-04-02 20:37:54 +02:00
twinaphex 3873af37c6 (Vulkan) Turn this code into a switch instead of several conditionals 2022-04-02 19:10:56 +02:00
twinaphex 65b8ec4cef (Vulkan) Fix crashes 2022-04-02 19:02:54 +02:00
Autechre 794900a1ed Update CHANGES.md 2022-04-02 17:06:03 +02:00
Tony 0dbd2bc3b9 (XMB) Shadow adjustments (#13815) 2022-04-02 17:05:35 +02:00
Autechre 9dfc5950aa Update CHANGES.md 2022-04-02 17:04:51 +02:00
Mats 4a1a1e2fa7 (steam) Introduce Steam Rich Presence (#13798) 2022-04-02 08:07:40 +01:00
jSTE0 fccef557fc miyoo: Enable ALSA audio driver and default to it (#13814)
Enable it as it does not freeze. This provides an audio backend that
can report its buffer status, allowing auto frame skip to work on cores
that support it.

Do not build or include alsathread as it results in choppy audio.
Similarly, leave tinyalsa disabled as it plays back at a higher pitch
and is also choppy.

Change the default sample rate to 32000Hz as the previous default of
32730Hz is derived from the 3DS.
2022-04-02 08:07:25 +01:00
github-actions 91e4bbe1e4 Fetch translations from Crowdin 2022-04-02 00:09:55 +00:00
Cthulhu-throwaway 8194629314 [Threaded Video] Stability Fixes (#13813) 2022-04-01 20:34:28 +02:00
Tony 754d3b224f Fix offset + crash when clearing input port binds (#13811) 2022-04-01 18:13:36 +02:00
Tony 9276921f5d Add sublabels for 'Aspect Ratio' and windowed 'Opacity/Decorations/Menubar' (#13808) 2022-04-01 14:03:10 +01:00
twinaphex 510af4678e Disable AI Service by default 2022-04-01 02:21:48 +02:00
github-actions af9590d45e Fetch translations from Crowdin 2022-04-01 00:11:01 +00:00
Tony 569b3945d6 Move 'Show Menu Bar' under 'Windowed Mode' settings (#13806) 2022-03-31 17:30:44 +02:00
Tony caaaaf99f7 Add sublabels for 'Subsystems' and 'Input Deadzone/Sensitivity' (#13804) 2022-03-31 16:02:15 +02:00
twinaphex 0eb4444ad1 (mbedtls) Silence warnings 2022-03-31 15:28:49 +02:00
Tony 0db3116805 Move 'On-Screen Notifications' to top (#13786) 2022-03-30 21:00:42 +02:00
Michael Burgardt fd35162cbe Add Valencian language option (#13789) 2022-03-30 17:59:09 +02:00
twinaphex 5319b592e9 Silence some Wayland warnings 2022-03-30 17:29:07 +02:00
Autechre 4c3a4d66df Cxx buildfixes (#13803)
* CXX_BUILD buildfixes
* (D3D11) Buildfixes for CXX_BUILD
* (Linux/qb) Disable KMS for Linux when building for C89, headers use inline which is not
available for C89
2022-03-30 17:30:20 +02:00
twinaphex a7569b5712 More CXX_BUILD buildfixes 2022-03-30 15:45:48 +02:00
twinaphex 26fec17593 CXX_BUILD fixes for net_natt.c 2022-03-30 15:32:23 +02:00
twinaphex c8d57fe667 (CXX_BUILD) Some CXX_BUILD fixes 2022-03-30 15:13:28 +02:00
github-actions 1df0285091 Fetch translations from Crowdin 2022-03-30 00:10:01 +00:00
revvv 1cd6413e24 Wii U: Fix USB get_device_name(), don't truncate to three chars 2022-03-29 18:25:27 +01:00
1145 changed files with 129902 additions and 72973 deletions

No files matched your search

+6
View File
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
+39
View File
@@ -0,0 +1,39 @@
name: CI 3DS
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-devkitpro:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile Salamander
run: |
make -f Makefile.ctr.salamander -j$(getconf _NPROCESSORS_ONLN) USE_CTRULIB_2=1 clean
make -f Makefile.ctr.salamander -j$(getconf _NPROCESSORS_ONLN) USE_CTRULIB_2=1
- name: Compile RA
run: |
make -f Makefile.ctr -j$(getconf _NPROCESSORS_ONLN) USE_CTRULIB_2=1 clean
make -f Makefile.ctr -j$(getconf _NPROCESSORS_ONLN) USE_CTRULIB_2=1 HAVE_STATIC_DUMMY=1
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-3DS-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch_3ds.cia
+35
View File
@@ -0,0 +1,35 @@
name: CI DOS/DJGPP
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-djgpp-build-container:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
make -f Makefile.dos -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.dos -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-DOS-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retrodos.exe
+35
View File
@@ -0,0 +1,35 @@
name: CI Emscripten
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-emscripten:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
emmake make -f Makefile.emscripten -j$(getconf _NPROCESSORS_ONLN) clean
emmake make -f Makefile.emscripten -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-Emscripten-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch.js
+34
View File
@@ -0,0 +1,34 @@
name: CI GameCube
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-devkitpro:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
make -f Makefile.ngc -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.ngc -j$(getconf _NPROCESSORS_ONLN) EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 HAVE_STATIC_DUMMY=1
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-GameCube-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch_ngc.dol
+35
View File
@@ -0,0 +1,35 @@
name: CI Miyoo ARM32
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-dingux:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.miyoo clean
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.miyoo
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: retroarch_miyoo_arm32${{ steps.slug.outputs.sha8 }}
path: |
retroarch
+5 -2
View File
@@ -6,6 +6,9 @@ on:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
@@ -14,7 +17,7 @@ jobs:
options: --user root
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Compile Salamander
run: |
@@ -30,7 +33,7 @@ jobs:
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: RA-PS2-dummy-${{ steps.slug.outputs.sha8 }}
path: |
+48
View File
@@ -0,0 +1,48 @@
name: CI PS4/ORBIS
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-orbis:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
apk add ncurses-dev make bash python2
apk add libintl icu-dev wget
wget https://dot.net/v1/dotnet-install.sh && chmod 755 dotnet-install.sh && ./dotnet-install.sh -c 3.0 --install-dir ~/cli
- name: Compile RA
run: |
export PATH=~/cli:$PATH # .net cli
make -f Makefile.orbis -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: bin-${{ steps.slug.outputs.sha8 }}
path: |
retroarch_orbis.elf
retroarch_orbis.oelf
retroarch_orbis.self
- name: Version of binaries
run: |
clang --version
orbis-ld --version
+5 -2
View File
@@ -6,6 +6,9 @@ on:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
@@ -14,7 +17,7 @@ jobs:
options: --user root
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Compile bootstrap
run: |
@@ -36,7 +39,7 @@ jobs:
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: RA-PSP-dummy-${{ steps.slug.outputs.sha8 }}
path: |
+39
View File
@@ -0,0 +1,39 @@
name: CI PSVita
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-vita:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile Salamander
run: |
make -f Makefile.vita.salamander -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.vita.salamander -j$(getconf _NPROCESSORS_ONLN)
- name: Compile RA
run: |
make -f Makefile.vita -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.vita -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1 HAVE_VITAGLES=1
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-PSVita-dummy-${{ steps.slug.outputs.sha8 }}
path: |
eboot.bin
+35
View File
@@ -0,0 +1,35 @@
name: CI RS90 Odbeta MIPS32
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-dingux:odbeta
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.rs90 clean
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.rs90
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: retroarch_rs90_mips32${{ steps.slug.outputs.sha8 }}
path: |
retroarch_rs90_odbeta.opk
+35
View File
@@ -0,0 +1,35 @@
name: CI RetroFW MIPS32
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-dingux:odbeta
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.retrofw clean
make -j$(getconf _NPROCESSORS_ONLN) -f Makefile.retrofw
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: retroarch_retrofw_mips32${{ steps.slug.outputs.sha8 }}
path: |
retroarch_retrofw.opk
+34
View File
@@ -0,0 +1,34 @@
name: CI Switch/libnx
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-libnx-devkitpro:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
make -f Makefile.libnx -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.libnx -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-libnx-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch_switch.nro
+39
View File
@@ -0,0 +1,39 @@
name: CI Wii
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-devkitpro:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile Salamander
run: |
make -f Makefile.wii.salamander -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.wii.salamander -j$(getconf _NPROCESSORS_ONLN) EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0
- name: Compile RA
run: |
make -f Makefile.wii -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.wii -j$(getconf _NPROCESSORS_ONLN) EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 HAVE_STATIC_DUMMY=1
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-Wii-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch_wii.dol
+39
View File
@@ -0,0 +1,39 @@
name: CI WiiU
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-wiiu:latest
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile Salamander
run: |
make -f Makefile.wiiu -j$(getconf _NPROCESSORS_ONLN) SALAMANDER_BUILD=1 clean
make -f Makefile.wiiu -j$(getconf _NPROCESSORS_ONLN) SALAMANDER_BUILD=1
- name: Compile RA
run: |
make -f Makefile.wiiu -j$(getconf _NPROCESSORS_ONLN) clean
make -f Makefile.wiiu -j$(getconf _NPROCESSORS_ONLN) HAVE_STATIC_DUMMY=1
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: RA-WiiU-dummy-${{ steps.slug.outputs.sha8 }}
path: |
retroarch.rpx
+37
View File
@@ -0,0 +1,37 @@
name: CI Windows i686 (MXE)
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-mxe-win32-cross:gcc10
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
export MOC=/usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/bin/moc
./configure --host=i686-w64-mingw32.shared
make clean
make -j$(getconf _NPROCESSORS_ONLN)
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: retroarch${{ steps.slug.outputs.sha8 }}
path: |
retroarch.exe
+37
View File
@@ -0,0 +1,37 @@
name: CI Windows x64 (MXE)
on:
push:
pull_request:
repository_dispatch:
types: [run_build]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.libretro.com:5050/libretro-infrastructure/libretro-build-mxe-win64-cross:gcc10
options: --user root
steps:
- uses: actions/checkout@v3
- name: Compile RA
run: |
export MOC=/usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin/moc
./configure --host=x86_64-w64-mingw32.shared
make clean
make -j$(getconf _NPROCESSORS_ONLN)
- name: Get short SHA
id: slug
run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- uses: actions/upload-artifact@v3
with:
name: retroarch${{ steps.slug.outputs.sha8 }}
path: |
retroarch.exe
+12 -4
View File
@@ -6,18 +6,26 @@ on:
schedule:
- cron: '0 0 * * *' # every day at midnight
permissions:
contents: read
jobs:
sync:
permissions:
contents: write # for Git to git push
runs-on: ubuntu-latest
steps:
- name: Setup Java JDK
uses: actions/setup-java@v1
uses: actions/setup-java@v3
with:
java-version: 1.8
java-version: 18
distribution: zulu
- name: Setup Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Crowdin Sync
shell: bash
env:
+10 -4
View File
@@ -10,18 +10,24 @@ on:
- 'intl/*_us.h'
- 'intl/*_us.json'
permissions:
contents: read
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Setup Java JDK
uses: actions/setup-java@v1
uses: actions/setup-java@v3
with:
java-version: 1.8
java-version: 18
distribution: zulu
- name: Setup Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Crowdin Sync
shell: bash
env:
+8 -1
View File
@@ -10,6 +10,9 @@ on:
branches:
- master
permissions:
contents: read
jobs:
linux-c89: # Smoketest build using most restrictive compiler and default options
runs-on: ubuntu-latest
@@ -19,8 +22,12 @@ jobs:
sudo apt-get update -y
sudo apt-get install build-essential libxkbcommon-dev libx11-xcb-dev zlib1g-dev libfreetype6-dev libegl1-mesa-dev libgles2-mesa-dev libgbm-dev nvidia-cg-toolkit nvidia-cg-dev libavcodec-dev libsdl2-dev libsdl-image1.2-dev libxml2-dev yasm
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Configure
run: ./configure
- name: Build
run: make C89_BUILD=1
- name: Build Debug
run: |
make clean # making sure we don't have leftovers from previous build
make DEBUG=1 GL_DEBUG=1 C89_BUILD=1
+79 -42
View File
@@ -47,6 +47,7 @@ build-retroarch-windows-x64:
--enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/styles/
--copy
--objdump x86_64-w64-mingw32.shared-objdump"
- "cp -f nvdaControllerClient64.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/nvdaControllerClient64.dll"
- "rm -f ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/opengl32.dll"
build-retroarch-windows-i686:
@@ -363,28 +364,28 @@ build-retroarch-osx-opengl-x64:
XCPROJECT_NAME: RetroArch
XCCONFIG: OpenGL_GitLabCI.xcconfig
build-retroarch-osx-ppc:
stage: build
artifacts:
paths:
- ${XCPROJECT_NAME}.zip
- retroarch-repo/
expire_in: 10 min
dependencies: []
variables:
XCPROJECT_NAME: RetroArch
XCCONFIG: OpenGL_GitLabCI.xcconfig
tags:
- macosx-legacy
script:
- xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch_PPC.xcodeproj ONLY_ACTIVE_ARCH=NO
- pushd pkg/apple/build/Release/
- ditto -c -k --sequesterRsrc --keepParent RetroArch.app ${XCPROJECT_NAME}.zip
- popd
- mv pkg/apple/build/Release/RetroArch.zip ${XCPROJECT_NAME}.zip
- mkdir .retroarch-repo
- "cp -r ./* .retroarch-repo"
- "mv .retroarch-repo/ retroarch-repo/"
#build-retroarch-osx-ppc:
# stage: build
# artifacts:
# paths:
# - ${XCPROJECT_NAME}.zip
# - retroarch-repo/
# expire_in: 10 min
# dependencies: []
# variables:
# XCPROJECT_NAME: RetroArch
# XCCONFIG: OpenGL_GitLabCI.xcconfig
# tags:
# - macosx-legacy
# script:
# - xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch_PPC.xcodeproj ONLY_ACTIVE_ARCH=NO
# - pushd pkg/apple/build/Release/
# - ditto -c -k --sequesterRsrc --keepParent RetroArch.app ${XCPROJECT_NAME}.zip
# - popd
# - mv pkg/apple/build/Release/RetroArch.zip ${XCPROJECT_NAME}.zip
# - mkdir .retroarch-repo
# - "cp -r ./* .retroarch-repo"
# - "mv .retroarch-repo/ retroarch-repo/"
build-retroarch-ios-arm64:
extends: .build-retroarch-macos-xcode
@@ -661,6 +662,50 @@ build-static-retroarch-dummy-libnx-aarch64:
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f pkg/libnx/retroarch.jpg ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
build-static-retroarch-psp:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psp:latest
stage: prepare-for-static-cores
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
needs:
# Dummy build requires no core
- build-static-retroarch-dummy-psp
script:
# We need to boostrap before compile
- "(cd bootstrap/psp1/kernel_functions_prx/ && make && cd -)"
# Allow failure since we don't have a core
- "make -f Makefile.psp1 -j$NUMPROC ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-dummy-psp:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psp:latest
stage: build
variables:
MEDIA_PATH: .media
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- EBOOT.PBP
- kernel_functions.prx
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "(cd bootstrap/psp1/kernel_functions_prx/ && make && cd -)"
- "make -f Makefile.psp1.salamander -j$NUMPROC"
- "make -C bootstrap/psp1/kernel_functions_prx/"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f pkg/psp1/ICON0.PNG ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f pkg/psp1/PIC1.PNG ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
build-static-retroarch-vita:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-vita:latest
stage: prepare-for-static-cores
@@ -774,8 +819,8 @@ build-static-retroarch-dummy-psl1ght:
script:
- "make -f Makefile.psl1ght.salamander -j$NUMPROC create-salamander"
build-static-retroarch-psp:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psp:latest
build-static-retroarch-orbis:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-orbis:latest
stage: prepare-for-static-cores
before_script:
- export NUMPROC=$(($(nproc)/3))
@@ -786,37 +831,26 @@ build-static-retroarch-psp:
dependencies: []
needs:
# Dummy build requires no core
- build-static-retroarch-dummy-psp
- build-static-retroarch-dummy-orbis
script:
# We need to boostrap before compile
- "(cd bootstrap/psp1/kernel_functions_prx/ && make && cd -)"
# Allow failure since we don't have a core
- "make -f Makefile.psp1 -j$NUMPROC ||:"
- "make -f Makefile.orbis -j$NUMPROC ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-dummy-psp:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psp:latest
build-static-retroarch-dummy-orbis:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-orbis:latest
stage: build
variables:
MEDIA_PATH: .media
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- EBOOT.PBP
- kernel_functions.prx
- ${MEDIA_PATH}
- retroarch_orbis.self
expire_in: 10 min
dependencies: []
script:
- "(cd bootstrap/psp1/kernel_functions_prx/ && make && cd -)"
- "make -f Makefile.psp1.salamander -j$NUMPROC"
- "make -C bootstrap/psp1/kernel_functions_prx/"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f pkg/psp1/ICON0.PNG ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f pkg/psp1/PIC1.PNG ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "make -f Makefile.orbis -j$NUMPROC HAVE_STATIC_DUMMY=1"
build-static-retroarch-djgpp:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-djgpp-build-container:latest
@@ -828,6 +862,7 @@ build-static-retroarch-djgpp:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
needs: []
script:
# Allow failure since we don't have a core
- "make -f Makefile.dos -j$NUMPROC ||:"
@@ -865,6 +900,7 @@ build-static-retroarch-ctr-legacy:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
needs: []
script:
# Allow failure since we don't have a core
- "make -f Makefile.ctr -j$NUMPROC ||:"
@@ -1075,10 +1111,11 @@ trigger_static-cores:
stage: trigger-static-cores
needs:
- build-static-retroarch-libnx-aarch64
- build-static-retroarch-psp
- build-static-retroarch-vita
- build-static-retroarch-ps2
- build-static-retroarch-psl1ght
- build-static-retroarch-psp
- build-static-retroarch-orbis
- build-static-retroarch-ctr
- build-static-retroarch-ctr-legacy
- build-static-retroarch-wiiu
+77 -23
View File
@@ -3,54 +3,63 @@ RetroArch and the libretro team would like to
acknowledge the following contributors:
1ch (L0sted)
51eating (dnjstlr555)
23rd
6lackmag3
A Schain (aschain)
Aaron Oneal (aarononeal)
Aaron Ramirez (aaronbytes)
Abadede
Adam Londero (alondero)
Adam Mechtley (amechtley)
AdrianoML
Adriano de Moura Leite (amlib)
Adrien Moulin (elyosh)
Aethyrion
ajefr
AKuHAK
Alberto Alonso Ruibal (albertoruibal)
Alberto Fustinoni (albertofustinoni)
Alberto Simon (asimonf)
Alcaro
aldebaran27
Aleksey Samoilov (Sunderland93)
Alessandro Mangone (Vektor) (zevektor)
Alessio Tosto (Rinnegatamante)
Alex Eckhart (alex34567)
Alex Folland (AlexFolland)
Alex Kornitzer (alexkornitzer)
Alexander Spady (alkaseltzerspadt)
Alexander Trufanov (trufanov-nok)
Alexandre Garcia (Alexandre-Garcia)
Alfredo Monclus (alfrix)
aliaspider
alphanu1
altiereslima
Alwin Garside (Yogarine)
Amiga1200Gamer (amigagamer)
amtz
Anders Storhaug (andersstorhaug)
Andre Leiradella (leiradel)
Andrés (fr500)
Andy Nguyen (TheOfficialFloW)
Anthony J. Bentley (bentley)
Antonio Jose Ramos Marquez (psxdev)
antonioginer
Apaczer
AridRayne
ArnaudFaucher
arpruss
arstn
Artem Polishchuk (tim77)
Arto Vainiolehto (arakerlu)
asavah
Ash (QuarkTheAwesome)
Ash (ashquarky)
Ashura (CoalaJoe)
Autechre (twinaphex)
Avton1
ayssia
BananaRama203
barbudreadmon
Barry Rowe (BarryJRowe)
Bartłomiej Burdukiewicz (dev-0x7C6)
Bashar Astifan (basharast)
bearoso
Ben Hamilton (Ben Gertzfield) (bhamiltoncx)
benklop
benutzer193
Bernhard Schelling (schellingb)
@@ -74,6 +83,7 @@ C.W. Betts (MaddTheSane)
Casey Borders (CaseyB)
CatGreen90
ceb33
cedorg
celerizer
Charlène (julianaito)
CheezeCake
@@ -81,11 +91,13 @@ Chris Merrett (chrisfu)
Christian Murphy (grimpunch)
christianhaitian
Christoffer Tibell (Brottweiler)
Christopher Snowhill (kode54)
chu (9chu)
Chuck Smith (chucksmith)
CidVonHighwind
clienthax
cold-brewed
Colin Kinloch (ColinKinloch)
CompCom
ComradeEcho
confusedguy9
@@ -104,7 +116,7 @@ crystalct
CTCaer
cucholix
cudencuden
Cyan (44100hertz)
CyberLabSystems
Daehan Kim (iAmGhost)
dalter
Dan Weiss (Dwedit)
@@ -120,6 +132,7 @@ David Erickson (daviderickson)
David G. F. (davidgfnet)
David Lawson (dmrlawson)
David Walters (hiddenasbestos)
dbaronica
DEX357
diablodiab
dibas
@@ -136,6 +149,7 @@ duganchen
dukemiller
duskgao
Dylan Scott (dyscott)
Dystopian
eadmaster
Eduard Strehlau (Herdinger)
ekipan
@@ -150,8 +164,9 @@ Fabio (Oibaf66)
Fabio Ritrovato (Sephiroth87)
Fayne Aldan (FayneAldan)
fff (felinben)
Filipe Azevedo (pasnox)
FIX94
Flame Sage (chris062689)
Flame Sage (flamesage)
flyinghead
FmT0
francescotintori
@@ -159,6 +174,7 @@ Francisco Javier Trujillo Mata (fjtrujy)
Francisco José García García (frangarcj)
FreeShippingParty
fuzzydunlops732 (JKoppel93)
GABO1423
Gabriel (Ghabry)
GameDragon2k
Garrett Brown (garbear)
@@ -166,11 +182,11 @@ gatecat (daveshah1)
GavinDarkglider
gblues
Geoffrey Plitt (GeoffreyPlitt)
Giovanni Cascione (spleen1981)
Glenn Hevey (hevey)
Googer
gordon-fish
gouchi
grant2258
Gregor Richards (GregorR)
Grzegorz Raciborski (graciborski)
Gui Andrade (archshift)
@@ -178,7 +194,6 @@ Guillaume Thiolliere (thiolliere)
Guo Yunhe (guoyunhe)
Gustavo Maciel Dias Vieira (gmdvieira)
gvbr
H. İbrahim Güngör (igungor)
hadess
Hans-Kristian Arntzen (Themaister)
Henri Gomez (hgomez)
@@ -194,10 +209,13 @@ HyperspaceMadness
i30817
im4potato
ImJezze
İbrahim Güngör (igungor)
Jack (jakcron)
Jacob (cubtekki)
Jacob (RegenJacob)
Jacob Patterson (jacobpa)
jacobsson (Roet-Ivar)
Jahed
Jake Stine (jstine35)
James Le Cuirot (chewi)
James Sexton (Bezier89)
@@ -217,6 +235,7 @@ Joan Coll Cerdán (johanbcn)
Job Adrian Salinas Gonzalez (efylan)
Joe Osborn (JoeOsborn)
Joel (joel16)
Joel Puig Rubio (XXLuigiMario)
Joerg Sonnenberger (jsonn)
Johannes Schickel (lordhoto)
John Parton (john-parton)
@@ -227,18 +246,22 @@ Jonathan Relf (jonathanrelf)
Joohan Lee (losernator)
Jools Wills (joolswills)
Jose Lage Miguez (Joselagem)
Joseph Carter (iKarith)
Joseph Carter (knghtbrd)
Joseph Conan Montgomery (Grotke)
jsd1982 (JamesDunne)
jSTE0
JuanVCS
Justin Jacobs (dorkster)
Justin Weiss (justinweiss)
JustMeDaFaq
Kangmo-Ahn
Karl Forshaw (karlforshaw)
Kate Eckhart (katepango)
Keith Bowes (keithbowes)
Ken Rossato (rossato)
kikmon
Kopert
krzys_h (krzys-h)
Krzysztof Haładyn (krzys_h) (krzys-h)
kurumushi
kwyxz
l3iggs
@@ -248,26 +271,29 @@ Lawrence Kesteloot (lkesteloot)
LazyBumHorse
LazyFunker
Lennard Kittner (Lennard599)
LibretroAdmin
Lionel Flandrin (simias)
littleguy77
liushuyu
Logan (loganmc10)
Logan McNaughton (loganmc10)
lordashram
Lothar Serra Mari (lotharsm)
Lubosz Sarnecki (lubosz)
lucasmr
lucianposton
lxerandrew
m4xw
mahoneyt944
Mahyar Koshkouei (deltabeard)
Mai M. (lioncash)
Mai (lioncash)
MajorPainTheCactus
maksun
Manuel Alfayate Corchete (vanfanel)
Marcelo Munhoz Pélos (mpelos)
Marcus Crisostomo (mcrisostomo)
markwkidd
Maschell
Mats (m4tsa)
Mats (Myaats)
Matt Sephton (gingerbeardman)
Matthew Bauer (matthewbauer)
Matthew Wang (asakous)
@@ -289,27 +315,32 @@ mikeOSX
minucce
misson20000
Monroe88
Morgane (Niouby)
Morgane (MorganeAD)
mprobinson
MrHuu
MrJs (mrjschulte)
mudlord
Muhamed Hobi (mmhobi7)
muzuiget
N/A (inactive123)
Nargash
Nathan S. (natinusala)
NathanStrong-Tripwire
nattycleopatra
Naveen (naveensrinivasan)
nayslayer
negativeExponent
Neil Barkhina (nbarkhina)
neil4
Nephilim (Nephil1m)
netux79
nfnty
nfp0
nia (alarixnia)
Nicolas Adenis-Lamarre (nadenislamarre)
Nicolas Guillaumin (nguillaumin)
Nicolas Roehm (NicolasRoehm)
Nik (WerWolv)
Nikita Vakhrushev (XF10C)
Nikola Kocić (nikola-kocic)
Nikos Chantziaras (realnc)
@@ -321,7 +352,9 @@ notaz
nstCactus
nurupo
Oggom
Oh Won Sik (dnjstlr555)
Oleg Shevchenko (olsh)
Omar Saleem (ofsaleem)
opendata26
Ophidon
orbea
@@ -335,22 +368,28 @@ Paul McCarty (notabeatle)
pcjco
Pedro Ferraz (ferrazpedro)
Pedro Ribeiro (pedrib)
Peter J Kos (pkos)
Philippe Simons (loki666)
pinumbernumber
Piotr Dobrowolski (Informatic)
pjft
Poligraf
pponso1
pyroesp
R-YaTian
Rafael Toledo (rafaeltoledo)
Ramiro Morales (ramiro)
Raphaël Zumer (rzumer)
redenvelope2000
Reid Kleckner (rnk)
repojohnray
retrotails
revvv
reztek
Richard Howell (rmaz)
Rinnegatamante
rlnilsen
Rob Loach (RobLoach)
Roberto V. Rampim (Cthulhu)
Robin de Rooij (rrooij)
Romain Gay (vikbez)
Romain Graillot (notnotme)
@@ -359,20 +398,27 @@ Roman Fomin (rfomin)
Roman Kalashnikov (lunixoid)
Royerson
rsn8887
Ruben Nine (rnine)
Ryan C. Gordon (icculus)
Ryan Kuba (thelamer)
Ryunam
rz5
Sage (neonfuz)
Saggi Mizrahi (ficoos)
SAKUJ0
Salvador (salvacam)
Sam (44100hertz)
Sam Lantinga (slouken)
Sam Stenvall (Jalle19)
Samuel P. (p-sam)
Sanaki
Scheiker
Sean O'Neil (seanocali)
Sebastien Ronsse (sronsse)
SecularSteve
Sefa Eyeoglu (Scrumplex)
Sergei Nikitin (Kert)
Sergei Trofimovich (trofi)
Sergi Granell (xerpi)
Sergio Padrino (sergiou87)
sergio-br2 (sergiobenrocha2)
@@ -387,19 +433,23 @@ SindenLightgun
Sirrempat
slotek
Soar Qin (soarqin)
sonninnos
Sou Bunnbu (iyzsong)
sparklewind
spec-chum
Stefan (gizmo98)
stefan-gr
stellarporter
Stephanie Gawroriski (XerTheSquirrel)
Steve Cox (stevenjamescox)
Stevoisiak
stoofin
StormedBubbles
strotlog
Stuart Carnie (stuartcarnie)
Sunguk Lee (d3m3vilurr)
Supernature2k
Sven (RetroSven)
Swingflip
Swizzy
Sylvain Colinet (Skarsnik)
Szunti
@@ -410,34 +460,38 @@ thedax
theheroGAC
TheMrIron2
ThePhxRises
TheRhysWyrill
Thomas Lorblanchès (Zlika)
Tilman M. Jaeschke (asciibeats)
Tim Van den Langenbergh (tmtvl)
Tobias Gruetzmacher (TobiX)
Tobias Jakobi (tobiasjakobi)
Todd Laney (ToddLa)
Tomáš Kelemen (ToKe79)
Tony (sonninnos)
Tor Arne Vestbø (torarnv)
Torsten Paul (t-paul)
toshixm
TotalCaesar659
tr12345
TroggleMonkey
tunip3
txorion
Tyler Loch (TylerLoch)
unrelentingtech
URBANsUNITED
vaguerant
Val Packett (valpackett)
Valerio Proietti (kamicane)
vgmoose
Vicki Pfau (endrift)
Vicky C Lau (vickychenglau)
vin (suseme)
Vincent Pelletier (vpelletier)
Vladimir Panteleev (CyberShadow)
Vladimir Serbinenko (phcoder)
Víctor "IlDucci" (IlDucci)
waitingmoon
Warning: Non-Potable Water (warningnonpotablewater)
webgeek1234
Weedy Weed Smoker (WeedyWeedSmoker)
WerWolv
whorsemaster
Wiimpathy
Wiktor Strzębała (wiktorek140)
+350
View File
@@ -1,5 +1,355 @@
# Future
# 1.13.0
- 3DS: Remove debug button combo to shutdown RA
- 3DS: Remove MaterialUI as per MrHuu recommendation
- ANDROID: Enable 'Vibrate On Key Press' by default
- ANDROID: Turn 'Threaded Video' off by default
- CHEEVOS: Upgrade to rcheevos 10.5
- COMPILATION: Fixed compiling with --disable-menu
- CONFIG: Don't show override notification with appendconfig alone
- DATABASE/PLAYLISTS: Playlist + database changes - Cleanup 'entry_slot', fallback label + logging
- FRONTEND: Fix default remaps folder for various cores: remap should …
…be nested in config folder
- HOTKEYS: Fix shader toggle and add hotkey + sublabel
- HOTKEYS: Cleanups and corrections - Keep hotkey pause and menu pause separate in order to not trigger unwanted pause when toggling menu regardless if menu will pause or not
- HOTKEYS: Cleanups and corrections - Allow unpausing with Start (makes resuming more convenient after controller disconnect if menu does not pause)
- IOS13+: Pointer movement accuracy. iPad Trackpad Pointer Movement Accuracy through absolute location (for iOS 13.4 and above)
- IOS13+: Adds iPad Trackpad Support to iOS13 Project (for iOS 13.4 and above)
- INPUT: Addition to analog stick menu navigation
- INPUT: Fixed the way devices were previously indexed. Input devices were only being indexed in order and would stop at the first time an input has no device connected to it. The problem is when a device gets disconnected, that input will have no devices connected to it, but the next input may still have a device connected. So, that makes changing the port of the currently connected devices impossible.
- INPUT/AUTOCONFIG: Add option for pause on controller disconnect
- INPUT/AUTOCONFIG: Driver independent disconnection notification. Should show disconnect notification now properly on Windows with XInput and/or DirectInput pads
- INPUT/HID: Added usb hid controllers for the famous ZeroDelay encoder and also for "Kade: Kick Ass Dynamic Encoder" to be able to use some custom arcade sticks.
- INPUT/OVERLAY: Add eightway area types. The playlist supports UTF8, but edit control replaces the extended character with #. The following code enables extended character input in Netplay Chatting, Search, and Rename titles.
- INPUT/OVERLAY: Fix overlay next_index for unnamed targets
- LOCALIZATION: Updates
- LOCALIZATION: Add Hungarian language option
- MENU: Thumbnail fullscreen toggle behavior correction
- MENU: Consistent left-right scrolling for Quick Menu items
- MENU: Remove useless sublabel from System Information
- MENU: Improve widget appearance with missing assets
- MENU/INPUT: Add option for swapping menu scrolling buttons
- MENU/QT/WIMP: Remove SSL/TLS check at startup
- MENU/OZONE: Show metadata helper in footer only with second thumbnail
- MENU/OZONE: Footer improvements - Add "Cycle thumbnails" helper when suitable
- MENU/OZONE: Footer improvements - Show "Search" helper only when search function is enabled
- MENU/OZONE: Footer improvements - Fix "Thumbnails available" helper for save states
- MENU/OZONE: Footer improvements - Tighten padding between icon and title, and widen between helpers
- MENU/OZONE: Remember selection per main tabs
- MENU/OZONE: Remove incomplete assets warning
- MENU/OZONE: Add option to adjust cursor memory when changing menu tabs
- MENU/OZONE: Further extend texture support for Core Option categories
- MENU/XMB: Remove incomplete assets warning
- MENU/XMB: Add truncate playlist name option
- MENU/XMB: Improve background image selector
- MENU/XMB: Add option to adjust cursor memory when changing menu tabs
- MENU/XMB: Further extend texture support for Core Option categories
- MENU/MATERIALUI: Remove incomplete assets warning
- OSX: Fixed Z/X keys not working on the macOS port
- OSX: Fixed RETROK_LMETA not working on macOS port. The RETROK_LMETA key was not defined in the rarch_key_map_apple_hid
- OSX: Fix broken fullscreen mode in macOS Ventura
- OVERLAYS: Ignore hitboxes with zero area. I.e. Set 'reach_x' or 'reach_y' to zero to ensure no hitbox math is done. This simplifies designating animation-only descriptors (e.g. for eightway areas) or obsolete descriptors.
- OVERLAYS: Add 'reach' and 'exclusive' for hitboxes. Allows stretching hitboxes and handling their overlap.
- PS2: Fix Error saving remaps and runtime logs
- PS3: Fix Core Remap Overwrite Fail
- QB: Don't fail if OSDependent/OGLCompiler libraries are not present
- SCANNER/PS1: Improved scanning of PS1 discs
- SCANNER/PS2: Added serial scanning of PS2 discs - should now scan DVDs and other discs which were previously missed
- THUMBNAIL: If you rename title, you cannot use the thumbnail image. because the thumbnail filename and the title must be the same.
If there is no thumbnail with title, find the thumbnail image with rom-name. This has nothing to do with IME.
- THREADED VIDEO/GLCORE: Fix regression 'Shader presets dont load, when video driver is set to glcore'
- VULKAN: Fix HDR inverse tonemapping
# 1.12.0
- CONFIG/CLI: Allow use of --appendconfig with override cfgs instead of getting ignored
- CONFIG/LOGGING: No more console startup logging if logging to file
- CONFIG: Saves config on exit only once instead of (worst case scenario) 3 times
- DATABASE/EXPLORE/VIEW: Add View feature - Add saving of a filter set in the Explore menu into a so called "View" file which then gets listed alongside playlists. This also adds the ability to filter a category by range in the Explore menu and not just filter on exact matches.
- FILEBROWSER: Fix regression - certain extensions keep disappearing
- IOS: New modern iOS version (targeting iOS 13 and up), leverages Swift
- IOS: Fixes to iOS toolbar
- IOS16: Add iOS 16 lock screen widget
- IOS13+: Added emulator keyboard
- IOS13+: Add JIT support for non-jailbroken devices
- IOS13+: Added support for touch mouse handler
- IOS13+: Changed click-and-drag behavior to double tap hold and drag
- INPUT/HAPTIC/OVERLAYS/ANDROID: Improve haptic feedback for input overlays
- LINUX/MALI FBDEV: Add conditional support for OpenGL ES 3.x
- LOCALIZATION: Updates
- LOCALIZATION/ENGLISH: Add British English language option
- LOGGING/QT: Increase log buffer to 2048 characters - Vulkan validation layer
messages output correctly now.
- MENU/XMB: Remember selection per main tabs. Addresses the following : collection playlists can contain hundreds or thousands of items. When scrolling through one, pressing left or right by accident can be common. This resets the playlist to the top
- MIST/STEAM/STEAMDECK: Don't expose Black Frame Insertion (BFI) if we are running on a Steam Deck
- NETWORKING/WINDOWS: Disable poll support for MSVC 2010 and earlier. WSAPoll is not supported on Windows XP and earlier.
- NETWORKING/WIIU: Fix socket_connect_with_timeout for WIIU
- NETWORKING/WIIU: Fixes RetroAchievements login
- NETWORKING/WIIU: Fixes other online updater functionality
- SAVESTATES/NOTIFICATIONS: Add delay to savestate notifications, so that GPU savestate screenshots stay untouched
- SAVESTATES/SCREENSHOTS: Avoid 'video_gpu_screenshot' with savestates. Allow GPU screenshots with savestates only when there is no other way of getting a screenshot.
- SCREENSHOTS/VULKAN: Unload screenshot widget texture early. Fixes Vulkan crash when closing content while a screenshot widget is still on-screen
- SCREENSHOTS/VULKAN: Fix screenshot widget crash when ticker animating
- WAYLAND: Set correct app ID
- WIIU: Add some missing default directories
- WIIU: Get mkdir working on WiiU (directory creation)
# 1.11.1
- GENERAL: Fix DEFAULT_FILL_TITLE_MACRO
- NETWORKING: Add the const qualifier to some function parameters
- NETWORKING/NETPLAY/UPNP: Add a private or CGNAT address warning to UPnP
- SAVESTATES/SCREENSHOTS: Avoid 'video_gpu_screenshot' with savestates
- UWP: Better 'Save on quit' fix
# 1.11.0
- 3DS: Add unique ID's
- 3DS: Add bottom menu options
- 3DS: Set bottom_asset directory default
- 3DS: Only enable internal counter with CONSOLE_LOG defined
- 3DS: Set default bottom font values
- 3DS: Fix CIA installation issues
- 3DS: Support latest libctru
- ANDROID: Add HAVE_ACCESSIBILITY
- ANDROID: Gingerbread support
- ANDROID: Touchpads support
- ANDROID: Builtin Xperia Play autoconfig profile
- ANDROID: Disable Feral GameMode for Android - only available on Linux
- ANDROID: Add a configurable workaround for Android reconnecting devices
- ANDROID/FDROID: Add F-Droid metadata to repo in Fastlane format
- AUDIO/AUDIO MIXER: Add missing locks for thread safety
- AUDIO/AUDIO MIXER: Fix audio mixer memory leak + remove redundant 'single threaded' rthreads implementation
- AUTOSAVE: Change/improve exit behavior of autosave thread - if condition variable is signaled, the loop is ran another last time so we can do a final check/save before stopping the thread.
- CDROM: Fix memory leak caught with asan - buf passed to filestream_read_file
- CORE INFO/NETPLAY: Ensure current core info is initialized at runloop_event_init_core when netplay is enabled
- CHEEVOS: Upgrade to rcheevos 10.4
- CHEEVOS: Allow creating auto savestate in hardcore
- CHEEVOS: prevent invalid memory reference if game has achievements but core doesn't expose memory
- CHEEVOS: Release achievement badge textures when video driver is deinitialized
- CHEEVOS: Re-enforce hardcore limitations once achievements are loade
- CHEEVOS/MENU/MATERIALUI: Show achievement badge icons in MaterialUI driver
- D3D9: D3D9 has been split up into two drivers - D3D9 HLSL (max compatibility, no shader support yet) and D3D9 Cg (dependent on deprecated Nvidia Cg runtime library)
- D3D9/HLSL/XMB: XMB fix
- D3D9/CG: D3D9 Cg driver fixed
- D3D11: Fix overlay not showing up
- D3D11/12: Reduce lag with WaitForVBlank - this rather simple addition seems to make D3D11/12 very very close to Vulkan/GLCore regarding input lag.
- D3D11/12: Add waitable swapchains and max frame latency option
- D3D11/12: Make waitable swapchains optional
- DATABASE: Reformat 'rdb_entry_int' - Nitpick adjustments for database entries: Capitalize "Release Date", and remove space before : from Release Date rows which use integer
- DATABASE/EXPLORE: Allow On-Demand Thumbnails in Explore menu
- DATABASE/EXPLORE/MENU/OZONE/XMB/RGUI: Explore menu thumbnails
- DISC CONTROL: Better Disc Control append focus
- DOS/DJGPP: Add a workaround for libc bug
- AUTOMATIC FRAME DELAY: Added slowmotion resiliency
- AUTOMATIC FRAME DELAY: Added string representation for seeing the current effective delay without opening statistics
- AUTOMATIC FRAME DELAY: Added "ms" to logging and "(ms)" to label just like in Audio Latency
- GENERAL: Don't bake in OpenAL and libcaca by default unless explicitly enabled with configure switch.
- GENERAL: Reduce amount of strlen calls
- GENERAL: Reduce or simply sin/cosf calls
- GFX: Fix readability and precision issues in aspectratio_lut
- GFX: Add option to manually enable/disable automatic refresh rate switching
- GFX: Enable automatic configuration of 'VSync Swap Interval'
- GFX/FONT/FREETYPE: Use FT_New_Memory_Face - first read it from file to memory beforehand -
this solves an asset extraction issue when selecting 'Update Assets' - apparently FT_New_Face keeps an open file handle to the font file which
prevents it from being overwritten/deleted while the program is still running.
- GFX/THUMBNAILS: Thumbnail aspect ratio fix
- GFX/THREADED VIDEO: Optimizations, fixes and cleanups
- GFX/VIDEO FILTERS: Add Upscale_240x160-320x240 video filter with 'mixed' method
- GLSLANG: Fix compilation with ./configure --disable-builtinglslang - was missing linking against -lMachineIndependent and -lGenericCodeGen static libs
- INPUT: Fix off by one error for input_block_timeout setting. Also default to 0 for this setting (pretty massive performance gain)
- INPUT: Analog button mapping fixes
- INPUT/HID/OSX: Fix DualShock3 support
- INPUT/HID/LINUX: (qb) Disable HAVE_HID by default for now for Linux as long as there are no working backends for both
- INPUT/HID/WINDOWS: (qb) Disable HAVE_HID by default for now for Windows as long as there are no working backends for both
- INPUT/HID/WIIU: Fix DualShock3 support
- INPUT/OVERLAY: Block pointer input when overlay is pressed
- INPUT/REMAPPING: input_remapping_save_file - existing remapping file was needlessly reloaded
- INPUT/REMAPPING: Add option to disable automatic saving of input remap files
- INPUT/LINUX/UDEV: Fix lightgun scaling on Y axis
- INPUT/LINUX/X11/LED: Add LED keyboard driver
- INPUT/WINDOWS/LED: LED keyboard driver cleanup
- INPUT/WINDOWS/WINRAW: Clear key states when unfocused
- INPUT/WINDOWS/WINRAW: Fix pointer device position
- IOS: iOS app icon fixes & revisions
- LIBRETRO/SAVESTATES: Implement an api call for context awareness
- LOCALIZATION: Updates
- LOCALIZATION: Add Catalan language option
- LOCALIZATION: Fix some bad localization
- LINUX: Make memfd_create call more backwards compatible by calling it through syscall - on older systems, you'll have to include linux/memfd.h for the MFD_ defines, and call memfd_create() via the the syscall(2) wrapper (and include unistd.h and sys/syscall.h for it work). We exclude linux/memfd.h header include because we already provide the MFD_ defines in case they are missing
- LINUX/MALI FBDEV: Fix assertion failed on video threaded switch
- MENU: Menu paging navigation adjustments
- MENU: New Menu Items for disabling Info & Search buttons in the menu
- MENU: Allow the user to use volume up/down/mute hotkeys from within the menu
- MENU: Add missing sublabels for non-running Quick Menu
- MENU: Reorganize Quick Menu Information
- MENU: Savestate thumbnails - Savestate slot reset action
- MENU: Allow changing savestate slots with left/right on save/load
- MENU: Add 'Ago' to playlist last played styles
- MENU: Add proper icons for shader items
- MENU/MATERIALUI: Add icon for 'Download Thumbnails'
- MENU/XMB: Add options for hiding header and horizontal title margin
- MENU/XMB: Dynamic wallpaper fixes
- MENU/XMB: Add Daite XMB Icon Theme
- MENU/XMB/OZONE: Savestate thumbnail aspect ratio
- MENU/XMB/OZONE: Core option category icon refinements
- MENU/XMB/OZONE: Fullscreen thumbnail browsing
- MENU/XMB/OZONE: Add playlist icons under 'Load Content'
- MENU/XMB/OZONE: Thumbnail improvements
- MENU/XMB/OZONE: Savestate thumbnail fullscreen + dropdown
- MENU/XMB/OZONE: Prevent unnecessary thumbnail requests when scrolling through playlists
- MENU/OZONE: Fix playlist thumbnail mouse hover after returning from Quick Menu
- MENU/OZONE: Thumbnail visibility corrections
- MENU/OZONE: Playlist metadata reformat
- MENU/OZONE: Savestate thumbnail fixes
- MENU/OZONE: Add savestate thumbnails
- MENU/OZONE: Header icon spacing adjustment
- MENU/RGUI: Savestate thumbnails
- MENU/SETTINGS: Turn Advanced Settings on by default, this entire filtering of settings will need a complete rethink anyways
- MENU/WIDGETS: Widget color + position adjustments
- MIYOO: Exclude unused HAVE_HID for Miyoo
- MIYOO: Enable screenshots
- MIYOO: Enable rewind
- NETWORK: Allow MITM server selection on OK callback
- NETWORK: Replace socket_select calls
- NETWORK: Implement binary network streams
- NETWORK: Poll support
- NETWORK: Check connect errno for successful connection
- NETWORK: Get rid of the timeout_enable parameter for socket_connect
- NETWORK: Fix getnameinfo_retro's port value for HAVE_SOCKET_LEGACY platforms
- NETWORK: Define inet_ntop and inet_pton for older Windows versions
- NETWORK: Define isinprogress function
- NETWORK/NATT: Move natt files to "network"
- NETWORK/NETWORK STREAMS: Add function netstream_eof
- NETWORK/NETPLAY: Fix game CRC parsing
- NETWORK/NETPLAY: Disable and hide stateless mode
- NETWORK/NETPLAY: Change default for input sharing to "no sharing"
- NETWORK/NETPLAY: Enforce a timeout during connection
- NETWORK/NETPLAY: Disallow clients from loading states and resetting
- NETWORK/NETPLAY: Special saves directory for client
- NETWORK/NETPLAY: Ensure current content is reloaded before joining a host
- NETWORK/NETPLAY: Fix client info devices index
- NETWORK/NETPLAY: Fix input for some cores when hosting
- NETWORK/NETPLAY: Memory leak fixes
- NETWORK/NETPLAY: Force a core update when starting netplay
- NETWORK/NETPLAY: Fix NAT traversal announce for HAVE_SOCKET_LEGACY platforms
- NETWORK/NETPLAY: Refactor fork arguments
- NETWORK/NETPLAY: Fix content reload deadlocks on static core platforms
- NETWORK/NETPLAY: Disallow netplay start when content is not loaded for static core platforms
- NETWORK/NETPLAY: Show client slowdown information
- NETWORK/NETPLAY: Improve check frames menu entry
- NETWORK/NETPLAY: Do not try to receive new data if the data is in the buffer
- NETWORK/NETPLAY: Copy data on receive, even if the buffer is full
- NETWORK/NETPLAY: Fix lobby sublabel CRC display on some platforms
- NETWORK/NETPLAY: Support for customizing chat colors
- NETWORK/NETPLAY: Small launch compatibility patch adjustments
- NETWORK/NETPLAY: Support for banning clients
- NETWORK/NETPLAY: Minor tweaks to the find content task
- NETWORK/NETPLAY: Support for gathering client info and kicking
- NETWORK/NETPLAY: Fix possible deadlock
- NETWORK/NETPLAY: Initialize client's allow_pausing to true
- NETWORK/NETPLAY: Disable netplay for unsupported cores - with stateless mode being disabled for now, there is no reason not to include this. Refuse to initialize netplay when the current core is not supported (no proper savestates support)
- NETWORK/NETPLAY/DISCOVERY: Ensure fixed width ints on packet struct
- NETWORK/NETPLAY/DISCOVERY: Support for IPv4 tunneling (6to4)
- NETWORK/NETPLAY/DISCOVERY/TASKS: Netplay/LAN Discovery Task refactor - aims to prevent blocking the main thread while awaiting for the LAN discovery timeout; This is accomplished by moving the whole discovery functionality into its task and using a non-blocking timer to finish the task. Also fixes discovery sockets not being made non-blocking, which could cause the main thread to hang for very long periods of time every pre-frame.
- NETWORK/NETPLAY/TASKS: Find content task refactor - fixes many issues along the way, including a couple of nasty memory leaks that would leak thousands of bytes each time the task ran. It also expands the original concept by matching currently run content by filename (CRC matching is always performed first though).
- NETWORK/NETPLAY/TASKS: Find content task refactor - Ensure CRC32 is 8 characters long
- NETWORK/NETPLAY/LOBBY: Add setting for filtering out rooms with non-installed cores
- NETWORK/NETPLAY/LOBBY: Hide older (incompatible) rooms
- NETWORK/NETPLAY/LOBBY: Add a toggleable filter for passworded rooms. In addition, move lobby filters into its own submenu for better organization.
- NETWORK/NETPLAY/MENU: Chat supported info for the host kick submenu
- NETWORK/NETPLAY/MENU: Localize relay servers
- NETWORK/NETPLAY/MENU: Host Ban Submenu
- NETWORK/NETPLAY/MENU: Add client devices info to the kick sub-menu
- NETWORK/NETPLAY/MENU: Path: Netplay -> Host -> Kick Client - Allows the host to kick clients. Allows the host to view client information: connected clients (names), status (playing/spectating) and ping.
- NETWORK/NETPLAY/VITA: Add net_ifinfo support
- NETWORK/NETPLAY/VITA: Enable partial LAN discovery
- NETWORK/NETPLAY/VITA: Change default UDP port to 19492
- NETWORK/NETPLAY/VITA: Do not multiply negative timeout values
- NETWORK/NETPLAY/VITA: Fix epoll's timeout parameter
- NETWORK/NETPLAY/VITA: Launch compatibility patch
- NETWORK/NETPLAY/3DS: Launch compatibility patch
- NETWORK/NETPLAY/3DS: Adapt POLL for 3DS platform
- NETWORK/NETPLAY/PS3: Launch compatibility patch
- NETWORK/NETPLAY/WII: Enable net_ifinfo for some features. In practice, this only allows the netplay's UPnP task to succeed on the Wii.
- NETWORK/NETPLAY/WIIU: Launch compatibility patch
- NETWORK/NETPLAY/SWITCH: Launch compatibility patch
- NETWORK/UPNP: Attempt support for remaining platforms
- NETWORK/UPNP: Support for IPv4 tunneling
- ODROID GO2: Increase DEFAULT_MAX_PADS to 8 for ODROIDGO2, since that impacts the RG351[X] consoles. The RG351[X] have a USB host controller and can have an arbitrary number of USB gamepads.
- ONLINE UPDATER: Online Updater menu reorganizing
- OSX: Fixed items of system top menu bar on macOS
- OSX: Revision to macOS app icon set
- PLAYLISTS: Ensure history list will contain CRC32
- PLAYLISTS: Fix CRC32 comparison - as state->content_crc has "|crc" suffix.
- PS4/ORBIS: Orbis/PS4 Support using OrbisDev toolchain
- PS4/ORBIS: Update xxHash dependecy
- PS4/ORBIS: Shader cache
- RETROFW: Exclude unused HAVE_HID for RetroFW
- RETROFW: Support battery indicator on RetroFW
- RETROFW: Enable menu toggle button on retrofw devices
- SHADERS: Shader Preset Loading of Multiple additional #references lines for settings
- SHADERS: Shader Load Extra Parameter Reference Files - this adds the ability to put additional #reference lines inside shader presets which will load additional settings. The first reference in the preset still needs to point at a chain of presets which ends with a shader chain, and subsequent #reference lines will load presets which only have parameter values adjustment. This allows presets to be made with a modular selection of settings. For example with the Mega Bezel one additional reference could point at a preset which contained settings for Night mode vs Day mode, and another reference could point to a preset which contained settings for how much the screen should be zoomed in.
- SHADERS/MENU: Increase shader scale max value
- SCANNER/DC: Fix Redump bin/cue scan for some DC games
- SCANNER/GC/WII: Add RVZ/WIA scan support for GC/Wii
- SCANNER/PS1: Improved success rate of Serial scanning on PS1 by adding support for the xx.xxx format
- SCANNER/PS1: Changed return value of detect_ps1_game function to actuially return a failure when the Serial couldn't be extracted. Scanner will then fallback on crc check, and usually ends up finding the games in the database.
- SWITCH: Enable RWAV (WAV audio file) support
- STRING: Do not assume char is unsigned
- TASKS: More thread-awareness in task callbacks
- TASKS: Fix race condition at task_queue_wait
- TVOS: Revised tvOS icons w/ updated alien.
- VFS: Fix various VFS / file stream issues
- VULKAN: Fix more validation errors
- VULKAN: Attempt to fix validation errors with HDR swapchain. Always use final render pass type equal to swapchain format. Use more direct logic to expose if filter chain emits HDR10 color space or not
- VULKAN/ANDROID: Honor SUBOPTIMAL on non-Android since you'd want to recreate swapchains then. On Android it can be promoted to SUCCESS.
SUBOPTIMAL_KHR can happen there when rotation (pre-rotate) is wrong.
- VULKAN/DEBUG: Automatically mark buffer/images/memory with names
- VULKAN/DEBUG: Move over to VK_EXT_debug_utils. Debug marker is deprecated years ago.
- VULKAN/HDR: Fix leak of HDR UBO buffer
- VULKAN/BFI: Fix BFI (Black Frame Insertion) regression
- WINDOWS: Fix exclusive fullscreen video refresh rate when vsync swap interval is not equal to one - refresh rate in exclusive fullscreen mode was being incorrectly multiplied by vsync swap interval, breaking swap interval functionality at the gfx driver level
- WIN32: Do optimization for Windows where we only update the title with SetWindowText when the previous title differs from the current title
- WIN32: Skip console attach when logging to file
- WIN32: Remove black margins with borderless non-fullscreen window
- WIN32/TASKBAR: Release ITaskbarList3 on failed HrInit - pointer wasn't NULL'd, thus set_window_progress would cause weird behavior
- WII/GX: Fix potential datarace
- WIIU: Implement sysconf and __clear_cache
- WIIU: Add OS memory mapping imports
- UWP: Added launch protocol arg 'forceExit' so a frontend can tell an already-running RetroArch UWP instance to quit.
- UWP: Enable core downloader/updater
- UWP: Remove copy permissions as its inefficient as we can just directly assign the new ACL and that works
- Xbox/UWP: Remove expandedResources
- Xbox/UWP: UWP OnSuspending crash fix
- Xbox/UWP: Enable savestate file compression by default for UWP/Xbox - got told there are no more issues with it
- Xbox/UWP: Add support for 4k to angle on xbox for MSVC2017 build
# 1.10.3
- ANDROID: Decouple Play Core dependency to bring app into compliance for F-Droid
- ANDROID: Allow audio playback capture on android
- AI/SERVICE: Disable AI Service setting by default
- BLUETOOTH/LAKKA: bluetoothctl: add / modify pairing steps
- CHEEVOS: Disallow manual frame delay setting in Hardcore Mode
- DATABASE: Serial scanning for Wii now includes WBFS
- INPUT: Allow proper descriptor declaration for analog triggers
- INPUT/MAPPING: Fix offset + crash when clearing input port binds
- INPUT/MAPPING: Fix saving of 'Analog to Digital Type' when configuration overrides are used
- INPUT/MAPPING: Fix saving of 'Analog to Digital Type' when configuration overrides are used
- LOCALIZATION: Add Valencian language option
- LOCALIZATION: Updates
- MENU/SETTINGS: Move 'Show Menu Bar' under 'Windowed Mode' settings
- MENU/SETTINGS: Add sublabels for 'Subsystems' and 'Input Deadzone/Sensitivity'
- MENU/SETTINGS: Move 'On-Screen Notifications' to top
- MENU/XMB: Unified the shadow alpha value to a slightly darker one for better readability
- MENU/XMB: Corrected the option label and sublabel for actual behavior
- MIYOO: Enable ALSA audio driver and default to it
- PSP: Take out extra languages/localization, adds about 4/5MB to the binary, and RAM is limited on PSP (32MB and 64MB RAM models)
- STATIC PLATFORMS: Populate all history list metadata when launching content from playlists
- STEAM: Introduce Steam Rich Presence
- VIDEO: Fast-Forward Frameskip improvement
- VIDEO/THREADED: Stability fixes
- WINDOWS/WINRAW: Fix multiple light guns
- WIIU: Fix USB get_device_name(), don't truncate to three chars
# 1.10.2
- 3DS: Add a menu toggle for switching between old and new 3DS speeds, located in the 'Power Management' menu. Enabled by default, hidden on old 3DS devices.
- AUDIO/MIXER: Free audio voices properly
+12 -1
View File
@@ -1,3 +1,6 @@
Refer also to this page for more information -
https://docs.libretro.com/development/coding-standards/
Struct ordering
---------------
@@ -24,7 +27,7 @@ For POD-types, try to order structs as follows (first to last):
* enum (4 bytes)
* int16_t (2 bytes)
* char (1 byte)
* bool (1 byte)
* bool (1 byte)
[1] PS3 uses 4 byte pointers despite having a 64bit processor
@@ -107,3 +110,11 @@ VLA (Variable Length Array)
---------------------------
Do not use VLAs (Variable Length Array) in C source files. These are not
C89-compliant.
Miscellaneous
-------------
- Brace usage follows "Allman style". The brace associated with a control statement is placed on the following line,
indented to the same level as the control statement.
Statements within the braces are indented to the next level.
- A single statement block must not include brackets (unless the block uses a macro that expands into multiple lines)
- If possible, avoid 'while (true)' and use 'for (;;)' instead
+43 -25
View File
@@ -273,6 +273,7 @@ endif
OBJ += \
$(LIBRETRO_COMM_DIR)/compat/fopen_utf8.o \
$(LIBRETRO_COMM_DIR)/compat/compat_strldup.o \
$(LIBRETRO_COMM_DIR)/lists/file_list.o \
$(LIBRETRO_COMM_DIR)/lists/dir_list.o \
$(LIBRETRO_COMM_DIR)/file/retro_dirent.o \
@@ -281,6 +282,7 @@ OBJ += \
$(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)/streams/network_stream.o \
$(LIBRETRO_COMM_DIR)/vfs/vfs_implementation.o
OBJ += \
@@ -306,10 +308,6 @@ else ifneq ($(findstring Darwin,$(OS)),)
OBJ += $(LIBRETRO_COMM_DIR)/file/nbio/nbio_unixmmap.o
endif
ifeq ($(TARGET), retroarch_orbis)
OBJ += $(LIBRETRO_COMM_DIR)/file/nbio/nbio_orbis.o
endif
OBJ += \
$(LIBRETRO_COMM_DIR)/file/nbio/nbio_intf.o \
$(LIBRETRO_COMM_DIR)/file/file_path.o \
@@ -474,7 +472,11 @@ ifeq ($(HAVE_LANGEXTRA), 1)
intl/msg_hash_id.o \
intl/msg_hash_sv.o \
intl/msg_hash_uk.o \
intl/msg_hash_cs.o
intl/msg_hash_cs.o \
intl/msg_hash_val.o \
intl/msg_hash_ca.o \
intl/msg_hash_en.o \
intl/msg_hash_hu.o
endif
ifneq ($(HAVE_GETOPT_LONG), 1)
@@ -534,17 +536,10 @@ ifeq ($(HAVE_QT), 1)
MOC_HEADERS += ui/drivers/ui_qt.h \
ui/drivers/qt/ui_qt_load_core_window.h \
ui/drivers/qt/gridview.h \
ui/drivers/qt/coreoptionsdialog.h \
ui/drivers/qt/filedropwidget.h \
ui/drivers/qt/coreinfodialog.h \
ui/drivers/qt/playlistentrydialog.h \
ui/drivers/qt/viewoptionsdialog.h
ui/drivers/qt/qt_dialogs.h \
ui/drivers/qt/qt_widgets.h
ifeq ($(HAVE_MENU), 1)
ifeq ($(HAVE_SHADERS_COMMON), 1)
MOC_HEADERS += ui/drivers/qt/shaderparamsdialog.h
endif
MOC_HEADERS += ui/drivers/qt/settingswidgets.h \
ui/drivers/qt/qt_options.h
MOC_HEADERS += ui/drivers/qt/qt_options.h
endif
DEFINES += -DHAVE_MAIN
@@ -877,8 +872,10 @@ ifeq ($(HAVE_ALSA), 1)
endif
endif
ifeq ($(HAVE_THREADS), 1)
OBJ += audio/drivers/alsathread.o
ifneq ($(MIYOO), 1)
ifeq ($(HAVE_THREADS), 1)
OBJ += audio/drivers/alsathread.o
endif
endif
LIBS += $(ALSA_LIBS)
@@ -976,6 +973,7 @@ OBJ += $(LIBRETRO_COMM_DIR)/audio/conversion/s16_to_float.o \
$(LIBRETRO_COMM_DIR)/audio/conversion/float_to_s16.o
ifeq ($(HAVE_RWAV), 1)
DEFINES += -DHAVE_RWAV
OBJ += $(LIBRETRO_COMM_DIR)/formats/wav/rwav.o
endif
@@ -1385,6 +1383,8 @@ ifeq ($(HAVE_HID), 1)
input/connect/connect_nesusb.o \
input/connect/connect_snesusb.o \
input/connect/connect_wiiupro.o \
input/connect/connect_kade.o \
input/connect/connect_zerodelay_dragonrise.o \
input/connect/connect_wiiugca.o
endif
@@ -1739,7 +1739,8 @@ ifeq ($(HAVE_D3D9), 1)
OBJ += gfx/drivers_font/d3d_w32_font.o
ifeq ($(HAVE_CG), 1)
LIBS += -lcgD3D9
OBJ += gfx/drivers_renderchain/d3d9_cg_renderchain.o
OBJ += gfx/drivers/d3d9cg.o
OBJ += gfx/drivers_display/gfx_display_d3d9cg.o
endif
endif
@@ -1809,9 +1810,7 @@ endif
ifeq ($(HAVE_D3D9), 1)
DEFINES += -DHAVE_D3D9
OBJ += gfx/drivers/d3d9.o
OBJ += gfx/common/d3d9_common.o
OBJ += gfx/drivers_display/gfx_display_d3d9.o
endif
ifeq ($(HAVE_D3D_COMMON), 1)
@@ -1832,7 +1831,8 @@ endif
ifeq ($(HAVE_HLSL),1)
DEFINES += -DHAVE_HLSL
OBJ += gfx/drivers_renderchain/d3d9_hlsl_renderchain.o
OBJ += gfx/drivers/d3d9hlsl.o
OBJ += gfx/drivers_display/gfx_display_d3d9hlsl.o
endif
ifeq ($(HAVE_SLANG),1)
@@ -1877,7 +1877,6 @@ ifeq ($(HAVE_BUILTINGLSLANG), 1)
$(wildcard $(DEPS_DIR)/glslang/glslang/glslang/MachineIndependent/*.cpp) \
$(wildcard $(DEPS_DIR)/glslang/glslang/glslang/MachineIndependent/preprocessor/*.cpp) \
$(DEPS_DIR)/glslang/glslang/glslang/OSDependent/$(GLSLANG_PLATFORM)/ossource.cpp
ifneq ($(findstring Win32,$(OS)),)
DEFINES += -DENABLE_HLSL
GLSLANG_SOURCES += $(wildcard $(DEPS_DIR)/glslang/glslang/hlsl/*.cpp)
@@ -1888,6 +1887,8 @@ else ifeq ($(HAVE_GLSLANG),1)
# The order of these libs are somewhat specific
LIBS += $(GLSLANG_LIBS) \
$(GLSLANG_MACHINEINDEPENDENT_LIBS) \
$(GLSLANG_GENERICCODEGEN_LIBS) \
$(GLSLANG_OSDEPENDENT_LIBS) \
$(GLSLANG_OGLCOMPILER_LIBS) \
$(GLSLANG_HLSL_LIBS) \
@@ -1898,6 +1899,7 @@ endif
ifeq ($(HAVE_GLSLANG_COMMON), 1)
DEFINES += -DHAVE_GLSLANG
OBJ += $(GLSLANG_SOURCES_C:.c=.o)
OBJ += $(GLSLANG_SOURCES:.cpp=.o)
endif
@@ -2110,8 +2112,8 @@ ifeq ($(HAVE_NETWORKING), 1)
$(LIBRETRO_COMM_DIR)/net/net_http.o \
$(LIBRETRO_COMM_DIR)/net/net_http_parse.o \
$(LIBRETRO_COMM_DIR)/net/net_socket.o \
$(LIBRETRO_COMM_DIR)/net/net_natt.o \
core_updater_list.o \
network/natt.o \
network/net_http_special.o \
tasks/task_http.o \
tasks/task_netplay_lan_scan.o \
@@ -2129,7 +2131,8 @@ ifeq ($(HAVE_NETWORKING), 1)
OBJ += $(LIBRETRO_COMM_DIR)/net/net_socket_ssl_mbed.o
endif
ifneq ($(HAVE_SOCKET_LEGACY),1)
ifeq ($(HAVE_IFINFO), 1)
DEFINES += -DHAVE_IFINFO
OBJ += $(LIBRETRO_COMM_DIR)/net/net_ifinfo.o
endif
@@ -2223,6 +2226,7 @@ ifeq ($(HAVE_NETWORKING), 1)
ifeq ($(HAVE_DISCORD), 1)
NEED_CXX_LINKER = 1
HAVE_PRESENCE = 1
DEFINES += -DHAVE_DISCORD
INCLUDE_DIRS += -Ideps/discord-rpc/include
@@ -2393,7 +2397,8 @@ ifeq ($(HAVE_STATIC_VIDEO_FILTERS), 1)
gfx/video_filters/upscale_1_5x.o \
gfx/video_filters/upscale_256x_320x240.o \
gfx/video_filters/picoscale_256x_320x240.o \
gfx/video_filters/upscale_240x160_320x240.o
gfx/video_filters/upscale_240x160_320x240.o \
gfx/video_filters/upscale_mix_240x160_320x240.o
endif
ifeq ($(WANT_IOSUHAX), 1)
@@ -2438,6 +2443,10 @@ ifneq ($(findstring Win32,$(OS)),)
OBJ += led/drivers/led_win32_keyboard.o
endif
ifeq ($(HAVE_X11), 1)
OBJ += led/drivers/led_x11_keyboard.o
endif
ifeq ($(HAVE_VITAGLES), 1)
DEFINES += -DHAVE_VITAGLES
INCLUDE_DIRS += -I$(DEPS_DIR)/Pigs-In-A-Blanket/include
@@ -2460,11 +2469,20 @@ endif
### Steam integration using mist
ifeq ($(HAVE_MIST), 1)
HAVE_PRESENCE = 1
DEFINES += -DHAVE_MIST
INCLUDE_DIRS += -I$(MIST_PATH)/include
LDFLAGS += -L$(MIST_PATH) -lmist
OBJ += steam/steam.o tasks/task_steam.o
endif
### Shared rich presence code for Discord and Steam
ifeq ($(HAVE_PRESENCE), 1)
DEFINES += -DHAVE_PRESENCE
OBJ += network/presence.o
endif
##################################
### Classic Platform specifics ###
###############WIP################
+34 -20
View File
@@ -4,6 +4,7 @@ LIBRETRO =
DEBUG = 0
CONSOLE_LOG = 0
GRIFFIN_BUILD = 1
HAVE_STATIC_DUMMY ?= 0
WHOLE_ARCHIVE_LINK = 0
BUILD_3DSX = 1
BUILD_3DS = 0
@@ -52,9 +53,9 @@ endif
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_GRIFFIN=1 -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_RGUI -DHAVE_XMB -DHAVE_LIBRETRODB -DHAVE_CC_RESAMPLER
DEFINES += -DHAVE_ZLIB -DHAVE_7ZIP -D_7ZIP_ST -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA
DEFINES += -DHAVE_NETWORKING -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_CORES
DEFINES += -DHAVE_NETWORKING -DHAVE_IFINFO -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_CORES
#DEFINES += -DHAVE_UPDATE_ASSETS
DEFINES += -DHAVE_PATCH -DHAVE_RWAV
DEFINES += -DHAVE_SCREENSHOTS
@@ -79,7 +80,6 @@ else
HAVE_7ZIP = 1
HAVE_BUILTINZLIB = 1
HAVE_LIBRETRODB = 1
HAVE_MATERIALUI = 1
HAVE_XMB = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
@@ -89,6 +89,7 @@ else
HAVE_AUDIOMIXER = 1
HAVE_RWAV = 1
#HAVE_NETWORKING = 1
#HAVE_IFINFO = 1
#HAVE_CHEEVOS = 1
#HAVE_SOCKET_LEGACY = 1
HAVE_THREADS = 1
@@ -151,13 +152,17 @@ LIBDIRS := -L. -L$(CTRULIB)/lib
ARCH := -march=armv6k -mtune=mpcore -mfloat-abi=hard -marm -mfpu=vfp -mtp=soft
CFLAGS += -mword-relocations \
-fomit-frame-pointer -ffast-math \
-Werror=implicit-function-declaration \
$(ARCH)
CFLAGS += -mword-relocations \
-fomit-frame-pointer -ffast-math \
-Werror=implicit-function-declaration \
$(ARCH)
#CFLAGS += -Wall
CFLAGS += -DARM11 -D_3DS
CFLAGS += -DARM11 -D_3DS
ifeq ($(strip $(USE_CTRULIB_2)),1)
CFLAGS += -D__3DS__
endif
ifeq ($(DEBUG), 1)
CFLAGS += -O0 -g
@@ -179,12 +184,12 @@ ifeq ($(WHOLE_ARCHIVE_LINK), 1)
endif
CFLAGS += -I. \
-Ideps \
-Ideps/7zip \
-Ideps/stb \
-Ideps/rcheevos/include \
-Ilibretro-common/include \
-Ilibretro-common/include/compat/zlib
-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
@@ -192,14 +197,23 @@ CFLAGS += -DHAVE_VIDEO_FILTER
CFLAGS += -DHAVE_FILTERS_BUILTIN $(DEFINES)
CFLAGS += -DHAVE_CHEATS
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11
ASFLAGS := -g $(ARCH) -O3
LDFLAGS += -specs=ctr/3dsx_custom.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11
ASFLAGS := -g $(ARCH) -O3
LDFLAGS += -specs=ctr/3dsx_custom.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
CFLAGS += -std=gnu99 -ffast-math
LIBS := $(WHOLE_START) -lretro_ctr $(WHOLE_END) -lm
LIB_CORE :=
LIB_CORE_FULL :=
ifeq ($(HAVE_STATIC_DUMMY),1)
DEFINES += -DHAVE_STATIC_DUMMY
else
LIB_CORE += -lretro_ctr
LIB_CORE_FULL += libretro_ctr.a
endif
LIBS := $(WHOLE_START) $(LIB_CORE) $(WHOLE_END) -lm
ifeq ($(DEBUG), 1)
LIBS += -lctrud
@@ -225,7 +239,7 @@ all: $(TARGET)
$(TARGET): $(TARGET_3DSX) $(TARGET_3DS) $(TARGET_CIA)
$(TARGET).3dsx: $(TARGET).elf
$(TARGET).elf: $(OBJ) libretro_ctr.a
$(TARGET).elf: $(OBJ) $(LIB_CORE_FULL)
PREFIX := $(DEVKITARM)/bin/arm-none-eabi-
+5
View File
@@ -36,6 +36,7 @@ OBJ := ctr/ctr_system.o \
libretro-common/lists/dir_list.o \
libretro-common/file/retro_dirent.o \
libretro-common/compat/compat_strl.o \
libretro-common/compat/compat_strldup.o \
libretro-common/file/config_file.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
@@ -90,6 +91,10 @@ CFLAGS += -mword-relocations \
#CFLAGS += -Wall
CFLAGS += -DARM11 -D_3DS
ifeq ($(strip $(USE_CTRULIB_2)),1)
CFLAGS += -D__3DS__
endif
ifeq ($(DEBUG), 1)
CFLAGS += -O0 -g
else
+1
View File
@@ -69,6 +69,7 @@ HAVE_MENU_COMMON = 1
HAVE_GFX_WIDGETS = 1
HAVE_MMAP = 1
HAVE_NETWORKING = 1
HAVE_IFINFO = 1
HAVE_OPENDINGUX_FBDEV = 1
HAVE_OPENGL = 1
HAVE_OPENGL1 = 0
+12 -2
View File
@@ -9,6 +9,7 @@ TOPDIR ?= $(CURDIR)
DEBUG ?= 0
WHOLE_ARCHIVE_LINK = 0
HAVE_STATIC_DUMMY ?= 0
GRIFFIN_BUILD = 0
OBJ :=
@@ -53,7 +54,8 @@ HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_RUNAHEAD = 1
HAVE_NETWORKING = 0
HAVE_NETPLAYDISCOVERY = 1
HAVE_IFINFO = 0
HAVE_NETPLAYDISCOVERY = 0
HAVE_OVERLAY := 1
HAVE_STB_FONT = 1
HAVE_COMMAND := 1
@@ -182,6 +184,14 @@ ifneq ($(ROMFS),)
export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS)
endif
LIB_CORE :=
ifeq ($(HAVE_STATIC_DUMMY),1)
DEFINES += -DHAVE_STATIC_DUMMY
else
LIB_CORE += -lretro_dos
endif
DEPENDS_TMP := $(OFILES:.o=.d)
DEPENDS := $(filter-out libretro_libnx.a,$(DEPENDS_TMP))
@@ -193,7 +203,7 @@ DEPENDS := $(filter-out libretro_libnx.a,$(DEPENDS_TMP))
all : $(OUTPUT)
$(OUTPUT): $(OBJ)
$(CXX) -o $@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(PLATEXTRA) -L. -lretro_dos $(LIBS)
$(CXX) -o $@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(PLATEXTRA) -L. $(LIB_CORE) $(LIBS)
%.o: %.c
$(CC) -c -o $@ $(CFLAGS) $<
+9 -1
View File
@@ -1,3 +1,4 @@
HAVE_STATIC_DUMMY ?= 0
ifeq ($(TARGET),)
ifeq ($(LIBRETRO),)
TARGET := retroarch.js
@@ -85,7 +86,14 @@ endif
include Makefile.common
CFLAGS += $(DEF_FLAGS) -Ideps -Ideps/stb
libretro = libretro_emscripten.bc
libretro :=
ifeq ($(HAVE_STATIC_DUMMY),1)
DEFINES += -DHAVE_STATIC_DUMMY
else
libretro += libretro_emscripten.bc
endif
ifneq ($(V), 1)
Q := @
+17 -2
View File
@@ -345,6 +345,8 @@ else ifeq ($(platform), vita)
HAVE_7ZIP := 1
HAVE_VITA2D := 1
HAVE_NETWORKING := 1
HAVE_IFINFO := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
@@ -365,8 +367,9 @@ else ifeq ($(platform), windows_msvc6_x86)
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 0
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_IFINFO := 0
HAVE_NETWORK_CMD := 0
HAVE_NETPLAYDISCOVERY := 0
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
@@ -412,6 +415,7 @@ else ifeq ($(platform), windows_msvc2003_x86)
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 1
HAVE_IFINFO := 0
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
@@ -467,6 +471,7 @@ else ifeq ($(platform), windows_msvc2005_x86)
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 1
HAVE_IFINFO := 0
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
@@ -549,6 +554,7 @@ else ifneq (,$(findstring windows_msvc2010,$(platform)))
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 1
HAVE_IFINFO := 1
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
@@ -643,6 +649,7 @@ else ifneq (,$(findstring windows_msvc2012,$(platform)))
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 1
HAVE_IFINFO := 1
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
@@ -728,6 +735,7 @@ else ifneq (,$(findstring windows_msvc2013,$(platform)))
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 1
HAVE_IFINFO := 1
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
@@ -813,6 +821,7 @@ else ifneq (,$(findstring windows_msvc2015,$(platform)))
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 1
HAVE_IFINFO := 1
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
@@ -913,6 +922,7 @@ else ifeq (qnx,$(platform))
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 1
HAVE_IFINFO := 1
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
@@ -958,6 +968,7 @@ else ifneq (,$(findstring unix,$(platform)))
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 1
HAVE_IFINFO := 1
HAVE_NETWORK_CMD := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_OVERLAY := 1
@@ -1111,6 +1122,10 @@ ifeq ($(HAVE_NETWORKING), 1)
CFLAGS += -DHAVE_NETWORKING
endif
ifeq ($(HAVE_IFINFO), 1)
CFLAGS += -DHAVE_IFINFO
endif
ifeq ($(HAVE_NETPLAYDISCOVERY), 1)
CFLAGS += -DHAVE_NETPLAYDISCOVERY
endif
+2
View File
@@ -32,6 +32,7 @@ HAVE_RTGA = 1
HAVE_RPNG = 1
HAVE_RJPEG = 1
HAVE_RBMP = 1
HAVE_RWAV = 1
HAVE_7ZIP = 1
HAVE_ZLIB = 1
HAVE_BUILTINZLIB = 1
@@ -47,6 +48,7 @@ HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_RUNAHEAD = 1
HAVE_NETWORKING = 1
HAVE_IFINFO = 1
HAVE_NETPLAYDISCOVERY = 1
HAVE_STB_FONT = 1
HAVE_CHEEVOS = 1
+6 -7
View File
@@ -41,12 +41,11 @@ DEBUG ?= 0
MIYOO = 1
DINGUX = 1
HAVE_SCREENSHOTS = 0
HAVE_REWIND = 0
HAVE_SCREENSHOTS = 1
HAVE_REWIND = 1
HAVE_7ZIP = 1
HAVE_AL = 0
# ALSA freezes when switching back from menu
HAVE_ALSA = 0
HAVE_ALSA = 1
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
@@ -68,7 +67,7 @@ HAVE_GDI = 1
HAVE_GETADDRINFO = 0
HAVE_GETOPT_LONG = 1
HAVE_GLSL = 0
HAVE_HID = 1
HAVE_HID = 0
HAVE_IBXM = 1
HAVE_IMAGEVIEWER = 0
HAVE_LANGEXTRA = 0
@@ -123,7 +122,7 @@ DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -I. -Ideps -Ideps/stb -DMIYOO=1 -DDINGUX -MMD
DEF_FLAGS += -Wall -Wno-unused-variable -flto
DEF_FLAGS += -std=gnu99 -D_GNU_SOURCE
LIBS := -ldl -lz -lrt -pthread
LIBS := -ldl -lz -lrt -pthread -lasound
CFLAGS :=
CXXFLAGS := -fno-exceptions -fno-rtti -std=c++11 -D__STDC_CONSTANT_MACROS
ASFLAGS :=
@@ -133,7 +132,7 @@ LIBRARY_DIRS = -L$(GCW0_LIB_DIR)
DEFINES := -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64 -UHAVE_STATIC_DUMMY
DEFINES += -DHAVE_C99=1 -DHAVE_CXX=1
DEFINES += -DHAVE_GETOPT_LONG=1 -DHAVE_STRCASESTR=1 -DHAVE_DYNAMIC=1
DEFINES += -DHAVE_FILTERS_BUILTIN
DEFINES += -DHAVE_FILTERS_BUILTIN -DHAVE_ALSA
SDL_DINGUX_CFLAGS := $(shell $(GCW0_SDL_CONFIG) --cflags)
SDL_DINGUX_LIBS := $(shell $(GCW0_SDL_CONFIG) --libs)
+1
View File
@@ -58,6 +58,7 @@ HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 1
HAVE_IFINFO := 1
HAVE_NETWORK_CMD := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
+10 -5
View File
@@ -10,6 +10,7 @@ PC_DEVELOPMENT_IP_ADDRESS = 255.255.255.255
PC_DEVELOPMENT_UDP_PORT = 3490
RARCH_CONSOLE = 0
USBGECKO = 0
HAVE_STATIC_DUMMY ?= 0
SPACE :=
SPACE := $(SPACE) $(SPACE)
@@ -44,7 +45,15 @@ ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_END := -Wl,--no-whole-archive
endif
LIBS := $(WHOLE_START) -lretro_ngc $(WHOLE_END)
LIB_CORE :=
ifeq ($(HAVE_STATIC_DUMMY),1)
DEFINES += -DHAVE_STATIC_DUMMY
else
LIB_CORE += -lretro_ngc
endif
LIBS := $(WHOLE_START) $(LIB_CORE) $(WHOLE_END)
libogc_platform := 1
@@ -188,10 +197,6 @@ ifeq ($(HAVE_ZLIB), 1)
CFLAGS += -I./libretro-common/include/compat/zlib
endif
ifeq ($(HAVE_RWAV), 1)
CFLAGS += -DHAVE_RWAV
endif
ifeq ($(RARCH_CONSOLE), 1)
CFLAGS += -DRARCH_CONSOLE
endif
+139 -100
View File
@@ -3,21 +3,38 @@ DEBUG ?= 0
GRIFFIN_BUILD = 0
WHOLE_ARCHIVE_LINK = 0
HAVE_STATIC_DUMMY ?= 0
HAVE_GLES3 ?= 0
HAVE_MOUSE ?= 0
HAVE_KEYBOARD ?= 0
PS4_TITLE_ID := RETROARCH
PS4_TITLE_NAME := RetroArch
PC_DEVELOPMENT_IP_ADDRESS =
PC_DEVELOPMENT_UDP_PORT =
PC_DEVELOPMENT_IP_ADDRESS = 192.168.1.137
PC_DEVELOPMENT_UDP_PORT = 18194
OBJ :=
AUTH_INFO = 000000000000000000000000001C004000FF000000000080000000000000000000000000000000000000008000400040000000000000008000000000000000080040FFFF000000F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
DEFINES :=
OBJ += deps/xxHash/xxhash.o \
# input/drivers/ps4_input.o \
# input/drivers_joypad/ps4_joypad.o \
# audio/drivers/psp_audio.o \
# gfx/drivers_context/orbis_ctx.o \
# frontend/drivers/platform_orbis.o
ifeq ($(HAVE_GLES3),1)
DEFINES += -DHAVE_OPENGLES3
endif
ifeq ($(HAVE_STATIC_DUMMY),1)
DEFINES += -DHAVE_STATIC_DUMMY
endif
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
DEFINES += -DHAVE_GRIFFIN=1
DEFINES += -DHAVE_MENU -DHAVE_LIBRETRODB -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_SCREENSHOTS -DHAVE_CHEATS
DEFINES += -DHAVE_REWIND
DEFINES += -DHAVE_MENU -DHAVE_LIBRETRODB -DHAVE_CONFIGFILE
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_CC_RESAMPLER
DEFINES += -DHAVE_CORE_INFO_CACHE
ifeq ($(DEBUG), 1)
@@ -25,39 +42,53 @@ ifeq ($(GRIFFIN_BUILD), 1)
endif
else
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_LANGEXTRA := 0
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_ZLIB := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_7ZIP := 1
HAVE_EGL := 1
HAVE_GFX_WIDGETS := 1
HAVE_GLSL := 1
HAVE_OPENGLES := 1
HAVE_NETWORKING := 0
HAVE_SOCKET_LEGACY := 0
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
HAVE_THREADS := 1
HAVE_LIBRETRODB := 1
HAVE_CC_RESAMPLER := 1
HAVE_CHEEVOS := 1
RARCH_CONSOLE := 1
HAVE_LANGEXTRA := 1
HAVE_IMAGEVIEWER := 1
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_ZLIB := 1
HAVE_BUILTINZLIB := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 1
HAVE_7ZIP := 1
HAVE_EGL := 1
HAVE_GFX_WIDGETS := 1
HAVE_GLSL := 1
HAVE_SHADERPIPELINE := 1
HAVE_OPENGL := 1
HAVE_OPENGLES := 1
HAVE_OPENGLES2 := 1
HAVE_NETWORKING := 0
HAVE_IFINFO := 0
HAVE_SOCKET_LEGACY := 1
HAVE_MENU := 1
HAVE_MENU_COMMON := 1
HAVE_RGUI := 1
HAVE_STB_FONT := 1
HAVE_STB_VORBIS := 1
HAVE_DR_FLAC := 1
HAVE_DR_MP3 := 1
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_OZONE := 1
HAVE_RGUI := 1
HAVE_THREADS := 1
HAVE_THREAD_ATTR := 1
HAVE_LIBRETRODB := 1
HAVE_CC_RESAMPLER := 1
HAVE_CHEEVOS := 1
HAVE_RUNAHEAD := 1
RARCH_CONSOLE := 1
HAVE_MAIN := 1
HAVE_ONLINE_UPDATER := 1
HAVE_COMPRESSION := 1
HAVE_UPDATE_ASSETS := 1
HAVE_UPDATE_CORES := 1
HAVE_CONFIGFILE := 1
HAVE_CHD := 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_CORE_INFO_CACHE := 1
@@ -68,107 +99,115 @@ else
include Makefile.common
CFLAGS += $(DEF_FLAGS)
BLACKLIST :=
OBJ := $(filter-out $(BLACKLIST),$(OBJ))
endif
ifeq ($(strip $(PS4SDK)),)
$(error "Please set PS4SDK in your environment. export PS4SDK=<path to>ps4sdk")
ifeq ($(strip $(ORBISDEV)),)
$(error "Please set ORBISDEV in your environment. export ORBISDEV=<path to>orbisdev")
endif
export PATH := $(PATH):$(PS4SDK)/bin
PREFIX :=
CC := $(PREFIX)clang
CXX := $(PREFIX)clang
AS := $(PREFIX)clang
PREFIX := orbis-
CC := clang
CXX := clang++
AS := $(PREFIX)as
AR := $(PREFIX)ar
OBJCOPY := $(PREFIX)objcopy
STRIP := $(PREFIX)strip
NM := $(PREFIX)nm
LD := $(CXX)
LD := clang
INCDIRS := -I. -Ideps/7zip -Ilibretro-common/include -Ideps/stb -Ilibretro-common/include/compat/zlib
LIBDIRS := -L.
LIBDIRS += -L. -Lcores -Lbuild -L$(ORBISDEV)/usr/lib
INCDIRS += -I. -Idefines -Ideps -Ideps/7zip -Ideps/libz -Ilibretro-common/include -Ideps/stb \
-Ilibretro-common/include/compat/zlib -Ideps/rcheevos/include -I$(ORBISDEV)/usr/include -I$(ORBISDEV)/usr/include/c++/v1 -I$(ORBISDEV)/usr/include/orbis
ARCHFLAGS := -m64 -DORBIS
CFLAGS += $(ARCHFLAGS) -std=c11 -mcmodel=large -ffreestanding -nostdlib -nostdinc -fno-builtin -fno-stack-protector
ARCHFLAGS += --target=x86_64-scei-ps4 -DORBIS -D__ORBIS__ -D__PS4__ -D_BSD_SOURCE
DEFINES += -DRARCH_INTERNAL -DRARCH_CONSOLE -DHAVE_FILTERS_BUILTIN \
-DHAVE_XMB -DHAVE_RGUI -DHAVE_OZONE \
-DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_CORES -DHAVE_UPDATE_ASSETS \
ifeq ($(DEBUG), 1)
CFLAGS += -O2 -g
else
CFLAGS += -O3
# Compiling with -Werror and disabling some warnings
DEFINES += -Werror -Wno-macro-redefined -Wno-typedef-redefinition -Wno-non-literal-null-conversion -Wno-void-pointer-to-int-cast \
-Wno-format -Wno-tautological-constant-out-of-range-compare -Wno-implicit-function-declaration
ifeq ($(HAVE_KEYBOARD), 1)
DEFINES += -DHAVE_KEYBOARD
PS4_LIBS += -lSceDbgKeyboard_stub
endif
ASFLAGS := $(ARCHFLAGS) -I$(PS4SDK)/include -target x86_64-scei-ps4-elf -fPIE
LDFLAGS := -O3 -Wall -m64 -nostartfiles -nostdlib -L$(PS4SDK)/lib -pie
ARFLAGS := rcs
CRTFILE ?= $(PS4SDK)/crt0.s
CFLAGS += -Wall -pedantic -Wno-zero-length-array -Wno-format-pedantic
CFLAGS += -D__PS4__ -I$(PS4SDK)/include -I $(PS4SDK)/include/sce
CFLAGS += -target x86_64-scei-ps4-elf -fPIE
CFLAGS += -DRARCH_INTERNAL -DRARCH_CONSOLE
CFLAGS += -DHAVE_FILTERS_BUILTIN $(DEFINES)
ifeq ($(HAVE_MOUSE),1)
DEFINES += -DHAVE_MOUSE
PS4_LIBS += -lSceMouse_stub
endif
ifneq ($(PC_DEVELOPMENT_IP_ADDRESS),)
CFLAGS += -DPC_DEVELOPMENT_IP_ADDRESS='"$(PC_DEVELOPMENT_IP_ADDRESS)"'
DEFINES += -DPC_DEVELOPMENT_IP_ADDRESS='"$(PC_DEVELOPMENT_IP_ADDRESS)"'
endif
ifneq ($(PC_DEVELOPMENT_UDP_PORT),)
CFLAGS += -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT)
DEFINES += -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT)
endif
ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_START := -Wl,--whole-archive
WHOLE_END := -Wl,--no-whole-archive
WHOLE_START := --whole-archive
WHOLE_END := --no-whole-archive
endif
CXXFLAGS := $(CFLAGS)
PS4_LIBS := -lps4link -ldebugnet -lorbisFile -lelfloader -lorbisKeyboard -lorbis2d -lpng -lz -lorbisGl -lorbisPad -lorbisAudio -lmod -lorbisFileBrowser -lorbisXbmFont -lSceNet_stub -lScePigletv2VSH_stub -lSceSystemService_stub -lSceUserService_stub -lScePad_stub -lSceAudioOut_stub -lSceIme_stub -lSceSysmodule_stub \
-lPs4_extension_kernel_call_standard -lPs4_extension_kernel_execute_dynlib_prepare_dlclose -lPs4_common_kernel -lPs4_common_user -lPs4_common_generic -lPs4LibCInternalAdaptive_stub -lPs4LibKernelAdaptive_stub -lSceLibcInternal_stub -lkernel_stub -lps4Kernel_stub -lPs4_base_stub_resolve_minimal -lPs4_base_kernel_dlsym_standard -lPs4_base_kernel_seek_elf_address_standard -lPs4_base_assembler_register_parameter_standard -lPs4_base_assembler_system_call_standard
PS4_LIBS += -luser_mem_sys -lkernel_stub -lSceLibcInternal_stub -lunwind -lc++ -lc++abi -lc++experimental \
-lorbisLink -lkernelUtil -ldebugnet -lorbisNfs -lSceSysmodule_stub -lSceSystemService_stub -lSceNet_stub \
-lSceUserService_stub -lScePigletv2VSH_stub -lSceVideoOut_stub -lSceGnmDriver_stub -lorbisPad \
-lScePad_stub -lSceAudioOut_stub -lSceIme_stub -lSceNetCtl_stub -lSQLite
LIBS := $(WHOLE_START) -lretro_orbis $(WHOLE_END) $(PS4_LIBS)
ifeq ($(HAVE_STATIC_DUMMY),1)
LIBS := $(PS4_LIBS)
else
LIBS := $(WHOLE_START) -lretro_orbis $(WHOLE_END) $(PS4_LIBS)
endif
TARGETS := $(TARGET).elf
DEPFLAGS = -MT $@ -MMD -MP -MF $*.Tdepend
POSTCOMPILE = mv -f $*.Tdepend $*.depend
CFLAGS := $(ARCHFLAGS) $(INCDIRS) $(DEFINES)
CXXFLAGS := $(ARCHFLAGS) $(INCDIRS) $(DEFINES)
LDFLAGS := $(LIBDIRS) -Wl,--gc-sections -Wl,-z -Wl,max-page-size=0x4000 -Wl,--dynamic-linker="/libexec/ld-elf.so.1" -Wl,-pie -Wl,--eh-frame-hdr -target x86_64-scei-ps4-elf -T $(ORBISDEV)/usr/lib/linker.x
ifeq ($(DEBUG), 1)
CFLAGS += -O0 -fno-inline
CXXFLAGS += -O0 -fno-inline
else
CFLAGS += -O3
CXXFLAGS += -O3
endif
TARGETS := $(TARGET).self
all: $(TARGETS)
%.o: %.cpp
%.o: %.cpp %.depend
$(CXX) -c -o $@ $< $(CXXFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
OBJOUT = -o
%.o: %.c
%.o: %.c %.depend
$(CC) -c -o $@ $< $(CFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $(OBJOUT)$@ $<
%.o: %.S
%.o: %.S %.depend
$(CC) -c -o $@ $< $(ASFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.s
%.o: %.s %.depend
$(CC) -c -o $@ $< $(ASFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
$(CC) -c $(OBJOUT)$@ $<
%.depend: ;
$(TARGET).elf: $(OBJ)
$(LD) $(ORBISDEV)/usr/lib/crt0.o $(OBJ) $(LDFLAGS) $(LIBS) -o $(TARGET).elf
$(TARGET).elf: $(OBJ) libretro_orbis.a
$(LD) $(CRTFILE) $(OBJ) $(LDFLAGS) $(LIBDIRS) $(LIBS) -o $@
$(TARGET).oelf: $(TARGET).elf
@orbis-elf-create $(TARGET).elf $(TARGET).oelf
$(TARGET).self: $(TARGET).oelf
python $(ORBISDEV)/bin/make_fself.py --auth-info $(AUTH_INFO) $(TARGET).oelf $(TARGET).self
install:
@cp $(TARGET).self $(SELF_PATH_INSTALL)/homebrew.self
@echo "Installed!"
clean:
rm -f $(OBJ) $(TARGET).elf
rm -f $(OBJ:.o=.depend)
rm -f $(OBJ) $(TARGET).elf $(TARGET).oelf $(TARGET).self
.PHONY: clean all
.PRECIOUS: %.depend
-include $(OBJ:.o=.depend)
+131
View File
@@ -0,0 +1,131 @@
TARGET := retroarch_orbis_salamander
DEBUG ?= 0
PS4_TITLE_ID := RETROARCH
PS4_TITLE_NAME := RetroArch
PC_DEVELOPMENT_IP_ADDRESS = 192.168.1.137
PC_DEVELOPMENT_UDP_PORT = 18194
AUTH_INFO = 000000000000000000000000001C004000FF000000000080000000000000000000000000000000000000008000400040000000000000008000000000000000080040FFFF000000F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
endif
ifeq ($(strip $(ORBISDEV)),)
$(error "Please set ORBISDEV in your environment. export ORBISDEV=<path to>orbisdev")
endif
PREFIX := orbis-
CC := clang
CXX := clang++
AS := $(PREFIX)as
AR := $(PREFIX)ar
OBJCOPY := $(PREFIX)objcopy
STRIP := $(PREFIX)strip
NM := $(PREFIX)nm
LD := clang
LIBDIRS += -L. -Lcores -Lbuild -L$(ORBISDEV)/usr/lib
INCDIRS += -I. -Idefines -Ilibretro-common/include -I$(ORBISDEV)/usr/include -I$(ORBISDEV)/usr/include/c++/v1 -I$(ORBISDEV)/usr/include/orbis
ARCHFLAGS += --target=x86_64-scei-ps4 -DORBIS -D__ORBIS__ -D__PS4__ -D_BSD_SOURCE
DEFINES += -DORBIS -D__ORBIS__ -DIS_SALAMANDER -DRARCH_CONSOLE -D__PS4__ -D_BSD_SOURCE
# Compiling with -Werror and disabling some warnings
DEFINES += -Werror -Wno-macro-redefined -Wno-typedef-redefinition -Wno-non-literal-null-conversion -Wno-void-pointer-to-int-cast \
-Wno-format -Wno-tautological-constant-out-of-range-compare -Wno-implicit-function-declaration
ifeq ($(HAVE_FILE_LOGGER), 1)
DEFINES += -DHAVE_FILE_LOGGER
endif
ifneq ($(PC_DEVELOPMENT_IP_ADDRESS),)
DEFINES += -DPC_DEVELOPMENT_IP_ADDRESS='"$(PC_DEVELOPMENT_IP_ADDRESS)"'
endif
ifneq ($(PC_DEVELOPMENT_UDP_PORT),)
DEFINES += -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT)
endif
PS4_LIBS += -luser_mem_sys -lkernel_stub -lSceLibcInternal_stub -lunwind -lc++ -lc++abi -lc++experimental \
-lorbisLink -lkernelUtil -ldebugnet -lorbisNfs -lSceSysmodule_stub -lSceSystemService_stub -lSceNet_stub \
-lSceUserService_stub -lScePigletv2VSH_stub -lSceVideoOut_stub -lSceGnmDriver_stub -lorbisPad \
-lScePad_stub -lSceAudioOut_stub -lSceIme_stub -lSceNetCtl_stub -lSQLite
LIBS := $(PS4_LIBS)
CFLAGS := $(ARCHFLAGS) $(INCDIRS) $(DEFINES)
CXXFLAGS := $(ARCHFLAGS) $(INCDIRS) $(DEFINES)
LDFLAGS := $(LIBDIRS) -Wl,--gc-sections -Wl,-z -Wl,max-page-size=0x4000 -Wl,--dynamic-linker="/libexec/ld-elf.so.1" -Wl,-pie -Wl,--eh-frame-hdr -target x86_64-scei-ps4-elf -T $(ORBISDEV)/usr/lib/linker.x
ifeq ($(DEBUG), 1)
CFLAGS += -O0 -fno-inline
CXXFLAGS += -O0 -fno-inline
else
CFLAGS += -O3
CXXFLAGS += -O3
endif
OBJS = frontend/frontend_salamander.o \
frontend/frontend_driver.o \
frontend/drivers/platform_orbis.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/compat_strl.o \
libretro-common/compat/compat_strcasestr.o \
libretro-common/compat/fopen_utf8.o \
libretro-common/file/config_file.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/hash/lrc_hash.o \
libretro-common/time/rtime.o \
network/net_logger.o \
verbosity.o
TARGETS := $(TARGET).elf
all: $(TARGETS)
OBJOUT = -o
%.o: %.c
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $(OBJOUT)$@ $<
%.o: %.S
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.s
$(CC) -c $(OBJOUT)$@ $<
$(TARGET).elf: $(OBJ)
$(LD) $(ORBISDEV)/usr/lib/crt0.o $(OBJ) $(LDFLAGS) $(LIBS) -o $(TARGET).elf
$(TARGET).oelf: $(TARGET).elf
@orbis-elf-create $(TARGET).elf $(TARGET).oelf
$(TARGET).self: $(TARGET).oelf
python $(ORBISDEV)/bin/make_fself.py --auth-info $(AUTH_INFO) $(TARGET).oelf $(TARGET).self
install:
@cp $(TARGET).self $(SELF_PATH_INSTALL)/homebrew.self
@echo "Installed!"
clean:
rm -f $(OBJ) $(TARGET).elf $(TARGET).oelf $(TARGET).self
.PHONY: clean all
+1
View File
@@ -53,6 +53,7 @@ EE_OBJS = frontend/frontend_salamander.o \
libretro-common/encodings/encoding_utf.o \
libretro-common/compat/fopen_utf8.o \
libretro-common/compat/compat_strl.o \
libretro-common/compat/compat_strldup.o \
libretro-common/compat/compat_strcasestr.o \
libretro-common/file/config_file.o \
libretro-common/streams/file_stream.o \
+1
View File
@@ -66,6 +66,7 @@ OBJ = frontend/frontend_salamander.o \
libretro-common/string/stdstring.o \
libretro-common/encodings/encoding_utf.o \
libretro-common/compat/compat_strl.o \
libretro-common/compat/compat_strldup.o \
libretro-common/compat/compat_strcasestr.o \
libretro-common/compat/fopen_utf8.o \
libretro-common/streams/file_stream.o \
-1
View File
@@ -21,7 +21,6 @@ ASFLAGS = $(CFLAGS)
RARCH_DEFINES = -DPSP \
-D_MIPS_ARCH_ALLEGREX \
-DHAVE_LANGEXTRA \
-DHAVE_ZLIB \
-DHAVE_AUDIOMIXER \
-DHAVE_RWAV \
+1
View File
@@ -40,6 +40,7 @@ OBJS = frontend/frontend_salamander.o \
libretro-common/encodings/encoding_utf.o \
libretro-common/compat/fopen_utf8.o \
libretro-common/compat/compat_strl.o \
libretro-common/compat/compat_strldup.o \
libretro-common/compat/compat_strcasestr.o \
libretro-common/file/config_file.o \
libretro-common/streams/file_stream.o \
+1 -1
View File
@@ -69,7 +69,7 @@ HAVE_GDI = 1
HAVE_GETADDRINFO = 0
HAVE_GETOPT_LONG = 1
HAVE_GLSL = 0
HAVE_HID = 1
HAVE_HID = 0
HAVE_IBXM = 1
HAVE_IMAGEVIEWER = 1
HAVE_LANGEXTRA = 0
+13 -2
View File
@@ -3,6 +3,7 @@ DEBUG ?= 0
HAVE_FILE_LOGGER = 1
GRIFFIN_BUILD = 0
WHOLE_ARCHIVE_LINK = 0
HAVE_STATIC_DUMMY ?= 0
VITA_TITLE_ID := RETROARCH
VITA_TITLE_NAME := RetroArch
@@ -75,6 +76,8 @@ else
HAVE_VITAGL := 0
endif
HAVE_NETWORKING := 1
HAVE_IFINFO := 1
HAVE_NETPLAYDISCOVERY := 1
HAVE_SOCKET_LEGACY := 1
HAVE_MENU := 1
HAVE_MENU_COMMON := 1
@@ -179,7 +182,15 @@ else
FSELF_FLAGS := -s
endif
LIBS := $(WHOLE_START) -lretro_vita $(WHOLE_END) $(VITA_LIBS) -lm -lc
LIBS := $(WHOLE_START)
ifeq ($(HAVE_STATIC_DUMMY),1)
DEFINES += -DHAVE_STATIC_DUMMY
else
LIBS += -lretro_vita
endif
LIBS += $(WHOLE_END) $(VITA_LIBS) -lm -lc
TARGETS := $(TARGET).vpk
@@ -216,7 +227,7 @@ liblibScePiglet_stub.a:
make -C deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet ARCH=arm-vita-eabi
cp deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet/liblibScePiglet_stub.a .
$(TARGET).elf: $(OBJ) libretro_vita.a liblibScePiglet_stub.a
$(TARGET).elf: $(OBJ) liblibScePiglet_stub.a
$(LD) $(OBJ) $(LDFLAGS) $(LIBDIRS) $(LIBS) -o $@
%.velf: %.elf
+1
View File
@@ -43,6 +43,7 @@ OBJS = frontend/frontend_salamander.o \
libretro-common/file/retro_dirent.o \
libretro-common/encodings/encoding_utf.o \
libretro-common/compat/compat_strl.o \
libretro-common/compat/compat_strldup.o \
libretro-common/compat/compat_strcasestr.o \
libretro-common/compat/fopen_utf8.o \
libretro-common/file/config_file.o \
+5 -5
View File
@@ -67,11 +67,11 @@ HAVE_LIBRETRODB = 1
HAVE_MENU = 1
HAVE_MENU_COMMON = 1
HAVE_NEON = 1
HAVE_NETPLAYDISCOVERY = 1
HAVE_NETPLAYDISCOVERY = 1
HAVE_NETWORK_CMD = 1
HAVE_NETWORKGAMEPAD = 1
HAVE_NETWORKING = 1
HAVE_IFINFO = 1
HAVE_NETWORK_CMD = 1
HAVE_NETPLAYDISCOVERY = 1
HAVE_NETWORKGAMEPAD = 1
HAVE_GFX_WIDGETS = 1
HAVE_MMAP = 1
HAVE_ONLINE_UPDATER = 1
@@ -136,7 +136,7 @@ DEFINES += -DHAVE_GETOPT_LONG=1 -DHAVE_STRCASESTR=1 -DHAVE_DYNAMIC=1
DEFINES += -DHAVE_FILTERS_BUILTIN
DEFINES += -DHAVE_SDL2
DEFINES += -DHAVE_PULSE
DEFINES += -DHAVE_NETWORKING -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
DEFINES += -DHAVE_NETWORKING -DHAVE_IFINFO -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
SDL2_CFLAGS := $(shell pkg-config --cflags sdl2)
SDL2_LIBS := $(shell pkg-config --libs sdl2)
+11 -5
View File
@@ -7,10 +7,12 @@ HAVE_CC_RESAMPLER = 1
WHOLE_ARCHIVE_LINK = 0
BIG_STACK = 1
HAVE_NETWORKING = 1
HAVE_IFINFO = 1
PC_DEVELOPMENT_IP_ADDRESS = 255.255.255.255
PC_DEVELOPMENT_UDP_PORT = 3490
RARCH_CONSOLE = 0
USBGECKO = 0
HAVE_STATIC_DUMMY ?= 0
SPACE :=
SPACE := $(SPACE) $(SPACE)
@@ -45,7 +47,15 @@ ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_END := -Wl,--no-whole-archive
endif
LIBS := $(WHOLE_START) -lretro_wii $(WHOLE_END)
LIB_CORE :=
ifeq ($(HAVE_STATIC_DUMMY),1)
DEFINES += -DHAVE_STATIC_DUMMY
else
LIB_CORE += -lretro_wii
endif
LIBS := $(WHOLE_START) $(LIB_CORE) $(WHOLE_END)
libogc_platform := 1
@@ -212,10 +222,6 @@ ifeq ($(HAVE_ZLIB), 1)
CFLAGS += -I./libretro-common/include/compat/zlib
endif
ifeq ($(HAVE_RWAV), 1)
CFLAGS += -DHAVE_RWAV
endif
ifeq ($(RARCH_CONSOLE), 1)
CFLAGS += -DRARCH_CONSOLE
endif
+1
View File
@@ -78,6 +78,7 @@ OBJ = frontend/frontend_salamander.o \
libretro-common/file/retro_dirent.o \
libretro-common/encodings/encoding_utf.o \
libretro-common/compat/compat_strl.o \
libretro-common/compat/compat_strldup.o \
libretro-common/compat/compat_strcasestr.o \
libretro-common/compat/fopen_utf8.o \
libretro-common/file/config_file.o \
+14 -2
View File
@@ -5,6 +5,7 @@ BUILD_RPX = 1
DEBUG = 0
GRIFFIN_BUILD = 0
SALAMANDER_BUILD = 0
HAVE_STATIC_DUMMY ?= 0
WHOLE_ARCHIVE_LINK = 0
WIIU_HID = 1
HAVE_HID = 1
@@ -65,6 +66,7 @@ ifeq ($(SALAMANDER_BUILD),1)
OBJ += libretro-common/lists/dir_list.o
OBJ += libretro-common/file/retro_dirent.o
OBJ += libretro-common/compat/compat_strl.o
OBJ += libretro-common/compat/compat_strldup.o
OBJ += libretro-common/file/config_file.o
OBJ += libretro-common/streams/file_stream.o
OBJ += libretro-common/vfs/vfs_implementation.o
@@ -118,7 +120,7 @@ endif
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
DEFINES += -DHAVE_STB_FONT -DHAVE_STB_VORBIS -DHAVE_LANGEXTRA -DHAVE_LIBRETRODB -DHAVE_NETWORKING -DHAVE_IFINFO -DHAVE_NETPLAYDISCOVERY
#DEFINES += -DWANT_IFADDRS
#DEFINES += -DHAVE_FREETYPE
DEFINES += -DHAVE_XMB -DHAVE_MATERIALUI
@@ -155,6 +157,7 @@ endif
HAVE_LANGEXTRA = 1
HAVE_LIBRETRODB = 1
HAVE_NETWORKING = 1
HAVE_IFINFO = 1
HAVE_NETPLAYDISCOVERY = 1
HAVE_CHEEVOS = 1
#WANT_IFADDRS = 1
@@ -223,7 +226,16 @@ ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_END := -Wl,--no-whole-archive
endif
LIBS := $(WHOLE_START) -lretro_wiiu $(WHOLE_END) -lm
LIB_CORE :=
ifeq ($(HAVE_STATIC_DUMMY),1)
DEFINES += -DHAVE_STATIC_DUMMY
else
LIB_CORE += -lretro_wiiu
endif
LIBS := $(WHOLE_START) $(LIB_CORE) $(WHOLE_END) -lm
# Use portlibs zlib if deps/ isn't being used
ifeq ($(HAVE_ZLIB),1)
+1
View File
@@ -11,6 +11,7 @@ HAVE_OPENGL = 1
HAVE_DYLIB = 1
HAVE_D3D9 = 1
HAVE_NETWORKING = 1
HAVE_IFINFO = 1
HAVE_NETPLAYDISCOVERY = 1
HAVE_STDIN_CMD = 1
HAVE_COMMAND = 1
+65 -6
View File
@@ -66,7 +66,17 @@ RetroArch also emphasizes being easy to integrate into various launcher frontend
RetroArch has been ported to the following platforms:
- DOS
- Windows
- Windows 11
- Windows 10
- Windows 8
- Windows 7
- Windows Vista
- Windows XP
- Windows Millennium
- Windows 2000
- Windows NT 3.5
- Windows 98
- Windows 95
- Linux
- Emscripten (WebAssembly and JavaScript)
- FreeBSD
@@ -74,13 +84,19 @@ RetroArch has been ported to the following platforms:
- OpenBSD
- Haiku
- Solaris
- macOS (PPC, x86-32 and x86-64)
- PlayStation 2
- PlayStation 3
- Apple macOS (PPC, x86-32 and x86-64)
- Apple iOS
- Apple tvOS
- Android (2.x to most recent version)
- PlayStation2
- PlayStation3
- PlayStation4
- PlayStation Portable
- PlayStation Vita
- Original Microsoft Xbox
- Microsoft Xbox 360 (Libxenon/XeXDK)
- Microsoft Xbox One
- Microsoft Xbox Series S/X
- Nintendo GameCube
- Nintendo Wii
- Nintendo Wii U
@@ -88,9 +104,11 @@ RetroArch has been ported to the following platforms:
- Nintendo Switch
- Nintendo NES/SNES Classic Edition
- Raspberry Pi
- Android
- iOS
- Blackberry
- OpenDingux
- Miyoo
- RS90
- RetroFW
## Dependencies (PC)
@@ -133,6 +151,47 @@ dynamically, it's not required at build time.
Console ports have their own dependencies, but generally do not require
anything other than what the respective SDKs provide.
## Requirements
### OpenGL1 ###
Your videocard needs to at least support the OpenGL 1.1 spec.
***Shaders***: N/A
**Menu driver support**: MaterialUI, XMB, Ozone and RGUI should all work correctly.
XMB won't have shader pipeline effects because of the aforementioned lack of shader
support.
### OpenGL2 ###
Your videocard needs to at least support the OpenGL 2.1 spec.
***Shaders:*** You can choose between either NVIDIA Cg shaders (deprecated, requires separate runtime
to be installed on your system), or GLSL shaders.
***Menu driver support:*** MaterialUI, XMB, Ozone and RGUI should all work correctly.
### OpenGL3 ###
Your videocard needs to at least support the OpenGL 3.2 core feature spec.
***Shaders:*** You will be able to use modern Slang shaders with this driver.
***Menu driver support:*** MaterialUI, XMB, Ozone and RGUI should all work correctly.
### Direct3D 11 ###
Your videocard needs to at least support the Direct3D11 11.0 spec. The card
also needs to support at least the Shader Model 4.0.
***Shaders:*** You will be able to use modern Slang shaders with this driver.
***Menu driver support:*** MaterialUI, XMB, Ozone and RGUI should all work correctly.
### Vulkan ###
Your videocard needs to at least support the Vulkan 1.0 spec.
***Shaders:*** You will be able to use modern Slang shaders with this driver.
***Menu driver support:*** MaterialUI, XMB, Ozone and RGUI should all work correctly.
## Configuring
The default configuration is defined in `config.def.h`.
+132 -158
View File
@@ -83,7 +83,7 @@ audio_driver_t audio_null = {
audio_driver_t *audio_drivers[] = {
#ifdef HAVE_ALSA
&audio_alsa,
#if !defined(__QNX__) && defined(HAVE_THREADS)
#if !defined(__QNX__) && !defined(MIYOO) && defined(HAVE_THREADS)
&audio_alsathread,
#endif
#endif
@@ -296,7 +296,7 @@ static bool audio_driver_deinit_internal(bool audio_enable)
if (!audio_enable)
{
audio_st->active = false;
audio_st->flags &= ~AUDIO_FLAG_ACTIVE;
return false;
}
@@ -321,7 +321,7 @@ static void audio_driver_mixer_deinit(void)
{
unsigned i;
audio_driver_st.mixer_active = false;
audio_driver_st.flags &= ~AUDIO_FLAG_MIXER_ACTIVE;
for (i = 0; i < AUDIO_MIXER_MAX_SYSTEM_STREAMS; i++)
{
@@ -440,7 +440,7 @@ static void audio_driver_flush(
src_data.data_out = audio_st->output_samples_buf;
if (audio_st->control)
if (audio_st->flags & AUDIO_FLAG_CONTROL)
{
/* Readjust the audio input rate. */
int half_size = (int)(audio_st->buffer_size / 2);
@@ -499,7 +499,7 @@ static void audio_driver_flush(
audio_st->resampler_data, &src_data);
#ifdef HAVE_AUDIOMIXER
if (audio_st->mixer_active)
if (audio_st->flags & AUDIO_FLAG_MIXER_ACTIVE)
{
bool override = true;
float mixer_gain = 0.0f;
@@ -521,7 +521,7 @@ static void audio_driver_flush(
const void *output_data = audio_st->output_samples_buf;
unsigned output_frames = (unsigned)src_data.output_frames;
if (audio_st->use_float)
if (audio_st->flags & AUDIO_FLAG_USE_FLOAT)
output_frames *= sizeof(float);
else
{
@@ -560,25 +560,26 @@ bool audio_driver_init_internal(
void *settings_data,
bool audio_cb_inited)
{
unsigned new_rate = 0;
float *samples_buf = NULL;
settings_t *settings = (settings_t*)settings_data;
size_t max_bufsamples = AUDIO_CHUNK_SIZE_NONBLOCKING * 2;
bool audio_enable = settings->bools.audio_enable;
bool audio_sync = settings->bools.audio_sync;
bool audio_rate_control = settings->bools.audio_rate_control;
float slowmotion_ratio = settings->floats.slowmotion_ratio;
runloop_state_t *runloop_st = runloop_state_get_ptr();
unsigned audio_latency = (runloop_st->audio_latency > settings->uints.audio_latency) ?
runloop_st->audio_latency : settings->uints.audio_latency;
unsigned new_rate = 0;
float *samples_buf = NULL;
settings_t *settings = (settings_t*)settings_data;
size_t max_bufsamples = AUDIO_CHUNK_SIZE_NONBLOCKING * 2;
bool audio_enable = settings->bools.audio_enable;
bool audio_sync = settings->bools.audio_sync;
bool audio_rate_control = settings->bools.audio_rate_control;
float slowmotion_ratio = settings->floats.slowmotion_ratio;
unsigned setting_audio_latency = settings->uints.audio_latency;
unsigned runloop_audio_latency = runloop_state_get_ptr()->audio_latency;
unsigned audio_latency = (runloop_audio_latency > setting_audio_latency) ?
runloop_audio_latency : setting_audio_latency;
#ifdef HAVE_REWIND
int16_t *rewind_buf = NULL;
int16_t *rewind_buf = NULL;
#endif
/* Accomodate rewind since at some point we might have two full buffers. */
size_t outsamples_max = AUDIO_CHUNK_SIZE_NONBLOCKING * 2 * AUDIO_MAX_RATIO * slowmotion_ratio;
int16_t *conv_buf = (int16_t*)memalign_alloc(64, outsamples_max * sizeof(int16_t));
float *audio_buf = (float*)memalign_alloc(64, AUDIO_CHUNK_SIZE_NONBLOCKING * 2 * sizeof(float));
bool verbosity_enabled = verbosity_is_enabled();
size_t outsamples_max = AUDIO_CHUNK_SIZE_NONBLOCKING * 2 * AUDIO_MAX_RATIO * slowmotion_ratio;
int16_t *conv_buf = (int16_t*)memalign_alloc(64, outsamples_max * sizeof(int16_t));
float *audio_buf = (float*)memalign_alloc(64, AUDIO_CHUNK_SIZE_NONBLOCKING * 2 * sizeof(float));
bool verbosity_enabled = verbosity_is_enabled();
convert_s16_to_float_init_simd();
convert_float_to_s16_init_simd();
@@ -607,13 +608,13 @@ bool audio_driver_init_internal(
if (!rewind_buf)
goto error;
audio_driver_st.rewind_buf = rewind_buf;
audio_driver_st.rewind_size = max_bufsamples;
audio_driver_st.rewind_buf = rewind_buf;
audio_driver_st.rewind_size = max_bufsamples;
#endif
if (!audio_enable)
{
audio_driver_st.active = false;
audio_driver_st.flags &= ~AUDIO_FLAG_ACTIVE;
return false;
}
@@ -627,7 +628,7 @@ bool audio_driver_init_internal(
if (!audio_driver_st.current_audio || !audio_driver_st.current_audio->init)
{
RARCH_ERR("Failed to initialize audio driver. Will continue without audio.\n");
audio_driver_st.active = false;
audio_driver_st.flags &= ~AUDIO_FLAG_ACTIVE;
return false;
}
@@ -667,19 +668,20 @@ bool audio_driver_init_internal(
if (!audio_driver_st.context_audio_data)
{
RARCH_ERR("Failed to initialize audio driver. Will continue without audio.\n");
audio_driver_st.active = false;
audio_driver_st.flags &= ~AUDIO_FLAG_ACTIVE;
}
audio_driver_st.use_float = false;
if ( audio_driver_st.active
audio_driver_st.flags &= ~AUDIO_FLAG_USE_FLOAT;
if ( (audio_driver_st.flags & AUDIO_FLAG_ACTIVE)
&& audio_driver_st.current_audio->use_float(
audio_driver_st.context_audio_data))
audio_driver_st.use_float = true;
audio_driver_st.flags |= AUDIO_FLAG_USE_FLOAT;
if (!audio_sync && audio_driver_st.active)
if ( !audio_sync
&& (audio_driver_st.flags & AUDIO_FLAG_ACTIVE))
{
if (audio_driver_st.active &&
audio_driver_st.context_audio_data)
if ( (audio_driver_st.flags & AUDIO_FLAG_ACTIVE)
&& audio_driver_st.context_audio_data)
audio_driver_st.current_audio->set_nonblock_state(
audio_driver_st.context_audio_data, true);
@@ -720,7 +722,7 @@ bool audio_driver_init_internal(
{
RARCH_ERR("Failed to initialize resampler \"%s\".\n",
audio_driver_st.resampler_ident);
audio_driver_st.active = false;
audio_driver_st.flags &= ~AUDIO_FLAG_ACTIVE;
}
audio_driver_st.data_ptr = 0;
@@ -736,12 +738,12 @@ bool audio_driver_init_internal(
goto error;
audio_driver_st.output_samples_buf = (float*)samples_buf;
audio_driver_st.control = false;
audio_driver_st.flags &= ~AUDIO_FLAG_CONTROL;
if (
!audio_cb_inited
&& audio_driver_st.active
&& audio_rate_control
!audio_cb_inited
&& (audio_driver_st.flags & AUDIO_FLAG_ACTIVE)
&& (audio_rate_control)
)
{
/* Audio rate control requires write_avail
@@ -751,7 +753,7 @@ bool audio_driver_init_internal(
audio_driver_st.buffer_size =
audio_driver_st.current_audio->buffer_size(
audio_driver_st.context_audio_data);
audio_driver_st.control = true;
audio_driver_st.flags |= AUDIO_FLAG_CONTROL;
}
else
RARCH_WARN("[Audio]: Rate control was desired, but driver does not support needed features.\n");
@@ -767,8 +769,8 @@ bool audio_driver_init_internal(
/* Threaded driver is initially stopped. */
if (
audio_driver_st.active
&& audio_cb_inited
(audio_driver_st.flags & AUDIO_FLAG_ACTIVE)
&& audio_cb_inited
)
audio_driver_start(false);
@@ -780,10 +782,10 @@ error:
void audio_driver_sample(int16_t left, int16_t right)
{
uint32_t runloop_flags;
audio_driver_state_t *audio_st = &audio_driver_st;
recording_state_t *recording_st = NULL;
runloop_state_t *runloop_st = NULL;
if (audio_st->suspended)
if (audio_st->flags & AUDIO_FLAG_SUSPENDED)
return;
audio_st->output_samples_conv_buf[audio_st->data_ptr++] = left;
audio_st->output_samples_conv_buf[audio_st->data_ptr++] = right;
@@ -791,7 +793,7 @@ void audio_driver_sample(int16_t left, int16_t right)
if (audio_st->data_ptr < audio_st->chunk_size)
return;
runloop_st = runloop_state_get_ptr();
runloop_flags = runloop_get_flags();
recording_st = recording_state_get_ptr();
if ( recording_st->data &&
@@ -806,30 +808,32 @@ void audio_driver_sample(int16_t left, int16_t right)
recording_st->driver->push_audio(recording_st->data, &ffemu_data);
}
if (!( runloop_st->paused
|| !audio_st->active
|| !audio_st->output_samples_buf))
if (!( (runloop_flags & RUNLOOP_FLAG_PAUSED)
|| !(audio_st->flags & AUDIO_FLAG_ACTIVE)
|| !(audio_st->output_samples_buf)))
audio_driver_flush(audio_st,
config_get_ptr()->floats.slowmotion_ratio,
config_get_ptr()->bools.audio_fastforward_mute,
audio_st->output_samples_conv_buf,
audio_st->data_ptr,
runloop_st->slowmotion,
runloop_st->fastmotion);
runloop_flags & RUNLOOP_FLAG_SLOWMOTION,
runloop_flags & RUNLOOP_FLAG_FASTMOTION);
audio_st->data_ptr = 0;
}
size_t audio_driver_sample_batch(const int16_t *data, size_t frames)
{
uint32_t runloop_flags;
size_t frames_remaining = frames;
recording_state_t *record_st = recording_state_get_ptr();
runloop_state_t *runloop_st = runloop_state_get_ptr();
audio_driver_state_t *audio_st = &audio_driver_st;
if (audio_st->suspended || (frames < 1))
if ((audio_st->flags & AUDIO_FLAG_SUSPENDED) || (frames < 1))
return frames;
runloop_flags = runloop_get_flags();
/* We want to run this loop at least once, so use a
* do...while (do...while has only a single conditional
* jump, as opposed to for and while which have a
@@ -854,16 +858,16 @@ size_t audio_driver_sample_batch(const int16_t *data, size_t frames)
record_st->driver->push_audio(record_st->data, &ffemu_data);
}
if (!( runloop_st->paused
|| !audio_st->active
|| !audio_st->output_samples_buf))
if (!( (runloop_flags & RUNLOOP_FLAG_PAUSED)
|| !(audio_st->flags & AUDIO_FLAG_ACTIVE)
|| !(audio_st->output_samples_buf)))
audio_driver_flush(audio_st,
config_get_ptr()->floats.slowmotion_ratio,
config_get_ptr()->bools.audio_fastforward_mute,
data,
frames_to_write << 1,
runloop_st->slowmotion,
runloop_st->fastmotion);
runloop_flags & RUNLOOP_FLAG_SLOWMOTION,
runloop_flags & RUNLOOP_FLAG_FASTMOTION);
frames_remaining -= frames_to_write;
data += frames_to_write << 1;
@@ -917,18 +921,13 @@ bool audio_driver_dsp_filter_init(const char *device)
retro_dsp_filter_t *audio_driver_dsp = NULL;
struct string_list *plugs = NULL;
#if defined(HAVE_DYLIB) && !defined(HAVE_FILTERS_BUILTIN)
char basedir[PATH_MAX_LENGTH];
char ext_name[PATH_MAX_LENGTH];
basedir[0] = ext_name[0] = '\0';
char ext_name[32];
char basedir[256];
ext_name[0] = '\0';
fill_pathname_basedir(basedir, device, sizeof(basedir));
if (!frontend_driver_get_core_extension(ext_name, sizeof(ext_name)))
return false;
plugs = dir_list_new(basedir, ext_name, false, true, false, false);
if (!plugs)
if (!(plugs = dir_list_new(basedir, ext_name, false, true, false, false)))
return false;
#endif
audio_driver_dsp = retro_dsp_filter_new(
@@ -954,10 +953,10 @@ float audio_driver_monitor_adjust_system_rates(
unsigned video_swap_interval,
float audio_max_timing_skew)
{
float inp_sample_rate = input_sample_rate;
const float target_video_sync_rate = video_refresh_rate
/ video_swap_interval;
float timing_skew =
float inp_sample_rate = input_sample_rate;
float target_video_sync_rate = video_refresh_rate
/ (float)video_swap_interval;
float timing_skew =
fabs(1.0f - input_fps / target_video_sync_rate);
if (timing_skew <= audio_max_timing_skew)
return (inp_sample_rate * target_video_sync_rate / input_fps);
@@ -1103,7 +1102,6 @@ static void audio_mixer_menu_stop_cb(
}
break;
case AUDIO_MIXER_SOUND_STOPPED:
break;
case AUDIO_MIXER_SOUND_REPEATED:
break;
}
@@ -1153,7 +1151,6 @@ static void audio_mixer_play_stop_sequential_cb(
}
break;
case AUDIO_MIXER_SOUND_STOPPED:
break;
case AUDIO_MIXER_SOUND_REPEATED:
break;
}
@@ -1167,8 +1164,8 @@ static bool audio_driver_mixer_get_free_stream_slot(
if (type == AUDIO_STREAM_TYPE_USER)
{
i = 0;
count = AUDIO_MIXER_MAX_STREAMS;
i = 0;
count = AUDIO_MIXER_MAX_STREAMS;
}
for (; i < count; i++)
@@ -1189,7 +1186,7 @@ bool audio_driver_mixer_add_stream(audio_mixer_stream_params_t *params)
audio_mixer_voice_t *voice = NULL;
audio_mixer_sound_t *handle = NULL;
audio_mixer_stop_cb_t stop_cb = audio_mixer_play_stop_cb;
bool looped = false;
bool looped = (params->state == AUDIO_STREAM_STATE_PLAYING_LOOPED);
void *buf = NULL;
if (params->stream_type == AUDIO_STREAM_TYPE_NONE)
@@ -1209,18 +1206,14 @@ bool audio_driver_mixer_add_stream(audio_mixer_stream_params_t *params)
break;
case AUDIO_MIXER_SLOT_SELECTION_AUTOMATIC:
default:
if (!audio_driver_mixer_get_free_stream_slot(
&free_slot, params->stream_type))
return false;
break;
return audio_driver_mixer_get_free_stream_slot(
&free_slot, params->stream_type);
}
if (params->state == AUDIO_STREAM_STATE_NONE)
return false;
buf = malloc(params->bufsize);
if (!buf)
if (!(buf = malloc(params->bufsize)))
return false;
memcpy(buf, params->buf, params->bufsize);
@@ -1266,19 +1259,11 @@ bool audio_driver_mixer_add_stream(audio_mixer_stream_params_t *params)
switch (params->state)
{
case AUDIO_STREAM_STATE_PLAYING_LOOPED:
looped = true;
voice = audio_mixer_play(handle, looped, params->volume,
audio_driver_st.resampler_ident,
audio_driver_st.resampler_quality, stop_cb);
break;
case AUDIO_STREAM_STATE_PLAYING:
voice = audio_mixer_play(handle, looped, params->volume,
audio_driver_st.resampler_ident,
audio_driver_st.resampler_quality, stop_cb);
break;
case AUDIO_STREAM_STATE_PLAYING_SEQUENTIAL:
stop_cb = audio_mixer_play_stop_sequential_cb;
/* fall-through */
case AUDIO_STREAM_STATE_PLAYING_LOOPED:
case AUDIO_STREAM_STATE_PLAYING:
voice = audio_mixer_play(handle, looped, params->volume,
audio_driver_st.resampler_ident,
audio_driver_st.resampler_quality, stop_cb);
@@ -1287,7 +1272,7 @@ bool audio_driver_mixer_add_stream(audio_mixer_stream_params_t *params)
break;
}
audio_driver_st.mixer_active = true;
audio_driver_st.flags |= AUDIO_FLAG_MIXER_ACTIVE;
audio_driver_st.mixer_streams[free_slot].name =
!string_is_empty(params->basename) ? strdup(params->basename) : NULL;
@@ -1339,20 +1324,16 @@ static void audio_driver_mixer_play_stream_internal(
static void audio_driver_load_menu_bgm_callback(retro_task_t *task,
void *task_data, void *user_data, const char *error)
{
bool contentless = false;
bool is_inited = false;
content_get_status(&contentless, &is_inited);
if (!is_inited)
uint8_t flags = content_get_flags();
if (!(flags & CONTENT_ST_FLAG_IS_INITED))
audio_driver_mixer_play_menu_sound_looped(AUDIO_MIXER_SYSTEM_SLOT_BGM);
}
void audio_driver_load_system_sounds(void)
{
char basename_noext[256];
char sounds_path[PATH_MAX_LENGTH];
char sounds_fallback_path[PATH_MAX_LENGTH];
char basename_noext[PATH_MAX_LENGTH];
settings_t *settings = config_get_ptr();
const char *dir_assets = settings->paths.directory_assets;
const bool audio_enable_menu = settings->bools.audio_enable_menu;
@@ -1373,10 +1354,9 @@ void audio_driver_load_system_sounds(void)
if (!audio_enable_menu && !audio_enable_cheevo_unlock)
goto end;
sounds_path[0] = sounds_fallback_path[0] =
basename_noext[0] ='\0';
sounds_path[0] = basename_noext[0] ='\0';
fill_pathname_join(
fill_pathname_join_special(
sounds_fallback_path,
dir_assets,
"sounds",
@@ -1419,7 +1399,8 @@ void audio_driver_load_system_sounds(void)
if (audio_driver_mixer_extension_supported(ext))
{
basename_noext[0] = '\0';
fill_pathname_base_noext(basename_noext, path, sizeof(basename_noext));
fill_pathname_base(basename_noext, path, sizeof(basename_noext));
path_remove_extension(basename_noext);
if (string_is_equal_noncase(basename_noext, "ok"))
path_ok = path;
@@ -1508,8 +1489,6 @@ void audio_driver_mixer_set_stream_volume(unsigned i, float vol)
void audio_driver_mixer_stop_stream(unsigned i)
{
bool set_state = false;
if (i >= AUDIO_MIXER_MAX_SYSTEM_STREAMS)
return;
@@ -1518,28 +1497,23 @@ void audio_driver_mixer_stop_stream(unsigned i)
case AUDIO_STREAM_STATE_PLAYING:
case AUDIO_STREAM_STATE_PLAYING_LOOPED:
case AUDIO_STREAM_STATE_PLAYING_SEQUENTIAL:
set_state = true;
{
audio_mixer_voice_t *voice = audio_driver_st.mixer_streams[i].voice;
if (voice)
audio_mixer_stop(voice);
audio_driver_st.mixer_streams[i].state = AUDIO_STREAM_STATE_STOPPED;
audio_driver_st.mixer_streams[i].volume = 1.0f;
}
break;
case AUDIO_STREAM_STATE_STOPPED:
case AUDIO_STREAM_STATE_NONE:
break;
}
if (set_state)
{
audio_mixer_voice_t *voice = audio_driver_st.mixer_streams[i].voice;
if (voice)
audio_mixer_stop(voice);
audio_driver_st.mixer_streams[i].state = AUDIO_STREAM_STATE_STOPPED;
audio_driver_st.mixer_streams[i].volume = 1.0f;
}
}
void audio_driver_mixer_remove_stream(unsigned i)
{
bool destroy = false;
if (i >= AUDIO_MIXER_MAX_SYSTEM_STREAMS)
return;
@@ -1549,31 +1523,28 @@ void audio_driver_mixer_remove_stream(unsigned i)
case AUDIO_STREAM_STATE_PLAYING_LOOPED:
case AUDIO_STREAM_STATE_PLAYING_SEQUENTIAL:
audio_driver_mixer_stop_stream(i);
destroy = true;
break;
/* fall-through */
case AUDIO_STREAM_STATE_STOPPED:
destroy = true;
{
audio_mixer_sound_t *handle = audio_driver_st.mixer_streams[i].handle;
if (handle)
audio_mixer_destroy(handle);
if (!string_is_empty(audio_driver_st.mixer_streams[i].name))
free(audio_driver_st.mixer_streams[i].name);
audio_driver_st.mixer_streams[i].state = AUDIO_STREAM_STATE_NONE;
audio_driver_st.mixer_streams[i].stop_cb = NULL;
audio_driver_st.mixer_streams[i].volume = 0.0f;
audio_driver_st.mixer_streams[i].handle = NULL;
audio_driver_st.mixer_streams[i].voice = NULL;
audio_driver_st.mixer_streams[i].name = NULL;
}
break;
case AUDIO_STREAM_STATE_NONE:
break;
}
if (destroy)
{
audio_mixer_sound_t *handle = audio_driver_st.mixer_streams[i].handle;
if (handle)
audio_mixer_destroy(handle);
if (!string_is_empty(audio_driver_st.mixer_streams[i].name))
free(audio_driver_st.mixer_streams[i].name);
audio_driver_st.mixer_streams[i].state = AUDIO_STREAM_STATE_NONE;
audio_driver_st.mixer_streams[i].stop_cb = NULL;
audio_driver_st.mixer_streams[i].volume = 0.0f;
audio_driver_st.mixer_streams[i].handle = NULL;
audio_driver_st.mixer_streams[i].voice = NULL;
audio_driver_st.mixer_streams[i].name = NULL;
}
}
bool audio_driver_mixer_toggle_mute(void)
@@ -1606,15 +1577,18 @@ bool audio_driver_disable_callback(void)
bool audio_driver_callback(void)
{
settings_t *settings = config_get_ptr();
bool runloop_paused = runloop_state_get_ptr()->paused;
uint32_t runloop_flags = runloop_get_flags();
bool runloop_paused = runloop_flags & RUNLOOP_FLAG_PAUSED;
#ifdef HAVE_MENU
#ifdef HAVE_NETWORKING
bool core_paused = runloop_paused ||
(settings->bools.menu_pause_libretro && menu_state_get_ptr()->alive &&
netplay_driver_ctl(RARCH_NETPLAY_CTL_ALLOW_PAUSE, NULL));
( settings->bools.menu_pause_libretro
&& (menu_state_get_ptr()->flags & MENU_ST_FLAG_ALIVE)
&& netplay_driver_ctl(RARCH_NETPLAY_CTL_ALLOW_PAUSE, NULL));
#else
bool core_paused = runloop_paused ||
(settings->bools.menu_pause_libretro && menu_state_get_ptr()->alive);
(settings->bools.menu_pause_libretro
&& (menu_state_get_ptr()->flags & MENU_ST_FLAG_ALIVE));
#endif
#else
bool core_paused = runloop_paused;
@@ -1661,7 +1635,7 @@ bool audio_driver_start(bool is_shutdown)
error:
RARCH_ERR("%s\n",
msg_hash_to_str(MSG_FAILED_TO_START_AUDIO_DRIVER));
audio_driver_st.active = false;
audio_driver_st.flags &= ~AUDIO_FLAG_ACTIVE;
return false;
}
@@ -1682,7 +1656,7 @@ void audio_driver_frame_is_reverse(void)
{
audio_driver_state_t *audio_st = &audio_driver_st;
recording_state_t *recording_st = recording_state_get_ptr();
runloop_state_t *runloop_st = runloop_state_get_ptr();
uint32_t runloop_flags = runloop_get_flags();
/* We just rewound. Flush rewind audio buffer. */
if ( recording_st->data &&
@@ -1702,10 +1676,10 @@ void audio_driver_frame_is_reverse(void)
}
if (!(
runloop_st->paused
|| !audio_st->active
|| !audio_st->output_samples_buf))
if (!audio_st->suspended)
(runloop_flags & RUNLOOP_FLAG_PAUSED)
|| !(audio_st->flags & AUDIO_FLAG_ACTIVE)
|| !(audio_st->output_samples_buf)))
if (!(audio_st->flags & AUDIO_FLAG_SUSPENDED))
{
settings_t *settings = config_get_ptr();
audio_driver_flush(audio_st,
@@ -1715,8 +1689,8 @@ void audio_driver_frame_is_reverse(void)
audio_st->rewind_ptr,
audio_st->rewind_size -
audio_st->rewind_ptr,
runloop_st->slowmotion,
runloop_st->fastmotion);
runloop_flags & RUNLOOP_FLAG_SLOWMOTION,
runloop_flags & RUNLOOP_FLAG_FASTMOTION);
}
}
#endif
@@ -1847,7 +1821,7 @@ void audio_driver_menu_sample(void)
static int16_t samples_buf[1024] = {0};
settings_t *settings = config_get_ptr();
video_driver_state_t *video_st = video_state_get_ptr();
runloop_state_t *runloop_st = runloop_state_get_ptr();
uint32_t runloop_flags = runloop_get_flags();
recording_state_t *recording_st = recording_state_get_ptr();
struct retro_system_av_info *av_info = &video_st->av_info;
const struct retro_system_timing *info =
@@ -1855,10 +1829,10 @@ void audio_driver_menu_sample(void)
unsigned sample_count = (info->sample_rate / info->fps) * 2;
audio_driver_state_t *audio_st = &audio_driver_st;
bool check_flush = !(
runloop_st->paused
|| !audio_st->active
(runloop_flags & RUNLOOP_FLAG_PAUSED)
|| !(audio_st->flags & AUDIO_FLAG_ACTIVE)
|| !audio_st->output_samples_buf);
if (audio_st->suspended)
if ((audio_st->flags & AUDIO_FLAG_SUSPENDED))
check_flush = false;
while (sample_count > 1024)
@@ -1881,8 +1855,8 @@ void audio_driver_menu_sample(void)
settings->bools.audio_fastforward_mute,
samples_buf,
1024,
runloop_st->slowmotion,
runloop_st->fastmotion);
runloop_flags & RUNLOOP_FLAG_SLOWMOTION,
runloop_flags & RUNLOOP_FLAG_FASTMOTION);
sample_count -= 1024;
}
if ( recording_st->data &&
@@ -1903,7 +1877,7 @@ void audio_driver_menu_sample(void)
settings->bools.audio_fastforward_mute,
samples_buf,
sample_count,
runloop_st->slowmotion,
runloop_st->fastmotion);
runloop_flags & RUNLOOP_FLAG_SLOWMOTION,
runloop_flags & RUNLOOP_FLAG_FASTMOTION);
}
#endif
+12 -8
View File
@@ -158,6 +158,16 @@ typedef struct audio_driver
size_t (*buffer_size)(void *data);
} audio_driver_t;
enum audio_driver_state_flags
{
AUDIO_FLAG_ACTIVE = (1 << 0),
AUDIO_FLAG_USE_FLOAT = (1 << 1),
AUDIO_FLAG_SUSPENDED = (1 << 2),
AUDIO_FLAG_MIXER_ACTIVE = (1 << 3),
AUDIO_FLAG_HARD_DISABLE = (1 << 4),
AUDIO_FLAG_CONTROL = (1 << 5)
};
typedef struct
{
double source_ratio_original;
@@ -210,19 +220,13 @@ typedef struct
enum resampler_quality resampler_quality;
uint8_t flags;
char resampler_ident[64];
bool active;
bool control;
bool mute_enable;
bool use_float;
bool suspended;
#ifdef HAVE_AUDIOMIXER
bool mixer_mute_enable;
bool mixer_active;
#endif
#ifdef HAVE_RUNAHEAD
bool hard_disable;
#endif
} audio_driver_state_t;
+4 -3
View File
@@ -79,13 +79,14 @@ static void *gx_audio_init(const char *device,
AIInit(NULL);
AIRegisterDMACallback(dma_callback);
//ranges 0-32000 (default low) and 40000-47999 (in settings going down from 48000) -> set to 32000 hz
/* Ranges 0-32000 (default low) and 40000-47999
(in settings going down from 48000) -> set to 32000 hz */
if (rate <= 32000 || (rate >= 40000 && rate < 48000))
{
AISetDSPSampleRate(AI_SAMPLERATE_32KHZ);
*new_rate = 32000;
}
else //ranges 32001-39999 (in settings going up from 32000) and 48000-max (default high) -> set to 48000 hz
else /* Ranges 32001-39999 (in settings going up from 32000) and 48000-max (default high) -> set to 48000 hz */
{
AISetDSPSampleRate(AI_SAMPLERATE_48KHZ);
*new_rate = 48000;
@@ -93,7 +94,7 @@ static void *gx_audio_init(const char *device,
wa->dma_write = BLOCKS - 1;
DCFlushRange(wa->data, sizeof(wa->data));
stop_audio = false;
stop_audio = false;
AIInitDMA((uint32_t)wa->data[wa->dma_next], CHUNK_SIZE);
AIStartDMA();
+23 -28
View File
@@ -34,10 +34,9 @@
#include <pspkernel.h>
#include <pspaudio.h>
#elif defined(ORBIS)
#include <audioout.h>
#define SCE_AUDIO_OUT_PORT_TYPE_MAIN 0
#define SCE_AUDIO_OUT_MODE_STEREO 1
#define SceUID uint32_t
#include <libSceAudioOut.h>
#include <defines/ps4_defines.h>
#include <verbosity.h>
#endif
#include "../audio_driver.h"
@@ -55,6 +54,7 @@ typedef struct psp_audio
SceUID thread;
int port;
int rate;
volatile uint16_t read_pos;
volatile uint16_t write_pos;
@@ -129,44 +129,35 @@ static void *psp_audio_init(const char *device,
unsigned block_frames,
unsigned *new_rate)
{
int port;
psp_audio_t *psp = (psp_audio_t*)calloc(1, sizeof(psp_audio_t));
if (!psp)
return NULL;
int port = configureAudio(rate);
if (port < 0)
if ((port = configureAudio(rate)) < 0)
return NULL;
#ifdef ORBIS
psp->buffer = (uint32_t*)
malloc(AUDIO_BUFFER_SIZE * sizeof(uint32_t));
#else
/* Cache aligned, not necessary but helpful. */
psp->buffer = (uint32_t*)
memalign(64, AUDIO_BUFFER_SIZE * sizeof(uint32_t));
#if defined(ORBIS)
sceAudioOutInit();
#endif
/* Cache aligned, not necessary but helpful. */
psp->buffer = (uint32_t*)malloc(AUDIO_BUFFER_SIZE * sizeof(uint32_t));
memset(psp->buffer, 0, AUDIO_BUFFER_SIZE * sizeof(uint32_t));
#ifdef ORBIS
psp->zeroBuffer = (uint32_t*)
malloc(AUDIO_OUT_COUNT * sizeof(uint32_t));
#else
psp->zeroBuffer = (uint32_t*)
memalign(64, AUDIO_OUT_COUNT * sizeof(uint32_t));
#endif
psp->zeroBuffer = (uint32_t*)malloc(AUDIO_OUT_COUNT * sizeof(uint32_t));
memset(psp->zeroBuffer, 0, AUDIO_OUT_COUNT * sizeof(uint32_t));
psp->read_pos = 0;
psp->write_pos = 0;
psp->port = port;
psp->read_pos = 0;
psp->write_pos = 0;
psp->port = port;
psp->fifo_lock = slock_new();
psp->cond_lock = slock_new();
psp->cond = scond_new();
psp->fifo_lock = slock_new();
psp->cond_lock = slock_new();
psp->cond = scond_new();
psp->nonblock = false;
psp->running = true;
psp->nonblock = false;
psp->running = true;
psp->worker_thread = sthread_create(audioMainLoop, psp);
return psp;
@@ -263,6 +254,9 @@ static bool psp_audio_stop(void *data)
{
psp_audio_t* psp = (psp_audio_t*)data;
#if defined(ORBIS)
return false;
#else
if (psp){
psp->running = false;
@@ -273,6 +267,7 @@ static bool psp_audio_stop(void *data)
psp->worker_thread = NULL;
}
return true;
#endif
}
static bool psp_audio_start(void *data, bool is_shutdown)
+1 -1
View File
@@ -274,7 +274,7 @@ fail_audio_output:
fail_audio_ipc:
switch_audio_ipc_finalize();
fail:
free(swa); // freeing a null ptr is valid
free(swa); /* freeing a NULL ptr is valid */
return NULL;
}
+20 -11
View File
@@ -57,12 +57,17 @@ typedef struct xaudio2 xaudio2_t;
#define XAUDIO2_WRITE_AVAILABLE(handle) ((handle)->bufsize * (MAX_BUFFERS - (handle)->buffers - 1))
enum xa_flags
{
XA2_FLAG_NONBLOCK = (1 << 0),
XA2_FLAG_IS_PAUSED = (1 << 1)
};
typedef struct
{
xaudio2_t *xa;
size_t bufsize;
bool nonblock;
bool is_paused;
uint8_t flags;
} xa_t;
/* Forward declarations */
@@ -323,8 +328,7 @@ static void *xa_init(const char *device, unsigned rate, unsigned latency,
bufsize = latency * rate / 1000;
xa->bufsize = bufsize * 2 * sizeof(float);
xa->xa = xaudio2_new(rate, 2, xa->bufsize, device);
if (!xa->xa)
if (!(xa->xa = xaudio2_new(rate, 2, xa->bufsize, device)))
{
RARCH_ERR("[XAudio2] Failed to init driver.\n");
free(xa);
@@ -344,7 +348,7 @@ static ssize_t xa_write(void *data, const void *buf, size_t size)
xaudio2_t *handle = xa->xa;
const uint8_t *buffer = (const uint8_t*)buf;
if (xa->nonblock)
if (xa->flags & XA2_FLAG_NONBLOCK)
{
size_t avail = XAUDIO2_WRITE_AVAILABLE(xa->xa);
@@ -403,8 +407,8 @@ static ssize_t xa_write(void *data, const void *buf, size_t size)
static bool xa_stop(void *data)
{
xa_t *xa = (xa_t*)data;
xa->is_paused = true;
xa_t *xa = (xa_t*)data;
xa->flags |= XA2_FLAG_IS_PAUSED;
return true;
}
@@ -413,20 +417,25 @@ static bool xa_alive(void *data)
xa_t *xa = (xa_t*)data;
if (!xa)
return false;
return !xa->is_paused;
return !(xa->flags & XA2_FLAG_IS_PAUSED);
}
static void xa_set_nonblock_state(void *data, bool state)
{
xa_t *xa = (xa_t*)data;
if (xa)
xa->nonblock = state;
{
if (state)
xa->flags |= XA2_FLAG_NONBLOCK;
else
xa->flags &= ~XA2_FLAG_NONBLOCK;
}
}
static bool xa_start(void *data, bool is_shutdown)
{
xa_t *xa = (xa_t*)data;
xa->is_paused = false;
xa_t *xa = (xa_t*)data;
xa->flags &= ~(XA2_FLAG_IS_PAUSED);
return true;
}
+60 -53
View File
@@ -94,7 +94,7 @@
****************************************************************************
*/
// Internal enumerations
/* Internal enumerations */
enum rsd_logtype
{
RSD_LOG_DEBUG = 0,
@@ -111,7 +111,7 @@ enum rsd_conn_type
RSD_CONN_PROTO = 0x100
};
// Some logging macros.
/* Some logging macros. */
#define RSD_WARN(fmt, args...)
#define RSD_ERR(fmt, args...)
#define RSD_DEBUG(fmt, args...)
@@ -159,7 +159,7 @@ static size_t rsnd_get_delay(rsound_t *rd);
static size_t rsnd_get_ptr(rsound_t *rd);
static int rsnd_reset(rsound_t *rd);
// Protocol functions
/* Protocol functions */
static int rsnd_send_identity_info(rsound_t *rd);
static int rsnd_close_ctl(rsound_t *rd);
static int rsnd_send_info_query(rsound_t *rd);
@@ -328,7 +328,7 @@ static int rsnd_send_header_info(rsound_t *rd)
uint16_t temp_bits = 8 * rsnd_format_to_samplesize(rd->format);
uint16_t temp_format = rd->format;
// Checks the format for native endian which will need to be set properly.
/* Checks the format for native endian which will need to be set properly. */
switch ( temp_format )
{
case RSD_S16_NE:
@@ -365,7 +365,7 @@ static int rsnd_send_header_info(rsound_t *rd)
to determine whether we're running it or not, so we can byte swap accordingly.
Could determine this compile time, but it was simpler to do it this way. */
// Fancy macros for embedding little endian values into the header.
/* Fancy macros for embedding little endian values into the header. */
#define SET32(buf,offset,x) (*((uint32_t*)(buf+offset)) = x)
#define SET16(buf,offset,x) (*((uint16_t*)(buf+offset)) = x)
@@ -383,7 +383,7 @@ static int rsnd_send_header_info(rsound_t *rd)
LSB32(temp32);
SET32(header, 16, temp32);
temp16 = 0; // PCM data
temp16 = 0; /* PCM data */
switch( rd->format )
{
@@ -404,10 +404,10 @@ static int rsnd_send_header_info(rsound_t *rd)
LSB16(temp16);
SET16(header, 20, temp16);
// Channels here
/* Channels here */
LSB16(temp_channels);
SET16(header, CHANNEL, temp_channels);
// Samples per sec
/* Samples per sec */
LSB32(temp_rate);
SET32(header, RATE, temp_rate);
@@ -419,7 +419,7 @@ static int rsnd_send_header_info(rsound_t *rd)
LSB16(temp16);
SET16(header, 32, temp16);
// Bits per sample
/* Bits per sample */
LSB16(temp_bits);
SET16(header, FRAMESIZE, temp_bits);
@@ -450,7 +450,7 @@ static int rsnd_get_backend_info ( rsound_t *rd )
#define LATENCY 0
#define CHUNKSIZE 1
// Header is 2 uint32_t's. = 8 bytes.
/* Header is 2 uint32_t's. = 8 bytes. */
uint32_t rsnd_header[2] = {0};
if ( rsnd_recv_chunk(rd->conn.socket, rsnd_header, RSND_HEADER_SIZE, 1) != RSND_HEADER_SIZE )
@@ -470,7 +470,7 @@ static int rsnd_get_backend_info ( rsound_t *rd )
rd->backend_info.latency = rsnd_header[LATENCY];
rd->backend_info.chunk_size = rsnd_header[CHUNKSIZE];
#define MAX_CHUNK_SIZE 1024 // We do not want larger chunk sizes than this.
#define MAX_CHUNK_SIZE 1024 /* We do not want larger chunk sizes than this. */
if ( rd->backend_info.chunk_size > MAX_CHUNK_SIZE || rd->backend_info.chunk_size <= 0 )
rd->backend_info.chunk_size = MAX_CHUNK_SIZE;
@@ -487,7 +487,7 @@ static int rsnd_get_backend_info ( rsound_t *rd )
return -1;
}
// Only bother with setting network buffer size if we're doing TCP.
/* Only bother with setting network buffer size if we're doing TCP. */
if ( rd->conn_type & RSD_CONN_TCP )
{
#define MAX_TCP_BUFSIZE (1 << 14)
@@ -507,17 +507,17 @@ static int rsnd_get_backend_info ( rsound_t *rd )
setsockopt(rd->conn.ctl_socket, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof(int));
}
// Can we read the last 8 bytes so we can use the protocol interface?
// This is non-blocking.
/* Can we read the last 8 bytes so we can use the protocol interface? */
/* This is non-blocking. */
if ( rsnd_recv_chunk(rd->conn.socket, rsnd_header, RSND_HEADER_SIZE, 0) == RSND_HEADER_SIZE )
rd->conn_type |= RSD_CONN_PROTO;
else
{ RSD_DEBUG("[RSound] Failed to get new proto.\n"); }
// We no longer want to read from this socket.
/* We no longer want to read from this socket. */
#ifdef _WIN32
net_shutdown(rd->conn.socket, SD_RECEIVE);
#elif !defined(__APPLE__) // OSX doesn't seem to like shutdown()
#elif !defined(__APPLE__) /* OSX doesn't seem to like shutdown() */
net_shutdown(rd->conn.socket, SHUT_RD);
#endif
@@ -727,7 +727,7 @@ static int64_t rsnd_get_time_usec(void)
{
#if defined(_WIN32)
static LARGE_INTEGER freq;
if (!freq.QuadPart && !QueryPerformanceFrequency(&freq)) // Frequency is guaranteed to not change.
if (!freq.QuadPart && !QueryPerformanceFrequency(&freq)) /* Frequency is guaranteed to not change. */
return 0;
LARGE_INTEGER count;
@@ -738,7 +738,7 @@ static int64_t rsnd_get_time_usec(void)
return sysGetSystemTime();
#elif defined(GEKKO)
return ticks_to_microsecs(gettime());
#elif defined(__MACH__) // OSX doesn't have clock_gettime ...
#elif defined(__MACH__) /* OSX doesn't have clock_gettime ... */
clock_serv_t cclock;
mach_timespec_t mts;
host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
@@ -818,10 +818,14 @@ static size_t rsnd_fill_buffer(rsound_t *rd, const char *buf, size_t size)
slock_lock(rd->thread.mutex);
fifo_write(rd->fifo_buffer, buf, size);
slock_unlock(rd->thread.mutex);
//RSD_DEBUG("[RSound] fill_buffer: Wrote to buffer.\n");
#if 0
RSD_DEBUG("[RSound] fill_buffer: Wrote to buffer.\n");
#endif
/* Send signal to thread that buffer has been updated */
//RSD_DEBUG("[RSound] fill_buffer: Waking up thread.\n");
#if 0
RSD_DEBUG("[RSound] fill_buffer: Waking up thread.\n");
#endif
scond_signal(rd->thread.cond);
return size;
@@ -941,7 +945,7 @@ static int rsnd_close_ctl(rsound_t *rd)
else if ( fd.revents & POLLHUP )
return 0;
// Let's wait for reply (or POLLHUP)
/* Let's wait for reply (or POLLHUP) */
fd.events = POLLIN;
int index = 0;
@@ -958,14 +962,14 @@ static int rsnd_close_ctl(rsound_t *rd)
if (fd.revents & POLLIN)
{
const char *subchar;
// We just read everything in large chunks until we find what we're looking for
/* We just read everything in large chunks until we find
* what we're looking for */
int rc = net_recv(rd->conn.ctl_socket, buf + index, RSD_PROTO_MAXSIZE*2 - 1 - index, 0);
if (rc <= 0 )
return -1;
// Can we find it directly?
/* Can we find it directly? */
if ( strstr(buf, "RSD 12 CLOSECTL OK") != NULL )
break;
else if ( strstr(buf, "RSD 15 CLOSECTL ERROR") != NULL )
@@ -989,8 +993,9 @@ static int rsnd_close_ctl(rsound_t *rd)
return 0;
}
// Sends delay info request to server on the ctl socket. This code section isn't critical, and will work if it works.
// It will never block.
/* Sends delay info request to server on the ctl socket.
* This code section isn't critical, and will work if it works.
* It will never block. */
static int rsnd_send_info_query(rsound_t *rd)
{
char tmpbuf[RSD_PROTO_MAXSIZE];
@@ -1007,15 +1012,15 @@ static int rsnd_send_info_query(rsound_t *rd)
return 0;
}
// We check if there's any pending delay information from the server.
// In that case, we read the packet.
/* We check if there's any pending delay information from the server.
* In that case, we read the packet. */
static int rsnd_update_server_info(rsound_t *rd)
{
long long int client_ptr = -1;
long long int serv_ptr = -1;
char temp[RSD_PROTO_MAXSIZE + 1] = {0};
// We read until we have the last (most recent) data in the network buffer.
/* We read until we have the last (most recent) data in the network buffer. */
for (;;)
{
ssize_t rc;
@@ -1023,7 +1028,7 @@ static int rsnd_update_server_info(rsound_t *rd)
char *tmpstr;
memset(temp, 0, sizeof(temp));
// We first recieve the small header. We just use the larger buffer as it is disposable.
/* We first recieve the small header. We just use the larger buffer as it is disposable. */
rc = rsnd_recv_chunk(rd->conn.ctl_socket, temp, RSD_PROTO_CHUNKSIZE, 0);
if ( rc == 0 )
break;
@@ -1035,22 +1040,22 @@ static int rsnd_update_server_info(rsound_t *rd)
if (!(substr = strstr(temp, "RSD")))
return -1;
// Jump over "RSD" in header
/* Jump over "RSD" in header */
substr += 3;
// The length of the argument message is stored in the small 8 byte header.
/* The length of the argument message is stored in the small 8 byte header. */
long int len = strtol(substr, NULL, 0);
// Recieve the rest of the data.
/* Recieve the rest of the data. */
if ( rsnd_recv_chunk(rd->conn.ctl_socket, temp, len, 0) < len )
return -1;
// We only bother if this is an INFO message.
/* We only bother if this is an INFO message. */
substr = strstr(temp, "INFO");
if (!substr)
continue;
// Jump over "INFO" in header
/* Jump over "INFO" in header */
substr += 4;
client_ptr = strtoull(substr, &tmpstr, 0);
@@ -1074,7 +1079,7 @@ static int rsnd_update_server_info(rsound_t *rd)
RSD_DEBUG("[RSound] Delay: %d, Delta: %d.\n", delay, delta);
// We only update the pointer if the data we got is quite recent.
/* We only update the pointer if the data we got is quite recent. */
if ( rd->total_written - client_ptr < 4 * rd->backend_info.chunk_size && rd->total_written > client_ptr )
{
int offset_delta = delta - delay;
@@ -1094,7 +1099,7 @@ static int rsnd_update_server_info(rsound_t *rd)
return 0;
}
// Sort of simulates the behavior of pthread_cancel()
/* Sort of simulates the behavior of pthread_cancel() */
#define _TEST_CANCEL() \
if ( !rd->thread_active ) \
break
@@ -1115,8 +1120,8 @@ static void rsnd_thread ( void * thread_data )
{
_TEST_CANCEL();
// We ask the server to send its latest backend data. Do not really care about errors atm.
// We only bother to check after 1 sec of audio has been played, as it might be quite inaccurate in the start of the stream.
/* We ask the server to send its latest backend data. Do not really care about errors atm.
* We only bother to check after 1 sec of audio has been played, as it might be quite inaccurate in the start of the stream. */
if ( (rd->conn_type & RSD_CONN_PROTO) && (rd->total_written > rd->channels * rd->rate * rd->samplesize) )
{
rsnd_send_info_query(rd);
@@ -1175,8 +1180,9 @@ static void rsnd_thread ( void * thread_data )
if ( rd->thread_active )
{
// There is a very slim change of getting a deadlock using the cond_wait scheme.
// This solution is rather dirty, but avoids complete deadlocks at the very least.
/* There is a very slim change of getting a deadlock using the cond_wait scheme.
* This solution is rather dirty, but avoids complete deadlocks at the very least.
*/
slock_lock(rd->thread.cond_mutex);
scond_signal(rd->thread.cond);
@@ -1243,9 +1249,10 @@ static void rsnd_cb_thread(void *thread_data)
}
else
{
// The network might do things in large chunks, so it may request large amounts of data in short periods of time.
// This breaks when the caller cannot buffer up big buffers beforehand, so do short sleeps inbetween.
// This is somewhat dirty, but I cannot see a better solution
/* The network might do things in large chunks, so it may request large amounts of data in short periods of time.
* This breaks when the caller cannot buffer up big buffers beforehand, so do short sleeps inbetween.
* This is somewhat dirty, but I cannot see a better solution
*/
retro_sleep(1);
}
}
@@ -1306,13 +1313,13 @@ static int rsnd_reset(rsound_t *rd)
int rsd_stop(rsound_t *rd)
{
const char buf[] = "RSD 5 STOP";
retro_assert(rd != NULL);
rsnd_stop_thread(rd);
const char buf[] = "RSD 5 STOP";
// Do not really care about errors here.
// The socket will be closed down in any case in rsnd_reset().
/* Do not really care about errors here.
* The socket will be closed down in any case in rsnd_reset(). */
rsnd_send_chunk(rd->conn.ctl_socket, buf, strlen(buf), 0);
rsnd_reset(rd);
@@ -1364,7 +1371,7 @@ int rsd_exec(rsound_t *rsound)
retro_assert(rsound != NULL);
RSD_DEBUG("[RSound] rsd_exec().\n");
// Makes sure we have a working connection
/* Makes sure we have a working connection */
if ( rsound->conn.socket < 0 )
{
RSD_DEBUG("[RSound] Calling rsd_start().\n");
@@ -1459,7 +1466,7 @@ int rsd_set_param(rsound_t *rd, enum rsd_settings option, void* param)
rd->max_latency = *((int*)param);
break;
// Checks if format is valid.
/* Checks if format is valid. */
case RSD_FORMAT:
rd->format = (uint16_t)(*((int*)param));
rd->samplesize = rsnd_format_to_samplesize(rd->format);
@@ -1555,7 +1562,8 @@ int rsd_pause(rsound_t* rsound, int enable)
int rsd_init(rsound_t** rsound)
{
*rsound = calloc(1, sizeof(rsound_t));
int format = RSD_S16_LE;
*rsound = calloc(1, sizeof(rsound_t));
if (*rsound == NULL)
return -1;
@@ -1569,8 +1577,7 @@ int rsd_init(rsound_t** rsound)
(*rsound)->cb_lock = slock_new();
(*rsound)->thread.cond = scond_new();
// Assumes default of S16_LE samples.
int format = RSD_S16_LE;
/* Assumes default of S16_LE samples. */
rsd_set_param(*rsound, RSD_FORMAT, &format);
rsd_set_param(*rsound, RSD_HOST, RSD_DEFAULT_HOST);
+7 -2
View File
@@ -170,8 +170,7 @@ static bool bluetoothctl_connect_device(void *data, unsigned idx)
string_list_free(list);
snprintf(btctl->command, sizeof(btctl->command), "\
bluetoothctl -- trust %s",
device);
bluetoothctl -- pairable on");
pclose(popen(btctl->command, "r"));
@@ -181,6 +180,12 @@ static bool bluetoothctl_connect_device(void *data, unsigned idx)
pclose(popen(btctl->command, "r"));
snprintf(btctl->command, sizeof(btctl->command), "\
bluetoothctl -- trust %s",
device);
pclose(popen(btctl->command, "r"));
snprintf(btctl->command, sizeof(btctl->command), "\
bluetoothctl -- connect %s",
device);
+35 -23
View File
@@ -164,18 +164,21 @@ bool cheat_manager_save(
(char*)"cheat%u_repeat_add_to_address"
};
cheats_file[0] = '\0';
if (!cheat_st->cheats || cheat_st->size == 0)
return false;
if (!cheat_database)
strlcpy(cheats_file, path, sizeof(cheats_file));
else
fill_pathname_join_concat(cheats_file,
cheat_database, path,
".cht",
sizeof(cheats_file));
{
size_t len = fill_pathname_join_special(cheats_file,
cheat_database, path, sizeof(cheats_file));
cheats_file[len ] = '.';
cheats_file[len+1] = 'c';
cheats_file[len+2] = 'h';
cheats_file[len+3] = 't';
cheats_file[len+4] = '\0';
}
if (!overwrite)
conf = config_file_new_from_path_to_string(cheats_file);
@@ -193,16 +196,22 @@ bool cheat_manager_save(
unsigned j;
char endian_key[100];
char key[256];
char desc_key[256];
char code_key[256];
char enable_key[256];
char desc_key[128];
char code_key[128];
char enable_key[128];
char formatted_number[12];
formatted_number[0] = '\0';
snprintf(formatted_number, sizeof(formatted_number), "cheat%u_", i);
key[0] = endian_key[0] = desc_key[0] = code_key[0] = enable_key[0] = '\0';
snprintf(endian_key, sizeof(endian_key), "cheat%u_big_endian", i);
snprintf(desc_key, sizeof(desc_key), "cheat%u_desc", i);
snprintf(code_key, sizeof(code_key), "cheat%u_code", i);
snprintf(enable_key, sizeof(enable_key), "cheat%u_enable", i);
strlcpy(endian_key, formatted_number, sizeof(endian_key));
strlcat(endian_key, "big_endian", sizeof(endian_key));
strlcpy(desc_key, formatted_number, sizeof(desc_key));
strlcat(desc_key, "desc", sizeof(desc_key));
strlcpy(code_key, formatted_number, sizeof(code_key));
strlcat(code_key, "code", sizeof(code_key));
strlcpy(enable_key, formatted_number, sizeof(enable_key));
strlcat(enable_key, "enable", sizeof(enable_key));
if (!string_is_empty(cheat_st->cheats[i].desc))
config_set_string(conf, desc_key, cheat_st->cheats[i].desc);
@@ -210,8 +219,15 @@ bool cheat_manager_save(
config_set_string(conf, desc_key, cheat_st->cheats[i].code);
config_set_string(conf, code_key, cheat_st->cheats[i].code);
config_set_bool(conf, enable_key, cheat_st->cheats[i].state);
config_set_bool(conf, endian_key, cheat_st->cheats[i].big_endian);
config_set_string(conf, enable_key,
cheat_st->cheats[i].state
? "true"
: "false");
config_set_string(conf, endian_key,
cheat_st->cheats[i].big_endian
? "true"
: "false"
);
data_ptrs[0] = &cheat_st->cheats[i].handler;
data_ptrs[1] = &cheat_st->cheats[i].memory_search_size;
@@ -702,8 +718,6 @@ static bool cheat_manager_get_game_specific_filename(
const char *core_name = NULL;
const char *game_name = NULL;
s1[0] = '\0';
if (!core_get_system_info(&system_info))
return false;
@@ -715,9 +729,7 @@ static bool cheat_manager_get_game_specific_filename(
string_is_empty(game_name))
return false;
s[0] = '\0';
fill_pathname_join(s1,
fill_pathname_join_special(s1,
path_cheat_database, core_name,
sizeof(s1));
@@ -728,7 +740,7 @@ static bool cheat_manager_get_game_specific_filename(
path_mkdir(s1);
}
fill_pathname_join(s, s1, game_name, len);
fill_pathname_join_special(s, s1, game_name, len);
return true;
}
+329 -185
View File
@@ -53,6 +53,7 @@
#include "cheevos.h"
#include "cheevos_client.h"
#include "cheevos_menu.h"
#include "cheevos_locals.h"
#include "../network/netplay/netplay.h"
@@ -256,6 +257,8 @@ static void rcheevos_activate_achievements(void)
if (result != RC_OK)
{
char buffer[256];
buffer[0] = '\0';
/* TODO/FIXME - localize */
snprintf(buffer, sizeof(buffer),
"Could not activate achievement %u \"%s\": %s",
achievement->id, achievement->title, rc_error_str(result));
@@ -290,7 +293,7 @@ static rcheevos_racheevo_t* rcheevos_find_cheevo(unsigned id)
return NULL;
}
static bool rcheevos_is_player_active()
static bool rcheevos_is_player_active(void)
{
if (netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_SPECTATING, NULL))
return false;
@@ -335,8 +338,13 @@ void rcheevos_award_achievement(rcheevos_locals_t* locals,
#endif
{
char buffer[256];
snprintf(buffer, sizeof(buffer), "%s: %s",
msg_hash_to_str(MSG_ACHIEVEMENT_UNLOCKED), cheevo->title);
size_t _len = strlcpy(buffer,
msg_hash_to_str(MSG_ACHIEVEMENT_UNLOCKED),
sizeof(buffer));
buffer[_len ] = ':';
buffer[_len+1] = ' ';
buffer[_len+2] = '\0';
strlcat(buffer, cheevo->title, sizeof(buffer));
runloop_msg_queue_push(buffer, 0, 2 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
runloop_msg_queue_push(cheevo->description, 0, 3 * 60, false, NULL,
@@ -406,6 +414,7 @@ static rcheevos_ralboard_t* rcheevos_find_lboard(unsigned id)
static void rcheevos_lboard_submit(rcheevos_locals_t* locals,
rcheevos_ralboard_t* lboard, int value, bool widgets_ready)
{
size_t _len;
char buffer[256];
char formatted_value[16];
@@ -430,8 +439,15 @@ static void rcheevos_lboard_submit(rcheevos_locals_t* locals,
formatted_value, lboard->id);
/* Show the on-screen message (regardless of notifications setting). */
snprintf(buffer, sizeof(buffer), "Submitted %s for %s",
formatted_value, lboard->title);
strlcpy(buffer, "Submitted ", sizeof(buffer));
_len = strlcat(buffer, formatted_value, sizeof(buffer));
buffer[_len ] = ' ';
buffer[_len+1] = 'f';
buffer[_len+2] = 'o';
buffer[_len+3] = 'r';
buffer[_len+4] = ' ';
buffer[_len+5] = '\0';
strlcat(buffer, lboard->title, sizeof(buffer));
runloop_msg_queue_push(buffer, 0, 2 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
@@ -456,8 +472,9 @@ static void rcheevos_lboard_canceled(rcheevos_ralboard_t * lboard,
if (rcheevos_locals.leaderboard_notifications)
{
snprintf(buffer, sizeof(buffer),
"Leaderboard attempt failed: %s", lboard->title);
strlcpy(buffer, "Leaderboard attempt failed: ",
sizeof(buffer));
strlcat(buffer, lboard->title, sizeof(buffer));
runloop_msg_queue_push(buffer, 0, 2 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
}
@@ -488,14 +505,18 @@ static void rcheevos_lboard_started(
if (rcheevos_locals.leaderboard_notifications)
{
size_t _len;
strlcpy(buffer, "Leaderboard attempt started: ",
sizeof(buffer));
_len = strlcat(buffer, lboard->title, sizeof(buffer));
if (lboard->description && *lboard->description)
snprintf(buffer, sizeof(buffer),
"Leaderboard attempt started: %s - %s",
lboard->title, lboard->description);
else
snprintf(buffer, sizeof(buffer),
"Leaderboard attempt started: %s",
lboard->title);
{
buffer[_len ] = ' ';
buffer[_len+1] = '-';
buffer[_len+2] = ' ';
buffer[_len+3] = '\0';
strlcat(buffer, lboard->description, sizeof(buffer));
}
runloop_msg_queue_push(buffer, 0, 2 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
@@ -542,25 +563,29 @@ static void rcheevos_challenge_ended(
#endif
int rcheevos_get_richpresence(char buffer[], int buffer_size)
int rcheevos_get_richpresence(char *s, size_t len)
{
if (rcheevos_is_player_active())
{
int ret = rc_runtime_get_richpresence(
&rcheevos_locals.runtime, buffer, buffer_size,
&rcheevos_locals.runtime, s, (unsigned)len,
&rcheevos_peek, NULL, NULL);
if (ret <= 0 && rcheevos_locals.game.title)
return snprintf(buffer, buffer_size, "Playing %s", rcheevos_locals.game.title);
{
/* TODO/FIXME - localize */
strlcpy(s, "Playing ", len);
strlcat(s, rcheevos_locals.game.title, len);
}
return ret;
}
else
if (rcheevos_locals.game.title)
{
if (rcheevos_locals.game.title)
return snprintf(buffer, buffer_size, "Spectating %s", rcheevos_locals.game.title);
return 0;
/* TODO/FIXME - localize */
strlcpy(s, "Spectating ", len);
return (int)strlcat(s, rcheevos_locals.game.title, len);
}
return 0;
}
void rcheevos_reset_game(bool widgets_ready)
@@ -614,10 +639,11 @@ bool rcheevos_unload(void)
{
settings_t* settings = config_get_ptr();
/* immediately mark the game as unloaded so the ping thread will terminate normally */
rcheevos_locals.game.id = -1;
/* Immediately mark the game as unloaded
so the ping thread will terminate normally */
rcheevos_locals.game.id = -1;
rcheevos_locals.game.console_id = 0;
rcheevos_locals.game.hash = NULL;
rcheevos_locals.game.hash = NULL;
#ifdef HAVE_THREADS
if (rcheevos_locals.load_info.state < RCHEEVOS_LOAD_STATE_DONE &&
@@ -650,7 +676,7 @@ bool rcheevos_unload(void)
{
CHEEVOS_FREE(rcheevos_locals.menuitems);
rcheevos_locals.menuitems = NULL;
rcheevos_locals.menuitem_capacity =
rcheevos_locals.menuitem_capacity =
rcheevos_locals.menuitem_count = 0;
}
#endif
@@ -663,13 +689,8 @@ bool rcheevos_unload(void)
rcheevos_locals.loaded = false;
rcheevos_locals.hardcore_active = false;
}
while (rcheevos_locals.game.hashes)
{
rcheevos_hash_entry_t* hash_entry = rcheevos_locals.game.hashes;
rcheevos_locals.game.hashes = hash_entry->next;
free(hash_entry);
rc_libretro_hash_set_destroy(&rcheevos_locals.game.hashes);
}
#ifdef HAVE_THREADS
@@ -736,6 +757,8 @@ static void rcheevos_activate_leaderboards(void)
if (result != RC_OK)
{
char buffer[256];
buffer[0] = '\0';
/* TODO/FIXME - localize */
snprintf(buffer, sizeof(buffer),
"Could not activate leaderboard %u \"%s\": %s",
leaderboard->id, leaderboard->title, rc_error_str(result));
@@ -752,7 +775,7 @@ static void rcheevos_activate_leaderboards(void)
}
}
static void rcheevos_deactivate_leaderboards()
static void rcheevos_deactivate_leaderboards(void)
{
rcheevos_ralboard_t* lboard = rcheevos_locals.game.leaderboards;
rcheevos_ralboard_t* stop = lboard +
@@ -834,6 +857,12 @@ void rcheevos_leaderboards_enabled_changed(void)
}
}
static void rcheevos_enforce_hardcore_settings(void)
{
/* disable slowdown */
runloop_state_get_ptr()->flags &= ~RUNLOOP_FLAG_SLOWMOTION;
}
static void rcheevos_toggle_hardcore_active(rcheevos_locals_t* locals)
{
settings_t* settings = config_get_ptr();
@@ -864,8 +893,7 @@ static void rcheevos_toggle_hardcore_active(rcheevos_locals_t* locals)
runloop_msg_queue_push(msg, 0, 3 * 60, true, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
/* disable slowdown */
runloop_state_get_ptr()->slowmotion = false;
rcheevos_enforce_hardcore_settings();
/* Reactivate leaderboards */
if (locals->leaderboards_enabled)
@@ -935,6 +963,9 @@ void rcheevos_toggle_hardcore_paused(void)
void rcheevos_hardcore_enabled_changed(void)
{
/* called whenever a setting that could potentially affect hardcore enabledness changes
* (i.e. cheevos_enable, hardcore_mode_enable) to synchronize the internal state to the configs.
* also called when a game is first loaded to synchronize the internal state to the configs. */
const settings_t* settings = config_get_ptr();
const bool enabled = settings
&& settings->bools.cheevos_enable
@@ -947,6 +978,12 @@ void rcheevos_hardcore_enabled_changed(void)
/* update leaderboard state flags */
rcheevos_leaderboards_enabled_changed();
}
else if (rcheevos_locals.hardcore_active && rcheevos_locals.loaded)
{
/* hardcore enabledness didn't change, but hardcore is active, so make
* sure to enforce the restrictions. */
rcheevos_enforce_hardcore_settings();
}
}
void rcheevos_validate_config_settings(void)
@@ -957,10 +994,21 @@ void rcheevos_validate_config_settings(void)
core_option_manager_t* coreopts = NULL;
struct retro_system_info *system =
&runloop_state_get_ptr()->system.info;
const settings_t* settings = config_get_ptr();
if (!system->library_name || !rcheevos_locals.hardcore_active)
return;
if (!settings->bools.video_frame_delay_auto && settings->uints.video_frame_delay != 0) {
const char* error = "Hardcore paused. Manual video frame delay setting not allowed.";
CHEEVOS_LOG(RCHEEVOS_TAG "%s\n", error);
rcheevos_pause_hardcore();
runloop_msg_queue_push(error, 0, 4 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_WARNING);
return;
}
if (!(disallowed_settings
= rc_libretro_get_disallowed_settings(system->library_name)))
return;
@@ -974,9 +1022,15 @@ void rcheevos_validate_config_settings(void)
const char* val = core_option_manager_get_val(coreopts, i);
if (!rc_libretro_is_setting_allowed(disallowed_settings, key, val))
{
size_t _len;
char buffer[256];
snprintf(buffer, sizeof(buffer),
"Hardcore paused. Setting not allowed: %s=%s", key, val);
strlcpy(buffer,
"Hardcore paused. Setting not allowed: ",
sizeof(buffer));
_len = strlcat(buffer, key, sizeof(buffer));
buffer[_len ] = '=';
buffer[_len+1] = '\0';
strlcat(buffer, val, sizeof(buffer));
CHEEVOS_LOG(RCHEEVOS_TAG "%s\n", buffer);
rcheevos_pause_hardcore();
@@ -986,6 +1040,23 @@ void rcheevos_validate_config_settings(void)
break;
}
}
if (rcheevos_locals.game.console_id &&
!rc_libretro_is_system_allowed(system->library_name, rcheevos_locals.game.console_id))
{
char buffer[256];
buffer[0] = '\0';
/* TODO/FIXME - localize */
snprintf(buffer, sizeof(buffer),
"Hardcore paused. You cannot earn hardcore achievements for %s using %s",
rc_console_name(rcheevos_locals.game.console_id), system->library_name);
CHEEVOS_LOG(RCHEEVOS_TAG "%s\n", buffer);
rcheevos_pause_hardcore();
runloop_msg_queue_push(buffer, 0, 4 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_WARNING);
return;
}
}
static void rcheevos_runtime_event_handler(
@@ -1127,8 +1198,15 @@ void rcheevos_test(void)
/* We were unable to initialize memory earlier, try now */
if (rcheevos_locals.memory.count == 0)
{
rcheevos_validate_memrefs(&rcheevos_locals);
/* rcheevos_validate_memrefs may decide the core doesn't support achievements and
* disable them. if so, bail. */
if (!rcheevos_locals.loaded)
return;
}
rc_runtime_do_frame(&rcheevos_locals.runtime,
&rcheevos_runtime_event_handler, rcheevos_peek, NULL, 0);
}
@@ -1371,7 +1449,7 @@ static void* rc_hash_handle_cd_open_track(
}
}
static void rc_hash_reset_cdreader_hooks()
static void rc_hash_reset_cdreader_hooks(void)
{
struct rc_hash_cdreader cdreader;
rc_hash_get_default_cdreader(&cdreader);
@@ -1381,10 +1459,10 @@ static void rc_hash_reset_cdreader_hooks()
/* end hooks */
void rcheevos_show_mastery_placard()
void rcheevos_show_mastery_placard(void)
{
const settings_t* settings = config_get_ptr();
char title[256];
const settings_t* settings = config_get_ptr();
if (rcheevos_locals.game.mastery_placard_shown)
return;
@@ -1392,7 +1470,9 @@ void rcheevos_show_mastery_placard()
rcheevos_locals.game.mastery_placard_shown = true;
snprintf(title, sizeof(title),
msg_hash_to_str(rcheevos_locals.hardcore_active ? MSG_CHEEVOS_MASTERED_GAME : MSG_CHEEVOS_COMPLETED_GAME),
msg_hash_to_str(rcheevos_locals.hardcore_active
? MSG_CHEEVOS_MASTERED_GAME
: MSG_CHEEVOS_COMPLETED_GAME),
rcheevos_locals.game.title);
title[sizeof(title) - 1] = '\0';
CHEEVOS_LOG(RCHEEVOS_TAG "%s\n", title);
@@ -1400,18 +1480,16 @@ void rcheevos_show_mastery_placard()
#if defined (HAVE_GFX_WIDGETS)
if (gfx_widgets_ready())
{
const bool content_runtime_log = settings->bools.content_runtime_log;
const bool content_runtime_log = settings->bools.content_runtime_log;
const bool content_runtime_log_aggr = settings->bools.content_runtime_log_aggregate;
char msg[128];
size_t len;
len = snprintf(msg, sizeof(msg), "%s", rcheevos_locals.displayname);
size_t len = strlcpy(msg, rcheevos_locals.displayname, sizeof(msg));
if (len < sizeof(msg) - 12 &&
(content_runtime_log || content_runtime_log_aggr))
{
const char* content_path = path_get(RARCH_PATH_CONTENT);
const char* core_path = path_get(RARCH_PATH_CORE);
const char* content_path = path_get(RARCH_PATH_CONTENT);
const char* core_path = path_get(RARCH_PATH_CORE);
runtime_log_t* runtime_log = runtime_log_init(
content_path, core_path,
settings->paths.directory_runtime_log,
@@ -1439,7 +1517,7 @@ void rcheevos_show_mastery_placard()
runloop_msg_queue_push(title, 0, 3 * 60, false, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
}
static void rcheevos_show_game_placard()
static void rcheevos_show_game_placard(void)
{
char msg[256];
const settings_t* settings = config_get_ptr();
@@ -1466,8 +1544,9 @@ static void rcheevos_show_game_placard()
number_of_active++;
}
/* TODO/FIXME - localize strings */
if (number_of_core == 0)
snprintf(msg, sizeof(msg), "This game has no achievements.");
strlcpy(msg, "This game has no achievements.", sizeof(msg));
else if (!number_of_unsupported)
{
if (settings->bools.cheevos_start_active)
@@ -1580,10 +1659,18 @@ static void rcheevos_start_session_async(retro_task_t* task)
}
#endif
/* if there's nothing for the runtime to process,
* disable hardcore. */
if (!needs_runtime)
{
/* if there's nothing for the runtime to process,
* disable hardcore. */
rcheevos_pause_hardcore();
}
else if (rcheevos_locals.hardcore_active)
{
/* hardcore is active. we're going to start processing
* achievements. make sure restrictions are enforced */
rcheevos_enforce_hardcore_settings();
}
task_set_finished(task, true);
@@ -1612,8 +1699,12 @@ static void rcheevos_start_session(void)
return;
}
task = task_init();
task->handler = rcheevos_start_session_async;
/* re-validate the config settings now that we know
* which console_id is active */
rcheevos_validate_config_settings();
task = task_init();
task->handler = rcheevos_start_session_async;
task->callback = rcheevos_start_session_finish;
task_queue_push(task);
}
@@ -1693,7 +1784,9 @@ static void rcheevos_fetch_game_data(void)
struct rcheevos_identify_game_data
{
struct rc_hash_iterator iterator;
char* path;
uint8_t* datacopy;
char hash[33];
};
static void rcheevos_identify_game_callback(void* userdata)
@@ -1701,47 +1794,82 @@ static void rcheevos_identify_game_callback(void* userdata)
struct rcheevos_identify_game_data* data =
(struct rcheevos_identify_game_data*)userdata;
if (data)
{
if (rcheevos_locals.game.id == 0)
{
/* previous hash didn't match, try the next one */
char hash[33];
if (rc_hash_iterate(hash, &data->iterator))
{
memcpy(rcheevos_locals.game.hashes->hash, hash, sizeof(hash));
rcheevos_locals.load_info.hashes_tried++;
rcheevos_locals.load_info.hashes_tried++;
rcheevos_client_identify_game(hash,
rcheevos_identify_game_callback, data);
return;
}
if (rcheevos_locals.game.id == 0)
{
/* previous hash didn't match, try the next one */
char new_hash[33];
int found_new_hash;
while ((found_new_hash = rc_hash_iterate(new_hash, &data->iterator)) != 0)
{
if (!rc_libretro_hash_set_get_game_id(&rcheevos_locals.game.hashes, new_hash))
break;
CHEEVOS_LOG(RCHEEVOS_TAG "Ignoring [%s]. Already tried.\n", new_hash);
}
/* no more hashes generated, free the iterator data */
if (data->datacopy)
free(data->datacopy);
free(data);
if (found_new_hash)
{
memcpy(data->hash, new_hash, sizeof(data->hash));
rcheevos_client_identify_game(data->hash,
rcheevos_identify_game_callback, data);
return;
}
}
rcheevos_locals.game.hashes->game_id = rcheevos_locals.game.id;
rc_libretro_hash_set_add(&rcheevos_locals.game.hashes,
data->path, rcheevos_locals.game.id, data->hash);
rcheevos_locals.game.hash =
rc_libretro_hash_set_get_hash(&rcheevos_locals.game.hashes, data->path);
if (data->iterator.path && strcmp(data->iterator.path, data->path) != 0)
{
rc_libretro_hash_set_add(&rcheevos_locals.game.hashes,
data->iterator.path, rcheevos_locals.game.id, data->hash);
rcheevos_locals.game.hash =
rc_libretro_hash_set_get_hash(&rcheevos_locals.game.hashes, data->iterator.path);
}
/* no more hashes generated, free the iterator data */
rc_hash_destroy_iterator(&data->iterator);
if (data->datacopy)
free(data->datacopy);
if (data->path)
free(data->path);
free(data);
/* hash resolution complete, proceed to fetching game data */
if (rcheevos_end_load_state() == 0)
rcheevos_fetch_game_data();
}
static int rcheevos_get_image_path(unsigned index, char* buffer, size_t buffer_size)
{
rarch_system_info_t* system = &runloop_state_get_ptr()->system;
if (!system->disk_control.cb.get_image_path)
return 0;
return system->disk_control.cb.get_image_path(index, buffer, buffer_size);
}
static bool rcheevos_identify_game(const struct retro_game_info* info)
{
struct rcheevos_identify_game_data* data;
struct rc_hash_filereader filereader;
struct rc_hash_iterator iterator;
size_t len;
char hash[33];
#ifndef DEBUG
settings_t* settings = config_get_ptr();
#endif
data = (struct rcheevos_identify_game_data*)
calloc(1, sizeof(struct rcheevos_identify_game_data));
if (!data)
{
CHEEVOS_LOG(RCHEEVOS_TAG "allocation failed\n");
return false;
}
/* provide hooks for reading files */
memset(&filereader, 0, sizeof(filereader));
filereader.open = rc_hash_handle_file_open;
@@ -1764,59 +1892,44 @@ static bool rcheevos_identify_game(const struct retro_game_info* info)
rc_hash_reset_cdreader_hooks();
/* fetch the first hash */
rc_hash_initialize_iterator(&iterator,
rc_hash_initialize_iterator(&data->iterator,
info->path, (uint8_t*)info->data, info->size);
if (!rc_hash_iterate(hash, &iterator))
if (!rc_hash_iterate(data->hash, &data->iterator))
{
CHEEVOS_LOG(RCHEEVOS_TAG "no hashes generated\n");
rc_hash_destroy_iterator(&data->iterator);
free(data);
return false;
}
rcheevos_locals.game.hashes = (rcheevos_hash_entry_t*)calloc(1, sizeof(rcheevos_hash_entry_t));
rcheevos_locals.game.hashes->path_djb2 = djb2_calculate(info->path);
rcheevos_locals.game.hash = rcheevos_locals.game.hashes->hash;
memcpy(rcheevos_locals.game.hashes->hash, hash, sizeof(hash));
rcheevos_locals.load_info.hashes_tried++;
rc_libretro_hash_set_init(&rcheevos_locals.game.hashes, info->path, rcheevos_get_image_path);
data->path = strdup(info->path);
if (iterator.consoles[iterator.index] == 0)
if (data->iterator.consoles[data->iterator.index] != 0)
{
/* no more potential matches, just try the one hash */
rcheevos_begin_load_state(RCHEEVOS_LOAD_STATE_IDENTIFYING_GAME);
rcheevos_client_identify_game(hash,
rcheevos_identify_game_callback, NULL);
return true;
}
/* multiple potential matches, clone the data for the next attempt */
data = (struct rcheevos_identify_game_data*)
calloc(1, sizeof(struct rcheevos_identify_game_data));
if (!data)
{
CHEEVOS_LOG(RCHEEVOS_TAG "allocation failed\n");
return false;
}
if (info->data)
{
len = info->size;
if (len > CHEEVOS_MB(64))
len = CHEEVOS_MB(64);
data->datacopy = (uint8_t*)malloc(len);
if (!data->datacopy)
/* multiple potential matches, clone the data for the next attempt */
if (info->data)
{
CHEEVOS_LOG(RCHEEVOS_TAG "allocation failed\n");
free(data);
return false;
len = info->size;
if (len > CHEEVOS_MB(64))
len = CHEEVOS_MB(64);
data->datacopy = (uint8_t*)malloc(len);
if (!data->datacopy)
{
CHEEVOS_LOG(RCHEEVOS_TAG "allocation failed\n");
rc_hash_destroy_iterator(&data->iterator);
free(data);
return false;
}
memcpy(data->datacopy, info->data, len);
data->iterator.buffer = data->datacopy;
}
memcpy(data->datacopy, info->data, len);
}
memcpy(&data->iterator, &iterator, sizeof(iterator));
rcheevos_begin_load_state(RCHEEVOS_LOAD_STATE_IDENTIFYING_GAME);
rcheevos_client_identify_game(hash,
rcheevos_client_identify_game(data->hash,
rcheevos_identify_game_callback, data);
return true;
}
@@ -1829,6 +1942,8 @@ static void rcheevos_login_callback(void* userdata)
if (settings->bools.cheevos_verbose_enable)
{
char msg[256];
msg[0] = '\0';
/* TODO/FIXME - localize */
snprintf(msg, sizeof(msg),
"RetroAchievements: Logged in as \"%s\".",
rcheevos_locals.displayname);
@@ -1844,10 +1959,14 @@ static void rcheevos_login_callback(void* userdata)
/* Increment the outstanding requests counter and set the load state */
void rcheevos_begin_load_state(enum rcheevos_load_state state)
{
CHEEVOS_LOCK(rcheevos_locals.load_info.request_lock);
#ifdef HAVE_THREADS
slock_lock(rcheevos_locals.load_info.request_lock);
#endif
++rcheevos_locals.load_info.outstanding_requests;
rcheevos_locals.load_info.state = state;
CHEEVOS_UNLOCK(rcheevos_locals.load_info.request_lock);
#ifdef HAVE_THREADS
slock_unlock(rcheevos_locals.load_info.request_lock);
#endif
}
/* Decrement and return the outstanding requests counter.
@@ -1856,11 +1975,15 @@ int rcheevos_end_load_state(void)
{
int requests = 0;
CHEEVOS_LOCK(rcheevos_locals.load_info.request_lock);
#ifdef HAVE_THREADS
slock_lock(rcheevos_locals.load_info.request_lock);
#endif
if (rcheevos_locals.load_info.outstanding_requests > 0)
--rcheevos_locals.load_info.outstanding_requests;
requests = rcheevos_locals.load_info.outstanding_requests;
CHEEVOS_UNLOCK(rcheevos_locals.load_info.request_lock);
#ifdef HAVE_THREADS
slock_unlock(rcheevos_locals.load_info.request_lock);
#endif
return requests;
}
@@ -2016,59 +2139,64 @@ bool rcheevos_load(const void *data)
return true;
}
static void rcheevos_add_hash(rcheevos_hash_entry_t* hash_entry)
struct rcheevos_identify_changed_disc_data
{
hash_entry->next = rcheevos_locals.game.hashes;
rcheevos_locals.game.hashes = hash_entry;
rcheevos_locals.game.hash = hash_entry->hash;
}
int real_game_id;
char* path;
char hash[33];
};
static void rcheevos_identify_game_disc_callback(void* userdata)
{
rcheevos_hash_entry_t* hash_entry = (rcheevos_hash_entry_t*)userdata;
struct rcheevos_identify_changed_disc_data* changed_disc_data =
(struct rcheevos_identify_changed_disc_data*)userdata;
/* rcheevos_locals.game.id has the game id for the new hash, swap it with the old game id */
const int hash_game_id = rcheevos_locals.game.id;
rcheevos_locals.game.id = changed_disc_data->real_game_id;
/* rcheevos_client_identify_game will update rcheevos_locals.game.id */
if (rcheevos_locals.game.id == hash_entry->game_id)
if (rcheevos_locals.game.id == hash_game_id)
{
CHEEVOS_LOG(RCHEEVOS_TAG "Hash valid for current game\n");
}
else if (hash_game_id != 0)
{
/* when changing discs, if the disc is recognized but belongs to another game, allow it.
* this allows loading known game discs for games that leverage user-provided discs. */
CHEEVOS_LOG(RCHEEVOS_TAG "Hash identified for game %d\n", hash_game_id);
}
else
{
/* rcheevos_locals.game.id has the game id for the new hash, swap it with the old game id */
const int hash_game_id = rcheevos_locals.game.id;
rcheevos_locals.game.id = hash_entry->game_id;
hash_entry->game_id = hash_game_id;
if (hash_game_id != 0)
CHEEVOS_LOG(RCHEEVOS_TAG "Disc not recognized\n");
if (rcheevos_hardcore_active())
{
/* when changing discs, if the disc is recognized but belongs to another game, allow it.
* this allows loading known game discs for games that leverage user-provided discs. */
CHEEVOS_LOG(RCHEEVOS_TAG "Hash identified for game %d\n", hash_game_id);
}
else
{
CHEEVOS_LOG(RCHEEVOS_TAG "Disc not recognized\n");
if (rcheevos_hardcore_active())
{
/* don't allow unknown game discs in hardcore.
* assume it's a modified version of the base game. */
runloop_msg_queue_push("Hardcore paused. Game disc unrecognized.", 0, 5 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_ERROR);
rcheevos_pause_hardcore();
}
/* don't allow unknown game discs in hardcore.
* assume it's a modified version of the base game. */
runloop_msg_queue_push("Hardcore paused. Game disc unrecognized.", 0, 5 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_ERROR);
rcheevos_pause_hardcore();
}
}
/* disc is valid, add it to the known disk list */
rcheevos_add_hash(hash_entry);
rc_libretro_hash_set_add(&rcheevos_locals.game.hashes,
changed_disc_data->path, hash_game_id, changed_disc_data->hash);
rcheevos_locals.game.hash =
rc_libretro_hash_set_get_hash(&rcheevos_locals.game.hashes, changed_disc_data->hash);
free(changed_disc_data->path);
free(changed_disc_data);
}
static void rcheevos_identify_initial_disc_callback(void* userdata)
{
rcheevos_hash_entry_t* hash_entry = (rcheevos_hash_entry_t*)userdata;
struct rcheevos_identify_changed_disc_data* changed_disc_data =
(struct rcheevos_identify_changed_disc_data*)userdata;
/* rcheevos_client_identify_game will update rcheevos_locals.game.id */
if (rcheevos_locals.game.id != hash_entry->game_id)
if (rcheevos_locals.game.id != changed_disc_data->real_game_id)
{
if (rcheevos_locals.game.id == 0)
{
@@ -2083,15 +2211,22 @@ static void rcheevos_identify_initial_disc_callback(void* userdata)
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_ERROR);
}
rcheevos_locals.game.hash = NULL;
rcheevos_unload();
}
else
{
/* disc is valid, add it to the known disk list */
CHEEVOS_LOG(RCHEEVOS_TAG "Hash valid for current game\n");
rc_libretro_hash_set_add(&rcheevos_locals.game.hashes,
changed_disc_data->path, rcheevos_locals.game.id, changed_disc_data->hash);
free(hash_entry);
return;
rcheevos_locals.game.hash =
rc_libretro_hash_set_get_hash(&rcheevos_locals.game.hashes, changed_disc_data->hash);
}
/* disc is valid, add it to the known disk list */
CHEEVOS_LOG(RCHEEVOS_TAG "Hash valid for current game\n");
rcheevos_add_hash(hash_entry);
free(changed_disc_data->path);
free(changed_disc_data);
}
static void rcheevos_validate_initial_disc_handler(retro_task_t* task)
@@ -2121,22 +2256,21 @@ static void rcheevos_validate_initial_disc_handler(retro_task_t* task)
void rcheevos_change_disc(const char* new_disc_path, bool initial_disc)
{
rcheevos_hash_entry_t* hash_entry = rcheevos_locals.game.hashes;
rcheevos_hash_entry_t* hash_entry2;
const uint32_t path_djb2 = djb2_calculate(new_disc_path);
struct rcheevos_identify_changed_disc_data* data;
char hash[33];
int hash_game_id;
/* no game loaded */
if (rcheevos_locals.game.id == 0)
return;
/* see if we've already identified this file */
for (; hash_entry; hash_entry = hash_entry->next)
rcheevos_locals.game.hash =
rc_libretro_hash_set_get_hash(&rcheevos_locals.game.hashes, new_disc_path);
if (rcheevos_locals.game.hash)
{
if (hash_entry->path_djb2 == path_djb2)
{
rcheevos_locals.game.hash = hash_entry->hash;
return;
}
CHEEVOS_LOG(RCHEEVOS_TAG "Switched to known hash: %s\n", rcheevos_locals.game.hash);
return;
}
/* don't check the disc until the game is done loading */
@@ -2152,35 +2286,45 @@ void rcheevos_change_disc(const char* new_disc_path, bool initial_disc)
}
/* attempt to identify the file */
hash_entry = (rcheevos_hash_entry_t*)calloc(1, sizeof(rcheevos_hash_entry_t));
hash_entry->path_djb2 = path_djb2;
if (!rc_hash_generate_from_file(hash_entry->hash, rcheevos_locals.game.console_id, new_disc_path))
if (rc_hash_generate_from_file(hash, rcheevos_locals.game.console_id, new_disc_path))
{
/* check to see if the hash is already known */
hash_game_id = rc_libretro_hash_set_get_game_id(&rcheevos_locals.game.hashes, hash);
if (hash_game_id)
{
/* hash identical to some other file - probably the first disc matching the m3u. */
CHEEVOS_LOG(RCHEEVOS_TAG "Hash valid for current game\n");
}
}
else
{
/* when changing discs, if the disc is not supported by the system, allow it. this is
* primarily for games that support user-provided audio CDs, but does allow using discs
* from other systems for games that leverage user-provided discs. */
CHEEVOS_LOG(RCHEEVOS_TAG "No hash generated\n");
rcheevos_add_hash(hash_entry);
hash_game_id = -1;
strlcpy(hash, "[NO HASH]", sizeof(hash));
}
if (hash_game_id)
{
/* we know how to handle this disc. no need to call the server */
rc_libretro_hash_set_add(&rcheevos_locals.game.hashes, new_disc_path, hash_game_id, hash);
rcheevos_locals.game.hash =
rc_libretro_hash_set_get_hash(&rcheevos_locals.game.hashes, new_disc_path);
return;
}
/* assume it's for the same game. we'll validate in the callback */
hash_entry->game_id = rcheevos_locals.game.id;
/* check to see if the hash is already known - may have generated it for the m3u */
for (hash_entry2 = rcheevos_locals.game.hashes; hash_entry2; hash_entry2 = hash_entry2->next)
{
if (string_is_equal(hash_entry->hash, hash_entry2->hash))
{
CHEEVOS_LOG(RCHEEVOS_TAG "Hash valid for current game\n");
rcheevos_add_hash(hash_entry);
return;
}
}
/* call the server to make sure the hash is valid for the loaded game */
rcheevos_client_identify_game(hash_entry->hash,
initial_disc ? rcheevos_identify_initial_disc_callback :
rcheevos_identify_game_disc_callback, hash_entry);
data = (struct rcheevos_identify_changed_disc_data*)
calloc(1, sizeof(struct rcheevos_identify_changed_disc_data));
if (data) {
data->real_game_id = rcheevos_locals.game.id;
data->path = strdup(new_disc_path);
memcpy(data->hash, hash, sizeof(data->hash));
rcheevos_client_identify_game(data->hash,
initial_disc ? rcheevos_identify_initial_disc_callback :
rcheevos_identify_game_disc_callback, data);
}
}
+1 -1
View File
@@ -51,7 +51,7 @@ void rcheevos_set_support_cheevos(bool state);
bool rcheevos_get_support_cheevos(void);
const char* rcheevos_get_hash(void);
int rcheevos_get_richpresence(char buffer[], int buffer_size);
int rcheevos_get_richpresence(char *s, size_t len);
uintptr_t rcheevos_get_badge_texture(const char *badge, bool locked);
uint8_t* rcheevos_patch_address(unsigned address);
+41 -26
View File
@@ -32,8 +32,8 @@
#include "../network/net_http_special.h"
#include "../tasks/tasks_internal.h"
#ifdef HAVE_DISCORD
#include "../network/discord.h"
#ifdef HAVE_PRESENCE
#include "../network/presence.h"
#endif
#include "../deps/rcheevos/include/rc_api_runtime.h"
@@ -973,8 +973,8 @@ static void rcheevos_client_fetch_game_badge(const char* badge_name, rcheevos_as
{
#if defined(HAVE_GFX_WIDGETS) /* don't need game badge unless widgets are enabled */
char badge_fullpath[PATH_MAX_LENGTH] = "";
char* badge_fullname = NULL;
size_t badge_fullname_size = 0;
char *badge_fullname = NULL;
size_t badge_fullname_size = 0;
/* make sure the directory exists */
fill_pathname_application_special(badge_fullpath,
@@ -988,7 +988,7 @@ static void rcheevos_client_fetch_game_badge(const char* badge_name, rcheevos_as
}
fill_pathname_slash(badge_fullpath, sizeof(badge_fullpath));
badge_fullname = badge_fullpath + strlen(badge_fullpath);
badge_fullname = badge_fullpath + strlen(badge_fullpath);
badge_fullname_size = sizeof(badge_fullpath) -
(badge_fullname - badge_fullpath);
@@ -1248,7 +1248,8 @@ static retro_time_t rcheevos_client_prepare_ping(
rc_api_ping_request_t api_params;
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
const settings_t *settings = config_get_ptr();
const bool cheevos_richpresence_enable =
const bool cheevos_richpresence_enable =
rcheevos_hardcore_active() ||
settings->bools.cheevos_richpresence_enable;
char buffer[256] = "";
@@ -1268,9 +1269,8 @@ static retro_time_t rcheevos_client_prepare_ping(
rcheevos_log_post_url(request->request.url,
request->request.post_data);
#ifdef HAVE_DISCORD
if (settings->bools.discord_enable && discord_is_ready())
discord_update(DISCORD_PRESENCE_RETROACHIEVEMENTS);
#ifdef HAVE_PRESENCE
presence_update(PRESENCE_RETROACHIEVEMENTS);
#endif
/* Update rich presence every two minutes */
@@ -1426,11 +1426,15 @@ static void rcheevos_async_download_next_badge(void* userdata)
static void rcheevos_async_fetch_badge_complete(rcheevos_fetch_badge_data* badge_data)
{
#ifdef HAVE_THREADS
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
CHEEVOS_LOCK(rcheevos_locals->load_info.request_lock);
slock_lock(rcheevos_locals->load_info.request_lock);
#endif
badge_data->state->requested_badges[badge_data->request_index][0] = '\0';
CHEEVOS_UNLOCK(rcheevos_locals->load_info.request_lock);
#ifdef HAVE_THREADS
slock_unlock(rcheevos_locals->load_info.request_lock);
#endif
if (badge_data->callback)
badge_data->callback(badge_data);
@@ -1442,9 +1446,10 @@ static void rcheevos_async_write_badge(retro_task_t* task)
rcheevos_fetch_badge_data* badge_data =
(rcheevos_fetch_badge_data*)task->user_data;
fill_pathname_join(badge_fullpath, badge_data->state->badge_directory,
badge_data->state->requested_badges[badge_data->request_index],
sizeof(badge_fullpath));
fill_pathname_join_special(badge_fullpath,
badge_data->state->badge_directory,
badge_data->state->requested_badges[badge_data->request_index],
sizeof(badge_fullpath));
if (!filestream_write_file(badge_fullpath, badge_data->data, badge_data->data_len))
{
@@ -1518,11 +1523,12 @@ static bool rcheevos_client_fetch_badge(
/* check if it's already requested */
{
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
int found_index = -1;
int i;
CHEEVOS_LOCK(rcheevos_locals->load_info.request_lock);
int found_index = -1;
#ifdef HAVE_THREADS
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
slock_lock(rcheevos_locals->load_info.request_lock);
#endif
for (i = RCHEEVOS_CONCURRENT_BADGE_DOWNLOADS - 1; i >= 0; --i)
{
if (!state->requested_badges[i][0])
@@ -1547,8 +1553,9 @@ static bool rcheevos_client_fetch_badge(
badge_fullname,
sizeof(state->requested_badges[request_index]));
}
CHEEVOS_UNLOCK(rcheevos_locals->load_info.request_lock);
#ifdef HAVE_THREADS
slock_unlock(rcheevos_locals->load_info.request_lock);
#endif
if (found_index != -1)
return false;
}
@@ -1607,20 +1614,24 @@ static bool rcheevos_fetch_next_badge(rcheevos_fetch_badge_state* state)
}
else
{
int active = 0;
const rcheevos_racheevo_t *cheevo = NULL;
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
const rcheevos_racheevo_t* cheevo = NULL;
int active = 0;
/* fetch badges for current state of achievements first */
do
{
CHEEVOS_LOCK(rcheevos_locals->load_info.request_lock);
#ifdef HAVE_THREADS
slock_lock(rcheevos_locals->load_info.request_lock);
#endif
if ( state->locked_badge_fetch_index
< rcheevos_locals->game.achievement_count)
cheevo = &rcheevos_locals->game.achievements[state->locked_badge_fetch_index++];
else
cheevo = NULL;
CHEEVOS_UNLOCK(rcheevos_locals->load_info.request_lock);
#ifdef HAVE_THREADS
slock_unlock(rcheevos_locals->load_info.request_lock);
#endif
if (!cheevo)
break;
@@ -1635,13 +1646,17 @@ static bool rcheevos_fetch_next_badge(rcheevos_fetch_badge_state* state)
/* then fetch badges for unlocked state so they're ready when the user unlocks something */
do
{
CHEEVOS_LOCK(rcheevos_locals->load_info.request_lock);
#ifdef HAVE_THREADS
slock_lock(rcheevos_locals->load_info.request_lock);
#endif
if (state->badge_fetch_index < rcheevos_locals->game.achievement_count)
cheevo = &rcheevos_locals->game.achievements[state->badge_fetch_index++];
else
cheevo = NULL;
CHEEVOS_UNLOCK(rcheevos_locals->load_info.request_lock);
#ifdef HAVE_THREADS
slock_unlock(rcheevos_locals->load_info.request_lock);
#endif
if (!cheevo)
break;
+2 -20
View File
@@ -120,24 +120,16 @@ typedef struct rcheevos_load_info_t
#endif
} rcheevos_load_info_t;
typedef struct rcheevos_hash_entry_t
{
uint32_t path_djb2;
int game_id;
struct rcheevos_hash_entry_t* next;
char hash[33];
} rcheevos_hash_entry_t;
typedef struct rcheevos_game_info_t
{
int id;
int console_id;
char* title;
char badge_name[16];
char* hash;
const char* hash;
bool mastery_placard_shown;
rcheevos_hash_entry_t* hashes;
rc_libretro_hash_set_t hashes;
rcheevos_racheevo_t* achievements;
rcheevos_ralboard_t* leaderboards;
@@ -155,8 +147,6 @@ typedef struct rcheevos_menuitem_t
enum msg_hash_enums state_label_idx;
} rcheevos_menuitem_t;
void rcheevos_menu_reset_badges(void);
#endif
typedef struct rcheevos_locals_t
@@ -198,14 +188,6 @@ bool rcheevos_load_aborted(void);
void rcheevos_show_mastery_placard(void);
#ifdef HAVE_THREADS
#define CHEEVOS_LOCK(l) do { slock_lock(l); } while (0)
#define CHEEVOS_UNLOCK(l) do { slock_unlock(l); } while (0)
#else
#define CHEEVOS_LOCK(l)
#define CHEEVOS_UNLOCK(l)
#endif
RETRO_END_DECLS
#endif /* __RARCH_CHEEVOS_LOCALS_H */
+36 -27
View File
@@ -42,6 +42,11 @@ enum rcheevos_menuitem_bucket
RCHEEVOS_MENUITEM_BUCKET_ALMOST_THERE
};
/* if menu_badge_grayscale is set to a value other than 1 or 0, it's a counter for the number of
* frames since the last time we checked for the file. When the counter reaches this value, we'll
* check for the file again. */
#define MENU_BADGE_RETRY_RELOAD_FRAMES 64
static void rcheevos_menu_update_bucket(rcheevos_racheevo_t* cheevo)
{
cheevo->menu_progress = 0;
@@ -163,7 +168,11 @@ void rcheevos_menu_reset_badges(void)
while (cheevo < stop)
{
if (cheevo->menu_badge_texture)
{
video_driver_texture_unload(&cheevo->menu_badge_texture);
cheevo->menu_badge_texture = 0;
cheevo->menu_badge_grayscale = MENU_BADGE_RETRY_RELOAD_FRAMES;
}
++cheevo;
}
}
@@ -374,7 +383,7 @@ uintptr_t rcheevos_menu_get_badge_texture(unsigned menu_offset)
* has become available (do this roughly once a second) */
if (cheevo->menu_badge_grayscale >= 2)
{
if (++cheevo->menu_badge_grayscale == 64)
if (++cheevo->menu_badge_grayscale >= MENU_BADGE_RETRY_RELOAD_FRAMES)
{
cheevo->menu_badge_grayscale = 2;
rcheevos_menu_update_badge(cheevo);
@@ -399,29 +408,29 @@ void rcheevos_menu_populate_hardcore_pause_submenu(void* data)
{
if (rcheevos_locals->hardcore_active)
{
menu_entries_append_enum(info->list,
menu_entries_append(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_PAUSE_CANCEL),
msg_hash_to_str(MENU_ENUM_LABEL_ACHIEVEMENT_PAUSE_CANCEL),
MENU_ENUM_LABEL_ACHIEVEMENT_PAUSE_CANCEL,
MENU_SETTING_ACTION_CLOSE, 0, 0);
menu_entries_append_enum(info->list,
MENU_SETTING_ACTION_CLOSE, 0, 0, NULL);
menu_entries_append(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_PAUSE),
msg_hash_to_str(MENU_ENUM_LABEL_ACHIEVEMENT_PAUSE),
MENU_ENUM_LABEL_ACHIEVEMENT_PAUSE,
MENU_SETTING_ACTION_PAUSE_ACHIEVEMENTS, 0, 0);
MENU_SETTING_ACTION_PAUSE_ACHIEVEMENTS, 0, 0, NULL);
}
else
{
menu_entries_append_enum(info->list,
menu_entries_append(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_RESUME_CANCEL),
msg_hash_to_str(MENU_ENUM_LABEL_ACHIEVEMENT_RESUME_CANCEL),
MENU_ENUM_LABEL_ACHIEVEMENT_RESUME_CANCEL,
MENU_SETTING_ACTION_CLOSE, 0, 0);
menu_entries_append_enum(info->list,
MENU_SETTING_ACTION_CLOSE, 0, 0, NULL);
menu_entries_append(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_RESUME),
msg_hash_to_str(MENU_ENUM_LABEL_ACHIEVEMENT_RESUME),
MENU_ENUM_LABEL_ACHIEVEMENT_RESUME,
MENU_SETTING_ACTION_RESUME_ACHIEVEMENTS, 0, 0);
MENU_SETTING_ACTION_RESUME_ACHIEVEMENTS, 0, 0, NULL);
}
}
}
@@ -449,17 +458,17 @@ void rcheevos_menu_populate(void* data)
if (settings->bools.cheevos_enable && settings->bools.cheevos_hardcore_mode_enable)
{
if (rcheevos_locals->hardcore_active)
menu_entries_append_enum(info->list,
menu_entries_append(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_PAUSE),
msg_hash_to_str(MENU_ENUM_LABEL_ACHIEVEMENT_PAUSE_MENU),
MENU_ENUM_LABEL_ACHIEVEMENT_PAUSE_MENU,
MENU_SETTING_ACTION_PAUSE_ACHIEVEMENTS, 0, 0);
MENU_SETTING_ACTION_PAUSE_ACHIEVEMENTS, 0, 0, NULL);
else
menu_entries_append_enum(info->list,
menu_entries_append(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_RESUME),
msg_hash_to_str(MENU_ENUM_LABEL_ACHIEVEMENT_PAUSE_MENU),
MENU_ENUM_LABEL_ACHIEVEMENT_PAUSE_MENU,
MENU_SETTING_ACTION_RESUME_ACHIEVEMENTS, 0, 0);
MENU_SETTING_ACTION_RESUME_ACHIEVEMENTS, 0, 0, NULL);
}
/* update the bucket for each achievement */
@@ -596,18 +605,18 @@ void rcheevos_menu_populate(void* data)
do
{
if (menuitem->cheevo)
menu_entries_append_enum(info->list, menuitem->cheevo->title,
menu_entries_append(info->list, menuitem->cheevo->title,
menuitem->cheevo->description,
MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + idx, 0, 0);
MENU_SETTINGS_CHEEVOS_START + idx, 0, 0, NULL);
else
{
snprintf(buffer, sizeof(buffer), "----- %s -----",
msg_hash_to_str(menuitem->state_label_idx));
menu_entries_append_enum(info->list, buffer, "",
menu_entries_append(info->list, buffer, "",
MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + idx, 0, 0);
MENU_SETTINGS_CHEEVOS_START + idx, 0, 0, NULL);
}
++idx;
@@ -618,35 +627,35 @@ void rcheevos_menu_populate(void* data)
{
/* no achievements found */
if (!rcheevos_locals->core_supports)
menu_entries_append_enum(info->list,
menu_entries_append(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE),
msg_hash_to_str(MENU_ENUM_LABEL_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE),
MENU_ENUM_LABEL_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE,
FILE_TYPE_NONE, 0, 0);
FILE_TYPE_NONE, 0, 0, NULL);
else if (rcheevos_locals->load_info.state == RCHEEVOS_LOAD_STATE_NETWORK_ERROR)
menu_entries_append_enum(info->list,
menu_entries_append(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETWORK_ERROR),
msg_hash_to_str(MENU_ENUM_LABEL_NETWORK_ERROR),
MENU_ENUM_LABEL_NETWORK_ERROR,
FILE_TYPE_NONE, 0, 0);
FILE_TYPE_NONE, 0, 0, NULL);
else if (!rcheevos_locals->game.id)
menu_entries_append_enum(info->list,
menu_entries_append(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UNKNOWN_GAME),
msg_hash_to_str(MENU_ENUM_LABEL_UNKNOWN_GAME),
MENU_ENUM_LABEL_UNKNOWN_GAME,
FILE_TYPE_NONE, 0, 0);
FILE_TYPE_NONE, 0, 0, NULL);
else if (!rcheevos_locals->token[0])
menu_entries_append_enum(info->list,
menu_entries_append(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_LOGGED_IN),
msg_hash_to_str(MENU_ENUM_LABEL_NOT_LOGGED_IN),
MENU_ENUM_LABEL_NOT_LOGGED_IN,
FILE_TYPE_NONE, 0, 0);
FILE_TYPE_NONE, 0, 0, NULL);
else
menu_entries_append_enum(info->list,
menu_entries_append(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ACHIEVEMENTS_TO_DISPLAY),
msg_hash_to_str(MENU_ENUM_LABEL_NO_ACHIEVEMENTS_TO_DISPLAY),
MENU_ENUM_LABEL_NO_ACHIEVEMENTS_TO_DISPLAY,
FILE_TYPE_NONE, 0, 0);
FILE_TYPE_NONE, 0, 0, NULL);
}
}
+1
View File
@@ -33,6 +33,7 @@ void rcheevos_menu_populate_hardcore_pause_submenu(void* data);
bool rcheevos_menu_get_state(unsigned menu_offset, char* buffer, size_t buffer_size);
bool rcheevos_menu_get_sublabel(unsigned menu_offset, char* buffer, size_t buffer_size);
uintptr_t rcheevos_menu_get_badge_texture(unsigned menu_offset);
void rcheevos_menu_reset_badges(void);
RETRO_END_DECLS
+218 -205
View File
@@ -180,35 +180,21 @@ static void network_command_free(command_t *handle)
static void command_network_poll(command_t *handle)
{
fd_set fds;
struct timeval tmp_tv = {0};
command_network_t *netcmd = (command_network_t*)handle->userptr;
ssize_t ret;
char buf[2048];
command_network_t *netcmd = (command_network_t*)handle->userptr;
if (netcmd->net_fd < 0)
return;
FD_ZERO(&fds);
FD_SET(netcmd->net_fd, &fds);
if (socket_select(netcmd->net_fd + 1, &fds, NULL, NULL, &tmp_tv) <= 0)
return;
if (!FD_ISSET(netcmd->net_fd, &fds))
return;
for (;;)
{
ssize_t ret;
char buf[1024];
netcmd->cmd_source_len = sizeof(netcmd->cmd_source);
buf[0] = '\0';
netcmd->cmd_source_len = sizeof(struct sockaddr_storage);
ret = recvfrom(netcmd->net_fd, buf, sizeof(buf) - 1, 0,
(struct sockaddr*)&netcmd->cmd_source,
&netcmd->cmd_source_len);
if (ret <= 0)
break;
if ((ret = recvfrom(netcmd->net_fd, buf, sizeof(buf) - 1, 0,
(struct sockaddr*)&netcmd->cmd_source,
&netcmd->cmd_source_len)) <= 0)
return;
buf[ret] = '\0';
@@ -223,7 +209,7 @@ command_t* command_network_new(uint16_t port)
command_network_t *netcmd = (command_network_t*)calloc(
1, sizeof(command_network_t));
int fd = socket_init(
(void**)&res, port, NULL, SOCKET_TYPE_DATAGRAM);
(void**)&res, port, NULL, SOCKET_TYPE_DATAGRAM, AF_INET);
RARCH_LOG("[NetCMD]: %s %hu.\n",
msg_hash_to_str(MSG_BRINGING_UP_COMMAND_INTERFACE_ON_PORT),
@@ -355,7 +341,8 @@ command_t* command_stdin_new(void)
bool command_get_config_param(command_t *cmd, const char* arg)
{
char reply[8192] = {0};
size_t _len;
char reply[8192];
const char *value = "unsupported";
settings_t *settings = config_get_ptr();
bool video_fullscreen = settings->bools.video_fullscreen;
@@ -388,7 +375,11 @@ bool command_get_config_param(command_t *cmd, const char* arg)
value = path_username;
/* TODO: query any string */
snprintf(reply, sizeof(reply), "GET_CONFIG_PARAM %s %s\n", arg, value);
strlcpy(reply, "GET_CONFIG_PARAM ", sizeof(reply));
_len = strlcat(reply, arg, sizeof(reply));
reply[_len ] = ' ';
reply[_len+1] = '\0';
strlcat(reply, value, sizeof(reply));
cmd->replier(cmd, reply, strlen(reply));
return true;
}
@@ -431,71 +422,58 @@ static void uds_command_free(command_t *handle)
static void command_uds_poll(command_t *handle)
{
int i;
fd_set fds;
command_uds_t *udscmd = (command_uds_t*)handle->userptr;
int maxfd = udscmd->sfd;
struct timeval tmp_tv = {0};
int fd;
ssize_t ret;
char buf[2048];
command_uds_t *udscmd = (command_uds_t*)handle->userptr;
if (udscmd->sfd < 0)
return;
FD_ZERO(&fds);
FD_SET(udscmd->sfd, &fds);
for (i = 0; i < MAX_USER_CONNECTIONS; i++)
{
if (udscmd->userfd[i] >= 0)
{
maxfd = MAX(udscmd->userfd[i], maxfd);
FD_SET(udscmd->userfd[i], &fds);
}
}
if (socket_select(maxfd + 1, &fds, NULL, NULL, &tmp_tv) <= 0)
return;
/* Read data from clients and process commands */
for (i = 0; i < MAX_USER_CONNECTIONS; i++)
{
if (udscmd->userfd[i] >= 0 && FD_ISSET(udscmd->userfd[i], &fds))
bool err = false;
fd = udscmd->userfd[i];
if (fd < 0)
continue;
ret = socket_receive_all_nonblocking(fd, &err, buf, sizeof(buf) - 1);
if (!ret)
continue;
if (!err)
{
while (1)
{
char buf[2048];
ssize_t ret = recv(udscmd->userfd[i], buf, sizeof(buf) - 1, 0);
buf[ret] = '\0';
udscmd->last_fd = fd;
if (ret < 0)
break; /* no more data */
if (!ret)
{
socket_close(udscmd->userfd[i]);
udscmd->userfd[i] = -1;
break;
}
buf[ret] = 0;
udscmd->last_fd = udscmd->userfd[i];
command_parse_msg(handle, buf);
}
command_parse_msg(handle, buf);
}
else
{
socket_close(fd);
udscmd->userfd[i] = -1;
}
}
if (FD_ISSET(udscmd->sfd, &fds))
/* Accepts new connections from clients */
fd = accept(udscmd->sfd, NULL, NULL);
if (fd >= 0)
{
/* Accepts new connections from clients */
int cfd = accept(udscmd->sfd, NULL, NULL);
if (cfd >= 0) {
if (!socket_nonblock(cfd))
socket_close(cfd);
else {
for (i = 0; i < MAX_USER_CONNECTIONS; i++)
if (udscmd->userfd[i] < 0)
{
udscmd->userfd[i] = cfd;
break;
}
if (socket_nonblock(fd))
{
for (i = 0; i < MAX_USER_CONNECTIONS; i++)
{
if (udscmd->userfd[i] < 0)
{
udscmd->userfd[i] = fd;
return;
}
}
}
socket_close(fd);
}
}
@@ -567,6 +545,48 @@ static bool command_verify(const char *cmd)
return false;
}
static bool udp_send_packet(const char *host, uint16_t port, const char *msg)
{
char port_buf[6];
const struct addrinfo *tmp_info;
struct addrinfo *addr = NULL;
struct addrinfo hints = {0};
size_t len = strlen(msg);
bool ret = false;
snprintf(port_buf, sizeof(port_buf), "%hu", (unsigned short)port);
hints.ai_socktype = SOCK_DGRAM;
hints.ai_flags = AI_NUMERICSERV;
if (getaddrinfo_retro(host, port_buf, &hints, &addr))
return false;
if (!addr)
return false;
/* Send to all possible targets. */
tmp_info = addr;
do
{
int fd = socket(tmp_info->ai_family,
tmp_info->ai_socktype, tmp_info->ai_protocol);
if (fd < 0)
continue;
if (sendto(fd, msg, len, 0, tmp_info->ai_addr, tmp_info->ai_addrlen) ==
(ssize_t)len)
ret = true;
socket_close(fd);
} while ((tmp_info = tmp_info->ai_next));
freeaddrinfo_retro(addr);
return ret;
}
bool command_network_send(const char *cmd_)
{
char *command = NULL;
@@ -632,7 +652,7 @@ bool command_read_ram(command_t *cmd, const char *arg)
unsigned int nbytes = 0;
unsigned int alloc_size = 0;
unsigned int addr = -1;
unsigned int len = 0;
size_t len = 0;
if (sscanf(arg, "%x %u", &addr, &nbytes) != 2)
return true;
@@ -685,9 +705,10 @@ bool command_write_ram(command_t *cmd, const char *arg)
bool command_version(command_t *cmd, const char* arg)
{
char reply[256] = {0};
snprintf(reply, sizeof(reply), "%s\n", PACKAGE_VERSION);
char reply[256];
size_t _len = strlcpy(reply, PACKAGE_VERSION, sizeof(reply));
reply[_len ] = '\n';
reply[_len+1] = '\0';
cmd->replier(cmd, reply, strlen(reply));
return true;
@@ -765,7 +786,7 @@ uint8_t *command_memory_get_pointer(
strlcpy(reply_at, " -1 descriptor data is readonly\n", len);
else
{
*max_bytes = (desc->core.len - offset);
*max_bytes = (unsigned int)(desc->core.len - offset);
return (uint8_t*)desc->core.ptr + desc->core.offset + offset;
}
}
@@ -776,35 +797,35 @@ uint8_t *command_memory_get_pointer(
bool command_get_status(command_t *cmd, const char* arg)
{
char reply[4096] = {0};
bool contentless = false;
bool is_inited = false;
runloop_state_t *runloop_st = runloop_state_get_ptr();
char reply[4096];
uint8_t flags = content_get_flags();
content_get_status(&contentless, &is_inited);
if (!is_inited)
strcpy_literal(reply, "GET_STATUS CONTENTLESS");
else
if (flags & CONTENT_ST_FLAG_IS_INITED)
{
/* add some content info */
const char *status = "PLAYING";
const char *content_name = path_basename(path_get(RARCH_PATH_BASENAME)); /* filename only without ext */
int content_crc32 = content_get_crc();
const char* system_id = NULL;
core_info_t *core_info = NULL;
/* add some content info */
runloop_state_t *runloop_st = runloop_state_get_ptr();
const char *status = "PLAYING";
const char *content_name = path_basename(path_get(RARCH_PATH_BASENAME)); /* filename only without ext */
int content_crc32 = content_get_crc();
const char* system_id = NULL;
core_info_t *core_info = NULL;
core_info_get_current_core(&core_info);
reply[0] = '\0';
if (runloop_st->paused)
status = "PAUSED";
if (core_info)
system_id = core_info->system_id;
if (!system_id)
system_id = runloop_st->system.info.library_name;
core_info_get_current_core(&core_info);
snprintf(reply, sizeof(reply), "GET_STATUS %s %s,%s,crc32=%x\n", status, system_id, content_name, content_crc32);
if (runloop_st->flags & RUNLOOP_FLAG_PAUSED)
status = "PAUSED";
if (core_info)
system_id = core_info->system_id;
if (!system_id)
system_id = runloop_st->system.info.library_name;
snprintf(reply, sizeof(reply), "GET_STATUS %s %s,%s,crc32=%x\n",
status, system_id, content_name, content_crc32);
}
else
strlcpy(reply, "GET_STATUS CONTENTLESS", sizeof(reply));
cmd->replier(cmd, reply, strlen(reply));
@@ -898,17 +919,23 @@ void command_event_set_volume(
bool widgets_active,
bool audio_driver_mute_enable)
{
size_t _len;
char msg[128];
float new_volume = settings->floats.audio_volume + gain;
new_volume = MAX(new_volume, -80.0f);
new_volume = MIN(new_volume, 12.0f);
float new_volume = settings->floats.audio_volume + gain;
new_volume = MAX(new_volume, -80.0f);
new_volume = MIN(new_volume, 12.0f);
configuration_set_float(settings, settings->floats.audio_volume, new_volume);
snprintf(msg, sizeof(msg), "%s: %.1f dB",
msg_hash_to_str(MSG_AUDIO_VOLUME),
_len = strlcpy(msg, msg_hash_to_str(MSG_AUDIO_VOLUME),
sizeof(msg));
msg[_len ] = ':';
msg[++_len] = ' ';
msg[++_len] = '\0';
_len += snprintf(msg + _len, sizeof(msg) - _len, "%.1f",
new_volume);
msg[_len ] = ' ';
msg[++_len] = 'd';
msg[++_len] = 'B';
msg[++_len] = '\0';
#if defined(HAVE_GFX_WIDGETS)
if (widgets_active)
@@ -935,17 +962,23 @@ void command_event_set_mixer_volume(
settings_t *settings,
float gain)
{
size_t _len;
char msg[128];
float new_volume = settings->floats.audio_mixer_volume + gain;
new_volume = MAX(new_volume, -80.0f);
new_volume = MIN(new_volume, 12.0f);
float new_volume = settings->floats.audio_mixer_volume + gain;
new_volume = MAX(new_volume, -80.0f);
new_volume = MIN(new_volume, 12.0f);
configuration_set_float(settings, settings->floats.audio_mixer_volume, new_volume);
snprintf(msg, sizeof(msg), "%s: %.1f dB",
msg_hash_to_str(MSG_AUDIO_VOLUME),
_len = strlcpy(msg, msg_hash_to_str(MSG_AUDIO_VOLUME),
sizeof(msg));
msg[_len ] = ':';
msg[++_len] = ' ';
msg[++_len] = '\0';
_len += snprintf(msg + _len, sizeof(msg) - _len, "%.1f",
new_volume);
msg[_len ] = ' ';
msg[++_len] = 'd';
msg[++_len] = 'B';
msg[++_len] = '\0';
runloop_msg_queue_push(msg, 1, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
RARCH_LOG("[Audio]: %s\n", msg);
@@ -1096,7 +1129,7 @@ bool command_event_resize_windowed_scale(settings_t *settings,
if (window_scale == 0)
return false;
configuration_set_float(settings, settings->floats.video_scale, (float)window_scale);
configuration_set_uint(settings, settings->uints.video_scale, window_scale);
if (!video_fullscreen)
command_event(CMD_EVENT_REINIT, NULL);
@@ -1111,7 +1144,6 @@ bool command_event_save_auto_state(
const enum rarch_core_type current_core_type)
{
runloop_state_t *runloop_st = runloop_state_get_ptr();
bool ret = false;
char savestate_name_auto[PATH_MAX_LENGTH];
if (runloop_st->entry_state_slot)
@@ -1122,26 +1154,24 @@ bool command_event_save_auto_state(
return false;
if (!core_info_current_supports_savestate())
return false;
if (string_is_empty(path_basename(path_get(RARCH_PATH_BASENAME))))
return false;
#ifdef HAVE_CHEEVOS
if (rcheevos_hardcore_active())
return false;
#endif
savestate_name_auto[0] = '\0';
fill_pathname_noext(savestate_name_auto,
strlcpy(savestate_name_auto,
runloop_st->name.savestate,
".auto", sizeof(savestate_name_auto));
sizeof(savestate_name_auto));
strlcat(savestate_name_auto,
".auto",
sizeof(savestate_name_auto));
ret = content_save_state((const char*)savestate_name_auto, true, true);
RARCH_LOG("%s \"%s\" %s.\n",
msg_hash_to_str(MSG_AUTO_SAVE_STATE_TO),
savestate_name_auto, ret ?
"succeeded" : "failed");
if (content_save_state((const char*)savestate_name_auto, true, true))
RARCH_LOG("%s \"%s\" %s.\n",
msg_hash_to_str(MSG_AUTO_SAVE_STATE_TO),
savestate_name_auto, "succeeded");
else
RARCH_LOG("%s \"%s\" %s.\n",
msg_hash_to_str(MSG_AUTO_SAVE_STATE_TO),
savestate_name_auto, "failed");
return true;
}
@@ -1196,8 +1226,9 @@ bool command_event_load_entry_state(void)
entry_state_path[0] = '\0';
if (!retroarch_get_entry_state_path(entry_state_path, sizeof(entry_state_path),
runloop_st->entry_state_slot))
if (!retroarch_get_entry_state_path(
entry_state_path, sizeof(entry_state_path),
runloop_st->entry_state_slot))
return false;
entry_path_stats = path_stat(entry_state_path);
@@ -1223,7 +1254,6 @@ void command_event_load_auto_state(void)
{
char savestate_name_auto[PATH_MAX_LENGTH];
runloop_state_t *runloop_st = runloop_state_get_ptr();
bool ret = false;
if (!core_info_current_supports_savestate())
return;
@@ -1237,30 +1267,35 @@ void command_event_load_auto_state(void)
return;
#endif
savestate_name_auto[0] = '\0';
fill_pathname_noext(savestate_name_auto, runloop_st->name.savestate,
".auto", sizeof(savestate_name_auto));
strlcpy(savestate_name_auto,
runloop_st->name.savestate,
sizeof(savestate_name_auto));
strlcat(savestate_name_auto,
".auto",
sizeof(savestate_name_auto));
if (!path_is_valid(savestate_name_auto))
return;
ret = content_load_state(savestate_name_auto, false, true);
RARCH_LOG("[State]: %s \"%s\".\n",
msg_hash_to_str(MSG_FOUND_AUTO_SAVESTATE_IN),
savestate_name_auto);
RARCH_LOG("[State]: %s \"%s\" %s.\n",
msg_hash_to_str(MSG_AUTOLOADING_SAVESTATE_FROM),
savestate_name_auto, ret ? "succeeded" : "failed"
);
if ((content_load_state(savestate_name_auto, false, true)))
RARCH_LOG("[State]: %s \"%s\" %s.\n",
msg_hash_to_str(MSG_AUTOLOADING_SAVESTATE_FROM),
savestate_name_auto, "succeeded");
else
RARCH_LOG("[State]: %s \"%s\" %s.\n",
msg_hash_to_str(MSG_AUTOLOADING_SAVESTATE_FROM),
savestate_name_auto, "failed");
}
void command_event_set_savestate_auto_index(settings_t *settings)
{
size_t i;
char state_base[128];
char state_dir[PATH_MAX_LENGTH];
char state_base[PATH_MAX_LENGTH];
struct string_list *dir_list = NULL;
unsigned max_idx = 0;
@@ -1271,8 +1306,6 @@ void command_event_set_savestate_auto_index(settings_t *settings)
if (!savestate_auto_index)
return;
state_dir[0] = state_base[0] = '\0';
/* Find the file in the same directory as runloop_st->savestate_name
* with the largest numeral suffix.
*
@@ -1328,16 +1361,13 @@ void command_event_set_savestate_garbage_collect(
{
size_t i, cnt = 0;
char state_dir[PATH_MAX_LENGTH];
char state_base[PATH_MAX_LENGTH];
char state_base[128];
runloop_state_t *runloop_st = runloop_state_get_ptr();
struct string_list *dir_list = NULL;
unsigned min_idx = UINT_MAX;
const char *oldest_save = NULL;
state_dir[0] = '\0';
state_base[0] = '\0';
/* Similar to command_event_set_savestate_auto_index(),
* this will find the lowest numbered save-state */
fill_pathname_basedir(state_dir, runloop_st->name.savestate,
@@ -1360,8 +1390,6 @@ void command_event_set_savestate_garbage_collect(
const char *end = NULL;
const char *dir_elem = dir_list->elems[i].data;
elem_base[0] = '\0';
if (string_is_empty(dir_elem))
continue;
@@ -1421,14 +1449,10 @@ bool command_set_shader(command_t *cmd, const char *arg)
/* rebase on shader directory */
if (!path_is_absolute(arg))
{
static char abs_arg[PATH_MAX_LENGTH];
char abs_arg[PATH_MAX_LENGTH];
const char *ref_path = settings->paths.directory_video_shader;
fill_pathname_join(abs_arg,
ref_path, arg, sizeof(abs_arg));
/* TODO/FIXME - pointer to local variable -
* making abs_arg static for now to workaround this
*/
arg = abs_arg;
fill_pathname_join_special(abs_arg, ref_path, arg, sizeof(abs_arg));
return apply_shader(settings, type, abs_arg, true);
}
}
@@ -1442,16 +1466,15 @@ bool command_event_save_core_config(
const char *rarch_path_config)
{
char msg[128];
char config_name[PATH_MAX_LENGTH];
char config_name[255];
char config_path[PATH_MAX_LENGTH];
char config_dir[PATH_MAX_LENGTH];
bool found_path = false;
bool new_path_available = false;
bool overrides_active = false;
const char *core_path = NULL;
runloop_state_t *runloop_st = runloop_state_get_ptr();
msg[0] = '\0';
config_dir[0] = '\0';
if (!string_is_empty(dir_menu_config))
strlcpy(config_dir, dir_menu_config, sizeof(config_dir));
@@ -1467,63 +1490,52 @@ bool command_event_save_core_config(
}
core_path = path_get(RARCH_PATH_CORE);
config_name[0] = '\0';
config_path[0] = '\0';
/* Infer file name based on libretro core. */
if (path_is_valid(core_path))
{
unsigned i;
char tmp[PATH_MAX_LENGTH + 8];
RARCH_LOG("[Config]: %s\n", msg_hash_to_str(MSG_USING_CORE_NAME_FOR_NEW_CONFIG));
fill_pathname_base(config_name, core_path, sizeof(config_name));
path_remove_extension(config_name);
fill_pathname_join_special(config_path, config_dir, config_name,
sizeof(config_path));
/* In case of collision, find an alternative name. */
for (i = 0; i < 16; i++)
{
char tmp[64];
fill_pathname_base_noext(
config_name,
core_path,
sizeof(config_name));
fill_pathname_join(config_path, config_dir, config_name,
sizeof(config_path));
size_t _len = strlcpy(tmp, config_path, sizeof(tmp));
if (i)
snprintf(tmp, sizeof(tmp), "-%u.cfg", i);
else
{
tmp[0] = '\0';
strlcpy(tmp, ".cfg", sizeof(tmp));
}
snprintf(tmp + _len, sizeof(tmp) - _len, "-%u", i);
strlcat(tmp, ".cfg", sizeof(tmp));
strlcat(config_path, tmp, sizeof(config_path));
if (!path_is_valid(config_path))
if (!path_is_valid(tmp))
{
found_path = true;
new_path_available = true;
break;
}
}
}
if (!found_path)
if (!new_path_available)
{
/* Fallback to system time... */
RARCH_WARN("[Config]: %s\n",
msg_hash_to_str(MSG_CANNOT_INFER_NEW_CONFIG_PATH));
fill_dated_filename(config_name, ".cfg", sizeof(config_name));
fill_pathname_join(config_path, config_dir, config_name,
fill_pathname_join_special(config_path, config_dir, config_name,
sizeof(config_path));
}
if (runloop_st->overrides_active)
if (runloop_st->flags & RUNLOOP_FLAG_OVERRIDES_ACTIVE)
{
/* Overrides block config file saving,
* make it appear as overrides weren't enabled
* for a manual save. */
runloop_st->overrides_active = false;
overrides_active = true;
runloop_st->flags &= ~RUNLOOP_FLAG_OVERRIDES_ACTIVE;
overrides_active = true;
}
#ifdef HAVE_CONFIGFILE
@@ -1534,7 +1546,10 @@ bool command_event_save_core_config(
runloop_msg_queue_push(msg, 1, 180, true, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
runloop_st->overrides_active = overrides_active;
if (overrides_active)
runloop_st->flags |= RUNLOOP_FLAG_OVERRIDES_ACTIVE;
else
runloop_st->flags &= ~RUNLOOP_FLAG_OVERRIDES_ACTIVE;
return true;
}
@@ -1550,8 +1565,7 @@ void command_event_save_current_config(enum override_type type)
if (path_is_empty(RARCH_PATH_CONFIG))
{
char msg[128];
msg[0] = '\0';
strcpy_literal(msg, "[Config]: Config directory not set, cannot save configuration.");
strlcpy(msg, "[Config]: Config directory not set, cannot save configuration.", sizeof(msg));
runloop_msg_queue_push(msg, 1, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
}
else
@@ -1568,13 +1582,12 @@ void command_event_save_current_config(enum override_type type)
case OVERRIDE_CONTENT_DIR:
{
char msg[128];
msg[0] = '\0';
if (config_save_overrides(type, &runloop_st->system))
{
strlcpy(msg, msg_hash_to_str(MSG_OVERRIDES_SAVED_SUCCESSFULLY), sizeof(msg));
/* set overrides to active so the original config can be
restored after closing content */
runloop_st->overrides_active = true;
runloop_st->flags |= RUNLOOP_FLAG_OVERRIDES_ACTIVE;
}
else
strlcpy(msg, msg_hash_to_str(MSG_OVERRIDES_ERROR_SAVING), sizeof(msg));
@@ -1710,7 +1723,7 @@ bool command_event_disk_control_append_image(
return false;
#ifdef HAVE_THREADS
if (runloop_st->use_sram)
if (runloop_st->flags & RUNLOOP_FLAG_USE_SRAM)
autosave_deinit();
#endif
@@ -1740,7 +1753,7 @@ void command_event_reinit(const int flags)
struct menu_state *menu_st = menu_state_get_ptr();
bool video_fullscreen = settings->bools.video_fullscreen;
bool adaptive_vsync = settings->bools.video_adaptive_vsync;
unsigned swap_interval = settings->uints.video_swap_interval;
unsigned swap_interval_config = settings->uints.video_swap_interval;
#endif
enum input_game_focus_cmd_type
game_focus_cmd = GAME_FOCUS_CMD_REAPPLY;
@@ -1766,15 +1779,15 @@ void command_event_reinit(const int flags)
command_event(CMD_EVENT_GAME_FOCUS_TOGGLE, &game_focus_cmd);
#ifdef HAVE_MENU
p_disp->framebuf_dirty = true;
p_disp->flags |= GFX_DISP_FLAG_FB_DIRTY;
if (video_fullscreen)
video_driver_hide_mouse();
if ( menu_st->alive
if ( (menu_st->flags & MENU_ST_FLAG_ALIVE)
&& video_st->current_video->set_nonblock_state)
video_st->current_video->set_nonblock_state(
video_st->data, false,
video_driver_test_all_flags(GFX_CTX_FLAGS_ADAPTIVE_VSYNC) &&
adaptive_vsync,
swap_interval);
runloop_get_video_swap_interval(swap_interval_config));
#endif
}
+15 -8
View File
@@ -136,6 +136,8 @@ enum event_command
CMD_EVENT_OVERLAY_SET_SCALE_FACTOR,
/* Sets current alpha modulation for overlay. */
CMD_EVENT_OVERLAY_SET_ALPHA_MOD,
/* Sets diagonal sensitivities of overlay eightway areas. */
CMD_EVENT_OVERLAY_SET_EIGHTWAY_DIAGONAL_SENSITIVITY,
/* Cycle to next overlay. */
CMD_EVENT_OVERLAY_NEXT,
/* Deinitializes overlay. */
@@ -244,7 +246,7 @@ enum event_command
CMD_EVENT_MIXER_VOLUME_UP,
CMD_EVENT_MIXER_VOLUME_DOWN,
CMD_EVENT_DISCORD_INIT,
CMD_EVENT_DISCORD_UPDATE,
CMD_EVENT_PRESENCE_UPDATE,
CMD_EVENT_OSK_TOGGLE,
CMD_EVENT_RECORDING_TOGGLE,
CMD_EVENT_STREAMING_TOGGLE,
@@ -253,6 +255,7 @@ enum event_command
CMD_EVENT_BSV_RECORDING_TOGGLE,
CMD_EVENT_SHADER_NEXT,
CMD_EVENT_SHADER_PREV,
CMD_EVENT_SHADER_TOGGLE,
CMD_EVENT_CHEAT_INDEX_PLUS,
CMD_EVENT_CHEAT_INDEX_MINUS,
CMD_EVENT_CHEAT_TOGGLE,
@@ -294,19 +297,22 @@ command_t* command_uds_new(void);
bool command_network_send(const char *cmd_);
#ifdef HAVE_BSV_MOVIE
enum bsv_flags
{
BSV_FLAG_MOVIE_START_RECORDING = (1 << 0),
BSV_FLAG_MOVIE_START_PLAYBACK = (1 << 1),
BSV_FLAG_MOVIE_PLAYBACK = (1 << 2),
BSV_FLAG_MOVIE_EOF_EXIT = (1 << 3),
BSV_FLAG_MOVIE_END = (1 << 4)
};
struct bsv_state
{
uint8_t flags;
/* Movie playback/recording support. */
char movie_path[PATH_MAX_LENGTH];
/* Immediate playback/recording. */
char movie_start_path[PATH_MAX_LENGTH];
bool movie_start_recording;
bool movie_start_playback;
bool movie_playback;
bool eof_exit;
bool movie_end;
};
struct bsv_movie
@@ -458,6 +464,7 @@ static const struct cmd_map map[] = {
{ "RESET", RARCH_RESET },
{ "SHADER_NEXT", RARCH_SHADER_NEXT },
{ "SHADER_PREV", RARCH_SHADER_PREV },
{ "SHADER_TOGGLE", RARCH_SHADER_TOGGLE },
{ "CHEAT_INDEX_PLUS", RARCH_CHEAT_INDEX_PLUS },
{ "CHEAT_INDEX_MINUS", RARCH_CHEAT_INDEX_MINUS },
{ "CHEAT_TOGGLE", RARCH_CHEAT_TOGGLE },
+135 -83
View File
@@ -53,6 +53,11 @@
#include "../input/input_overlay.h"
#endif
/* Required for Steam enum settings */
#if defined(HAVE_MIST)
#include "steam/steam.h"
#endif
#if defined(HW_RVL)
#define MAX_GAMMA_SETTING 30
#elif defined(GEKKO)
@@ -197,7 +202,7 @@
* Real x resolution = aspect * base_size * x scale
* Real y resolution = base_size * y scale
*/
#define DEFAULT_SCALE (3.0)
#define DEFAULT_SCALE 3
/* Fullscreen */
@@ -219,6 +224,10 @@
#define DEFAULT_WINDOWED_FULLSCREEN true
#endif
/* Enable automatic switching of the screen refresh rate when using the specified screen mode(s),
* based on running core/content */
#define DEFAULT_AUTOSWITCH_REFRESH_RATE AUTOSWITCH_REFRESH_RATE_EXCLUSIVE_FULLSCREEN
/* Which monitor to prefer. 0 is any monitor, 1 and up selects
* specific monitors, 1 being the first monitor. */
#define DEFAULT_MONITOR_INDEX 0
@@ -326,8 +335,19 @@
/* Video VSYNC (recommended) */
#define DEFAULT_VSYNC true
/* Vulkan specific */
#define DEFAULT_MAX_SWAPCHAIN_IMAGES 3
/* D3D1x specific */
#if defined(__WINRT__) || defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
#define DEFAULT_WAITABLE_SWAPCHAINS false
#else
#define DEFAULT_WAITABLE_SWAPCHAINS true
#endif
#define DEFAULT_MAX_FRAME_LATENCY 1
#define MAXIMUM_MAX_FRAME_LATENCY 4
/* GL specific */
#define DEFAULT_ADAPTIVE_VSYNC false
/* Attempts to hard-synchronize CPU and GPU.
@@ -364,7 +384,7 @@
/* Threaded video. Will possibly increase performance significantly
* at the cost of worse synchronization and latency.
*/
#if defined(HAVE_LIBNX) || defined(ANDROID)
#if defined(HAVE_LIBNX)
#define DEFAULT_VIDEO_THREADED true
#else
#define DEFAULT_VIDEO_THREADED false
@@ -492,6 +512,9 @@
/* Save configuration file on exit. */
#define DEFAULT_CONFIG_SAVE_ON_EXIT true
/* Save active input remap file on exit/close content */
#define DEFAULT_REMAP_SAVE_ON_EXIT true
#define DEFAULT_SHOW_HIDDEN_FILES false
/* Initialise file browser with the last used start directory */
@@ -555,12 +578,15 @@
/* Ozone colour theme: 1 == Basic Black */
#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
#define DEFAULT_OZONE_THUMBNAIL_SCALE_FACTOR 1.0f
#endif
#if defined(HAVE_OZONE) || defined(HAVE_XMB)
#define DEFAULT_OZONE_TRUNCATE_PLAYLIST_NAME true
#define DEFAULT_OZONE_SORT_AFTER_TRUNCATE_PLAYLIST_NAME false
#endif
#define DEFAULT_SETTINGS_SHOW_DRIVERS true
#define DEFAULT_SETTINGS_SHOW_VIDEO true
@@ -605,6 +631,8 @@
#define DEFAULT_SETTINGS_SHOW_DIRECTORY true
#define DEFAULT_SETTINGS_SHOW_STEAM true
#define DEFAULT_QUICK_MENU_SHOW_RESUME_CONTENT true
#define DEFAULT_QUICK_MENU_SHOW_RESTART_CONTENT true
@@ -613,6 +641,8 @@
#define DEFAULT_QUICK_MENU_SHOW_TAKE_SCREENSHOT true
#define DEFAULT_QUICK_MENU_SHOW_SAVESTATE_SUBMENU false
#define DEFAULT_QUICK_MENU_SHOW_SAVE_LOAD_STATE true
#define DEFAULT_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE true
@@ -671,9 +701,9 @@ static const bool menu_show_core_updater = true;
static const bool menu_show_core_manager_steam = true;
#endif
static const bool menu_show_legacy_thumbnail_updater = false;
static const bool menu_show_sublabels = true;
static const bool menu_dynamic_wallpaper_enable = true;
static const bool menu_scroll_fast = false;
#define DEFAULT_MENU_SHOW_SUBLABELS true
#define DEFAULT_MENU_DYNAMIC_WALLPAPER_ENABLE true
#define DEFAULT_MENU_SCROLL_FAST false
#define DEFAULT_MENU_SCROLL_DELAY 256
@@ -683,9 +713,9 @@ static const float menu_ticker_speed = 2.0f;
#define DEFAULT_MENU_TICKER_SMOOTH true
#if defined(HAVE_THREADS)
static const bool menu_savestate_resume = true;
#define DEFAULT_MENU_SAVESTATE_RESUME true
#else
static const bool menu_savestate_resume = false;
#define DEFAULT_MENU_SAVESTATE_RESUME false
#endif
#define DEFAULT_MENU_INSERT_DISK_RESUME true
@@ -737,9 +767,12 @@ static const bool content_show_playlists = true;
#define DEFAULT_MENU_CONTENT_SHOW_CONTENTLESS_CORES MENU_CONTENTLESS_CORES_DISPLAY_SINGLE_PURPOSE
#ifdef HAVE_XMB
#define DEFAULT_XMB_ANIMATION 0
#define DEFAULT_XMB_VERTICAL_FADE_FACTOR 100
#define DEFAULT_XMB_TITLE_MARGIN 5
#define DEFAULT_XMB_ANIMATION 0
#define DEFAULT_XMB_VERTICAL_FADE_FACTOR 100
#define DEFAULT_XMB_SHOW_TITLE_HEADER true
#define DEFAULT_XMB_TITLE_MARGIN 5
#define DEFAULT_XMB_TITLE_MARGIN_HORIZONTAL_OFFSET 0
#define MAXIMUM_XMB_TITLE_MARGIN 12
static const unsigned xmb_alpha_factor = 75;
static const unsigned menu_font_color_red = 255;
@@ -774,24 +807,24 @@ static const float menu_header_opacity = 1.000;
#define DEFAULT_MENU_SHADER_PIPELINE 2
#endif
#define DEFAULT_SHOW_ADVANCED_SETTINGS false
#define DEFAULT_SHOW_ADVANCED_SETTINGS true
#define DEFAULT_RGUI_COLOR_THEME RGUI_THEME_CLASSIC_GREEN
#define DEFAULT_RGUI_TRANSPARENCY true
static const bool rgui_inline_thumbnails = false;
static const bool rgui_swap_thumbnails = false;
#define DEFAULT_RGUI_INLINE_THUMBNAILS false
#define DEFAULT_RGUI_SWAP_THUMBNAILS false
static const unsigned rgui_thumbnail_downscaler = RGUI_THUMB_SCALE_POINT;
static const unsigned rgui_thumbnail_delay = 0;
static const unsigned rgui_internal_upscale_level = RGUI_UPSCALE_NONE;
static const bool rgui_full_width_layout = true;
static const unsigned rgui_aspect = RGUI_ASPECT_RATIO_4_3;
static const unsigned rgui_aspect_lock = RGUI_ASPECT_RATIO_LOCK_NONE;
static const bool rgui_shadows = false;
static const unsigned rgui_particle_effect = RGUI_PARTICLE_EFFECT_NONE;
#define DEFAULT_RGUI_SHADOWS false
#define DEFAULT_RGUI_PARTICLE_EFFECT RGUI_PARTICLE_EFFECT_NONE
#define DEFAULT_RGUI_PARTICLE_EFFECT_SPEED 1.0f
#define DEFAULT_RGUI_PARTICLE_EFFECT_SCREENSAVER true
static const bool rgui_extended_ascii = false;
#define DEFAULT_RGUI_EXTENDED_ASCII false
#define DEFAULT_RGUI_SWITCH_ICONS true
#endif
@@ -856,11 +889,15 @@ static const unsigned input_backtouch_toggle = false;
#define DEFAULT_OVERLAY_SHOW_INPUTS_PORT 0
#define DEFAULT_OVERLAY_DPAD_DIAGONAL_SENSITIVITY 80
#define DEFAULT_OVERLAY_ABXY_DIAGONAL_SENSITIVITY 50
#if defined(ANDROID) || defined(_WIN32) || defined(HAVE_STEAM)
#define DEFAULT_MENU_SWAP_OK_CANCEL_BUTTONS true
#else
#define DEFAULT_MENU_SWAP_OK_CANCEL_BUTTONS false
#endif
#define DEFAULT_MENU_SWAP_SCROLL_BUTTONS false
#if defined(WIIU)
#define DEFAULT_ALL_USERS_CONTROL_MENU true
@@ -889,18 +926,18 @@ static const unsigned input_backtouch_toggle = false;
/* Offset for where messages will be placed on-screen.
* Values are in range [0.0, 1.0]. */
static const float message_pos_offset_x = 0.05;
static const float message_pos_offset_y = 0.05;
#define DEFAULT_MESSAGE_POS_OFFSET_X 0.05f
#define DEFAULT_MESSAGE_POS_OFFSET_Y 0.05f
/* Color of the message.
* RGB hex value. */
static const uint32_t message_color = 0xffff00;
#define DEFAULT_MESSAGE_COLOR 0xffff00
static const bool message_bgcolor_enable = false;
static const uint32_t message_bgcolor_red = 0;
static const uint32_t message_bgcolor_green = 0;
static const uint32_t message_bgcolor_blue = 0;
static const float message_bgcolor_opacity = 1.0f;
#define DEFAULT_MESSAGE_BGCOLOR_ENABLE false
#define DEFAULT_MESSAGE_BGCOLOR_RED 0
#define DEFAULT_MESSAGE_BGCOLOR_GREEN 0
#define DEFAULT_MESSAGE_BGCOLOR_BLUE 0
#define DEFAULT_MESSAGE_BGCOLOR_OPACITY 1.0f
/* Record post-filtered (CPU filter) video,
* rather than raw game output. */
@@ -949,13 +986,17 @@ static const float message_bgcolor_opacity = 1.0f;
* Used for setups where one manually rotates the monitor. */
#define DEFAULT_ALLOW_ROTATE true
#if defined(_3DS)
#ifdef _3DS
/* Enable New3DS clock and L2 cache */
static const bool new3ds_speedup_enable = true;
/* Enable bottom LCD screen */
static const bool video_3ds_lcd_bottom = true;
/* Sets video display mode (3D, 2D, etc.) */
static const unsigned video_3ds_display_mode = CTR_VIDEO_MODE_3D;
#define DEFAULT_BOTTOM_FONT_ENABLE true
#define DEFAULT_BOTTOM_FONT_COLOR 255
#define DEFAULT_BOTTOM_FONT_SCALE 1.48
#endif
#ifdef WIIU
@@ -1051,9 +1092,9 @@ static const bool audio_enable_menu_bgm = false;
#endif
/* Output samplerate. */
#ifdef GEKKO
#if defined(GEKKO) || defined(MIYOO)
#define DEFAULT_OUTPUT_RATE 32000
#elif defined(_3DS) || defined(RETROFW) || defined(MIYOO)
#elif defined(_3DS) || defined(RETROFW)
#define DEFAULT_OUTPUT_RATE 32730
#else
#define DEFAULT_OUTPUT_RATE 48000
@@ -1157,13 +1198,17 @@ static const bool audio_enable_menu_bgm = false;
/* How many frames to rewind at a time. */
#define DEFAULT_REWIND_GRANULARITY 1
#endif
/* Pause gameplay when gameplay loses focus. */
/* Pause gameplay when window loses focus. */
#if defined(EMSCRIPTEN)
#define DEFAULT_PAUSE_NONACTIVE false
#else
#define DEFAULT_PAUSE_NONACTIVE true
#endif
/* Pause gameplay when controller disconnects. */
#define DEFAULT_PAUSE_ON_DISCONNECT true
/* Saves non-volatile SRAM at a regular interval.
* It is measured in seconds. A value of 0 disables autosave. */
#if defined(__i386__) || defined(__i486__) || defined(__i686__) || defined(__x86_64__) || defined(_M_X64) || defined(_WIN32) || defined(OSX) || defined(ANDROID) || defined(IOS) || defined(DINGUX)
@@ -1174,8 +1219,10 @@ static const bool audio_enable_menu_bgm = false;
#define DEFAULT_AUTOSAVE_INTERVAL 0
#endif
/* Show only connectable rooms */
#define DEFAULT_NETPLAY_SHOW_ONLY_CONNECTABLE true
/* Netplay lobby filters */
#define DEFAULT_NETPLAY_SHOW_ONLY_CONNECTABLE true
#define DEFAULT_NETPLAY_SHOW_ONLY_INSTALLED_CORES false
#define DEFAULT_NETPLAY_SHOW_PASSWORDED true
/* Publicly announce netplay */
#define DEFAULT_NETPLAY_PUBLIC_ANNOUNCE true
@@ -1186,6 +1233,10 @@ static const bool netplay_start_as_spectator = false;
/* Netplay chat fading toggle */
static const bool netplay_fade_chat = true;
/* Netplay chat colors */
static const unsigned netplay_chat_color_name = 0x008000;
static const unsigned netplay_chat_color_msg = 0xFFFFFF;
/* Allow players to pause */
static const bool netplay_allow_pausing = false;
@@ -1195,9 +1246,6 @@ static const bool netplay_allow_slaves = true;
/* Require connections only in slave mode */
static const bool netplay_require_slaves = false;
/* Netplay without savestates/rewind */
static const bool netplay_stateless_mode = false;
/* When being client over netplay, use keybinds for
* user 1 rather than user 2. */
static const bool netplay_client_swap_input = true;
@@ -1216,8 +1264,8 @@ static const bool netplay_use_mitm_server = false;
static const unsigned netplay_max_connections = 3;
static const unsigned netplay_max_ping = 0;
static const unsigned netplay_share_digital = RARCH_NETPLAY_SHARE_DIGITAL_NO_PREFERENCE;
static const unsigned netplay_share_analog = RARCH_NETPLAY_SHARE_ANALOG_NO_PREFERENCE;
static const unsigned netplay_share_digital = RARCH_NETPLAY_SHARE_DIGITAL_NO_SHARING;
static const unsigned netplay_share_analog = RARCH_NETPLAY_SHARE_ANALOG_NO_SHARING;
#endif
/* On save state load, block SRAM from being overwritten.
@@ -1228,7 +1276,7 @@ static const unsigned netplay_share_analog = RARCH_NETPLAY_SHARE_ANALOG_NO_PREF
* incremented before saving.
* When the content is loaded, state index will be set
* to the highest existing value. */
static const bool savestate_auto_index = false;
#define DEFAULT_SAVESTATE_AUTO_INDEX false
/* Specifies the maximum number of savestates to keep
* when savestate auto index is enabled
@@ -1243,10 +1291,10 @@ static const bool savestate_auto_index = false;
* The path is $SRAM_PATH.auto.
* RetroArch will automatically load any savestate with this path on
* startup if savestate_auto_load is set. */
static const bool savestate_auto_save = false;
static const bool savestate_auto_load = false;
#define DEFAULT_SAVESTATE_AUTO_SAVE false
#define DEFAULT_SAVESTATE_AUTO_LOAD false
static const bool savestate_thumbnail_enable = false;
#define DEFAULT_SAVESTATE_THUMBNAIL_ENABLE false
/* When creating save (srm) files, compress
* written data */
@@ -1254,8 +1302,7 @@ static const bool savestate_thumbnail_enable = false;
/* 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 */
#if defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
#define DEFAULT_SAVESTATE_FILE_COMPRESSION false
#else
#define DEFAULT_SAVESTATE_FILE_COMPRESSION true
@@ -1284,11 +1331,10 @@ static const bool savestate_thumbnail_enable = false;
#define DEFAULT_RUN_AHEAD_HIDE_WARNINGS false
/* Enable stdin/network command interface. */
static const bool network_cmd_enable = false;
static const uint16_t network_cmd_port = 55355;
static const bool stdin_cmd_enable = false;
static const uint16_t network_remote_base_port = 55400;
#define DEFAULT_NETWORK_CMD_ENABLE false
#define DEFAULT_NETWORK_CMD_PORT 55355
#define DEFAULT_NETWORK_REMOTE_BASE_PORT 55400
#define DEFAULT_STDIN_CMD_ENABLE false
#define DEFAULT_NETWORK_BUILDBOT_AUTO_EXTRACT_ARCHIVE true
#define DEFAULT_NETWORK_BUILDBOT_SHOW_EXPERIMENTAL_CORES false
@@ -1314,11 +1360,11 @@ static const uint16_t network_remote_base_port = 55400;
#endif
/* Number of entries that will be kept in content history playlist file. */
static const unsigned default_content_history_size = 200;
#define DEFAULT_CONTENT_HISTORY_SIZE 200
/* Number of entries that will be kept in content favorites playlist file.
* -1 == 'unlimited' (99999) */
static const int default_content_favorites_size = 200;
#define DEFAULT_CONTENT_FAVORITES_SIZE 200
/* Sort all playlists (apart from histories) alphabetically */
#define DEFAULT_PLAYLIST_SORT_ALPHABETICAL true
@@ -1389,7 +1435,11 @@ static const int default_content_favorites_size = 200;
#define DEFAULT_LIBRETRO_LOG_LEVEL 1
#ifndef RARCH_DEFAULT_PORT
#ifndef VITA
#define RARCH_DEFAULT_PORT 55435
#else
#define RARCH_DEFAULT_PORT 19492
#endif
#endif
#ifndef RARCH_STREAM_DEFAULT_PORT
@@ -1401,20 +1451,18 @@ static const int default_content_favorites_size = 200;
/* Axis threshold (between 0.0 and 1.0)
* How far an axis must be tilted to result in a button press. */
#define DEFAULT_AXIS_THRESHOLD 0.5f
#define DEFAULT_ANALOG_DEADZONE 0.0f
#define DEFAULT_ANALOG_SENSITIVITY 1.0f
/* Describes speed of which turbo-enabled buttons toggle. */
static const unsigned turbo_period = 6;
static const unsigned turbo_duty_cycle = 3;
static const unsigned turbo_mode = 0;
static const unsigned turbo_default_btn = RETRO_DEVICE_ID_JOYPAD_B;
#define DEFAULT_TURBO_PERIOD 6
#define DEFAULT_TURBO_DUTY_CYCLE 3
#define DEFAULT_TURBO_MODE 0
#define DEFAULT_TURBO_DEFAULT_BTN RETRO_DEVICE_ID_JOYPAD_B
/* Enable input auto-detection. Will attempt to autoconfigure
* gamepads, plug-and-play style. */
static const bool input_autodetect_enable = true;
#define DEFAULT_INPUT_AUTODETECT_ENABLE true
/* Enables accelerometer/gyroscope/illuminance
* sensor input, if supported */
@@ -1432,22 +1480,18 @@ static const bool input_autodetect_enable = true;
/* Show the input descriptors set by the core instead
* of the default ones. */
static const bool input_descriptor_label_show = true;
static const bool input_descriptor_hide_unbound = false;
#define DEFAULT_INPUT_DESCRIPTOR_LABEL_SHOW true
#define DEFAULT_INPUT_DESCRIPTOR_HIDE_UNBOUND false
#if defined(DINGUX)
static const unsigned input_max_users = 1;
#define DEFAULT_INPUT_MAX_USERS 1
#else
static const unsigned input_max_users = 5;
#define DEFAULT_INPUT_MAX_USERS 5
#endif
static const unsigned input_poll_type_behavior = 2;
static const unsigned input_bind_timeout = 5;
static const unsigned input_bind_hold = 2;
#define DEFAULT_INPUT_BIND_TIMEOUT 5
#define DEFAULT_INPUT_BIND_HOLD 2
#define DEFAULT_INPUT_POLL_TYPE_BEHAVIOR 2
#define DEFAULT_INPUT_HOTKEY_BLOCK_DELAY 5
static const unsigned gfx_thumbnails_default = 3;
@@ -1467,22 +1511,22 @@ static const unsigned gfx_thumbnail_upscale_threshold = 0;
#endif
#define DEFAULT_MENU_TIMEDATE_STYLE MENU_TIMEDATE_STYLE_DDMM_HM
#define DEFAULT_MENU_TIMEDATE_DATE_SEPARATOR MENU_TIMEDATE_DATE_SEPARATOR_HYPHEN
#define DEFAULT_MENU_REMEMBER_SELECTION MENU_REMEMBER_SELECTION_ALWAYS
#endif
static const bool xmb_vertical_thumbnails = false;
#define DEFAULT_XMB_VERTICAL_THUMBNAILS false
static const unsigned xmb_thumbnail_scale_factor = 100;
#define DEFAULT_XMB_THUMBNAIL_SCALE_FACTOR 100
#ifdef IOS
static const bool ui_companion_start_on_boot = false;
#define DEFAULT_UI_COMPANION_START_ON_BOOT false
#else
static const bool ui_companion_start_on_boot = true;
#define DEFAULT_UI_COMPANION_START_ON_BOOT true
#endif
static const bool ui_companion_enable = false;
#define DEFAULT_UI_COMPANION_ENABLE false
/* Currently only used to show the WIMP UI on startup */
static const bool ui_companion_toggle = false;
#define DEFAULT_UI_COMPANION_TOGGLE false
/* Only init the WIMP UI for this session if this is enabled */
#define DEFAULT_DESKTOP_MENU_ENABLE true
@@ -1513,16 +1557,24 @@ static const enum resampler_quality audio_resampler_quality_level = RESAMPLER_QU
/* MIDI */
#define DEFAULT_MIDI_INPUT "Off"
#define DEFAULT_MIDI_OUTPUT "Off"
#define DEFAULT_MIDI_VOLUME 100
static const unsigned midi_volume = 100;
#ifdef HAVE_MIST
/* Steam */
#define DEFAULT_STEAM_RICH_PRESENCE_FORMAT STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM
#endif
/* Only applies to Android 7.0 (API 24) and up */
static const bool sustained_performance_mode = false;
#define DEFAULT_SUSTAINED_PERFORMANCE_MODE false
static const bool vibrate_on_keypress = false;
static const bool enable_device_vibration = false;
#if defined(ANDROID)
#define DEFAULT_VIBRATE_ON_KEYPRESS true
#else
#define DEFAULT_VIBRATE_ON_KEYPRESS false
#endif
#define DEFAULT_ENABLE_DEVICE_VIBRATION false
/* Defines the strength of rumble effects
* on OpenDingux devices */
@@ -1592,9 +1644,9 @@ static const bool enable_device_vibration = false;
#endif
#else
#if defined(__x86_64__) || defined(_M_X64)
#define DEFAULT_BUILDBOT_SERVER_URL "http://buildbot.libretro.com/nightly/windows-msvc2017-uwp/x64/latest/"
#define DEFAULT_BUILDBOT_SERVER_URL "http://buildbot.libretro.com/nightly/windows/x86_64/latest/"
#elif defined(__i386__) || defined(__i486__) || defined(__i686__) || defined(_M_IX86) || defined(_M_IA64)
#define DEFAULT_BUILDBOT_SERVER_URL "http://buildbot.libretro.com/nightly/windows-msvc2017-uwp/x86/latest/"
#define DEFAULT_BUILDBOT_SERVER_URL "http://buildbot.libretro.com/nightly/windows/x86/latest/"
#elif defined(__arm__) || defined(_M_ARM)
#define DEFAULT_BUILDBOT_SERVER_URL "http://buildbot.libretro.com/nightly/windows-msvc2017-uwp/arm/latest/"
#elif defined(__aarch64__) || defined(_M_ARM64)
@@ -1646,7 +1698,7 @@ static const bool enable_device_vibration = false;
#define DEFAULT_AI_SERVICE_TARGET_LANG 0
#define DEFAULT_AI_SERVICE_ENABLE true
#define DEFAULT_AI_SERVICE_ENABLE false
#define DEFAULT_AI_SERVICE_PAUSE false
+21
View File
@@ -409,6 +409,13 @@ static const struct retro_keybind retro_keybinds_1[] = {
RARCH_SHADER_PREV, NO_BTN, NO_BTN, 0,
true
},
{
NULL, NULL,
AXIS_NONE, AXIS_NONE, AXIS_NONE,
MENU_ENUM_LABEL_VALUE_INPUT_META_SHADER_TOGGLE, RETROK_UNKNOWN,
RARCH_SHADER_TOGGLE, NO_BTN, NO_BTN, 0,
true
},
{
NULL, NULL,
AXIS_NONE, AXIS_NONE, AXIS_NONE,
@@ -998,6 +1005,13 @@ static const struct retro_keybind retro_keybinds_1[] = {
RARCH_SHADER_PREV, NO_BTN, NO_BTN, 0,
true
},
{
NULL, NULL,
AXIS_NONE, AXIS_NONE, AXIS_NONE,
MENU_ENUM_LABEL_VALUE_INPUT_META_SHADER_TOGGLE, RETROK_UNKNOWN,
RARCH_SHADER_TOGGLE, NO_BTN, NO_BTN, 0,
true
},
{
NULL, NULL,
AXIS_NONE, AXIS_NONE, AXIS_NONE,
@@ -1597,6 +1611,13 @@ static const struct retro_keybind retro_keybinds_1[] = {
RARCH_SHADER_PREV, NO_BTN, NO_BTN, 0,
true
},
{
NULL, NULL,
AXIS_NONE, AXIS_NONE, AXIS_NONE,
MENU_ENUM_LABEL_VALUE_INPUT_META_SHADER_TOGGLE, RETROK_COMMA,
RARCH_SHADER_TOGGLE, NO_BTN, NO_BTN, 0,
true
},
{
NULL, NULL,
AXIS_NONE, AXIS_NONE, AXIS_NONE,
+516 -396
View File
File diff suppressed because it is too large. Load diff
+58 -32
View File
@@ -30,7 +30,6 @@
#endif
#include "gfx/video_defines.h"
#include "input/input_defines.h"
#include "led/led_defines.h"
#ifdef HAVE_LAKKA
@@ -69,8 +68,6 @@
strlcpy(var, newvar, sizeof(var)); \
}
#define INPUT_CONFIG_BIND_MAP_GET(i) ((const struct input_bind_map*)&input_config_bind_map[(i)])
enum crt_switch_type
{
CRT_SWITCH_NONE = 0,
@@ -90,25 +87,6 @@ enum override_type
RETRO_BEGIN_DECLS
/* Input config. */
struct input_bind_map
{
const char *base;
enum msg_hash_enums desc;
/* Meta binds get input as prefix, not input_playerN".
* 0 = libretro related.
* 1 = Common hotkey.
* 2 = Uncommon/obscure hotkey.
*/
uint8_t meta;
uint8_t retro_key;
bool valid;
};
typedef struct settings
{
struct
@@ -146,6 +124,16 @@ typedef struct settings
int video_window_offset_y;
#endif
int content_favorites_size;
#ifdef _3DS
int bottom_font_color_red;
int bottom_font_color_green;
int bottom_font_color_blue;
int bottom_font_color_opacity;
#endif
#ifdef HAVE_XMB
int menu_xmb_title_margin;
int menu_xmb_title_margin_horizontal_offset;
#endif
} ints;
struct
@@ -201,6 +189,8 @@ typedef struct settings
unsigned netplay_port;
unsigned netplay_max_connections;
unsigned netplay_max_ping;
unsigned netplay_chat_color_name;
unsigned netplay_chat_color_msg;
unsigned netplay_input_latency_frames_min;
unsigned netplay_input_latency_frames_range;
unsigned netplay_share_digital;
@@ -224,7 +214,9 @@ typedef struct settings
unsigned video_monitor_index;
unsigned video_fullscreen_x;
unsigned video_fullscreen_y;
unsigned video_scale;
unsigned video_max_swapchain_images;
unsigned video_max_frame_latency;
unsigned video_swap_interval;
unsigned video_hard_sync_frames;
unsigned video_frame_delay;
@@ -278,7 +270,6 @@ typedef struct settings
unsigned menu_xmb_color_theme;
unsigned menu_xmb_thumbnail_scale_factor;
unsigned menu_xmb_vertical_fade_factor;
unsigned menu_xmb_title_margin;
unsigned menu_materialui_color_theme;
unsigned menu_materialui_transition_animation;
unsigned menu_materialui_thumbnail_view_portrait;
@@ -298,6 +289,7 @@ typedef struct settings
unsigned menu_content_show_contentless_cores;
unsigned menu_screensaver_timeout;
unsigned menu_screensaver_animation;
unsigned menu_remember_selection;
unsigned playlist_entry_remove_enable;
unsigned playlist_show_inline_core_name;
@@ -308,8 +300,12 @@ typedef struct settings
unsigned camera_width;
unsigned camera_height;
#ifdef HAVE_OVERLAY
unsigned input_overlay_show_inputs;
unsigned input_overlay_show_inputs_port;
unsigned input_overlay_dpad_diagonal_sensitivity;
unsigned input_overlay_abxy_diagonal_sensitivity;
#endif
unsigned run_ahead_frames;
@@ -332,6 +328,7 @@ typedef struct settings
unsigned core_updater_auto_backup_history_size;
unsigned video_black_frame_insertion;
unsigned video_autoswitch_refresh_rate;
unsigned quit_on_close_content;
#ifdef HAVE_LAKKA
@@ -339,12 +336,15 @@ typedef struct settings
unsigned cpu_min_freq;
unsigned cpu_max_freq;
#endif
#ifdef HAVE_MIST
unsigned steam_rich_presence_format;
#endif
} uints;
struct
{
float placeholder;
float video_scale;
float video_aspect_ratio;
float video_refresh_rate;
float crt_video_refresh_rate;
@@ -396,6 +396,9 @@ typedef struct settings
float input_analog_deadzone;
float input_axis_threshold;
float input_analog_sensitivity;
#ifdef _3DS
float bottom_font_scale;
#endif
} floats;
struct
@@ -432,9 +435,6 @@ typedef struct settings
char translation_service_url[2048];
char bundle_assets_src[PATH_MAX_LENGTH];
char bundle_assets_dst[PATH_MAX_LENGTH];
char bundle_assets_dst_subdir[PATH_MAX_LENGTH];
char youtube_stream_key[PATH_MAX_LENGTH];
char twitch_stream_key[PATH_MAX_LENGTH];
char facebook_stream_key[PATH_MAX_LENGTH];
@@ -467,6 +467,9 @@ typedef struct settings
char path_stream_url[8192];
char bundle_assets_src[PATH_MAX_LENGTH];
char bundle_assets_dst[PATH_MAX_LENGTH];
char bundle_assets_dst_subdir[PATH_MAX_LENGTH];
char path_menu_xmb_font[PATH_MAX_LENGTH];
char menu_content_show_settings_password[PATH_MAX_LENGTH];
char kiosk_mode_password[PATH_MAX_LENGTH];
@@ -497,7 +500,6 @@ typedef struct settings
char directory_video_filter[PATH_MAX_LENGTH];
char directory_video_shader[PATH_MAX_LENGTH];
char directory_libretro[PATH_MAX_LENGTH];
char directory_cursor[PATH_MAX_LENGTH];
char directory_input_remapping[PATH_MAX_LENGTH];
char directory_overlay[PATH_MAX_LENGTH];
#ifdef HAVE_VIDEO_LAYOUT
@@ -521,7 +523,9 @@ typedef struct settings
char directory_menu_config[PATH_MAX_LENGTH];
char directory_menu_content[PATH_MAX_LENGTH];
char streaming_title[PATH_MAX_LENGTH];
#ifdef _3DS
char directory_bottom_assets[PATH_MAX_LENGTH];
#endif
char log_dir[PATH_MAX_LENGTH];
} paths;
@@ -537,6 +541,7 @@ typedef struct settings
bool video_vsync;
bool video_adaptive_vsync;
bool video_hard_sync;
bool video_waitable_swapchains;
bool video_vfilter;
bool video_smooth;
bool video_ctx_scaling;
@@ -565,7 +570,9 @@ typedef struct settings
bool video_framecount_show;
bool video_memory_show;
bool video_msg_bgcolor_enable;
#ifdef _3DS
bool video_3ds_lcd_bottom;
#endif
bool video_wiiu_prefer_drc;
bool video_notch_write_over_enable;
#ifdef HAVE_VIDEO_LAYOUT
@@ -606,6 +613,7 @@ typedef struct settings
bool input_descriptor_hide_unbound;
bool input_all_users_control_menu;
bool input_menu_swap_ok_cancel_buttons;
bool input_menu_swap_scroll_buttons;
bool input_backtouch_enable;
bool input_backtouch_toggle;
bool input_small_keyboard_enable;
@@ -704,6 +712,7 @@ typedef struct settings
bool menu_rgui_particle_effect_screensaver;
bool menu_xmb_shadows_enable;
bool menu_xmb_vertical_thumbnails;
bool menu_xmb_show_title_header;
bool menu_content_show_settings;
bool menu_content_show_favorites;
bool menu_content_show_images;
@@ -717,6 +726,8 @@ typedef struct settings
bool menu_use_preferred_system_color_theme;
bool menu_preferred_system_color_theme_set;
bool menu_unified_controls;
bool menu_disable_info_button;
bool menu_disable_search_button;
bool menu_ticker_smooth;
bool settings_show_drivers;
bool settings_show_video;
@@ -740,10 +751,14 @@ typedef struct settings
bool settings_show_playlists;
bool settings_show_user;
bool settings_show_directory;
#ifdef HAVE_MIST
bool settings_show_steam;
#endif
bool quick_menu_show_resume_content;
bool quick_menu_show_restart_content;
bool quick_menu_show_close_content;
bool quick_menu_show_take_screenshot;
bool quick_menu_show_savestate_submenu;
bool quick_menu_show_save_load_state;
bool quick_menu_show_undo_save_load_state;
bool quick_menu_show_add_to_favorites;
@@ -770,13 +785,14 @@ typedef struct settings
/* Netplay */
bool netplay_show_only_connectable;
bool netplay_show_only_installed_cores;
bool netplay_show_passworded;
bool netplay_public_announce;
bool netplay_start_as_spectator;
bool netplay_fade_chat;
bool netplay_allow_pausing;
bool netplay_allow_slaves;
bool netplay_require_slaves;
bool netplay_stateless_mode;
bool netplay_nat_traversal;
bool netplay_use_mitm_server;
bool netplay_request_devices[MAX_USERS];
@@ -832,6 +848,11 @@ typedef struct settings
/* Driver */
bool driver_switch_enable;
#ifdef HAVE_MIST
/* Steam */
bool steam_rich_presence_enable;
#endif
/* Misc. */
bool discord_enable;
bool threaded_data_runloop_enable;
@@ -848,6 +869,7 @@ typedef struct settings
bool run_ahead_secondary_instance;
bool run_ahead_hide_warnings;
bool pause_nonactive;
bool pause_on_disconnect;
bool block_sram_overwrite;
bool savestate_auto_index;
bool savestate_auto_save;
@@ -880,6 +902,7 @@ typedef struct settings
bool sort_savestates_by_content_enable;
bool sort_screenshots_by_content_enable;
bool config_save_on_exit;
bool remap_save_on_exit;
bool show_hidden_files;
bool use_last_start_directory;
@@ -927,6 +950,11 @@ typedef struct settings
bool gamemode_enable;
#ifdef _3DS
bool new3ds_speedup_enable;
bool bottom_font_enable;
#endif
#ifdef ANDROID
bool android_input_disconnect_workaround;
#endif
} bools;
@@ -1141,8 +1169,6 @@ void input_config_parse_mouse_button(
const char *input_config_get_prefix(unsigned user, bool meta);
extern const struct input_bind_map input_config_bind_map[RARCH_BIND_LIST_END_NULL];
RETRO_END_DECLS
#endif
+2 -3
View File
@@ -84,8 +84,7 @@ bool content_undo_load_state(void);
/* Restores the last savestate file which was overwritten */
bool content_undo_save_state(void);
void content_get_status(bool *contentless,
bool *is_inited);
uint8_t content_get_flags(void);
void content_set_does_not_need_content(void);
@@ -100,7 +99,7 @@ void content_deinit(void);
bool content_init(void);
/* Resets the state and savefile backup buffers */
bool content_reset_savestate_backups(void);
void content_reset_savestate_backups(void);
/* Checks if the buffers are empty */
bool content_undo_load_buf_is_empty(void);
+3
View File
@@ -41,12 +41,15 @@ bool core_run(void);
bool core_reset(void);
bool core_serialize_size(retro_ctx_size_info_t *info);
bool core_serialize_size_special(retro_ctx_size_info_t *info);
uint64_t core_serialization_quirks(void);
bool core_serialize(retro_ctx_serialize_info_t *info);
bool core_serialize_special(retro_ctx_serialize_info_t *info);
bool core_unserialize(retro_ctx_serialize_info_t *info);
bool core_unserialize_special(retro_ctx_serialize_info_t *info);
bool core_set_cheat(retro_ctx_cheat_info_t *info);
+13 -15
View File
@@ -55,9 +55,6 @@ static bool core_backup_get_backup_dir(
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) ||
@@ -87,11 +84,13 @@ static bool core_backup_get_backup_dir(
/* 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,
fill_pathname_join_special(tmp,
string_is_empty(dir_core_assets)
? dir_libretro
: dir_core_assets,
"core_backups", sizeof(tmp));
fill_pathname_join(backup_dir, tmp,
fill_pathname_join_special(backup_dir, tmp,
core_file_id, len);
if (string_is_empty(backup_dir))
@@ -113,8 +112,10 @@ static bool core_backup_get_backup_dir(
/* 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)
const char *core_path, uint32_t crc,
enum core_backup_mode backup_mode,
const char *dir_core_assets,
char *backup_path, size_t len)
{
time_t current_time;
struct tm time_info;
@@ -123,7 +124,6 @@ bool core_backup_get_backup_path(
char backup_dir[PATH_MAX_LENGTH];
char backup_filename[PATH_MAX_LENGTH];
core_dir[0] = '\0';
backup_dir[0] = '\0';
backup_filename[0] = '\0';
@@ -165,7 +165,7 @@ bool core_backup_get_backup_path(
FILE_PATH_CORE_BACKUP_EXTENSION);
/* Build final path */
fill_pathname_join(backup_path, backup_dir,
fill_pathname_join_special(backup_path, backup_dir,
backup_filename, len);
return true;
@@ -281,9 +281,7 @@ bool core_backup_get_backup_crc(char *backup_path, uint32_t *crc)
goto error;
/* Convert to an integer */
*crc = (uint32_t)string_hex_to_unsigned(crc_str);
if (*crc == 0)
if ((*crc = (uint32_t)string_hex_to_unsigned(crc_str)) == 0)
goto error;
string_list_free(metadata_list);
@@ -383,7 +381,7 @@ enum core_backup_type core_backup_get_core_path(
break;
/* All good - build core path */
fill_pathname_join(core_path, dir_libretro,
fill_pathname_join_special(core_path, dir_libretro,
core_filename, len);
backup_type = CORE_BACKUP_TYPE_ARCHIVE;
@@ -391,7 +389,7 @@ enum core_backup_type core_backup_get_core_path(
break;
case CORE_BACKUP_TYPE_LIB:
/* This is a plain dynamic library file */
fill_pathname_join(core_path, dir_libretro,
fill_pathname_join_special(core_path, dir_libretro,
backup_filename, len);
backup_type = CORE_BACKUP_TYPE_LIB;
break;
+318 -634
View File
File diff suppressed because it is too large. Load diff
-2
View File
@@ -202,8 +202,6 @@ void core_info_qsort(core_info_list_t *core_info_list, enum core_info_list_qsort
bool core_info_list_get_info(core_info_list_t *core_info_list,
core_info_t *out_info, const char *core_path);
bool core_info_hw_api_supported(core_info_t *info);
/* Convenience wrapper functions used to interpret
* the 'savestate_support_level' parameter of
* the currently loaded core. If no core is
+62 -80
View File
@@ -27,9 +27,6 @@
#include "core_option_manager.h"
#include "msg_hash.h"
#define CORE_OPTION_MANAGER_MAP_TAG "#"
#define CORE_OPTION_MANAGER_MAP_DELIM ":"
/*********************/
/* Option Conversion */
/*********************/
@@ -70,9 +67,8 @@ struct retro_core_options_v2 *core_option_manager_convert_v1(
return NULL;
/* Allocate output retro_core_options_v2 struct */
options_v2 = (struct retro_core_options_v2 *)
malloc(sizeof(*options_v2));
if (!options_v2)
if (!(options_v2 = (struct retro_core_options_v2 *)
malloc(sizeof(*options_v2))))
return NULL;
/* Note: v1 options have no concept of
@@ -85,10 +81,8 @@ struct retro_core_options_v2 *core_option_manager_convert_v1(
* > One extra entry required for terminating NULL entry
* > Note that calloc() sets terminating NULL entry and
* correctly 'nullifies' each values array */
option_v2_defs = (struct retro_core_option_v2_definition *)
calloc(num_options + 1, sizeof(*option_v2_defs));
if (!option_v2_defs)
if (!(option_v2_defs = (struct retro_core_option_v2_definition *)
calloc(num_options + 1, sizeof(*option_v2_defs))))
{
free(options_v2);
return NULL;
@@ -103,7 +97,7 @@ struct retro_core_options_v2 *core_option_manager_convert_v1(
size_t num_values = 0;
/* Set key */
option_v2_defs[i].key = options_v1[i].key;
option_v2_defs[i].key = options_v1[i].key;
/* Set default value */
option_v2_defs[i].default_value = options_v1[i].default_value;
@@ -186,9 +180,8 @@ struct retro_core_options_v2 *core_option_manager_convert_v1_intl(
return NULL;
/* Allocate output retro_core_options_v2 struct */
options_v2 = (struct retro_core_options_v2 *)
malloc(sizeof(*options_v2));
if (!options_v2)
if (!(options_v2 = (struct retro_core_options_v2 *)
malloc(sizeof(*options_v2))))
return NULL;
/* Note: v1 options have no concept of
@@ -201,10 +194,8 @@ struct retro_core_options_v2 *core_option_manager_convert_v1_intl(
* > One extra entry required for terminating NULL entry
* > Note that calloc() sets terminating NULL entry and
* correctly 'nullifies' each values array */
option_v2_defs = (struct retro_core_option_v2_definition *)
calloc(num_options + 1, sizeof(*option_v2_defs));
if (!option_v2_defs)
if (!(option_v2_defs = (struct retro_core_option_v2_definition *)
calloc(num_options + 1, sizeof(*option_v2_defs))))
{
core_option_manager_free_converted(options_v2);
return NULL;
@@ -374,9 +365,8 @@ struct retro_core_options_v2 *core_option_manager_convert_v2_intl(
return NULL;
/* Allocate output retro_core_options_v2 struct */
options_v2 = (struct retro_core_options_v2 *)
malloc(sizeof(*options_v2));
if (!options_v2)
if (!(options_v2 = (struct retro_core_options_v2 *)
malloc(sizeof(*options_v2))))
return NULL;
options_v2->categories = NULL;
@@ -387,10 +377,8 @@ struct retro_core_options_v2 *core_option_manager_convert_v2_intl(
* > Note that calloc() sets terminating NULL entry */
if (num_categories > 0)
{
option_v2_cats = (struct retro_core_option_v2_category *)
calloc(num_categories + 1, sizeof(*option_v2_cats));
if (!option_v2_cats)
if (!(option_v2_cats = (struct retro_core_option_v2_category *)
calloc(num_categories + 1, sizeof(*option_v2_cats))))
{
core_option_manager_free_converted(options_v2);
return NULL;
@@ -403,10 +391,8 @@ struct retro_core_options_v2 *core_option_manager_convert_v2_intl(
* > One extra entry required for terminating NULL entry
* > Note that calloc() sets terminating NULL entry and
* correctly 'nullifies' each values array */
option_v2_defs = (struct retro_core_option_v2_definition *)
calloc(num_options + 1, sizeof(*option_v2_defs));
if (!option_v2_defs)
if (!(option_v2_defs = (struct retro_core_option_v2_definition *)
calloc(num_options + 1, sizeof(*option_v2_defs))))
{
core_option_manager_free_converted(options_v2);
return NULL;
@@ -741,8 +727,8 @@ static bool core_option_manager_parse_variable(
option->vals->elems[i].userdata = (void*)value_hash;
/* Redundant safely check... */
value_label = string_is_empty(value_label) ?
value : value_label;
if (string_is_empty(value_label))
value_label = value;
/* Append value label string */
string_list_append(option->val_labels, value_label, attr);
@@ -819,9 +805,7 @@ core_option_manager_t *core_option_manager_new_vars(
if (!vars)
return NULL;
opt = (core_option_manager_t*)malloc(sizeof(*opt));
if (!opt)
if (!(opt = (core_option_manager_t*)malloc(sizeof(*opt))))
return NULL;
opt->conf = NULL;
@@ -859,8 +843,7 @@ core_option_manager_t *core_option_manager_new_vars(
goto error;
/* Create options array */
opt->opts = (struct core_option*)calloc(size, sizeof(*opt->opts));
if (!opt->opts)
if (!(opt->opts = (struct core_option*)calloc(size, sizeof(*opt->opts))))
goto error;
opt->size = size;
@@ -875,7 +858,8 @@ core_option_manager_t *core_option_manager_new_vars(
* the map */
char address[256];
address[0] = '\0';
address[0] = '#';
address[1] = '\0';
/* Address string is normally:
* <category_key><delim><tag><option_key>
@@ -885,8 +869,7 @@ core_option_manager_t *core_option_manager_new_vars(
* so we could just set the address to
* <option_key> - but for consistency with
* 'modern' options, we apply the tag regardless */
snprintf(address, sizeof(address),
CORE_OPTION_MANAGER_MAP_TAG "%s", var->key);
strlcat(address, var->key, sizeof(address));
if (!nested_list_add_item(opt->option_map,
address, NULL, (const void*)&opt->opts[size]))
@@ -947,7 +930,7 @@ static bool core_option_manager_parse_option(
* character */
if (opt->cats &&
!string_is_empty(category_key) &&
!strstr(category_key, CORE_OPTION_MANAGER_MAP_DELIM))
!strstr(category_key, ":"))
{
for (i = 0; i < opt->cats_size; i++)
{
@@ -978,7 +961,7 @@ static bool core_option_manager_parse_option(
/* If option has a category, option key
* cannot contain a map delimiter character */
if (!string_is_empty(option->category_key) &&
strstr(key, CORE_OPTION_MANAGER_MAP_DELIM))
strstr(key, ":"))
return false;
option->key = strdup(key);
@@ -1028,8 +1011,8 @@ static bool core_option_manager_parse_option(
value, value_label);
/* > Redundant safely check... */
value_label = string_is_empty(value_label) ?
value : value_label;
if (string_is_empty(value_label))
value_label = value;
/* Append value label string */
string_list_append(option->val_labels, value_label, attr);
@@ -1113,9 +1096,7 @@ core_option_manager_t *core_option_manager_new(
option_cats = options_v2->categories;
option_defs = options_v2->definitions;
opt = (core_option_manager_t*)malloc(sizeof(*opt));
if (!opt)
if (!(opt = (core_option_manager_t*)malloc(sizeof(*opt))))
return NULL;
opt->conf = NULL;
@@ -1166,8 +1147,8 @@ core_option_manager_t *core_option_manager_new(
/* Create categories array */
if (cats_size > 0)
{
opt->cats = (struct core_catagory*)calloc(size, sizeof(*opt->cats));
if (!opt->cats)
if (!(opt->cats = (struct core_category*)calloc(size,
sizeof(*opt->cats))))
goto error;
opt->cats_size = cats_size;
@@ -1190,8 +1171,7 @@ core_option_manager_t *core_option_manager_new(
}
/* Create options array */
opt->opts = (struct core_option*)calloc(size, sizeof(*opt->opts));
if (!opt->opts)
if (!(opt->opts = (struct core_option*)calloc(size, sizeof(*opt->opts))))
goto error;
opt->size = size;
@@ -1210,7 +1190,6 @@ core_option_manager_t *core_option_manager_new(
const char *category_key = opt->opts[size].category_key;
char address[256];
address[0] = '\0';
/* Address string is nominally:
* <category_key><delim><tag><option_key>
@@ -1218,15 +1197,22 @@ core_option_manager_t *core_option_manager_new(
* key in order to avoid category/option key
* collisions */
if (string_is_empty(category_key))
snprintf(address, sizeof(address),
CORE_OPTION_MANAGER_MAP_TAG "%s", option_def->key);
{
address[0] = '#';
address[1] = '\0';
strlcat(address, option_def->key, sizeof(address));
}
else
snprintf(address, sizeof(address),
"%s" CORE_OPTION_MANAGER_MAP_DELIM CORE_OPTION_MANAGER_MAP_TAG "%s",
category_key, option_def->key);
{
size_t _len = strlcpy(address, category_key, sizeof(address));
address[_len ] = ':';
address[_len+1] = '#';
address[_len+2] = '\0';
strlcat(address, option_def->key, sizeof(address));
}
if (!nested_list_add_item(opt->option_map,
address, CORE_OPTION_MANAGER_MAP_DELIM,
address, ":",
(const void*)&opt->opts[size]))
goto error;
}
@@ -1338,21 +1324,21 @@ const char *core_option_manager_get_category_desc(core_option_manager_t *opt,
uint32_t key_hash;
size_t i;
if (!opt ||
string_is_empty(key))
if ( !opt
|| string_is_empty(key))
return NULL;
key_hash = core_option_manager_hash_string(key);
for (i = 0; i < opt->cats_size; i++)
{
struct core_catagory *catagory = &opt->cats[i];
struct core_category *category = &opt->cats[i];
if ((key_hash == catagory->key_hash) &&
!string_is_empty(catagory->key) &&
string_is_equal(key, catagory->key))
if ((key_hash == category->key_hash) &&
!string_is_empty(category->key) &&
string_is_equal(key, category->key))
{
return catagory->desc;
return category->desc;
}
}
@@ -1387,13 +1373,13 @@ const char *core_option_manager_get_category_info(core_option_manager_t *opt,
for (i = 0; i < opt->cats_size; i++)
{
struct core_catagory *catagory = &opt->cats[i];
struct core_category *category = &opt->cats[i];
if ((key_hash == catagory->key_hash) &&
!string_is_empty(catagory->key) &&
string_is_equal(key, catagory->key))
if ((key_hash == category->key_hash) &&
!string_is_empty(category->key) &&
string_is_equal(key, category->key))
{
return catagory->info;
return category->info;
}
}
@@ -1412,7 +1398,7 @@ const char *core_option_manager_get_category_info(core_option_manager_t *opt,
* be visible if at least one of the options
* in the category is visible)
*
* Returns: true if option category should be
* @return true if option category should be
* displayed by the frontend, otherwise false.
**/
bool core_option_manager_get_category_visible(core_option_manager_t *opt,
@@ -1429,16 +1415,12 @@ bool core_option_manager_get_category_visible(core_option_manager_t *opt,
return false;
/* Fetch category item from map */
category_item = nested_list_get_item(opt->option_map,
key, NULL);
if (!category_item)
if (!(category_item = nested_list_get_item(opt->option_map,
key, NULL)))
return false;
/* Get child options of specified category */
option_list = nested_list_item_get_children(category_item);
if (!option_list)
if (!(option_list = nested_list_item_get_children(category_item)))
return false;
/* Loop over child options */
@@ -1472,7 +1454,7 @@ bool core_option_manager_get_category_visible(core_option_manager_t *opt,
* Fetches the index of the core option identified
* by the specified @key.
*
* Returns: true if option matching the specified
* @return true if option matching the specified
* key was found, otherwise false.
**/
bool core_option_manager_get_idx(core_option_manager_t *opt,
@@ -1703,8 +1685,8 @@ const char *core_option_manager_get_val_label(core_option_manager_t *opt,
bool core_option_manager_get_visible(core_option_manager_t *opt,
size_t idx)
{
if (!opt ||
(idx >= opt->size))
if ( !opt
|| (idx >= opt->size))
return false;
return opt->opts[idx].visible;
+4 -4
View File
@@ -51,7 +51,7 @@ struct core_option
bool visible;
};
struct core_catagory
struct core_category
{
char *key;
char *desc;
@@ -68,7 +68,7 @@ struct core_option_manager
config_file_t *conf;
char conf_path[PATH_MAX_LENGTH];
struct core_catagory *cats;
struct core_category *cats;
struct core_option *opts;
nested_list_t *option_map;
@@ -252,7 +252,7 @@ const char *core_option_manager_get_category_info(core_option_manager_t *opt,
* be visible if at least one of the options
* in the category is visible)
*
* Returns: true if option category should be
* @return true if option category should be
* displayed by the frontend, otherwise false.
**/
bool core_option_manager_get_category_visible(core_option_manager_t *opt,
@@ -274,7 +274,7 @@ bool core_option_manager_get_category_visible(core_option_manager_t *opt,
* Fetches the index of the core option identified
* by the specified @key.
*
* Returns: true if option matching the specified
* @return true if option matching the specified
* key was found, otherwise false.
**/
bool core_option_manager_get_idx(core_option_manager_t *opt,
+25 -44
View File
@@ -278,14 +278,9 @@ bool core_updater_list_get_core(
size_t i;
char real_core_path[PATH_MAX_LENGTH];
real_core_path[0] = '\0';
if (!core_list || !entry || string_is_empty(local_core_path))
return false;
num_entries = RBUF_LEN(core_list->entries);
if (num_entries < 1)
if ((num_entries = RBUF_LEN(core_list->entries)) < 1)
return false;
/* Resolve absolute pathname of local_core_path */
@@ -376,9 +371,7 @@ static bool core_updater_list_set_crc(
if (!entry || string_is_empty(crc_str))
return false;
crc = (uint32_t)string_hex_to_unsigned(crc_str);
if (crc == 0)
if ((crc = (uint32_t)string_hex_to_unsigned(crc_str)) == 0)
return false;
entry->crc = crc;
@@ -405,19 +398,15 @@ static bool core_updater_list_set_paths(
* source files have non-standard file names (which
* will not be recognised by regular core handling
* routines) */
bool resolve_symlinks = (list_type != CORE_UPDATER_LIST_TYPE_PFD);
char remote_core_path[PATH_MAX_LENGTH];
char local_core_path[PATH_MAX_LENGTH];
char local_info_path[PATH_MAX_LENGTH];
bool resolve_symlinks = (list_type != CORE_UPDATER_LIST_TYPE_PFD);
remote_core_path[0] = '\0';
local_core_path[0] = '\0';
local_info_path[0] = '\0';
if (!entry ||
string_is_empty(filename_str) ||
string_is_empty(path_dir_libretro) ||
string_is_empty(path_libretro_info))
if ( !entry
|| string_is_empty(filename_str)
|| string_is_empty(path_dir_libretro)
|| string_is_empty(path_libretro_info))
return false;
/* Only buildbot cores require the buildbot URL */
@@ -441,14 +430,14 @@ static bool core_updater_list_set_paths(
* > Leave blank if this is not a buildbot core */
if (list_type == CORE_UPDATER_LIST_TYPE_BUILDBOT)
{
fill_pathname_join(
fill_pathname_join_special(
remote_core_path,
network_buildbot_url,
filename_str,
sizeof(remote_core_path));
/* > Apply proper URL encoding (messy...) */
tmp_url = strdup(remote_core_path);
tmp_url = strdup(remote_core_path);
remote_core_path[0] = '\0';
net_http_urlencode_full(
remote_core_path, tmp_url, sizeof(remote_core_path));
@@ -464,8 +453,7 @@ static bool core_updater_list_set_paths(
entry->remote_core_path = strdup(remote_core_path);
/* local_core_path */
fill_pathname_join(
fill_pathname_join_special(
local_core_path,
path_dir_libretro,
filename_str,
@@ -485,12 +473,12 @@ static bool core_updater_list_set_paths(
entry->local_core_path = strdup(local_core_path);
/* local_info_path */
fill_pathname_join_noext(
fill_pathname_join_special(
local_info_path,
path_libretro_info,
filename_str,
sizeof(local_info_path));
path_remove_extension(local_info_path);
if (is_archive)
path_remove_extension(local_info_path);
@@ -533,9 +521,9 @@ static bool core_updater_list_set_core_info(
{
core_updater_info_t *core_info = NULL;
if (!entry ||
string_is_empty(local_info_path) ||
string_is_empty(filename_str))
if ( !entry
|| string_is_empty(local_info_path)
|| string_is_empty(filename_str))
return false;
/* Clear any existing core info */
@@ -567,9 +555,7 @@ static bool core_updater_list_set_core_info(
* 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)
if ((core_info = core_info_get_core_updater_info(local_info_path)))
{
/* display_name + is_experimental */
if (!string_is_empty(core_info->display_name))
@@ -590,7 +576,7 @@ static bool core_updater_list_set_core_info(
if (!string_is_empty(core_info->description))
entry->description = strdup(core_info->description);
else
entry->description = strdup("");
entry->description = strldup("", sizeof(""));
/* licenses_list */
if (!string_is_empty(core_info->licenses))
@@ -606,7 +592,7 @@ static bool core_updater_list_set_core_info(
* cores must have a valid/complete core info file) */
entry->display_name = strdup(filename_str);
entry->is_experimental = true;
entry->description = strdup("");
entry->description = strldup("", sizeof(""));
}
return true;
@@ -691,9 +677,9 @@ static void core_updater_list_add_entry(
crc_str = network_core_entry_list->elems[1].data;
filename_str = network_core_entry_list->elems[2].data;
if (string_is_empty(date_str) ||
string_is_empty(crc_str) ||
string_is_empty(filename_str))
if ( string_is_empty(date_str)
|| string_is_empty(crc_str)
|| string_is_empty(filename_str))
goto error;
/* Check whether core file is already included
@@ -770,13 +756,10 @@ static void core_updater_list_qsort(core_updater_list_t *core_list)
if (!core_list)
return;
num_entries = RBUF_LEN(core_list->entries);
if (num_entries < 2)
if ((num_entries = RBUF_LEN(core_list->entries)) < 2)
return;
qsort(
if (core_list->entries)
qsort(
core_list->entries, num_entries,
sizeof(core_updater_list_entry_t),
(int (*)(const void *, const void *))
@@ -808,9 +791,7 @@ bool core_updater_list_parse_network_data(
/* Input data string is not terminated - have
* to copy it to a temporary buffer... */
data_buf = (char*)malloc((len + 1) * sizeof(char));
if (!data_buf)
if (!(data_buf = (char*)malloc((len + 1) * sizeof(char))))
goto error;
memcpy(data_buf, data, len * sizeof(char));
+10 -13
View File
@@ -1085,11 +1085,9 @@ static enum AVPixelFormat select_decoder(AVCodecContext *ctx,
if (!force_sw_decoder)
{
if (hw_decoder == AV_HWDEVICE_TYPE_NONE)
{
format = auto_hw_decoder(ctx, pix_fmts);
}
format = auto_hw_decoder(ctx, pix_fmts);
else
format = init_hw_decoder(ctx, hw_decoder, pix_fmts);
format = init_hw_decoder(ctx, hw_decoder, pix_fmts);
}
/* Fallback to SW rendering */
@@ -1099,17 +1097,17 @@ static enum AVPixelFormat select_decoder(AVCodecContext *ctx,
log_cb(RETRO_LOG_INFO, "[FFMPEG] Using SW decoding.\n");
ctx->thread_type = FF_THREAD_FRAME;
ctx->thread_count = sw_decoder_threads;
ctx->thread_type = FF_THREAD_FRAME;
ctx->thread_count = sw_decoder_threads;
log_cb(RETRO_LOG_INFO, "[FFMPEG] Configured software decoding threads: %d\n", sw_decoder_threads);
format = fctx->streams[video_stream_index]->codecpar->format;
format = (enum AVPixelFormat)fctx->streams[video_stream_index]->codecpar->format;
#if ENABLE_HW_ACCEL
hw_decoding_enabled = false;
hw_decoding_enabled = false;
}
else
hw_decoding_enabled = true;
hw_decoding_enabled = true;
#endif
return format;
@@ -1122,10 +1120,10 @@ static enum AVPixelFormat get_format(AVCodecContext *ctx,
{
/* Look if we can reuse the current decoder */
for (size_t i = 0; pix_fmts[i] != AV_PIX_FMT_NONE; i++)
{
if (pix_fmts[i] == pix_fmt)
{
return pix_fmt;
}
}
pix_fmt = select_decoder(ctx, pix_fmts);
@@ -1135,8 +1133,7 @@ static enum AVPixelFormat get_format(AVCodecContext *ctx,
static bool open_codec(AVCodecContext **ctx, enum AVMediaType type, unsigned index)
{
int ret = 0;
int ret = 0;
const AVCodec *codec = avcodec_find_decoder(fctx->streams[index]->codecpar->codec_id);
if (!codec)
{
+2 -2
View File
@@ -314,12 +314,12 @@ static void fft_init(fft_t *fft)
window = (GLushort*)calloc(fft->size, sizeof(GLushort));
window_mod = 1.0 / kaiser_window_function(0.0, KAISER_BETA);
window_mod = 1.0 / besseli0(KAISER_BETA);
for (i = 0; i < fft->size; i++)
{
double phase = (double)(i - (int)(fft->size) / 2) / ((int)(fft->size) / 2);
double w = kaiser_window_function(phase, KAISER_BETA);
double w = besseli0(KAISER_BETA * sqrtf(1 - phase * phase));
window[i] = round(0xffff * w * window_mod);
}
glBindTexture(GL_TEXTURE_2D, fft->window_tex);
+43 -3
View File
@@ -1,12 +1,15 @@
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <math.h>
#include <sys/stat.h>
#include <3ds.h>
#include "ctr/ctr_debug.h"
#define FILE_CHUNK_SIZE 4096
PrintConsole debugConsoleTop;
typedef struct
{
u32 argc;
@@ -60,6 +63,18 @@ static int isCiaInstalled(u64 titleId, u16 version)
return 0;
}
static int deleteCia(u64 TitleId)
{
u64 currTitleId = 0;
/* Do not delete if the titleid is currently running. */
if (R_FAILED(APT_GetAppletInfo((NS_APPID) envGetAptAppId(), &currTitleId, NULL, NULL, NULL, NULL)) || TitleId != currTitleId)
{
AM_DeleteTitle(MEDIATYPE_SD, TitleId);
AM_DeleteTicket(TitleId);
}
}
static int installCia(Handle ciaFile)
{
Handle outputHandle;
@@ -91,15 +106,24 @@ static int installCia(Handle ciaFile)
}
failed = FSFILE_Write(outputHandle, &bytesWritten,
fileOffset, transferBuffer, bytesRead, 0);
fileOffset, transferBuffer, bytesRead, FS_WRITE_FLUSH);
if (R_FAILED(failed))
{
AM_CancelCIAInstall(outputHandle);
if (R_DESCRIPTION(failed) == RD_ALREADY_EXISTS)
return 1;
return -1;
}
printf(PRINTFPOS(27,0)" %llu / %llu\n\n", fileOffset, fileSize);
int progress = roundf(((float)fileOffset/(float)fileSize)*50);
for (int i = 0; i < progress; i++)
{
printf("#");
}
if (bytesWritten != bytesRead)
{
AM_CancelCIAInstall(outputHandle);
@@ -121,6 +145,12 @@ int exec_cia(const char* path, const char** args)
struct stat sBuff;
bool fileExists;
bool inited;
#ifdef USE_CTRULIB_2
if (!gspHasGpuRight())
#endif
gfxInitDefault();
consoleInit(GFX_TOP, &debugConsoleTop);
if (!path || path[0] == '\0')
{
@@ -175,10 +205,20 @@ int exec_cia(const char* path, const char** args)
}
else if (ciaInstalled == 0)
{
/* not installed */
/* titleid with version not installed. */
consoleSelect(&debugConsoleTop);
printf(PRINTFPOS(2,0)"Do not close RetroArch or turn off your console.");
printf(PRINTFPOS(5,0)"Installing core:\n%s\n", path);
/* Delete existing content of the pending titleid. */
deleteCia(ciaInfo.titleID);
int error = installCia(ciaFile);
if (error == -1)
error_and_quit("Cant install CIA.");
{
printf(PRINTFPOS(25,0)"CIA install failed.\n");
wait_for_input();
}
}
FSFILE_Close(ciaFile);
+377 -67
View File
@@ -34,94 +34,418 @@ int database_info_build_query_enum(char *s, size_t len,
enum database_query_type type,
const char *path)
{
bool add_quotes = true;
bool add_glob = false;
s[0] = '{';
s[1] = '\'';
s[2] = '\0';
size_t pos = 0;
switch (type)
{
case DATABASE_QUERY_ENTRY:
strlcat(s, "name", len);
s[0] = '{';
s[1] = '\'';
s[2] = 'n';
s[3] = 'a';
s[4] = 'm';
s[5] = 'e';
s[6] = '\'';
s[7] = ':';
s[8] = '"';
s[9] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
case DATABASE_QUERY_ENTRY_PUBLISHER:
strlcat(s, "publisher", len);
s[0] = '{';
s[1] = '\'';
s[2] = 'p';
s[3] = 'u';
s[4] = 'b';
s[5] = 'l';
s[6] = 'i';
s[7] = 's';
s[8] = 'h';
s[9] = 'e';
s[10] = 'r';
s[11] = '\'';
s[12] = ':';
s[13] = '"';
s[14] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
case DATABASE_QUERY_ENTRY_DEVELOPER:
strlcat(s, "developer", len);
add_glob = true;
add_quotes = false;
s[0] = '{';
s[1] = '\'';
s[2] = 'd';
s[3] = 'e';
s[4] = 'v';
s[5] = 'e';
s[6] = 'l';
s[7] = 'o';
s[8] = 'p';
s[9] = 'e';
s[10] = 'r';
s[11] = '\'';
s[12] = ':';
s[13] = 'g';
s[14] = 'l';
s[15] = 'o';
s[16] = 'b';
s[17] = '(';
s[18] = '\'';
s[19] = '*';
s[20] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '*';
s[pos+1] = '\'';
s[pos+2] = ')';
s[pos+3] = '}';
s[pos+4] = '\0';
break;
case DATABASE_QUERY_ENTRY_ORIGIN:
strlcat(s, "origin", len);
s[0] = '{';
s[1] = '\'';
s[2] = 'o';
s[3] = 'r';
s[4] = 'i';
s[5] = 'g';
s[6] = 'i';
s[7] = 'n';
s[8] = '\'';
s[9] = ':';
s[10] = '"';
s[11] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
case DATABASE_QUERY_ENTRY_FRANCHISE:
strlcat(s, "franchise", len);
s[0] = '{';
s[1] = '\'';
s[2] = 'f';
s[3] = 'r';
s[4] = 'a';
s[5] = 'n';
s[6] = 'c';
s[7] = 'h';
s[8] = 'i';
s[9] = 's';
s[10] = 'e';
s[11] = '\'';
s[12] = ':';
s[13] = '"';
s[14] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
case DATABASE_QUERY_ENTRY_RATING:
strlcat(s, "esrb_rating", len);
s[0] = '{';
s[1] = '\'';
s[2] = 'e';
s[3] = 's';
s[4] = 'r';
s[5] = 'b';
s[6] = '_';
s[7] = 'r';
s[8] = 'a';
s[9] = 't';
s[10] = 'i';
s[11] = 'n';
s[12] = 'g';
s[13] = '\'';
s[14] = ':';
s[15] = '"';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
case DATABASE_QUERY_ENTRY_BBFC_RATING:
strlcat(s, "bbfc_rating", len);
s[0] = '{';
s[1] = '\'';
s[2] = 'b';
s[3] = 'b';
s[4] = 'f';
s[5] = 'c';
s[6] = '_';
s[7] = 'r';
s[8] = 'a';
s[9] = 't';
s[10] = 'i';
s[11] = 'n';
s[12] = 'g';
s[13] = '\'';
s[14] = ':';
s[15] = '"';
s[16] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
case DATABASE_QUERY_ENTRY_ELSPA_RATING:
strlcat(s, "elspa_rating", len);
s[0] = '{';
s[1] = '\'';
s[2] = 'e';
s[3] = 'l';
s[4] = 's';
s[5] = 'p';
s[6] = 'a';
s[7] = '_';
s[8] = 'r';
s[9] = 'a';
s[10] = 't';
s[11] = 'i';
s[12] = 'n';
s[13] = 'g';
s[14] = '\'';
s[15] = ':';
s[16] = '"';
s[17] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
case DATABASE_QUERY_ENTRY_ESRB_RATING:
strlcat(s, "esrb_rating", len);
s[0] = '{';
s[1] = '\'';
s[2] = 'e';
s[3] = 's';
s[4] = 'r';
s[5] = 'b';
s[6] = '_';
s[7] = 'r';
s[8] = 'a';
s[9 ] = 't';
s[10] = 'i';
s[11] = 'n';
s[12] = 'g';
s[13] = '\'';
s[14] = ':';
s[15] = '"';
s[16] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
case DATABASE_QUERY_ENTRY_PEGI_RATING:
strlcat(s, "pegi_rating", len);
s[0] = '{';
s[1] = '\'';
s[2] = 'p';
s[3] = 'e';
s[4] = 'g';
s[5] = 'i';
s[6] = '_';
s[7] = 'r';
s[8] = 'a';
s[9] = 't';
s[10] = 'i';
s[11] = 'n';
s[12] = 'g';
s[13] = '\'';
s[14] = ':';
s[15] = '"';
s[16] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
case DATABASE_QUERY_ENTRY_CERO_RATING:
strlcat(s, "cero_rating", len);
s[0] = '{';
s[1] = '\'';
s[2] = 'c';
s[3] = 'e';
s[4] = 'r';
s[5] = 'o';
s[6] = '_';
s[7] = 'r';
s[8] = 'a';
s[9] = 't';
s[10] = 'i';
s[11] = 'n';
s[12] = 'g';
s[13] = '\'';
s[14] = ':';
s[15] = '"';
s[16] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
case DATABASE_QUERY_ENTRY_ENHANCEMENT_HW:
strlcat(s, "enhancement_hw", len);
s[0] = '{';
s[1] = '\'';
s[2] = 'e';
s[3] = 'n';
s[4] = 'h';
s[5] = 'a';
s[6] = 'n';
s[7] = 'c';
s[8] = 'e';
s[9] = 'm';
s[10] = 'e';
s[11] = 'n';
s[12] = 't';
s[13] = '_';
s[14] = 'h';
s[15] = 'w';
s[16] = '\'';
s[17] = ':';
s[18] = '"';
s[19] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
case DATABASE_QUERY_ENTRY_EDGE_MAGAZINE_RATING:
strlcat(s, "edge_rating", len);
add_quotes = false;
s[0] = '{';
s[1] = '\'';
s[2] = 'e';
s[3] = 'd';
s[4] = 'g';
s[5] = 'e';
s[6] = '_';
s[7] = 'r';
s[8] = 'a';
s[9] = 't';
s[10] = 'i';
s[11] = 'n';
s[12] = 'g';
s[13] = '\'';
s[14] = ':';
s[15] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '}';
s[pos+1] = '\0';
break;
case DATABASE_QUERY_ENTRY_EDGE_MAGAZINE_ISSUE:
strlcat(s, "edge_issue", len);
add_quotes = false;
s[0] = '{';
s[1] = '\'';
s[2] = 'e';
s[3] = 'd';
s[4] = 'g';
s[5] = 'e';
s[6] = '_';
s[7] = 'i';
s[8] = 's';
s[9] = 's';
s[10] = 'u';
s[11] = 'e';
s[12] = '\'';
s[13] = ':';
s[14] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '}';
s[pos+1] = '\0';
break;
case DATABASE_QUERY_ENTRY_FAMITSU_MAGAZINE_RATING:
strlcat(s, "famitsu_rating", len);
add_quotes = false;
s[0] = '{';
s[1] = '\'';
s[2] = 'f';
s[3] = 'a';
s[4] = 'm';
s[5] = 'i';
s[6] = 't';
s[7] = 's';
s[8] = 'u';
s[9] = '_';
s[10] = 'r';
s[11] = 'a';
s[12] = 't';
s[13] = 'i';
s[14] = 'n';
s[15] = 'g';
s[16] = '\'';
s[17] = ':';
s[18] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '}';
s[pos+1] = '\0';
break;
case DATABASE_QUERY_ENTRY_RELEASEDATE_MONTH:
strlcat(s, "releasemonth", len);
add_quotes = false;
s[0] = '{';
s[1] = '\'';
s[2] = 'r';
s[3] = 'e';
s[4] = 'l';
s[5] = 'e';
s[6] = 'a';
s[7] = 's';
s[8] = 'e';
s[9] = 'm';
s[10] = 'o';
s[11] = 'n';
s[12] = 't';
s[13] = 'h';
s[14] = '\'';
s[15] = ':';
s[16] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '}';
s[pos+1] = '\0';
break;
case DATABASE_QUERY_ENTRY_RELEASEDATE_YEAR:
strlcat(s, "releaseyear", len);
add_quotes = false;
s[0] = '{';
s[1] = '\'';
s[2] = 'r';
s[3] = 'e';
s[4] = 'l';
s[5] = 'e';
s[6] = 'a';
s[7] = 's';
s[8] = 'e';
s[9] = 'y';
s[10] = 'e';
s[11] = 'a';
s[12] = 'r';
s[13] = '\'';
s[14] = ':';
s[15] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '}';
s[pos+1] = '\0';
break;
case DATABASE_QUERY_ENTRY_MAX_USERS:
strlcat(s, "users", len);
add_quotes = false;
s[0] = '{';
s[1] = '\'';
s[2] = 'u';
s[3] = 's';
s[4] = 'e';
s[5] = 'r';
s[6] = 's';
s[7] = '\'';
s[8] = ':';
s[9] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '}';
s[pos+1] = '\0';
break;
case DATABASE_QUERY_NONE:
s[0] = '{';
s[1] = '\'';
s[2] = '\'';
s[3] = ':';
s[4] = '\'';
s[5] = ':';
s[6] = '"';
s[7] = '\0';
pos = strlcat(s, path, len);
s[pos ] = '"';
s[pos+1] = '}';
s[pos+2] = '\0';
break;
}
strlcat(s, "':", len);
if (add_glob)
strlcat(s, "glob('*", len);
if (add_quotes)
strlcat(s, "\"", len);
strlcat(s, path, len);
if (add_glob)
strlcat(s, "*')", len);
if (add_quotes)
strlcat(s, "\"", len);
strlcat(s, "}", len);
return 0;
}
@@ -418,14 +742,6 @@ error:
return -1;
}
static int database_cursor_close(libretrodb_t *db, libretrodb_cursor_t *cur)
{
libretrodb_cursor_close(cur);
libretrodb_close(db);
return 0;
}
static bool type_is_prioritized(const char *path)
{
const char *ext = path_get_extension(path);
@@ -465,11 +781,9 @@ database_info_handle_t *database_info_dir_init(const char *dir,
core_info_get_list(&core_info_list);
list = dir_list_new(dir, core_info_list ? core_info_list->all_ext : NULL,
if (!(list = dir_list_new(dir, core_info_list ? core_info_list->all_ext : NULL,
false, show_hidden_files,
false, true);
if (!list)
false, true)))
{
free(db);
return NULL;
@@ -496,16 +810,13 @@ database_info_handle_t *database_info_file_init(const char *path,
if (!db)
return NULL;
attr.i = 0;
list = string_list_new();
if (!list)
if (!(list = string_list_new()))
{
free(db);
return NULL;
}
attr.i = 0;
string_list_append(list, path, attr);
db->status = DATABASE_STATUS_ITERATE;
@@ -518,10 +829,8 @@ database_info_handle_t *database_info_file_init(const char *path,
void database_info_free(database_info_handle_t *db)
{
if (!db)
return;
string_list_free(db->list);
if (db)
string_list_free(db->list);
}
database_info_list_t *database_info_list_new(
@@ -666,7 +975,8 @@ database_info_list_t *database_info_list_new(
end:
if (db)
{
database_cursor_close(db, cur);
libretrodb_cursor_close(cur);
libretrodb_close(db);
libretrodb_free(db);
}
if (cur)
+3 -1
View File
@@ -35,6 +35,9 @@ enum default_dirs
DEFAULT_DIR_AUDIO_FILTER,
DEFAULT_DIR_VIDEO_FILTER,
DEFAULT_DIR_ASSETS,
#ifdef _3DS
DEFAULT_DIR_BOTTOM_ASSETS,
#endif
DEFAULT_DIR_CORE,
DEFAULT_DIR_CORE_INFO,
DEFAULT_DIR_OVERLAY,
@@ -59,7 +62,6 @@ enum default_dirs
DEFAULT_DIR_WALLPAPERS,
DEFAULT_DIR_THUMBNAILS,
DEFAULT_DIR_DATABASE,
DEFAULT_DIR_CURSOR,
DEFAULT_DIR_CHEATS,
DEFAULT_DIR_RECORD_CONFIG,
DEFAULT_DIR_RECORD_OUTPUT,
+1 -1
View File
@@ -8,7 +8,7 @@ extern "C" {
/*
** Copyright 2013-2020 The Khronos Group Inc.
** SPDX-License-Identifier: Apache-2.0
/*
**
** This header is generated from the Khronos EGL XML API Registry.
** The current version of the Registry, generator scripts
** used to make the header, and the header can be found at
+18 -16
View File
@@ -52,9 +52,10 @@ class JsonWriter
static int writer_io(const void* inbuf, int inlen, void *user_data)
{
JsonWriter* self = (JsonWriter*)user_data;
JsonWriter* self = (JsonWriter*)user_data;
size_t buf_remain = (self->buf_cap - self->buf_len);
if ((size_t)inlen > buf_remain) inlen = (int)buf_remain;
if ((size_t)inlen > buf_remain)
inlen = (int)buf_remain;
memcpy(self->buf + self->buf_len, inbuf, inlen);
self->buf_len += inlen;
self->buf[self->buf_len - (self->buf_len == self->buf_cap ? 1 : 0)] = '\0';
@@ -82,40 +83,41 @@ class JsonWriter
void WriteComma()
{
if (!need_comma) return;
rjsonwriter_add_comma(writer);
if (!need_comma)
return;
rjsonwriter_raw(writer, ",", 1);
need_comma = false;
}
void StartObject()
{
WriteComma();
rjsonwriter_add_start_object(writer);
rjsonwriter_raw(writer, "{", 1);
}
void StartArray()
{
WriteComma();
rjsonwriter_add_start_array(writer);
WriteComma();
rjsonwriter_raw(writer, "[", 1);
}
void EndObject()
{
rjsonwriter_add_end_object(writer);
need_comma = true;
rjsonwriter_raw(writer, "}", 1);
need_comma = true;
}
void EndArray()
{
rjsonwriter_add_end_array(writer);
need_comma = true;
rjsonwriter_raw(writer, "]", 1);
need_comma = true;
}
void Key(const char* key)
{
WriteComma();
rjsonwriter_add_string(writer, key);
rjsonwriter_add_colon(writer);
rjsonwriter_raw(writer, ":", 1);
}
void String(const char* val)
@@ -125,10 +127,10 @@ class JsonWriter
need_comma = true;
}
void Int(int val)
void Int(int value)
{
WriteComma();
rjsonwriter_add_int(writer, val);
rjsonwriter_rawf(writer, "%d", value);
need_comma = true;
}
@@ -155,10 +157,10 @@ class JsonWriter
need_comma = true;
}
void Bool(bool val)
void Bool(bool value)
{
WriteComma();
rjsonwriter_add_bool(writer, val);
rjsonwriter_raw(writer, (value ? "true" : "false"), (value ? 4 : 5));
need_comma = true;
}
};
+10 -33
View File
@@ -141,9 +141,8 @@ __attribute__((always_inline)) static inline int internal_bind_libgamemode_symbo
__attribute__((always_inline)) static inline int internal_load_libgamemode(void)
{
/* We start at 1, 0 is a success and -1 is a fail */
if (internal_libgamemode_loaded != 1) {
if (internal_libgamemode_loaded != 1)
return internal_libgamemode_loaded;
}
/* Anonymous struct type to define our bindings */
struct binding {
@@ -227,10 +226,8 @@ __attribute__((always_inline)) static inline const char *gamemode_error_string(v
{
/* If we fail to load the system gamemode, or we have an error string already, return our error
* string instead of diverting to the system version */
if (internal_load_libgamemode() < 0 || internal_gamemode_client_error_string[0] != '\0') {
if (internal_load_libgamemode() < 0 || internal_gamemode_client_error_string[0] != '\0')
return internal_gamemode_client_error_string;
}
return REAL_internal_gamemode_error_string();
}
@@ -247,19 +244,11 @@ __attribute__((always_inline)) static inline
int gamemode_request_start(void)
{
/* Need to load gamemode */
if (internal_load_libgamemode() < 0) {
#ifdef GAMEMODE_AUTO
fprintf(stderr, "gamemodeauto: %s\n", gamemode_error_string());
#endif
if (internal_load_libgamemode() < 0)
return -1;
}
if (REAL_internal_gamemode_request_start() < 0) {
#ifdef GAMEMODE_AUTO
fprintf(stderr, "gamemodeauto: %s\n", gamemode_error_string());
#endif
if (REAL_internal_gamemode_request_start() < 0)
return -1;
}
return 0;
}
@@ -273,19 +262,11 @@ __attribute__((always_inline)) static inline
int gamemode_request_end(void)
{
/* Need to load gamemode */
if (internal_load_libgamemode() < 0) {
#ifdef GAMEMODE_AUTO
fprintf(stderr, "gamemodeauto: %s\n", gamemode_error_string());
#endif
if (internal_load_libgamemode() < 0)
return -1;
}
if (REAL_internal_gamemode_request_end() < 0) {
#ifdef GAMEMODE_AUTO
fprintf(stderr, "gamemodeauto: %s\n", gamemode_error_string());
#endif
if (REAL_internal_gamemode_request_end() < 0)
return -1;
}
return 0;
}
@@ -294,9 +275,8 @@ int gamemode_request_end(void)
__attribute__((always_inline)) static inline int gamemode_query_status(void)
{
/* Need to load gamemode */
if (internal_load_libgamemode() < 0) {
if (internal_load_libgamemode() < 0)
return -1;
}
if (REAL_internal_gamemode_query_status == NULL) {
snprintf(internal_gamemode_client_error_string,
@@ -312,9 +292,8 @@ __attribute__((always_inline)) static inline int gamemode_query_status(void)
__attribute__((always_inline)) static inline int gamemode_request_start_for(pid_t pid)
{
/* Need to load gamemode */
if (internal_load_libgamemode() < 0) {
if (internal_load_libgamemode() < 0)
return -1;
}
if (REAL_internal_gamemode_request_start_for == NULL) {
snprintf(internal_gamemode_client_error_string,
@@ -330,9 +309,8 @@ __attribute__((always_inline)) static inline int gamemode_request_start_for(pid_
__attribute__((always_inline)) static inline int gamemode_request_end_for(pid_t pid)
{
/* Need to load gamemode */
if (internal_load_libgamemode() < 0) {
if (internal_load_libgamemode() < 0)
return -1;
}
if (REAL_internal_gamemode_request_end_for == NULL) {
snprintf(internal_gamemode_client_error_string,
@@ -348,9 +326,8 @@ __attribute__((always_inline)) static inline int gamemode_request_end_for(pid_t
__attribute__((always_inline)) static inline int gamemode_query_status_for(pid_t pid)
{
/* Need to load gamemode */
if (internal_load_libgamemode() < 0) {
if (internal_load_libgamemode() < 0)
return -1;
}
if (REAL_internal_gamemode_query_status_for == NULL) {
snprintf(internal_gamemode_client_error_string,
+3 -1
View File
@@ -5364,8 +5364,10 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
// Create group invocation operations.
spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
{
#ifdef AMD_EXTENSIONS
bool isUnsigned = isTypeUnsignedInt(typeProxy);
bool isFloat = isTypeFloat(typeProxy);
bool isFloat = isTypeFloat(typeProxy);
#endif
spv::Op opCode = spv::OpNop;
std::vector<spv::Id> spvGroupOperands;
Vendored Executable → Regular
View File
File mode changed.
Vendored Executable → Regular
View File
File mode changed.
Vendored Executable → Regular
View File
File mode changed.
Vendored Executable → Regular
View File
File mode changed.
Vendored Executable → Regular
View File
File mode changed.
Vendored Executable → Regular
View File
File mode changed.
Vendored Executable → Regular
View File
File mode changed.
Vendored Executable → Regular
View File
File mode changed.
Vendored Executable → Regular
View File
File mode changed.
Vendored Executable → Regular
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Loaded 100 of 1145 files, more files were not shown because too many files have changed in this diff. Show more