aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS
AgeCommit message (Collapse)Author
2020-07-04sockets: Make sure to write the receivedBuffer (#1346)Mary
Fix #1341
2020-06-23Implement dlc management window (#1313)Xpl0itR
* Implement dlc management window * reduce repetition * Implement per NCA toggling of DLC rather than per container
2020-06-22Update NRR structs (#1291)VolcaEM
* Update NRR structs This was based on Switchbrew page: switchbrew.org/wiki/NRR * Address review comments
2020-06-20Implement aoc:u and support loading AddOnContent (#1221)mageven
* Initial rebased AddOnContent support * Fix bounds calculation * Use existing GameCard in VFS per Xpl0itR's suggestion + Add dummy IPurchaseEventManager per AcK's suggestion * Support multiple containers * Add option to selectively disable addons * Import tickets from AOC FS * Load all nsps in base directory automatically * Revert LoadNsp renaming Removes conflicts with Mods PR. Not much is lost, old names were fine. * Address AcK's comments * Address Thog's comments Dispose opened nsp files Fix potential bug by clearing metadata on load
2020-06-16Add Profiled Persistent Translation Cache. (#769)LDj3SNuD
* Delete DelegateTypes.cs * Delete DelegateCache.cs * Add files via upload * Update Horizon.cs * Update Program.cs * Update MainWindow.cs * Update Aot.cs * Update RelocEntry.cs * Update Translator.cs * Update MemoryManager.cs * Update InstEmitMemoryHelper.cs * Update Delegates.cs * Nit. * Nit. * Nit. * 10 fewer MSIL bytes for us * Add comment. Nits. * Update Translator.cs * Update Aot.cs * Nits. * Opt.. * Opt.. * Opt.. * Opt.. * Allow to change compression level. * Update MemoryManager.cs * Update Translator.cs * Manage corner cases during the save phase. Nits. * Update Aot.cs * Translator response tweak for Aot disabled. Nit. * Nit. * Nits. * Create DelegateHelpers.cs * Update Delegates.cs * Nit. * Nit. * Nits. * Fix due to #784. * Fixes due to #757 & #841. * Fix due to #846. * Fix due to #847. * Use MethodInfo for managed method calls. Use IR methods instead of managed methods about Max/Min (S/U). Follow-ups & Nits. * Add missing exception messages. Reintroduce slow path for Fmov_Vi. Implement slow path for Fmov_Si. * Switch to the new folder structure. Nits. * Impl. index-based relocation information. Impl. cache file version field. * Nit. * Address gdkchan comments. Mainly: - fixed cache file corruption issue on exit; - exposed a way to disable AOT on the GUI. * Address AcK77 comment. * Address Thealexbarney, jduncanator & emmauss comments. Header magic, CpuId (FI) & Aot -> Ptc. * Adaptation to the new application reloading system. Improvements to the call system of managed methods. Follow-ups. Nits. * Get the same boot times as on master when PTC is disabled. * Profiled Aot. * A32 support (#897). * #975 support (1 of 2). * #975 support (2 of 2). * Rebase fix & nits. * Some fixes and nits (still one bug left). * One fix & nits. * Tests fix (by gdk) & nits. * Support translations not only in high quality and rejit. Nits. * Added possibility to skip translations and continue execution, using `ESC` key. * Update SettingsWindow.cs * Update GLRenderer.cs * Update Ptc.cs * Disabled Profiled PTC by default as requested in the past by gdk. * Fix rejit bug. Increased number of parallel translations. Add stack unwinding stuffs support (1 of 2). Nits. * Add stack unwinding stuffs support (2 of 2). Tuned number of parallel translations. * Restored the ability to assemble jumps with 8-bit offset when Profiled PTC is disabled or during profiling. Modifications due to rebase. Nits. * Limited profiling of the functions to be translated to the addresses belonging to the range of static objects only. * Nits. * Nits. * Update Delegates.cs * Nit. * Update InstEmitSimdArithmetic.cs * Address riperiperi comments. * Fixed the issue of unjustifiably longer boot times at the second boot than at the first boot, measured at the same time or reference point and with the same number of translated functions. * Implemented a simple redundant load/save mechanism. Halved the value of Decoder.MaxInstsPerFunction more appropriate for the current performance of the Translator. Replaced by Logger.PrintError to Logger.PrintDebug in TexturePool.cs about the supposed invalid texture format to avoid the spawn of the log. Nits. * Nit. Improved Logger.PrintError in TexturePool.cs to avoid log spawn. Added missing code for FZ handling (in output) for fp max/min instructions (slow paths). * Add configuration migration for PTC Co-authored-by: Thog <me@thog.eu>
2020-06-06Stubbing ImportServerPki (#1281)Shrek5InTheatres2019
* Stubbed ImportServerPki * thought it might be nice to name this variable properly * i really need to name variables better * Change Var Co-authored-by: Thog <thog@protonmail.com> * Change .ReadBytes(5) to IPC send buffer Co-authored-by: Thog <thog@protonmail.com> * Add description comment Co-authored-by: Thog <thog@protonmail.com> * fix build issue * Resolve final suggestion Co-authored-by: Thog <thog@protonmail.com> * uhh * it should work now shut up * aligned variables just look so much nicer :) * better variable alignment * aligned Co-authored-by: Thog <thog@protonmail.com>
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