1127 Commits

Author SHA1 Message Date
gdk
dfb16f19d8 Remove TranslatorConfig struct 2020-01-09 02:13:00 +01:00
gdk
d59bcf8f22 Add R2P shader instruction 2020-01-09 02:13:00 +01:00
gdk
bda4d677d0 Make the shader translator more error resilient (part 2) 2020-01-09 02:13:00 +01:00
gdk
d6cf87194c Make the shader translator more error resilient 2020-01-09 02:13:00 +01:00
gdk
2dcb452a09 Add missing check for BRX, do not add a out of bounds block to the queue 2020-01-09 02:13:00 +01:00
gdk
9e316e6025 Invalidate shaders when they are modified 2020-01-09 02:13:00 +01:00
gdk
c8398482ef Add partial support for the BRX shader instruction 2020-01-09 02:13:00 +01:00
gdk
ecdb433a68 Fix image units bindings and shader dump in the presence of NOPs 2020-01-09 02:13:00 +01:00
gdk
82e8457838 Revert "Check for ASTC support on the list of supported compressed formats"
This reverts commit 38a993510f64346649529b8fd2af6683bef05aa6.
2020-01-09 02:13:00 +01:00
gdk
f4265e3abe Check for ASTC support on the list of supported compressed formats 2020-01-09 02:13:00 +01:00
gdk
9311e8dfe9 Fix regression on load/store local (wrong type) 2020-01-09 02:13:00 +01:00
gdk
2a487b2afe Do not throw for invalid ASTC compressed textures 2020-01-09 02:13:00 +01:00
gdk
f7cec66ce0 Add ATOMS, LDS, POPC, RED, STS and VOTE shader instructions, start changing the way how global memory is handled 2020-01-09 02:13:00 +01:00
gdk
d3b01b929c Use a more efficient range list on the buffer manager 2020-01-09 02:13:00 +01:00
gdk
a11f411c87 Remove some unused constants and other code 2020-01-09 02:13:00 +01:00
gdk
bd0a16ecbf Add partial support for array of samplers, and add pass to identify them from bindless texture accesses 2020-01-09 02:13:00 +01:00
gdk
7aad13d242 Support window resizing 2020-01-09 02:13:00 +01:00
gdk
dd8a838a81 Implement BFI, BRK, FLO, FSWZADD, PBK, SHFL and TXD shader instructions, misc. fixes 2020-01-09 02:13:00 +01:00
gdk
5fb601a2fe Support copy of slices to 3D textures, remove old 3D render target layered render support, do not delete textures with existing views created from them 2020-01-09 02:13:00 +01:00
gdk
ce10d3c6ff Add shader support for the round mode on the F2F instruction, support mipmaps on ASTC compressed textures 2020-01-09 02:13:00 +01:00
gdk
034ac4ed92 Fix shader FMUL32I instruction saturation 2020-01-09 02:13:00 +01:00
gdk
9a2c6c4ad6 Flush buffers on copies 2020-01-09 02:13:00 +01:00
gdk
0c7c38df0f Add per-source type memory change tracking, simplified state change tracking, other fixes 2020-01-09 02:13:00 +01:00
gdk
c9abf08686 Initial support for image stores, support texture sample on compute 2020-01-09 02:13:00 +01:00
gdk
398ee33a16 Fix incorrect saturation on HADD2 and HMUL2 shader instructions 2020-01-09 02:13:00 +01:00
gdk
4b53b0b01d Fix BC6 Signed/Unsigned float texture formats 2020-01-09 02:13:00 +01:00
gdk
05374b26bb Handle quad and quad strip primitive types using triangle fans 2020-01-09 02:13:00 +01:00
gdk
e7345d7baf Improved Min/Mip -> MinFilter enum conversion 2020-01-09 02:13:00 +01:00
gdk
4206b0d00a Calculate width from stride on texture copies 2020-01-09 02:13:00 +01:00
gdk
fb2200c09b Initial work 2020-01-09 02:13:00 +01:00
Thog
85803f406e Fix timezone month being reported incorrectly to games (#861)
Nintendo actually uses range from 1 to 12 for months (when original timezone code manage 0-11)
2020-01-09 11:08:57 +11:00
Thog
2dab99ebfb Fix ReactiveObject initial event not being propagated with boolean types (#860)
* Fix ReactiveObject initial event not being propagated with boolean types.

This fix the logger configuration initial state being ignored.
2020-01-05 17:35:55 +01:00
Thog
565205d3ce Make sure to reload keys after Migration
This fix keys not being loaded on the first run right after migration.
2020-01-05 16:39:35 +01:00
Alex Barney
697300462d Rename "RyuFs" directory to "Ryujinx" and use the same savedata system the Switch uses (#801)
* Use savedata FS commands from LibHac

* Add EnsureSaveData. Use ApplicationControlProperty struct

* Add a function to migrate to the new directory layout

* LibHac update

* Change backup structure

* Don't create UI files in the save path

* Update RyuFs paths

* Add GetProgramIndexForAccessLog

Ryujinx only runs one program at a time, so always return values reflecting that

* Load control NCA when loading from an NSP

* Skip over UI stats when exiting

* Set TitleName and TitleId in more cases. Fix TitleID naming style

* Completely comment out GUI play stats code

* rebase

* Update LibHac

* Update LibHac

* Revert UI changes

* Do migration automatically at startup

* Rename RyuFs directory to Ryujinx

* Update RyuFs text

* Store savedata paths in the GUI

* Make "Open Save Directory" work

* Use a dummy NACP in EnsureSaveData if one is not loaded

* Remove manual migration button

* Respond to feedback

* Don't read the installer config to get a version string

* Delete nuget.config

* Exclude 'sdcard' and 'bis' during migration

Co-authored-by: Thog <thog@protonmail.com>
2020-01-05 12:49:44 +01:00
Thog
2fbcb71419 Fix EphemeralNetworkSystemClock wrong steady clock (#858)
oops
2020-01-04 18:39:27 +01:00
LDj3SNuD
b32cec8b73 Implemented fast paths for: (#846)
* opt

* Nit.

* opt_p2

* Nit.
2019-12-29 22:22:47 -03:00
Thog
9ef23cf33c Fix GUI freeze wehn closing without any emulation running (#853) 2019-12-29 23:37:54 +01:00
Thog
36ff031764 Fix LibHac.IStorage not being disposed in FileSystem proxy (#851) 2019-12-26 02:58:38 +01:00
Thog
a8ecd7e39c Make HLE disposable safely (#850)
* Make HLE disposable safely

This fix the oldest issue with the HLE code: the kernel side
disposability.

Changelog:

- Implement KProcess::UnpauseAndTerminateAllThreadsExcept, KThread::Terminate, KThread::TerminateCurrentProcess, KThread::PrepareForTermiation and the svc post handler accurately.
- Implement svcTerminateProcess and svcExitProcess. (both untested)
- Fix KHandleTable::Destroy not decrementing refcount of all objects stored in the table.
- Spawn a custom KProcess with the maximum priority to terminate every guest KProcess. (terminating kernel emulation safely)
- General system stability improvements to enhance the user's experience.

* Fix a typo in a comment in KProcess.cs

* Address gdk's comments
2019-12-26 02:50:17 +01:00
gdkchan
d5b4379d3d Fix remap ioctl map offset (#852)
* Fix remap ioctl map offset

* Correct offset type
2019-12-25 02:54:26 +01:00
Thog
17b6628d6b Also use Github Actions as a CI" (#847) 2019-12-23 06:36:24 +11:00
Thog
61618864b6 Fix an endge case in bsd IClient::Poll implementation (#848)
This add some code to handle usage of poll without any fds.

This is required by Dark Souls Remastered main loop logic as it's
calling it without any fds during initialization.

===
General system stability improvements to enhance the user's experience.
2019-12-23 06:33:59 +11:00
Xpl0itR
8b601d47aa GUI: Implement context menu for the game table (#840)
* Add context menu to the game table

* Minor bugfix and cleanup

* add ability to create directory if it doesn't exist

* nit

* dont show menu when right-clicking nothing
2019-12-22 03:49:51 +01:00
Thog
c5957b1be9 Rewrite the configuration system (#831)
The configuration system was quite fragile and too dependent on everything, this fix #812 .

The changes:

    The file configuration is now entirely independent from the internal configuration state.
    The file configuration is versioned (current version is 1).
    Every configuration elements are now reactive properties that the emulator can register on to handle initialization and configuration changes.
    The configuration system is now in Ryujinx.Common to be accessible on every projects.
    Discord integration is now independent from the UI and can be reloaded.
    The primary controller is now configurable at runtime (NOTE: the UI currently doesn't have any options to configure real controller).
    The logger is entirely reloadable.
    You can now hotplug your controller when the emulator is running.
    The logger now takes name for every LogTarget to make them removable at runtime.
    The logger now always add the default "console" target to avoid loosing early init logs.
    The configuration system now generates a default file configuration if it's missing or too new.
    General system stability improvements to enhance the user's experience
2019-12-21 20:52:31 +01:00
gdkchan
1bf54fbf42 Add a limit for the number of instructions in a function (#843) 2019-12-14 18:18:51 -03:00
Thog
6c2937526d Fix ILogger type and size decoding (#842)
* Fix ILogger type and size decoding

The type and size are custom encoded integer not byte.

This fix issues on games that send messages longer than 127 characters.

* Address gdk's comments
2019-12-08 14:35:25 +01:00
LDj3SNuD
e34de2f1ac Implemented fast paths for: (#841)
* cpu-misc_opt

* B = ~b

* ;
2019-12-07 13:45:32 +01:00
jduncanator
4453e241b3 Fully reverse swkbd configuration structure and follow-up to swkbd implementation (#839)
* am: Fully reverse swkbd configuration structure

* Add documentation

* Remove explicit access modifiers

* Fix formatting

* Fix further formatting issues
2019-12-03 05:00:56 +01:00
Ac_K
14ea84d467 prepo: Silent error while parsing report (#837)
Due to a guessed parsing implementation of the report, sometime it throw an error, since the data isn't really useful, it's better to silent possible exceptions with a message.
2019-11-29 15:42:44 +11:00
Xpl0itR
1b18e26592 Add features to GUI (#757)
* controller image changes depending on the selected controller type

the new controller image assets are temporary until i get new ones

* Game list scans subdirs for games

* Key file existence check

* Only shows Program NCAs in Application list

* Change shown GUI columns without restarting

* Sort by column if you click on the column header

Columns are sorted as text so there are inaccuracies on some columns

* Fix sort on Time Played, Last Played and File Size columns

* Add ability to designate favourite games #1

TODO:
- Make fav games persistent
- Fix invisible check marks due to theme

* Add ability to designate favourite games #2

Also removed default theme

* Added a Windows specific build condition and a Linux bug fix

* bugfix

* Load metadata from JSONs

* Temp bug fix for MacOS

* lil clean up

* requested changes

* Misc fixes

* edited schema and config

* Show the TitleID of games on the title bar

* gui column config option have names

* Async loading of game list

* bugfix and cleanup

* thog's requested changes

* requested changes and cleanup

still need to fix the gtk seizure

* Fix issue where an ExeFS as a NSP didn't show up in the application list

* Minor fixes

* catch glib unhandled exceptions

* Make sure to do UI manipulation in the main thread

* Print path of invalid files

* Ac_k's requested changes

* Return of the dark theme

* move AboutInfo struct to another file

* sort usings

* changes

- gdkchan's requested changes that have been marked resolved
- made some structs internal as they aren't used outside of the GUI
- renamed Ryujinx.UI to Ryujinx.Ui to fit naming convention and folder structure
- fixed bug where controller type dropdown box is stretched
2019-11-29 15:32:51 +11:00