David Marcec
f2536cafe5
Proper no message handling for AM::PopMessage
...
When we have no messages, we should be returning an error code.
2019-01-04 13:11:17 +11:00
David Marcec
5af0340066
Fixed botw deadlock(and possibly 30 fps games rendering too fast? needs testing to confirm)
...
Upon investigating the issue with #1878 , I found that games are the ones who handle the vsync event resetting and not us.
2019-01-03 20:32:47 +11:00
bunnei
2c0f831468
Merge pull request #1976 from lioncash/display
...
service/vi: Implement OpenDefaultDisplay in terms of OpenDisplay
2019-01-02 21:51:20 -05:00
Lioncash
ceeff8ebfd
service/vi: Implement SetDisplayEnabled()
...
This IPC command is simply a stub inside the actual service itself, and
just returns a successful error code regardless of input. This is likely
only retained in the service interface to not break older code that relied
upon it succeeding in some way.
2019-01-02 20:48:04 -05:00
bunnei
7538fa4a67
Merge pull request #1977 from lioncash/vi-log
...
service/vi: Log more information where applicable
2019-01-02 20:36:40 -05:00
Lioncash
5bfd810ab5
service/vi: Log more information where applicable
...
In many cases, we didn't bother to log out any of the popped data
members. This logs them out to the console within the logging call to
provide more contextual information.
2019-01-02 19:42:10 -05:00
Lioncash
dea1db0414
service/vi: Implement OpenDefaultDisplay in terms of OpenDisplay
...
Internally within the vi services, this is essentially all that
OpenDefaultDisplay does, so it's trivial to just do the same, and
forward the default display string into the function.
2019-01-02 18:16:36 -05:00
Lioncash
351f010cfc
service/vi: Correct initial width and height values
...
Based off RE, it appears that almost all display types seem to use
1920x1080 except for a few (null display, edid display).
2019-01-02 17:36:03 -05:00
Lioncash
fe3bf4f075
service/vi: Document unknown DisplayInfo struct members
...
It appears that the two members indicate whether a display has a bounded
number of layers (and if set, the second member indicates the total
number of layers).
2019-01-02 17:35:58 -05:00
Lioncash
1f0c8bfeda
core/kernel: Remove unnecessary inclusions
...
Gets rid of a few unnecessary header dependencies in some source files.
2018-12-31 19:04:16 -05:00
bunnei
331c252509
Merge pull request #1847 from ogniK5377/backtrace-break
...
Print backtrace on svcBreak
2018-12-29 22:58:13 -05:00
Lioncash
fa97f50bff
service/time: Minor cleanup to GetClockSnapshot()
...
Moves some variables closer to their actual usage sites.
2018-12-29 21:42:13 -05:00
Lioncash
af51f123fa
service/time: Fill in some structures and remove padding where not necessary
2018-12-29 18:26:32 -05:00
David Marcec
22d4e10664
Moved log backtrace to arm_interface.cpp. Added printing of error code to fatal
2018-12-29 12:55:19 +11:00
Zach Hilman
0c5ede492f
travis: Use correct package for linux Qt5WebEngine
2018-12-28 19:29:49 -05:00
Zach Hilman
cb930c4b5a
web_browser: Add bounds checking to applet interface
2018-12-28 18:20:29 -05:00
Zach Hilman
32bfa92c71
core: Add getter and setter for WebBrowserApplet frontend
2018-12-28 15:32:39 -05:00
Zach Hilman
69f622be36
applets: Implement LibAppletOff (Web) applet
2018-12-28 15:32:39 -05:00
Zach Hilman
621b25b6be
hid: Make Hid service accessible and add GetPressState
2018-12-28 15:32:03 -05:00
Zach Hilman
94db6e5f3f
am: Add size parameter to am:IStorage logging
2018-12-28 15:30:36 -05:00
Lioncash
fbeaa330a3
kernel/process: Remove most allocation functions from Process' interface
...
In all cases that these functions are needed, the VMManager can just be
retrieved and used instead of providing the same functions in Process'
interface.
This also makes it a little nicer dependency-wise, since it gets rid of
cases where the VMManager interface was being used, and then switched
over to using the interface for a Process instance. Instead, it makes
all accesses uniform and uses the VMManager instance for all necessary
tasks.
All the basic memory mapping functions did was forward to the Process'
VMManager instance anyways.
2018-12-27 19:08:47 -05:00
bunnei
8e23e40a72
Merge pull request #1929 from bunnei/fix-hid
...
hid: Fix SetNpadJoyHoldType and improve logging.
2018-12-27 11:04:56 -05:00
bunnei
2991c747c9
Merge pull request #1945 from bunnei/fix-hid-horiz
...
npad: Remove code to invert input in horizontal mode.
2018-12-27 11:04:40 -05:00
Zach Hilman
c643f364b4
am: Implement GetSaveDataSize and ExtendSaveData
...
These functions come in a pair and are needed by Smash Ultimate, Minecraft, and Skyrim, amongst others.
2018-12-27 00:18:00 -05:00
Zach Hilman
2e6b67a079
filesystem: Populate save data sizes from control data
2018-12-27 00:18:00 -05:00
bunnei
7e622c5575
npad: Remove code to invert input in horizontal mode.
...
- This was incorrect, the game appears to handle this for us.
- Fixes horizontal mode with Puyo Puyo Tetris and Super Mario Odyssey.
2018-12-26 15:47:11 -05:00
bunnei
f95f6c7d86
Merge pull request #1781 from DarkLordZach/applet-profile-select
...
am: Implement HLE profile selector applet
2018-12-23 14:35:13 -05:00
bunnei
41cbd088c2
Merge pull request #1914 from lioncash/id
...
service/am: Unstub GetAppletResourceUserId
2018-12-21 13:43:51 -05:00
bunnei
1120e0b4d2
hid: Fix SetNpadJoyHoldType and improve logging.
2018-12-21 13:37:39 -05:00
bunnei
4923df10cc
Merge pull request #1923 from ogniK5377/nfp-device-list
...
Device handle should not be a random id, instead it's the current npad id
2018-12-19 13:14:43 -05:00
bunnei
80d36634e1
Merge pull request #1915 from lioncash/sm
...
service/sm: Improve debug log for RegisterService
2018-12-19 13:10:11 -05:00
David Marcec
807e7640aa
Device handle should not be a random id, instead it's the current npad id
...
Found during hardware testing
2018-12-19 14:16:30 +11:00
Lioncash
2a533f0067
service/sm: Improve debug log for RegisterService
...
Now it also indicates the name and max session count. This also gives a
name to the unknown bool. This indicates if the created port is supposed
to be using light handles or regular handles internally. This is passed
to the respective svcCreatePort parameter internally.
2018-12-18 18:22:22 -05:00
bunnei
116e6247ce
Merge pull request #1889 from DarkLordZach/swkbd-state-changed
...
applets: Correct usage of SignalStateChanged event
2018-12-18 09:59:27 -05:00
Lioncash
dd272298aa
service/am: Unstub GetAppletResourceUserId
...
This is supposed to return the current process' ID. (0 indicates an
invalid ID for both process IDs and ARU IDs).
2018-12-17 21:01:14 -05:00
bunnei
84823a3036
Merge pull request #1905 from bunnei/ignore-empty-gpu-lists
...
nvhost_gpu: Skip empty GPU command lists.
2018-12-15 00:35:33 -05:00
bunnei
040d84d816
nvhost_gpu: Skip empty GPU command lists.
2018-12-15 00:33:22 -05:00
Jens Schmer
27a9cc2e63
Fix Service object leak on emulation stop
...
Services created with the ServiceFramework base class install themselves as HleHandlers with an owning shared_ptr in the ServerPort ServiceFrameworkBase::port member variable, creating a cyclic ownership between ServiceFrameworkBase and the ServerPort, preventing deletion of the service objects.
Fix that by removing the ServiceFrameworkBase::port member because that was only used to detect multiple attempts at installing a port. Instead store a flag if the port was already installed to achieve the same functionality.
2018-12-13 20:08:23 +01:00
Mat M
9bae3ac33a
Merge pull request #1891 from DarkLordZach/istorage-getsize
...
fsp_srv: Implement IStorage::GetSize
2018-12-12 07:31:33 -05:00
bunnei
2c45c6d234
Merge pull request #1819 from DarkLordZach/disable-addons
...
patch_manager: Add support for disabling patches
2018-12-10 21:52:19 -05:00
bunnei
1aa9106244
Merge pull request #1883 from lioncash/log-fsp
...
service/fsp_srv: Correct returned value in GetGlobalAccessLogMode()
2018-12-10 21:45:29 -05:00
Zach Hilman
5e632caca5
fsp_srv: Implement IStorage::GetSize
...
Takes no input and returns the size as a u64. Needed by Katamari Damacy Reroll to boot.
2018-12-10 14:14:36 -05:00
Lioncash
f3a555a484
service/fsp_srv: Correct returned value in GetGlobalAccessLogMode()
...
Based off RE, the backing code only ever seems to use 0-2 as the range
of values 1 being a generic log enable, with 2 indicating logging should
go to the SD card. These are used as a set of flags internally.
Given we only care about receiving the log in general, we can just
always signify that we want logging in general.
2018-12-09 20:42:35 -05:00
Zach Hilman
0d2ba2ca4c
applets: Correct usage of SignalStateChanged event
...
This was causing some games (most notably Pokemon Quest) to softlock due to an event being fired when not supposed to. This also removes a hack wherein we were firing the state changed event when the game retrieves it, which is incorrect.
2018-12-09 19:46:15 -05:00
bunnei
3bddd5351e
Merge pull request #1864 from lioncash/nrr
...
service/ldr: Amend layouts of NRO and NRR headers
2018-12-07 22:26:31 -05:00
bunnei
b9e80e97b7
Merge pull request #1874 from lioncash/bindings
...
hle/service, hle/sm: Minor cleanup
2018-12-07 18:31:04 -05:00
Lioncash
24f051d723
hle/service: Replace log + UNIMPLEMENTED with UNIMPLEMENTED_MSG
...
Combines the two into one, shortening the amount of code here.
2018-12-06 01:40:23 -05:00
Lioncash
9f56477539
hle/service: Remove unnecessary using declarations
...
Only one usage of the specified objects made use of the lack of
namespacing. Given the low usage, we can just remove these.
2018-12-06 01:37:41 -05:00
Lioncash
d8625f5544
hle/service, hle/sm: Compress usages of MakeResult()
...
These auto-deduce the result based off its arguments, so there's no need
to do that work for the compiler, plus, the function return value itself
already indicates what we're returning.
2018-12-06 01:33:22 -05:00
Lioncash
a8269fdae3
hle/service, hle/sm: Use structured bindings where applicable
...
Gets rid of the need to keep the variables separate from their actual
initialization spots.
2018-12-06 01:31:26 -05:00
Lioncash
7c9b194d63
service/ldr: Deduplicate instruction cache clearing code in LoadNro()
...
We don't need to specify all of the ARM interfaces explicitly.
2018-12-05 00:33:47 -05:00
Lioncash
05a6f1f676
service/ldr: Amend layout of the NRO header
...
The first word is just a padding byte, it's not an actual entry
instruction. Also renames the rest of the entries according to
SwitchBrew.
2018-12-05 00:16:49 -05:00
Lioncash
817fb18e30
service/ldr: Corrent padding within the NRR header layout
...
The padding after the magic signature value should be 12 bytes rather
than 28 bytes. The other 16 should be placed after the title ID pattern.
2018-12-05 00:05:04 -05:00
bunnei
d08d4a366b
Merge pull request #1704 from DarkLordZach/oss-sysarchive
...
file_sys: Implement open source system archives
2018-12-04 19:59:52 -05:00
Zach Hilman
e11e65b3d6
applets: Correct event ResetTypes from OneShot to Sticky
...
Fixes bugs relating to signalling in software keyboard.
2018-12-03 17:27:40 -05:00
Zach Hilman
60b59d554d
am: Use ProfileSelect applet
2018-12-03 17:26:27 -05:00
Zach Hilman
4fb59fdfe1
applets: Implement ProfileSelect applet
...
Allows the player to select an emulated profile.
2018-12-03 17:26:27 -05:00
Zach Hilman
877b31b33e
software_keyboard: Signal state changed event upon construction
...
Previously, ILibraryAppletAccessor would signal upon creation of any applet, but this is incorrect. A flag inside of the applet code determines whether or not creation should signal state change and swkbd happens to be one of these applets.
2018-12-03 17:26:26 -05:00
Zach Hilman
51483d83bb
aoc_u: Obey disabled add-ons list when listing DLC
2018-12-03 17:21:25 -05:00
bunnei
f6b22d9251
Merge pull request #1835 from lioncash/cache-global
...
filesystem: De-globalize registered_cache_union
2018-12-03 17:11:26 -05:00
bunnei
ef69b4b830
Merge pull request #1803 from DarkLordZach/k-able-event
...
kernel: Divide Event into ReadableEvent and WritableEvent
2018-12-03 17:05:57 -05:00
bunnei
f7d5f72944
Merge pull request #1833 from lioncash/clean
...
service/fsp_srv: Implement CleanDirectoryRecursively
2018-12-03 17:04:05 -05:00
bunnei
118f402382
Merge pull request #1839 from lioncash/init
...
service/audio/audout_u: Amend constructor initialization list order
2018-12-03 17:03:00 -05:00
bunnei
a238cdb5ca
Merge pull request #1841 from ogniK5377/npad-mode-fix
...
Fixed crash with SetNpadMode
2018-12-03 17:02:40 -05:00
Lioncash
6306e54f45
service/usb: Update function table
...
Updates the function table for IClientEpSession based off information
provided by SwitchBrew.
2018-12-02 15:49:40 -05:00
Lioncash
f933b3370e
service/erpt: Update function table
...
Updates the function table according to information provided by
SwitchBrew.
2018-12-02 15:46:44 -05:00
David Marcec
a9223c8182
Fixed crash with SetNpadMode
...
fixed crash due to handheld
2018-12-03 02:45:08 +11:00
Lioncash
57ac068a23
service/audio/audout_u: Amend constructor initialization list order
...
Orders the constructor initializer list the same way the members of the
class are declared. Prevents -Wreorder warnings
2018-12-01 23:56:20 -05:00
Lioncash
db4523f1ec
filesystem: De-globalize registered_cache_union
...
We can just return a new instance of this when it's requested. This only
ever holds pointers to the existing registed caches, so it's not a large
object. Plus, this also gets rid of the need to keep around a separate
member function just to properly clear out the union.
Gets rid of one of five globals in the filesystem code.
2018-12-01 23:43:23 -05:00
bunnei
97e73591e3
Merge pull request #1830 from Subv/vi_ub
...
Services/VI: Dereferencing an uninitialized std::optional is undefined behavior.
2018-12-01 22:25:10 -05:00
Lioncash
a7d9fe993a
service/fsp_srv: Implement CleanDirectoryRecursively
...
This is the same behavior-wise as DeleteDirectoryRecursively, with the
only difference being that it doesn't delete the top level directory in
the hierarchy, so given:
root_dir/
- some_dir/
- File.txt
- OtherFile.txt
The end result is just:
root_dir/
2018-11-30 20:17:28 -05:00
Subv
583bd20f02
Services/VI: Dereferencing an uninitialized std::optional is undefined behavior.
...
Assert that it is not empty before using it in the DequeueBuffer wait callback.
2018-11-30 16:06:49 -05:00
Lioncash
308bbba8b9
service/set: Convert GetLanguageCode over to using PushEnum()
...
This code was around prior to the introduction of PushEnum, so convert
it over so we don't need to cast here.
2018-11-30 09:08:07 -05:00
Lioncash
7c04fe22b4
service/set: Implement MakeLanguageCode
...
This function simply converts a given index into a language code.
2018-11-30 09:08:03 -05:00
Zach Hilman
170d707850
hle_ipc: Refactor SleepClientThread to avoid ReadableEvent
2018-11-29 09:14:20 -05:00
Zach Hilman
a342bcc9b1
kernel/event: Reference ReadableEvent from WritableEvent
2018-11-29 08:48:40 -05:00
Zach Hilman
ff610103b5
core: Port all current usages of Event to Readable/WritableEvent
2018-11-29 08:45:41 -05:00
bunnei
1e49a85106
Merge pull request #1801 from ogniK5377/log-before-execute
...
Changed logging to be "Log before execution", Added more error logging, all services/svc should now log on some level
2018-11-29 00:58:46 -05:00
bunnei
c5ab648554
Merge pull request #1817 from DarkLordZach/npad-idx-fix
...
npad: Use NPadIdToIndex to prevent invalid array access
2018-11-28 17:46:17 -05:00
bunnei
6f849887c9
Merge pull request #1792 from bunnei/dma-pusher
...
gpu: Rewrite GPU command list processing with DmaPusher class.
2018-11-28 10:12:37 -05:00
Zach Hilman
299224790c
npad: Use NPadIdToIndex to prevent invalid array access
2018-11-28 09:01:58 -05:00
bunnei
ac74b71d75
dma_pushbuffer: Optimize to avoid loop and copy on Push.
2018-11-27 19:17:33 -05:00
Zach Hilman
6df74ff579
npad: Fix copy/paste error with LED position assignments
2018-11-27 17:23:44 -05:00
bunnei
3cc204aff8
Merge pull request #1802 from DarkLordZach/user-data-storage
...
profile_manager: Save and load ProfileData from disk
2018-11-27 16:36:23 -05:00
bunnei
abea6fa90c
gpu: Rewrite GPU command list processing with DmaPusher class.
...
- More accurate impl., fixes Undertale (among other games).
2018-11-26 23:14:01 -05:00
David Marcec
f271316822
Reworked svcs slightly, improved error messages in AM and fsp_srv
2018-11-27 12:29:06 +11:00
Zach Hilman
dac0c33fd2
profile_manager: Save and load ProfileData from disk
...
The ProfileData is a 0x80-sized structure that stores various pieces of miscellaneous data for the account.
2018-11-26 17:11:12 -05:00
David Marcec
dace6087d6
Fixed hwopus compile error
2018-11-26 21:52:10 +11:00
David Marcec
3d627df4d8
Improved error messages in AM, HwOpus and NvMap
2018-11-26 20:05:09 +11:00
David Marcec
a2cc3b10bb
Changed logging to be "Log before execution", Added more error logging, all services should now log on some level
2018-11-26 17:06:13 +11:00
bunnei
ee764c3b4b
Merge pull request #1793 from lioncash/ref
...
service/sm: Take std::string by const reference in UnregisterService
2018-11-25 23:04:21 -05:00
bunnei
932fbd5a25
Merge pull request #1791 from bunnei/nvdrv-stub
...
nvdrv: Implement/stub DumpGraphicsMemoryInfo and GetStatus.
2018-11-24 23:45:24 -05:00
Lioncash
b0df09335c
service/sm: Take std::string by const reference in UnregisterService
...
Avoids the need to create a copy of the std::string instance
(potentially allocating).
The only reason RegisterService takes its argument by value is because
it's std::moved internally.
2018-11-24 00:08:13 -05:00
bunnei
f7a1827aaa
Merge pull request #1641 from DarkLordZach/sm-register-unregister
...
sm: Implement RegisterService and UnregisterService
2018-11-23 23:59:01 -05:00
bunnei
7c4fb09a7c
Merge pull request #1731 from DarkLordZach/change-dir-crash
...
filesystem: Clear registered union paths on factory creation
2018-11-23 23:58:31 -05:00
bunnei
e65966bcfc
Merge pull request #1708 from ogniK5377/res-scale
...
Report resolution scaling support for vi and am
2018-11-23 23:32:19 -05:00
bunnei
0d673a84b6
nvdrv: Implement/stub DumpGraphicsMemoryInfo and GetStatus.
...
- Used by Undertale.
2018-11-23 23:22:04 -05:00
bunnei
c267aea29b
Merge pull request #1770 from DarkLordZach/applet-stub
...
applets: Add StubApplet and use it as fallback when AppletId is not implemented
2018-11-23 09:02:25 -08:00
bunnei
cb5b68cb0a
Merge pull request #1762 from bunnei/getgputime
...
nvhost_ctrl_gpu: Implement IoctlGetGpuTime.
2018-11-23 08:35:26 -08:00
Zach Hilman
f820e58be4
am: Return StubApplet instead of nullptr when AppletId not found
2018-11-22 15:58:11 -05:00