Commit graph

152 commits

Author SHA1 Message Date
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
emmauss 267ea14cb5 fix typo in log (#93) 2018-04-20 12:40:33 -03:00
gdkchan 03002f6537 Add SvcSetThreadActivity, tweak SignalProcessWideKey, add fmul32i shader instructions and other small fixes 2018-04-19 16:18:30 -03:00
gdkchan 33ae6e544b [HLE/Kernel] Fix SetThreadPriority, allow nano seconds values > int.MaxValue, fix on WaitProcessWideKeyAtomic (althrough looks like it still doesn't work properly 2018-04-19 04:06:23 -03:00
gdkchan 62b2124c03 [HLE/Kernel] Dispose the thread wait even on exit 2018-04-19 01:01:46 -03:00
gdkchan 6e69cd9284 Fix bad merge, and a few other fixes 2018-04-19 00:19:22 -03:00
gdkchan ac80e7d3f9 [HLE/Kernel] Yield when cond var is signaled 2018-04-19 00:00:29 -03:00
gdkchan b9af34f3dd [HLE/Kernel] Somewhat improved sync primitives 2018-04-18 23:52:36 -03:00
Ac_K 7450b9d68a Update IAudioDeviceService.cs (#87)
* Update IAudioDeviceService.cs

Stubs:
- QueryAudioDeviceSystemEvent
- GetActiveChannelCount

* Update IAudioDeviceService.cs

* Update IAudioDeviceService.cs
2018-04-17 22:52:20 -03:00
Ac_K ee6794e397 Update IAudioController.cs (#86)
* Update IAudioController.cs

Stubs:
- SetExpectedMasterVolume
- GetMainAppletExpectedMasterVolume
- GetLibraryAppletExpectedMasterVolume
- ChangeMainAppletMasterVolume
- SetTransparentVolumeRate

* Update IAudioController.cs
2018-04-17 22:39:27 -03:00
Ac_K 917fb7ad21 Update IAccountServiceForApplication.cs (#85)
Stubs:
- GetUserCount (`Write(0);` throw userland error)
2018-04-17 13:41:14 -03:00
Ac_K ed155e6f4e Update IHidServer.cs (#84)
* Update IHidServer.cs

Stubs:
- SetGyroscopeZeroDriftMode
- SetNpadHandheldActivationMode
- SendVibrationValue
- GetPlayerLedPattern

* Update IHidServer.cs

updated
2018-04-17 13:40:22 -03:00
emmauss b334aab435 Add special log for stubs (#81)
* add stub loglevel

* add log for stubbed methods
2018-04-16 21:24:42 -03:00
gdkchan 42ebfdff7f [GPU] Fix frame buffer being upside down in some cases 2018-04-14 00:39:24 -03:00
emmauss bbcad307bd Add logclass, made changes to logging calls (#79)
* add logclass, made changes to logging calls

* made enum parsing case insensitive

* enable logclass on partial or complete match
2018-04-13 22:02:24 -03:00
gdkchan 435f9ffad8 [HLE] Fix hid issues on some games 2018-04-13 17:39:45 -03:00
gdkchan c8c86a3854
Fix for current framebuffer issues (#78)
[GPU] Fix some of the current framebuffer issues
2018-04-13 15:12:58 -03:00
gdkchan 46548bbc41 [HLE/Service] Fix ToCalendarTimeWithMyRule (for real this time) 2018-04-10 21:18:20 -03:00
gdkchan 29a4fb6a57 [HLE/Service] Fix ToCalendarTimeWithMyRule 2018-04-10 21:16:27 -03:00
gdkchan cb29b4303c [CPU] Fix CNT instruction 2018-04-10 20:58:32 -03:00
gdkchan 7b2f471d4f [GPU] Add support for the BC4/5 texture formats 2018-04-10 18:54:50 -03:00
gdkchan ecf02f525f Remove line numbers from log 2018-04-08 17:38:27 -03:00
emmauss b2668e659c log calling method in logs (#71) 2018-04-08 17:30:50 -03:00
gdkchan b9aa3966c0 Merge shader branch, adding support for GLSL decompilation, a macro
interpreter, and a rewrite of the GPU code.
2018-04-08 16:41:38 -03:00
gdkchan b27944c0b5 Bump the maximum number of threads 2018-04-06 10:53:18 -03:00
gdkchan a7ecf6dd2d Show service short name for unimplemented commands 2018-04-06 02:38:59 -03:00
gdkchan 2fd718c163 Fix typo 2018-04-06 01:07:51 -03:00
gdkchan dcf0f0be38 Fix possible regression on bsd 2018-04-06 01:06:34 -03:00
gdkchan 69e32e5bbc Rename services with the official interface names 2018-04-06 01:01:52 -03:00
gdkchan 4c19c908e5 Color* should be an array in NvGpuIoctlZbcSetTable 2018-04-05 10:23:52 -03:00
Starlet 1f013df7ed [ServiceNvDrv] Add 0x4703 ([/dev/nvhost-ctrl-gpu] NvGpuIoctlZbcSetTable) (#70)
[ServiceNvDrv] Add 0x4703 ([/dev/nvhost-ctrl-gpu] NvGpuIoctlZbcSetTable)
2018-04-05 10:18:13 -03:00
gdkchan 9754836c1b Fix GetAvailableLanguageCodes, stub ListAddOnContent and NvGpuAsIoctlRemap (0x4114) 2018-04-04 21:01:36 -03:00
gdkchan 2d33756878 Stub ActivateKeyboard on Hid 2018-04-04 19:44:02 -03:00
gdkchan c8b6274456 Stub ActivateMouse on Hid 2018-04-04 19:39:47 -03:00
gdkchan a3d6baab91 Remove useless spacing 2018-04-04 19:29:34 -03:00
emmauss 836a003c8e stubs (#69) 2018-04-04 19:16:59 -03:00
gdkchan e0c3d9c8df Fix SvcGetThreadId 2018-04-04 16:07:44 -03:00
Ezekiel Bethel f48f5e3f5b SVC: Add GetInfo type 20 (added in 5.0.0) to the list of explicitly unimplemented types. (#68) 2018-03-30 12:27:48 -03:00
emmauss 0d2f073152 implement isession:getperformanceconfiguration (#64) 2018-03-23 09:26:11 -03:00
emmauss 423ae5d889 handle vi:u and vi:s getdisplayservice (#66) 2018-03-23 07:44:27 -03:00
emmauss 33ad3982aa added set: getavailablelanguagecount (#65) 2018-03-23 07:42:34 -03:00
emmauss 3c82c8de8c rename some services (#63) 2018-03-21 20:30:10 -03:00
emmauss e2a80ba29e rename some calls to current names (#61) 2018-03-21 13:28:12 -03:00
gdkchan d4a3e8267b Allow enabling/disabling memory checks on config file 2018-03-20 18:42:13 -03:00
gdkchan e922c3627a Rename IpcServices -> Services 2018-03-20 17:00:00 -03:00
gdkchan 1bd99e5597 Support different framebuffer offsets (fixes #59) 2018-03-20 12:18:25 -03:00
gdkchan 4314a8f3e5
[WIP] Add support for events (#60)
* Add support for events, move concept of domains to IpcService

* Support waiting for KThread, remove some test code, other tweaks

* Use move handle on NIFM since I can't test that now, it's better to leave it how it was
2018-03-19 15:58:46 -03:00
gdkchan 4940cf0ea5 Add BFI instruction, even more audout fixes 2018-03-16 00:42:44 -03:00
gdkchan 79a5939734
Improvements to audout (#58)
* Some audout refactoring and improvements

* More audio improvements

* Change ReadAsciiString to use long for the Size, avoids some casting
2018-03-15 21:06:24 -03:00
gdkchan 19564e570b Stub StartSixAxisSensor 2018-03-13 21:26:14 -03:00
gdkchan 2ed24af756 Add pl:u stub, use higher precision on CNTPCT_EL0 register tick count 2018-03-13 21:24:32 -03:00
emmauss 4d90d60119 stub some hid service functions (#57) 2018-03-13 18:59:17 -03:00
gdkchan 6f4282daf8 IAudioDeviceService -> IAudioDevice 2018-03-12 16:31:09 -03:00
gdkchan d88b5c7621 Fix GetAudioRenderersProcessMasterVolume which was totally wrong 2018-03-12 16:29:06 -03:00
gdkchan e32f27158f Stub GetAudioRenderersProcessMasterVolume and avoid blowing up the stack inside HDomains Dispose method 2018-03-12 02:07:48 -03:00
gdkchan 8cb23c133b Add bsd:s service variant again 2018-03-12 01:15:39 -03:00
gdkchan 7a27990faa Allow more than one process, free resources on process dispose, implement SvcExitThread 2018-03-12 01:14:12 -03:00
Ac_K 3aaa4717b6 Implement BSD Service (#54)
* Implement BSD Service

- Implementation of bsd:s & bsd:u.
- Adding an EndianSwap class.

* Corrections #1

* Correction2
2018-03-11 22:05:39 -03:00
gdkchan 28275a8976 Do not sign-extend timestamps 2018-03-10 20:51:55 -03:00
gdkchan 3777fb44cf Allow to enable/disable memory checks even on release mode through the flag, return error for invalid addresses on SvcMap*Memory svcs, do not return error on SvcQueryMemory (instead, return reserved for the end of the address space), other minor tweaks 2018-03-10 20:39:16 -03:00
gdkchan 5912bd2beb Disable memory checks by default, even on debug, move ram memory allocation inside the CPU, since the size if fixed anyway, better heap region size 2018-03-09 23:12:57 -03:00
gdkchan 4f177c9ee7 More Vi/NvFlinger/NvDrv stubs, allow paths starting with //, do not allow paths that don't start with at least a /, increase map region size 2018-03-06 17:28:03 -03:00
emmauss 4038e63de1 Implement basic performance statistics (#53)
* implement basic frame time stats

* added game frame time

* made performancestatictics class non-static

* report average framerate instead of current framerate
2018-03-06 17:18:49 -03:00
emmauss 39ed14a3d6 stub IApplicationDisplayService:CloseDisplay (#52) 2018-03-06 10:25:26 -03:00
gdkchan 2d9edddf8c Remove QueryMemory workaround 2018-03-05 16:20:30 -03:00
gdkchan 59d1b2ad83 Add MUL (vector by element), fix FCVTN, make svcs use MakeError too 2018-03-05 16:18:37 -03:00
gdkchan 0e343a748d Add FCVTL and FCVTN instruction (no Half support yet), stub SvcClearEvent 2018-03-05 12:58:56 -03:00
gdkchan 73cc30cc80 Allow multiple hid shared memory locations 2018-03-05 02:09:52 -03:00
gdkchan 344fc8a55d Try fixing NvFlinger rotation with scaling, return correct error code on WaitSignal timeout, always display window at the center of the screen 2018-03-04 20:32:18 -03:00
gdkchan 3edb66f389
Improve CPU initial translation speeds (#50)
* Add background translation to the CPU

* Do not use a separate thread for translation, implement 2 tiers translation

* Remove unnecessary usings

* Lower MinCallCountForReJit

* Remove unused variable
2018-03-04 14:09:59 -03:00
gdkchan ee9df32e3e Do not block execution on audout append buffer 2018-03-04 01:41:35 -03:00
gdkchan 479443564c Remove unneeded log messages 2018-03-04 00:09:16 -03:00
gdkchan 8dcffe6a51 Fix hid touch screen timestamp, add more log info 2018-03-04 00:06:44 -03:00
gdkchan 7d48886750 Fix Rename* functions on FspSrv, add a separate class do hold system settings on Switch 2018-03-03 14:04:58 -03:00
gdkchan 646af2498c Fix paths using ascii instead of utf8 on IFileSystem 2018-03-03 02:24:04 -03:00
gdkchan c14c69a10c
Refactor HID, fix issues (#48)
* Refactor HID, fix issues

* Fix on touch screen code with wrong offset

* Don't use magic values

* Replace more magic values with actual variables, fix touch screen coordinates on different window sizes
2018-03-02 22:49:17 -03:00
Ac_K 1d71e33171 Update IAudioOut.cs (#51)
Little improvements, sound looks a little better...
2018-03-02 01:06:05 -03:00
emmauss 65e04e9854 stub set_sys (#49) 2018-03-01 17:23:55 -03:00
gdkchan 5d8a615c21 Enable hardware frame buffer texture scaling 2018-02-28 23:37:40 -03:00
gdkchan eacd432387 Fix wrong rotation direction on nvflinger 2018-02-28 19:21:04 -03:00
Ac_K 424e045940 More stubs (#47)
* Stubs implementations

Services Bsd, Nifm & SSL stubs implementations
Objects IGeneralService, IRequest stubs implementations.
Fake-Fix GetAvailableLanguageCodes stub too ^^!

* More stubs

- Fix SvcGetInfo loops by gdkchan.
- Implement stub for Sfdnsres service.
- Add more stubs for Bsd service.

* Update ServiceSfdnsres.cs
2018-02-28 17:58:04 -03:00
Ac_K 7f0bee2ff8 Stubs implementations (#45)
Services Bsd, Nifm & SSL stubs implementations
Objects IGeneralService, IRequest stubs implementations.
Fake-Fix GetAvailableLanguageCodes stub too ^^!
2018-02-28 00:31:52 -03:00
gdkchan f876bd2a80 Change SvcGetInfo 5 to return actual heap size, remove AMemoryAlloc since it is no longer needed with direct memory access, move some memory management logic out of AMemoryMgr, change default virtual filesystem path to AppData 2018-02-27 20:45:07 -03:00
gdkchan f6dc86c6a0 Implement SvcSetMemoryAttribute 2018-02-25 22:53:01 -03:00
gdkchan 13214ffa43 Fix regression introduced on last commit with wrong ImageEnd 2018-02-25 22:44:30 -03:00
gdkchan 950011c90f Added initial support for function names from symbol table on the cpu with tracing, fix wrong ImageEnd on executables with MOD0, fix issue on the CPU on input elimination for instruction with more than one register store 2018-02-25 22:14:58 -03:00
Ac_K e174100474 Implement many objects, improve logging. (#42)
* Implement many objects, improve logging.

Change and rename folders of Services
Add Logging of IpcMessage.
Add "lm" Log Service.
Parse Errors of SetTerminateResult
Add Svc Calls.
Add many object implementations.

* Corrections

Forgotten Debug Conf

* Corrections 2

* Corrections 3

* Corrections 4
2018-02-25 15:58:16 -03:00
gdkchan fba0bf8732 Refactor IPC services to have commands into separate classes, fix readme url 2018-02-25 01:34:27 -03:00
Ac_K e90a0f0e33 Update SvcSystem.cs (#40)
* Update SvcSystem.cs

Implement SvcGetInfo 0

* Update SvcSystem.cs
2018-02-24 20:09:10 -03:00
Ac_K 8fa26a18c5 Update IpcMessage.cs (#38)
Temporary Fix by Misson20000
2018-02-24 20:08:54 -03:00
Ac_K c9f54aabfb Update IpcHandler.cs (#39)
Temporary Fix by Misson20000
2018-02-24 20:08:29 -03:00
gdkchan 035efc913e Fix cpu issue with cmp optimization, add HINT and FRINTX (scalar) instructions, fix for NvFlinger sometimes missing free buffers 2018-02-24 11:19:28 -03:00
gdkchan 3936c93448 Map heap on heap base region, fix for thread start on homebrew, add FCVTMU and FCVTPU (general) instructions, fix FMOV (higher 64 bits) encodings, improve emit code for FCVT* (general) instructions 2018-02-23 21:59:38 -03:00
gdkchan 2ed733b1d5 Somewhat better NvFlinger (I guess) (fixes #30) 2018-02-23 18:48:27 -03:00
emmauss 1b33e2f1d4 implement single tap touchscreen (#34) 2018-02-22 10:28:27 -03:00
Ac_K 224211367f Initiale hbmenu.nro support (#32)
* Initiale hbmenu.nro support

Implement missing SetScreenShotPermission object.
Implement missing IsCurrentProcessBeingDebugged in SVC.
Add a Extension variable to Executable.
Add basic support of hbmenu.nro.

* Homebrew.cs correction
2018-02-21 21:51:17 -03:00