aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-09-10Texture/Buffer Memory Management Improvements (#1408)riperiperi
* Initial implementation. Still pending better valid-overlap handling, disposed pool, compressed format flush fix. * Very messy backend resource cache. * Oops * Dispose -> Release * Improve Release/Dispose. * More rule refinement. * View compatibility levels as an enum - you can always know if a view is only copy compatible. * General cleanup. Use locking on the resource cache, as it is likely to be used by other threads in future. * Rename resource cache to resource pool. * Address some of the smaller nits. * Fix regression with MK8 lens flare Texture flushes done the old way should trigger memory tracking. * Use TextureCreateInfo as a key. It now implements IEquatable and generates a hashcode based on width/height. * Fix size change for compressed+non-compressed view combos. Before, this could set either the compressed or non compressed texture with a size with the wrong size, depending on which texture had its size changed. This caused exceptions when flushing the texture. Now it correctly takes the block size into account, assuming that these textures are only related because a pixel in the non-compressed texture represents a block in the compressed one. * Implement JD's suggestion for HashCode Combine Co-authored-by: jduncanator <1518948+jduncanator@users.noreply.github.com> * Address feedback * Address feedback. Co-authored-by: jduncanator <1518948+jduncanator@users.noreply.github.com>
2020-09-07Do not emit StoreToContext before Return (#1537)FICTURE7
* Do not emit StoreToContext before Return * Set PPTC version
2020-09-06Amadeus: Fix multi-channel PCM sources on REV8 (#1536)Mary
This add a missing offset on the output buffer of the DataSourceVersion2Command. This fix music only playing on the left channel on Fairy Tail, Family Mysteries: Poisonous Promises, SEGA AGES Sonic the Hedgehog 2 and probably more.
2020-09-05Delete redundant sentence in README (#1534)Jade
2020-09-01Update to LibHac 0.12.0 (#1485)Alex Barney
* Update to LibHac 0.12.0 * Auto-formatting. Fixed a bug in SetApplicationCopyrightImage
2020-09-01SIMD&FP load/store with scale > 4 should be undefined (#1522)gdkchan
* SIMD&FP load/store with scale > 4 should be undefined * Catch more invalid encodings for FP&SIMD LDR/STR (reg variant) * Set PTC version to PR number
2020-09-01Fix PSL and MRG flags on XMAD cbuf-reg shader instruction (#1520)gdkchan
2020-09-01ui: Initial better user error reporting (#1503)Mary
This update the "No keys" dialog and block starting NSP/XCI/NCA without firmware. Also propose to the user if they want to install firmware if they start an untrimmed XCI and remove KEYS.md as it was completely outdated. PS: Also fix a bug with "&" in URL with OpenUrl on Windows.
2020-09-01Fix regression on texture compatibility match checks (#1521)gdkchan
2020-08-31Fix: Issue #1475 Texture Compatibility Check methods need to be centralized ↵sharmander
(#1482) * Texture Compatibility Check methods need to be centralized #1475 * Fix spacing * Fix spacing * Undo removal of .ToString() * Move isPerfectMatch back to Texture.cs Rename parameters in TextureCompatibility.cs for consistency * Add switch from 1474 to TextureCompatibility as requested by mageven. * Actually add TextureCompatibility changes to the PR (Add DeriveDepthFormat method) * Alignment corrections + Derive method signature adjustment. * Removed empty line as erquested * Remove empty lines * Remove blank lines, fix alignment * Fix alignment * Remove emtpy line
2020-08-31Improve static branch prediction along fast path for memory accesses (#1484)FICTURE7
* Improve static branch prediction along fast path for memory accesses * Set PPTC interval version
2020-08-31CPU (A64): Add Scvtf_S_Fixed & Ucvtf_S_Fixed with Tests. (#1492)LDj3SNuD
2020-08-30Remove the Ryujinx.Debugger project (#1506)Mary
This project wasn't really used by anyone and isn't worth mantaining. This commit remove the profiler entirely from Ryujinx and remove the associated CI tasks.
2020-08-30Allow launching with custom data directories (#1505)mageven
* Allow launching with custom data directories Don't load alternate keys when using custom directory * Address gdkchan's comments * Misc fixes to log levels Added more enabled log levels by default Moved successful config updation to Notice as 1. It's not a warning 2. Warnings could've been disabled by the config load and hence message would be lost
2020-08-30Cleanup FUNDING.yml (#1494)Margen67
2020-08-30Clean up and update readme (#1501)Mary
* Clean up and update readme THis clean up and improve the README a bit. * Apply suggestions from code review Co-authored-by: EmulationFanatic <62343878+EmulationFanatic@users.noreply.github.com> Co-authored-by: EmulationFanatic <62343878+EmulationFanatic@users.noreply.github.com>
2020-08-29Fix off by one error in pages count calculation on GPU pool (#1511)gdkchan
2020-08-27Amadeus: Fix inverted downmixing of center and lfe (#1507)Mary
This fix front center and lfe being inverted in input of the DownMixSurroundToStereoCommand. This fix: - Voices being missing on FE3H videos - Mario Tennis Aces missing backgroun - Probably more.
2020-08-23Improve multi-controller support in HID and Controller Applet (#1453)mageven
* Initial commit Enable proper LED patterns Toggle Hotkeys only on focus Ignore Handheld on Docked mode Remove PrimaryController Validate NpadIdType Rewrite NpadDevices to process config in update loop Cleanup * Notify in log periodically when no matched controllers * Remove duplicate StructArrayHelpers in favor of Common.Memory Fix struct padding CS0169 warns in Touchscreen * Remove GTK markup from Controller Applet Use IList instead of List Explicit list capacity in 1ms loop Fix formatting * Restrict ControllerWindow to show valid controller types Add selected player name to ControllerWindow title * ControllerWindow: Fix controller type initial value NpadDevices: Simplify default battery charge * Address AcK's comments Use explicit types and fix formatting * Remove HashSet for SupportedPlayers Fixes potential exceptions due to race * Fix ControllerSupportArg struct packing Also comes with two revisions of struct for 4/8 players max.
2020-08-20Fix asserts on VP9 decoder in debug mode and build warnings (#1480)gdkchan
2020-08-18account: Implement IManagerForApplication calls and IAsyncContext (#1466)Ac_K
* account: Implement IManagerForApplication calls and IAsyncContext This implement: - IManagerForApplication::EnsureIdTokenCacheAsync (accordingly to RE) but the Async task is stubbed. - IAsyncContext interface (accordingly to RE). - IManagerForApplication::LoadIdTokenCache (checked with RE, and stubbed). I've tried some games but now they needs some `sfdnsres` calls, some other boots and crashes with other issues. Maybe we should disable the connection somewhere to lets the game think we are offline. I have done many attempts, without success, but since the code is here now, it's better than nothing. (I've cleaned up `using` of IGeneralService too) Closes #629 and closes #630 * change AccountId * Fix gdkchan's comments * use CompletedTask
2020-08-18Misc audio fixes (#1348)Mary
Changes: Implement software surround downmixing (fix #796). Fix a crash when no audio renderer were created when stopping emulation. NOTE: This PR also disable support of 5.1 surround on the OpenAL backend as we cannot detect if the hardware directly support it. (the downmixing applied by OpenAL on Windows is terribly slow)
2020-08-17Amadeus: Final Act (#1481)Mary
* Amadeus: Final Act This is my requiem, I present to you Amadeus, a complete reimplementation of the Audio Renderer! This reimplementation is based on my reversing of every version of the audio system module that I carried for the past 10 months. This supports every revision (at the time of writing REV1 to REV8 included) and all features proposed by the Audio Renderer on real hardware. Because this component could be used outside an emulation context, and to avoid possible "inspirations" not crediting the project, I decided to license the Ryujinx.Audio.Renderer project under LGPLv3. - FE3H voices in videos and chapter intro are not present. - Games that use two audio renderer **at the same time** are probably going to have issues right now **until we rewrite the audio output interface** (Crash Team Racing is the only known game to use two renderer at the same time). - Persona 5 Scrambler now goes ingame but audio is garbage. This is caused by the fact that the game engine is syncing audio and video in a really aggressive way. This will disappears the day this game run at full speed. * Make timing more precise when sleeping on Windows Improve precision to a 1ms resolution on Windows NT based OS. This is used to avoid having totally erratic timings and unify all Windows users to the same resolution. NOTE: This is only active when emulation is running.
2020-08-14Add missing depth-color conversions in CopyTexture (#1474)mageven
* Add missing depth-color conversions in CopyTexture * Whitespace * switch expression
2020-08-13PPTC GUI: Purge all versioned caches on click (#1454)mageven
* PPTC GUI: Purge all versioned caches on click * Address AcK's comments Co-authored-by: Ac_K <Acoustik666@gmail.com> * nit: Explicit declarations Co-authored-by: Ac_K <Acoustik666@gmail.com>
2020-08-13Fix MacroJit SubtractWithBorrow Alu Reg Operation. (#1473)LDj3SNuD
2020-08-13Fix Vcvt_FI & Vcvt_RM; Add Vfma_S & Vfms_S. Add Tests. (#1471)LDj3SNuD
* Fix Vcvt_FI & Vcvt_RM; Add Vfma_S & Vfms_S. Add Tests. * Address PR feedback & Nit.
2020-08-13bluetooth: Fix event handle in IBluetoothDriver (#1464)Ac_K
This fix the InitializeBluetoothLe call who didn't return any event handle
2020-08-09Replace the Audio Backend ComboBoxText to a ComboBox with a custom model (#1451)Xpl0itR
* Use a combobox with a custom model to be able to disable entries within it * Address Ack's comments
2020-08-09Fix PTC version increment from #1433 (#1462)mageven
2020-08-08CPU: This PR fixes Fpscr, among other things. (#1433)LDj3SNuD
* CPU: This PR fixes Fpscr, among other things. * Add Fpscr.Qc = 1 if sat. for Vqrshrn & Vqrshrun. * Fix Vcmp & Vcmpe opcode table. * Revert "Fix Vcmp & Vcmpe opcode table." This reverts commit c117d9410d693185ff5f8ee8e457ffbfb2027dd5. * Address PR feedbacks.
2020-08-08Forward OpenSaveDataInfoReaderOnlyCacheStorage to ↵Alex Barney
OpenSaveDataInfoReaderWithFilter (#1449)
2020-08-07Add Issue Templates (#1456)Ac_K
* Add Issue Templates This disable the creation of empty issues and adds some templates when one is opened. A link to our discord is directly added to the issue templates list. Thanks EmulationFanatic for the proof reading. * fix copy paste * Fix name
2020-08-07Rename DebugLevel Performance to Slowdowns (#1450)mageven
2020-08-06Silence several build warnings (#1428)gdkchan
* Silence several build warnings * Remove fixed buffers from NVDEC struct * Remove unused field and usings * Fix wrong name * Silence more warning on H264 PictureInfo
2020-08-05Improve branch operations (#1442)Ficture Seven
* Add Compare instruction * Add BranchIf instruction * Use test when BranchIf & Compare against 0 * Propagate Compare into BranchIfTrue/False use - Propagate Compare operations into their BranchIfTrue/False use and turn these into a BranchIf. - Clean up Comparison enum. * Replace BranchIfTrue/False with BranchIf * Use BranchIf in EmitPtPointerLoad - Using BranchIf early instead of BranchIfTrue/False improves LCQ and reduces the amount of work needed by the Optimizer. EmitPtPointerLoader was a/the big producer of BranchIfTrue/False. - Fix asserts firing when assembling BitwiseAnd because of type mismatch in EmitStoreExclusive. This is harmless and should not cause any diffs. * Increment PPTC interval version * Improve IRDumper for BranchIf & Compare * Use BranchIf in EmitNativeCall * Clean up * Do not emit test when immediately preceded by and
2020-08-04Improved Logger (#1292)mageven
* Logger class changes only Now compile-time checking is possible with the help of Nullable Value types. * Misc formatting * Manual optimizations PrintGuestLog PrintGuestStackTrace Surfaceflinger DequeueBuffer * Reduce SendVibrationXX log level to Debug * Add Notice log level This level is always enabled and used to print system info, etc... Also, rewrite LogColor to switch expression as colors are static * Unify unhandled exception event handlers * Print enabled LogLevels during init * Re-add App Exit disposes in proper order nit: switch case spacing * Revert PrintGuestStackTrace to Info logs due to #1407 PrintGuestStackTrace is now called in some critical error handlers so revert to old behavior as KThread isn't part of Guest. * Batch replace Logger statements
2020-08-03Implement a Macro JIT (#1445)gdkchan
* Implement a Macro JIT * Nit: space
2020-08-03Implement Software Keyboard GTK frontend (#1434)mageven
* Implement SwKbd GUI * Relocate UI handler to Emu Context from Config Also create a common interface for UI handlers in the context and specialize for Gtk Add basic input length validation in InputDialog * Add Transfer Memory support to AppletCreator Read Initial Text for SwKbd using Transfer Memory * Improve InputDialog widget Improve length validation Has extra label to show validition info Handle potential errors and log them * Misc improvements * Improve string validation * Improve error handling * Remove tuple in struct * Address formatting nits * Add proper Cancel functionality Also handle GUI errors in UI handler * Address jD's comments * Fix _uiHandler init * Address AcK's comments
2020-08-02Facilitate OpenGL debug logging via GUI (#1373)mageven
* Allow printing GL Debug logs with GUI options Improve GL Debugger Make the new option persistent Address gdkchan's comments - Rename enum to GraphicsDebugLevel - Move Debugger Init to Renderer Init - Fix formatting * nit: newlines
2020-08-02friend: Implement GetPlayHistoryRegistrationKey (#1424)Ac_K
* friend: Implement GetPlayHistoryRegistrationKey This implement IServiceCreator::GetPlayHistoryRegistrationKey call accordingly to RE. Close #1110 * Fix comments * Fix guid and comment some codes * Improve guid casting and remove unused vars
2020-07-31fs: stub ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute (#1443)Mary
This is required by AC:NH for the new online save features of 1.4.0
2020-07-30common: Fix WMI exception (#1422)Ac_K
* common: Fix WMI exception We currently don't check if WMI service is available when we get the CPU name and the RAM size. This fix the issue by catching all exceptions and set default values instead. Close #1353 * remove useless assign * Fix Exception * Address comments Co-authored-by: Thog <me@thog.eu>
2020-07-30 Implement inline memory load/store exclusive and ordered (#1413)gdkchan
* Implement inline memory load/store exclusive * Fix missing REX prefix on 8-bits CMPXCHG * Increment PTC version due to bugfix * Remove redundant memory checks * Address PR feedback * Increment PPTC version
2020-07-30 Print guest stack trace on invalid memory access (#1407)gdkchan
* Print guest stack trace on invalid memory access * Improve XML docs
2020-07-30Refactor shader translator ShaderConfig and reduce the number of out args ↵gdkchan
(#1438)
2020-07-30Use movd,movq for i32/64 VectorExtract %x, 0x0 (#1439)Ficture Seven
* Use movd,movq for i32/64 VectorExtract %x, 0x0 * Increment PPTC interval version * Use else-if instead - Address gdkchan's feedback. - Clean up Debug.Assert calls * Inline `count` expression into Debug.Assert Apparently the CoreCLR JIT will not eliminate this. :(
2020-07-29Fix shader regression on Intel iGPUs by reverting layout changes (#1425)gdkchan
2020-07-28Implement alpha test using legacy functions (#1426)gdkchan
2020-07-28Implement VIC BGRA output surface format (#1430)gdkchan