Commit graph

35992 commits

Author SHA1 Message Date
JMC47
c12e4e8ee0
Merge pull request #10244 from phire/ban-timetravel
Delay singlecore gpu interrupts; Fixes Bomberman Jetters in single core mode.
2021-12-02 07:21:41 -05:00
Scott Mansell
26e4e67d45
Merge pull request #10258 from Pokechu22/fifoplayer-efb-clear
FifoPlayer: Clear EFB before starting playback
2021-12-03 00:22:27 +13:00
Pokechu22
5af18773bf FifoPlayer: Clear EFB before starting playback
This fixes the bad rendering on the first frame when using the software renderer: the software renderer's Z buffer started out at 0, but most games clear it to 0xffffff instead; this means that things don't render correctly except for in the regions where the screen was cleared by an EFB copy earlier in the frame.
2021-12-01 19:09:24 -08:00
Mai M
fc1ed33c11
Merge pull request #10250 from JosJuice/i18n-save-game
DolphinQt: Add i18n comment for "Save Game"
2021-11-30 16:54:20 -05:00
Scott Mansell
57d251c2f0
Merge pull request #10242 from smitdylan2001/master
Fixed Gamecube naming to GameCube
2021-11-30 06:58:55 +13:00
JosJuice
1e212d6212
Merge pull request #10245 from Pokechu22/libpng-errors
Fix saving RGBA images
2021-11-27 21:22:57 +01:00
JosJuice
6a1a7efdd5 DolphinQt: Add i18n comment for "Save Game"
It's very easy to assume the "save" in this string is a verb.
2021-11-27 20:27:33 +01:00
Pokechu22
8cf841ecc7 Fix saving RGBA images
PNG_FORMAT_RGB and PNG_COLOR_TYPE_RGB both evaluate to 2, but PNG_FORMAT_RGBA evaluates to 3 while PNG_COLOR_TYPE_RGBA evaluates to 6; the bit indicating a palette is 1 while the bit indicating alpha is 4.
2021-11-24 14:56:12 -08:00
Pokechu22
99e589cc98 Log libpng warnings and errors 2021-11-24 14:56:12 -08:00
Scott Mansell
676c500cdc
Merge pull request #10214 from OatmealDome/mvk-better-incremental
MoltenVK: Don't run fetchDependencies unnecessarily
2021-11-25 11:47:36 +13:00
Scott Mansell
f5c550e9cb Delay singlecore gpu interrupts
Fixes Bomberman Jetters in single core mode.

When single core mode pauses the CPU to execute the GPU
FIFO it greedily executes the whole thing. Before this commit,
Finish and Token interrupts would happen instantly, not even
taking into account how long the current FIFO window has
taken to execute. The interrupts would be effectively backdated
to the start of this execution window.

