Commit Graph
100 Commits
Author SHA1 Message Date
JosJuice c8705f014d Merge pull request #11290 from AdmiralCurtiss/phys-mem-region-init
Memmap: Fix initialization of PhysicalMemoryRegion.
2022-11-18 17:53:00 +01:00
JosJuice 0fec70733b Merge pull request #11287 from t895/spacing-fix
Android: Adjust card_width
2022-11-16 22:12:43 +01:00
JosJuice 9766238649 Merge pull request #11267 from t895/smooth-keyboard
Android: Use smooth keyboard animation in cheats activity
2022-11-16 20:48:20 +01:00
JosJuice cecd4d15fe Merge pull request #11254 from t895/adaptive-grid
Android: Dynamically adapt grid span to card_game size
2022-11-16 20:47:59 +01:00
JosJuice 7ce2be9386 Merge pull request #11256 from t895/animate-focus-change
Android: Animate covers on focus change
2022-11-16 20:47:16 +01:00
JosJuice f614f94568 Merge pull request #11272 from t895/tv-update-fix
Android: Use progress bar that does not inherit from AppCompat on leanback
2022-11-13 21:01:56 +01:00
JosJuice 2340a7eea6 Merge pull request #11248 from t895/offload-unmangle
Android: Offload cover path unmangling to another thread
2022-11-13 14:59:00 +01:00
JosJuice 1e80bcbd57 Merge pull request #11265 from t895/dialog-ripple-color
Android: Change alert dialog button ripple color for default theme
2022-11-13 09:16:06 +01:00
JosJuice f28e5607fe Merge pull request #11263 from tellowkrinkle/NoMipsOption
VideoCommon: Add option to disable mipmaps
2022-11-11 17:55:45 +01:00
JosJuice bf69a0bfe0 Merge pull request #11266 from t895/alert-dialog-cancel
Android: Change system update dialog title/message when cancelling
2022-11-11 17:52:57 +01:00
JosJuice dca51f3ab0 Merge pull request #11260 from t895/text-alignment
Android: Fix list_item_cheat text
2022-11-07 18:52:27 +01:00
JosJuice 982afec040 Android: Disable SD card conversion while emulation is running 2022-11-06 18:27:04 +01:00
JosJuice de93b4dc13 DolphinQt: Disable SD card conversion while emulation is running 2022-11-06 17:48:55 +01:00
JosJuice 1a5110791c Merge pull request #11251 from t895/notouch-fix
Android: Use FrameLayout as root for notouch emulation layout
2022-11-06 09:10:47 +01:00
JosJuice fb916a4c33 Boot: Load DOL/ELF after memory setup
I recently talked to a homebrew developer who was trying to add exception
handlers at link time but found out that Dolphin was overwriting their
exception handlers. I figure that's not the usual way to do exception
handlers, but... making us load the executable after setting up memory
rather than before is easy, and matches what we do when booting discs,
so I suppose there's no reason not to do it. It also matches the intent
of why Dolphin is writing default exception handlers – we're writing
them because some homebrew relies on exception handlers being left
around from whatever program was running before it (see 3dd777be70).
2022-11-05 13:55:17 +01:00
JosJuice dc046a2470 Merge pull request #11237 from t895/grid-fix
Android: Add more game grid sizes for long displays
2022-11-01 19:00:53 +01:00
JosJuice d3718b1b81 Translation resources sync with Transifex 2022-10-30 22:39:29 +01:00
JosJuice aeb0fcb8ab Merge pull request #11092 from t895/view-binding
Android: Use view binding
2022-10-29 17:20:08 +02:00
JosJuice 7d55e9f9c7 Merge pull request #11202 from t895/androidx-prefs
Android: Use androidx preference manager
2022-10-29 16:08:48 +02:00
JosJuice 431ee1c48a JitArm64: Improve register handling for MMIO loadstores
Because of the previous commit, `regs_in_use` must not include `dest_reg`
when calling MMIOLoadToReg. There are also some other registers we can
skip including in regs_in_use just for efficiency's sake.

