Commit Graph

45520 Commits

Author SHA1 Message Date
JosJuice
99531cf509 Don't call OpenModeToAndroid in GBACore
`OpenModeToAndroid("r")` is conceptually wrong, since we're opening a
binary file. It should be either `OpenModeToAndroid("rb")` or just
`"r"`. But either way it evaluates to `"r"`, so this doesn't affect
behavior.
2026-04-01 08:19:53 +02:00
JosJuice
51e83dd7a1 Merge pull request #14535 from jordan-woyak/gbplayer
HW: Implement Game Boy Player.
2026-04-01 07:25:47 +02:00
JosJuice
5167adc8df Android: Add GBA settings
The following settings were excluded:

* Port 1-4 ROM: We're only supporting Game Boy Player for now
* Save in Same Directory as the ROM: Implementation nightmare due to SAF
2026-03-31 23:40:54 -05:00
JosJuice
c542279595 Android: Add SAF support for GBA ROM and BIOS files
SAF for save files is a huge can of worms because they're managed in a
more complicated way than asking the user to select an existing file,
so I won't be touching save files for now.
2026-03-31 23:40:54 -05:00
JosJuice
606bcbe3ed CMakeLists: Enable mGBA on Android 2026-03-31 23:40:54 -05:00
Jordan Woyak
ac0f4390f7 GameSettings: Set a CPU overclock for Game Boy Player to avoid sporadic audio/video stream failures. 2026-03-31 23:40:54 -05:00
Jordan Woyak
a021806700 GameSettings: Add ini file for Game Boy Player to automatically attach the GBPlayer hardware. 2026-03-31 23:40:54 -05:00
Jordan Woyak
5cacbcf6ea DolphinQt: Expose Game Boy Player ROM path on the GameCube config tab. 2026-03-31 23:40:54 -05:00
Jordan Woyak
657a6f0cff State: Increase STATE_VERSION for Game Boy Player. 2026-03-31 23:40:54 -05:00
Vicki Pfau
3ece5f7d7b HW/HSP: Add Game Boy Player device.
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2026-03-30 22:29:11 -05:00
Jordan Woyak
461741e0ea ChunkFile: Add void* version of DoPointer. 2026-03-30 19:02:11 -05:00
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
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