Tom Pratt
08cd85cf8b
Merge fb03278049 into d19952cc11
2026-05-08 15:15:48 +02:00
Dentomologist
d19952cc11
Merge pull request #14634 from JosJuice/jitarm64-msr-dr-bit
...
JitArm64: Fix DR check in MSRUpdated
2026-05-07 17:21:50 -07:00
Dentomologist
30a20d75d2
Merge pull request #14629 from Simonx22/android/convert-tvutil-to-kotlin
...
Android: Convert TvUtil to Kotlin
2026-05-07 13:23:48 -07:00
Tom Pratt
fb03278049
Update compose dependencies
...
Was using 2025 instead of 2026! Fixed some buggy bottom sheet behaviour.
Minor tidying of the chat UI in the bottom sheet
2026-05-07 16:35:18 +02:00
Tom Pratt
37e34af96a
Implement DoAllPlayersHaveGame() check
2026-05-07 11:22:24 +02:00
Tom Pratt
c0e44478a0
Add network mode picker for host
2026-05-07 11:22:24 +02:00
Tom Pratt
5d54c161b7
Add host buffer settings for fair input delay mode
...
Also rename max buffer to client buffer for better consistency with settings and c++
2026-05-07 11:22:24 +02:00
Tom Pratt
f38f61a6a0
Handle traversal state changes and errors
...
Traversal connections show in the joining info UI.
Non fatal errors show the retry button.
Fatal errors end the netplay session.
2026-05-07 11:22:24 +02:00
Tom Pratt
4a52be0960
Show joining info for local and external IP addresses
...
Doesn't support traversal yet
2026-05-07 11:22:24 +02:00
Tom Pratt
3e34012148
Separate out GetExternalIPAddress helper function
...
De-duplicates the two inline implementations and prepares it for use from Android.
2026-05-07 11:22:24 +02:00
Tom Pratt
39d17b2faf
Add ability to choose game when hosting
...
Also fix bottom sheets so they survive rotation
2026-05-07 11:22:24 +02:00
Tom Pratt
309090520e
Send own messages to chat
...
A player's own messages don't come back via the server.
2026-05-07 11:22:24 +02:00
Tom Pratt
fa5facfdfb
Create NetPlayServer and start game
2026-05-07 11:22:24 +02:00
Tom Pratt
ccce2b2e9a
Hosting UI
2026-05-07 11:22:24 +02:00
Tom Pratt
7ea7e638bd
Implement OnMsgPowerButton
2026-05-07 11:22:24 +02:00
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
JosJuice
f09a736f14
Merge pull request #14645 from Dentomologist/msghandler_use_more_suitable_log_levels
...
MsgHandler: Use LogLevel matching MsgType for alerts
2026-05-07 11:07:41 +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
8afc696a1e
Merge pull request #14644 from tom-pratt/fix_do_all_players_have_game
...
DoAllPlayersHaveSameGame returns correct result instead of always true
2026-05-06 15:07:33 -07:00
Dentomologist
cf20cdabd4
Merge pull request #14632 from vladfi1/upstream-pipe-inputs-fix
...
Unconditionally lock in ControllerInterface::UpdateInput
2026-05-06 13:40:16 -07:00
Vlad Firoiu
20718de37e
Unconditionally lock in ControllerInterface::UpdateInput.
2026-05-06 15:57:03 -04:00
Dentomologist
dfda04c4e4
MsgHandler: Use log level matching MsgType for alerts
...
When calling `ShowMessageAlert` with a given `MsgType`, log the alert
with a `LogLevel` matching the `MsgType` instead of always using
`LogLevel::LERROR`.
2026-05-06 12:44:43 -07:00
Tom Pratt
bedb283d93
DoAllPlayersHaveSameGame returns correct result instead of always true
...
SendGameStatus() was writing SyncIdentifierComparison as a u32 but the server reads it as a u8 enum, so the server always gets 0 (SameGame). This bug was introduced in commit 66276ac .
2026-05-06 14:06:01 +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