Commit Graph
38929 Commits
Author SHA1 Message Date
JMC47 85e63dc32f Merge pull request #14482 from jordan-woyak/triforce-ic-card
Triforce: ICCardReader and DeckReader improvements.
2026-03-21 23:57:05 -04:00
Dentomologist 6b2a8eff15 AudioPane: Fix WASAPI default device combo selection
Set the default value of `Config::MAIN_WASAPI_DEVICE` to `default`
instead of `Default`. This fixes an issue where `AudioPane`'s `Output
Device` combo would be blank if `WASAPI` was selected and the user had
never changed the value of `Output Device`.

We don't have to worry about backward compatibility with users who have
`Default` in their config because config values aren't written unless
they've been changed at some point from the default, and the combo has
always saved `default` instead of `Default`.

Audio still worked during emulation in this situation because the
fallback for an unrecognized device name is the default device.

To help prevent similar situations in the future references to
`MAIN_WASAPI_DEVICE`'s default value now call `GetDefaultValue` instead
of hardcoding the expected default, or use the new helper function
`Config::IsDefaultValue`.
2026-03-21 15:07:42 -07:00
OatmealDome 0e92a14703 Merge pull request #14488 from Simonx22/android/convert-permissionshandler-to-kotlin
Android: Convert PermissionsHandler to Kotlin
2026-03-21 12:14:53 -04:00
OatmealDome d572931213 Merge pull request #14487 from Simonx22/android/convert-insetshelper-to-kotlin
Android: Convert InsetsHelper to Kotlin
2026-03-21 12:14:40 -04:00
Simonx22 71f40469be Android: Convert SyncChannelJobService to Kotlin 2026-03-21 11:29:09 -04:00
Simonx22 936a828cb7 Android: Convert AppLinkHelper to Kotlin 2026-03-21 11:25:42 -04:00
OatmealDome 26e58ea349 VulkanContext: Drop support for BUG_BROKEN_DISCARD_WITH_EARLY_Z workaround 2026-03-21 11:16:15 -04:00
OatmealDome 5a94e63e42 UberShaderPixel: Fix missing check for framebuffer fetch for BUG_BROKEN_DISCARD_WITH_EARLY_Z workaround 2026-03-21 11:16:15 -04:00
OatmealDome 98ca653774 DriverDetails: Mark BUG_BROKEN_DISCARD_WITH_EARLY_Z as fixed in macOS 14.0+ 2026-03-21 11:16:15 -04:00
OatmealDome 750c6ed705 DriverDetails: Use macOS version as the driver version 2026-03-21 11:16:14 -04:00
OatmealDome 36d8dbc590 CommonFuncsObjC: Make function to fetch the current macOS version common 2026-03-21 11:16:14 -04:00
Simonx22 e878174235 Android: Use version catalog and update dependencies
Migrate plugin and dependency versions to a Gradle version catalog and update dependencies to their latest available versions.
2026-03-21 10:50:34 -04:00
TellowKrinkle 56845b2b93 VideoCommon: Fix no mips hack 2026-03-21 00:35:06 -05:00
Lilly Jade Katrin 529b696fcb Remove AchievementManager ChangeDisc call from Eject
This was causing the achievement runtime to shutdown in the middle
of a disc change even if the resulting disc was valid, which was
causing achievements like the ones in Resident Evil for completing
the entire game in a single session to break midway through.

Also adds a log to notify the user when the disc change is invalid
(e.g. different game inserted).
2026-03-20 21:42:05 -04:00
Simonx22 8ced69e95d Android: Convert GamePropertiesDialog to Kotlin 2026-03-20 15:15:17 -04:00
Simonx22 b5b5b6fb7d Android: Convert StartupHandler to Kotlin 2026-03-20 13:14:06 -04:00
Simonx22 385ac49109 Android: Convert PermissionsHandler to Kotlin 2026-03-20 13:01:54 -04:00
Simonx22 b4933d3799 Android: Convert InsetsHelper to Kotlin 2026-03-20 12:59:27 -04:00
Jordan Woyak 680ee9b65f State: Increase STATE_VERSION. 2026-03-19 21:35:31 -05:00
Jordan Woyak 85400539ba Triforce: ICCardReader and DeckReader improvements.
Significantly rewrote ICCardReader and DeckReader functionality.
Dual IC card slots of VirtuaStriker4 + Gekitou now work.
IC cards are automatically inserted/ejected in VirtuaStriker4 + Gekitou + Avalon.
IC card data is saved to a file.
Avalon deck contents are loaded from a JSON file.
Added IOPorts class to handle bespoke GPIO functionality.
2026-03-19 21:35:31 -05:00
Jordan Woyak b5bc70a6cc Triforce/SerialDevice: Add PassThroughTxBytes function and some minor cleanups. 2026-03-18 22:39:12 -05:00
Jordan Woyak 816e3a654a MagneticCardReader: Simplify checksum logic. 2026-03-18 22:39:12 -05:00
Jordan Woyak 7fbe96d42e SI_DeviceAMBaseboard: Remove "card system" from JVS-IO board features. It doesn't seem to be accurate (or related to the Magnetic/IC cards) and it causes warnings in the JVSIOCommand::CoinInput handler. 2026-03-18 22:39:12 -05:00
Jordan Woyak f074cdb08b Merge pull request #14237 from JulienBernard3383279/gcc-adapter-hotswap
GC adapter fixes (hotplugging, claim retries, Dolphin shutdown)
2026-03-18 16:56:30 -05:00
Jordan Woyak c9c4b79a7e AMMediaboard: Prevent MediaBoardRange end from exceeding the underlying buffer size. 2026-03-18 04:54:05 -05:00
Jordan Woyak 2640f194f7 AMMediaboard: Add a GetSpanForMediaboardAddress function to eliminate the hardcoded network buffer base addresses. 2026-03-18 04:54:05 -05:00
Jordan Woyak de44626d23 Merge pull request #14400 from sepalani/tri-fd-gen
AMMediaboard: Change the way socket descriptors are assigned
2026-03-18 00:34:51 -05:00
OatmealDome a8c5f6ddfc Merge pull request #14481 from JosJuice/retroachievements-change-disc
RetroAchievements: Block loading discs that don't match current title
2026-03-17 17:57:09 -04:00
JMC47 f6bcb31435 Merge pull request #14480 from JosJuice/page-table-fastmem-setting
Disable page table fastmem for TimeSplitters: Future Perfect
2026-03-17 15:56:40 -04:00
JosJuice 6fdd45ddf6 RetroAchievements: Block loading discs that don't match current title 2026-03-17 19:58:28 +01:00
JosJuice 3564a256bf Merge pull request #14478 from JosJuice/wii-menu-headache
Move achievements code out of DVDInterface::SetDisc
2026-03-17 19:07:41 +01:00
Dentomologist 1ab9a867f6 Merge pull request #14396 from cscd98/fmt-fix
fmt: replace <fmt/base.h> with <fmt/format.h> as not available until fmt>=11
2026-03-17 10:34:00 -07:00
JosJuice 989a95a177 Core: Add INI-only setting for page table fastmem 2026-03-17 18:27:05 +01:00
JosJuice e123962bca Move achievements code out of DVDInterface::SetDisc
This should stop AchievementManager::LoadGame from being called for the
default ISO when CBoot::BootUp is booting something other than a disc or
IPL (most notably, the Wii Menu), while still detecting all disc changes
that happen while a disc game is running.
2026-03-17 09:07:34 +01:00
JosJuice 8ac767e032 Merge pull request #14474 from Dentomologist/fifoplayer_fix_screenshot_hang_during_playback
FifoPlayer: Fix hang when taking screenshot during FIFO log playback
2026-03-16 18:47:25 +01:00
JosJuice 94b6251d99 Merge pull request #14473 from Simonx22/android/proguard-keep-rules
Android: Add ProGuard keep rules for classes and methods referenced in IDCache
2026-03-16 18:22:05 +01:00
Simonx22andOatmealDome 08f598f439 Android: Add ProGuard keep rules for classes and methods referenced in IDCache
Co-authored-by: OatmealDome <[email protected]>
2026-03-16 11:58:08 -04:00
Dentomologist 3e7ba69205 FifoPlayer: Fix hang when taking screenshot during FIFO log playback
Don't copy null terminators from the log's `header.gameid` into
`FifoDataFile`'s `m_game_id`.

Doing so would cause an infinite loop in `Core::GenerateScreenshotName`
as the various concatenations and `fmt::format` calls would then
effectively drop all the timestamps and disambiguating arbitrary numbers
since they followed the null terminator in the gameid, and so the
`File::Exists` calls would always return true.

Fixes https://bugs.dolphin-emu.org/issues/14002.
2026-03-16 00:49:38 -07:00
OatmealDome 4dc5ead172 Merge pull request #14469 from OatmealDome/backend-warning
GeneralWidget: Add protections against invalid values in BackendWarning()
2026-03-15 20:13:41 -04:00
OatmealDome d60942d3cb Merge pull request #14461 from Dentomologist/wasapistream_handle_getbuffer_errors
WASAPIStream: Fix crash when GetBuffer call fails
2026-03-15 20:09:28 -04:00
cristian64 3eea3a90b5 Triforce: Check only first byte in region flag.
In some Triforce games (e.g. _F-Zero AX_), the bytes that follow the
region flag in the `boot.id` file (at `0x38`) happen to be `0x00`.
However, in other games (e.g _Mario Kart Arcade GP 2_), it seems the
region flag is padded with `0xFF`.

_Mario Kart Arcade GP 2_ (`boot.id` in the USA version):
```
00000 0000:  42 54 49 44 00 00 01 E0  00 00 00 01 00 00 00 01  BTID.... ........
00000 0010:  FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FF  ........ ........
00000 0020:  47 43 41 4D 00 00 01 C0  07 D3 05 0F 00 00 00 07  GCAM.... ........
00000 0030:  53 42 4E 4C 00 00 00 00  0E FF FF FF FF FF FF FF  SBNL.... ........
                                      -----------
                                           ^
                                           |
                                      region flag
