Commit Graph
100 Commits
Author SHA1 Message Date
JosJuice 80771ec89e Merge pull request #10399 from Pokechu22/ubershader-fog-typo
UberShaderPixel: Fix typo in fog calculation
2022-01-27 22:59:49 +01:00
JosJuice 90f7565fcc Merge pull request #10385 from shuffle2/arm-buildfix
msvc/arm64: fix shadowed variable warning
2022-01-27 18:00:33 +01:00
JosJuice a8c5c9dffc Merge pull request #10361 from Simonx22/migrate-to-material-components
Android: improve app design
2022-01-26 22:39:09 +01:00
JosJuice 9d8c207aaf Android: Make texture cache accuracy level names match DolphinQt 2022-01-24 22:18:57 +01:00
JosJuice b237c7479e Merge pull request #10371 from lynxnb/android-ir
Android: add two QoL settings to IR pointer
2022-01-24 18:25:13 +01:00
JosJuice ff5b323a56 DiscIO: Delete an unused function declaration 2022-01-23 22:15:56 +01:00
JosJuice 7b8e846d0a Merge pull request #10367 from Pokechu22/fmt-8.1.1
Update to fmt 8.1.1
2022-01-20 21:14:41 +01:00
JosJuice 73bcf9c24b Translation resources sync with Transifex 2022-01-18 23:28:24 +01:00
JosJuice 2ca37922dc Config: Use "Controls" section for PadType in game INIs
This matches BootManager.cpp's old behavior.

Note: The other settings of the "Controls" section (WiimoteSource
and WiimoteSourceBB) are still handled in BootManager.cpp.
2022-01-11 22:38:37 +01:00
JosJuice 5283a1dcc6 Config: Add "DSP" to GetINIToSectionMap
The "DSP" game INI section name was supported by BootManager.cpp
before the section was ported to the new config system.
For backwards compatibility, we should keep supporting it.

Should fix https://bugs.dolphin-emu.org/issues/12792
2022-01-11 22:37:02 +01:00
JosJuice 3da6487531 Merge pull request #10209 from Pokechu22/assert-fmt
Assertion and panic alert improvements
2022-01-09 22:27:18 +01:00
JosJuice e5ef597642 Merge pull request #10172 from JosJuice/reorder-exception
PPCAnalyst: Less strict interrupt checks in CanSwapAdjacentOps
2022-01-09 19:41:16 +01:00
JosJuice bcd1831339 Merge pull request #9815 from JosJuice/jitarm64-fmaless
JitArm64: Implement FMA-less path for FMA instructions
2022-01-09 19:40:54 +01:00
JosJuice 1d9d9d6a6e Merge pull request #10354 from AdmiralCurtiss/config-port-core-3
Config: Port EXI device and SI device settings to new config system.
2022-01-09 19:40:23 +01:00
JosJuice aa57eb57b1 SystemTimers: Refactor, get rid of s_audio_dma_period
This static variable was only used within one function,
so we can get rid of it.
2022-01-09 12:02:22 +01:00
JosJuice 9f3ed1f9f3 Android: Don't divide SI device by 6
It's a complete coincidence that both SIDEVICE_GC_CONTROLLER (6)
and SIDEVICE_WIIU_ADAPTER (12) are divisible by 6. Dividing
by 6 because of that doesn't make sense, especially not if we
want to add support for more kinds of SI devices on Android later.
2022-01-08 16:06:49 +01:00
JosJuice 13e246a843 Android: Make Main.Debug setting declarations match C++
No functional difference. Just making sure that the settings
have the same name in Java as in C++ so that they're easy to
cross-reference.
2022-01-07 11:25:20 +01:00
JosJuice 804f78e0e4 Android: Mark s_android_send_report as static
Fixes a compiler warning.
2022-01-06 12:20:09 +01:00
JosJuice 589c267355 USBUtils: Fix 1bad:3110/1bad:3430 mixup
The wiki and the source code had these mismatched, and a user reported
that 1bad:3430 is the Mustang guitar, so the wiki must be right.
2022-01-06 09:46:05 +01:00
JosJuice 0de8ccc25f USBUtils: Add "Harmonix RB3 Keyboard for Nintendo Wii" 2022-01-06 09:42:19 +01:00
JosJuice 2ab66390f8 Vulkan: Check for vkSetDebugUtilsObjectNameEXT before using it
Fixes a crash that has been present on Android (and probably also
macOS) since f6883a0.
2022-01-03 20:17:57 +01:00
JosJuice ab8b2f9fe0 PPCAnalyst: Less strict interrupt checks in CanSwapAdjacentOps
When these checks were originally added, we didn't have the nice
canCauseException attribute. Now we do, so let's use it.
2022-01-01 20:25:04 +01:00
JosJuice 85d2ea0dd2 Merge pull request #10303 from RA-Kooi/RenderWidgetFix
RenderWidget: Add include to Windows.h
2022-01-01 18:13:06 +01:00
JosJuice 89b33267f9 Merge pull request #10331 from PEmu2/imghttps
Use HTTPS for images
2022-01-01 12:12:01 +01:00
JosJuice 68fd94e063 Merge pull request #10302 from RA-Kooi/CMakeQt
DolphinQt: Fix generation of /external:I flags
2021-12-28 20:03:26 +01:00
JosJuice 3b5a612e96 Merge pull request #10304 from AdmiralCurtiss/pbr-jp-widescreen
GameSettings: Japanese version of Pokémon Battle Revolution does not support widescreen.
2021-12-28 20:03:21 +01:00
JosJuice 2ab331dcdf Merge pull request #10314 from JosJuice/gles-lod-bias-float
GLES: Fix LOD bias int/float mismatch
2021-12-28 19:52:39 +01:00
JosJuice a96cfe2531 GLES: Fix LOD bias int/float mismatch
Another simple GLES shader compilation error.
2021-12-28 19:19:22 +01:00
JosJuice 014cc02b96 Android: Fix country constants in CoverHelper.getRegion
This code seems to have been written as if GameFile.getCountry
returns a language rather than a country, which is wrong.
2021-12-28 17:16:49 +01:00
JosJuice 76b508557e GLES: Fix missing precision for sampler2DMSArray
We don't use sampler2DMS, but we do use sampler2DMSArray.

