Commit graph

43563 commits

Author SHA1 Message Date
CasualPokePlayer
7fb997c95c Add SYSCONF country code to DTM
Recently there was some issues in TASVideos trying to sync a Donkey Kong Country Returns TAS. It eventually was synced by directly using the config from the TAS author. The exact setting which caused the desync was narrowed down to being in SYSCONF, with the country code. The TAS author lives in the US, so the country code matched the US country code, while the person attempting to sync the TAS did not live in the US.

Adding SYSCONF country code to the DTM should avoid this being an issue for future Dolphin versions.
2025-01-06 13:54:08 +00:00
Sintendo
cc5628fdfb JitArm64_Integer: addzex - Optimize InHostCarry case for 0
Before:
0x5280000d   mov    w13, #0x0                 ; =0
0x1a1f01ae   adc    w14, w13, wzr

After:
0x1a9f37ee   cset   w14, hs
2025-01-06 13:54:08 +00:00
Sintendo
24fadb873a JitArm64_Integer: addzex - Optimize InPPCState case for 0
Before:
0x52800019   mov    w25, #0x0                 ; =0
0x394bd3b8   ldrb   w24, [x29, #0x2f4]
0x2b180339   adds   w25, w25, w24

After:
0x394bd3b9   ldrb   w25, [x29, #0x2f4]
2025-01-06 13:54:08 +00:00
Sintendo
46d4409b66 JitArm64_Integer: addzex - Optimize ConstantFalse and ConstantTrue
When the input register and carry flags are known, we can always
precompute the result.

We still materialize the immediate when the condition register
needs to be updated, but this seems to be a general problem. I might
look into that one day, but for now this'll do.

- ConstantFalse
Before:
0x52800119   mov    w25, #0x8                 ; =8
0x2a1903fa   mov    w26, w25

After:
N/A

- ConstantTrue
Before:
0x52800119   mov    w25, #0x8                 ; =8
0x1100073a   add    w26, w25, #0x1

After:
N/A
2025-01-06 13:54:08 +00:00
Sintendo
c54bd258f9 JitArm64_Integer: addex - Optimize InHostCarry for -1
Same thing we did for subfex.

Before:
0x1280001a   mov    w26, #-0x1                ; =-1
0x1a1f035a   adc    w26, w26, wzr

After:
0x5a9f23fa   csetm  w26, lo
2025-01-06 13:54:08 +00:00
Sintendo
4bc03c635e JitArm64_Integer: addex - Optimize InHostCarry for 0
Similar to what we did for subfex, but for 0.

Before:
0x5280001b   mov    w27, #0x0                 ; =0
0x1a1f037b   adc    w27, w27, wzr

After:
0x1a9f37fb   cset   w27, hs
2025-01-06 13:54:08 +00:00
Sintendo
77d62b217e JitArm64_Integer: addex - Optimize InPPCState case for 0
Same optimization we did for subfex. Skip loading the carry flag into a
temporary register first when we're dealing with zero.

Before:
0x394bd3b8   ldrb   w24, [x29, #0x2f4]
0x2a1803f9   mov    w25, w24

After:
0x394bd3b9   ldrb   w25, [x29, #0x2f4]
2025-01-06 13:54:08 +00:00
Sintendo
9269d53c92 JitArm64_Integer: subfzex - Constant folding
When both the input register and the carry flag are constants, the
result can be precomputed.

Before:
0x52800016   mov    w22, #0x0                 ; =0
0x2a3603f6   mvn    w22, w22

After:
2025-01-06 13:54:08 +00:00
Sintendo
4869ef64c1 JitArm64_Integer: subfex - Optimize InHostCarry case for -1
The result is either -1 or 0 depending on the state of the carry flag.
This can be done with a csetm instruction.

Before:
0x1280001a   mov    w26, #-0x1                ; =-1
0x1a1f035a   adc    w26, w26, wzr

After:
0x5a9f23fa   csetm  w26, lo
2025-01-06 13:54:08 +00:00
Sintendo
34c85e4865 JitArm64_Integer: subfex - Optimize InPPCState case for 0
When the immediate is zero, we can load the carry flag from memory
directly to the destination register.

Before:
0x394bd3b8   ldrb   w24, [x29, #0x2f4]
0x2a1803f9   mov    w25, w24

After:
0x394bd3b9   ldrb   w25, [x29, #0x2f4]
2025-01-06 13:54:08 +00:00
Sintendo
033bb1a593 JitArm64_Integer: Refactor subfex 2025-01-06 13:54:08 +00:00
Sintendo
ce503e69c0 JitBase: Improve const-correctness 2025-01-06 13:54:08 +00:00
Sintendo
671fe29ebe JitBase: Add HasConstantCarry helper 2025-01-06 13:54:08 +00:00
Sintendo
4572b075cd JitArm64_LoadStore: Small dcbx optimization
MUL and SUB can be combined in one instruction.

Before:
0x1b1a7c01   mul    w1, w0, w26
0x4b010318   sub    w24, w24, w1

After:
0x1b1ae018   msub   w24, w0, w26, w24
2025-01-06 13:54:08 +00:00
OatmealDome
24fc34fd83 ScmRevGen: Don't generate Info.plist files directly
Some generators (like Unix Makefiles and Xcode) copy an app's Info.plist at configure time.
This causes a problem when we need to generate the Info.plist at build time, like how we
currently do it with ScmRevGen. Instead of generating the Info.plist directly in ScmRevGen,
provide an Info.plist without any version information to CMake at configure time, have
ScmRevGen generate a separate plist file with the version information at build time, and
then merge the two together to create the final Info.plist.
2025-01-06 07:54:07 +00:00
OatmealDome
0355d4fd46 DolphinQt: Use TARGET_BUNDLE_DIR generator expression instead of specifying the bundle path ourselves 2025-01-06 07:54:07 +00:00
Tabitha
ec4316c265
Update GP7E01.ini 2025-01-05 16:33:07 -05:00
Tabitha
4d0e93de74
Update GP6E01.ini 2025-01-05 16:31:29 -05:00
Tabitha
485a84e047
fix shop mod 2025-01-05 08:35:55 -05:00
TryTwo
d048e6a373 Frame Dumping: Change lossless codec from FFV1 to Ut Video.
Ut Video is faster and more compatible with editing programs, but produces larger files.
2025-01-05 07:54:07 +00:00
pull[bot]
ac5b253d8c
Merge pull request #70 from dolphin-emu/master
[pull] master from dolphin-emu:master
2025-01-04 07:54:07 +00:00
Tabitha
3eaa3f546b
Update RM8E01.ini 2025-01-03 21:51:43 -05:00
JosJuice
30bcb2b8dd JitArm64: Drop GetCRFieldBit's negate parameter
No caller is using it anymore.
2025-01-04 01:54:07 +00:00
JosJuice
6ecd292db4 JitArm64: Use BIC/EON/ORN in crXXX
This lets us save an instruction in certain scenarios.
2025-01-04 01:54:07 +00:00
JosJuice
123aa3b9ec JitArm64: Add negate parameter to SetCRFieldBit
Unlike on x64, inverting EQ or GT in SetCRFieldBit saves us one
instruction. Also unlike on x64, inverting SO or LT in GetCRFieldBit
requires an extra instruction (just like in SetCRFieldBit). Due to this,
replacing an invert in GetCRFieldBit with an invert in SetCRFieldBit
when possible is either equally good or better - never worse.
2025-01-04 01:54:07 +00:00
JosJuice
77a5739333 JitArm64: Port some crXXX optimizations from Jit64 2025-01-04 01:54:07 +00:00
JosJuice
120a28e9d4 JitArm64: Refactor CR bit manipulation code
This brings JitArm64 more in line with Jit64, and makes the next commit
easier to implement. No functional change.
2025-01-04 01:54:07 +00:00
Nayla Hanegan
df2bbe1ee3 Merge branch 'master' of https://github.com/MarioPartyNetplay/Dolphin-MPN 2025-01-03 17:52:43 -05:00
Nayla Hanegan
f87c489ee9 derp 2025-01-03 17:52:26 -05:00
Tabitha
085035ba46
Update GP5E01.ini 2025-01-03 17:26:40 -05:00
Tabitha
6eee9a646e
Update GP5E01.ini 2025-01-03 17:26:24 -05:00
Tabitha
87f41be32a
Update GP6E01.ini 2025-01-03 17:04:02 -05:00
Nayla Hanegan
a50aaccaad more fixes 2025-01-03 16:56:40 -05:00
Nayla Hanegan
813d535002 change registry flag 2025-01-03 16:54:19 -05:00
Nayla Hanegan
b7b9fe5369 old codehandler remove 2025-01-03 16:41:38 -05:00
Nayla Hanegan
558c49042d rename 2025-01-03 16:41:17 -05:00
Nayla Hanegan
1242123537 Remove MPN Extended rename super extended to MPN Extended 2025-01-03 16:38:57 -05:00
Nayla Hanegan
f53b88a474 Super extended for mp7 2025-01-03 16:33:47 -05:00
JMC47
9b3b6bea9d
Merge pull request #12801 from JosJuice/jitarm64-crxxx-opt
JitArm64: Optimize crXXX
2025-01-03 16:32:49 -05:00
Nayla Hanegan
2573b127d0 comment out this code again 2025-01-01 18:07:16 -05:00
Tabitha
d402a29479
Merge pull request #68 from dolphin-emu/master
mpn
2025-01-01 17:59:21 -05:00
Nayla Hanegan
89d176fd8b Merge branch 'master' of https://github.com/MarioPartyNetplay/Dolphin-MPN 2025-01-01 17:56:43 -05:00
Nayla Hanegan
24f5d5e76b Super Extended codehandler fix 2025-01-01 17:55:16 -05:00
mitaclaw
216890ab5f Simplify std::search with Common::ContainsSubrange 2025-01-01 19:54:07 +00:00
mitaclaw
4da2338ab5 Simplify std::find_if with Common::Contains 2025-01-01 19:54:07 +00:00
mitaclaw
cc16346d8f Simplify std::find with Common::Contains
In NandPaths.cpp, the `std::initializer_list<char>` of illegal characters has been turned into a `char[]` (similar to the one in GameList.cpp).

The reverse iteration in ResourcePack.cpp seemed to provide no benefits, and doing without it it seemed to have no ill effects.
2025-01-01 19:54:07 +00:00
mitaclaw
202f169138 Common: Create "Contains.h" Algorithm Header
The new `Common::Contains` and `Common::ContainsSubrange` function objects mirror C++23's `std::ranges::contains` and `std::ranges::contains_subrange`, respectively.
2025-01-01 19:54:07 +00:00
JMC47
f15a78ed38
Merge pull request #13094 from mitaclaw/ranges-modernization-5-contains
Ranges Algorithms Modernization - Contains
2025-01-01 14:42:44 -05:00
mitaclaw
527841f1df Simplify std::search with Common::ContainsSubrange 2025-01-01 09:52:03 -08:00
mitaclaw
d92c68e1de Simplify std::find_if with Common::Contains 2025-01-01 09:52:03 -08:00