```

When the region flag was tested in `switch` statements (where a single
byte was expected in the `case`s), the test would fail, depending
on the game.

This issue would lead to the wrong calculation of the country in
`VolumeDisc::GetCountry()`, which was then used to build the game ID in
`VolumeDisc::GetGameID()`.

The solution is to test using only the least meaningful byte in the
region flag.

Unexpected game IDs were first noticed with USA version of _Mario Kart
Arcade GP 2_, which was wrongly assigned the same game ID that is given
to the Japan version (i.e. `GNLJ82`). The correct game ID for the USA
version is `GNLE82`.
2026-03-15 18:43:00 +00:00
Simonx22 fd20322f5f Android: Remove version guards for API levels below 23 (Marshmallow) 2026-03-15 14:25:04 -04:00
OatmealDome 66db206e34 Merge pull request #14453 from Simonx22/android/bump-minsdk-to-24
Android: Raise minSdk to 24 (Android 7.0)
2026-03-15 14:22:44 -04:00
OatmealDome aba842c09a GeneralWidget: Add protections against invalid values in BackendWarning() 2026-03-15 14:08:41 -04:00
Craig Carnell 4caddbc12b fmt: change use of fmt/base.h to fmt/format.h as not provided until fmt>=11.0 2026-03-15 08:37:00 +00:00
Dentomologist 2aba231915 System: Use forward declarations in System.h 2026-03-14 10:53:45 -07:00
Mihai BrodschiandJordan Woyak f9c3f06f0a Move PerformanceMetrics from global variable to System
This avoids the static initialization order fiasco between Core and VideoCommon

Co-authored-by: Jordan Woyak <[email protected]>
2026-03-14 16:42:21 +02:00
Sepalani 5bddb6e244 AMMediaboard: Increase NetworkCommandAddress2 range 2026-03-14 12:45:28 +04:00
Sepalani 9cb2229601 AMMediaboard: Change the way socket descriptors are assigned 2026-03-14 12:45:28 +04:00
Dentomologist e8a78ed95f WASAPIStream: Fix crash when GetBuffer call fails
Check the return value of calls to `GetBuffer` and stop the `WASAPI
handler` sound thread if they fail.

This prevents a crash due to a null pointer dereference if `GetBuffer`
is unable to retrieve a buffer, which could be triggered during
emulation by disabling the selected WASAPI output device in the Windows
Sound settings.
2026-03-13 20:29:58 -07:00