Commit graph

2882 commits

Author SHA1 Message Date
gdkchan
16c471c75f Implement IMUL, PCNT and CONT shader instructions, fix FFMA32I and HFMA32I (#2972)
* Implement IMUL shader instruction

* Implement PCNT/CONT instruction and fix FFMA32I

* Add HFMA232I to the table

* Shader cache version bump

* No Rc on Ffma32i
2024-02-22 19:16:11 -05:00
gdkchan
c49e140d45 Fix sampled multisample image size (#2984) 2024-02-22 19:16:11 -05:00
riperiperi
08a5787b2f Texture Sync, incompatible overlap handling, data flush improvements. (#2971)
* Initial test for texture sync

* WIP new texture flushing setup

* Improve rules for incompatible overlaps

Fixes a lot of issues with Unreal Engine games. Still a few minor issues (some caused by dma fast path?) Needs docs and cleanup.

* Cleanup, improvements

Improve rules for fast DMA

* Small tweak to group together flushes of overlapping handles.

* Fixes, flush overlapping texture data for ASTC and BC4/5 compressed textures.

Fixes the new Life is Strange game.

* Flush overlaps before init data, fix 3d texture size/overlap stuff

* Fix 3D Textures, faster single layer flush

Note: nosy people can no longer merge this with Vulkan. (unless they are nosy enough to implement the new backend methods)

* Remove unused method

* Minor cleanup

* More cleanup

* Use the More Fun and Hopefully No Driver Bugs method for getting compressed tex too

This one's for metro

* Address feedback, ASTC+ETC to FormatClass

* Change offset to use Span slice rather than IntPtr Add

* Fix this too
2024-02-22 19:16:10 -05:00
gdkchan
5439396982 Return error on DNS resolution when guest internet access is disabled (#2983)
* Return error on DNS resolution when guest internet access is disabled

* Log DNS lookup calls
2024-02-22 19:16:10 -05:00
riperiperi
f5586c81d5 Add support for render scale to vertex stage. (#2763)
* Add support for render scale to vertex stage.

Occasionally games read off textureSize on the vertex stage to inform the fragment shader what size a texture is without querying in there. Scales were not present in the vertex shader to correct the sizes, so games were providing the raw upscaled texture size to the fragment shader, which was incorrect.

One downside is that the fragment and vertex support buffer description must be identical, so the full size scales array must be defined when used. I don't think this will have an impact though. Another is that the fragment texture count must be updated when vertex shader textures are used. I'd like to correct this so that the update is folded into the update for the scales.

Also cleans up a bunch of things, like it making no sense to call CommitRenderScale for each stage.

Fixes render scale causing a weird offset bloom in Super Mario Party and Clubhouse Games. Clubhouse Games still has a pixelated look in a number of its games due to something else it does in the shader.

* Split out support buffer update, lazy updates.

* Commit support buffer before compute dispatch

* Remove unnecessary qualifier.

* Address Feedback
2024-02-22 19:16:10 -05:00
sharmander
dc492b01cf CPU - Implement FCVTMS (Vector) (#2937)
* Add FCVTMS_V Implementation to Armeilleure

* Fix opcode designation

* Add tests

* Amend Ptc version

* Fix OpCode / Tests

* Create Math.Floor helper method + Update implementation

* Address gdk comments

* Re-address gdk comments

* Update ARMeilleure/Decoders/OpCodeTable.cs

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

* Update Tests to use 2S (4S) and 2D

Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2024-02-22 19:16:10 -05:00
Mary
b90b85fea8 sfdnsres: Implement NSD resolution (#2962)
This fix a missing implementation usage of NSD on IResolver when
requested on GetAddrInfoRequest* and GetHostByNameRequest*.
2024-02-22 19:16:10 -05:00
Emmanuel Hansen
4135a34bec fix build id case issue for enabled cheats (#2970) 2024-02-22 19:16:10 -05:00
MutantAura
d3ae4ecb70 Implement analog stick range modifier (#2783)
* adjust position vector + GUI

* remove brackets

* Update configuration

* Update ConfigurationFileFormat.cs

* rebase + review changes

* spacing

* revert deletion

* fix profile loading

* spacing

* comment spacing
2024-02-22 19:16:10 -05:00
Ac_K
36a7425e16 ffmpeg: Add extra checks and error messages (#2951)
* ffmpeg: Add extra checks and error messages

This PR adds some checks and logging error messages related to the ffmpeg context creation, that will prevent users to open issues because they don't have the correct packages installed.
Close #2762

* Update FFmpegContext.cs
2024-02-22 19:16:10 -05:00
Emmanuel Hansen
9fe5121c1f Add Cheat Manager (#2964)
* add cheatmanager

* use modloader to load cheats for manager

* addressed nits
2024-02-22 19:16:10 -05:00
Mary
6685017808 misc: Improve DNS blacklist for Nintendo servers (#2963)
This blocks more that have been seen in the wild
2024-02-22 19:16:10 -05:00
gdkchan
f029307df0 Force crop when presentation cached texture size mismatches (#2957) 2024-02-22 19:16:10 -05:00
gdkchan
5c97c6949e Add support for the R4G4 texture format (#2956) 2024-02-22 19:16:10 -05:00
gdkchan
e29ffb9a64 Fix A1B5G5R5 format for good (#2955) 2024-02-22 19:16:10 -05:00
Ac_K
eefe062692 friend: Stub IsFriendListCacheAvailable and EnsureFriendListAvailable (#2949)
* friend: Stub IsFriendListCacheAvailable and EnsureFriendListAvailable

This PR stubs IsFriendListCacheAvailable and EnsureFriendListAvailable call of friend service which close #2896.

Sadly, Super Bomberman R Online is still stuck on the loading screen and keep calling `TryPopFromFriendInvitationStorageChannel`, probably because another issue somewhere.

* Add FW version

* Apply suggestions from gdkchan

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

* Update IFriendService.cs

Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2024-02-22 19:16:10 -05:00
Ac_K
4000ad0ce7 am: Stub SetMediaPlaybackStateForApplication (#2952)
This PR stub `SetMediaPlaybackStateForApplication` of the am service. Accordingly to gdkchan it's needed by the Youtube app. This is checked by RE aswell.
2024-02-22 19:16:10 -05:00
Mary
d208c413bc kernel: Implement thread pinning support (#2840)
* kernel: Implement Thread pinning support

This commit adds support for 8.x thread pinning changes and implement SynchronizePreemptionState syscall.

Based on kernel 13.x reverse.

* Address gdkchan's comment

* kernel: fix missing critical section leave in SetActivity

Fix Unity games

* Implement missing bits on the interrupt handler and inline update pinning function as it cannot be generic

* Fix some bugs in SetActivity and SetCoreAndAffinityMask

* Address gdkchan's comments
2024-02-22 19:16:09 -05:00
gdkchan
0ddf130e6a Improve SocketOption handling (#2946) 2024-02-22 19:16:09 -05:00
Ac_K
ee589441fc hid: A little cleanup (#2950)
While I'm looking to the code, I've found some syntax issue, and a little inconsistencie between `ActivateNpad` and `ActivateNpadWithRevision`. Nothing more.
2024-02-22 19:16:09 -05:00
gdkchan
012feb7e98 Flip scissor box when the YNegate bit is set (#2941)
* Flip scissor box when the YNegate bit is set

* Flip scissor based on screen scissor state, account for negative scissor Y

* No need for abs when we already know the value is negative
2024-02-22 19:16:09 -05:00
gdkchan
4867383121 Fix GetHostByNameRequestWithOptions and GetHostByAddrRequestWithOptions (#2943) 2024-02-22 19:16:09 -05:00
gdkchan
f97d37e2ed Use minimum stream sample count on SDL2 audio backend (#2948) 2024-02-22 19:16:09 -05:00
gdkchan
5dbb2c2044 Fix wrong title language (#2933)
* Fix wrong title language

* Sort
2024-02-22 19:16:09 -05:00
gdkchan
0aa5e88c45 Fix DMA copy fast path line size when xCount < stride (#2942) 2024-02-22 19:16:09 -05:00
sharmander
a03b83c71c Fix missing default value of audio volume. (#2939) 2024-02-22 19:16:09 -05:00
gdkchan
cbb5a9087b Fix I2M texture copies when line length is not a multiple of 4 (#2938)
* Fix I2M texture copies when line length is not a multiple of 4

* Do not copy padding bytes for 1D copies

* Nit
2024-02-22 19:16:09 -05:00
gdkchan
80ec193984 Fix GetAddrInfoWithOptions and some sockets issues (#2936)
* Fix GetAddrInfoWithOptions and some sockets issues

* Was not supposed to remove this log
2024-02-22 19:16:09 -05:00
gdkchan
1f3463d72f Fix bug causing an audio buffer to be enqueued more than once (#2940) 2024-02-22 19:16:09 -05:00
Mary
1d9b85f24e Revert "sdl2: Update to Ryujinx.SDL2-CS 2.0.19 (#2907)"
This reverts commit 5dae02cfcb.
2024-02-22 19:16:09 -05:00
gdkchan
a60e9fb6dd Remove PortRemoteClosed warning (#2928) 2024-02-22 19:16:09 -05:00
Mary
92d1b365e1 misc: Update SPB to 0.0.4-build17 (#2903)
Update to a new SPB version targeting .NET 6.
2024-02-22 19:16:09 -05:00
Mary
e83ba702b8 sdl2: Update to Ryujinx.SDL2-CS 2.0.19 (#2907) 2024-02-22 19:16:09 -05:00
Alex Barney
67dd28898f Update to LibHac v0.14.3 (#2925)
* Update to LibHac v0.14.3

* Fix loading NCAs that don't have a data partition
2024-02-22 19:16:09 -05:00
sharmander
829f293e58 UI - Add Volume Controls + Mute Toggle (F2) (#2871)
* Add the ability to toggle mute in the status bar.

* Add the ability to toggle mute in the status bar.

* Formatting fixes

* Add hotkey (F2) to mute

* Add default hotkey to config.json

* Add ability to change volume via slider.

* Fix Headless

* Fix SDL2 Problem : Credits to d3xMachina

* Remove unnecessary work

* Address gdk comments

* Toggling with Hotkey now properly restores volume to original level.

* Toggling with Hotkey now properly restores volume to original level.

* Update UI to show Volume % instead of Muted/Unmuted

* Clean up the volume ui a bit.

* Undo unintentionally committed code.

* Implement AudRen Support

* Restore intiial volume level in function definition.

* Finalize UI

* Finalize UI

* Use clamp for bounds check

* Use Math.Clamp for volume in soundio

* Address comments by gdkchan

* Address remaining comments

* Fix missing semicolon

* Address remaining gdkchan comment

* Fix comment

* Change /* to //

* Allow volume slider to change volume immediately.
Also force label text to cast to int to prevent decimals from showing in status bar

* Remove blank line

* Undo setting of volume level when "Cancel" is pressed.

* Fix allignment for settings window code
2024-02-22 19:16:08 -05:00
gdkchan
9f345be945 Fix for texture pool not being updated when it should + buffer texture related fixes (#2911) 2024-02-22 19:16:08 -05:00
riperiperi
67d4f741e1 Add support for releasing a semaphore to DmaClass (#2926)
* Add support for releasing a semaphore to DmaClass

Fixes freezes in OpenGL games, primarily GameMaker ones such as Undertale.

* Address Feedback
2024-02-22 19:16:08 -05:00
gdkchan
d898fa76a5 Implement CSDB instruction (#2927) 2024-02-22 19:16:08 -05:00
VocalFan
d36d7b61dc Using more intense lossless compression. (#2811) 2024-02-22 19:16:08 -05:00
Mary
42ed672040 Remove debug configuration and schema (#2920)
The debug configuration can be created by the emulator and is an
artefact of the past.

I also took the liberty of removing the _schema.json file as most of the
time it is left unused/outdated.
2024-02-22 19:16:08 -05:00
Mary
ce979c1f53 Remove unused empty Ryujinx.Audio.Backends project (#2919) 2024-02-22 19:16:08 -05:00
Mary
a9d2c496a2 misc: Sync Config.json default debug config (#2904) 2024-02-22 19:16:08 -05:00
gdkchan
c24afa5f85 Fix SUATOM and other texture shader instructions with RZ dest (#2885)
* Fix SUATOM and other texture shader instructions with RZ dest

* Shader cache version bump
2024-02-22 19:16:08 -05:00
Mary
42e6af15aa Remove usage of Mono.Posix.NETStandard accross all projects (#2906)
* Remove usage of Mono.Posix.NETStandard in Ryujinx project

* Remove usage of Mono.Posix.NETStandard in ARMeilleure project

* Remove usage of Mono.Posix.NETStandard in Ryujinx.Memory project

* Address gdkchan's comments
2024-02-22 19:16:08 -05:00
riperiperi
935627f2ea Move texture anisotropy check to SetInfo (#2843)
Rather than calculating this for every sampler, this PR calculates if a texture can force anisotropy when its info is set, and exposes the value via a public boolean.

This should help texture/sampler heavy games when anisotropic filtering is not Auto, like UE4 ones (or so i hear?). There is another cost where samplers are created twice when anisotropic filtering is enabled, but I'm not sure how relevant this one is.
2024-02-22 19:16:08 -05:00
gdkchan
84871019c1 Implement remaining shader double-precision instructions (#2845)
* Implement remaining shader double-precision instructions

* Shader cache version bump
2024-02-22 19:16:08 -05:00
Mary
dcb72d0a4c misc: Fix alsoft.ini being present on Linux releases (#2902) 2024-02-22 19:16:08 -05:00
Piyachet Kanda
abeb840cf7 Implement UHADD8 instruction (#2908)
* Implement UHADD8 instruction along with a test unit

* Update PTC revision number
2024-02-22 19:16:08 -05:00
gdkchan
5e9fdaf310 Fix FLO.SH shader instruction with a input of 0 (#2876)
* Fix FLO.SH shader instruction with a input of 0

* Shader cache version bump
2024-02-22 19:16:07 -05:00
Mary
81c536b53f kernel: Improve GetInfo readability and update to 13.0.0 (#2900)
* kernel: Define InfoTYpe and make it less obscure when reading GetInfo

Also map ThreadTickCount to 25 instead of 0xF0000002 like 13.x kernel.

* kernel: Implement GetInfo IsApplication

* kernel: Implement GetInfo FreeThreadCount
2024-02-22 19:16:07 -05:00