aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-11-14Implement a rudimentary applets system (#804)jduncanator
* Implement Player Select applet * Initialize the Horizon system reference * Tidy up namespaces * Resolve nits * Resolve nits * Rename stack to queue * Implement an applet FIFO * Remove debugging log * Log applet creation events * Reorganise AppletFifo * More reorganisation * Final changes
2019-11-14Add Mrs & Msr (Nzcv) Inst., with Tests. (#819)LDj3SNuD
* Add Mrs & Msr (Nzcv) Inst., with Tests. * Don't use `NativeInterface`.
2019-11-10Update KEYS.md to use a new dumping guide and correct title.key formatting ↵MysticExile
(#814) * Update title.keys formatting and add key dumping guide * Update README.md to reflect changes in KEYS.md * Address feedback and minor style changes * Remove key templates * Fix Co-Authored-By: Ac_K <Acoustik666@gmail.com> * Fix 2 Co-Authored-By: jduncanator <1518948+jduncanator@users.noreply.github.com> * Add a description of what keys are * Minor changes and style fixes * Fix 3
2019-11-09Fix Fcmge_S/V & Fcmgt_S/V Inst.s (#815)LDj3SNuD
* Fix Fcmge_S/V & Fcmgt_S/V. Follow-up Fcm**_S/V & Fc*mp*_S. Improve CmpCondition enum. Nits. * Optimize Fccmp*_S & Fcmp*_S. * Fix cvtsd2si opcode. * Address PR feedback.
2019-11-08Improve IRoInterface logic (#809)Thomas Guillemard
* hle: Improve IRoInterface logic This commit contains a little rewrite of IRoInterface to fix some issues that we were facing on some recent games (AC3 Remastered & Final Fantasy VIII Remastered) Related issues: - https://github.com/Ryujinx/Ryujinx-Games-List/issues/196 * Address comments
2019-11-08Add detail of ZbcSetTableArguments (#810)Thomas Guillemard
* Add detail of ZbcSetTableArguments This is a missing part of the #800 PR that cause an assert to be triggered in debug mode. Also, remove Fence in SurfaceFlinger as it's a duplicate of NvFence. * Fix critical issue in size checking of ioctl oops
2019-11-08Update README.md to reflect new changes in the Homebrew used and mentioned ↵MysticExile
(#813)
2019-11-03hle: Fix some inconsistencies in namespace naming in Services (#808)Thomas Guillemard
Also fix IShopServiceAccessSystemInterface being in the wrong namespace.
2019-11-03Rewrite nvservices (#800)Thomas Guillemard
* Start rewriting nvservices internals TODO: - nvgpu device interface - nvhost generic device interface * Some clean up and fixes - Make sure to remove the fd of a closed channel. - NvFileDevice now doesn't implement Disposable as it was never used. - Rename NvHostCtrlGetConfigurationArgument to GetConfigurationArguments to follow calling convention. - Make sure to check every ioctls magic. * Finalize migration for ioctl standard variant TODO: ioctl2 migration * Implement SubmitGpfifoEx and fix nvdec * Implement Ioctl3 * Implement some ioctl3 required by recent games * Remove unused code and outdated comments * Return valid event handles with QueryEvent Also add an exception for unimplemented event ids. This commit doesn't implement accurately the events, this only define different events for different event ids. * Rename all occurance of FileDevice to DeviceFile * Restub SetClientPid to not cause regressions * Address comments * Remove GlobalStateTable * Address comments * Align variables in ioctl3 * Some missing alignments * GetVaRegionsArguments realign * Make Owner public in NvDeviceFile * Address LDj3SNuD's comments
2019-11-01Update controller config (#793)Wardoc
* Update Config Correct a bad Controller Left and Right Joycon config * Update config to correct A and B * Update To fix buttons X and Y Update To fix buttons X and Y * Removed stick_y
2019-10-31.NET Core 3.0 is here! (#784)LDj3SNuD
* .NET Core 3.0 is here! * Remove IMemoryManager.cs and its references. * Add T Math/F.FusedMultiplyAdd(T, T, T). Nits. * Nit. * Update appveyor.yml * Revert "Resolve Visual Studio build issues" This reverts commit 1772128ce0fc058e6280001aace3a77a7a96897b. * Update SvcTable.cs
2019-10-31Update README.md (#802)GalladeGuy
* Update README.md Improve grammar, replace Switch hacking guide with one that's more up-to-date, and add a guide for shared font dumping * Update README.md * Remove shared fonts section
2019-10-31Increase IPC buffer size (#803)jduncanator
This is a hack, but it works for now. We should really determine a way to automatically calculate the required buffer size to avoid situations where specific IPC calls "overflow" the maximum size.
2019-10-28Fix ghost users bug. (#799)LDj3SNuD
* Fix ghost users bug. * Update IAccountServiceForApplication.cs
2019-10-24Add Sli_S/V & Sri_S/V inst.s (fast & slow paths), with Tests. (#797)LDj3SNuD
* Add Sli & Sri. * Add scalar variants.
2019-10-25svc: Implement `ref` parameters (#798)jduncanator
Allows passing data into and out of the same registers when calling via the Kernel ABI. This allows implementing specific supervisor calls like "CallSecureMonitor", that expect their args and results in the same registers.
2019-10-22Resolve Visual Studio build issuesjduncanator
Visual Studio defaults to a C# version of "latest major". Some of the new projects require C# 7.1 features.
2019-10-19Fix latest version of hbl/hb-menu (#795)Thomas Guillemard
* Fix latest version of hbl/hb-menu This implement GetSettingsItemValueSize (required by hbl) and GetInternetConnectionStatus (required by hb-menu). * Address comments
2019-10-17Update to LibHac 0.6.0 (#792)Alex Barney
* Update to LibHac 0.6.0 * Create an IFileSystemProxy object from LibHac * Rename rc -> result * Alignment and spacing * Result formatting * Spacing * Sort usings
2019-10-16Move InvalidSystemResourceException with the other Exceptions (#794)Ac_K
* Move InvalidSystemResourceException with the other `InvalidSystemResourceException.cs` was in `Ryujinx.HLE/Resource` who didn't make sense since it's the only file in the folder, and other exceptions class are in `Ryujinx.HLE/Exceptions`. * Fix empty lines
2019-10-13Fix behaviour when an analog trigger is assigned to a button. (#790)riperiperi
2019-10-12Update license (#788)gdkchan
After some internal discussion, we decided to change the project license to MIT. I have already talked with most contributors privately, and none of them are against the change. Still, if you're a contributor and you're against the change, feel free to voice your concerns here. Obviously, any code before the license change can be still used under the terms of the old license. But any new code after the change will be under the terms of the new license.
2019-10-11Fix TimeZoneBinary dispose issues (#785)Thomas Guillemard
* Fix TimeZoneBinary dispose issues THis fix a regression on Pokémon Let's Go Eevee! (and probably other games) caused by #783. * Address Moosehunter's comment
2019-10-11audout:u: Implement SetAudioOutVolume and GetAudioOutVolume (#781)Ac_K
* audout:u: Implement SetAudioOutVolume and GetAudioOutVolume - Implementation of `audout:u` SetAudioOutVolume and GetAudioOutVolume (checked with RE). - Add Get and Set for Volume into audio backends. - Cleanup of all audio backends to follow the `IAalOutput` structure and .NET standard. - Split OpenAL backend into 2 files for consistency. * Address comments * Fix the volume calculation
2019-10-11Fix error code returned by CloseSession (#787)Thomas Guillemard
When we close a session via IPC, we should return an error code. This fix an assert in some games that are shipped with debug modules.
2019-10-11Fix hwopus DecodeInterleaved implementation (#786)Thomas Guillemard
* Fix hwopus DecodeInterleaved implementation Also implement new variants of this api. This should fix #763 * Sample rate shouldn't be hardcoded This fix issues while opening Pokémon Let's Go pause menu. * Apply Ac_K's suggestion about EndianSwap * Address gdkchan's comment * Address Ac_k's comment
2019-10-08Update time implementation to 9.0.0 (#783)Thomas Guillemard
* Fix 9.0.0 related services bindings This was wrong because of a mistake on switchbrew. * Fix wronog cmdid for ISteadyClock::GetTestOffset/SetTestOffset * Update ClockCore logics to 9.0.0 Also apply 9.0.0 permissions and comment time:u, and time:a (as those are going to be moved) * Move every clocks instances + timezone to a global manager * Start implementing time:m Also prepare the skeleton of the shared memory * Implement SystemClockContextUpdateCallback and co * Update StaticService to 9.0.0 * Update ISystemClock to 9.0.0 * Rename IStaticService and add glue's IStaticService * Implement psc's ITimeZoneService * Integrate psc layer into glue for TimeZoneService * Rename TimeZoneManagerForPsc => TimeZoneManager * Use correct TimeZoneService interface for both StaticService implementations * Accurately implement time shared memory operations * Fix two critical flaws in TimeZone logic The first one was the month range being different fron Nintendo one (0-11 instead of 1-12) The other flaw was a bad incrementation order during days & months computation. * Follow Nintendo's abort logic for TimeManager * Avoid crashing when timezone sysarchive isn't present * Update Readme * Address comments * Correctly align fields in ISystemClock * Fix code style and some typos * Improve timezone system archive warning/error messages * Rearrange using definitions in Horizon.cs * Address comments
2019-10-04Add Tbx Inst. (fast & slow paths), with Tests. (#782)LDj3SNuD
* Update OpCodeTable.cs * Update InstName.cs * Update InstEmitSimdMove.cs * Update SoftFallback.cs * Update DelegateTypes.cs * Update CpuTestSimdTbl.cs * Update CpuTest.cs * Update Ryujinx.Tests.csproj * Nit.
2019-09-20am: IApplicationFunctions GetGpuErrorDetectedSystemEvent implementation (#775)Ac_K
2019-09-20Remove IntUtils and use BitUtils instead. (#774)Ac_K
2019-09-19Misc fixes (#772)LDj3SNuD
* Update Logger.cs * Update MainWindow.cs * Update SvcTable.cs * Update SvcTable.cs * Update SvcTable.cs
2019-09-20audren: Fix AudioRenderer implementation (#773)Ac_K
* Fix AudioRenderer implementation According to RE: - `GetAudioRendererWorkBufferSize` is updated and improved to support `REV7` - `RequestUpdateAudioRenderer` is updated to `REV7` too Should improve results on recent game and close #718 and #707 * Fix NodeStates.GetWorkBufferSize * Use BitUtils instead of IntUtils * Nits
2019-09-19Refactoring HOS folder structure (#771)Ac_K
* Refactoring HOS folder structure Refactoring HOS folder structure: - Added some subfolders when needed (Following structure decided in private). - Added some `Types` folders when needed. - Little cleanup here and there. - Add services placeholders for every HOS services (close #766 and #753). * Remove Types namespaces
2019-09-11Update to LibHac 0.5.1 (#770)Alex Barney
2019-09-10bcat:u: Implement EnumerateDeliveryCacheDirectory (#768)Ac_K
* bcat:u: Implement EnumerateDeliveryCacheDirectory Basic implementation `EnumerateDeliveryCacheDirectory` call to `IDeliveryCacheStorageService` according to RE. (close #622) I've added some comments in the whole service for when we'll implement a real bcat implementation. For now, all games who use it isn't playable because of GPU. * Use Array instead of List * Add ApplicationLaunchPropertyHelper * Fix helper * Fix helper 2 * Fix ApplicationLaunchProperty Default * Fix ApplicationLaunchProperty 2 * Fix folder
2019-09-08Implement basic support of SystemSaveData and Cleanup IFileSystemProxy (#767)Ac_K
* Implement basic support of SystemSaveData and Cleanup IFileSystemProxy - Implement `OpenSystemSaveData` as a `IFileSystem` in `SaveHelper`: On real device, system saves data are stored encrypted, and we can't create an empty system save data for now. That's why if a user put his own dump of system save in `RyuFs\nand\system\save\`, we extract content in associated folder and open it as a `IFileSystem`. If the system save data don't exist, a folder is created. - Cleanup `IFileSystemProxy` by adding a Helper class. - Implement `GetSavePath` in `VirtualFileSystem` and remove `GetGameSavePath` in `SaveHelper`. * remove the forgotten I * Fix align
2019-09-08ui: Fix segfault on Linux when passing a program via command line (#764)Thomas Guillemard
2019-09-07gui: fix case issues in the codeThomas Guillemard
2019-09-07csproj: fix case issue on "ryujinxIcon.png"Thomas Guillemard
This fix a build issue when the file system is case sensitive.
2019-09-06Implement Bluetooth, Btm, Hid and Nsd services and calls. (#761)Ac_K
- Implement `btdrv` service (IBluetoothDriver). Implement call `InitializeBluetoothLe` for initialize events of `bt` service according to RE. - Implement `bt` service (IBluetoothUser). Implement call `RegisterBleEvent` according to RE. - Add a placeholder for the `btm` service (close #750). - Implement `btm:u` service (IBtmUser) (close #751). Implement call `GetCore` according to RE (close #752). - Implement `IBtmUserCore` and calls `AcquireBleScanEvent`, `AcquireBleConnectionEvent`, `AcquireBleServiceDiscoveryEvent` and `AcquireBleMtuConfigEvent` according to RE. - Implement `SetPalmaBoostMode` in `IHidServer` according to RE. - Add stub for `SetIsPalmaAllConnectable` in `IHidServer` because we will not support Palma devices soon. - Implement `nsd:a` and `nsd:u` service (IManager) (close #755). Implement call `ResolveEx` according to RE (close #756). Implement calls `GetSettingName`, `GetEnvironmentIdentifier`, `GetDeviceId`, `DeleteSettings`, `Resolve`, `ReadSaveDataFromFsForTest`, `WriteSaveDataToFsForTest` and `DeleteSaveDataOfFsForTest` according to RE.
2019-09-05Update README.md (#759)Ac_K
* Update README.md * Fix grammar
2019-09-05shader: Add missing fsetp negation bit on srcB (#760)Rodrigo Locatti
2019-09-04timezone: improve sanity checks on TimeZone Rule name (#758)Thomas Guillemard
2019-09-04IGeneralService Implement GetClientId and IsAnyInternetRequestAccepted (#749)Ac_K
* IGeneralService Implement GetClientId and IsAnyInternetRequestAccepted - Add nifm:a and nifm:u with a max sessions as comment since sm don't take care of sessions for now. - Implement IGeneralService GetClientId based on RE (close #623). - Implement IGeneralService IsAnyInternetRequestAccepted based on RE (close #624). - Add some informations in IGeneralService CreateRequest. - Fix a comment in IAccountService. * Fix requested changes
2019-09-02Implement OpenReadOnlySaveDataFileSystem (#748)Alex Barney
2019-09-02Added GUI to Ryujinx (#695)Xpl0itR
* Added GUI to Ryujinx * Updated to use Glade Also added scrollbar and default dark theme * Added support for loading icon from .nro files and cleaned up the code a bit * Added General Settings Menu (read-only for now) and moved some functionality from MainMenu.cs to ApplicationLibrary.cs * Added custom GUI theme support and changed the defualt theme to one I just wrote * Added GTK to process path, fixed a bug and minor edits * some more edits and a bug fix * general settings menu is now fully functional. also fixed the bug where ryujinx crashes when it trys to load an invalid gamedir * big rewrite * aesthetic changes to General Settings menu * Added Control Settings one day done feature :P * minor changes * 1st wave of changes * 2nd wave of changes * 3rd wave of changes * Cleanup settings ui * minor edits * new about window added, still needs styling * added spin button for new option and tooltips to settings * Game icons and names are now shown in the games list * add nuget package which contains gtk dependencies * requested changes have been changed * put CreateGameWindow on a new thread and stopped destroying the main menu when a game loads * fixed bug that allowed a user to attempt to load multiple games at a time which causes a crash * Added LastPlayed and TimePlayed columns to the game list * Did some testing and fixed some bugs Im not happy with one of the fixes so i will do it properly an upcoming commit * did some more bug testing and fixed another 2 bugs * caught an exception when ryujinx tries to load non-homebrew as homebrew * Large changes Rewrote ApplicationLibrary.cs (added comments too) so any devs reading it wont get eye cancer, also its probably more efficient now. Added 2 new columns (Developer name and application version) to the game list and wrote the logic for it. Ryujinx now loads NRO's TitleName and TitleID from the NACP file instead of the default NPDM. I also killed a lot of bugs * Moved Files moved ApplicationLibrary.cs to Ryujinx.HLE as that is a better place for it. Moved contents of GUI folder to Ui folder and changed the namespaces of the gui files from Ryujinx to Ryujinx.Ui * Added 'Open Ryujinx Folder' button to the file menu and did some small fixes * New features * updated nuget package with missing dlls and changed emmauss' requested changes * fixed some minor issues * all requested changes marked as resolved have been changed * gdkchan's requested changes * fixed an issue with settings window getting chopped on small res * fixed 2 problems caused by rebase * changed the default theme * applied Thog's patch to fix issue on linux * fixed issue caused by rebase * added update check button that runs ryujinx-updater * reads version info from installer and displays it in about menu * changes completed * requested changes changed * fixed issue with default theme * fixed a bug and completed requested changes * added more tooltips and changed some text
2019-09-01NvHostChannelIoctl: Implement setter for SetSubmitTimeout, SetPriority and ↵Ac_K
SetTimeslice (#747) - Implement accurate setter for SetPriority. - Implement accurate setter for SetTimeslice (close #666). - Implement basic setter for SetSubmitTimeout (close #678). (plus some comments and a missing `PrintStub` call)
2019-09-01Add Rgba16Uint (#746)HorrorTroll
2019-08-28Implement am ICommonStateGetter::SetCpuBoostMode (#743)Ac_K
- Implement am ICommonStateGetter::SetCpuBoostMode according to the RE: ``` signed __int64 __fastcall nn::ICommonStateGetter::SetCpuBoostModeImpl(__int64 this, unsigned int cpu_boost_mode) { if ( cpu_boost_mode > 1 ) { return 0x3F480LL; } __int64 v2 = *(_QWORD *)(this + 0x38); __int64 v3 = *(_QWORD *)(*(_QWORD *)(v2 + 8) + 0x298LL); nnLock((_DWORD *)(v3 + 0x104)); __int64 v5 = *(_QWORD *)(v2 + 0x18); bool unk_bool = *(unsigned __int8 *)(v5 + 0x7C); *(_DWORD *)(v5 + 0x80) = cpu_boost_mode; if (!unk_bool) { *(_BYTE *)(v5 + 0x7C) = 1; } wait_condvar(v3 + 0xA8); nnUnlock((_DWORD *)(v3 + 0x104)); return 0LL; } ``` - Add enum for apm CpuBoostMode - Add missing values in apm PerformanceConfiguration with some comments.
2019-08-19Fix a memory corruption in SoundIO wrapper (#742)Thomas Guillemard
This fix audio slowdown on Unix based platforms where soundio will try to switch to mono because of the invalid data written.