Commit Graph

2880 Commits

Author SHA1 Message Date
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 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 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
LibretroAdmin 13cc6b7f46 Use float values now that setting min/max are float instead of double 2022-10-03 01:53:58 +02:00
sonninnos e902df3b0d
(XMB) Add options for hiding header and horizontal title margin (#14439) 2022-09-26 12:57:20 +02:00
sonninnos b014a9ef98
Move PLAYLIST_SHOW_HISTORY_ICONS upwards (#14427) 2022-09-18 01:15:33 +02:00
sonninnos 8842603165
Online Updater menu reorganizing (#14414) 2022-09-15 09:24:35 +02: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
sonninnos 87457eb678
Hide 'Notification Visibility' when notifications are disabled (#14386) 2022-09-05 19:11:39 +02:00
LibretroAdmin 84868ab21f (Setting) Windowed scale should be an integer instead of float 2022-09-05 04:03:04 +02:00
LibretroAdmin dfb4b603e4 Get rid of superfluous wrapper function file_list_get_at_offset 2022-09-04 07:30:21 +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 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 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 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 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 c3a1c578b6 Prefer to use string_starts_with_size/string_ends_with_size (less strlen
calls)
2022-08-26 17:27:55 +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 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
MrHuu 46bafd6e46
(3DS) Add bottom menu options (#14323) 2022-08-17 08:23:07 +02:00
Cthulhu-throwaway 908667d97a
(Netplay) Removal of older unused code (#14312) 2022-08-11 23:17:33 +02:00
LibretroAdmin a6e210e9db Get rid of some strlcats 2022-08-08 22:41:32 +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
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
LibretroAdmin 5739c537a2 Some CXX_BUILD fixes 2022-08-05 17:40:06 +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
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
Cthulhu-throwaway 20c4407928
Add HAVE_IFINFO macro (#14265) 2022-08-01 07:51:02 +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
LibretroAdmin 592f9384b0 Silence code analysis warnings by Xcode - unused variables - nothing
done with value set - etc
2022-07-29 08:29:43 +02:00
sonninnos 6c1de85add
(Ozone+XMB) Thumbnail fixes (#14210) 2022-07-28 19:21:59 +02:00
Cthulhu-throwaway 29f0ba2e71
(Network/Vita) Add net_ifinfo support (#14225) 2022-07-26 16:10:23 +01: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
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
Cthulhu-throwaway f5d46681c2
(UWP) Enable core downloader/updater (#14173) 2022-07-14 15:21:49 +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 adf9994828 Deprecate fill_pathname_base_noext 2022-07-11 20:13:44 +02:00
libretroadmin d706c9c5bf Start deprecating trivial functions in file_path.c 2022-07-11 19:56:46 +02:00
libretroadmin e91cf0e40d No longer use fill_pathname_noext - just basic strlcpy/strlcat string
concatenation
2022-07-11 18:48:02 +02:00
Cthulhu-throwaway 9af17b633e
(Netplay) Host Ban Submenu (#14151) 2022-07-07 16:08:46 +02:00
sonninnos 7043873fba
Reformat rdb_entry_int (#14140) 2022-07-03 17:46:03 +02:00
Cthulhu-throwaway b55fa28896
(Netplay/Menu) Localize relay servers (#14136) 2022-07-03 13:45:13 +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 58fc77850c
(Netplay/Lobby) Hide older (incompatible) rooms (#14118) 2022-07-01 01:01:24 +02:00
sonninnos bd9eda38e3
Reorganize Quick Menu Information (#14091) 2022-06-23 14:47:29 +02:00
sonninnos a0bfdcce3b
(D3D11/12) Make waitable swapchains optional (#14074) 2022-06-19 21:25:37 +02:00
LibretroAdmin 0008691aa0
Remove unused variables (#14065) 2022-06-18 19:28:07 +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
Cthulhu-throwaway 7e798d04ba (Netplay) Some refactoring and fixes 2022-06-17 18:00:48 -03:00
sonninnos 0bb65fb39c (D3D11/12) Add waitable swapchains and max frame latency option 2022-06-07 00:25:03 +03:00
Cthulhu-throwaway ade5444d5f (Netplay) Change default for input sharing to "no sharing" 2022-05-25 07:45:02 -03:00
Ryunam d7cfcd3f9b Add option to toggle automatic refresh rate switching 2022-05-16 17:50:11 +02:00
LibretroAdmin 9dd03f6d9f
Merge pull request #13835 from sonninnos/quickmenu-reorder
Reorganize Quick Menu items
2022-05-16 12:06:19 +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 533d746f64
Merge pull request #13649 from phcoder/ctrl
Add a configurable workaround for Android reconnecting devices
2022-05-12 20:56:58 +02: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
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
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
sonninnos 0b55188969 Reorganize Quick Menu items 2022-04-28 18:57:46 +03:00
jdgleaver 37c56d0d09
Add option to disable automatic saving of input remap files (#13894) 2022-04-27 19:12:53 +02:00
sonninnos c185c3b916
Hide UI Companion menu items when they are not available (#13807) 2022-04-13 14:50:33 +02:00
twinaphex ee9b6ba78e Hide Help menu until there is useful info to be shown 2022-04-09 17:23:14 +02: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
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
Mats 4a1a1e2fa7
(steam) Introduce Steam Rich Presence (#13798) 2022-04-02 08:07:40 +01:00
Tony 569b3945d6
Move 'Show Menu Bar' under 'Windowed Mode' settings (#13806) 2022-03-31 17:30:44 +02:00
Tony 0db3116805
Move 'On-Screen Notifications' to top (#13786) 2022-03-30 21:00:42 +02:00
jdgleaver 05b7ac47c3 Add 'Reset Input Mapping' option to 'Manage Remap Files' menu 2022-03-21 15:08:02 +01:00
sonninnos 27a6210f96 (XMB) Add title margin adjustment 2022-03-18 13:24:50 +01:00
jdgleaver ea77410037 Add 'Manage Remap Files' submenu + automatically save input remaps when closing content 2022-03-16 18:59:49 +01:00
TheRetroPirate 6f90b24f72 added more categories to the explore menu 2022-03-15 05:51:20 +01:00
Nikos Chantziaras d9bc8fb796
Ozone: Add thumbnail scale option (#13620)
* Ozone: Add thumbnail scale option

* CHANGES.md: Add ozone thumbnail bar scaling option
2022-03-11 15:51:41 +01:00
jdgleaver 53bd6908e1
UWP build fix (#13726) 2022-03-10 15:15:45 +01:00
jdgleaver c67806dbd7
Enable manual selection of which cores are displayed in the 'Standalone Cores' menu (#13722) 2022-03-09 17:49:16 +01:00
Mats 249241d7cd
(steam) Initial integration with Steam API w/ mist (#13710) 2022-03-09 15:05:07 +01:00
Tony de22e06862
Reorder items in 'Core' menu (#13697) 2022-03-09 14:14:37 +01:00
MrHuu 9ed51bc528
(3DS) Add new3ds speedup toggle (#13718) 2022-03-09 08:20:15 +01:00
vaguerant 1726d8acb9
Add Optimize for GamePad option on Wii U (#13257)
* Add 'Optimize for Wii U GamePad' option

* style nit
2022-03-08 14:56:51 +01:00
Vladimir Serbinenko 4a53c6771c
Several fixes and improvements do NGC and Wii (#13698)
* Support new elf2dol path in Makefile.griffin

* Fix NULL pointer dereference when no core info is available

* Fix double include of different versions of libogc

* Move ngc and wii to Makefile.common

Resulting binary is 60K *smaller*. This is surprising but probably due to
less inlining happening

* gx_gfx: Fix hang on gfx initialization

* Remove sthread_isself on NGC/Wii

It relies on pthread_equal that is not there for either legacy pthreads
or normal pthreads on those platforms

* Wii networking

* Missing includes in split

* Network fixes

* Fix logging of non-format string as a format

* Support for gx netlogger

* Network fix

* Network fixes

* Network info

* gx: Move config files to app directory

Otherwise it clashes between wiiU and vWii version with unpredictable
effects
2022-03-04 13:43:00 +01:00
jdgleaver 4c87c307cc
Disable per-game and per-content-directory remaps when running contentless cores (#13687) 2022-03-01 09:45:17 +01:00
jdgleaver f6dc1c6d93
Disable per-game and per-content-directory shader presets when running contentless cores (#13690) 2022-03-01 09:44:55 +01:00
jdgleaver 0f2cb88ec6
Enable config overrides for contentless cores (#13684) 2022-02-28 13:45:51 +01:00
Tony cfd408db86
Show core version in 'Core Information' (#13677) 2022-02-27 05:30:12 +01:00
jdgleaver 8739264485
Enable runtime logging for contentless cores (#13671) 2022-02-25 18:23:55 +01:00
jdgleaver 9b0cb0fc92
Add 'Standalone Cores' menu (#13655) 2022-02-22 19:23:48 +01:00
twinaphex d2ab5d05ee Remove GONG remnants 2022-02-19 05:33:32 +01:00
MrHuu a7b7472c34
(RGUI) Add dynamic theme (#13612)
* (RGUI) Add dynamic theme

* (RGUI) Cleanup

* (RGUI) Apply jdgleaver's dynamic theme patch
2022-02-16 15:56:10 +01:00
jdgleaver e541dd5ab1
Disable run-ahead and rewind based on save state support level defined in core info files (#13594)
* Disable run-ahead based on save state support level defined in core info files

* Disable rewind based on save state support level defined in core info files
2022-02-05 00:25:33 +01:00
jdgleaver 42e03cae83
Disable save states based on save state support level defined in core info files (#13562) 2022-02-02 16:49:53 +01:00
Keith Bowes cce04bab70
Remove references to removed features (#13564) 2022-01-30 09:29:43 +01:00
Tony 84f558db0b
Add optional frame skipping when fast-forwarding (#13550) 2022-01-26 18:30:33 +01:00
jdgleaver 6ee3c14779
Add 'Core System Files Downloader' entry to the Online Updater (#13524) 2022-01-24 16:41:29 +01:00
Jamiras 0a1ffcd4d5
reset hardcore default to enabled; show message when trying to load state in hardcore (#13471) 2022-01-11 13:48:05 +01:00
Tony 7ca3c314f8
Move 'Black Frame Insertion' under 'Synchronization' (#13457) 2022-01-07 17:30:21 +01:00
Tony b7d77e9484
(XMB) Optional vertical list item fade (#13455) 2022-01-07 08:46:49 +01:00
Tony 17f63e6e39
(XMB+Ozone) Category + History/Favorites icons (#13433)
* (XMB+Ozone) Icons for matching core option categories

* (XMB+Ozone) Playlist content icon option for history/favorites
2021-12-30 20:14:57 +01:00
Cthulhu-throwaway d017ce7b03
Filter out non-connectable rooms (#13429)
Add an option for filtering out non-connectable netplay rooms.
2021-12-30 08:33:54 +01:00
Nikos Chantziaras be650a790c
Add option for showing the overlay behind the menu (#13360)
* Add option for showing the overlay behind the menu

This commit lays the groundwork for this option. Support for this option
in the video drivers themselves is going to be added in later commits.

* gl1: Add overlay behind menu support

* gl2: Add overlay behind menu support

* gl3: Add overlay behind menu support

* vulkan: Add overlay behind menu support

* ctr: Add overlay behind menu support

* d3d9: Add overlay behind menu support

* d3d10: Add overlay behind menu support

* d3d11: Add overlay behind menu support

* d3d12: Add overlay behind menu support

* CHANGES.md: overlay behind menu

Co-authored-by: MrHuu <MrHuu@users.noreply.github.com>
Co-authored-by: Tony <45124675+sonninnos@users.noreply.github.com>
2021-12-26 04:56:44 +01:00
twinaphex 33cc889f7f (HDR) Hide HDR settings unless HDR is enabled 2021-12-24 21:15:08 +01:00
Cthulhu-throwaway c752f9b0de
Custom relay server support (#13395)
* Custom relay server support

Add support for custom user-ran relay servers.

* snprintf NULL fix
2021-12-23 13:54:52 +01:00
Cthulhu-throwaway 966335e367
Smaller Netplay Changes (#13387)
Lobby Viewer: Filter out rooms that are not running RetroArch
Lobby Viewer: Display a non-connectable tag to non-connectable rooms.
Host: Display warning if we are announcing to the internet but our room isn't connectable from there.
2021-12-21 15:58:25 +01:00
Cthulhu-throwaway 690c802921
Netplay Stuff (#13375)
* Netplay Stuff

## PROTOCOL FALLBACK
In order to support older clients a protocol fallback system was introduced.
The host will no longer send its header automatically after a TCP connection is established, instead, it awaits for the client to send his before determining which protocol this connection is going to operate on.
Netplay has now two protocols, a low protocol and a high protocol; the low protocol is the minimum protocol it supports, while the high protocol is the highest protocol it can operate on.
To fully support older clients, a hack was necessary: sending the high protocol in the unused client's header salt field, while keeping the protocol field to the low protocol. Without this hack we would only be able to support older clients if a newer client was the host.
Any future system can make use of this system by checking connection->netplay_protocol, which is available for both the client and host.

## NETPLAY CHAT
Starting with protocol 6, netplay chat is available through the new NETPLAY_CMD_PLAYER_CHAT command.
Limitations of the command code, which causes a disconnection on unknown commands, makes this system not possible on protocol 5.
Protocol 5 connections can neither send nor receive chat, but other netplay operations are unaffected.
Clients send chat as a string to the server, and it's the server's sole responsability to relay chat messages.
As of now, sending chat uses RetroArch's input menu, while the display of on-screen chat uses a widget overlay and RetroArch's notifications as a fallback.
If a new overlay and/or input system is desired, no backwards compatibility changes need to be made.
Only clients in playing mode (as opposed to spectating mode) can send and receive chat.

## SETTINGS SHARING
Some settings are better used when both host and clients share the same configuration.
As of protocol 6, the following settings will be shared from host to clients (without altering a client's configuration file): input latency frames and allow pausing.

## NETPLAY TUNNEL/MITM
With the current MITM system being defunct (at least as of 1.9.X), a new system was in order to solve most if not all of the problems with the current system.
This new system uses a tunneling approach, which is similar to most VPN and tunneling services around.

Tunnel commands:
RATS[unique id] (RetroArch Tunnel Session) - 16 bytes -> When this command is sent with a zeroed unique id, the tunnel server interprets this as a netplay host wanting to create a new session, in this case, the same command is returned to the host, but now with its unique session id. When a client needs to connect to a host, this command is sent with the unique session id of the host, causing the tunnel server to send a RATL command to the host.
RATL[unique id] (RetroArch Tunnel Link) - 16 bytes -> The tunnel server sends this command to the host when a client wants to connect to the host. Once the host receives this command, it establishes a new connection to the tunnel server, sending this command together with the client's unique id through this new connection, causing the tunnel server to link this connection to the connection of the client.
RATP (RetroArch Tunnel Ping) - 4 bytes -> The tunnel server sends this command to verify that the host, whom the session belongs to, is still around. The host replies with the same command. A session is closed if the tunnel server can not verify that the host is alive.

Operations:
Host -> Instead of listening and accepting connections, it connects to the tunnel server, requests a new session and then monitor this connection for new linking requests. Once a request is received, it establishes a new connection to the tunnel server for linking with a client. The tunnel server's address and port are obtained by querying the lobby server. The host will publish its session id together with the rest of its info to the lobby server.
Client -> It connects to the tunnel server and then sends the session id of the host it wants to connect to. A host's session id is obtained from the json data sent by the lobby server.

Improvements (from current MITM system):
No longer a risk of TCP port exhaustion; we only use one port now at the tunnel server.
Very little cpu usage. About 95% net I/O bound now.
Future backwards compatible with any and all changes to netplay as it no longer runs any netplay logic at MITM servers.
No longer operates the host in client mode, which was a source of many of the current problems.
Cleaner and more maintainable system and code.

Notable functions:
netplay_mitm_query -> Grabs the tunnel's address and port from the lobby server.
init_tcp_socket -> Handles the creation and operation mode of the TCP socket based on whether it's host, host+MITM or client.
handle_mitm_connection -> Creates and completes linking connections and replies to ping commands (only 1 of each per call to not affect performance).

## MISC
Ping Limiter: If a client's estimated latency to the server is higher than this value, connection will be dropped just before finishing the netplay handshake.
Ping Counter: A ping counter (similar to the FPS one) can be shown in the bottom right corner of the screen, if you are connected to a host.
LAN Discovery: Refactored and moved to its own "Refresh Netplay LAN List" button.

## FIXES
Many minor fixes to the current netplay implementation are also included.

* Remove NETPLAY_TEST_BUILD
2021-12-19 16:58:01 +01:00
Tony 71836c1055
Add option for showing notifications only in menu (#13326) 2021-12-16 14:38:43 +01:00
Nikos Chantziaras 430baf7c21
Add Linux GameMode support (#13339)
This can fix a lot of performance issues, like audio crackling and frame
time spikes. This requires the GameMode package to be installed. See:

https://github.com/FeralInteractive/gamemode

This commit adds a "Game Mode" bool option to the "Power
Management" and "Latency" settings sections, and it can be toggled
on/off without restarting RA.

The actual toggling of game mode happens in a new frontend platform
interface function. Perhaps this will become useful for other platforms
that provide some equivalent of Linux GameMode.

Since the GameMode ABI is fixed, and the API comes as a single,
header-only file with no actual deps, we simply bundle the header
(deps/feralgamemode/gamemode_client.h.) That way, all Linux builds will
have support for GameMode regardless of whether the GameMode development
package is installed or not.
2021-12-14 14:07:42 +01:00
Autechre b6695d8921
Netplay changes proposed for 1.9.14 (#13314)
* Added setting to allow/disallow players other than the host from pausing the game.
* Added a sublabel for netplay max connections.
* Fixed port override macro from not being set immediately after the port setting.
* Fixed memory leaks.
2021-12-04 02:34:21 +01:00
Autechre af4bdecef9
Show passworded rooms on lobby (#13301) 2021-11-30 22:06:13 +01:00
Autechre 71b30d7846
Split up wifi networking code - move it into separate file (#13262) 2021-11-21 12:37:39 +01:00
Tomáš Kelemen (vudiq) efad7a7dcc
Lakka: CD-ROM eject menu item
Adds new entry (where the entry for dumping CD is) to eject the disc -
in case the CD drive has no physical button to eject the disc / the
button does not work. Useless for most, but quality of life improvement
for some.

Upstream of patch used by Lakka at build time
1943ad296e/packages/libretro/retroarch/patches/retroarch-99-eject_disc.patch
2021-11-18 00:36:01 +01:00
Jamiras 1eade78654 audit achievement settings defaults and visibility 2021-11-14 18:00:20 -07:00
Autechre 1280151d13
Merge pull request #13216 from libretro/splitup-record
Split up recording code
2021-11-11 02:00:52 +01:00
twinaphex 86f899c844 Revert "Shorten character arrays that are passed to fill_pathname_base_noext"
This reverts commit 318108ac82.
2021-11-10 08:22:19 +01:00
twinaphex 0b768d0460 Split up recording code 2021-11-10 02:34:04 +01:00
twinaphex 318108ac82 Shorten character arrays that are passed to fill_pathname_base_noext 2021-11-10 00:09:33 +01:00
twinaphex 1fccddc705 (Fix by radius/fr500) Networking - should not print country for
a local lobby
2021-11-09 02:58:28 +01:00
Tony 3137f8470b
Add 'Automatic Frame Delay' option (#13190) 2021-11-05 23:42:23 +01:00
twinaphex 67c010394d Remove netplay_discovery.h - hopefully fixes other build issues 2021-11-05 19:12:55 +01:00
twinaphex 3bc6dd97d9 Revert "Revert "Move stray globals to networking state""
This reverts commit a796f1ce58.
2021-11-05 18:55:55 +01:00
twinaphex 7f33a03423 Revert "Revert "Backport netplay changes from forum member""
This reverts commit 38a6b9f086.
2021-11-05 18:52:56 +01:00
twinaphex 38a6b9f086 Revert "Backport netplay changes from forum member"
This reverts commit 367ac6ce46.
2021-11-05 18:34:52 +01:00
twinaphex a796f1ce58 Revert "Move stray globals to networking state"
This reverts commit 96053e14a7.
2021-11-05 18:34:11 +01:00
twinaphex 96053e14a7 Move stray globals to networking state 2021-11-05 18:07:41 +01:00
twinaphex 367ac6ce46 Backport netplay changes from forum member 2021-11-05 17:17:10 +01:00
gblues 1ef78d3e3d
Any pad can control the menu (#13173)
* Any pad can control the menu

== DETAILS
I am not sure I've quite got it so that any pad can *open* the
menu, but I do have it so any pad can control it.

- split out the input processing into a separate method
- track down and squish some hairy bugs that boiled down to
  bad pointer math
- it looks like `menu_driver.c` has a mix of line endings, so I
  ran it through `dos2unix` so it has consistent line endings
  again.
- verified that this change did not impact actual cores

* optimize out cumulative_bits

* Incorporate PR feedback

Many thanks to @jdgleaver for providing these optimizations.

* apply one more optimization
2021-11-03 16:32:15 +01:00
twinaphex 5477e34815 Move stray globals subsystem_data and subsystem_current_count to
runloop_state
2021-10-29 17:41:31 +02:00
Tomáš Kelemen 82d4cd9f19
do not sort FILE_TYPE_DOWNLOAD_LAKKA type list (#13156)
the `.index` file downloaded using the updater already has the files
sorted from latest version to oldest, so sorting is not wanted here
2021-10-26 22:01:38 +02:00
twinaphex c79b60ba77 Change val_d back to 16 size 2021-10-21 04:34:04 +02:00
twinaphex 22ae6f23aa (menu displaylist/remapping) Increase val_s and val_d char arrays to 256 2021-10-21 04:16:26 +02:00
twinaphex caccc410c6 Move gfx_widgets_ready to gfx_widgets.h 2021-10-13 17:51:46 +02:00
Autechre e7f182811a
Split up audio code into new file audio/audio_driver.c (#13097)
* Split up audio code into new file audio/audio_driver.c

* Fix build issues #1

* Small cleanup

* Fix typo
2021-10-11 18:01:37 +02:00
Salvador 58e7dd8a1a
Add Miyoo target (#12860)
* add miyoo target
2021-10-08 13:53:49 +02:00
Francisco Javier Trujillo Mata 216675919b Add PS2 Support for changing resolution and offset 2021-10-04 23:53:55 +02:00
Francisco Javier Trujillo Mata c8a46e6e69 Add option for change video windows offsets, from video output 2021-10-04 23:53:54 +02:00
twinaphex e886e908d5 Create consistent naming conventions - use retroarch_ instead
of rarch_ for some functions for all functions coming from retroarch.h
2021-09-28 12:56:10 +02:00
Nathan Strong fb86ca6e33 Fix the snprintf warnings for everyone this time
== DETAILS
So, basically this back-and-forth is because we used fixed-size
data types (i.e. `uint32_t`) which maps to different primitive data
types on different platforms. So `uint32_t` might be a `long` on some
platforms (e.g. Wii U), while it's just a plain integer on others (PC).
And the format specifier works off primitive data type, not data type
size.

So, to resolve this, we:

- keep `%lx` as the format specifier
- cast the parameter to printf to unsigned long

This is better than the alternatives that could cause problems trying to
cast a long down to an int.
2021-09-25 15:08:34 -07:00
Nathan Strong 9b2d4236ad WIIU: Clean up a bunch of compiler warnings
== DETAILS
These changes fall into a few broad categories:

1. Explicitly undefine things we want to re-define due to conflicts with
   the version of devkitpro we're using
2. Clean up hex format specifiers to use `%lx` or `%lX` when working with
   long integers
3. Move variables inside the ifdef they're used in to squelch "unused variable"
   messages
4. Add parenthesis to make Wii U shader declarations stop complaining

And then there's a weird "misleading indent" warning that I fixed by just
rewriting a block of code to use a switch statement instead of if-then-else.

These changes work fine on Wii U, but we'll need to keep an eye on CI/CD to see
if other platform builds break.
2021-09-25 13:25:39 -07:00
Ben Hamilton (Ben Gertzfield) 1970786932
New feature: Use gamepad combo to quit Retroarch (#13017)
* Refactor menu toggle combo button logic to allow quit combo button

* Quit gamepad combo

* Fixes from @jdgleaver
2021-09-24 18:30:46 +02:00
twinaphex 83ce4259a0 Have only one getter for runloop_state 2021-09-21 19:08:26 +02:00
twinaphex f21641d898 Get rid of another 'getter' function 2021-09-21 18:30:56 +02:00
twinaphex 7c8c53fb2d Get rid of menu_driver_get_ptr - we are going to be using only one
getter for each component state instead of several getters
2021-09-21 07:14:27 +02:00
Michael Burgardt d8db234df0
Concatinate some previously truncated strings for easier translation (#12120) 2021-09-16 19:00:14 +02:00
twinaphex b5138b6122 Move input_config_get_bind_string to input_driver.c 2021-09-12 17:41:00 +02:00
jdgleaver 6da778b934 (Playlist Manager) Add 'Refresh Playlist' option 2021-09-09 16:18:26 +01:00
Michael Burgardt 303d17e2e6 Rebase 'Add generic rumble gain to input settings' by davidgfnet 2021-09-08 19:52:32 +02:00
twinaphex 10782f9abc Cleanups - move code over to menu_driver.c 2021-09-07 11:55:12 +02:00
twinaphex f597138827 Cleanups 2021-09-04 21:40:37 +02:00
jdgleaver 508b0c2ee2 Add enhanced search functionality to the 'Cheats' menu 2021-09-03 14:58:33 +01:00
Autechre 7b9cbc08d7
Add HDR support for D3D12 (rebased PR from MajorPainTheCactus) (#12917)
* Add HDR support

* Attempt to fix Mingw build and Metal builds

* (D3D12) Fix relative header includes

* Add missing hdr_sm5.hlsl.h

* (d3d12_common.c) Some C89 build fixes

* Fix MSVC build

* - Attempt to fix build on mingw/msys unix with dirty hack
- Fix shader compilation of hdr_sm5.hlsl.h on MSVC/Visual Studio -
the define was seen as an error and was causing the first pipeline
to error out
- Make sure we manually set handle of backBuffer to NULL

* Moving the release of the texture above the freeing of desc.srv_heap
and desc.rtv_heap solves the hard crashes on teardown/setup in RA -
it was crashing hard in d3d12_release_texture before

* Add HAVE_D3D12_HDR ifdef - needs to be disabled for WinRT for now
because of several things that are Windows desktop-specific right now
(GetWindowRect)

* Add dirty GUID hack - should work for both mingw/msys on Windows/Linux
as well as MSVC/Visual Studio (hopefully)

* Change HAVE_D3D12_HDR to HAVE_DXGI_HDR

* Move away from camelcase named variables

* Fix RARCH_ERR logs - they need a newline at the end

* d3d12_check_display_hdr_support - make it return a bool on return
and set d3d12->hdr.support and d3d12->hdr.enable outside of the
function

* (DXGI) Remove D3D12 dependencies from dxgi_check_display_hdr_support and
move it to dxgi_common.c instead

* (DXGI) move d3d12_swapchain_color_space over to dxgi_common.c and
rename it dxgi_swapchain_color_space

* (DXGI) move d3d12_set_hdr_metadata to dxgi_common.c and
rename it dxgi_set_hdr_metadata

* (DXGI) dxgi_check_display_hdr_support - better error handling?

* Fix typo

* Remove video_force_resolution

* (D3D12) Address TODO/FIXME

* (D3D12) Backport
c1b6c0bff2
- Fixed resource transition for present when HDR is off
Fixed cel shader displaying all black as blending was enabled when the hdr shader was being applied - turned off blending during this shader

* Move d3d12_hdr_uniform_t to dxgi_common.h and
rename it dxgi_hdr_uniform_t

* (D3D11) Add HDR support

* Add TODO/FIXME notes

* Cache hdr_enable in video_frame_info_t

* Update comment
2021-09-03 06:15:25 +02:00
jdgleaver a6901dc85e Add option to (force-)write current core options to disk 2021-08-26 11:42:46 +01:00
Autechre dbb74ba5ab
Merge pull request #12823 from markwkidd/input-drivers
input_driver refactor
2021-08-24 18:45:20 +02:00
jdgleaver d35200aa56 Highlight currently selected value in Shader Parameter drop-down lists 2021-08-24 14:45:57 +01:00
Autechre 024dbb5008
Merge pull request #12862 from sonninnos/video-sublabels
Add missing sublabels for video options
2021-08-24 11:26:40 +02:00
sonninnos 71ca56e0fb Add missing sublabels for video options 2021-08-23 17:44:02 +03:00
jdgleaver f505d625a3 Fix segfault when accessing 'Audio' menu on platforms without mixer support 2021-08-23 15:37:29 +01:00
sonninnos 559a173e8b Relocate 'Manage Playlists' to top 2021-08-21 20:18:12 +03:00
Mark W. Kidd 5f834a8cb3 input_driver refactor 2021-08-19 20:02:39 -04:00
Autechre ae327a769b
Revert "input refactoring: create input_driver.c" 2021-08-18 18:45:53 +02:00
Autechre a66b1b3e48
Merge pull request #12703 from markwkidd/input-drivers
input refactoring: create input_driver.c
2021-08-18 18:17:43 +02:00
Mark W. Kidd 5a8920c862 input_driver refactor 2021-08-17 08:56:29 -04:00
jdgleaver fa7dd0f6d9 Add facility to cap maximum window size in windowed mode 2021-08-16 17:49:11 +01:00
Ash Logan 692f4443f4 (WiiU) Add option for running without core info (emscripten-style)
Very useful when wiiloading a test binary or running in emulation
2021-08-14 20:26:14 +10:00
jdgleaver c4880ca840 Add option to disable core option categories 2021-08-13 16:18:02 +01:00
twinaphex 5b3942eae7 * (PSP/Vita) Remove unused variables
* (Switch/libnx) remove dead code
* (Lakka/Switch/libnx) It was a mistake to include
  switch_performance_profiles.h inside lakka.h, it was creating warnings
for nearly every file. Instead, it gets optionally included for the
files that need it
2021-08-12 18:51:33 +02:00
twinaphex 406c8bee7b Silenc some warnings 2021-08-09 21:24:03 +02:00
jdgleaver fe1f311a35 Add core option category support 2021-08-06 15:33:47 +01:00
sonninnos a58676709a Show content info label+path rows always 2021-08-05 21:28:08 +03:00
sonninnos 149beaf061 'Automatic Mouse Grab' option 2021-07-29 02:16:43 +03:00
twinaphex 09d496b534 Rewrite DISPLAYLIST_AUDIO_SETTINGS_LIST 2021-07-28 17:36:35 +02:00
jdgleaver 218286aa99 (RS90) Add optional approximate 'semi-linear' scaling filter 2021-07-21 14:11:42 +01:00
John Parton f6aeb717ba Basic rs90 build
DINGUX_BETA has clock_gettime libogc
Add tinyalsa support to rs90
2021-07-13 11:36:48 -05:00
Autechre ed3412c004
Merge pull request #12618 from markwkidd/input-remapping
consolidate and comment input_remapping.h
2021-07-08 14:22:51 +02:00
Autechre 7d9d57dc50
Merge pull request #12564 from sonninnos/integer-overscale
Integer overscale option
2021-07-08 12:03:28 +02:00
Mark W. Kidd b17dd28ff2 consolidate and comment input_remapping.h 2021-07-06 16:13:43 -04:00
jdgleaver 0e654c8e9e Hide 'Add to Favorites' when viewing an entry of the favorites playlist 2021-07-02 16:29:11 +01:00
sonninnos b483f233d2 Integer overscale option 2021-06-24 00:56:52 +03:00
jdgleaver 973f5cda6d Add support for mapping multiple controllers to a single input device 2021-06-21 12:42:38 +01:00
jdgleaver 3c2e3f1ce9
Add enhanced search functionality to the 'Manage Cores' menu (#12516) 2021-06-11 21:17:32 +02:00
Bernhard Schelling 98194ce135
Allow the 8 analog stick directions to be used as keys for core keyboard mappings (#12506) 2021-06-10 17:00:33 +02:00
Alcaro 8e06aa2417
Shut up a string truncation warning 2021-06-05 20:53:45 +02:00
Autechre e40f0d308b
Merge pull request #12488 from Jamiras/cheevos_challenge_indicators
(cheevos) challenge indicators
2021-06-05 16:02:38 +02:00
Jamiras 3fe52bb7fb add toggle/setting for challenge indicators 2021-06-04 12:32:01 -06:00
Ben 4b2f27eff8 Ver 0.9.2 SR2 (Switchres API) Implimantation
Fixed SR close match refresh bug.
Added menu high resolution option.
Fixed desktop restore bug cuusing endless resolution change requests.
Fixed file conflicts
Added destop restore resolution back in for manu only.
Pulled Switchres fixes.
Added better PI rsolution support.

Ver 0.7 SR2 (Switchres API) Implimantation

Removed HH experimetal check. This is better done via teh switchres.ini at present.
Fixed refresh rate bug. Now new resolution and refesh is added correctly.
Removed SR deinit from menu restore. Meanu now stays at last content resolution.

Ver 0.6.2 SR2 (Switchres API) Implimantation

Fixed super resolution bug casuing abnormal video size and aspect ratio
Fixed logging issue casuing seg falts on RA exit

Ver 0.6 SR2 (Switchres API) Implimantation

Ver 0.2 SR2 (Switchres API) Implimantation

Added forced super resolutions.
Added Multi-monitor/monitor selection support.
Added desktop resolution restore when switching back to menu only.
Added new menu items for 31KHz standard and 120hz monitor profiles.
Added new menu item INI. load monitor profile from switchrss.ini.
Fixed winraw driver. Coordinates new refreshed after a resolution change.
Fixed Menu aspect ratio in super resolutions.
Removed static glabals. These have been added to videocrt_switch struct.

Ver 0.1 SR2 (Switchres API) Implimantation

Removed old CRTSwitchRes method. Added new SR2 API implimantaion.
Resolution swithcing is now done by switchres libs. Both Linux and Windows
working with native and super resolutions. Working multi-monitor support
with monitor index selection. Working 31KHz support with standard and 120Hxz
modes. The monitor index selection is still done via the RA UI. Only choose
native and 15KHz form the CRT options in the RA UI as all options are now set
in the switchres.ini. All other CRT optoins in the RA UI currently do nothing.

Added SR wrapper to fix compile issues. Added back RPi functionality

Fixed windows resize/scaling issues on resolution change

Thanks @Calamity no more need for crt_switch_driver_refresh()

Fix broken case after prevous commit

Monitor preset options 15/31KHz now active. Added new meu option.

Moitor persets can now be choosen fom the RA UI. 15KHz and 31KHz will set
arcade_15 and aracde_31 respectivly. New option INI, if this is chosen your
monitor preset will be selected from your switchres.ini file.

Added 3KHhz, 120Hz. for old RA users. Renamed 31KHz to 31 KHz,  Standard

Fixed winraw input coordinates after switching resolution.

Code cleanup

Fixed menu aspect ratio issue

Added menu resolution restore after closing content

Fixed aspect ratio after menu resolution restore.

code clean up

Fxed menu Resulition Restore Aspect Ratio. When SR uses non integer scalled resolution.

super width bug with restoring menu resolution fix

added super resolution check after setting desktop resolutoion variables

when menu active only sr_deinit() used to restore desktop mode.

Fixed menu sr_deinit bug. now setting sr_active false

Removed static globals, added them to video_switch struct

Fixex compile bug due to comment //

Fixed compile issues doe to c++ comments in teh switchres_wrapper.h

Temporarily removed SR2 logging to fix compile isses for c90

added logging back in. Removed support for winnt and osx

Added define for C89. Disabled SR if defined C89

Removed all RA compile fixes fro C89 C90 etc. Swithing now working again.

Put Switchres behind HAVE_SR2. HAVE_SR2=no by default. --enable-sr2

Ver 0.5 SR2 Implimentation.

Ver 0.4 SR2 Implimantation.

Bake SR inside RA

Removed temporary log files

Disable switchres when C89/C99 builds.

Removed C89 and C90 checks for SR

Fixed switchres_wrapper.h location

Ver 0.3 SR2 Implimenation

Dissable logging for C89 __STDC__

Fix For RPi

fixed missing EOL

fixed RPi function definition

added vidrocrt_switch stuct to RPI funcion

fixed xoffset for RPi

Removed old RPi function call

SR disabled for videocore until VC4 switching ported

Reverted back to state 5c8a56c Bake SR inside RA

Use native win32 api for threads.

Fix static lib linking
LIBERROR would be defined twice otherwise + improper function names prefixed by __imp_

Added lidstc++ to makefile.common for switchres

Fixed RPi switching. Disabled Switchres for videocore unill it is ported.

removed RAA.log. Should not exist

Added check for when SR fails to set mode with an aspect ratio fix.

added video driver re init for RPi

GB, GBA and GBC core check, adjusted reseolutions and scale. Please turn on integer scalling in the RA UI

Added logas back in. Checking STDC verstion >= C11

Fixed c89 for loop declaration.

Code clean up. Added new functions

Fix resolution switching bug introduces with HH code clean up.

Fixed menu restore bug on closw content after code clean up

Moved SR logging to relevant RA logs

Update makefile. Checks for X11 and xrandr

fixed makefile

Use native win32 api for threads.

Fix static lib linking
LIBERROR would be defined twice otherwise + improper function names prefixed by __imp_

Update switchres_wrapper.* header comments

Update year copyright

DRMKMS: build only if libdrm has the required version

XRANDR: build only if xrandr is available

Simplified maklefile

Fixed RPI compile error with unsued functions.

As before

Disable Griffin. No switching support available. Never has been

Removed log file 1

Added Win32 static define

Added SR source

Removed Videocore check on destroy SR

Moved SR deinit to trigger earlier on RA exit.

Fixed compile error after upstream rebase

Fixed aspect ration bug cused by super resolutions. Temporarily disbabled SR logging

Re inabled runtim eSR loggind. Disableed all RARCH logging on retro_deinit_drivers

Removed srdeinit from menu restore. Menu stays in current reolution until a fix can be found

Fixed refresh rate changes when no reolution change is detected.

Forgot to add teh resolution cahge in with the refresh change oops

Fixed endless no detection log.

Removed HH check. This can been better adjusted using the switchres.ini

fixed compile issue

Added better PI crt switching and fixed typo

Pulled Swicthres fixes. Updated desktop restore resolution.

removed unused makefile

Lockec menu refresh to 60hz

fixed missing new line

Fixed file conflicts

Forced 640x480@60 for menu

Added high resolution menu option

Removed item logg checker

Fixed typos

Removed unused functions

Fixed SR close match refesh bug.

Fixed typo
2021-06-04 08:32:56 -07:00
Autechre ec7e528094
Merge pull request #12466 from christianhaitian/master
Add nmcli to wifi drivers
2021-06-03 20:08:42 +02:00
Jamiras e76265e1aa group achievements by category 2021-06-01 15:23:18 -06:00
Christian_Haitian 74d9f976a8 Add wifi configuration menu
Enable with --enable-wifi during
configuration before make.
Credit to valadaa48 for the
code and configuration.
2021-05-31 02:20:34 +00:00
Autechre 0d7a028ce3
Merge pull request #12444 from Jamiras/info_crash 2021-05-28 08:50:21 +02:00
Jamiras 45c0dc4486 fix crash by restoring incorrectly eliminated line 2021-05-27 21:34:51 -06:00
jdgleaver 8e54b4cec9 (Show Inputs on Overlay) DISABLE_MENU=1 buildfix + Qt settings update 2021-05-26 18:15:23 +01:00
jdgleaver 466bd3be7f Add option to select between 'touched' elements and physical controller inputs when showing inputs on overlays 2021-05-25 18:01:52 +01:00
twinaphex f66d4ea33c Remove unused variables 2021-05-21 17:14:13 +02:00
twinaphex e34c84d791 Use snprintf in more situations 2021-05-18 20:19:19 +02:00
twinaphex 2e4b734159 Cleanups - replace several messy strlcpy/strlcats with one single
snprintf
2021-05-18 20:09:48 +02:00
twinaphex 7bbdd6d18a Prefer using snprintf instead of insecure sprintf 2021-05-18 15:14:08 +02:00
Michael Burgardt d50be7a0ab Added simple playlist entry enumeration to ozone; added toggle option by jdgleaver 2021-05-17 18:49:25 +02:00
jdgleaver 6f471e0660 Fix content loading via file browser on platforms with 'broken' core handling (i.e. emscripten) 2021-05-13 15:32:25 +01:00
jdgleaver 50d27fada9 (Static Platforms) Ensure 'Always Reload Core on Run Content' setting is applied when loading content via the file browser 2021-05-12 10:59:07 +01:00
Autechre 89391ccf9a
Merge pull request #12287 from LazyFunker/master
Some fixes for UWP/XBox
2021-05-12 09:17:53 +02:00
David Guillen Fandos 9280340fe0 CPU governor/frequency part 2
This adds managed policies and settings to store them and reload them at
startup. Only for Lakka builds!
2021-05-12 02:16:25 +02:00
GavinDarkglider f24f827c4c
Updates For Lakka Switch build. (#12369) 2021-05-07 20:58:30 +02:00
jdgleaver c37f540b72 Core Info Cache Improvements
- Core info cache can now be enabled/disabled on all platforms via a new `Settings > Core > Cache Core Info Files` option
- Core info cache file has been renamed from `.cache` to `core_info.cache` (i.e. it is no longer a 'hidden' file on Unix platforms, so can be deleted easily)
- The core info cache file is now compressed (rzip) to further reduce disk IO
- The presence of a `core_info.refresh` file in the core info directory will force a one-time refresh of the info cache. This file is generated automatically when toggling on the `Cache Core Info Files` option, and we will also add it to core info file packaging such that updating info files (either manually or via the online updater) will force a refresh
- The core info cache no longer contains 'core is locked' and 'firmware missing' data fields; these are 'dynamic' properties that must be determined at runtime
- The 'core is locked' status is now determined on core info intialisation by parsing the core directory listing, rather than by performing indivdual 'lock file exists' checks. This minimises file IO, and greatly improves performance on devices with slow storage
- While parsing the core info cache file, we now avoid unnecessary `strdup()`s when adding entries to the resultant cache list
- Memory leaks (potential and real) have been fixed, and safety checks added
- Build errors have been fixed
2021-05-06 15:00:55 +01:00
David Guillen Fandos b2c20e8ce0 Initial support for tweaking CPU governors/scaling policies
This is, at the moment, aimed at Lakka only.
2021-05-01 18:35:38 +02:00
Autechre 84ab14cb83
Merge pull request #12281 from eadmaster/multi_patch
added multi-softpatching support + OSD messages for patches (#9947)
2021-04-30 16:00:43 +02:00
eadmaster 019130298a added multi-softpatching support + OSD messages for patches (#9947)
fixed Travis error
2021-04-30 14:12:47 +02:00
jdgleaver f4511f6fa4 (core_info) Performance optimisations + code clean-ups/refactors 2021-04-26 14:30:31 +01:00
Tomáš Kelemen (vudiq) 90529c62b2 Lakka: add menu for time zone setting
This adds new entry under Settings -> Services (where all Lakka related
services are currently available, such as switches for services like
SSH, Samba, etc.). By adding this the users do not have to use the
command line / access the file system directly to change their local
time zone to adjust the date/time displayed in RetroArch.
2021-04-21 18:12:42 +02:00
twinaphex 0cc5b29558 Use path_basename for instances where we don't have to deal
with compressed files in archives
2021-04-20 19:14:47 +02:00
jdgleaver b193fd0ba9 Enhanced 'Load Content' file browser search functionality 2021-04-20 15:49:22 +01:00
LazyFunker c5e5cf28af Force resolution on UWP 2021-04-20 11:47:32 +02:00
jdgleaver 54c45bd54e (RGUI) Add option to disable menu transparency 2021-04-15 12:32:39 +01:00
jdgleaver a6cffc0e29 (XMB/GLUI/Ozone) Add optional menu screensaver animations 2021-04-13 15:36:57 +01:00
twinaphex 544a17926b Use path_basename_nocompression where we are sure we are not
dealing with a filename with a compressed archive hash
2021-04-11 17:44:41 +02:00
twinaphex 9f6a5e35de Get rid of more duplicate pointer grabbing 2021-04-08 02:02:30 +02:00
jdgleaver c23e32a047 OpenDingux Beta: Add 50Hz support 2021-04-07 10:06:11 +01:00
Jonathan 5c6cd1b48a
Add scaling to pointer input (#12213)
So far, if display is scaled, overlays gets correctly drawn but touch
input is not correctly scaled, resulting in an unusable overlay.

This happens for touches in menu too.

This commit aims to introduce this scaling factor adding it to the
config file, eg:

input_touch_scale = "2"
2021-04-06 13:15:43 +02:00
jdgleaver 371d0b7395 Add optional menu screensaver 2021-04-01 17:26:43 +01:00
sonninnos 1c63dec47e Relocate 'Menu Scroll' settings 2021-03-26 21:01:18 +02:00
sonninnos 23d558564f Customizable menu scroll hold delay 2021-03-26 04:23:52 +02:00
sonninnos 9062b61511 Separate 'Turbo Fire' menu 2021-03-25 22:28:18 +02:00
twinaphex 8f79e14d0a Silence LGTM static code analysis warnings 2021-03-24 00:25:47 +01:00
twinaphex 8b2eb8ed37 Cut down on config_get_ptr calls in menu_displaylist_ctl 2021-03-21 16:36:36 +01:00
twinaphex d8d034bacb (menu_displaylist_build_list) Pass settings pointer around 2021-03-21 16:16:41 +01:00
twinaphex 7c145fafb2 (menu_displaylist) config_get_ptr only called now from three public functions 2021-03-21 16:04:04 +01:00
twinaphex 5547f7b6f8 Further simplify filebrowser_parse - info can never be NULL -
other optimizations
2021-03-21 14:49:51 +01:00
twinaphex 6682dff9a5 (Menu) simplify/cleanup filebrowser_parse 2021-03-21 14:34:36 +01:00
twinaphex ce5dd864f0 Fix C89 build failures 2021-03-16 13:11:14 +01:00
sonninnos e89cd8bc0b Cosmetic input bind order 2021-03-16 02:46:41 +02:00
twinaphex 40fe0796b4 Add 'Menu Driver' setting to 'User Interface' 2021-03-15 12:53:48 +01:00
Autechre fbaec27e8e
Merge pull request #12154 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-15 12:47:01 +01:00
CrystalCT f19a67cad6 Add some PSL1GHT ifdefs 2021-03-15 11:37:59 +01:00
twinaphex d9e8d44393 menu_displaylist_parse_settings_enum - cleanups 2021-03-15 07:22:23 +01:00
twinaphex 4e883c4568 Refactor menu_displaylist_setting away 2021-03-15 06:11:57 +01:00
twinaphex e72cdd78d6 menu_displaylist.c is never built into Salamander, so these ifdefs
can go
2021-03-11 19:17:06 +01:00
twinaphex 95d3b7285d MOve functions over to retroarch.c 2021-03-11 04:13:06 +01:00
twinaphex 44c69561b7 Get rid of GENERIC_DEFERRED_PUSH_CLEAR_GENERAL - do
MENU_ENTRIES_CTL_CLEAR inside menu_displaylist_ctl instead
2021-03-10 09:41:49 +01:00
twinaphex a2031608e7 Don't use file_list_get_at_offset - access members directly 2021-03-10 09:41:49 +01:00
twinaphex 003fc7ccc8 Get rid of menu_entries_get_at_offset 2021-03-10 05:49:58 +01:00
twinaphex d6e897ca2c Get rid of menu_entries_set_checked 2021-03-07 06:52:35 +01:00
jdgleaver 20a187ef9c Add option to reset all core options for current core/content 2021-02-25 16:59:05 +00:00
jdgleaver 110e318b71 Add support for saving per-directory core options and deleting core option overrides 2021-02-25 10:54:22 +00:00
sonninnos 6de0af0c78 Add remap clearing ability under Quick Menu controls 2021-02-20 19:35:42 +02:00
twinaphex 561d2744f0 Silence some warnings 2021-02-09 15:35:25 +01:00
Autechre f661cc3fb5
Merge pull request #11572 from ImJezze/master
Option to open the file browser in the last used directory
2021-02-08 12:29:31 +01:00
ImJezze 270c41b35a Implement toggle to open the start directory at the last used location 2021-02-07 11:54:17 +01:00
sonninnos cd77db37df (XMB+OZONE) Proper control port icons 2021-02-06 03:13:03 +02:00
Autechre e4f8f64336
Merge pull request #11992 from sonninnos/device-index-dropdown
Submenu for Device Index
2021-02-05 20:42:31 +01:00
sonninnos 14413b8bca Submenu for Device Index 2021-02-05 19:49:15 +02:00
jdgleaver 864c2913d8 'On-Screen Notifications' menu clean-ups 2021-02-05 16:55:09 +00:00
sonninnos 8fcf485fd8 Submenu for Device Type 2021-02-04 18:50:10 +02:00
twinaphex 4df6d287e3 (Clang) Silence 'n' is never used warnings 2021-02-03 11:48:33 +01:00
Autechre 831bbf1300
Merge pull request #11925 from Ryunam/custom-dirs
Enable configuration of the directories used for Favorites, History, Images, Music and Video playlists
2021-02-01 23:20:00 +01:00
Ryunam 4b0502b896 Enable configuration of directory for Favorites, History, Images, Music and Video playlists 2021-01-21 21:28:10 +01:00
twinaphex 7867c4b70e Get rid of file_list_get_size calls - one line wrapper function 2021-01-20 08:31:05 +01:00
twinaphex 1b071f16f5 Silence implicit conversion warnings 2021-01-16 20:03:04 +01:00
twinaphex bc48080ee5 Remove unused variable 2021-01-16 17:05:28 +01:00
jdgleaver 1c591be8f1 Add option to automatically enable 'game focus' mode when running/resuming content 2021-01-13 15:00:36 +00:00
Ryunam c341aabdb4 Add option to show/hide Refresh Rate notification 2021-01-08 17:32:33 +01:00
MrHuu 2229657b12 (3DS) Enable core updater 2020-12-30 19:11:48 +01:00
MrHuu 25dd77a0f5 (3DS) Enable online updater
- set directory defaults
2020-12-29 17:44:59 +01:00
Autechre 1681872763
Merge pull request #11772 from fpscan/facebook-gaming
Facebook Gaming stream option
2020-12-28 21:04:09 +01:00
Jamiras 5224e97481 add confirmation submenu to achievements hardcore toggle 2020-12-26 14:15:01 -07:00
twinaphex 870707dbe8 Remove obsolete __CELLOS_LV2__ references - use PSL1GHT instead 2020-12-19 15:32:26 +01:00
Ömercan Kömür 6256b8ca2b first 2020-12-19 15:14:14 +03:00
David Guillen Fandos 8b88f705b8 Fix minor issues and a memleak 2020-12-10 19:24:34 +01:00
David Guillen Fandos ed7b3aa415 Add a proper WiFi menu, with Enable/Disable & Disconnect options
This also allows WiFi passwords to be remembered. The underlying
tool (connman) allows to store passswords (that's why it auto connects
whenever you boot a Lakka device), so we expose this so that the user
does not have to re-input the pass when connecting to a saved wifi.

Option to forget a password to come in a future PR, for now a password
is automatically forgotten if the Wifi connect operation fails (we assume
it fails due to password).

Changes the WiFi API to enable these features of course!
2020-12-09 20:20:48 +01:00
Tony Jansson 75baed785e (DINPUT+WINRAW) Option for disabling Windows hotkeys 2020-12-09 00:03:40 +02:00
David Guillen Fandos 091f6e6354 Improving Wifi API and connman implementation
This sets the ground for more PRs to come. Clean up how scanning and listing
SSID works, and adds attributes to the newtworks.
Frontend will be able to know which networks are "remembered" and thus
require no password to re-connect.

For now scans are performed every 2 minutes or on demand if no networks found
(either for real or in the "cache").
2020-12-04 02:18:03 +01:00
David Guillen Fandos a442696b71 First attempt at adding proper brightness
Supports Switch and OGA
2020-11-26 19:22:05 +01:00
David Guillen Fandos f5693f15e7 Make get_lakka_version available in all builds
This simplifies a bit the code, for some new lakka patches to come.
2020-11-23 18:44:24 +01:00
David Guillen Fandos 1c5099051c Adding savestate garbage collector for autoincrement stavestates
As some issues indicate (#6195 #10471 #11008 #6861) there's an issue with
the autoincrement save slot feature: slot index will increase and very old
saves won't be deleted.

This commit adds support to delete old save states with a user defined
save state limit (global). Instead of wrapping around the slot counter
it will simply delete the oldest save, since it is simpler.

For now there's a limit of one deletion per save, which ensures a user
cannot delete many saves by accident if they set the limit too low.
2020-11-22 13:26:23 +01:00
jdgleaver e582cf9f1d OpenDingux: Add rumble support 2020-11-17 16:13:37 +00:00
HyperspaceMadness 70bf90c5d8 Shader_Preset_Simple_Save_Cleaned_2020_11_01 2020-11-01 09:18:40 -05:00
Tony Jansson 52c4062750 Reorganize User Interface menu 2020-10-23 18:55:32 +03:00
twinaphex 079919b88f Add more conditionals 2020-10-23 04:48:15 +02:00
Tony Jansson 46d516f066 Add option for quitting on close content 2020-10-20 21:45:03 +03:00
jdgleaver a02fadeb94 Add 'Remove DSP Plugin' menu entry 2020-10-19 11:33:15 +01:00
twinaphex f42bcf978c Revert "Add HAVE_XMB ifdefs here"
This reverts commit 0dfbf669df.
2020-10-17 19:00:48 +02:00
twinaphex 0dfbf669df Add HAVE_XMB ifdefs here 2020-10-17 18:50:00 +02:00
Tony Jansson 9902ad0b49 Add remaining settings menu visibilities 2020-10-16 01:57:34 +03:00
twinaphex 44b7234756 Move cheat_manager and state_manager to root folder 2020-10-15 05:29:20 +02:00
jdgleaver 80f1da2fb1 OpenDingux: Enable selection of image interpolation method when using 'sdl_dingux' gfx driver 2020-10-05 14:34:21 +01:00
jdgleaver bbba80f01e OpenDingux: Enable integer scaling when using the 'sdl_dingux' gfx driver 2020-10-02 16:38:42 +01:00
jdgleaver 3bd66cc14d OpenDingux port improvements: Phase 1 2020-10-01 15:56:14 +01:00
Jamiras 02ddbc41cc allow disabling leaderboard notifications and trackers separately 2020-09-25 19:28:56 -06:00
twinaphex 0e49f058f3 Use strcpy_literal in more places 2020-09-19 23:59:06 +02:00
Ophidon 2f36c94f3f Variable BFI
BFI support added for 180hz / 240hz / etc. Solves issue with image retention from voltage issues at 120hz BFI. Also disabled BFI while in menu, as if set to an incorrect value for the current refresh rate, could cause severe flickering and difficulty reverting to the correct value.
2020-09-18 11:57:32 -04:00
twinaphex 290c88b865 Remove menu_networking.c and merge it into menu_cbs_ok.c and
menu_displaylist.c
2020-09-17 23:15:25 +02:00
jdgleaver 8a5ebbf24d Add option to scale overlays automatically (with aspect ratio correction) 2020-09-17 17:23:07 +01:00
jdgleaver 34e08a688f (Sensors API) Android (crash-)fixes/improvements + add option to disable sensor input 2020-09-14 17:52:45 +01:00
Autechre 02afd06f5b
Merge pull request #11305 from jdgleaver/overlay-config
Overlay configuration improvements
2020-09-09 06:25:54 +02:00
jdgleaver 5a0dc5524d Fix string_list memory leaks 2020-09-08 14:58:49 +01:00
jdgleaver b8ea4fd54e Overlay configuration improvements 2020-09-08 13:37:51 +01:00
twinaphex 43e75ce741 (menu_displaylist_parse_playlists) Use non-heap allocated
string list functions
2020-09-04 06:35:14 +02:00
twinaphex 318ac1f667 (filebrowser_parse) Use non-heap allocated string_list functions 2020-09-04 06:29:30 +02:00
jdgleaver bd80f02f11 (Android/Play Store Builds) Add option to switch all installed cores to Play Store versions 2020-09-02 17:13:03 +01:00
jdgleaver 4799d2d955 (Android/Play Store) Add frontend support for core installation via Play Feature Delivery 2020-08-28 16:30:54 +01:00
Pedro b6655034ef Implementation of fullscreen over notch function. 2020-08-27 20:41:30 -03:00
Autechre df245d4917
Merge pull request #11239 from jdgleaver/overlay-gamepad-hide
Add option to hide overlays when a gamepad is connected (Note: Restricted functionality on Android)
2020-08-26 20:23:47 +02:00
twinaphex 01e5ec94bb Prefer to use string_split_noalloc 2020-08-26 12:41:57 +02:00
twinaphex 915bbc9bcc (menu_displaylist) Cleanup 2020-08-25 14:51:37 +02:00
twinaphex 6af6d5eb1c (jdgleaver) Initialize string lists properly to prevent memory leaks 2020-08-25 13:25:27 +02:00
jdgleaver cc2e098dab Add option to hide overlays when a gamepad is connected (Note: Restricted functionality on Android) 2020-08-25 11:12:37 +01:00
twinaphex 700009216c Use more string_list_initialize/deinitialize 2020-08-24 19:18:54 +02:00
twinaphex 26ec12ddc5 create_string_list_rdb_entry - use string_list_initialize/deinitialize 2020-08-24 19:12:51 +02:00
Jamiras 2f69d2d4ed eliminate exposed variables for tracking hardcore 2020-08-22 12:18:12 -06:00
twinaphex 4ec216dc0b Get rid of file_path_str 2020-08-22 01:06:10 +02:00
jdgleaver dd66988c98 Add option to remember last selected shader preset/shader pass directories 2020-08-21 17:02:32 +01:00
Nargash b8990d601a Add configuration options to sort save files, save states, and screenshots into folders named after the content directory folder. 2020-08-20 19:29:00 -05:00
Tony Jansson 1c7d8d3f31 (XMB+OZONE) Quick Menu ports: AtD icon + key labels for keyboard type 2020-08-19 17:35:15 +03:00
twinaphex dc3dc574d8 String stack size cleanups 2020-08-19 06:53:09 +02:00
twinaphex 5166eebcaf for loop cleanups - use space after 'for' 2020-08-19 03:06:22 +02:00
twinaphex 216190b826 Clean up more string variables on heap - move to stack 2020-08-18 14:26:15 +02:00
jdgleaver 6d8f3cb182 Enhanced core downloader search functionality 2020-08-14 17:53:44 +01:00
jdgleaver e6000afddb (GLUI) Add optional system-specific playlist icons 2020-08-06 17:24:28 +01:00
jdgleaver 15cf483cd9 (RGUI/GLUI) Clean up 'scan content' menu entries 2020-08-05 14:25:09 +01:00
twinaphex 3e41cbc381 Revert "Add get_metrics to poke interface"
This reverts commit 119689c940.
2020-08-02 23:44:28 +02:00
twinaphex 119689c940 Add get_metrics to poke interface 2020-08-02 19:25:45 +02:00
jdgleaver 776301883c Enhanced playlist search functionality 2020-07-31 15:14:51 +01:00
twinaphex 573f9e60c7 (libnx) Prevent some warnings 2020-07-31 10:54:57 +02:00
jdgleaver d77f6705df Add option to hide 'Explore' tab + menu clean-ups 2020-07-29 13:01:49 +01:00
alphanu1 e222d62f6c
Merge pull request #7 from libretro/master
upstream
2020-07-28 18:55:54 +01:00
Autechre 8cb861798e
Merge pull request #11075 from francescotintori/francesco/playlist_autofix
Playlist base content directory paths
2020-07-28 16:10:20 +02:00
alphanu1 55e3bd3d2d Added ability to adjust porch values
Porches can now be manipulated from the CRTSwitchRes menu
2020-07-28 14:25:38 +01:00
twinaphex 4c6136d970 Stub out menu_explore.c when HAVE_LIBRETRODB is not defined 2020-07-28 12:15:05 +02:00
Bernhard Schelling 667e8a558e Explore view - WIP1
A top content view that combines all playlists with database entries to browse by year, developer, system, etc.
Depends on the quality of the available metadata in the database (RDB) files.
2020-07-28 04:44:31 +02:00
francescotintori 9744fcb76a Adds base content directory support in playlists. If playlist base content directory does not match configuration parameter 'rgui_browser_directory', all entries paths are automatically fixed to match parameter 'rgui_browser_directory'.
Functionality is enabled if new parameter 'playlist_autofix_paths' is enabled.
2020-07-27 20:59:56 +02:00
jdgleaver fba4a8e837 (RGUI) Add optional 'toggle switch' icons 2020-07-27 14:45:07 +01:00
Hugo Hromic e5a50a4e33 (Menu/DisplayList) Make notification font size option visible when graphics widgets are enabled
The on-screen audio/video statistics uses the font size option for rendering.
2020-07-26 22:28:32 +01:00
jdgleaver 9a19a7ae31 Core option improvements 2020-07-24 15:31:50 +01:00
Autechre 53eee276c7
Merge pull request #11070 from Ryunam/notification-font
Make Notification Font option visible when Graphics Widgets are enabled
2020-07-23 18:42:47 +02:00
Ryunam ee8317a8e4 Make Notification Font visible when Widgets are enabled 2020-07-23 18:26:42 +02:00
jdgleaver 60407a84e6 Add input remap drop-down lists 2020-07-23 17:20:41 +01:00
twinaphex a3242daa5d Silence more warnings 2020-07-23 05:51:04 +02:00
Ryunam 4d2fe14c1d Adjustments to Screenshot Notification options 2020-07-20 19:44:55 +02:00
twinaphex 632329f4bb We should probably allow the user to individually control the screenshot
flash
2020-07-20 01:11:08 +02:00
twinaphex 279e142668 Properly hide other notification visibility screenshot settings
when master one is disabled
2020-07-20 01:09:08 +02:00
twinaphex 36a76d1248 Take out my own implementation in favor of Ryunam's 2020-07-20 00:50:40 +02:00
Autechre 8861416b32
Merge pull request #11046 from Ryunam/screenshot-notification
Add options to control visibility, duration and flashing effect of Screenshot Notifications
2020-07-20 00:27:02 +02:00
Ryunam 5014f90e4d Add options to customize Screenshot notifications 2020-07-19 23:42:16 +02:00
twinaphex ccd9b8ead4 (Widgets) onscreen Notifications -> Add setting to enable/disable 'take
screenshot' widget individually
2020-07-19 23:26:14 +02:00
Hugo Hromic 1e3fb9505c (Menu/OSD) Implement configurable update interval for memory usage display
Obtaining system memory metrics is generally an expensive operation.
2020-07-19 19:57:50 +01:00
jdgleaver 230c1cdde2 Add option to show/hide 'last used disc restored' notifications 2020-07-17 12:52:28 +01:00