aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS
AgeCommit message (Collapse)Author
2020-06-02SurfaceFlinger: fix some bugs (#1262)Thog
* SurfaceFlinger: fix some bugs This fixes some bugs in the current implementation and make it closer to the real implementation. * Fix align of some variables
2020-05-27Fix GetDesiredLanguage (#1275)mageven
* Fix GetDesiredLanguage * Correct tzcnt slip-up * Address gdkchan's comments
2020-05-27Fix GetDisplayVersion (#1276)mageven
2020-05-20time: Make sure to initialize the network system clock with a valid system ↵Thog
clock (#1259) This should fix AC:NH events and probably other games.
2020-05-15surfaceflinger: FreeBufferLocked doesn't reset the graphic bufferThog
That's the job of the user on Horizon (via SetPreallocatedBuffer).
2020-05-15Refactor out Application details from Horizon (#1236)mageven
* Initial Application refactor * Misc typo and access modifier fixes * Clean unused namespaces * Address gdkchan's comments * Move ticket reading to common method * Change IParentalControlService to use ApplicationLoader.ControlData
2020-05-15am: Implement common web applets (#1188)Thog
* am: Implemnet common web applets This implement parsing of input and output of web applets while making those close directly. TODO for the future: Use and hook a web browser. * Address Ac_K's comments
2020-05-15Surface Flinger: Implement GetBufferHistory (#1232)Thog
* Surface Flinger: Implement GetBufferHistory Also fix some bugs on the Surface Flinger implementation * Address Ac_K's comment
2020-05-15pctl: refactoring IParentalControlServiceFactory and IParentalControl… (#1219)Ac_K
* pctl: refactoring IParentalControlServiceFactory and IParentalControlService call Our previous implementation was totally guessed. Now it's implemented according to RE, even if it's stubbed because we will not support Parental Control for now. * unknownFlag > permissionFlag
2020-05-13nvdrv: Partially implementation of GetStatus (#1215)Ac_K
* nvdrv: Partially implementation of GetStatus This implement GetStatus call according to RE. Since we don't handle tranfert memory on the initialize of the service, it's fine sets fields at 0 for now. Tested on Undertale. Fix #635 * Fix struct
2020-05-13Add missing error code to Time (#1237)VolcaEM
The error code was taken from Switchbrew (https://switchbrew.org/wiki/Error_codes) Even if TimeServiceNotInitialized's "description" is 0, the result "value" of "(0 << ErrorCodeShift) | ModuleId" is 0x74 so it is not the same as "Success" (0)
2020-05-12am: Implement GetFriendInvitationStorageChannelEvent (#1220)Ac_K
* am: Implement GetFriendInvitationStorageChannelEvent This implement GetFriendInvitationStorageChannelEvent according to RE, needed by Streets of Rage 4 * Fix handle name * add GetNotificationStorageChannelEvent
2020-05-10Suppress CS0169 CS0649 warns from HID structs (#1222)mageven
Also fix typo in a pragma restore in Logger
2020-05-10Add various error codes to Settings (#1229)VolcaEM
The error codes were taken from Switchbrew (https://switchbrew.org/wiki/Error_codes)
2020-05-09Add two error codes to SDB PDM (#1230)VolcaEM
* Add two error codes to SDB PDM The error codes were taken from Switchbrew (https://switchbrew.org/wiki/Error_codes) * Remove empty line
2020-05-08Add two error codes to Mii (#1224)VolcaEM
* Add two error codes to Mii The two errors added are InvalidDatabaseSignatureValue and InvalidDatabaseEntryCount, which were taken from Switchbrew (https://switchbrew.org/wiki/Error_codes) * Fix typo * Remove unnecessary empty line
2020-05-08Add various error codes to NCM LR (#1225)VolcaEM
The error codes were taken from Switchbrew (https://switchbrew.org/wiki/Error_codes)
2020-05-06Fix block iteration on kernel MemoryManager InsertBlock function (#1184)gdkchan
2020-05-05set: Quick implementation of GetKeyCodeMap/GetKeyCodeMap2 (#1210)plutoo
* set: Quick implementation of GetKeyCodeMap/GetKeyCodeMap2 This fixed USB keyboard access in official titles. * hid: Stub SendKeyboardLockKeyEvent * Update Ryujinx.HLE/HOS/Services/Settings/ISettingsServer.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * set: KeyboardLayout bringup * set: Small bugfix * Fix GetKeyCodeMapImpl * Revert SystemRegion > RegionCode in Configuration * Fix SendKeyboardLockKeyEvent Co-authored-by: Ac_K <Acoustik666@gmail.com>
2020-05-04Add error code for denied internet request in Friends (#1207)VolcaEM
* Add error code for denied internet request in Friends * Fix formatting from previous PR
2020-05-04Add various error codes to Loader (#1208)VolcaEM
* Add various result codes to Loader The error codes were taken from Switchbrew (switchbrew.org/wiki/Error_codes) For the last 9 errors, Switchbrew says: ACID/ACI0 don't match for descriptor (descriptor) * Fix typo
2020-05-04Move kernel state out of the Horizon class (#1107)gdkchan
* Move kernel state from Horizon to KernelContext * Merge syscalls partial classes, split 32 and 64-bit variants * Sort usings
2020-05-04Implement a new physical memory manager and replace DeviceMemory (#856)gdkchan
* Implement a new physical memory manager and replace DeviceMemory * Proper generic constraints * Fix debug build * Add memory tests * New CPU memory manager and general code cleanup * Remove host memory management from CPU project, use Ryujinx.Memory instead * Fix tests * Document exceptions on MemoryBlock * Fix leak on unix memory allocation * Proper disposal of some objects on tests * Fix JitCache not being set as initialized * GetRef without checks for 8-bits and 16-bits CAS * Add MemoryBlock destructor * Throw in separate method to improve codegen * Address PR feedback * QueryModified improvements * Fix memory write tracking not marking all pages as modified in some cases * Simplify MarkRegionAsModified * Remove XML doc for ghost param * Add back optimization to avoid useless buffer updates * Add Ryujinx.Cpu project, move MemoryManager there and remove MemoryBlockWrapper * Some nits * Do not perform address translation when size is 0 * Address PR feedback and format NativeInterface class * Remove ghost parameter description * Update Ryujinx.Cpu to .NET Core 3.1 * Address PR feedback * Fix build * Return a well defined value for GetPhysicalAddress with invalid VA, and do not return unmapped ranges as modified * Typo
2020-05-03Add various error codes to Audio (#1201)VolcaEM
The error codes were taken from Switchbrew (switchbrew.org/wiki/Error_codes)
2020-05-03Add various error codes to BCAT (#1202)VolcaEM
* Add various error codes to BCAT The error codes were taken from Switchbrew (switchbrew.org/wiki/Error_codes) As for InternetRequestDenied, it seems that this error is common for multiple services like Account for example I already added this error code in Account in PR #1182 * Add some results codes from Libhac and keep names consistent
2020-05-03Improvements to input and input configuration in the GUI. (#849)Xpl0itR
* Improvements to input and input configuration in the GUI * Requested changes * nits * more nits
2020-05-02nvservice: add a lock around NvHostEvent and remove release fence on SFv2 ↵Thog
(#1197) * nvservice: add a lock to NvHostEvent * Disable surface flinger release fence and readd infinite timeout * FenceAction: Add a timeout of 1 seconds as this shouldn't wait forever anyuway * surfaceflinger: remove leftovers from the release fence * Don't allow infinite timeout on syncpoint while printing all timeout for better debugging
2020-05-02Add error code for denied internet request in Account (#1182)VolcaEM
InternetRequestDenied (I can't find a better name) was taken from Switchbrew (switchbrew.org/wiki/Error_codes) Regarding this error, SwitchBrew notes: "IsAnyInternetRequestAccepted with the output from GetClientId returned false."
2020-05-02Add various error codes to AM (#1183)VolcaEM
* Add various error codes to AM The error codes were taken from Switchbrew (https://switchbrew.org/wiki/Error_codes) * TitleID -> TitleId
2020-05-01nvservices: mitigate abort with heavy load on the GPU processing thread (#1173)Thog
* nvservices: mitigate abort with heavy load on the GPU processing thread. This should fix Mario Tennis and LM3 regressions with syncpoints. NOTE: Mario Tennis seems to have another issue related to the texture cache that happens randomly when starting a match. PS: Also add a debug logger for all known ioctl call to facilitate debugging and add a missing UpdateMin in EventSignal. * Address LDj3SNuD's comment * Address gdkchan's comment
2020-05-01am: add IsVrModeEnabled (#1189)Thog
* am: stub IsVrMode Needed by SSBU 7.0.0 * Address Ac_K's comments
2020-04-30Use the official JSON parser (#1151)Thog
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.
2020-04-30Add BCAT delivery cache support (#1154)Alex Barney
* Initial bcat delivery cache support * Use LibHac 0.11.0 * Add option to open the BCAT savedata directory
2020-04-30audren: implement Renderer Info output informations (#1179)Thog
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.
2020-04-28Fix hbl 2.3.1 and hbmenu 3.3.0 (#1171)Thog
* 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
2020-04-25Fix kernel memory allocator block coalescing (#1155)gdkchan
* Fix kernel memory allocator block coalescing * Fix and move clear bit logic to a separate method
2020-04-25SurfaceFlinger: fix SetPreallocatedBuffer correctness (#1153)Thog
Nintendo sets the buffer count in SetPreallocatedBuffer too. This fix triple buffering on all games and finally fix SSBU flickering.
2020-04-23Add support for dynamic docking/undocking (#1147)Thog
* 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
2020-04-22SurfaceFlinger: Invalid GraphicBuffer in SetPreallocatedBuffer (#1145)Thog
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.
2020-04-22SurfaceFlinger v2 (#981)Thog
* 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
2020-04-21Suppress warnings from fields never used or never assigned (CS0169 and ↵Cristallix
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
2020-04-19Implement GPU syncpoints (#980)Thog
* 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
2020-04-17System Time Offset Implementation (#1101)CJ Bok
* System Time Offset Implementation * Addressed @Thog's comments * Addressed JD's comments * Addressed @Thog's and @AcK77's comments * formatting correction
2020-04-15Ensure account save data exists when launching an extracted game (#1108)Alex Barney
Also fix a regression from cecbd256 where the dummy control data wouldn't be used
2020-04-12Implement update loader and log loaded application info (#1023)Xpl0itR
* Implement update loader * Add title version to titlebar and log loaded application info * nits * requested changes
2020-04-12Print the result name in SetTerminateResult if possible (#1105)Alex Barney
2020-04-07Use libhac for loading NSO and KIP (#1047)Elise
* 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
2020-04-03Revert SwKbd Applet ReadStruct and fix IApplet's ReadStruct to catch (#1087)mageven
error at compile time
2020-04-03HID SharedMem Rework (#1003)mageven
* 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
2020-03-30Reduce requirements for running homebrew (#1053)Thog
* Reduce requirements for running homebrews This commit change the following behaviours: - TimeZoneBinary system archive isn't required until guest code call LoadTimeZoneRule. - Fonts system archives aren't requred until a "pl:u" IPC call is made. - Custom font support was dropped. - TimeZoneBinary missing message is now an error and not a warning. * Address comments