The `addr_reg_set = false` statements that I've added in this commit are
technically redundant – if `mmio_address` is non-zero then `addr_reg_set`
is already false – but it's just a coincidence that that's the case.
2022-10-29 14:16:53 +02:00
JosJuice 0660f12da4 JitArm64: Move MMIO handler result before popping stack
Otherwise we might throw the result away.
Fixes https://bugs.dolphin-emu.org/issues/13083.
2022-10-29 14:16:43 +02:00
JosJuice 5ee7a55588 Merge pull request #11217 from JMC47/nsmbwvertexrounding
Disable Vertex Rounding in New Super Mario Bros. Wii
2022-10-27 20:48:27 +02:00
JosJuice 59c8358e40 Merge pull request #11215 from JMC47/wiiplayvertexrounding
Disable Vertex Rounding in Wii Play
2022-10-27 20:32:05 +02:00
JosJuice a988b6ab34 Translation resources sync with Transifex 2022-10-23 22:12:53 +02:00
JosJuice 7437d2d9ad WiimoteEmu: Change Shinkansen Start/Select to START/SELECT
For consistency with GameCube controllers and GBAs. I missed this
when reviewing the PR.

Also adding some i18n comments while I'm at it.
2022-10-23 21:50:54 +02:00
JosJuice 063c2739b3 Merge pull request #11135 from AdmiralCurtiss/ppcanalyst-unused-stats
PPCAnalyst: Remove unused variables and methods in BlockStats and BlockRegStats.
2022-10-23 21:22:54 +02:00
JosJuice d442f3f2e0 Merge pull request #11079 from t895/system-windows
Android: Do not fit system windows
2022-10-23 21:20:06 +02:00
JosJuice 7743afddac Merge pull request #11163 from t895/convert-layout
Android: Replace spinners with dropdown menus
2022-10-23 20:00:18 +02:00
JosJuice 7f2c78f345 Merge pull request #11198 from shuffle2/bump
Updater: clarify a string
2022-10-23 10:58:41 +02:00
JosJuice 100121c0b1 Merge pull request #11197 from shuffle2/updater
WinUpdater: fix renaming of Updater
2022-10-23 10:44:24 +02:00
JosJuice c1c3ecacac Android: Add "Prefer VS for Point/Line Expansion" to GUI
This adds PR 10890's new setting to the Android GUI. I'm curious to see
if any Android users might get a performance improvement from it.

Due to how our settings work on Android, I haven't implemented disabling
the checkbox when the graphics backend doesn't support both GS and VS
for point/line expansion, but I don't think that's critical to have.
2022-10-23 10:14:23 +02:00
JosJuice 812067ab7c JitArm64: Move ps instructions from fp_arith to ps_arith
This lets us simplify fp_arith without making ps_arith much more
complicated.

No behavior change.
2022-10-22 11:15:41 +02:00
JosJuice 554a2fd332 JitArm64: Merge ps_mulsX and ps_maddXX
They have a lot of shared code, most notably the code for rounding c.

No behavior change.
2022-10-22 11:12:19 +02:00
JosJuice 4dbf0b8e90 JitArm64: Reimplement Force25BitPrecision
The previous implementation of Force25BitPrecision was essentially a
translation of the x86-64 implementation. It worked, but we can make a
more efficient implementation by using an AArch64 instruction I don't
believe x86-64 has an equivalent of: URSHR. The latency is the same as
before, but the instruction count and register count are both reduced.
2022-10-22 10:03:52 +02:00
JosJuice 84375a91d9 Arm64Emitter: Combine immh and immb for Emit(Scalar)ShiftImm
This simplifies the callers of EmitShiftImm and EmitScalarShiftImm.
2022-10-19 20:20:39 +02:00
JosJuice 09f9a58859 Jit64: Add dispatcher_no_timing_check jump target
The new `dispatcher_no_timing_check` is the same as `dispatcher_no_check`
except it includes the "stepping check" in debug mode. This lets us avoid
the `m_enable_debugging ? dispatcher : dispatcher_no_check` dance.
2022-10-16 11:22:34 +02:00
JosJuice 351d095fff JitArm64: Optimize a few tail calls
Maybe "tail call" isn't quite the right term for what this code
is doing, since it's jumping to the dispatcher rather than
returning, but it's the same optimization as for a tail call.
2022-10-15 21:45:44 +02:00
JosJuice 2a5f4a2390 Jit64: Don't use fregsIn in HandleNaNs
fregsIn will include FD for double-precision instructions, since for
dependency tracking purposes the instruction does read the upper
half of FD. This is not what we want in HandleNaNs.

The consequence of this bug is that if an instruction was supposed to
output a NaN and FD happens to contain a NaN and FD happens to be the
same register as an unused register in the instruction encoding, the
NaN in FD could get used as the output instead of the correct NaN.
This isn't known to affect any games, which isn't especially surprising
considering that there's only one game that needs AccurateNaNs anyway.
2022-10-15 18:11:40 +02:00
JosJuice ec6a4115eb Jit64: Jump to dispatcher_no_check from InitializeSpeculativeConstants
Jumping to `dispatcher` requires first subtracting the downcount,
otherwise `dispatcher` may unpredictably jump to CoreTiming::Advance,
which could break determinism compatibility with JitArm64. We should
jump to `dispatcher_no_check` instead.
2022-10-15 17:21:38 +02:00
JosJuice b9aed428e8 Jit64: Remove breakpoint check from JitAsm.cpp
The breakpoint check in Jit.cpp makes it redundant.

