Tom Pratt
2c82e5188e
Game digest progress dialog
...
We just about get away with using a StateFlow in NetplaySession since the host sends AbortGameDigest when closing their own dialog. Without that it would be harder for the UI to distinguish between subsequent dialogs. If that wasn't the case then NetplaySession might need to expose the individual progress and result updates and have the view model assemble it into the overall GameDigestProgress.
2026-05-07 11:22:24 +02:00
Tom Pratt
8792a4b924
Handle desync messages
...
Show them in the chat window and also in a toast during game play.
2026-05-07 11:22:24 +02:00
Tom Pratt
1285cb2282
Make NetplaySession not a singleton
...
Create a new NetplaySession each time we try to join a netplay game. Hold onto it in NetplayManager so its available to the different activities that need to access it. Close the session when backing out of the netplay UI. Some guardrails in case things go out of sync: creating a session closes the old one if it is still around for some reason, finalizer in NetplaySession to release native resources if not closed explicitly for some reason. Profiling done to ensure all kotlin and native objects are successfully cleared / garbage collected.
2026-05-07 11:22:23 +02:00
Tom Pratt
371fa1a250
Use existing settings API instead of custom jni calls
2026-05-07 10:39:50 +02:00
Tom Pratt
3572afcbbf
Show save transfer progress
...
When transferring saves from the host. Equivalent of ChunkedProgressDialog in QT.
2026-05-07 10:39:50 +02:00
Tom Pratt
ab6c2d0d56
Dont try to load temporary save states when launching netplay
...
An orientation change can trigger this code path immediately when a game starts. e.g. dolphin is portrait when launching the game but settings force gameplay to landscape. We want to avoid this and continue to the netplay launch code below.
If the user backgrounds dolphin during netplay and then resumes after the process has died it will actually resume from the save state in single player mode, not sure if thats good or bad but fine for now.
Netplay doesnt handle rotation very well, seems to go more and more out of sync the more rotations.
2026-05-07 10:39:50 +02:00
Tom Pratt
05cfd16665
Release boot session data during Netplay cleanup
...
Boot session data is already handled when the game is booted so this is just fallback in case the game launch fails in some weird way.
Add missing @Keep annotations to functions called from C++
2026-05-07 10:39:50 +02:00
Tom Pratt
ee1271e5b2
Implement OnConnectionLost, show a dialog on the main netplay screen forcing the user to exit
2026-05-07 10:39:49 +02:00
Tom Pratt
b21cbc63f7
Implement StopGame callback and use it to finish the emulation activity
2026-05-07 10:39:49 +02:00
Tom Pratt
fd21ca13ff
Settings refactor
...
Remove the big saveSetup function and set individual settings immediately after being changed in the UI. Group them all under Netplay.Settings
2026-05-07 10:39:49 +02:00
Tom Pratt
a87d315283
Max buffer
2026-05-07 10:39:49 +02:00
Tom Pratt
64fd5de16b
Put players table in an OutlinedBox, makes the UI look more consistent.
2026-05-07 10:39:49 +02:00
Tom Pratt
a5bd27d731
Implement more NetPlayUICallbacks
...
Includes chat, game changes, pad buffer changes and host input authority. Merges them all into the chat window.
2026-05-07 10:39:48 +02:00
Tom Pratt
d82a9242a1
Netplay chat UI
2026-05-07 10:39:48 +02:00
Tom Pratt
97279f24dd
Implement player list
2026-05-07 10:39:48 +02:00
Tom Pratt
bfa68bf935
Reorder netplay class
...
Put all the boring settings at the bottom to reduce scrolling!
2026-05-07 10:39:48 +02:00
Tom Pratt
099243f2c6
Add mostly empty Netplay screen, equivalent of NetPlayDialog in QT.
...
All it can do at this point is quit the current netplay session when backing out of this screen.
2026-05-07 10:39:48 +02:00
Tom Pratt
43d592c912
Move NetplaySetupScreen to its own file
2026-05-07 10:39:48 +02:00
Tom Pratt
b2e900ce40
Show client connection errors and handle connection result
...
If result is a success sent event to launch the next netplay screen. if it fails, clear up the netplay client
2026-05-07 10:39:47 +02:00
Tom Pratt
12343ebf86
Store netplay BootSessionData and use it to run the netplay game
2026-05-07 10:39:47 +02:00
Tom Pratt
01c8c4aee2
Pass game list to NetPlayUICallbacks and implement OnMsgChangeGame, OnMsgStartGame, FindGameFile
2026-05-07 10:39:47 +02:00
Tom Pratt
2839a5d11b
Add NetPlayClient join and stub NetPlayUICallbacks
2026-05-07 10:39:47 +02:00
Tom Pratt
00941050c7
Add Netplay settings JNI layer and wire up NetplaySetupViewModel
2026-05-07 10:39:47 +02:00
Tom Pratt
23f5f02c11
Netplay setup UI
...
Only for connecting, no hosting yet.
2026-05-07 10:39:46 +02:00
Tom Pratt
ec8253ebff
Add compose dependencies for Android and empty NetplaySetupActivity
...
Derive compose colour theming from the existing XML styles already set at the activity level.
2026-05-07 10:39:46 +02:00
Dentomologist
6d5399246e
Merge pull request #14532 from Dentomologist/autoupdatechecker_fix_edge_cases
...
AutoUpdateChecker: Fix Edge Cases
2026-05-05 16:23:16 -07:00
Jordan Woyak
b0eb643c61
Merge pull request #14642 from SuperSamus/cpp-move-fixup-nocubeb
...
Fixup #14565 (compilation with `-DENABLE_CUBEB=OFF`)
2026-05-05 11:45:55 -05:00
Martino Fontana
3c06541718
Fixup #14565 (compilation with -DENABLE_CUBEB=OFF)
2026-05-05 13:50:05 +02:00
Jordan Woyak
e22551eae1
Merge pull request #14641 from Dentomologist/replace_maybe_unused_annotations_with_commented_names
...
Replace some [[maybe_unused]] annotations with commented names
2026-05-03 20:20:07 -05:00
Dentomologist
34646cb9a9
Replace some [[maybe_unused]] annotations with commented names
...
Remove the [[maybe_unused]] annotation from various parameters that are
unconditionally unused and comment out their names instead. This makes
it unambiguous that the variables are unused, while making the remaining
[[maybe_unused]] annotations more reliable indicators that those
variables are in fact used in some contexts.
These parameters are mostly in overridden functions where the override
doesn't need that particular variable.
2026-05-03 17:09:59 -07:00
Jordan Woyak
eb44b64c9e
Merge pull request #14628 from JosJuice/android-remove-hostthreadlock
...
Android: Remove HostThreadLock
2026-05-01 11:39:24 -05:00
Jordan Woyak
1907ffa45d
Merge pull request #14384 from ethanuppal/editdsuservers
...
Config: Add Edit button to DSU server menu
2026-04-30 20:50:17 -05:00
Ethan Uppal
4e55d2518a
Config: Add Edit button to DSU server menu
...
Signed-off-by: Ethan Uppal <113849268+ethanuppal@users.noreply.github.com>
2026-04-30 02:23:41 -04:00
JMC47
ecfaa95e5a
Merge pull request #14543 from spaceage64/add-classic-controller-codes
...
Update/Add cheats for Animal Crossing: City Folk
2026-04-29 19:52:37 -04:00
spaceage64
3944310308
Add Classic Controller support cheats for Animal Crossing (all regions)
2026-04-29 19:44:31 +02:00
JosJuice
c73dde2193
Android: Remove HostThreadLock
...
Follow-up to 068947e . HostThreadLock no longer serves a purpose.
2026-04-29 18:55:18 +02:00
Dentomologist
2b743639d8
Merge pull request #13505 from tygyh/Replace-find-with-contains
...
Source/Core: Replace `find(x) != npos` with `contains(x)`
2026-04-28 17:50:51 -07:00
Dentomologist
725a726174
Merge pull request #14602 from jordan-woyak/show-file-in-folder
...
QtUtils: Add ShowFileInFolder function and make GameList right-click menu actions use it.
2026-04-28 17:29:44 -07:00
JMC47
0e8fa3caca
Merge pull request #14601 from jordan-woyak/mkgp-wheel-fix
...
HW/Triforce/MarioKartGP: Tweak the steering wheel FFB device responses to prevent "Wheel Error" screens.
2026-04-27 16:48:28 -04:00
JMC47
ab6b30afe2
Merge pull request #14582 from jordan-woyak/gamesettings-allow-imm-xfb
...
GameSettings: Allow ImmediateXFB for a handful of games that seem fine with it.
2026-04-27 13:11:42 -04:00
JMC47
d47d5431a1
Merge pull request #14617 from jordan-woyak/gamesettings-secret-rings
...
GameSettings: Set SafeTextureCacheColorSamples for "Sonic and the Secret Rings".
2026-04-27 13:10:15 -04:00
JMC47
77b778302c
Merge pull request #14614 from jordan-woyak/gamesettings-metroid-prime
...
GameSettings: Disable EFBToTexture for "Metroid Prime 2: Dark Echoes (Wii)" to fix the scan visor.
2026-04-27 13:09:20 -04:00
JMC47
6409c5beb3
Merge pull request #13931 from SuperSamus/pikmin-squared-60fps
...
GameINI: Add 60 FPS code for Pikmin Squared
2026-04-27 13:09:00 -04:00
Jordan Woyak
5e1185b979
HW/Triforce/MarioKartGP: Tweak the steering wheel FFB device responses to prevent "Wheel Error" screens.
2026-04-27 11:59:12 -05:00
JMC47
4609cbf35b
Merge pull request #14513 from cristian64/gamesettings_mario_kart_arcade_gp2
...
GameSettings: Add INI files for Mario Kart Arcade GP 2.
2026-04-26 17:38:45 -04:00
OatmealDome
af15769d57
Merge pull request #14569 from Simonx22/android/convert-gamefilecachemanager-to-kotlin
...
Android: Convert GameFileCacheManager to Kotlin
2026-04-26 12:03:57 -04:00
Jordan Woyak
5588fe0022
Merge pull request #14308 from jordan-woyak/character-encoding
...
StringUtil: Make UTF16ToUTF8 and UTF8ToUTF16 use custom encoding/decoding implementation.
2026-04-25 14:59:27 -05:00
Jordan Woyak
9e08900a33
Merge pull request #14620 from Dentomologist/gcadapter_fix_data_races
...
GCAdapter: Fix data races
2026-04-25 14:16:01 -05:00
Dentomologist
ac78e52cf9
GCAdapter: Fix data races
...
Make `s_is_adapter_wanted` and the elements of `s_config_rumble_enabled`
atomic.
The CPU thread reads `s_is_adapter_wanted` and `s_config_rumble_enabled`
in `Output`, while the host thread writes to them in `RefreshConfig`.
The simplest way to trigger this race is to close the `Settings` window
while playing a game with the adapter active.
2026-04-25 11:16:10 -07:00
Jordan Woyak
0363de56fc
Merge pull request #14618 from Dentomologist/stereomode_unabbreviate_variable_names
...
StereoMode: Unabbreviate enum names
2026-04-25 11:55:03 -05:00