Commit graph

141 commits

Author SHA1 Message Date
greggameplayer
72e55bfc51 Merge branch 'patch-2' of https://github.com/greggameplayer/Ryujinx into patch-2 2018-06-12 18:26:05 +02:00
greggameplayer
f2ff0fd89d Implement IApplicationCreator & IApplicationAccessor & IAppletAccessor 2018-06-12 18:23:20 +02:00
gdkchan
76f3b1b3a4 Rename Ryujinx.Core to Ryujinx.HLE and add a separate project for a future LLE implementation 2018-06-10 21:46:42 -03:00
Tobias
7b7dbdcc6a Add stubs for Nfp and Acc + SvcGetThreadCoreMask implementation (#133)
* Stubs for NFP

* Stubs for ACC

* Implement SvcGetThreadCoreMask

* Fixup

* Fixup 2

* Fixup 3

* Address Cyuubi's feedback
2018-06-10 01:36:07 -03:00
gdkchan
49fd76db0f Fix a small size related issue on MapBufferEx and add the BC7U texture format 2018-06-10 01:00:43 -03:00
gdkchan
adeb8793c2 Fix a thread sync bug as is the usual... 2018-06-09 22:41:07 -03:00
greggameplayer
df5284ceb6 Implement IApplicationCreator & IApplicationAccessor & IAppletAccessor 2018-06-10 03:24:01 +02:00
gdkchan
aa75957ce2 Somewhat better implementation of thread yield 2018-06-09 18:19:14 -03:00
gdkchan
7f5a8effbb Move WriteBytes to AMemory, implement it with a Marshal copy like ReadBytes, fix regression on address range checking 2018-06-09 13:05:41 -03:00
gdkchan
7822348439 Small cleanup in AMemory and removed some unused usings 2018-06-08 23:54:50 -03:00
gdkchan
231fae1a4c
Texture/Vertex/Index data cache (#132)
* Initial implementation of the texture cache

* Cache vertex and index data aswell, some cleanup

* Improve handling of the cache by storing cached ranges on a list for each page

* Delete old data from the caches automatically, ensure that the cache is cleaned when the mapping/size changes, and some general cleanup
2018-06-08 21:15:56 -03:00
riperiperi
6fe51f9705 ReadBytes function in AMemory, with cleaner range check. (#136) 2018-06-08 21:15:02 -03:00
greggameplayer
39ebb83453 Add & Correct ErrorModules (#137)
* Add & Correct ErrorModules

* Remove LibNX specific ErrorModules

* Remove Homebrew Specific ErrorModules
2018-06-08 19:57:42 -03:00
gdkchan
741ec27b1d Fix ILibraryAppletCreator CreateStorage, implement Write on IStorageAccessor 2018-06-04 02:09:41 -03:00
gdkchan
e7efee7909 Use GetBufferType0x21 on TransactParcelAuto aswell 2018-06-02 20:40:26 -03:00
Starlet
250e2084f4 SMO stubs and implementations (#129)
* WIP SMO stubs and implementations

* fixes?

* Add StorageHelper

* Whoops

* Compliant with review.

* Remove unnecessary usings
2018-06-02 19:46:09 -03:00
gdkchan
9670c096e4 Initial work to support AArch32 with a interpreter, plus nvmm stubs (not used for now) 2018-05-26 17:50:47 -03:00
Starlet
cb1cf489f9 [IApplicationFunctions/INvDrvServices] Stub GetPseudoDeviceId, FinishInitialize and add more pctl service names. (#127)
* [INvDrvServices] Stub FinishInitialize

* [IApplicationFunctions] Stub GetPseudoDeviceId

* I need to proofread my shit...

* Also add more pctl service names
2018-05-25 18:33:09 -03:00
Starlet
84996ccd36 [SvcSystem/SvcMemory] Implement SvcGetInfo 16, SvcMapPhysicalMemory & SvcUnmapPhysicalMemory (#126)
* [SvcSystem] Implement SvcGetInfo 16

SvcGetInfo 16 always should be 1(?)

* Implement SvcMapPhysicalMemory &  SvcUnmapPhysicalMemory

* Adjusted to review.
2018-05-22 17:40:46 -03:00
Thomas Guillemard
fa4b34bd19 Add a C++ demangler (#119)
* Add a C++ demangler for PrintStackTrace

This is a simple C++ demangler (only supporting name demangling) that will
probably be enough for any stacktrace cases.

* Create Ryujinx.Core.OsHle.Diagnostics.Demangler and move DemangleName

* Rename Demangler -> Demangle + Fix coding style

* Starting a real parsing for demangler (still simple and no compression support yet)

* Partially implement decompression

* Improve compression support (still need to fix errored compression indexing)

* Some cleanup

* Fix Demangle.Parse call in PrintStackTrace

* Trim parameters result to get more clear prototypes

* Rename Demangle -> Demangler and fix access level

* Fix substitution possible issues also improve code readability

* Redo compression indexing to be more accurate

* Add support of not nested function name
2018-05-22 17:40:02 -03:00
gdkchan
b19c474082 Added more shader instructions, including BFE, BRA (partial), FMNMX, ISCADD, SHL, LD_C, some shader related fixes, added support for texture component selection 2018-05-17 15:25:42 -03:00
gdkchan
9b9ead94cd Only use higher priority on yield, change reschedule to be per-thread instead of using SchedulerThread to store the reschedule flag 2018-05-15 23:49:57 -03:00
gdkchan
73a3233d57 Fix some races in SvcThreadSync and change the way how yield works 2018-05-15 22:37:54 -03:00
gdkchan
fdfa9424c8 Fix typo and update priority/avoid duplicates on UpdateMutexOwner 2018-05-14 03:09:08 -03:00
gdkchan
ee0b14ba08 Some improvements to SetThreadCoreMask, simplified implementation of wait lists 2018-05-14 03:01:10 -03:00
gdkchan
9e50ed53e6 Implement GetTpcMasks on nvservices 2018-05-13 22:10:45 -03:00
gdkchan
b2b1d7dcd7 Better implementation of SetThreadCoreMask that allows changing the Core Mask (untested, no clue if it actually works) 2018-05-13 22:00:29 -03:00
gdkchan
4546d1b9be Initial work to support changing thread core on the scheduler, also some cond var priority fixes 2018-05-13 00:22:42 -03:00
gdkchan
3603497a13 Allow using self thread id on some svcs (fixes #117) 2018-05-11 23:05:06 -03:00
Starlet
8e306b3ac1 Fix NV stubs (#124)
* Fix NV stubs

* Compliant with feedback

* Oops, Compliant with feedback #2
2018-05-11 00:19:51 -03:00
Thomas Guillemard
0979426e63 Implement ISystemDisplayService::GetDisplayMode & Add IManagerDisplayService::SetLayerVisibility stub (#118)
* Add ISystemDisplayService::GetDisplayMode & IManagerDisplayService::SetLayerVisibility

Also add some missing PrintStub calls

* Fix import ordering & Fix incorrect value for the third word in GetDisplayMode
2018-05-10 23:40:52 -03:00
gdkchan
ac91607ac3 Fix regression caused by wrong endian on GetAudioRendererWorkBufferSize version check 2018-05-07 16:03:30 -03:00
gdkchan
34037701c7
NvServices refactoring (#120)
* Initial implementation of NvMap/NvHostCtrl

* More work on NvHostCtrl

* Refactoring of nvservices, move GPU Vmm, make Vmm per-process, refactor most gpu devices, move Gpu to Core, fix CbBind

* Implement GetGpuTime, support CancelSynchronization, fix issue on InsertWaitingMutex, proper double buffering support (again, not working properly for commercial games, only hb)

* Try to fix perf regression reading/writing textures, moved syncpts and events to a UserCtx class, delete global state when the process exits, other minor tweaks

* Remove now unused code, add comment about probably wrong result codes
2018-05-07 15:53:23 -03:00
Ac_K
4419e8d6b4
Update IAudioRendererManager.cs 2018-05-04 16:52:07 +02:00
Ac_K
d0afc8e380 A REAL fix for some games. (#116)
* Update IAudioRendererManager.cs

* Update IAudioRendererManager.cs

* Update IAudioRendererManager.cs
2018-05-01 21:02:28 -03:00
gdkchan
071754aaeb Fix GetDesiredLanguage and expose a way to set the desired language, default to english 2018-04-29 20:18:46 -03:00
gdkchan
f73a182b20 Properly support multiple vertex buffers, stub 2 ioctls, fix a shader issue, change the way how the vertex buffer size is calculated for the buffers with limit = 0 2018-04-29 17:58:38 -03:00
gdkchan
17f4ccf2d5 Remove unnecessary casts from NxSettings 2018-04-26 13:57:25 -03:00
gdkchan
1af78416d1 Add null terminator to audio device names when writing to the output buffer 2018-04-26 11:34:40 -03:00
gdkchan
81e74ebd86 Remove thread from the threads list when it finishes, remove debug code 2018-04-26 00:07:12 -03:00
gdkchan
a38a72b062 Some small sync primitive fixes, logging fixes, started to implement the 2D engine on the GPU, fixed DrawArrays, implemented a few more shader instructions, made a start on nvdrv refactor, etc... 2018-04-25 23:12:26 -03:00
Ac_K
211f7f69db Update ISystemSettingsServer.cs (#107)
* Update ISystemSettingsServer.cs

Implement `GetSettingsItemValue`.

* Add NxSettings.cs

Generated automatically from a Switch 3.0 config file (Tid: 0100000000000818).

* Update ISystemSettingsServer.cs

* Update ISystemSettingsServer.cs

* Update ISystemSettingsServer.cs
2018-04-25 21:52:22 -03:00
gdkchan
2a985de88c [HLE/Audio] Use correct audio device names 2018-04-24 17:14:26 -03:00
gdkchan
a8ba340dde
Improved logging (#103) 2018-04-24 15:57:39 -03:00
Ac_K
4e24866b47
Update IAudioController.cs 2018-04-23 05:02:30 +02:00
gdkchan
db0aa54233 Print guest stack trace on a few points that can throw exceptions 2018-04-22 02:48:17 -03:00
gdkchan
bd9b1e2c6b Stub a few services, add support for generating call stacks on the CPU 2018-04-22 01:22:46 -03:00
Ac_K
4906acdde9 Some implementations (#99)
* Some implementations

- ICommonStateGetter
* GetBootMode
- ISelfController
* SetHandlesRequestToDisplay
- IServiceGetterInterface
- ISystemUpdateInterface
- IVulnerabilityManagerInterface
- IPrepoService
- ISettingsServer
* GetLanguageCode
- ISystemSettingsServer
* GetFirmwareVersion2
- IHOSBinderDriver
* TransactParcelAuto

* Fix Implementations

* Fix Implementations 2
2018-04-21 20:04:43 -03:00
Ac_K
434e40b8a0 Update am service (#98)
* am services implementations

Implement:
- IAllSystemAppletProxiesService
- IApplicationCreator
- IGlobalStateController
- IHomeMenuFunctions
  * RequestToGetForeground stub.
  * GetPopFromGeneralChannelEvent stub event.
- ISystemAppletProxy
  * GetCommonStateGetter
  * GetSelfController
  * GetWindowController
  * GetAudioController
  * GetDisplayController
  * GetLibraryAppletCreator
  * GetHomeMenuFunctions
  * GetGlobalStateController
  * GetApplicationCreator
  * GetDebugFunctions

* Update ServiceFactory.cs

* Update IHomeMenuFunctions.cs

* Update IHomeMenuFunctions.cs

* Update ServiceFactory.cs
2018-04-21 16:30:06 -03:00
gdkchan
90279d96ea
Implement the synchronization primitives like the Horizon kernel does (#97)
* Started to work in improving the sync primitives

* Some fixes

* Check that the mutex address matches before waking a waiting thread

* Add MutexOwner field to keep track of the thread owning the mutex, update wait list when priority changes, other tweaks

* Add new priority information to the log

* SvcSetThreadPriority should update just the WantedPriority
2018-04-21 16:07:16 -03:00