Commit graph

2275 commits

Author SHA1 Message Date
gdkchan
5e538694ee Fix GetWritableRegion write-back (#2456) 2024-02-22 19:15:53 -05:00
gdkchan
0cf488acc9 Unscale textureSize when resolution scaling is used (#2441)
* Unscale textureSize when resolution scaling is used

* Fix textureSize on compute

* Flag texture size as needing res scale values too
2024-02-22 19:15:53 -05:00
gdkchan
7f80d453c5 Flush UBO updates more frequently (#2407) 2024-02-22 19:15:53 -05:00
gdkchan
b41cafa0fa Separate GPU engines and make state follow official docs (part 1/2) (#2422)
* Use DeviceState for compute and i2m

* Migrate 2D class, more comments

* Migrate DMA copy engine

* Remove now unused code

* Replace GpuState by GpuAccessorState on GpuAcessor, since compute no longer has a GpuState

* More comments

* Add logging (disabled)

* Add back i2m on 3D engine
2024-02-22 19:15:53 -05:00
Mary
d8e189cc10 frontend: Add a SDL2 headless window (#2310) 2024-02-22 19:15:53 -05:00
gdkchan
970edee484 Allow shader language and target API to be specified on the shader translator (#2402) 2024-02-22 19:15:53 -05:00
emmauss
719b2652c1 Add portable screenshot folder (#2447)
* add portable screenshot folder

* fix style

Co-authored-by: Ac_K <Acoustik666@gmail.com>

Co-authored-by: Ac_K <Acoustik666@gmail.com>
2024-02-22 19:15:53 -05:00
Ac_K
5f30ba0144 ui: Fixes GetShrinkedGamepadName (#2444)
There is a wrong condition in `GetShrinkedGamepadName` which throw an oob if the controller name is equal to the checked value. It's now fixed and shoud closes #2442 .
2024-02-22 19:15:53 -05:00
Ac_K
226c69ef15 nifm: Fixes IsDynamicDnsEnabled not supported (#2443)
For a strange reason `IPInterfaceProperties.IsDynamicDnsEnabled` returns a `PlatformNotSupported` exception in Linux.
This PR fixes this issue with a `try/catch` and set the value to false. Closes #2415.
2024-02-22 19:15:53 -05:00
Ac_K
cd62250958 aoc: Fixes some inconsistencies (#2434)
* aoc: Fixes some inconsistencies

This PR fixes an wrong returned value (introduced in #2414) which cause some DLC not recognized in some games like Super Robot War T.
Additionnally to that, I've removed the EventHandle check too, because it could cause some issues, but sadly it doesn't do the job so I reverted the changes. It should fix Diablo III: Eternal Collection.

* Fix loop

* Revert TitleLanguage change

* write only available ids
2024-02-22 19:15:53 -05:00
mpnico
254a1c1fc1 Command line argument -f doesn't toggle 'Start games in fullscreen mode' (#2424)
Closes Ryujinx#2308
2024-02-22 19:15:52 -05:00
Billy Laws
6ac51150ca Implement 12.0.0 hwopus functions (#2410)
Based off of my RE of 12.0.2 audio services, the newly added parameter can be safely ignored due to ryu not using fixed-size I/O buffers.
2024-02-22 19:15:52 -05:00
riperiperi
33e3e6b148 Honour copy dependencies when switching render target (#2433)
* Honour copy dependencies when switching render target

When switching from one render target to another, when both have a copy dependency to each other, a copy can be deferred on the second target when unbinding the first.

Before, this would not be honoured before binding the new texture, so the copy would stay deferred until the render targets change again, at which point it would copy in old data and essentially clear all the draws done during that time.

This change runs synchronize memory to make sure that copies are honoured. This can cause a redundant copy, but it's better than it breaking for now.

This should fix miiedit on AMD/Intel GPUs on windows. May fix other games, or perhaps rare copy dependency bugs on NVIDIA too.

* Address feedback
2024-02-22 19:15:52 -05:00
Ac_K
eeb120da2b aoc: Fix wrong check (#2427)
This PR fixes a wrong check added in #2414 which made Pokémon crash.
2024-02-22 19:15:52 -05:00
Mary
9987a75c84 Fix disposing of IPC sessions server at emulation stop (#2334) 2024-02-22 19:15:52 -05:00
gdkchan
5d6f3dce74 Initial support for separate GPU address spaces (#2394)
* Make GPU memory manager a member of GPU channel

* Move physical memory instance to the memory manager, and the caches to the physical memory

* PR feedback
2024-02-22 19:15:52 -05:00
Ac_K
c184e1e31f aoc/am: Cleanup aoc service and stub am calls (#2414)
* aoc/am: Cleanup aoc service and stub am calls

This PR implement aoc call `GetAddOnContentListChangedEventWithProcessId` (Closes #2408) and `CreateContentsServiceManager`. Additionnally, a big cleanup (checked by RE on latest firmware) is made on the whole service. I've added `CountAddOnContent`, `ListAddOnContent` and `GetAddonContentBaseId` for games which require version `1.0.0-6.2.0` too.

Am service call `ReportUserIsActive` is stubbed (checked by RE, closes #2413).

Since some logic in the service (aoc) which handle the DLCs has been changed, it could be nice to have some testing to be sure there is no regression.

* Remove wrong check

* Addresses gdkchan feedback

* Fix GetAddOnContentLostErrorCode

* fix null pid in services

* Add missing comment

* remove leftover comment
2024-02-22 19:15:52 -05:00
emmauss
f8a159c4b7 Add Screenshot Feature (#2354)
* Add internal screenshot  capabilities

* update version notice
2024-02-22 19:15:52 -05:00
Ac_K
13d9d48be3 no name: Mii Editor applet support (#2419)
* no name: Mii Editor applet support

* addresses gdkchan feedback

* Fix comment

* Bypass MountCounter of MiiDatabaseManager

* Fix GetSettingsPlatformRegion

* Disable Applet Menu for unsupported firmwares
2024-02-22 19:15:52 -05:00
gdkchan
b79869874f Add support for custom line widths (#2406) 2024-02-22 19:15:51 -05:00
gdkchan
778f877345 Fix default value for unwritten shader outputs (#2412)
* Fix shader default output values

* Shader cache version bump
2024-02-22 19:15:51 -05:00
gdkchan
48e6e9b254 Fix texture sampling with depth compare and LOD level or bias (#2404)
* Fix texture sampling with depth compare and LOD level or bias

* Shader cache version bump

* nit: Sorting
2024-02-22 19:15:51 -05:00
Ac_K
736b631829 caps: Stubs GetAlbumFileList0AafeAruidDeprecated and GetAlbumFileList3AaeAruid (#2403)
This PR stubs caps service call `GetAlbumFileList0AafeAruidDeprecated` and `GetAlbumFileList3AaeAruid` (Closes #2035, Closes #2401), both are checked by RE.
This avoid using "ignore missing services" when you want to play World of Light in Super Smash Bros Ultimate.
2024-02-22 19:15:51 -05:00
ooa113y
02e8d567e6 Improve gameTable search (#2398)
* Improve gameTable search

* Remove useless split

* Remove unneeded brackets

* Simplify searchEqualFunc

Co-authored-by: Ac_K <Acoustik666@gmail.com>

* Remove leftovers (oops)

Co-authored-by: Ac_K <Acoustik666@gmail.com>
2024-02-22 19:15:51 -05:00
emmauss
1d972fc058 Add Direct Mouse Support (#2374)
* and direct mouse support

* and direct mouse support

* hide cursor if mouse enabled

* add config

* update docs

* sorted usings
2024-02-22 19:15:51 -05:00
gdkchan
0b1bb003da Initial support for GPU channels (#2372)
* Ground work for separate GPU channels

* Rename TextureManager to TextureCache

* Decouple texture bindings management from the texture cache

* Rename BufferManager to BufferCache

* Decouple buffer bindings management from the buffer cache

* More comments and proper disposal

* PR feedback

* Force host state update on channel switch

* Typo

* PR feedback

* Missing using
2024-02-22 19:15:51 -05:00
riperiperi
2045d2d21a Inherit buffer tracking handles rather than recreating on resize (#2330)
This greatly speeds up games that constantly resize buffers, and removes stuttering on games that resize large buffers occasionally:

- Large improvement on Super Mario 3D All-Stars (#1663 needed for best performance)
- Improvement to Hyrule Warriors: AoC, and UE4 games. These games can still stutter due to texture creation/loading.
- Small improvement to other games, potential 1-frame stutters avoided.

`ForceSynchronizeMemory`, which was added with POWER, is no longer needed. Some tests have been added for the MultiRegionHandle.
2024-02-22 19:15:51 -05:00
Ac_K
992f7e32b1 settings: Implement GetDeviceNickName and SetDeviceNickName (#2383)
* settings: Implement GetDeviceNickName and SetDeviceNickName

This PR implement `set` and `sys:set` calls : `GetDeviceNickName` and `SetDeviceNickName` accordingly to RE.
I've cleaned up both services a bit and `SystemStateMgr` class too.

Closes #2110

* Addresses gdkchan_s feedback
2024-02-22 19:15:51 -05:00
Ac_K
8f50685a2f nfc/nfp: Implement ISystemManager and ISystem (#2381)
* nfc/nfp: Implement ISystemManager and ISystem

This PR add permission levels for `nfc` and `nfp` services:
- `nfc`: `CreateUserInterface` and `CreateSystemInterface` are implemented.
- `INfc`: `Initialize` and `IsNfcEnabled` calls are stubbed.
- `nfp`: `CreateDebugInterface` and `CreateSystemInterface` are implemented.
- `INfp`: `GetRegisterInfo2` for `IDebug` and `ISystem` are implemented.

* Addresses gdkchan feedback
2024-02-22 19:15:51 -05:00
gdkchan
7f57e9557d Reduce number of dlls on distribution with single file publish (#2211)
* Enable single file publish

* Set DebugType to embedded on build scripts
2024-02-22 19:15:51 -05:00
Ac_K
1e56e978f6 input: Fixes TouchPoint wrong attribute (#2390) 2024-02-22 19:15:51 -05:00
gdkchan
6e15ad8f11 Fix shader texture LOD query (#2397) 2024-02-22 19:15:50 -05:00
gdkchan
baab64ec76 Implement VORN (register) Arm32 instruction (#2396) 2024-02-22 19:15:50 -05:00
gdkchan
bdc5aadfab Pass all inputs when geometry shader passthrough is enabled (#2362)
* Pass all inputs when geometry shader passthrough is enabled

* Shader cache version bump
2024-02-22 19:15:50 -05:00
Ac_K
4abeb19e08 hid: Cleanup and implement some calls (#2380) 2024-02-22 19:15:50 -05:00
ooa113y
0fea62bc1b Unbind input on middle click (#2358)
* Unbind input on middle click

* Clear _middleMousePressed unconditionally

* Remove unneded initialization code

* Swap conditions

* CR fixes
2024-02-22 19:15:50 -05:00
Ac_K
c16bd618fb prepo: Implement SaveSystemReport and SaveSystemReportWithUser (#2379) 2024-02-22 19:15:50 -05:00
Ac_K
85609aa324 pl: Implement GetSharedFontInOrderOfPriorityForSystem (#2382) 2024-02-22 19:15:50 -05:00
Mary
8a22d55b11 mii: Fix multiple inconsistencies (#2392)
I found multiple inconsistencies while diffing with latest sdb, this PR fixes those findings.
2024-02-22 19:15:50 -05:00
Mary
091d1be349 kernel: Implement MapTransferMemory and UnmapTransferMemory (#2386)
Based on my reversing of kernel 12.0.0
2024-02-22 19:15:50 -05:00
Ac_K
044055a776 ipc: Remove size checks for buffer type 0x21/0x22 (#2387)
* ipc: Remove size checks for buffer type 0x21/0x22

Since original IPC implementation doesn't check the buffers size, there is no reason to check them so I've removed it. Checking the buffers addresses could prevent to unexpected behaviors.

That's fix a bsd service issue with some homebrew and some games like Knockout City (https://github.com/Ryujinx/Ryujinx-Games-List/issues/3622) which is now bootable:

* addresses gdkchan's review
2024-02-22 19:15:50 -05:00
Ac_K
106707cdc8 account: Fix wrong condition in TrySelectUserWithoutInteraction (#2384)
* account: Fix wrong condition in TrySelectUserWithoutInteraction

Since the implementation of User Profiles, we can get more than one profile stored. This PR fixes a wrong condition in `TrySelectUserWithoutInteraction`.

Closes #2320

* Some cleanup
2024-02-22 19:15:50 -05:00
Ac_K
3a228311cc am: Add all known AppletMessage (#2378)
This PR add all known AppletMessage values for accuracy, nothing more.
`MessageInfo` is renamed to the right `AppletMessage` name.
2024-02-22 19:15:50 -05:00
gdkchan
97745602f1 Fix separate bindless sampler at offset 0 (#2360) 2024-02-22 19:15:50 -05:00
LukeFZ
551daa32cc hid/irs: Stub IsFirmwareUpdateAvailableForSixAxisSensor and CheckFirmwareVersion (#2371)
* Stub two services

Stubs IHidServer::IsFirmwareUpdateAvailableForSixAxisSensor and IIrSensorServer::CheckFirmwareVersion

* Apply suggestions from code review

Also changed PackedMcuVersion to be two shorts instead of two bytes, because that's its actual type

* Apply new code review suggestions

Degroup field from previous assignation + Add padding after SixAxisSensorHandle
2024-02-22 19:15:50 -05:00
Mary
92a227eb14 Miria: Make default profile loads Pro Controller by default (#2368)
This was a regression introduced by Miria.
2024-02-22 19:15:50 -05:00
riperiperi
5ffbd25b8a End shader decoding when reaching a block that starts with an infinite loop (after BRX) (#2367)
* End shader decoding when reaching an infinite loop

The NV shader compiler puts these at the end of shaders.

* Update shader cache version
2024-02-22 19:15:50 -05:00
emmauss
1b37b8a4e0 Add TouchScreen Manager (#2333) 2024-02-22 19:15:50 -05:00
EmulationFanatic
74560dd5ff Increase height of Settings Window (#2355) 2024-02-22 19:15:50 -05:00
Mary
c2b34a818b GAL: Fix sampler leaks on exit (#2353)
Before this, all samplers instance were leaking on exit because the
dispose method was never getting called.

This fix this issue by making TextureBindingsManager disposable and
calling the dispose method in the TextureManager.
2024-02-22 19:15:50 -05:00