Commit Graph

46031 Commits

Author SHA1 Message Date
Jordan Woyak
2f4badc357 HW/GBACore: Add some special handling for GBPlayer.
Set a fixed GBA-sized video buffer.
Don't connect audio output to Mixer.
Don't configure an SIODriver.
2026-03-30 19:02:11 -05:00
Jordan Woyak
19157cacd5 MainSettings: Add a fifth GBA ROM config path for GBPlayer. 2026-03-30 19:02:11 -05:00
JMC47
a95b18211b Merge pull request #14519 from cristian64/registers_widget_font_fixes
DolphinQt: Size adjustments in **Registers** widget based on selected debug font.
2026-03-30 17:18:21 -04:00
Dentomologist
6008526b14 Merge pull request #14530 from JosJuice/create-logs-folder
UICommon: Create User/Logs/ at startup
2026-03-30 11:58:20 -07:00
JosJuice
134f709f59 UICommon: Create User/Logs/ at startup
We used to create User/Logs/ as a side effect of creating
User/Logs/Mail/, but the creation of User/Logs/Mail/ was removed in
8cbfee2, so now nothing is creating User/Logs/ anymore. Let's explicitly
create it.
2026-03-30 20:04:58 +02:00
JMC47
e0fda9bb54 Merge pull request #14528 from jordan-woyak/gba-mixer-fix
AudioCommon/Mixer: Fix integrated GBA sample rate calculation and inverted stereo channels.
2026-03-30 12:34:16 -04:00
JMC47
c93c9dd407 Merge pull request #14526 from jordan-woyak/gbacore-stuff
HW/GBACore: Improvements.
2026-03-30 12:30:37 -04:00
Jordan Woyak
e7e6c0990d AudioCommon/Mixer: Fix integrated GBA sample rate calculation and inverted stereo channels.
Give MixerFifo a variable sample rate dividend.
Handle byte-swapping and stereo channel construction outside of MixerFifo to better handle the custom layouts of each stream.
2026-03-30 08:37:37 -05:00
Jordan Woyak
6ba804416a Merge pull request #14529 from sepalani/am-w
AMMediaboard: Fix sequence-point warning
2026-03-30 07:22:30 -05:00
Sepalani
be0fdd85b9 AMMediaboard: Fix sequence-point warning 2026-03-30 11:10:13 +04:00
Jordan Woyak
84dd2304d6 HW/GBACore: Allow save states to work when the GBA core is stopped. 2026-03-29 11:23:09 -05:00
Jordan Woyak
de0999a19c HW/GBACore: Make the Flush function public and add additional getters. 2026-03-29 11:20:43 -05:00
Jordan Woyak
f103155658 HW/GBACore: Expose the ability to run for a single frame. 2026-03-29 11:15:03 -05:00
Jordan Woyak
1ab57199e6 HW/GBACore: Allow running without the GBA bios. 2026-03-29 11:15:03 -05:00
Jordan Woyak
c197f18a46 HW/GBACore: Enable GB/GBC ROM loading. 2026-03-29 11:15:03 -05:00
JMC47
67f1afeb74 Merge pull request #14517 from jordan-woyak/event-functor
CoreTiming: Change TimedCallback to a Common::MoveOnlyFunction.
2026-03-28 16:19:28 -04:00
Jordan Woyak
14965a5ec0 Merge pull request #14512 from Tilka/zero_stride
VideoCommon: ignore zero-stride EFB/XFB copies
2026-03-27 23:01:04 -05:00
Tillmann Karras
51e488e84a VideoCommon: ignore zero-stride EFB/XFB copies
just clear if requested
2026-03-28 03:05:08 +00:00
JMC47
932769c4e2 Merge pull request #14110 from jordan-woyak/mgba-joybus-threading
HW/GBACore: Adjust joybus interthread communication to use WorkQueueThreadSP.
2026-03-27 20:42:06 -04:00
JMC47
04fd45a960 Merge pull request #14522 from jordan-woyak/hsp-log-desc
LogManager: Remove redundant "(HSP)" in High-Speed Port's log type descritpion.
2026-03-27 13:06:17 -04:00
Jordan Woyak
1b9a01f168 LogManager: Remove redundant "(HSP)" in High-Speed Port's log type descritpion. 2026-03-27 11:24:14 -05:00
cristian64
a051acec91 DolphinQt: Size adjustments in **Registers** widget based on selected debug font.
- Row height is no longer hardcoded to `24`; instead, the height is
  determined by the font height of the currently selected debug font.
