Commit Graph
45540 Commits
Author SHA1 Message Date
iwubcode 306daff517 Data: update De Blob 1 and 2 to use explicit bloom target
These two games have some strange rendering behaviors and therefore can't use the generic bloom actions.

These games have several bloom EFB copies and they draw that on top of an already rendered game.  After doing that, they render some other draw calls to "fixup" the bloom that it drew to effectively remove it.  This isn't uncommon but there is one special thing these games do...they use a RAM EFB copy for the 'fixup'.  This means when playing with high IR, the game will look blurry in specific parts of the screen where the game was attempting to fix the copy!

Bloom removal has addressed this by removing all the draw calls related to the bloom, including the fixup draws.  The user then needs to turn on 'EFB Copy To Texture Only' for the best visuals (De Blob 2 in particular is broken without this) as the default settings.

Bloom blurred will need special attention too but Dolphin doesn't currently have enough functionality to handle it.
2026-03-26 20:14:40 -05:00
iwubcode 41adc6fba8 Data: update Sonic Colors bloom definitions to remove repeats, thanks FrankyBuster 2026-03-26 20:14:40 -05:00
iwubcode 7d683b02ed Data: update Pandora's Tower Bloom and DOF definitions 2026-03-26 20:14:40 -05:00
iwubcode d8c8a04ab8 Data: add a blurred DOF feature 2026-03-26 20:14:40 -05:00
iwubcode db72877520 Data: add more bloom graphics mods 2026-03-26 20:14:40 -05:00
iwubcodeandTryTwo ace082af23 Data: provide a blur mod for games with bloom
Add a mod for all games with bloom targets that blurs the bloom based on resolution using a custom material.  The shader exposes bloom brightness and the amount of spread through uniforms (not exposed in the UI yet).

The original shader logic was done by TryTwo.  This shader was reworked for graphics mods and cleaned up slightly.