Normally this redundant check doesn't cause any issues, but if you
create a breakpoint and enable logging without breaking, you get two
log messages if the breakpoint is at the beginning of a block. See
https://bugs.dolphin-emu.org/issues/13044.

This is also a tiny performance improvement for when debugging is
active, since we no longer check for breakpoints for blocks that never
had any breakpoints to begin with.
2022-10-15 17:06:32 +02:00
JosJuice dbf5dca11c JitArm64: FIFO optimization improvements
JitArm64 port of 789975e.
2022-10-15 12:57:18 +02:00
JosJuice bf492c1ff3 JitArm64: Fix register number typo
I think this typo was actually ignored by the code, but nevertheless,
it should be fixed.
2022-10-09 16:46:09 +02:00
JosJuice 04628034bc JitAsm64: Reorder instructions in routines to allow macro-op fusion
Micro-optimization. Some CPUs can fuse CMP+B, TST+B, arith+CBZ, etc.

I also moved things around for CMP+CSET and TST+CSET - which I'm not sure
if any CPUs support - but it doesn't hurt anything, so I might as well.
2022-10-09 16:46:09 +02:00
JosJuice 6e01ab56fa JitArm64: Remove unnecessary instruction from ConvertDoubleToSingle
The upper bits are masked away by the preceding LSR, and the lower bits
are masked away by the following BFXIL.
2022-10-09 14:17:18 +02:00
JosJuice c361f9155b Jit64: Turn SNaN into QNaN in HandleNaNs
Improves accuracy but isn't known to affect any games.

This turned out to be fairly convenient to implement; ORing with the
PPC default NaN will quieten SNaNs and do nothing to QNaNs.
2022-10-09 09:49:52 +02:00
JosJuice 4b8a720c9b Jit64: Remove HandleNaNs's xmm_out parameter
All HandleNaNs does with the xmm_out parameter is emit MOVAPD at the end
if xmm_out != xmm. The caller might as well do that themselves.
2022-10-08 19:49:30 +02:00
JosJuice 0b1fdee289 Jit64: Fix single FPRF when !jo.accurateSinglePrecision
jo.accurateSinglePrecision is always true, so it's not like this
matters much...
2022-10-08 18:35:46 +02:00
JosJuice 934349a225 Merge pull request #11133 from AdmiralCurtiss/noSpeculativeConstantsAddresses
JitCache: Erase address from noSpeculativeConstantsAddresses when block is invalidated.
2022-10-08 11:01:21 +02:00
JosJuice 51ee05cb35 Android: Use input override system for touch controls
This is the first step of getting rid of the controller indirection
on Android. (Needing a way for touch controls to provide input
to the emulator core is the reason why the controller indirection
exists to begin with as far as I understand it.)
2022-10-03 22:04:09 +02:00
JosJuice b296248b49 DolphinQt: Use input override system for TAS input windows
This lets the TAS input code use a higher-level interface for
overriding inputs instead of having to fiddle with raw bits.
WiiTASInputWindow in particular was messy with how much
controller code it had to re-implement.
2022-10-03 22:04:09 +02:00
JosJuice 8fd25259ee ControllerEmu: Round input floats instead of casting, part 2
Like 3bc4968 but for Wii Remote extensions. I'm doing this to ensure
that TAS input values will still roundtrip after the next commit.
2022-10-03 22:04:08 +02:00
JosJuice cb16d20f2d ControllerEmu: Add new "input override" system 2022-10-03 22:00:21 +02:00
JosJuice f4f189c51f JitArm64: Rename BindToRegister parameters for clarity 2022-10-03 21:41:34 +02:00
JosJuice 42775eed36 JitArm64: Fix BindToRegister in case Immediate && !set_dirty
Fixes a Rogue Squadron II regression from 9d73583.

