Commit Graph

2633 Commits

Author SHA1 Message Date
github-actions b1f52a25ea Fetch translations from Crowdin 2022-03-09 00:08:58 +00: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
Michael Burgardt 56f2e2f7b8
Add Czech language option (#13680) 2022-03-07 19:11:39 +01:00
yoshisuga 01cb10d8b3
[iOS 13+] Support a toolbar that allows toggling of onscreen keyboard and touch mouse (#13700)
* Fetch translations from Crowdin

* Support for showing and hiding indicator and navigation bar

* Refactored to use a view model

* Support defining helper bar items and support showing/hiding keyboard

* reorganized source files into separate logical files

* Moved mouse support to swift (except for delegate implementation), added support for enabling touch mouse in helper bar; reorganized swift source files

* Reorganized keyboard files; added the touch mouse messages to the RA localization files; use the RA notification system

* change keyboard letters to uppercase for clarity

Co-authored-by: github-actions <github-actions@github.com>
2022-03-07 19:09:49 +01:00
Tony cfd408db86
Show core version in 'Core Information' (#13677) 2022-02-27 05:30:12 +01:00
yoshisuga ba0d42ceb3
[iOS] Fix RetroArch_iOS9 project (#13679)
* Fetch translations from Crowdin

* Fix iOS 9 xcode project to include the JITSupport files

Co-authored-by: github-actions <github-actions@github.com>
2022-02-27 05:18:25 +01:00
github-actions 6faf2fe5b9 Fetch translations from Crowdin 2022-02-27 00:10:40 +00:00
github-actions 2c65382d50 Fetch translations from Crowdin 2022-02-26 00:09:11 +00:00
github-actions 8f82bcaad9 Fetch translations from Crowdin 2022-02-25 00:09:27 +00:00
github-actions 569704fb37 Fetch translations from Crowdin 2022-02-24 00:09:21 +00:00
github-actions 3d08aa8e32 Fetch translations from Crowdin 2022-02-23 00:09:57 +00:00
jdgleaver 9b0cb0fc92
Add 'Standalone Cores' menu (#13655) 2022-02-22 19:23:48 +01:00
github-actions 3d54d952a5 Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
Michael Burgardt 7df18ec59d
Improve some texts (#13645) 2022-02-21 20:11:25 +01:00
github-actions 644e7dce7c Fetch translations from Crowdin 2022-02-21 00:09:21 +00:00
github-actions 3ae7d19cd5 Fetch translations from Crowdin 2022-02-20 00:10:13 +00:00
github-actions 8373ef1a61 Fetch translations from Crowdin 2022-02-19 00:09:36 +00:00
Vladimir Serbinenko f0d8af0d34
Remove gong now that it has been successfully extracted into a standalone core (#13637) 2022-02-18 17:03:35 +01:00
github-actions 80e7e1983a Fetch translations from Crowdin 2022-02-18 00:08:46 +00:00
github-actions 932c9b9926 Fetch translations from Crowdin 2022-02-17 00:07:37 +00: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
github-actions 1fe70da946 Fetch translations from Crowdin 2022-02-16 00:07:48 +00:00
github-actions 0e22b1ec73 Fetch translations from Crowdin 2022-02-15 00:08:15 +00:00
Michael Burgardt b8242601ec
Fix localisations (#13622)
* Fix translations with messed-up string placement

* Fix Hebrew and Persian text display

Hebrew is now displayed properly as right-to-left.
Miscellaneous whitespaces, like the zero width non-joiner used in Persian, no longer break right-to-left texts.
2022-02-14 02:43:55 +01:00
github-actions 538b58aa7a Fetch translations from Crowdin 2022-02-14 00:07:43 +00:00
github-actions 19a1dbbc85 Fetch translations from Crowdin 2022-02-13 00:09:26 +00:00
github-actions 9ec7cecb93 Fetch translations from Crowdin 2022-02-12 00:07:40 +00:00
github-actions e71e895ad6 Fetch translations from Crowdin 2022-02-08 00:08:31 +00:00
jdgleaver ab8e8359a6
Fix segfault when launching content with cores that do not have serialized savestate support when rewind and cheevos hardcore mode are enabled (#13607) 2022-02-07 23:52:25 +01:00
github-actions 5d3ebd0ece Fetch translations from Crowdin 2022-02-07 00:07:46 +00:00
Michael Burgardt 504a6b9670
Fix Polish translation (#13601) 2022-02-06 04:40:08 +01:00
github-actions df1f7bffb9 Fetch translations from Crowdin 2022-02-06 00:09:13 +00:00
github-actions 5bc2d42cdc Fetch translations from Crowdin 2022-02-05 00:09:09 +00: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
github-actions d43b99cbac Fetch translations from Crowdin 2022-02-03 00:10:22 +00: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
github-actions 6f7332c8fa Fetch translations from Crowdin 2022-02-02 00:09:36 +00:00
github-actions f8c3c76e18 Fetch translations from Crowdin 2022-02-01 00:08:10 +00:00
Jamiras c092fa33e1
add mastery placard (#13575) 2022-01-31 16:33:23 +01:00
Víctor "IlDucci 900675ad23
[Typo fixing] Removing unneeded space before colons. (#13577) 2022-01-31 16:32:47 +01:00
github-actions 6aa89b3723 Fetch translations from Crowdin 2022-01-31 00:07:42 +00:00
Keith Bowes cce04bab70
Remove references to removed features (#13564) 2022-01-30 09:29:43 +01:00
github-actions 84052ee7e1 Fetch translations from Crowdin 2022-01-30 00:07:54 +00:00
github-actions dbe0252db4 Fetch translations from Crowdin 2022-01-29 00:07:53 +00:00
github-actions 4132176ece Fetch translations from Crowdin 2022-01-28 00:11:55 +00:00
github-actions 8511152738 Fetch translations from Crowdin 2022-01-27 00:09:45 +00:00
Tony 84f558db0b
Add optional frame skipping when fast-forwarding (#13550) 2022-01-26 18:30:33 +01:00
github-actions dfcbde86f7 Fetch translations from Crowdin 2022-01-26 00:09:04 +00:00
github-actions 17362e3692 Fetch translations from Crowdin 2022-01-25 00:07:58 +00:00
jdgleaver 6ee3c14779
Add 'Core System Files Downloader' entry to the Online Updater (#13524) 2022-01-24 16:41:29 +01:00
github-actions 948ad76b14 Fetch translations from Crowdin 2022-01-24 00:07:57 +00:00
github-actions 245101b1a1 Fetch translations from Crowdin 2022-01-23 00:08:33 +00:00
github-actions e2848ad0d5 Fetch translations from Crowdin 2022-01-22 00:07:03 +00:00
github-actions 5f6fc20360 Fetch translations from Crowdin 2022-01-21 00:10:19 +00:00
github-actions a50bf67386 Fetch translations from Crowdin 2022-01-20 00:08:30 +00:00
Michael Burgardt 311fec15d9
Add Indonesian, Swedish and Ukrainian language options (#13490)
* Add Indonesian, Swedish and Ukrainian language options

* Enable Indonesian and Swedish localisations for RGUI
2022-01-19 19:12:55 +01:00
github-actions 51ba13035d Fetch translations from Crowdin 2022-01-19 00:07:26 +00:00
github-actions 650789a570 Fetch translations from Crowdin 2022-01-18 00:07:53 +00:00
github-actions eaf32daf25 Fetch translations from Crowdin 2022-01-17 00:08:08 +00:00
github-actions 6d6eca7a9f Fetch translations from Crowdin 2022-01-16 00:08:20 +00:00
github-actions d3b38f45fd Fetch translations from Crowdin 2022-01-15 00:07:42 +00:00
github-actions aca2b9675f Fetch translations from Crowdin 2022-01-14 00:08:28 +00:00
github-actions 4331065cc0 Fetch translations from Crowdin 2022-01-13 00:09:41 +00:00
github-actions f4831809f7 Fetch translations from Crowdin 2022-01-12 00:10:11 +00: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
github-actions 310c43d7ad Fetch translations from Crowdin 2022-01-11 00:08:12 +00:00
github-actions b3f3bf1e83 Fetch translations from Crowdin 2022-01-10 00:08:23 +00:00
github-actions 28f531647f Fetch translations from Crowdin 2022-01-09 00:08:35 +00:00
github-actions 4ae67b9fa4 Fetch translations from Crowdin 2022-01-08 00:07:25 +00:00
Tony b7d77e9484
(XMB) Optional vertical list item fade (#13455) 2022-01-07 08:46:49 +01:00
github-actions 483d1f2ac7 Fetch translations from Crowdin 2022-01-07 00:08:43 +00:00
github-actions d13f325216 Fetch translations from Crowdin 2022-01-05 00:08:04 +00:00
Michael Burgardt c28df9ccef
Stop Crowdin Daily Workflow from activating with empty API key (#13440)
* Stop Crowdin Daily Workflow from activating with empty API key

* Make sure that the API key is always reset
2022-01-04 13:32:03 +01:00
github-actions d4902b65bd Fetch translations from Crowdin 2022-01-04 00:07:56 +00:00
github-actions a427de28eb Fetch translations from Crowdin 2022-01-03 00:08:24 +00:00
github-actions 3c388b62d4 Fetch translations from Crowdin 2022-01-02 00:08:08 +00:00
github-actions 76fd60b15e Fetch translations from Crowdin 2022-01-01 00:07:53 +00:00
github-actions 31342ea18f Fetch translations from Crowdin 2021-12-31 00:07:41 +00: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
github-actions e161af4826 Fetch translations from Crowdin 2021-12-30 00:07:38 +00:00
github-actions ee1d9f5d1b Fetch translations from Crowdin 2021-12-29 00:07:49 +00:00
github-actions 916a3fd157 Fetch translations from Crowdin 2021-12-28 00:07:38 +00:00
github-actions a746030901 Fetch translations from Crowdin 2021-12-27 00:08:35 +00: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
github-actions d056a989ee Fetch translations from Crowdin 2021-12-25 00:06:59 +00:00
github-actions c0ed1e3367 Fetch translations from Crowdin 2021-12-24 00:07:38 +00: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
github-actions f6291adf01 Fetch translations from Crowdin 2021-12-23 00:07:28 +00:00
github-actions b21f3964b6 Fetch translations from Crowdin 2021-12-22 00:07:46 +00: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
github-actions 3f7d279acf Fetch translations from Crowdin 2021-12-21 00:08:24 +00:00
Nikos Chantziaras 0357b6c922
Add on-screen statistics toggle hotkey (#13381)
* Add on-screen statistics toggle hotkey

* CHANGES.md: Add technical statistics hotkey
2021-12-21 00:03:35 +01:00
github-actions 58b306d651 Fetch translations from Crowdin 2021-12-20 00:08:24 +00: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
github-actions b7c14f61bc Fetch translations from Crowdin 2021-12-19 00:08:38 +00:00
github-actions 7049c6c204 Fetch translations from Crowdin 2021-12-18 00:07:30 +00:00
Tony 8cc423e036
Logging cleanups (#13370) 2021-12-17 18:04:24 +01:00
github-actions 4fa4260a16 Fetch translations from Crowdin 2021-12-17 00:07:15 +00:00
Tony 71836c1055
Add option for showing notifications only in menu (#13326) 2021-12-16 14:38:43 +01:00