Co-authored-by: TryTwo <[email protected]>
2026-03-26 20:13:16 -05:00
iwubcode 6b7a9e6ac3 VideoCommon: allow graphics mods to be added to sub folders 2026-03-26 20:13:16 -05:00
iwubcode 9cde551e29 VideoCommon: watch the user and system graphics mods directories for modified assets 2026-03-26 20:13:16 -05:00
iwubcode 1f72403ec7 VideoCommon: optionally apply materials to EFBs
After an EFB operation is turned into a texture, if there is a graphics mod action that provides a custom material, update the EFB texture with the material
2026-03-26 20:13:16 -05:00
iwubcode 7bfd43eb1a VideoCommon: update CustomPipelineAction to get a Material when an EFB is received 2026-03-26 20:13:16 -05:00
iwubcode 2d8f955851 VideoCommon: enhance 'CustomResourceManager' for post processing
This expands the interface of 'CustomResourceManager' to get a Material for post processing a frame buffer (currently EFB).  The flow is similar to the normal draw material but distinguishes itself by not needing a UID.  The full shader is much simpler than the draw shader and is currently put inline with the shader resource.
2026-03-26 20:13:16 -05:00
Jordan Woyak c658e7678b HW/SI: Replace DeviceEventCallback with a lambda. 2026-03-26 19:37:33 -05:00
Jordan Woyak 670a5df7ce CoreTiming: Change TimedCallback to a Common::MoveOnlyFunction. 2026-03-26 19:29:25 -05:00
iwubcode 6ba2d2e081 VideoCommon: update graphics mod action interface
* Add a 'AfterEFB' function to graphics mod action that can return a Material
* Rename previous EFB graphics mod function to 'BeforeEFB' to differentiate from 'AfterEFB'
* Rename previous XFB graphics mod function to 'BeforeXFB' to mirror EFB
2026-03-26 18:52:01 -05:00
Jordan Woyak efa0140791 State: Increase STATE_VERSION. 2026-03-26 16:04:21 -05:00
Jordan Woyak d76757bba6 HW/GBACore: Adjust joybus interthread communication to use WorkQueueThreadSP. 2026-03-26 16:03:59 -05:00
Jordan Woyak 1ee8c5a8f1 Common/WorkQueueThread: Make IsRunning function public. 2026-03-26 16:03:59 -05:00
Dentomologist d16004c371 Merge pull request #14446 from Dentomologist/gamelist_add_game_count
GameList: Add status bar with game count
2026-03-26 14:00:52 -07:00
JMC47 d95445727b Merge pull request #14501 from jordan-woyak/triforce-jvs-io
Triforce: Rewrite JVS IO board emulation.
2026-03-26 14:53:24 -04:00
Jordan Woyak a3f4674bb7 Merge pull request #14511 from Ma-Rang/pr/nogui-escape-win32
NoGUI: Add Escape key to request emulation shutdown on Windows
2026-03-26 07:06:36 -05:00
Jordan Woyak 02911dbc42 State: Increase STATE_VERSION. 2026-03-26 07:02:19 -05:00
Jordan Woyak 5ec42165b7 Triforce: Rewrite JVS IO board emulation.
Moved JVS IO emulation from SI_DeviceAMBaseboard into new JVSIOBoard class.
Sega/Namco board-specific functionality is handled by derived JVSIOBoard classes.
Game input is now sourced from IOPorts rather than being hard coded into JVS IO handlers.
SI_DeviceAMBaseboard: Use IOPorts for status switch input.
2026-03-26 07:02:19 -05:00
Jordan Woyak 5c912e881e IOPorts: Add additional functionality to handle analog input, coin input, et al.
Created IOAdapter classes for FZeroAX games.
Created SerialDevice classes for MarioKartGP and FZeroAX FFB steering wheels.
Added game-specific input handling to the various IOAdapter classes.
2026-03-26 06:38:31 -05:00
Jordan Woyak 49518164bb Triforce/Touchscreen: Fix LOG type. 2026-03-26 06:38:31 -05:00
JMC47 3c8a72eb18 Merge pull request #14470 from cristian64/triforce_volume_region_fix
Triforce: Check only first byte in region flag.
2026-03-25 17:47:20 -04:00
JMC47 88b7ad74d9 Merge pull request #14462 from jordan-woyak/mediaboard-span
AMMediaboard: Add GetSpanForMediaboardAddress function to eliminate hardcoded network buffer base addresses.
2026-03-25 13:45:47 -04:00
JMC47 dcbcfed12a Merge pull request #14499 from JosJuice/gpu-desync-no-report
Remove "please report it to the developers" from unknown opcode message
2026-03-25 13:31:55 -04:00
Ma-Rang 7ef7b6e3e9 NoGUI: Add Escape key to close emulation on Windows
PlatformX11 already handles XK_Escape to trigger RequestShutdown().
Add the equivalent WM_KEYDOWN / VK_ESCAPE handler to PlatformWin32
for parity.
2026-03-25 08:56:29 -05:00
Dentomologist 81192d96cf Merge pull request #14498 from JosJuice/invalid-access-wording
Reword the invalid read/write panic alert
2026-03-24 20:07:47 -07:00
Simonx22 dbeca0d134 Android: Refactor SyncProgramsJobService
Changes:
- Convert SyncProgramsJobService from Java to Kotlin.
- Replace AsyncTask/executor lifecycle handling with coroutine-based job execution and cancellation.
- Stop using restricted androidx.tvprovider builder APIs.
2026-03-24 23:05:00 -04:00
Dentomologist 0af544b84c Merge pull request #14502 from DankRank/scummvm-texcache
GameINI: Fix animation stutter in Mistic Software ScummVM titles
2026-03-24 17:44:10 -07:00
OatmealDome 59fae214af Merge pull request #14507 from Simonx22/android/permissionshandler-jni-keep
Android: Add Keep to JNI-exposed PermissionsHandler methods
2026-03-24 19:40:56 -04:00
Simonx22 9085d649dc Android: Add Keep annotation to JNI-exposed PermissionsHandler methods
This fixes an oversight from https://github.com/dolphin-emu/dolphin/pull/14488 where I forgot to add `@Keep` to JNI-exposed methods. R8 tried to optimize it and thought those methods were unused.
2026-03-24 18:42:19 -04:00
JosJuice ff4a7c8a95 Reword the invalid read/write panic alert
Some users seem to be under the impression that the panic alert is
saying that enabling MMU will fix the issue, but that's not what it
actually says. Let's try to make this a bit clearer.
2026-03-24 22:25:01 +01:00
JosJuice cfa6ec806e Merge pull request #14504 from Simonx22/android/agp-r8-bug
Android: Pin R8 9.1.34 to fix release minify crash
2026-03-24 21:39:05 +01:00
Simonx22andOatmealDome 336f604b3a Android: Pin R8 9.1.34 to fix release minify crash
Override AGP-bundled R8 in settings.gradle.kts:
- classpath("com.android.tools:r8:9.1.34") from r8-releases/raw