I can't reproduce it on my phone, but a user who was running GLES
on a Tegra X1 reported a shader compilation error related to this.
2021-12-28 11:36:11 +01:00
JosJuice 07d26b2b35 Merge pull request #10306 from Pokechu22/contributing-vs-clang-format
Contributing.md: Mention Visual Studio formatting key combo
2021-12-28 10:11:32 +01:00
JosJuice 8d237eb102 Merge pull request #10305 from AdmiralCurtiss/config-port-fifoplayer
Config: Port FifoPlayer setting to new config system.
2021-12-27 21:11:41 +01:00
JosJuice 869edd5a66 GameINI: Replace all uses of SyncGPU with single core
At least on Android, SyncGPU has really bad performance compared to
single core. It's less stable too - I get fatal GPU desyncs in
Pokémon XD using the default settings.
2021-12-27 16:22:20 +01:00
JosJuice 1295bc4272 Jit64: Make paired loads always safe
It's always a good sign when the comments say "this will definitely
crash" and "I don't know if this is for a good reason".

Fixes https://bugs.dolphin-emu.org/issues/12762.
2021-12-24 19:09:12 +01:00
JosJuice 75bf008aba Android: Make WFS directory configurable
The Android version of 5ecd5f0. No scoped storage support, though...
2021-12-24 11:30:09 +01:00
JosJuice 5dd2ddb1df Memmap: Replace some GetPointer calls
These GetPointer calls could cause crashes, in part because the
callers didn't do null checks and in part because GetPointer
inherently is unsafe to use for accesses larger than 1 byte.
2021-12-24 11:03:58 +01:00
JosJuice e6f40fa015 Merge pull request #10279 from Pokechu22/intensity-alpha
TextureConverterShaderGen: Set alpha to 1 on intensity formats if EFB lacks alpha
2021-12-23 00:14:06 +01:00
JosJuice b6395a7c49 PPCAnalyst: Don't treat blr as writing to CR
This piece of code is rather hard to understand, but my best guess
at what it's trying to do is that it tries to create opportunities
to skip writing CRs back to ppcState if we know that there are no
CR instructions (or branch instructions, etc) between an instruction
that writes to a CR register and the next blr. This is technically
inaccurate emulation, but as long as games don't do anything too
weird with their ABIs, I suppose it doesn't break anything.

