Commit graph

1207 commits

Author SHA1 Message Date
Alex Barney
8994851b1f Update to LibHac 0.11.1 (#1186)
- Adds EnumerateDeliveryCacheDirectory to BCAT
2024-02-22 19:14:56 -05:00
Thog
34e509b1d6 Use the official JSON parser (#1151)
This remove Utf8son and JsonPrettyPrinter dependencies.

NOTE: the standard JSON parser doesn't support configurable
indentation, as a result, all the pretty printed JSON are indented with 2
spaces.
2024-02-22 19:14:56 -05:00
Alex Barney
955bbfae03 Add BCAT delivery cache support (#1154)
* Initial bcat delivery cache support

* Use LibHac 0.11.0

* Add option to open the BCAT savedata directory
2024-02-22 19:14:56 -05:00
Thog
398f7de2ec audren: implement Renderer Info output informations (#1179)
This implement the rendering information output informations of
RequestUpdate.

This is needed by some games to keep track of the count of update on the
DSP.
2024-02-22 19:14:56 -05:00
riperiperi
a52dc9f3e0 Fix depth clamp enable bit, unit scale for polygon offset. (#1178)
Verified with deko3d and opengl driver code.
2024-02-22 19:14:56 -05:00
Patrick Grabensteiner
a9321710c3 Create log folder if not exists fixes #1143 (#1146)
* Create log folder if not exists fixes #1143

* Fixed Format

Co-authored-by: Patrick Grabensteiner <patrick.grabensteiner@gmx.at>
2024-02-22 19:14:56 -05:00
Thog
81895574e9 Fix hbl 2.3.1 and hbmenu 3.3.0 (#1171)
* Fix hbl 2.3.1 and hbmenu 3.3.0

* log class: Add ServicePtm

* fix build issue

* do not cast titleId to byte

* Address Ac_K's comment
2024-02-22 19:14:56 -05:00
Xpl0itR
1735f4b6ee Revert package include condition (#1164) 2024-02-22 19:14:56 -05:00
gdkchan
7ed1dc2f24 Fix shadow RAM affecting MME methods (#1168) 2024-02-22 19:14:56 -05:00
Thog
0dc292388c Fix building of previous commit 2024-02-22 19:14:55 -05:00
gdkchan
0369d72107 Fix MME shadow RAM implementation (#1051) 2024-02-22 19:14:55 -05:00
gdkchan
36110d7937 Fix mode and Reg08.H1 decoding on XMAD instruction (#1156) 2024-02-22 19:14:55 -05:00
gdkchan
0ae32759a0 Fix texture level offset/size calculation when sparse tile width is > 1 (#1142)
* Fix texture level offset/size calculation when sparse tile width is > 1

* Sparse tile width affects layer size alignment aswell
2024-02-22 19:14:55 -05:00
gdkchan
51f0d878ce Fix kernel memory allocator block coalescing (#1155)
* Fix kernel memory allocator block coalescing

* Fix and move clear bit logic to a separate method
2024-02-22 19:14:55 -05:00
Thog
79fb6aec5d UI: Implement interactive search on GameTable (#1148)
As I was unable to disable the ctrl + f keybinding, this implement
something to make it works with the default GTK code logic.

Also remove unused _treeView static member.
2024-02-22 19:14:55 -05:00
gdkchan
49fa399acd Implement texture buffers (#1152)
* Implement texture buffers

* Throw NotSupportedException where appropriate
2024-02-22 19:14:55 -05:00
Xpl0itR
90310cbf36 Log Ryujinx Version, OS Name, CPU Name and RAM size (#1102)
* Log Ryujinx version and OS

* Log total RAM size and CPU name

* Requested changes

* requested change

* jd's requested changes

* jd's requested changes
2024-02-22 19:14:55 -05:00
gdkchan
903616d646 Do temp constant copy for CompareAndSwap, other improvements to PreAllocator (#1126)
* Do temp constant copy for CompareAndSwap, other improvements to PreAllocator

* Nit
2024-02-22 19:14:55 -05:00
mageven
fc9de6147b Implement Constant Color blends (#1119)
* Implement Constant Color blends and init blend states

* Address gdkchan's comments

Also adds Set methods to GpuState

* Fix descriptions of QueryModified
2024-02-22 19:14:55 -05:00
Thog
4257f44658 SurfaceFlinger: fix SetPreallocatedBuffer correctness (#1153)
Nintendo sets the buffer count in SetPreallocatedBuffer too.

This fix triple buffering on all games and finally fix SSBU flickering.
2024-02-22 19:14:55 -05:00
Thog
5d62db91e3 ui: Make ExtractSection supports updates (#1150)
This adds update support to the section extractor.
2024-02-22 19:14:55 -05:00
Xpl0itR
bc08a2be9c Fix metadata.json JsonParsingException crash (#1062)
* Load defualt metadata if the metadata.json gets corrupt

* Write to disk immediately to decrease the chances of corruption
2024-02-22 19:14:55 -05:00
Thog
cad20206fa Add support for dynamic docking/undocking (#1147)
* Add support for dynamic docking/undocking

As SurfaceFlinger is now working more accurately, we can now support
dynamic configuration of docking mode :)

* Simplify a bt the code

* Fix import ordering

* Remove unused argument
2024-02-22 19:14:55 -05:00
Thog
935b1b65a8 SurfaceFlinger: Invalid GraphicBuffer in SetPreallocatedBuffer (#1145)
This invalidate the GraphicBuffer on the consumer side when
SetPreallocatedBuffer is called on a buffer slot.

This fix rendering issues on games with a dynamic resolution like Yoshi
Crafted World.
2024-02-22 19:14:55 -05:00
gdkchan
fba2b6fbb3 Remove leftover of debugging code for shader texture format (#1141) 2024-02-22 19:14:55 -05:00
gdkchan
c5057d77d7 Initial conditional rendering support (#1012)
* Initial conditional rendering support

* Properly reset state

* Support conditional modes and skeleton a counter cache for future host conditional rendering

* Address PR feedback
2024-02-22 19:14:55 -05:00
Michael Kuklinski
dc8365216a Update .NET Core to 3.1, and update NuGet Packages (#1121)
* Updated all NuGet packages to latest, and updated the framework from .NET Core 3.0 to 3.1.

* Updating appveyor settings for 3.1

Updating appveyor to use the netcoreapp3.1 path instead of 3.0.

* Removing unneeded NuGet package System.Runtime.CompilerServices.Unsafe.

* Removing unused NuGet package SharpFontCore.

* Removing unused NuGet package TimeZoneConverter.Posix

* Cleaning up by adding newline to a csproj.

* Simplfying a NuGet conditional include, and adding a warning disable for an annoying NuGet package.

* I'm not sure if .travis.yml is still used, but I'm updating its 'dotnet' version to the correct SDK.

* Making the runtime version into its own environment variable so it's a bit easier to change in the future.

* Removing OpenTK.NetStandard reference from Ryujinx.Common

* Fixing indentation in Common.csproj

* Updating the README to specify .NET Core 3.1.

* Reverting the update of the GTKSharp package so it doesn't block the PR.
2024-02-22 19:14:55 -05:00
Thog
eebfe80d49 SurfaceFlinger v2 (#981)
* Rewrite SurfaceFlinger

Reimplement accurately SurfaceFlinger (based on my 8.1.0 reversing of it)

TODO: support swap interval properly and reintroduce disabled "game vsync" support.

* Some fixes for SetBufferCount

* uncomment a test from last commit

* SurfaceFlinger: don't free the graphic buffer in SetBufferCount

* SurfaceFlinger: Implement swap interval correctly

* SurfaceFlinger: Reintegrate Game VSync toggle

* SurfaceFlinger: do not push a fence on buffer release on the consumer side

* Revert "SurfaceFlinger: do not push a fence on buffer release on the consumer side"

This reverts commit 586b52b0bfab2d11f361f4b59ab7b7141020bbad.

* Make the game vsync toggle work dynamically again

* Unregister producer's Binder object when closing layer

* Address ripinperi's comments

* Add a timeout on syncpoint wait operation

Syncpoint aren't supposed to be waited on for more than a second.

This effectively workaround issues caused by not having a channel
scheduling in place yet.

PS: Also introduce Android WaitForever warning about fence being not
signaled for 3s

* Fix a print of previous commit

* Address Ac_K's comments

* Address gdkchan's comments

* Address final comments
2024-02-22 19:14:55 -05:00
gdkchan
6fa3fe7290 Implement SULD shader instruction (#1117)
* Implement SULD shader instruction

* Some nits
2024-02-22 19:14:54 -05:00
Cristallix
024be57c8d Suppress warnings from fields never used or never assigned (CS0169 and CS0649) (#919)
* chore : disable unwanted warnings and minor code cleanup

* chore : remove more warnings

* fix : reorder struct correctly

* fix : restore _isKernel and remove useless comment

* fix : copy/paste error

* fix : restore CallMethod call

* fix : whitespace

* chore : clean using

* feat : remove warnings

* fix : simplify warning removal on struct

* fix : revert fields deletion and code clean up

* fix : re-add RE value

* fix : typo
2024-02-22 19:14:54 -05:00
gdkchan
ec851d980d Report more realistic GPU timestamps when FastGpuTime is enabled (#1139) 2024-02-22 19:14:54 -05:00
Ficture Seven
650578c673 Avoid temporaries when pre-allocating Store %x, imm8/16/32 (#1123) 2024-02-22 19:14:54 -05:00
Thog
d2a249d472 Implement GPU syncpoints (#980)
* Implement GPU syncpoints

This adds support for GPU syncpoints on the GPU backend & nvservices.

Everything that was implemented here is based on my researches,
hardware testing of the GM20B and reversing of nvservices (8.1.0).

Thanks to @fincs for the informations about some behaviours of the pusher
and for the initial informations about syncpoints.

* syncpoint: address gdkchan's comments

* Add some missing logic to handle SubmitGpfifo correctly

* Handle the NV event API correctly

* evnt => hostEvent

* Finish addressing gdkchan's comments

* nvservices: write the output buffer even when an error is returned

* dma pusher: Implemnet prefetch barrier

lso fix when the commands should be prefetch.

* Partially fix prefetch barrier

* Add a missing syncpoint check in QueryEvent of NvHostSyncPt

* Address Ac_K's comments and fix GetSyncpoint for ChannelResourcePolicy == Channel

* fix SyncptWait & SyncptWaitEx cmds logic

* Address ripinperi's comments

* Address gdkchan's comments

* Move user event management to the control channel

* Fix mm implementation, nvdec works again

* Address ripinperi's comments

* Address gdkchan's comments

* Implement nvhost-ctrl close accurately + make nvservices dispose channels when stopping the emulator

* Fix typo in MultiMediaOperationType
2024-02-22 19:14:53 -05:00
mageven
1bb898b8ed Implement Depth Clamping (#1120)
* Implement Depth Clamping and add misc enums

* Fix formatting
2024-02-22 19:14:53 -05:00
CJ Bok
fea57a3c92 System Time Offset Implementation (#1101)
* System Time Offset Implementation

* Addressed @Thog's comments

* Addressed JD's comments

* Addressed @Thog's and @AcK77's comments

* formatting correction
2024-02-22 19:14:53 -05:00
Ficture Seven
df91d3a1b2 Improve V128 (#1097)
* Improve V128

* Use LayoutKind.Sequential instead

* Add As<T>, Get<T> & Set<T>

* Fix CpuTest

* Rename Get<T> & Set<T> to Extract<T> & Insert<T>

* Add XML documentation

* Nit
2024-02-22 19:14:53 -05:00
mageven
d16f6b728d Fix oversight in depth range initialization from PR #1093 (#1112) 2024-02-22 19:14:53 -05:00
Alex Barney
a55884be14 Ensure account save data exists when launching an extracted game (#1108)
Also fix a regression from cecbd256 where the dummy control data wouldn't be used
2024-02-22 19:14:53 -05:00
gdkchan
05f27aa1bc Fix negation of HADD2 constant buffer source (#1116) 2024-02-22 19:14:53 -05:00
Xpl0itR
5e017b93e2 Implement update loader and log loaded application info (#1023)
* Implement update loader

* Add title version to titlebar and log loaded application info

* nits

* requested changes
2024-02-22 19:14:53 -05:00
Alex Barney
e80acc7037 Print the result name in SetTerminateResult if possible (#1105) 2024-02-22 19:14:53 -05:00
Ficture Seven
76623d8028 Optimize %x ^ %x = 0 (#1094)
* JIT: Optimize %x ^ %x = 0

* Address feedback

* Fix typo
2024-02-22 19:14:53 -05:00
Elise
dba95ee5bd Use libhac for loading NSO and KIP (#1047)
* Use libhac for loading NSOs and KIPs

* Fix formatting

* Refactor KIP and NSO executables for libhac

* Fix up formatting

* Remove Ryujinx.HLE.Loaders.Compression

* Remove reference to Ryujinx.HLE.Loaders.Compression in NxStaticObject.cs

* Remove reference to Ryujinx.HLE.Loaders.Compression in KernelInitialProcess.cs

* Rename classes in Ryujinx.HLE.Loaders.Executables

* Fix space alignment

* Fix up formatting
2024-02-22 19:14:53 -05:00
mageven
e14c484a7d Simple GPU fixes (#1093)
* Implement RasterizeEnable

* Match viewport count to hardware

* Simplify ScissorTest tracking around Blits

* Disable RasterizerDiscard around Blits and track its state

* Read RasterizeEnable reg as bool and add doc
2024-02-22 19:14:53 -05:00
riperiperi
68c86c6a72 Use the jump table for HighCq tail continues. (#1088)
* Use the jump table for tail continues.

This path is always reached when a function larger than our current length limit (currently 5000) is compiled.

* Use Call Flag rather than 1L
2024-02-22 19:14:53 -05:00
Thog
02d22f2e26 libhac: use ApplicationControlProperty instead of Nacp (#1073)
* libhac: use ApplicationControlProperty instead of Nacp

Nacp was marked as deprecated in 0.10.0, this PR remove all usage of it
from Ryujinx and use the new struct ApplicationControlProperty.

* Address Moose's comment
2024-02-22 19:14:53 -05:00
mageven
632b895f25 Revert SwKbd Applet ReadStruct and fix IApplet's ReadStruct to catch (#1087)
error at compile time
2024-02-22 19:14:53 -05:00
gdkchan
c5c84df1fb Better IPA shader instruction implementation (#1082)
* Fix varying interpolation on fragment shader

* Some nits

* Alignment
2024-02-22 19:14:53 -05:00
mageven
e34c4b51ec HID SharedMem Rework (#1003)
* Delete old HLE.Input

* Add new HLE Input.

git shows Hid.cs as modified because of the same name. It is new.

* Change HID Service

* Change Ryujinx UI to reflect new Input

* Add basic ControllerApplet

* Add DebugPad

Should fix Kirby Star Allies

* Address Ac_K's comments

* Moved all of HLE.Input to Services.Hid
* Separated all structs and enums each to a file
* Removed vars
* Made some naming changes to align with switchbrew
* Added official joycon colors

As an aside, fixed a mistake in touchscreen headers and added checks to
important SharedMem structs at init time.

* Further address Ac_K's comments

* Addressed gdkchan's and some more Ac_K's comments

* Address AcK's review comments

* Address AcK's second review comments

* Replace missed Marshal.SizeOf and address gdkchan's comments
2024-02-22 19:14:52 -05:00
gdkchan
b0397fcbd2 Remove output interpolation qualifier (#1070) 2024-02-22 19:14:52 -05:00