This set_dirty stuff is pretty tricky to reason about. I thought I
was clever when coming up with set_dirty, but maybe I was too clever
for my own good...
2022-10-02 22:38:00 +02:00
JosJuice 8984777749 JitArm64: Call GetImm before BindToRegister
In case the register we're binding is the same as the immediate register,
we should fetch the immediate before calling BindToRegister. The way
the register cache currently works, calling GetImm after BindToRegister
actually does work, but it's better to not rely on it.
2022-10-01 20:44:51 +02:00
JosJuice 8902d2fe3a JitArm64: Fix divwx BindToRegister condition
a is being used both as an immediate and as a register here.
Since it's being used as a register, it must be loaded.
2022-10-01 19:29:41 +02:00
JosJuice 2e8d775df1 Jit64: boolX formatting fixes 2022-09-29 20:27:15 +02:00
JosJuice d4709ce0ba Android: Remove unnecessary Context parameters 2022-09-27 19:09:47 +02:00
JosJuice 45901f64b5 Android: Use synchronized methods for GameFileCache
Compared to the previous solution of using big `synchronized` blocks,
this makes GameFileCacheManager's executor thread release and re-lock
the lock when possible, giving the GUI thread a chance to do a
(comparatively) quick getOrAdd call if it needs to.
2022-09-27 19:06:10 +02:00
JosJuice 51debaeb47 Revert "Android: Don't hold gameFileCache lock during updateAdditionalMetadata"
This reverts commit fb265b610d.

The optimization in that commit is safe when the executor thread is
writing and the GUI thread is reading, but I had failed to take into
account that it's unsafe when the GUI thread is writing and the executor
thread is reading. (The native UpdateAdditionalMetadata function loops
through m_cached_files, which is unsafe if another thread is adding
elements to m_cached_files simultaneously.)

Losing out on this optimization isn't too bad, because
719930bb39 makes it very unlikely that
both threads will want the lock at the same time.
2022-09-27 19:06:05 +02:00
JosJuice 481df6b660 Android: Allocate GameFileCache on GUI thread
This is intended to fix https://bugs.dolphin-emu.org/issues/13053,
which is a crash caused by sGameFileCache being null when addOrGet
is called.
2022-09-27 18:47:54 +02:00
JosJuice f857fa6529 Android: Add s prefix to static variables in GameFileCacheManager 2022-09-27 18:47:54 +02:00
JosJuice b7c292ac56 Merge pull request #11102 from JMC47/goldeneyedefer
Goldeneye 007 (Wii) - Disable Defer EFB Copies
2022-09-27 18:01:35 +02:00
JosJuice 2c216c9a2b Android: Improve checking in MainPresenter.launchWiiSystemMenu
Not only SystemMenuNotInstalledDialogFragment requires directory
initialization to have completed, but also isSystemMenuInstalled.
2022-09-25 22:15:15 +02:00
JosJuice 199d2be939 Translation resources sync with Transifex 2022-09-24 23:34:33 +02:00
JosJuice 04072f0ce6 Integrate "Ignore for this session" better with config system
Because of the previous commit, this is needed to stop DolphinQt from
forgetting that the user pressed ignore whenever any part of the config
is changed.

This commit also changes the behavior a bit on DolphinQt: "Ignore for
this session" now applies to the current emulation session instead of
the current Dolphin launch. This matches how it already worked on
Android, and is in my opinion better because it means the user won't
lose out on important panic alerts in a game becase they played another
game first that had repeated panic alerts that they wanted to ignore.

