Commit Graph

1623 Commits

Author SHA1 Message Date
08d13355ee Apply suggestions from code review
Address LDj3SNuD's feedback

Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com>
2021-04-16 18:30:46 +04:00
9c0dbb9c07 Make EntryTable<T> expandable
* EntryTable is now expandable instead of being a fixed slab.
* Remove EntryTable<T>.TryAllocate
* Remove Counter<T>.TryCreate

Address LDj3SNuD's feedback
2021-04-16 18:20:05 +04:00
5b4543e62c Re-trigger CI
Just for good measure...
2021-04-14 12:35:41 +04:00
28f43f5622 Dispose Counters before they hit the finalizer queue 2021-04-14 11:56:10 +04:00
11130f7826 Re-trigger CI 2021-04-13 22:52:01 +04:00
a9e56d0a89 Make EntryTable<T>.TryAllocate set entry to default 2021-04-13 21:34:58 +04:00
adb1dac60b Make Counter<T> finalizable
Most certainly quite an odd use case.
2021-04-13 21:34:53 +04:00
60e56f3efe Remove rejit requests queue logging 2021-04-13 11:41:48 +04:00
b65480cdf5 Fix more stale docs 2021-04-13 11:35:22 +04:00
f443167da8 Apply suggestions from code review
Address gdkchan's feedback

Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2021-04-13 11:22:30 +04:00
68bff558db Remove Block.TailCall since it is not used anymore 2021-04-13 11:12:59 +04:00
6f4cb3c0ad Make Counter<T> disposable 2021-04-13 11:12:59 +04:00
883faaff01 Print more information about the rejit queue 2021-04-13 11:12:58 +04:00
ac7006218d Set PPTC version 2021-04-13 11:12:55 +04:00
311f1fbba5 Return false on overflow 2021-04-13 11:12:35 +04:00
6c28be13a8 Make Counter a generic & use a 32-bit counter instead 2021-04-13 11:12:31 +04:00
4478a32114 Add PPTC support 2021-04-13 11:11:01 +04:00
1803b9fef9 Add Counter 2021-04-13 10:50:09 +04:00
98ac020097 Add on translation call counting 2021-04-13 10:50:08 +04:00
82582497a7 Add EntryTable<TEntry> 2021-04-13 10:50:07 +04:00
90163087a0 PPTC vs. giant ExeFS. (#2168)
* PPTC vs. giant ExeFS.

* InternalVersion = 2168

* Add new heuristic algorithm for calculating the number of threads for parallel translations that also takes into account the user's free physical memory and not just the number of CPU cores.

* Nit.

* Add an outer Header structure and add the hashes for both this new structure and the existing "inner" Header structure.

* InternalVersion = 2169
2021-04-13 03:24:36 +02:00
7344dee475 account: Adds AccountManager (#2184)
* account: Adds Account Manager

In a way to have Custom User Profiles merged in master faster, this PR adds a `AccountManager` class (based on `AccountUtils` class) and the following changes have been made:
- Adds a "default profile values" which were the old hardcoded ones.
- The image profile is moved to the Account service folder.
- The hardcoded UserId for the savedata is now using the `AccountManager` last opened one.
- The DeviceId in Mii service is changed to the right value (checked by REd sys:set call).

* Fix csproj

* Addresses gdkchan's comments

* Fix UserProfile fields

* Fix mii GetDeviceId()

* Update Ryujinx.HLE.csproj
2021-04-13 03:16:43 +02:00
001005b3d5 Fix sub-image copies on intel GPUs (#2198) 2021-04-13 03:09:42 +02:00
b662a26c7e nifm/ssl: Implement GetCurrentNetworkProfile and stub Ssl Service (#2186)
* nifm/ssl: Implement GetCurrentNetworkProfile and stub Ssl Service

* remove InterfaceVersion
2021-04-13 03:04:18 +02:00
73881fad19 Surface Flinger: Fix an oversight when closing a layer (#2192)
* Surface Flinger: Fix an oversight when closing a layer

As the title say.
I also took the liberty of changing the logic on how we select the
current layer being rendered to make it more explicit when opening and
creating layers.

NOTE: Found by Ac_k.

* check for RenderLayerId and not the dictionary size

This fix a possible race condition between the time you create a layer and set the one currently used for rendering
2021-04-13 02:56:16 +02:00
5cb83293bc Enable updates in portable mode. (related to #1885) (#2181)
* Enable updates in portable mode.

* Added update test!

* Enable update test again!

* Triggering CI

* Made this PR mergeable.
2021-04-09 01:19:21 +02:00
58660c8536 friend: Fixes PermissionLevel names (#2185)
This PR fixes the permission level names, nothing more.
2021-04-08 00:42:06 +02:00
d43a56726c (CPU) Fix CRC32 instruction when constant values are used as input (#2183) 2021-04-07 23:43:08 +02:00
fe452ac784 CI: Add option to manually trigger github actions 2021-04-07 21:20:15 +02:00
2b308bb36e CI: Add temporary fix for Windows nuget issues and fix git hashes for PRs 2021-04-07 21:17:16 +02:00
874540bb5c Allow DRAM size to be increased from 4GB to 6GB (#2174)
* Allow DRAM size to be increased from 4GB to 6GB

* Add option on the UI
2021-04-04 14:06:59 +02:00
3bc107d491 Hide debug artifacts (#2171) 2021-04-03 20:18:13 +02:00
0d27802902 Only flush commands when creating sync on Intel/AMD (windows) (#2165) 2021-04-03 11:10:37 +11:00
98ed81e4cd Improve StoreToContext emission (#2155)
* Improve StoreToContext emission

Hoist StoreToContext in dynamic branch fast & slow paths out into
their predecessor.

Reduces register pressure, code size and compile time because we're
throwing less stuff down the pipeline.

* Set PTC internal version

* Turn EmitDynamicTableCall private

* Re-trigger CI
2021-04-02 19:54:23 +02:00
d394c7ee98 Update README.MD to reflect new OpenGL requirements, gamedb statistics, mods support (#2167) 2021-04-02 19:45:01 +02:00
8b3eba7e13 Reduce allocation during SSA construction (#2162)
* Reduce allocation during SSA construction

* Re-trigger CI
2021-04-02 19:26:16 +02:00
529df341f1 Update Pro Controller Image + Trigger view (#2128)
* Update Pro Controller Image

This Updates the Pro controller Images.

* fix some nits
2021-04-02 17:09:15 +02:00
f665e1b409 Hold reference for render targets in use (#2156) 2021-04-02 16:33:39 +02:00
9ae60207c4 Fix Tamper Machine crash and timings (#2159)
* Add missing return

* Change TamperMachine sleep to 83ms

* Change constant name to PascalCase
2021-04-02 15:42:25 +02:00
524fe3bea4 Implement shader HelperThreadNV (#2163)
* Implement shader HelperThreadNV

* Bump shader cache version

* Use gl_HelperInvocation since its supported across all vendors

* Nit
2021-04-02 21:50:35 +11:00
f2cdceb846 Force command flush after creating a syncpoint (#2056)
* Force command flush after creating GL sync

* This is not required, as the commands were flushed on creation.

* Move comment.
2021-03-30 01:10:43 +02:00
4443e18909 Patch up DNS Blacklist (#2153)
Make the regex patterns case insensitive for robustness
2021-03-30 00:55:53 +02:00
0ee314fb3b Optimize PrintRoSectionInfo (#2151) 2021-03-29 18:31:16 +02:00
0d984f61b2 am: Stub ILibraryAppletAccessor RequestExit (#2142)
This PR stub ILibraryAppletAccessor (20) RequestExit call which is needed by Monster Hunter Rise when you press "Private Policy" at the beginning.
The game try to run the `WebApplet` which is already partially stubbed, then call `RequestExit` to know when the applet exits. If the call does nothing, the game just hang forever. If you signals the event, you can interracts with the menu again.
2021-03-28 01:13:01 +01:00
a0b4799f19 Fix ZN flags set for shader instructions using RZ.CC dest (#2147)
* Fix ZN flags set for shader instructions using RZ.CC dest

* Shader cache version bump and nits
2021-03-27 22:59:05 +01:00
e60bae1a94 misc: Add credit to AmiiboAPI properly and fix a wrong warning code (#2150)
* misc: Add credit to AmiiboAPI properly and fix a warning disable

This PR adds a properly credit to AmiiboAPI which is used in our Amiibo emulation in the Readme and in the about window.
I've changed a wrong warning code added in a recent PR too.

* Update README.md

* Fix aligment
2021-03-27 15:41:09 +01:00
0c1ea1212a Add the TamperMachine module for runtime mods and cheats (#1928)
* Add initial implementation of the Tamper Machine

* Implement Atmosphere opcodes 0, 4 and 9

* Add missing TamperCompilationException class

* Implement Atmosphere conditional and loop opcodes 1, 2 and 3

* Inplement input conditional opcode 8

* Add register store opcode A

* Implement extended pause/resume opcodes FF0 and FF1

* Implement extended log opcode FFF

* Implement extended register conditional opcode C0

* Refactor TamperProgram to an interface

* Moved Atmosphere classes to a separate subdirectory

* Fix OpProcCtrl class not setting process

* Implement extended register save/restore opcodes C1, C2 and C3

* Refactor code emitters to separate classes

* Supress memory access errors from the Tamper Machine

* Add debug information to tamper register and memory writes

* Add block stack check to Atmosphere Cheat compiler

* Add handheld input support to Tamper Machine

* Fix code styling

* Fix build id and cheat case mismatch

* Fix invalid immediate size selection

* Print build ids of the title

* Prevent Tamper Machine from change code regions

* Remove Atmosphere namespace

* Remove empty cheats from the list

* Prevent code modification without disabling the tampering

* Fix missing addressing mode in LoadRegisterWithMemory

* Fix wrong addressing in RegisterConditional

* Add name to the tamper machine thread

* Fix code styling
2021-03-27 15:12:05 +01:00
a5d5ca0635 Shader Cache: Move bindless checking from translation to decode (#2145) 2021-03-27 00:50:26 +01:00
32be8caa9d caps: Implement SaveScreenShot calls and cleanup (#2140)
* caps: Implement SaveScreenShot calls and cleanup

This PR implement:
- caps:u IAlbumApplicationService (32) SetShimLibraryVersion
- caps:c IAlbumControlService (33) SetShimLibraryVersion
- caps:su IScreenShotApplicationService (32) SetShimLibraryVersion
- caps:su IScreenShotApplicationService (203/205/210) SaveScreenShotEx0/SaveScreenShotEx1/SaveScreenShotEx2

ImageSharp is used to save the raw screenshot data as a JPG file following what the service does.
All screenshots are save in: `%AppData%\Ryujinx\sdcard\Nintendo\Album` folder. (as example a screenshot file path will be `%AppData%\Ryujinx\sdcard\Nintendo\Album\2021\03\26\2021032601020300-0123456789ABCDEF0123456789ABCDEF.jpg`

This is needed by Animal Crossing: New Horizon where screenshots looks like this:

And this is needed in Monster Hunter Rise but screenshots are currently empty due to another issue.

* remove useless comment

* Addresses gdkchan feedback

* Addresses gdkchan feedback 2

* remove useless comment 2

* Fix nits
2021-03-26 01:16:08 +01:00
4bd1ad16f9 Add Sqdmulh_Ve & Sqrdmulh_Ve Inst.s with Tests. (#2139) 2021-03-25 23:33:32 +01:00