Commit graph

2162 commits

Author SHA1 Message Date
merry
5a59d1c5d5 T32: Implement Data Processing (Modified Immediate) instructions (#3178)
* T32: Implement Data Processing (Modified Immediate) instructions

* Update tests

* switch -> lookup table
2024-02-22 19:16:18 -05:00
MutantAura
9346e47ae8 Mod loading from atmosphere SD directories (#3176)
* initial sd support

* GUI option

* alignment

* review changes
2024-02-22 19:16:18 -05:00
gdkchan
929fab0d08 Only initialize shader outputs that are actually used on the next stage (#3054)
* Only initialize shader outputs that are actually used on the next stage

* Shader cache version bump
2024-02-22 19:16:18 -05:00
merry
a745e5f83a A32: Fix ALU immediate instructions (#3179)
* Tests: Add A32 tests for immediate ADC/ADCS/RSC/RSCS/SBC/SBCS

* A32: Fix bug in ADC/ADCS/RSC/RSCS/SBC/SBCS

* CpuTestAluImm32: Add more opcodes

* Increment PTC version
2024-02-22 19:16:18 -05:00
merry
d5e53fe214 Decoders: Fix instruction lengths for 16-bit B instructions (#3177) 2024-02-22 19:16:18 -05:00
merry
7596e905e3 Decoder: Exit on trapping instructions, and resume execution at trapping instruction (#3153)
* Decoder: Exit on trapping instructions, and resume execution at trapping instruction

* Resume at trapping address

* remove mustExit
2024-02-22 19:16:18 -05:00
merry
329fa1a4e4 T32: Implement B, B.cond, BL, BLX (#3155)
* Decoders: Make IsThumb a function of OpCode32

* OpCode32: Fix GetPc

* T32: Implement B, B.cond, BL, BLX

* rm usings
2024-02-22 19:16:17 -05:00
Mary
939e3f75b1 Preparation for initial Flatpack and FlatHub integration (#3173)
* Preparation for initial Flatpack and FlatHub integration

This integrate some initial changes required for Flatpack and distribution from FlatHub.

Also added some resources that will be used for packaging on Linux.

* Address gdkchan comment
2024-02-22 19:16:17 -05:00
JavidPack
44133a26cf Implement -p or --profile command line argument (#2947)
* Implement -p or --profile command line argument

* Put command line logic all in Program and reference it elsewhere

* Address feedback
2024-02-22 19:16:17 -05:00
Alex Barney
ca2a0aeae0 Update LibHac to v0.16.0 (#3159) 2024-02-22 19:16:17 -05:00
merry
027b0b3754 T32: Implement ALU (shifted register) instructions (#3135)
* T32: Implement ADC, ADD, AND, BIC, CMN, CMP, EOR, MOV, MVN, ORN, ORR, RSB, SBC, SUB, TEQ, TST (shifted register)

* OpCodeTable: Sort T32 list

* Tests: Rename RandomTestCase to PrecomputedThumbTestCase

* T32: Tests for AluRsImm instructions

* fix nit

* fix nit 2
2024-02-22 19:16:17 -05:00
gdkchan
ace0a6be2d Allow textures to have their data partially mapped (#2629)
* Allow textures to have their data partially mapped

* Explicitly check for invalid memory ranges on the MultiRangeList

* Update GetWritableRegion to also support unmapped ranges
2024-02-22 19:16:17 -05:00
riperiperi
1738d47247 Perform unscaled 2d engine copy on CPU if source texture isn't in cache. (#3112)
* Initial implementation of fast 2d copy

TODO: Partial copy for mismatching region/size.

* WIP

* Cleanup

* Update Ryujinx.Graphics.Gpu/Engine/Twod/TwodClass.cs

Co-authored-by: gdkchan <gab.dark.100@gmail.com>

Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2024-02-22 19:16:17 -05:00
merry
a9261267e0 ARMeilleure: Implement single stepping (#3133)
* Decoder: Implement SingleInstruction decoder mode

* Translator: Implement Step

* DecoderMode: Rename Normal to MultipleBlocks
2024-02-22 19:16:17 -05:00
Ac_K
80ec080f17 gui: Fixes the games icon when there is an update (#3148)
* gui: Fixes the games icon when there is a game update

Currently we just load the version of the update, instead of the whole NACP file. This PR fixes that. A little cleanup is made into the code to avoid duplicate things.
(Closes #3039)

* Fix condition
2024-02-22 19:16:17 -05:00
merry
1e164daeb1 A32: Fix BLX and BXWritePC (#3151) 2024-02-22 19:16:17 -05:00
Berkan Diler
ee756e9bb9 Collapse AsSpan().Slice(..) calls into AsSpan(..) (#3145)
* Collapse AsSpan().Slice(..) calls into AsSpan(..)

Less code and a bit faster

* Collapse an Array.Clear(array, 0, array.Length) call to Array.Clear(array)
2024-02-22 19:16:17 -05:00
riperiperi
630930bdeb Add dedicated ServerBase for FileSystem services (#3142)
This should prevent filesystem services from blocking other services that don't have their own ServerBase. May improve filesystem related stutters in certain titles.

Improves button advanced cutscenes such as Miqol's Request in Xenoblade: DE when the game is on a network share (used to stutter when voice lines played).

Should probably be tested to make sure no mysterious bugs have been unearthed, and to see if any other filesystem related perf issues are improved.
2024-02-22 19:16:17 -05:00
gdkchan
a1df73d732 PPTC version increment (#3139) 2024-02-22 19:16:17 -05:00
gdkchan
2a20cec9f4 Enable CPU JIT cache invalidation (#2965)
* Enable CPU JIT cache invalidation

* Invalidate cache on IC IVAU
2024-02-22 19:16:16 -05:00
gdkchan
14344b8c69 Prefer texture over textureSize for sampler type (#3132)
* Prefer texture over textureSize for sampler type

* Shader cache version bump
2024-02-22 19:16:16 -05:00
Berkan Diler
eec7728342 Use BitOperations methods and delete now unused BitUtils methods (#3134)
Replaces BitUtils.CountTrailingZeros/CountLeadingZeros/IsPowerOfTwo with BitOperations methods
2024-02-22 19:16:16 -05:00
gdkchan
03b3c67ad6 Move kernel syscall logs to new trace log level (#3137) 2024-02-22 19:16:16 -05:00
Ac_K
eb325d2750 Implement/Stub mnpp:app service and some hid calls (#3131)
* Implement/Stub mnpp:app service and some hid calls

This PR Implement/Stub the `mnpp:app` service (closes #3107) accordingly to RE, which seems to do some telemetry for China region only, so everything is stubbed.

This PR fixes some inconsistencies in the hid service too and stub EnableSixAxisSensorUnalteredPassthrough, IsSixAxisSensorUnalteredPassthroughEnabled, LoadSixAxisSensorCalibrationParameter, GetSixAxisSensorIcInformation calls (closes #3123 and closes #3124).

* Addresses Thog review
2024-02-22 19:16:16 -05:00
merry
5bb279e4c2 Decoders: Add IOpCode32HasSetFlags (#3136) 2024-02-22 19:16:15 -05:00
mlgatto
9dbee5fd51 Added trace log level (#3096)
* added trace log level

* use trace log level instead of debug ( #1547)

* alignment #1547

* moved trace logs toggle at the bottom #1547

* bumped config file version #3096

* added migration step #3096

* setting moved to the dev section #1547

* performance warning displayed when trace is enabled #1547
2024-02-22 19:16:15 -05:00
Alex Barney
32fda57a1d Change ServiceNv map creation logs to the Debug level (#3058) 2024-02-22 19:16:15 -05:00
merry
e11f691a70 ARMeilleure: Thumb support (All T16 instructions) (#3105)
* Decoders: Add InITBlock argument

* OpCodeTable: Minor cleanup

* OpCodeTable: Remove existing thumb instruction implementations

* OpCodeTable: Prepare for thumb instructions

* OpCodeTables: Improve thumb fast lookup

* Tests: Prepare for thumb tests

* T16: Implement BX

* T16: Implement LSL/LSR/ASR (imm)

* T16: Implement ADDS, SUBS (reg)

* T16: Implement ADDS, SUBS (3-bit immediate)

* T16: Implement MOVS, CMP, ADDS, SUBS (8-bit immediate)

* T16: Implement ANDS, EORS, LSLS, LSRS, ASRS, ADCS, SBCS, RORS, TST, NEGS, CMP, CMN, ORRS, MULS, BICS, MVNS (low registers)

* T16: Implement ADD, CMP, MOV (high reg)

* T16: Implement BLX (reg)

* T16: Implement LDR (literal)

* T16: Implement {LDR,STR}{,H,B,SB,SH} (register)

* T16: Implement {LDR,STR}{,B,H} (immediate)

* T16: Implement LDR/STR (SP)

* T16: Implement ADR

* T16: Implement Add to SP (immediate)

* T16: Implement ADD/SUB (SP)

* T16: Implement SXTH, SXTB, UXTH, UTXB

* T16: Implement CBZ, CBNZ

* T16: Implement PUSH, POP

* T16: Implement REV, REV16, REVSH

* T16: Implement NOP

* T16: Implement LDM, STM

* T16: Implement SVC

* T16: Implement B (conditional)

* T16: Implement B (unconditional)

* T16: Implement IT

* fixup! T16: Implement ADD/SUB (SP)

* fixup! T16: Implement Add to SP (immediate)

* fixup! T16: Implement IT

* CpuTestThumb: Add randomized tests

* Remove inITBlock argument

* Address nits

* Use index to handle IfThenBlockState

* Reduce line noise

* fixup

* nit
2024-02-22 19:16:15 -05:00
Mary
9705f91992 misc: Update GtkSharp.Dependencies and speed up initial Windows build (#3128)
Update GtkSharp.Dependencies to fix between menu flickering and enable
the SkipInstallGtk in csproj to avoid downloading unused GTK3 install
locally.
2024-02-22 19:16:15 -05:00
Berkan Diler
4300695702 Use ReadOnlySpan<byte> compiler optimization for static data (#3130) 2024-02-22 19:16:15 -05:00
riperiperi
3e23730705 Use a basic cubic interpolation for the audren upsampler (#3129)
Before, it was selecting nearest neighbour, which sounded terrible. This is likely temporary til the upsampling algorithm used by the switch is reversed.

Fixes bad audio in Skyward Sword HD.
2024-02-22 19:16:15 -05:00
Mary
45dca16872 amadeus: Fix PCMFloat datasource command v1 (#3127)
Really simple copy pasta error here.

Shouldn't affect anything as float support was added at the same REV as
datasource command v2.
2024-02-22 19:16:15 -05:00
gdkchan
8f5b7dbd4d Do not allow render targets not explicitly written by the fragment shader to be modified (#3063)
* Do not allow render targets not explicitly written by the fragment shader to be modified

* Shader cache version bump

* Remove blank lines

* Avoid redundant color mask updates

* HostShaderCacheEntry can be null

* Avoid more redundant glColorMask calls

* nit: Mask -> Masks

* Fix currentComponentMask

* More efficient way to update _currentComponentMasks
2024-02-22 19:16:15 -05:00
Mary
e919bbb219 amadeus: Fix limiter correctness (#3126)
This fixes missing audio on Nintendo Switch Sports Online Play Test.
2024-02-22 19:16:15 -05:00
gdkchan
6e59100a92 When copying linear textures, DMA should ignore region X/Y (#3121) 2024-02-22 19:16:15 -05:00
skrek
11e49fd5df Adjusting how deadzones are calculated (#3079)
* Making deadzones feel nice and smooth + adding rider files to .gitignore

* removing unnecessary parentheses and fixing possibility of divide by 0

* formatting :)

* fixing up ClampAxis

* fixing up ClampAxis
2024-02-22 19:16:15 -05:00
Berkan Diler
4cf03ee3b7 Use Enum and Delegate.CreateDelegate generic overloads (#3111)
* Use Enum generic overloads

* Remove EnumExtensions.cs

* Use Delegate.CreateDelegate generic overloads
2024-02-22 19:16:14 -05:00
merry
cb0fe89951 InstEmitMemory32: Literal loads always have word-aligned PC (#3104) 2024-02-22 19:16:14 -05:00
gdkchan
aa6bd6ab62 Fix missing geometry shader passthrough inputs (#3106)
* Fix missing geometry shader passthrough inputs

* Shader cache version bump
2024-02-22 19:16:14 -05:00
edisionnano
8ccb65d290 Ship SoundIO library only for the specified runtime (#3103)
* Add RuntimeIdentifers properties

For Linux, Windows and OS X x86-64
This ensures that the SoundIO project gets this property when built as a subproject

* Address gdkchan's nit

Merge tags into one
2024-02-22 19:16:14 -05:00
gdkchan
d35902eddb Add a limit on the number of uses a constant may have (#3097) 2024-02-22 19:16:14 -05:00
Mary
293e5f8c57 misc: Make PID unsigned long instead of long (#3043) 2024-02-22 19:16:14 -05:00
merry
f45537390e ARMeilleure: A32: Implement SHSUB8 and UHSUB8 (#3089)
* ARMeilleure: A32: Implement UHSUB8

* ARMeilleure: A32: Implement SHSUB8
2024-02-22 19:16:14 -05:00
wss445566
683292b8c7 fix headless sdl2 option string (#3093) 2024-02-22 19:16:14 -05:00
edisionnano
0d7132d9d8 Convert the bool to a lowercase string (#3080)
mesa_glthread doesn't accept PascalCase input
2024-02-22 19:16:14 -05:00
merry
a99949623e ARMeilleure: A32: Implement SHADD8 (#3086) 2024-02-22 19:16:14 -05:00
merry
3f780f84ea ARMeilleure: OpCodeTable: Add CMN (RsReg) (#3087) 2024-02-22 19:16:14 -05:00
Alex Barney
2fd7edb059 Try to ensure save data always has a valid owner ID (#3057)
- Run the extra data fix in FixExtraData on non-system saves that have no owner ID.
- Set the owner ID in the dummy application control property if an application doesn't have a proper one available.
2024-02-22 19:16:14 -05:00
Alex Barney
fe29bfce35 Fix the pronunciation of Ryujinx (#3059) 2024-02-22 19:16:14 -05:00
gdkchan
222682733e Fix bug that could cause depth buffer to be missing after clear (#3067) 2024-02-22 19:16:14 -05:00