- Header height has been reduced (a factor of the font height) as it
  only serves as a column resizer.
- A `OnDebugFontChanged()` slot has been connected to properly update
  the widget on debug font changes.

| Before | After |
| --- | --- |
| <img alt="Registers widget (before)" title="Registers widget (before)" src="https://github.com/user-attachments/assets/8a6644f9-1081-4ac8-9fff-c79ddb73e103" /> | <img alt="Registers widget (after)" title="Registers widget (after)" src="https://github.com/user-attachments/assets/67f799d0-8afd-4081-bb40-3d7a76ddc705" /> |
2026-03-27 09:30:31 +00:00
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
iwubcode
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 <taolas@gmail.com>
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
Sintendo
21c2605298 JitArm64_Integer: subfzex - Optimize a == -1 with in-host carry
Before:
0x12800019   mov    w25, #-0x1                ; =-1
0x7a1903fa   ngcs   w26, w25
0x1a9f37f8   cset   w24, hs
0x390bd3b8   strb   w24, [x29, #0x2f4]

After:
0x1a9f37fa   cset   w26, hs
2026-03-27 01:00:14 +01:00
Sintendo
9be878cd28 JitArm64_Integer: subfzex - Optimize a == 0 with in-host carry
Before:
0x52800019   mov    w25, #0x0                 ; =0
0x7a1903f9   ngcs   w25, w25
0x1a9f37f5   cset   w21, hs
0x390bd3b5   strb   w21, [x29, #0x2f4]

After:
0x5a9f23f9   csetm  w25, lo
2026-03-27 00:53:30 +01: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
cristian64
f55001b9d9 GameSettings: Add INI files for Mario Kart Arcade GP 2.
INI files for both known regions of _Mario Kart Arcade GP 2_ (Triforce)
have been added to the `GameSettings` directory:

| Game ID | Region |    Revision Date    |
| ------- | ------ | ------------------- |
| GNLE82  | NTSC-U | 2007/02/07 02:47:24 |
| GNLJ82  | NTSC-J | 2007/02/06 20:29:25 |

The files contain Action Replay and Gecko cheat codes. Some of the cheat
codes have been sourced from the Internet; others have been developed by
the author of this change.

> [!IMPORTANT]
> Triforce games may have had multiple revisions for a given game region
> after the original release, and Dolphin cannot distinguish them at
> this time. Cheat codes are developed for one revision only, and cannot
> work with other revisions.
>
> For this reason, every cheat code name is provided with a prefix that
> states the revision date of the target game revision. It will be up to
> the user to enable the cheat codes for their correct game revision and
> region. The revision date for _Mario Kart Arcade GP 2_ games can be
> seen in the SegaBoot menu, under the **ENTER GAME TEST > OTHERS**
> screen.

> [!NOTE]
> Prior to issue #14470, the game ID for the NTSC-U region was
> incorrectly assigned the game ID of the NTSC-J region due to an issue
> in how the region flag in boot.id files was treated. This issue
> blocked the addition of the INI files until the issue was resolved (a
> region mismatch would cause fatal errors if cheat codes for the wrong
> version were enabled in Dolphin).

> [!CAUTION]
> There have been seen game dumps in the wild that, even though their
> real region is NTSC-U, the region flag in their `boot.id` file is
> `0x02` (NTSC-J), instead of `0x0E` (NTSC-U).
2026-03-26 19:03:02 +00: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