This commit does two things: It pipes the current FIFO window
execution time though to the interrupt scheduling and it enforces
a minimum delay of 500 cycles before an interrupt will be fired.
2021-11-25 11:11:01 +13:00
OatmealDome
730df73cb3 MoltenVK: Don't run fetchDependencies unnecessarily 2021-11-24 16:56:33 -05:00
JMC47
55e331836d
Merge pull request #10243 from JosJuice/jitarm64-push-size
JitArm64: Fix incorrect push size calculation
2021-11-24 16:53:06 -05:00
JosJuice
83d2d55aab JitArm64: Fix incorrect push size calculation 2021-11-24 22:39:54 +01:00
Dylan Smit
9de7ef6d8d Fix improper naming
I'm so sorry
2021-11-24 17:04:30 +01:00
Léo Lam
aa5cb35c86
Merge pull request #10143 from Pokechu22/png-compression-level
Add option for setting the PNG zlib compression level
2021-11-23 16:40:34 +01:00
Léo Lam
e1e3db13ba
Merge pull request #10228 from Filoppi/fix_android_input_deadlock
ControllerInterface: fix UpdateReferences() deadlock
2021-11-23 16:27:03 +01:00
Léo Lam
ba62019eb5
Merge pull request #10235 from AdmiralCurtiss/netplay-save-sync-boot
Netplay: Fix possible Wii save restore race condition between Netplay and CPU threads on game shutdown by making the Wii Save Sync data part of the BootParameters.
2021-11-23 16:19:56 +01:00
Mai M
cc9a75a87b
Merge pull request #10230 from JMC47/redsteel2
Compatibility Settings for Red Steel 2
2021-11-21 21:07:33 -05:00
Mai M
15ff70baba
Merge pull request #10231 from JosJuice/android-dir-init-livedata
Android: Make DirectoryInitialization use LiveData
2021-11-21 21:07:17 -05:00
Admiral H. Curtiss
6350c93ae1
NetPlay: Pass Wii FS sync data directly to game boot logic instead of indirectly through globals. 2021-11-22 01:33:46 +01:00
Admiral H. Curtiss
894773f607
Core/Boot: Add Wii FS sync data (for temp NAND/netplay) to BootSessionData and handle it in the boot and shutdown logic. 2021-11-22 01:33:45 +01:00
Admiral H. Curtiss
7b776f3769
NetPlay: Refactor game boot code path to allow passing BootSessionData through it. 2021-11-22 00:52:15 +01:00
Admiral H. Curtiss
83ad84061e
Core/Boot: Refactor storage of boot-to-savestate data into a separate class. 2021-11-22 00:35:35 +01:00
Léo Lam
d5b917a6c2
Merge pull request #10237 from AdmiralCurtiss/netplay-server-crash
NetPlayServer: Clear remaining m_players when netplay thread ends so that their destructors can run while the ENetHost still exists.
2021-11-21 22:04:12 +01:00
JMC47
37247a51a7
Merge pull request #10240 from AdmiralCurtiss/mgba-save-import-export
GBA: Add import and export save options to context menu.
2021-11-21 15:55:55 -05:00
Admiral H. Curtiss
8488ff6884
GBA: Add import and export save options to context menu. 2021-11-21 18:08:23 +01:00
Mai M
05ecff199f
Merge pull request #10232 from JosJuice/android-minify
Android: Enable R8 code shrinking
2021-11-21 04:50:03 -05:00
Mai M
138847f98e
Merge pull request #10239 from JosJuice/android-mmu
Android: Add MMU setting to GUI
2021-11-21 04:49:07 -05:00
JosJuice
77aa2cd04e Android: Add MMU setting to GUI
Now that we have fast MMU emulation on AArch64, there's no
reason to keep excluding this from the GUI like we've been doing.
2021-11-21 09:38:56 +01:00
JMC47
e716349426
Merge pull request #10238 from PatrickFerry/add-mmu-games
Gameini: Enable MMU for some games
2021-11-21 01:35:15 -05:00
Patrick Ferry
f8ea167b1f GameSettings: Enable MMU for We Love Golf! 2021-11-21 05:20:30 +00:00
Patrick Ferry
715a80ef57 GameSettings: Enable MMU and Set Texture Cache Accuracy to "Medium" for 007: From Russia with Love 2021-11-21 05:19:18 +00:00
JMC47
d2ca1037d9
Merge pull request #10162 from JosJuice/jitarm64-memcheck
JitArm64: Implement memcheck
2021-11-20 23:36:43 -05:00
Admiral H. Curtiss
e2c4cf49e2
NetPlayServer: Clear remaining m_players when netplay thread ends so that their destructors can run while the ENetHost still exists. 2021-11-21 00:18:44 +01:00
JosJuice
5490797867 JitArm64: Implement memcheck for psq_lXX/psq_stXX with update 2021-11-20 23:39:27 +01:00
JosJuice
61c73061e9 JitArm64: Implement memcheck for psq_lXX/psq_stXX without update 2021-11-20 23:39:27 +01:00
JosJuice
9e43796912 JitArm64: Allow passing temp FPR to EmitMemcheck
Small optimization. If the caller already has an FPR that
it isn't using, might as well pass it on to fpr.Flush.
2021-11-20 23:39:27 +01:00
JosJuice
89301b1f91 JitArm64: Implement memcheck for lfXX/stfXX with update 2021-11-20 23:39:27 +01:00
JosJuice
8c96e60cd1 JitArm64: Implement memcheck for lfXX/stfXX without update 2021-11-20 23:39:27 +01:00
JosJuice
1c8ddcdda1 JitArm64: Implement memcheck for dcbz 2021-11-20 23:39:27 +01:00
JosJuice
4fe15e788f JitArm64: Implement memcheck for lmw/stmw 2021-11-20 23:39:27 +01:00
JosJuice
b4ffdce800 JitArm64: Implement memcheck for lXX/stX with update 2021-11-20 23:39:27 +01:00
JosJuice
662ae570a0 JitArm64: Make EmitBackpatchRoutine support saving W0
Being able to preserve the address register is useful for the
next commit, and W0 is the address register used for loads. Saving
the address register used for stores, W1, was already supported.
2021-11-20 23:39:27 +01:00
JosJuice
e316d0e94f JitArm64: Don't update dest reg when load triggers exception, part 2
If a host register has been newly allocated for the destination
guest register, and the load triggers an exception, we must make
sure to not write the old value in the host register into ppcState.
This commit achieves this by not marking the register as dirty
until after the load is done.
2021-11-20 23:39:26 +01:00
JosJuice
96190887ce JitArm64: Don't update dest reg when load triggers exception
Fixes a problem introduced in the previous commit.
2021-11-20 23:39:26 +01:00
JosJuice
ab1ceee16f JitArm64: Implement memcheck for lXX/stX without update 2021-11-20 23:39:26 +01:00
JosJuice
8c905e152a JitArm64: Make WriteConditionalExceptionExit more flexible
You can now specify an already allocated register for it to use as a
temporary register, and it also supports being called while in farcode.
2021-11-20 23:37:02 +01:00
JMC47
e5a4a86672
Merge pull request #10055 from JosJuice/jitarm64-reuse-memory
JitArm64: Codegen space reuse
2021-11-20 17:35:24 -05:00
Filoppi
1badceb455 ControllerInterface: fix UpdateReferences() deadlock
Removed useless locks to DeviceContainer::m_devices_mutex, as they were all already protected by m_devices_population_mutex.
We have no interest in blocking other threads that were potentially reading devices at the same time so this seems fine.
This simplifies the code, and I've adjusted a few comments which mentioned possible deadlock that should now be totally gone.

The deadlock could have happen if a thread directly called EmulatedController::UpdateReferences(), while another another thread also reached EmulatedController::UpdateReferences() within a call to ControllerInterface::UpdateDevices(), as the mentioned function locked both the DeviceContainer::m_devices_mutex and s_get_state_mutex at the same time.

The deadlock was frequent on game emulation startup on Android, due to the UpdateReferences() call in InputConfig::LoadConfig() and the UI thread triggering calls to ControllerInterface::UpdateDevices().
It could also have happened on Desktop if a user pressed "Refresh Devices" manually in the UI while the input config was loading.

Also brought some UpdateReferences() comments and thread safety fixes from https://github.com/dolphin-emu/dolphin/pull/9489
2021-11-20 16:54:36 +02:00