This resolves :app:minifyReleaseWithR8 failing with:
java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 0

Bug report: https://issuetracker.google.com/issues/495458806

Co-Authored-By: OatmealDome <[email protected]>
2026-03-24 07:50:45 -04:00
Jordan Woyak 2b6667a98d Merge pull request #14505 from Dentomologist/audiocommon_use_left_const_for_nonpointer_variables
AudioCommon: Use left const for non-pointer variables
2026-03-24 00:25:53 -05:00
Dentomologist f5dfb7e3d3 AudioCommon: Use left const for non-pointer variables 2026-03-23 16:30:30 -07:00
Sintendo f6a67aa6e7 Use more std::span arguments 2026-03-23 23:55:09 +01:00
Jordan Woyak c05b231015 Merge pull request #14496 from Dentomologist/audiopane_fix_wasapi_default_device_combo_selection
AudioPane: Fix WASAPI default device combo selection
2026-03-23 15:27:29 -05:00
Egor 2fb10fb1c0 GameINI: Fix animation stutter in Mistic Software ScummVM titles
This is fixed by setting Texture Cache Accuracy to Safe.

Affected titles:
- R2F Freddi Fish: Kelp Seed Mystery
- RDL Spy Fox in Dry Cereal
- RJQ Pajama Sam: Don't Fear the Dark
2026-03-23 18:57:13 +02:00
Jordan Woyak cddffd2e2a Merge pull request #14497 from JosJuice/linux-gba-select
Fix default GBA Select binding on Linux
2026-03-22 16:11:25 -05:00
OatmealDome 6608bca694 Merge pull request #14476 from Simonx22/android/version-catalog-latest-deps
Android: Use version catalog and update dependencies
2026-03-22 12:13:10 -04:00
OatmealDome 9ba08f70bc Merge pull request #14489 from Simonx22/android/convert-applinkhelper-to-kotlin
Android: Convert AppLinkHelper to Kotlin
2026-03-22 12:12:50 -04:00
OatmealDome 125bc173bb Merge pull request #14491 from Simonx22/android/convert-syncchanneljobservice-to-kotlin
Android: Convert SyncChannelJobService to Kotlin
2026-03-22 12:12:41 -04:00
OatmealDome 4a813a019b Merge pull request #14495 from Simonx22/android/convert-startuphandler-to-kotlin
Android: Convert StartupHandler to Kotlin
2026-03-22 12:12:30 -04:00
JosJuice f2055fe0b8 Remove "please report it to the developers" from unknown opcode message
I think we've gotten all the useful reports we can get from this now.
Nowadays we're just getting repeated reports of issues we already know
about, like https://bugs.dolphin-emu.org/issues/12321.
2026-03-22 14:23:46 +01:00
JosJuice 5af4fedd92 Fix default GBA Select binding on Linux 2026-03-22 13:51:01 +01:00
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