For Android, this commit isn't necessary, but it makes the code cleaner.
2022-09-24 13:03:45 +02:00
JosJuice 16c71b9a35 Move a SetEnableAlert call to UICommon
This fixes a problem where changing the Use Panic Handlers setting on
Android wouldn't take effect until the app was restarted.
2022-09-24 12:35:10 +02:00
JosJuice 3ee4c6a33b Merge pull request #11082 from AdmiralCurtiss/getstringt
VolumeVerifier: Add missing assignment to summary_text, and prevent such errors in the future by adding [[nodiscard]] to GetStringT().
2022-09-23 17:42:27 +02:00
JosJuice 4ea694a7e4 Merge pull request #11074 from JosJuice/jitarm64-spr-tl-alignment
JitArm64: Enforce correct alignment of SPR_TL
2022-09-20 23:02:22 +02:00
JosJuice 6203c101f8 JitArm64: Enforce correct alignment of SPR_TL 2022-09-20 18:55:28 +02:00
JosJuice 720b3f5519 Merge pull request #11071 from AdmiralCurtiss/netplay-settings-style
Netplay: Rename variable names in NetSettings to match style guide.
2022-09-19 17:55:36 +02:00
JosJuice eec43ce3f3 Merge pull request #11068 from JosJuice/revert-vcredist
Revert "windows: distribute vcredist loose files"
2022-09-18 23:40:33 +02:00
JosJuice 7866fba1be Revert "licenses: add vc++ redist license"
This reverts commit 84aa19db96.
2022-09-16 10:33:47 +02:00
JosJuice fec6f1bd5a Revert "windows: distribute vcredist loose files"
This reverts commit 0837af4344.
2022-09-16 10:33:39 +02:00
JosJuice 09c07d4ff2 Merge pull request #11060 from t895/dividers
Android: Use material dividers
2022-09-14 22:43:18 +02:00
JosJuice 450b77a096 Merge pull request #11064 from t895/tab-layout
Android: Remove TabLayout workaround
2022-09-14 19:59:31 +02:00
JosJuice 7eece76e2b Merge pull request #11053 from t895/top-app-bar
Android: Change top app bar color on scroll
2022-09-14 08:28:24 +02:00
JosJuice 3420823002 Merge pull request #11043 from t895/nav-bar
Android: Match navigation bar color to background
2022-09-13 22:34:52 +02:00
JosJuice 351ebe668f Merge pull request #11056 from t895/new-bars
Android: Add more top app bars
2022-09-13 21:14:30 +02:00
JosJuice 7f450f1d7e Merge pull request #10626 from t895/glide
Android: Replace Picasso with Glide
2022-09-13 08:24:18 +02:00
JosJuice 14f427d4cd Merge pull request #11054 from t895/swipe-refresh
Android: Change swipe refresh colors to match other component colors
2022-09-12 09:05:14 +02:00
JosJuice 05869734ed Merge pull request #11055 from t895/edge-effect2
Android: Remove other color edge effect definitions
2022-09-11 21:28:34 +02:00
JosJuice 702e7bad58 Merge pull request #11044 from t895/dialog-animations
Android: Add custom window animation to alert dialogs
2022-09-11 17:54:02 +02:00
JosJuice 713b535eb9 Merge pull request #11045 from t895/color-edge-effect
Android: Change color control highlight to system default
2022-09-11 13:15:13 +02:00
JosJuice 13ec18270b Merge pull request #11046 from t895/text-color
Android: Fix save state menu text color
2022-09-11 09:24:34 +02:00
JosJuice 84507ec420 Merge pull request #10725 from t895/theme-merge
Android: App redesign with multi-theme system
2022-09-10 20:08:37 +02:00
JosJuice 2bbae05849 Merge pull request #11006 from t895/target33
Android: Update target SDK version
2022-09-09 21:07:17 +02:00
JosJuice 48c9c224cf Translation resources sync with Transifex 2022-09-03 18:21:58 +02:00
JosJuice 40d6d615e2 Android: Fix reading custom covers with SAF
If GameFile.getCustomCoverPath returns a mangled URI, we need to
unmangle it before passing it to Picasso, since Picasso has no
concept of Dolphin's mangled URIs.
2022-08-29 18:48:20 +02:00
JosJuice 32ea725a10 Merge pull request #11010 from OatmealDome/mvk-mojave-patch
MoltenVK: Add patch to resolve a crash on macOS Mojave
2022-08-27 19:34:43 +02:00
JosJuice b6ac63dc47 Merge pull request #11000 from t895/monochrome
Android: Use vector icon and enable monochrome icon
2022-08-24 17:38:59 +02:00
JosJuice 299aef945b Merge pull request #11005 from t895/cover-only
Android: Add option to disable game cover text
2022-08-23 18:24:51 +02:00
JosJuice cc3e6a11ac Merge pull request #10999 from t895/dependencies
Android: Update SDK and dependencies
2022-08-21 21:22:27 +02:00
JosJuice 46a11bc6b0 Translation resources sync with Transifex 2022-08-21 20:15:41 +02:00
JosJuice 052fdfa00d DiscIO: Fix an incorrect error check in NFSBlob 2022-08-21 00:06:53 +02:00
JosJuice 724bd3e597 VideoCommon: Fix OpenGL ES GPU texture decoding 2022-08-20 23:21:23 +02:00
JosJuice aca624ef9c DiscIO: Fix calculation of NFS raw size 2022-08-20 21:18:36 +02:00
JosJuice 924a4ee0be Merge pull request #10993 from shuffle2/gamelist-cache
qt: defer writing gamelist cache until EndRefresh
2022-08-20 10:02:12 +02:00
JosJuice 86d760b814 Merge pull request #10984 from shuffle2/verifydev
fix verifying wii dev signatures
2022-08-17 17:41:46 +02:00
JosJuice b6a18b0da5 Merge pull request #10980 from JosJuice/android-no-dir-init-fail
Android: Force quit app if external storage isn't mounted
2022-08-14 15:47:50 +02:00