summaryrefslogtreecommitdiff
path: root/Source/Android/jni
AgeCommit message (Collapse)Author
7 daysReplace string concatination with `fmt::format`Dr. Dystopia
2026-05-19lint formattingTom Pratt
2026-05-19WithSession helper functionTom Pratt
Handles the repeated boiler plate of using a weak reference to NetplaySession from NetplayUICallbacks
2026-05-19Pass immutable games list to NetplayUICallbacksTom Pratt
Remove corresponding jni config. Rename Netplay to NetplaySession in jni config to match new kotlin name.
2026-05-19Use unique_ptr when creating netplay client / serverTom Pratt
2026-05-19Fix netplay license headersTom Pratt
2026-05-19Implement DoAllPlayersHaveGame() checkTom Pratt
2026-05-19Add network mode picker for hostTom Pratt
2026-05-19Add host buffer settings for fair input delay modeTom Pratt
Also rename max buffer to client buffer for better consistency with settings and c++
2026-05-19Handle traversal state changes and errorsTom Pratt
Traversal connections show in the joining info UI. Non fatal errors show the retry button. Fatal errors end the netplay session.
2026-05-19Show joining info for local and external IP addressesTom Pratt
Doesn't support traversal yet
2026-05-19Add ability to choose game when hostingTom Pratt
Also fix bottom sheets so they survive rotation
2026-05-19Create NetPlayServer and start gameTom Pratt
2026-05-19Implement OnMsgPowerButtonTom Pratt
2026-05-19Game digest progress dialogTom Pratt
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-19Handle desync messagesTom Pratt
Show them in the chat window and also in a toast during game play.
2026-05-19Make NetplaySession not a singletonTom Pratt
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-19Use existing settings API instead of custom jni callsTom Pratt
2026-05-19Show save transfer progressTom Pratt
When transferring saves from the host. Equivalent of ChunkedProgressDialog in QT.
2026-05-19Release boot session data during Netplay cleanupTom Pratt
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-19Implement OnConnectionLost, show a dialog on the main netplay screen forcing ↵Tom Pratt
the user to exit
2026-05-19Implement StopGame callback and use it to finish the emulation activityTom Pratt
2026-05-19Settings refactorTom Pratt
Remove the big saveSetup function and set individual settings immediately after being changed in the UI. Group them all under Netplay.Settings
2026-05-19Max bufferTom Pratt
2026-05-19Implement more NetPlayUICallbacksTom Pratt
Includes chat, game changes, pad buffer changes and host input authority. Merges them all into the chat window.
2026-05-19Implement player listTom Pratt
2026-05-19Show client connection errors and handle connection resultTom Pratt
If result is a success sent event to launch the next netplay screen. if it fails, clear up the netplay client
2026-05-19Store netplay BootSessionData and use it to run the netplay gameTom Pratt
2026-05-19Pass game list to NetPlayUICallbacks and implement OnMsgChangeGame, ↵Tom Pratt
OnMsgStartGame, FindGameFile
2026-05-19Add NetPlayClient join and stub NetPlayUICallbacksTom Pratt
2026-05-19Add Netplay settings JNI layer and wire up NetplaySetupViewModelTom Pratt
2026-05-08Android: Move alert message log from Kotlin to C++JosJuice
For some reason, NativeLibrary.kt calling Log for the alert message text makes Dolphin die with a JNI error. Supposedly the jstring passed to the logging function is invalid. I don't understand why, because the dialog that we show right afterwards is able to read the string just fine. The error happens even if I pass the string directly to Log without prepending any extra text. There's no real downside to having the logging in C++ instead of Kotlin, so let's move it to C++ to avoid the JNI error.
2026-04-29Android: Remove HostThreadLockJosJuice
Follow-up to 068947e. HostThreadLock no longer serves a purpose.
2026-04-18GCAdapter: Automatically start and stop threadJosJuice
This keeps the logic encapsulated inside GCAdapter.cpp so callers don't have to think about it.
2026-04-04Improve NAND import progress dialogTillmann Karras
Now with cancel button and an actual progress bar. For simplicity, we do two passes on the progress bar, one for loading the NAND into memory and one for extracting it. The user directory is likely on an SSD, making the extraction pass invisibly fast.
2026-03-03DolphinQt: Improve Gecko code download failure messageSimonx22
2026-02-14Explicitly transfer control of SYSCONF to emulated systemJosJuice
The functions SaveToSYSCONF and LoadFromSYSCONF contain checks for whether emulation is running. The intent of this is that when we're emulating a Wii, the emulated system may write to SYSCONF whenever it likes and does not expect anything else to write to SYSCONF, so the host code shouldn't access SYSCONF while emulation is ongoing. However, Core::IsRunning is an imperfect proxy for whether we've handed over control of SYSCONF to the emulated system yet, as the actual handover happens at a slightly different point in time than when the emulation state is changed. This usually isn't a problem, but in theory it could be a determinism problem if a setting is changed right as emulation is starting, or it could cause the emulated software to briefly misbehave if a setting is changed right as emulation is stopping. Things got worse in 72cf2bdb87f09deff22e1085de3290126aa4ad05 when I replaced the Core::IsRunning calls with !Core::IsUninitialized. With IsRunning, there was be a period of time where SYSCONF should have been protected but wasn't. With !IsUninitialized, there was a period of time where SYSCONF shouldn't have been protected but was, and crucially, this period of time included the moments where we do setup and teardown of the emulated NAND, which broke transferring SYSCONF settings between the host and the guest. 72cf2bdb87f09deff22e1085de3290126aa4ad05 was reverted because of this. This commit adds a flag that we explicitly flip when control is handed over to or from the emulated system. This protects the SYSCONF file for exactly as long as is needed.
2026-02-03Merge pull request #13594 from jordan-woyak/state-cleanupsJordan Woyak
State: Simplify interthread communication and general cleanups.
2026-01-24Remove VectorToJStringArraySintendo
2026-01-24Common/FileSearch: Refactor DoFileSearchSintendo
2026-01-19State: Simplify interthread communication and cleanups. Save/Load calls are ↵Jordan Woyak
now always non-blocking for the caller, but appropriately block the CPU thread as needed.
2026-01-19Android: Detect when native code should flush unsaved dataJosJuice
2026-01-09c++23: Replace Common::ToUnderlying with std::to_underlyingJoshua Vandaële
Requires at least GCC 11, Clang 13, MSVC 19.30 (VS2022 17.0), or AppleClang 13.1.6 (XCode 13.3).
2025-11-22Merge pull request #13583 from LillyJadeKatrin/retroachievements-androidJosJuice
Android Support for RetroAchievements
2025-11-18RetroAchievements - Android login callbackLillyJadeKatrin
Modify the RetroAchievements login code in Android to pass in a callback, pop a message if login fails, close the login box if it succeeds.
2025-11-17Merge pull request #14097 from Simonx22/android/network-helper-kotlinJosJuice
Android: Convert NetworkHelper to Kotlin
2025-11-16Android Achievements - Hardcore disablesLillyJadeKatrin
Disables state loading and emulation speeds below 100% when RetroAchievements hardcore mode is enabled.
2025-11-16Add login to achievement settingsLillyJadeKatrin
2025-11-16Add Achievements submenu to Android settingsLillyJadeKatrin
2025-11-16Merge pull request #13689 from JosJuice/lock-core-any-threadJosJuice
Core: Let any thread call previously host-thread-only functions