So why do I want to get rid of it? Well, other than breaking some
hypothetical weird game, I imagine it could trip up people trying
to debug a game who are looking at the CR contents. And the code
is just plain confusing. (blr clearly doesn't write to CRs!)
2021-12-21 21:29:55 +01:00
JosJuice a8a8b294cd Android: Remove all setRetainInstance calls
Our reasons for using setRetainInstance were gotten rid of in PRs
9011 and 10008, so let's remove our calls to this deprecated method.
2021-12-19 14:45:51 +01:00
JosJuice 08d907dec8 Translation resources sync with Transifex 2021-12-18 21:06:58 +01:00
JosJuice 094290792a Core: Add missing header to NetPlayCommon.cpp
https://bugs.dolphin-emu.org/issues/12765
2021-12-15 18:57:10 +01:00
JosJuice 974c7f4f86 Android: Fix opening system file manager
Turns out that most phones ship with a special Google version of
DocumentsUI instead of just using the AOSP version, despite the two
being pretty similar as far as I can tell. This change makes us
check for both package names instead of just the AOSP package name.
2021-12-14 18:34:50 +01:00
JosJuice 41c7e1116a Android: Rework intent handling to work under scoped storage 2021-12-14 18:25:42 +01:00
JosJuice 45fac5137b Merge pull request #10265 from AdmiralCurtiss/create-riivolution-config-dir
RiivolutionParser: Create config xml directory if it does not exist yet.
2021-12-12 21:43:03 +01:00
JosJuice f4e2d369c0 Merge pull request #10270 from Pokechu22/header-order
Treewide: Adjust order of includes
2021-12-12 15:14:28 +01:00
JosJuice 2f4ecde5cc Merge pull request #10253 from Filoppi/fix_input_config_loading
Fix InputConfig::LoadConfig() not always replacing emu controllers values
2021-12-09 22:21:02 +01:00
JosJuice e0a61ed9a0 Merge pull request #10248 from Filoppi/fix_input_config_default_device_load
Fix default input config default device not being loaded/found
2021-12-09 22:20:55 +01:00
JosJuice d5d21c6533 Merge pull request #10252 from ssdsnake/feature_dolphintool
DolphinTool: Add CLI tool subsystem + commands for verifying and converting RVZ/ISO/WIA/GCZ
2021-12-09 22:20:26 +01:00
JosJuice 67787b59d6 JitArm64: Allocate 64 MB for farcode
My change in 867cd99 caused farcode to fill up much more than before.
Most games still ran fine, but certain games would have multiple
cache clears per minute, on top of being overall slow.

Maybe there's something prettier we can do about this than just
allocating more RAM, but we have the resource budget for making
Dolphin use more RAM, so I consider increasing the size of the
cache to be a good solution at least for the time being.

At least for Prince of Persia: The Forgotten Sands, 48 MB isn't
enough to stop the cache clears, but 64 MB is. (I only played the
game for a few minutes when testing, though.)
2021-12-08 20:56:00 +01:00
JosJuice 85e5070215 Merge pull request #10257 from Pokechu22/no-bs2-rtc-flags
BS2Emu: Stop clearing the RTC flags
2021-12-03 22:39:38 +01:00
JosJuice d23ac5a444 Translation resources sync with Transifex 2021-12-03 22:06:14 +01: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
JosJuice 83d2d55aab JitArm64: Fix incorrect push size calculation 2021-11-24 22:39:54 +01: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
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
JosJuice c2aa2818be Android: Make rescan on app start work again
I haven't fully confirmed why the previous commit broke this,
but I imagine it's due to AfterDirectoryInitializationRunner
executing in a different order than before, resulting in
startRescan running before startLoad.
2021-11-19 22:58:05 +01:00
JosJuice bb475391d2 Android: Make DirectoryInitialization use LiveData
Gets rid of all remaining uses of the deprecated LocalBroadcastManager.
2021-11-19 22:58:05 +01:00
JosJuice d3a23fe5c2 Android: Enable R8 code shrinking
This decreases our APK size by a few megabytes. Most of the reduction
is from Java libraries that we only use small parts of. Code shrinking
gets rid of all the unused code from these libraries from the APK.

Because I highly value the ability to get stack traces that make
sense, I have specifically disabled obfuscation (automatic renaming
of symbols to short incomprehensible names).

I've only enabled code shrinking for release builds, purely because
I feel like the extra build time (30 seconds on my machine)
would be annoying when you want to make debug builds rapidly.
2021-11-19 22:56:34 +01:00
JosJuice 2941cf8d94 Android: Make GameFileCacheManager use LiveData, part 2
Gets rid some uses of the deprecated LocalBroadcastManager.

One note about the changes in GameFileCacheManager itself:
The change from compareAndSet to getValue followed by
setValue is actually safe, because startLoad and startRescan
only run from the main thread, and only the main thread ever
sets the flags to true. So it's impossible for any other thread
to change the flag in between the getValue and the setValue.
2021-11-17 21:49:51 +01:00
JosJuice 857963b336 Android: Make GameFileCacheManager use LiveData, part 1 2021-11-17 21:29:11 +01:00
JosJuice bb2ee279cd Android: Properly set game settings title when navigating backwards 2021-11-16 22:09:40 +01:00
JosJuice ffd8cd059c Android: Make GameFileCacheService not be a service
The past few Android releases have been adding restrictions
to what services are allowed to do, for the sake of stopping
services from using up too much battery in the background.
The IntentService class, which GameFileCacheService uses,
was even deprecated in Android 11 in light of this.

Typically, the reason why you would want use a service instead of
using a simple thread or some other concurrency mechanism from the
Java standard library is if you want to be able to run code in the
background while the user isn't using your app. This isn't actually
something we care about for GameFileCacheService -- if Android wants
to kill Dolphin there's no reason to keep GameFileCacheService
running -- so let's make it not be a service.

I'm changing this mainly for the sake of future proofing, but there
is one immediate (minor) benefit: Previously, if you tried to launch
Dolphin from Android Studio while your phone was locked, the whole
app would fail to launch because launching GameFileCacheService
wasn't allowed because Dolphin wasn't considered a foreground app.
2021-11-16 21:45:06 +01:00
JosJuice 31bfbca923 Android: Split up GameFileCacheService.onHandleIntent 2021-11-16 21:15:49 +01:00
JosJuice 89cb311c86 GameINI: Fix comments causing errors in GALE01r0.ini
Same problem as 658eed4... Except instead of just making the
comments use #, I'm actually removing some of the codes entirely
because they are of questionable value.

Should fix https://bugs.dolphin-emu.org/issues/12737.
2021-11-16 17:58:16 +01:00
JosJuice 7292ac0ce5 Android: Remove DirectoryInitialization from AndroidManifest.xml
It isn't a service, so it shouldn't be listed as one.
2021-11-15 23:23:17 +01:00
JosJuice da0be24b2f DSP: Reword inappropriate references to Global User Directory
These messages apply to the User directory regardless of
whether it's global or local, so we shouldn't specify "global".

Also changing "directory" to "folder", just for consistency
with "GC folder" in the same sentence.
2021-11-14 22:55:50 +01:00
JosJuice 51034ac2dc Android: Increase targetSdkVersion to 31 (Android 12)
Unlike with Android 11, there should be no downsides to doing
this, so we might as well get this out of the way early.
The main part of the work was already done in 5a1a642.
2021-11-14 10:45:15 +01:00
JosJuice 5a23d5cedf Android: Bump NDK and CMake versions
This should make C++20 and std::filesystem work. (Not that
we really can use std::filesystem much on Android since
it doesn't work with scoped storage...)
2021-11-13 20:41:11 +01:00
JosJuice 3e84279919 Merge pull request #10208 from thatSteveFan/patch-1
Minor comment fix in Matrix.cpp
2021-11-13 15:09:28 +01:00
JosJuice aa6db1e029 Merge pull request #10205 from merryhime/pure-rot-rlwimix
Jit_Integer: Fix pure rotation rlwimix case
2021-11-07 20:58:42 +01:00
JosJuice db02b50d2e Merge pull request #10196 from JMC47/haruhi
GameINI:  Change Texture Cache to Safe in R44J8P
2021-11-01 18:28:58 +01:00
JosJuice 96a6d6fd95 Merge pull request #10184 from JosJuice/android-riivolution
Android: Allow starting game with Riivolution patches from the GUI
2021-10-31 23:44:54 +01:00
JosJuice c39b3df6e7 Translation resources sync with Transifex 2021-10-31 19:00:30 +01:00
JosJuice 8b0624f53e Android: Show SD root path in Riivolution activity 2021-10-30 23:24:37 +02:00
JosJuice 22a1f3422c Android: Add Riivolution patch configuration 2021-10-30 23:24:37 +02:00
JosJuice 34021b5ebc Android: Allow starting game with Riivolution patches from the GUI 2021-10-30 23:24:36 +02:00
JosJuice 05b4aecf18 Merge pull request #10186 from leoetlino/hle-hbreload
HLE: Fix hook flag for HBReload
2021-10-26 22:00:25 +02:00
JosJuice d39150c368 Android: Set android:hasFragileUserData
This makes Android ask the user whether they want to delete user
data when uninstalling the app instead of always deleting user data,
which is pretty great now that we're forced to use scoped storage.
It only works on Android 10 and up, though.
2021-10-24 21:39:09 +02:00
JosJuice 23159da9e1 Translation resources sync with Transifex 2021-10-24 21:18:27 +02:00
JosJuice 2a34b847e6 Translation resources sync with Transifex 2021-10-21 09:49:41 +02:00
JosJuice ab735293b1 Android: Adjust string about file manager apps on Android 11
When I made 9c8bb24, I assumed it was completely impossible for a
non-preloaded app to access the entirety of the Android/data/ folder
on Android 11. This turned out to be false. While you can't access
the directory without using SAF (even if you have the Manage All
Files permission), and the user can't navigate to the folder using
the SAF folder picker, what you can do is pass the Android/data/
folder as an EXTRA_INITIAL_URI to the SAF folder picker. If the
user then presses "use this folder" without navigating out of the
folder, the app will be able to access the folder using SAF.

So what does that mean for Dolphin? It means scoped storage is a
little less bad than I feared, and I have a string to adjust.
2021-10-20 21:54:22 +02:00
JosJuice 7c88ca7c4e JitArm64: Work around a GCC warning promoted to error
GCC complains about float_emit being null when inlining
ByteswapAfterLoad into MMIOLoadToReg. ByteswapAfterLoad
does dereference float_emit, but only when passing FLAG_FLOAT,
which MMIOLoadToReg has an assert for and does not support.

Also cleaning up some unnecessarily specified namespaces while
I'm at it.
2021-10-15 21:32:46 +02:00
JosJuice 6caf51f966 Merge pull request #9696 from JosJuice/android-scoped-storage
Android: Scoped storage [To be merged in October]
2021-10-15 18:17:16 +02:00
JosJuice 2d1674cd56 JitArm64: Keep track of free code regions and reuse space when possible
JitArm64 port of 306a5e6.
2021-10-13 21:52:16 +02:00
JosJuice 44beaeaff5 Arm64Emitter: Check end of allocated space when emitting code
JitArm64 port of 5b52b3e.
2021-10-13 21:52:16 +02:00
JosJuice 867cd99de1 JitArm64: Remove the ability to reuse backpatch slowmem handlers
Reusing the slowmem handlers of existing blocks meshes badly
with reusing the empty space left when destroying blocks.
I don't think reusing slowmem handlers was much of a gain anyway.
2021-10-13 21:51:45 +02:00
JosJuice c250ed03cf GameINI: Enable DivByZeroExceptions where needed
Combined with the previous commits in this pull request,
this fixes https://bugs.dolphin-emu.org/issues/7230 (True Crime:
New York City) and https://bugs.dolphin-emu.org/issues/9650
(Call of Duty: Finest Hour).
2021-10-13 17:42:56 +02:00