Commit graph

2549 commits

Author SHA1 Message Date
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
VocalFan
74b943c317 Remove Appveyor from Readme and SLN (#3026)
* Replace Appveyor with Github badge.

* Delete appveyor.yml

* Remove Appveyor from SLN
2024-02-22 19:16:13 -05:00
gdkchan
d3cc1f5495 Fix small precision error on CPU reciprocal estimate instructions (#3061)
* Fix small precision error on CPU reciprocal estimate instructions

* PPTC version bump
2024-02-22 19:16:13 -05:00
Mary
010bb7f526 kernel: A bit of refactoring and fix GetThreadContext3 correctness (#3042)
* Start refactoring kernel a bit and import some changes from kernel decoupling PR

* kernel: Put output always at the start in Syscall functions

* kernel: Rewrite GetThreadContext3 to use a structure and to be accurate

* kernel: make KernelTransfer use generic types and simplify

* Fix some warning and do not use getters on MemoryInfo

* Address gdkchan's comment

* GetThreadContext3: use correct pause flag
2024-02-22 19:16:13 -05:00
riperiperi
d322e5c990 Add timestamp to 16-byte/4-word semaphore releases. (#3049)
* Add timestamp to 16-byte semaphore releases.

BOTW was reading a ulong 8 bytes after a semaphore return. Turns out this is the timestamp it was trying to do performance calculation with, so I've made it write when necessary.

This mode was also added to the DMA semaphore I added recently, as it is required by a few games. (i think quake?)

The timestamp code has been moved to GPU context. Check other games with an unusually low framerate cap or dynamic resolution to see if they have improved.

* Cast dma semaphore payload to ulong to fill the space

* Write timestamp first

Might be just worrying too much, but we don't want the applcation reading timestamp if it sees the payload before timestamp is written.
2024-02-22 19:16:13 -05:00
riperiperi
52e105d2b2 Fix res scale parameters not being updated in vertex shader (#3046)
This fixes an issue where the render scale array would not be updated when technically the scales on the flat array were the same, but the start index for the vertex scales was different.
2024-02-22 19:16:13 -05:00
edisionnano
be58636fbb Convert Octal-Mode to Decimal (#3041)
Apparently C# doesn't use 0 as a prefix like C does.
2024-02-22 19:16:13 -05:00
Mary
71a9e68dc5 Fix regression on PR builds version number since new release system 2024-02-22 19:16:13 -05:00
gdkchan
7792c57754 Fix calls passing V128 values on Linux (#3034)
* Fix calls passing V128 values on Linux

* PPTC version bump
2024-02-22 19:16:13 -05:00
Mary
944c0704e7 amadeus: Fix possible device sink input out of bound (#3032)
This fix an out of bound when indexing inputs for games that uses
unsupported values (8 here)

Close #2724.
2024-02-22 19:16:13 -05:00
Mary
ed1d46112a Set _vibrationPermitted to True by default (#2985)
Co-authored-by: SpookyBee123 <82302189+SpookyBee123@users.noreply.github.com>
2024-02-22 19:16:13 -05:00
gdkchan
dbf2f8e5ad Add support for BC1/2/3 decompression (for 3D textures) (#2987)
* Add support for BC1/2/3 decompression (for 3D textures)

* Optimize and clean up

* Unsafe not needed here

* Fix alpha value interpolation when a0 <= a1
2024-02-22 19:16:13 -05:00
Mary
949a7da612 Address comment from gdkchan: we are starting at 1.1.3 now 2024-02-22 19:16:13 -05:00
Mary
c0d1e94144 Add new release system
As AppVeyor took our project down and deleted it without any comments, we are switching to GitHub Releases earlier than anticipated.

This isn't the most elegant design (and I would have prefered having a release manifest in place) but this will do for now.

The concept of release channel was also defined with this change.

The new base version is now 1.1.x to avoid confusion with older system.

Standard test CI was disabled temporarly and may be chained later as a CI job after the release job.

Users are expected to redownload the emulator to be sure to be up to date.

PS: If someone from AppVeyor read this, thanks again for ruining my week-end, I will be sure to NEVER recommend you to anyone.

Best Regards, Mary.
2024-02-22 19:16:13 -05:00