Lioncash
5961928543
core/frontend/applets/web_browser: Include missing headers
...
Gets rid of a few indirect inclusions.
2019-01-17 11:25:37 -05:00
Lioncash
a661025637
core/frontend/applets/web_browser: Make OpenPage() non-const
...
This is a function that definitely doesn't always have a non-modifying
behavior across all implementations, so this should be made non-const.
This gets rid of the need to mark data members as mutable to work around
the fact mutating data members needs to occur.
2019-01-17 11:19:52 -05:00
bunnei
c9ef8b0af1
Merge pull request #1959 from DarkLordZach/custom-rtc
...
settings: Add support for setting the RTC manually
2019-01-10 17:05:21 -05:00
bunnei
83e8ad2331
Merge pull request #1939 from DarkLordZach/web-applet
...
applets: Implement HLE web browser applet (LibAppletOff)
2019-01-10 17:04:38 -05:00
Zach Hilman
05dbb47af5
settings: Use std::chrono::seconds instead of s64 for RTC
2019-01-07 19:19:40 -05:00
Zach Hilman
dbb1eb9c29
time: Use custom RTC settings if applicable for game
2019-01-07 19:19:40 -05:00
bunnei
17a68e5ebe
Merge pull request #1989 from lioncash/set
...
service/vi: Unstub IApplicationDisplayService's SetLayerScalingMode
2019-01-07 12:59:33 -05:00
bunnei
59c665b28e
Merge pull request #1988 from lioncash/res
...
service/vi: Correct reported dimensions from IApplicationDisplayService's GetDisplayResolution()
2019-01-05 00:26:29 -05:00
Lioncash
9e8737b535
service/vi: Correct scaling mode conversions
...
These values are not equivalent, based off RE. The internal value is put
into a lookup table with the following values:
[3, 0, 1, 2, 4]
So the values absolutely do not map 1:1 like the comment was indicating.
2019-01-04 21:45:18 -05:00
Lioncash
56e51da1d9
service/vi: Factor out scaling mode conversions from the IPC function itself
...
Avoids entangling the IPC buffer appending with the actual operation of
converting the scaling values over. This also inserts the proper error
handling for invalid scaling values.
2019-01-04 21:45:18 -05:00
Lioncash
40aa1ea9f9
service/vi: Unstub IApplicationDisplayService' SetLayerScalingMode()
...
This appears to only check if the scaling mode can actually be
handled, rather than actually setting the scaling mode for the layer.
This implements the same error handling performed on the passed in
values.
2019-01-04 21:45:14 -05:00
bunnei
a01832b2e0
Merge pull request #1981 from ogniK5377/open-app-area-create
...
Return no application area when games try to open an application area
2019-01-04 21:42:23 -05:00
bunnei
1c7696e0d9
Merge pull request #1980 from ogniK5377/applet-msg-update
...
Proper no message handling for AM::PopMessage
2019-01-04 21:42:12 -05:00
Lioncash
bf036b46fc
service/vi: Correct reported dimensions from IApplicationDisplayService's GetDisplayResolution()
...
Within the actual service, it makes no distinguishing between docked and
undocked modes. This will always return the constants values reporting
1280x720 as the dimensions.
2019-01-04 19:13:32 -05:00
bunnei
de4f931d13
Merge pull request #1975 from lioncash/vi
...
service/vi: Minor updates and corrections to the DisplayInfo struct
2019-01-03 22:45:27 -05:00
David Marcec
48a526dba1
Return no application area when games try to open an application area
...
This will prompt CreateApplicationArea
2019-01-04 13:22:25 +11:00
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
Zach Hilman
b358e88512
debug_pad: Avoid loading input for nonexistent buttons (Home and Screenshot)
...
Prevents memory exceptions when the debug pad is enabled.
2018-11-22 12:23:43 -05:00
bunnei
af159a4d08
Merge pull request #1765 from bunnei/multi-audout
...
audout_u: Add support for multiple IAudioOut streams.
2018-11-22 08:43:53 -08:00
bunnei
5a6dc4d041
audout_u: Add support for multiple IAudioOut streams.
...
- Used by Undertale.
2018-11-22 00:53:39 -05:00
Zach Hilman
699900eed0
applets: Add StubApplet
...
This will log all data it receives, log all calls to its methods and push dummy data into both channels on execution.
2018-11-21 21:20:02 -05:00
bunnei
d4012a4540
Merge pull request #1742 from lioncash/hle-swkbd
...
am/applets: Minor cleanup
2018-11-21 11:43:43 -08:00
bunnei
7f10db1c20
nvhost_ctrl_gpu: Implement IoctlGetGpuTime.
...
- Used by Undertale.
2018-11-21 11:43:25 -05:00
Lioncash
f17e122025
am: Correct build failure
...
The interface for shared memory was changed, but another commit was
merged that relied on the (previously public) internals of SharedMemory.
This amends that discrepancy.
2018-11-20 19:49:07 -05:00
bunnei
ab292c501c
Merge pull request #1733 from lioncash/ldr
...
ldr: Clean up error codes
2018-11-20 16:13:09 -08:00
Lioncash
73b7748984
am/applets: Make the applet data broker part of the applet itself.
...
The accessor should be doing just that, accessing, rather than retaining
the lifetime of the data broker as well.
2018-11-20 12:36:33 -05:00
Lioncash
8b4b560df5
am/applets: Replace includes with forward declarations where applicable
...
Also resolve places where includes should have been provided, but
weren't.
2018-11-20 11:53:55 -05:00
Lioncash
dd254c603d
am/applets: Relocate comments above the relevant data member in AppletDataBroker
...
Avoids wonky wrapping and makes it nicer to read.
2018-11-20 11:49:49 -05:00
bunnei
b6d2c64f4d
Merge pull request #1667 from DarkLordZach/swkbd
...
am: Implement HLE software keyboard applet
2018-11-20 08:24:11 -08:00
Lioncash
34e4aaddd9
lm: Implement SetDestination by doing nothing
...
This service function was likely intended to be a way to redirect where
the output of a log went. e.g. Firing a log over a network, dumping over
a tunneling session, etc.
Given we always want to see the log and not change its output. It's one
of the lucky service functions where the easiest implementation is to
just do nothing at all and return success.
2018-11-19 18:09:40 -05:00
Zach Hilman
a9fa890f14
software_keyboard: Fix erroneous extra PushNormalData
2018-11-19 16:30:17 -05:00
Zach Hilman
d68795c665
software_keyboard: Return correct result code on user cancel operation
2018-11-19 15:10:01 -05:00
Zach Hilman
32775125b7
applet: Add AppletDataBroker to manage HLE to AM service interaction
...
This cleans up most of the callbacks and such in the Applets::Applet interface, while also properly implementing all four data channels.
2018-11-19 14:24:36 -05:00
Zach Hilman
96535c13a5
software_keyboard: Use correct offset for inital text string
2018-11-19 11:22:04 -05:00
Lioncash
43e7c6cf49
ldr: Clean up error codes
...
The separate enum isn't particularly necessary here, and the values can
just be directly put into the ResultCode instances, given the names are
also self-documenting here.
2018-11-19 08:12:25 -05:00
Zach Hilman
c3becdbca7
filesystem: Clear registered union paths on factory creation
2018-11-18 23:31:30 -05:00
Zach Hilman
3a6cd5b3c8
hid: Use player-defined controller type as PREFERRED_CONTROLLER
2018-11-18 23:22:36 -05:00
Zach Hilman
55ded706d6
hid/npad: Update NPad to use player controller bindings and type
2018-11-18 23:22:36 -05:00
Zach Hilman
e9145c3e16
hid/touchscreen: Update Touchscreen to use advanced parameters
...
Including finger ID, diamater x/y, and angle. Additionally, checks if the touchscreen is enabled.
2018-11-18 23:22:36 -05:00
Zach Hilman
3b25426bd9
hid: Add controller bindings for Mouse controller
2018-11-18 23:22:36 -05:00
Zach Hilman
0fd45e78f4
hid: Add keyboard bindings for Keyboard controller
2018-11-18 23:22:36 -05:00
Zach Hilman
06cf050c0a
hid: Add controller bindings for DebugPad controller
...
Used by developers to test games, not present on retail systems. Some games are known to respond to DebugPad input though, for example Kirby Star Allies.
2018-11-18 23:22:36 -05:00
David Marcec
0c3e7b7086
Added missing start/end touch attributes to touchscreen
2018-11-18 23:21:33 -05:00
David Marcec
f66c6fe554
Added debugpad skeleton
2018-11-18 23:21:33 -05:00
David Marcec
362b28d052
Added controller helper funcs
2018-11-18 23:21:33 -05:00
David Marcec
a69b9d73f5
Changed polling rate of hid and Right joycon rotation
2018-11-18 23:21:33 -05:00
David Marcec
7fbe2c83a7
Left joycon rotation button remapping
2018-11-18 23:21:33 -05:00
David Marcec
b9c1e4b0e7
Added automatic npad switch based on supported stylesets
2018-11-18 23:21:33 -05:00
David Marcec
beab38601b
Added multi-input support and controller assignment at any port
2018-11-18 23:21:33 -05:00
David Marcec
60fecee1ec
Removed hard coded values for width and height
2018-11-19 15:20:47 +11:00
Zach Hilman
ea680bea60
software_keyboard: Check for UTF-8 config flag
2018-11-18 23:14:48 -05:00
bunnei
e34d47e6e3
Merge pull request #1620 from DarkLordZach/ldr-ro
...
ldr_ro: Complete LDR:RO implementation
2018-11-18 19:23:38 -08:00
bunnei
f08b4cbbc8
Merge pull request #1718 from ogniK5377/lets-go-softlock
...
Implemented CalculateStandardUserSystemClockDifferenceByUser
2018-11-18 19:22:47 -08:00
bunnei
611141e09f
Merge pull request #1671 from DarkLordZach/vi-disconnect
...
vi: Implement TransactParcel for Disconnect and DetachBuffer
2018-11-18 19:18:46 -08:00
Zach Hilman
02e6602baa
software_keyboard: Push all data over all channels on dialog completion
2018-11-18 10:53:47 -05:00
Zach Hilman
4ee087fb3c
applet: Use std::queue instead of std::vector for storage stack
2018-11-18 10:53:47 -05:00
Zach Hilman
19b2571aec
applet: Add operation completed callback
2018-11-18 10:53:47 -05:00
Zach Hilman
6209fe0c27
software_keyboard: Push buffer size to offset 0x4 in output data
2018-11-18 10:53:47 -05:00
Zach Hilman
8b433beff3
software_keyboard: Make GetText asynchronous
...
a
2018-11-18 10:53:47 -05:00
Zach Hilman
7cfb29de23
am: Allow applets to push multiple and different channels of data
2018-11-18 10:53:47 -05:00
Zach Hilman
3cf7246e37
am: Implement ILibraryAppletAccessor IsCompleted and GetResult
2018-11-18 10:53:47 -05:00
Zach Hilman
fed6ab14c3
am: Implement text check software keyboard mode
...
Allows the game to verify and send a message to the frontend.
2018-11-18 10:53:47 -05:00
Zach Hilman
e696ed1f4d
am: Deglobalize software keyboard applet
2018-11-18 10:53:47 -05:00
Zach Hilman
48fcb43585
am: Construct and use proper applets with ILibraryAppletAccessor
...
Allows use of software keyboard applet and future applets to be easily added by adding enum ID and a switch case.
2018-11-18 10:53:47 -05:00
Zach Hilman
de16c1e453
am/applets: Add connector between frontend and AM applet classes
...
Provides a middleman between the Frontend provider class and the expected AM::Applets::Applet class needed by ILibraryAppletAccessor
2018-11-18 10:53:47 -05:00
Zach Hilman
5b95de0c9c
am/applets: Add Applet superclass to describe a generic applet
...
Adds an Initialize and Execute methods which are used by the ILibraryAppletAccessor to start and control the applet.
2018-11-18 10:53:47 -05:00
Zach Hilman
731b4bd691
am: Unstub ILibraryAppletAccessor::Start
...
Now starts the applet provided in constructor.
2018-11-18 10:53:47 -05:00
Zach Hilman
ba03bfa430
am: Implement PopInteractiveOutData and PushInteractiveInData
...
Used by software keyboard applet for data transfer.
2018-11-18 10:53:47 -05:00
Zach Hilman
5ce6b8fea7
am: Convert storage stack to vector
...
std::stack was no longer suitable for non-trivial operations
2018-11-18 10:53:47 -05:00
Zach Hilman
0682a908c0
am: Move AM::IStorage to header
...
Needs to be accessible by applet files.
2018-11-18 10:53:47 -05:00
Zach Hilman
c7b6c9de9c
am: Move IStorageAccessor to header and update backing buffer
...
Writes to an AM::IStorage object through an IStorageAccessor will now be preserved once the accessor is destroyed.
2018-11-18 10:53:47 -05:00
Zach Hilman
76d515327b
am: Implement CreateTransferMemoryStorage
...
Creates an AM::IStorage object with the contents of the transfer memory located at the handle provided.
2018-11-18 10:53:47 -05:00
Zach Hilman
51af996854
ldr_ro: Add error check for memory allocation failure
2018-11-17 21:40:26 -05:00
Zach Hilman
c91dc417d5
vi: Implement TransactParcel for Disconnect and DetachBuffer
...
Used by homebrew on exit. According to switchbrew, returns an empty response parcel with one zero in it.
2018-11-17 17:10:19 -05:00
MysticExile
03f274d8c1
Stubbed am:EnableApplicationCrashReport
2018-11-17 15:05:55 +01:00
bunnei
0149b4245c
Merge pull request #1711 from ogniK5377/bluetooth-lets-go
...
Added various bluetooth based cmds for palma
2018-11-16 20:08:36 -08:00
bunnei
585e6fd426
hwopus: DecodeInterleavedWithPerformance: Fix ordering of output parameters.
...
- Fixes audio issues with Pokemon: Let's Go Pikachu & Eevee.
2018-11-16 22:54:38 -05:00
David Marcec
c440e8b8e1
Implemented CalculateStandardUserSystemClockDifferenceByUser
...
Seems pokemon calls this sometimes and it caused "random crashes"
2018-11-17 14:01:16 +11:00
bunnei
5b8f70ea2e
Merge pull request #1632 from DarkLordZach/keys-manager-optimizations
...
game_list: Optimize game list refresh
2018-11-16 07:02:37 -08:00
bunnei
238bc4a077
Merge pull request #1706 from lioncash/file-err
...
file_sys/errors: Clean up error code values
2018-11-16 06:59:07 -08:00
David Marcec
e8899e7027
Added various bluetooth based cmds for palma
...
It seems palma is done through bluetooth, we need this for pokemon go however more research needs to be done when we actually get palma working. This is presumably used for transfering data between the controller and the console, it does not seem for actual input as far as I know.
2018-11-17 01:42:17 +11:00
David Marcec
e658118aa9
Added SetIsPalmaAllConnectable, SetPalmaBoostMode
...
Currently unclear what these do yet, will be researched at a later time when we want to implement palma.
2018-11-17 01:40:18 +11:00
David Marcec
9359655712
Report resolution scaling support for vi and am
...
Specifying an internal resolution in yuzu now will report the scaled changes to vi and am.
2018-11-16 18:07:42 +11:00
Lioncash
b725d1fdf7
file_sys/errors: Extract FS-related error codes to file_sys/errors.h
...
Keeps filesystem-related error codes in one spot.
2018-11-16 00:13:50 -05:00
David
87eca5b209
Fixed priority switching edge case for handheld ( #1675 )
...
* Fixed priority switching edge case for handheld
We accidently used controller index instead of npad id
* Moved NPadIdToIndex
2018-11-15 20:31:27 -08:00
bunnei
75640c9c71
Merge pull request #1699 from DarkLordZach/deterministic-rng-3
...
csrng: Use random integer distribution instead of raw engine
2018-11-15 20:18:47 -08:00
Zach Hilman
4838bc8ddc
fsp_srv: Add support for using open source archive if not found in NAND
2018-11-15 22:35:16 -05:00
Zach Hilman
8cb2e7d881
csrng: Use random integer distribution instead of raw engine
...
Prevents returning the same value every single call.
2018-11-15 18:44:26 -05:00
bunnei
97605e36f7
Merge pull request #1618 from DarkLordZach/dump-nso
...
patch_manager: Add support for dumping uncompressed NSOs
2018-11-15 14:46:10 -08:00
bunnei
98060c6f7b
Merge pull request #1691 from lioncash/audren
...
service/audren_u: Forward RequestUpdateAuto through the same function as RequestUpdate
2018-11-15 14:44:36 -08:00
Zach Hilman
c0a9abc3e1
ldr_ro: Implement UnloadNro (command 1)
...
Includes actual unmapping and address error checking.
2018-11-15 12:48:09 -05:00
Zach Hilman
056fa43dcd
ldr_ro: Fully Implement LoadNro (command 0)
...
Includes NRO and BSS error checking, maximum loaded NRO check, NRR hash check, and proper remapping of BSS data.
2018-11-15 12:48:09 -05:00
Zach Hilman
5e8e7b6019
ldr_ro: Implement UnloadNrr (command 3)
...
Includes initialization check, proper address check, alignment check, and actual unloading of a loaded NRR.
2018-11-15 12:48:09 -05:00
Zach Hilman
6cd504feb9
ldr_ro: Fully implement LoadNrr (command 2)
...
Includes parameter error checking, hash enforcement, initialization check, and max NRR load check.
2018-11-15 12:48:09 -05:00
Zach Hilman
8aa17f0480
pl_u: Resize buffers in shared font data getter to what game requests
...
Fixes unmapped spam in SMP and buffer size errors in some other games
2018-11-15 12:47:36 -05:00
bunnei
c6c74248fe
Merge pull request #1697 from lioncash/acc
...
acc/profile_manager: Minor cleanup-related changes
2018-11-14 19:02:25 -08:00
bunnei
0478308094
Merge pull request #1696 from lioncash/acc-cond
...
service/acc: Correct error case within TrySelectUserWithoutInteraction()
2018-11-14 19:02:16 -08:00
Lioncash
cd47af8af0
service/acc: Correct error case within TrySelectUserWithoutInteraction()
...
empty() in this case will always return false, since the returned
container is a std::array. Instead, check if all given users are invalid
before returning the error code.
2018-11-14 17:43:23 -05:00
Lioncash
9761936e02
profile_manager: Replace iterative loop with a ranged-for loop in ParseUserSaveFile()
2018-11-14 17:13:17 -05:00
Lioncash
1af13e0802
profile_manager: Move UUID Format function definitions into the cpp file
...
Avoids relying on fmt always being indirectly included.
2018-11-14 17:08:59 -05:00
bunnei
c681690358
Merge pull request #1690 from lioncash/nfp
...
nfp: Correct erroneous sizeof expression within GetTagInfo()
2018-11-14 11:55:09 -08:00
bunnei
7384b33c4f
Merge pull request #1689 from lioncash/break
...
hid/npad: Add missing break in switch statement within Controller_NPad::OnUpdate
2018-11-14 11:54:45 -08:00
bunnei
c95ded3a4a
Merge pull request #1688 from lioncash/unused
...
service: Mark MakeFunctionString with the [[maybe_unused]] attribute.
2018-11-14 11:54:29 -08:00
Lioncash
b4f63db04e
nfp: Correct erroneous sizeof expression within GetTagInfo()
...
The previous expression would copy sizeof(size_t) amount of bytes (8 on
a 64-bit platform) rather than the full 10 bytes comprising the uuid
member.
Given the source and destination types are the same, we can just use an
assignment here instead.
2018-11-14 12:53:39 -05:00
Lioncash
3619b31fc0
service/audren_u: Forward RequestUpdateAuto through the same function as RequestUpdate
...
Based off RE, they both currently go through the same codepath with no
difference in behavior.
2018-11-14 02:36:21 -05:00
Lioncash
fcde356f15
hid/npad: Add missing break in switch statement within Controller_NPad::OnUpdate()
2018-11-14 00:59:17 -05:00
Lioncash
958fa15a4c
service: Mark MakeFunctionString with the [[maybe_unused]] attribute.
...
When yuzu is compiled in release mode this function is unused, however,
when compiled in debug mode, it's used within a LOG_TRACE statement.
This prevents erroneous compilation warnings about an unused function
(that isn't actually totally unused).
2018-11-14 00:49:04 -05:00
bunnei
a80467db57
Merge pull request #1682 from lioncash/audio
...
hle/audren_u: Implement Get/SetRenderingTimeLimit
2018-11-13 18:51:44 -08:00
bunnei
9b12623743
Merge pull request #1608 from DarkLordZach/save-data-reader
...
[ns|fsp_srv]: Implement various functions to boot Checkpoint
2018-11-13 18:51:08 -08:00
Lioncash
454cf1dc09
hle/audren_u: Implement Get/SetRenderingTimeLimit
...
These appear to be a basic getter and setter pair, so these are fairly
trivial to implement and get out of the way.
2018-11-13 13:49:09 -05:00
bunnei
7f3c2525e6
Merge pull request #1670 from DarkLordZach/deterministic-rng
...
csrng: Add config option to set RNG seed
2018-11-12 21:10:08 -08:00
bunnei
fd72d889bf
Merge pull request #1665 from ogniK5377/GetClockSnapshot
...
Implement GetClockSnapshot, ToPosixTime & ToPosixTimeWithMyRule
2018-11-12 20:13:47 -08:00
Zach Hilman
4b4f883aef
csrng: Use std::mt19937 engine for random number generation
2018-11-11 23:08:39 -05:00
James Rowe
93fca5d9cf
Merge pull request #1656 from ogniK5377/message-queue
...
Ability to switch between docked and undocked mode in-game
2018-11-10 11:27:17 -07:00
David Marcec
48cd61d9c8
Added maybe_unused
2018-11-10 18:07:34 +11:00
David Marcec
ddc242dd51
Added ToPosixTime & ToPosixTimeWithMyRule
...
Added instead of using a seperate PR to prevent conflicts
2018-11-10 17:41:57 +11:00
David Marcec
84c6134264
Added consts and static
2018-11-10 12:31:48 +11:00
David Marcec
4f78f5c0df
Implement GetClockSnapshot
...
Needed by megaman 11
2018-11-10 01:25:56 +11:00
bunnei
0e05a9d58f
Merge pull request #1658 from ogniK5377/holdtype-style
...
Updated npad styles on holdtype switches
2018-11-07 20:59:01 -08:00
David Marcec
a9c25ab9e4
Updated npad styles on holdtype switches
...
Fixes input for megaman
2018-11-08 01:07:14 +11:00
David Marcec
fd1ef25257
Fixups
2018-11-07 20:12:27 +11:00
David Marcec
41e99d8880
Ability to switch between docked and undocked mode in-game
...
Started implementation of the AM message queue mainly used in state getters. Added the ability to switch docked mode whilst in game without stopping emulation. Also removed some things which shouldn't be labelled as stubs as they're implemented correctly
2018-11-07 18:01:33 +11:00
David Marcec
ad45d68871
fixed spelling error
2018-11-07 12:04:43 +11:00
David Marcec
49cb4fa37b
Added missing log
2018-11-07 11:46:04 +11:00
David Marcec
92fcc6d15a
Implement acc:TrySelectUserWithoutInteraction
...
Needed for Shantae - Half-Genie Hero - Ultimate Edition!
2018-11-07 11:45:01 +11:00
bunnei
722e7c05de
Merge pull request #1633 from ogniK5377/reload-input
...
Fixed HID crash when launching more than 1 game & signaled styleset change event
2018-11-05 00:21:27 -05:00
Frederic Laing
1c4365d928
Fix typo in BufferTransformFlags
2018-11-04 16:56:10 +01:00
Zach Hilman
0080a8da58
sm: Implement RegisterService and UnregisterService
...
These are needed by Edizon to boot. They are used to see if a user is using SX OS, as SX OS registers a custom service called 'tx' and attempting to register a service of the same name lets the application know if it is present.
2018-11-03 20:02:18 -04:00
David Marcec
03c26d3406
Fixed incorrect hwopus assert
2018-11-02 15:23:38 +11:00
David Marcec
0bc323bafb
Fixed HID crash when launching more than 1 game & signaled syleset change event
...
This should fix crashes when launching multiple games in yuzu
2018-11-02 12:35:49 +11:00
Zach Hilman
8f183a47dd
filesystem: Cache RegisteredCacheUnion instead of constructing on demand
...
Prevents unnecessary re-reads of the metadata and unnecessary temporary objects.
2018-11-01 20:24:32 -04:00
bunnei
1069eced84
Merge pull request #1615 from lioncash/input
...
configure_system: Contrain profile usernames to 32 characters
2018-11-01 19:10:26 -04:00
Lioncash
a6830e61b8
configure_system: Contrain profile usernames to 32 characters
...
Previously, we would let a user enter an unbounded name and then
silently truncate away characters that went over the 32-character limit.
This is kind of bad from the UX point of view, because we're essentially
not doing what the user intended in certain scenarios.
Instead, we clamp it to 32 characters and make that visually apparent in
the dialog box to provide a name for a user.
2018-10-31 02:05:00 -04:00
Lioncash
9b9c586dff
service/usb: Update IPdSession's function table
...
Updated based off information on SwitchBrew.
2018-10-30 15:23:49 -04:00
Frederic L
7a5eda5914
global: Use std::optional instead of boost::optional ( #1578 )
...
* get rid of boost::optional
* Remove optional references
* Use std::reference_wrapper for optional references
* Fix clang format
* Fix clang format part 2
* Adressed feedback
* Fix clang format and MacOS build
2018-10-30 00:03:25 -04:00
Zach Hilman
bdaa76c0db
ns: Implement command 400: GetApplicationControlData
...
Returns the raw NACP bytes and the raw icon bytes into a title-provided buffer. Pulls from Registration Cache for control data, returning all zeros should it not exist.
2018-10-29 16:20:16 -04:00
Zach Hilman
9078bb9854
bis_factory: Add getter for mod dump root for a title ID
...
Equates to yuzu_dir/dump/<title id>/
2018-10-29 16:08:03 -04:00
Zach Hilman
5ee19add1b
fsp_srv: Implement ISaveDataInfoReader
...
An object to read SaveDataInfo objects, which describe a unique save on the system. This implementation iterates through all the directories in the save data space and uses the paths to reconstruct the metadata.
2018-10-29 13:54:39 -04:00
Zach Hilman
2e8177f0c9
fsp_srv: Implement command 61: OpenSaveDataInfoReaderBySaveDataSpaceId
...
Needed by Checkpoint. Returns an object that can iterate through all savedata on the system.
2018-10-29 13:54:39 -04:00
Zach Hilman
df264d2ccb
savedata_factory: Expose accessors for SaveDataSpace
2018-10-29 13:54:38 -04:00
DeeJayBro
3b1e4c0995
service/filesystem: Add DirectoryDelete & DirectoryDeleteRecursively
2018-10-27 11:56:39 +02:00
bunnei
debabf1fa6
Merge pull request #1569 from lioncash/amiibo
...
yuzu/main: Notify user of loading errors with Amiibo data
2018-10-25 22:10:08 -04:00
bunnei
cebce2a93a
ldr: Partially implement LoadNro.
...
- This is an incomplete implementation. It was tested with Super Mario Party.
2018-10-25 18:03:54 -04:00
bunnei
2bc2b32662
Merge pull request #1579 from lioncash/usb
...
service/usb: Update service function tables
2018-10-25 12:22:57 -04:00
bunnei
0634aee267
Merge pull request #1576 from lioncash/acc-warn
...
service/acc: Silence compiler truncation warnings
2018-10-25 12:22:10 -04:00
Lioncash
fbbb58b226
service/usb: Update service function tables
...
Updated based off the information provided by Hexkyz on Switchbrew.
2018-10-24 19:07:55 -04:00
Lioncash
1e3b139cd7
service/acc: Move fallback image to file scope
...
This is just flat data, so it doesn't really need to be in the function
itself. This also allows deduplicating the constant for the backup size
in GetImageSize().
2018-10-24 18:22:24 -04:00
Lioncash
6f00628564
service/acc: Silence compiler warnings
...
Silences compiler warnings related to truncation. This also introduces a
small helper function to perform the clamping of the image size.
2018-10-24 18:22:24 -04:00
Lioncash
3ec90dc6ef
service/acc: Early return in failure case in LoadImage()
...
Allows unindenting the other branch's code.
2018-10-24 18:22:20 -04:00
bunnei
9aa5c1894e
Merge pull request #1570 from lioncash/optional
...
profile_manager: Use std::optional instead of boost::optional
2018-10-24 18:11:03 -04:00
bunnei
ce2403d975
Merge pull request #1564 from lioncash/npad
...
npad: Remove unused controller variable from OnInit()
2018-10-24 17:36:55 -04:00
bunnei
d14ba122e2
Merge pull request #1562 from lioncash/aoc
...
aoc_u: Make use of previously-unused CheckAOCTitleIDMatchesBase() function
2018-10-24 16:28:56 -04:00
Lioncash
4a31f99a02
profile_manager: Use std::optional instead of boost::optional
...
Now that we can actually use std::optional on macOS, we don't need to
continue using boost::optional here.
2018-10-24 11:06:52 -04:00
Lioncash
bed2d6c425
yuzu/main: Notify user of loading errors with Amiibo data
...
We shouldn't silently continue if loading failed, since the general
assumption is that no messages showing up implicitly indicates success.
2018-10-24 10:39:31 -04:00
Lioncash
93596d03ec
npad: Remove unused controller variable from OnInit()
...
This also gets rid of variable shadowing related to the lambda parameter
a little bit below this code as well.
2018-10-24 00:38:03 -04:00
Lioncash
a3d1ede25f
aoc_u: Make use of previously-unused CheckAOCTitleIDMatchesBase() function
...
We can just call the function instead of duplicating the code here. This
also prevents an unused function warning.
We also don't need to take the lambda capture by reference. It's just a
u64 value, so by value is fine here.
2018-10-24 00:13:08 -04:00
Zach Hilman
bfad41b0c1
profile_manager: Create save data if it doesn't exist on use
2018-10-23 19:31:28 -04:00
Zach Hilman
45f2a2fe29
acc: Fix account UUID duplication error
2018-10-23 19:31:28 -04:00
Zach Hilman
e408bbceed
configure_system: Clear selection after user delete
2018-10-23 19:31:28 -04:00
Zach Hilman
702622b8f1
profile_manager: Load user icons, names, and UUIDs from system save
2018-10-23 19:31:28 -04:00
Zach Hilman
19c5cf9c63
acc: Load user images from config dir
2018-10-23 19:31:28 -04:00
Zach Hilman
d3fbf45705
am: Pass current user UUID to launch parameters
2018-10-23 19:31:28 -04:00
Zach Hilman
aeffd4b436
profile_manager: Load users from emulator settings
2018-10-23 19:31:28 -04:00
David
50e4e81fd3
Added Amiibo support ( #1390 )
...
* Fixed conflict with nfp
* Few fixups for nfc
* Conflict 2
* Fixed AttachAvailabilityChangeEvent
* Conflict 3
* Fixed byte padding
* Refactored amiibo to not reside in "System"
* Removed remaining references of nfc from system
* used enum for Nfc GetStateOld
* Added missing newline
* Moved file operations to front end
* Conflict 4
* Amiibos now use structs and added mutexes
* Removed amiibo_path
2018-10-23 19:28:17 -04:00
bunnei
5edb2403c2
Merge pull request #1515 from DarkLordZach/dlc-lfs
...
patch_manager: Add support for LayeredFS on DLC RomFS
2018-10-23 19:26:57 -04:00
bunnei
ff6b2d4574
Merge pull request #1545 from DarkLordZach/psm
...
psm: Add psm service and stub commands 0 and 1
2018-10-22 15:27:05 -04:00
Zach Hilman
314a948373
psm: Stub GetChargerType
...
Used by LovePotion Lua Homebrew. Stubbed as connected to official Nintendo Switch dock.
2018-10-21 22:03:25 -04:00
Lioncash
ca5a93167e
service: Add the basic skeleton for the NPNS services
2018-10-21 17:11:05 -04:00
Lioncash
981faea4d6
hid: Update service function table for hidbus
...
Updated based off information provided by Switchbrew.
2018-10-21 16:51:46 -04:00
Lioncash
5ea4cfd499
am: Add the basic skeleton for the tcap service
...
Added based off information provided by Switchbrew.
2018-10-21 16:50:17 -04:00
Lioncash
edb1c36a87
am: Update service function tables
...
Updated based off information from Switchbrew
2018-10-21 16:40:20 -04:00
Lioncash
ae7f55947e
prepo: Update service function table.
...
Also introduces the new prepo:a2 service.
Updated based off information provided by Switchbrew.
2018-10-21 16:22:10 -04:00
Lioncash
a806c78a1a
lbl: Update service function table names
...
Updated based off information provided by Switchbrew.
2018-10-21 16:15:32 -04:00
Zach Hilman
10a2d20e26
psm: Stub GetBatteryChargePercentage
...
Used by LovePotion Lua Homebrew. Stubbed to return 100% charge.
2018-10-20 18:01:11 -04:00
Zach Hilman
3b8c0f8885
service: Add skeleton for psm service
...
Seems to be the power controller. Listed in switchbrew under the category PTM services.
2018-10-20 18:01:07 -04:00
David Marcec
a03600ba28
Added auto controller switching to supported controllers and single joycon button rotation
...
This is a subset of the better-hid-2 changes, this fixes input in various games which don't support dual joycons. This pr will search for the next best controller which is supported by the current game
2018-10-20 15:07:18 +11:00
bunnei
bf66930fb9
Merge pull request #1526 from lioncash/svc-id
...
service: Update function tables
2018-10-19 22:53:26 -04:00
bunnei
52b25e0fb9
Merge pull request #1530 from DarkLordZach/aoc-8
...
aoc_u: Stub GetAddOnContentListChangedEvent
2018-10-19 22:53:00 -04:00
bunnei
298ebf444f
Merge pull request #1516 from lioncash/hid
...
hid: Minor cleanup-related changes
2018-10-19 22:52:31 -04:00
Zach Hilman
7e0d2fc994
aoc_u: Stub GetAddOnContentListChangedEvent
...
This event signals the game when new DLC is purchased from the eShop while the game is running. Since, for the forseeable future, yuzu will not have this ability, it seems safe to stub with a dummy event that will never fire. This is needed to boot Sonic Mania Plus (update v1.04).
2018-10-19 21:21:37 -04:00
David Marcec
7a7dad05c0
Stubbed home blocking
...
Needed by arms due to new hid rework
2018-10-20 00:01:10 +11:00
Lioncash
1833498617
es: Update service function tables
...
Updated based off information provided by Switchbrew.
2018-10-19 04:12:28 -04:00
Lioncash
a653be3510
audio: Update service function tables
...
Updated based off information provided by Switchbrew.
2018-10-19 04:09:12 -04:00
Lioncash
2b9fd23058
omm: Update service function tables
...
Updated based off information provided by Switchbrew.
2018-10-19 04:04:59 -04:00
Lioncash
4f52800822
nifm: Update service function tables
...
Updated based off information provided by switchbrew.
2018-10-19 04:00:41 -04:00
Lioncash
f6c5a48dd1
hid: Update service function tables
...
Updated based off information provided by Switchbrew.
2018-10-19 03:59:15 -04:00
Lioncash
d0cda7fe40
nim: Add the basic skeleton of the nim:eca service
...
Added based off information provided by Switchbrew
2018-10-19 03:46:18 -04:00
Lioncash
d16bafc99d
ns: Update service function table
...
Updated based off information provided by Switchbrew.
2018-10-19 03:41:38 -04:00
Lioncash
a056b284cf
set_cal: Update service function table
...
Updated based on information from Switchbrew.
2018-10-19 03:26:56 -04:00
David Marcec
98c7a6d622
Used better names for mm:u and fixed bad stub
...
InitializeWithId needs to return an id which is a u32 which should be a non zero value
2018-10-19 01:09:34 +11:00
Lioncash
452aa30cb7
hid/controller: Remove unused header inclusions
...
swap.h only needs to be present in the header for the type aliases and
definitions, it's not actually needed in the cpp files though. input.h
is just unused entirely in xpad.h
2018-10-17 20:52:45 -04:00
Lioncash
7f52dc1790
hid/controller/npad: Remove unused dump_idx member variable
...
Given it's unused, we may as well toss it.
2018-10-17 20:52:45 -04:00
Lioncash
7eb2328d8e
hid/controller/npad: Remove unnecessary semicolon from the closing brace of LedPattern's constructor
2018-10-17 20:52:45 -04:00
Lioncash
929ed59f1f
hid/controller/npad: Remove #pragma once from the cpp file
...
This is only useful in headers.
2018-10-17 20:52:45 -04:00
Lioncash
aeda743446
hid/controller/npad: Move npad_id_list into the cpp file
...
This is just a lookup table, and since it's private, there's nothing
really stateful about it, so we can just move it into the cpp file.
2018-10-17 20:52:45 -04:00
Lioncash
aeca224890
hid/controller/npad: Remove unnecessary const from void return type
...
This literally does nothing.
2018-10-17 20:52:45 -04:00
Lioncash
46202e984e
hid/controller: Default the destructors of all controller types in the cpp file
...
These classes are non-trivial and are definitely going to be changed in
the future, so we default these to prevent issues with forward
declarations, and to keep the compiler from inlining tear-down code.
2018-10-17 20:52:43 -04:00
Lioncash
119b47f366
controller_base: Default the base class constructor and destructor in the cpp file
...
The destructor doesn't need to be a pure-virtual function.
2018-10-17 20:51:54 -04:00
bunnei
7dee60d7d2
Merge pull request #1444 from ogniK5377/better-hid
...
"Better Hid" Rework Part 1
2018-10-17 20:25:17 -04:00
David Marcec
8144fa42bd
Using dual joycons as the default controller
...
Reason for the change is to allow both docked and undocked mode to work
2018-10-18 00:11:47 +11:00
Zach Hilman
780c21ab2d
fsp_srv: Apply patches to Data storage in OpenDataStorageByDataId
2018-10-17 09:04:20 -04:00
David
92d8ad3770
Implement VI ConvertScalingMode ( #1475 )
...
* Implement VI ConvertScalingMode
* Fixed push enum
* Scale mode now uses Nintendo scale mode as an enum as well
2018-10-16 11:25:42 -04:00
Lioncash
39ae73b356
file_sys/registered_cache: Use unique_ptr and regular pointers instead of shared_ptrs where applicable
...
The data retrieved in these cases are ultimately chiefly owned by either
the RegisteredCache instance itself, or the filesystem factories. Both
these should live throughout the use of their contained data. If they
don't, it should be considered an interface/design issue, and using
shared_ptr instances here would mask that, as the data would always be
prolonged after the main owner's lifetime ended.
This makes the lifetime of the data explicit and makes it harder to
accidentally create cyclic references. It also makes the interface
slightly more flexible than the previous API, as a shared_ptr can be
created from a unique_ptr, but not the other way around, so this allows
for that use-case if it ever becomes necessary in some form.
2018-10-16 09:38:52 -04:00
bunnei
9b21fbd1eb
Merge pull request #1494 from DarkLordZach/aoc-signature-fixes
...
aoc: Fix various bugs in current AOC implementation
2018-10-15 18:34:02 -04:00
Zach Hilman
5737441374
aoc: Read DLC base title ID from RegisteredCache
...
Falls back to title ID + 0x1000, which is what HOS does.
2018-10-14 18:58:14 -04:00
Zach Hilman
7e2096db8a
aoc: Return size in ListAddOnContent
2018-10-13 22:52:54 -04:00
Lioncash
0149162dba
filesystem: Make CreateFactories() and InstallInterface() take a VfsFilesystem instance by reference
...
Neither of these functions alter the ownership of the provided pointer,
so we can simply make the parameters a reference rather than a direct
shared pointer alias. This way we also disallow passing incorrect memory values like
nullptr.
2018-10-13 11:36:35 -04:00
bunnei
0f7ab3e21a
Merge pull request #1478 from ogniK5377/remap-invalidhandle-remap
...
Passing an invalid nmap handle to Remap should throw an error
2018-10-12 12:07:14 -04:00
bunnei
dc328440c8
Merge pull request #1479 from ogniK5377/nmap-revamped
...
Added error codes for nvmap
2018-10-12 12:06:22 -04:00
David Marcec
4d2de6564f
Returned an error before processing other remaps
2018-10-12 17:10:41 +11:00
David Marcec
c55b5de0fb
Made the minimum alignment more clear
2018-10-12 17:06:46 +11:00
David Marcec
98b760c645
Wip
2018-10-12 16:28:00 +11:00
bunnei
9bf409f275
Merge pull request #1474 from ogniK5377/hwopus-decodeinterleavedwithperformance
...
HwOpus, Implemented DecodeInterleavedWithPerformance
2018-10-11 16:52:13 -04:00
David Marcec
85b0d9a7be
Dynamically decide handheld variant based on supported npad id priority
...
Kirby input still doesn't work, should fix a lot of other games
2018-10-12 02:56:49 +11:00
David Marcec
c7763603ef
Added error codes for nvmap
2018-10-11 23:06:34 +11:00
David Marcec
5dd538cace
Passing an invalid nmap handle to Remap should throw an error
...
Added error for invalid nmap handles
2018-10-11 20:32:21 +11:00
bunnei
bf795edac4
nvhost_as_gpu: Flush CPU VAddr on UnmapBuffer.
2018-10-11 00:19:36 -04:00
David Marcec
fa10905e1e
HwOpus, Implemented DecodeInterleavedWithPerformance
...
Used by sonic ages
2018-10-11 13:06:56 +11:00
David Marcec
9e924f2ef2
Added BeginPermitVibrationSession and EndPermitVibrationSession
...
Used by Mario Party
2018-10-11 00:58:47 +11:00
David Marcec
3d75c9cd7a
Added GetLedPattern and HandheldVariant
...
HandheldVariant is for specific games which expect handheld controllers to be at position 8(kirby), however this doesn't fix all games as some games require handhelds to be at position 0(snipperclips)
2018-10-10 21:38:43 +11:00
David Marcec
46cdeb4549
Kirby expects handheld controllers to be at position 8
2018-10-10 14:21:56 +11:00
David Marcec
f43815af5d
Added the ability to "disconnect" individual npads
...
Fixes arms
2018-10-10 13:15:39 +11:00
David Marcec
b79c294c02
Removed unneeded forward declarations
2018-10-10 13:15:37 +11:00
David Marcec
5857aea94e
Addressed changes for better hid
2018-10-10 13:15:37 +11:00
David Marcec
56f35ab262
"Better Hid" rework part 1
2018-10-10 13:15:35 +11:00
bunnei
fd891ee9c0
Merge pull request #1456 from ogniK5377/aoc-u-fixups
...
Fixed assertion due to CountAddOnContent & Casting warnings
2018-10-08 01:21:05 -04:00
David Marcec
c5c184246d
Unmapping an unmapped buffer should succeed
...
Hardware tests show that trying to unmap an unmapped buffer already should always succeed. Hardware test was tested up to 32 iterations of attempting to unmap
2018-10-08 13:26:48 +11:00
David Marcec
fa3f3cd07f
Fixed assertion due to CountAddOnContent
...
Word count should be 3 since we're pushing a result code and a u32.
Also fixed up compiler warnings due to casting
2018-10-08 00:25:46 +11:00
bunnei
6e4d2e672d
Merge pull request #1396 from DarkLordZach/packed-updates
...
loader: Add support for packed updates
2018-10-06 23:58:24 -04:00
David Marcec
f84b9ed4e8
Ported #4296 from citra
...
This will allow us to easily remove the use of "NFC" in "System"
2018-10-06 16:49:01 +10:00
Zach Hilman
38c2ac95af
romfs_factory: Extract packed update setter to new function
2018-10-05 08:53:51 -04:00
bunnei
cf3a6dd4a1
Merge pull request #1434 from DarkLordZach/dlc-edge-case
...
aoc_u: Fix edge case with DLC that causes breaks
2018-10-03 21:39:23 -04:00
bunnei
39f08e551d
Merge pull request #1433 from lioncash/fs
...
services/fsp_srv: Amend service function table
2018-10-03 19:13:57 -04:00
Zach Hilman
9aaf1c0df8
aoc_u: Fix edge case with DLC that causes breaks
...
In some games (Splatoon 2 and Splatoon 2 Splatfest World Premiere, notably), pass offset=0 and count=2047 into the ListAddOnContent method which should return all DLCs for the current title. The (presumably) intended behavior is to successfully return a empty array but because of a < v. <= in an if statement, a failure error code was returned causing these games to svcBreak. This fixes that if statement.
2018-10-02 21:56:32 -04:00
Lioncash
cba78dc70a
services/fsp_srv: Amend service function table
...
Adds new functions that have been given names to the table. Information
is based off what is provided on Switchbrew.
2018-10-02 21:34:33 -04:00
Lioncash
d80dd2b812
service/lbl: Update service function table
...
Amends the lbl service table to include new names of functions that were
added to Switchbrew.
2018-10-02 21:15:59 -04:00
Zach Hilman
f72046099a
aoc_u: Extract AccumulateAOCTitleIDs to separate function
2018-09-30 21:07:22 -04:00
Zach Hilman
7d86a008e2
aoc_u: Implement GetAddOnContentBaseId
...
Command #5
2018-09-30 21:01:35 -04:00
Zach Hilman
62225ae050
aoc_u: Implement Count, List and Prepare AddOnContent
...
Commands #2 , #3 , and #7
2018-09-30 21:01:35 -04:00
bunnei
8f2ad3a66d
Merge pull request #1338 from raven02/service_vi
...
Implement ISystemDisplayService::GetDisplayMode
2018-09-30 15:39:54 -04:00
Lioncash
cf9d6c6f52
kernel/process: Make data member variables private
...
Makes the public interface consistent in terms of how accesses are done
on a process object. It also makes it slightly nicer to reason about the
logic of the process class, as we don't want to expose everything to
external code.
2018-09-30 02:30:01 -04:00
raven02
4092907687
Implement ISystemDisplayService::GetDisplayMode
2018-09-30 10:04:03 +08:00
bunnei
fc2419e441
Merge pull request #1394 from lioncash/stream
...
stream: Preserve enum class type in GetState()
2018-09-27 17:05:03 -04:00
bunnei
efcb83fb41
Merge pull request #1400 from lioncash/header
...
service: Add missing headers inclusions where applicable
2018-09-26 16:11:19 -04:00
Lioncash
e42bb5e003
service: Add missing headers inclusions where applicable
...
Gets rid of a few indirect inclusions.
2018-09-25 17:14:38 -04:00
bunnei
7b81e1e525
Merge pull request #1365 from DarkLordZach/lfs
...
file_sys: Add support for LayeredFS mods
2018-09-25 16:59:44 -04:00
David
367c52ff0d
Implemented fatal:u properly ( #1347 )
...
* Implemented fatal:u properly
fatal:u now is properly implemented with all the ipc cmds. Error reports/Crash reports are also now implemented for fatal:u. Crash reports save to yuzu/logs/crash_reports/
The register dump is currently known as sysmodules send all zeros. If there are any non zero values for the "registers" or the unknown values, let me know!
* Fatal:U fixups
* Made fatal:u execution break more clear
* Fatal fixups
2018-09-23 22:34:11 -04:00
David
2513e086ab
Stubbed IRS ( #1349 )
...
* Stubbed IRS
Currently we have no ideal way of implementing IRS. For the time being we should have the functions stubbed until we come up with a way to emulate IRS properly.
* Added IRS to logging backend
* Forward declared shared memory for irs
2018-09-23 22:33:29 -04:00
bunnei
f2c1fd08f9
Merge pull request #1354 from ogniK5377/ssl-version
...
Corrected SSL::SetInterfaceVersion
2018-09-23 22:32:14 -04:00
Lioncash
2f6a611311
stream: Preserve enum class type in GetState()
...
Preserves the meaning/type-safetiness of the stream state instead of
making it an opaque u32. This makes it usable for other things outside
of the service HLE context.
2018-09-23 20:03:38 -04:00
David Marcec
c461188f51
Added audren:u#GetAudioRendererState
2018-09-23 22:32:01 +10:00
Zach Hilman
940a711caf
filesystem: Add LayeredFS VFS directory getter
2018-09-21 19:53:33 -04:00
bunnei
b0b57c21e6
Merge pull request #1368 from ogniK5377/nifm-fix
...
Added IRequest::Submit
2018-09-20 23:30:11 -04:00
David Marcec
b918925bd5
Revert GetRequestState
...
Even though setting this value to 3 is more correct. We break more games than we fix due to missing implementations. We should keep this as 0 for the time being
2018-09-21 12:15:49 +10:00
David Marcec
3f49725a51
Fixed submit
2018-09-21 00:51:13 +10:00
David Marcec
cfc9fe4460
Added IRequest::Submit
...
This fixes updated versions of SMO. Currently unable to test as I don't have an updated version
2018-09-21 00:47:30 +10:00
David Marcec
583137709f
Removed unneeded event clear
2018-09-20 15:16:08 +10:00
David Marcec
335e9d18ae
Implemented NTC & IEnsureNetworkClockAvailabilityService
...
Needed because of the recent nim fixes
2018-09-20 15:14:07 +10:00
David
0432af5ad1
Reworked incorrect nifm stubs ( #1355 )
...
* Reworked incorrect nifm stubs
Need confirmation on `CreateTemporaryNetworkProfile`, unsure which game uses it but according to reversing. It should return a uuid which we currently don't do.
Any 0 client id is considered an invalid client id.
GetRequestState 0 is considered invalid.
* Fixups for nifm
2018-09-19 11:59:01 -04:00
bunnei
8dff92c5f6
Merge pull request #1359 from ogniK5377/nes
...
Fixed GetAccountId stub, Added error code for OpenDirectory and added ActivateNpadWithRevision
2018-09-19 10:01:36 -04:00
David Marcec
cbc7ad8f6d
Fixed GetAccountId stub, Added error code for OpenDirectory and added ActivateNpadWithRevision
...
With these, `Nintendo Entertainment System - Nintendo Switch Online` loads
2018-09-19 23:25:00 +10:00
David Marcec
d06f4cfc63
Corrected SSL::SetInterfaceVersion
...
Should be a single u32
2018-09-19 16:46:11 +10:00
David Marcec
6a0612f2bf
Removed the use of rp.MakeBuilder
...
Due to keeping the code style consistent in the yuzu codebase. `rb = rp.MakeBuilder(...)` was replaced with `rb{ctx, ...}`
2018-09-19 15:09:59 +10:00
bunnei
b33ce787b7
Merge pull request #1348 from ogniK5377/GetImageSize
...
Implemented IProfile::GetImageSize
2018-09-18 22:15:18 -04:00
bunnei
c9942fe46e
Merge pull request #1351 from ogniK5377/GetDefaultDisplayResolution
...
Implemented GetDefaultDisplayResolution
2018-09-18 22:13:28 -04:00
bunnei
e9abbcae85
Merge pull request #1350 from ogniK5377/Six-Axis-Stub
...
Stubbed ActivateConsoleSixAxisSensor & StartConsoleSixAxisSensor
2018-09-18 22:12:12 -04:00
Philippe Babin
9155c8daeb
Invalid default value of username in yuzu_cmd ( #1334 )
...
* Fix bug where default username value for yuzu_cmd create an userprofile with uninitialize data as username
* Fix format
* Apply code review changes
* Remove nullptr check
2018-09-18 19:58:28 -04:00
David Marcec
de9604d63e
Added ActivateGesture
2018-09-19 01:13:58 +10:00
David Marcec
1a2d33eeb4
Implemented GetDefaultDisplayResolution
2018-09-19 01:10:16 +10:00
David Marcec
a8b1c7763b
Added StopSixAxisSensor
2018-09-19 00:56:02 +10:00
David Marcec
717889e93c
Stubbed ActivateConsoleSixAxisSensor & StartConsoleSixAxisSensor
2018-09-19 00:52:20 +10:00
David Marcec
528e5cee67
Implemented GetImageSize
2018-09-19 00:16:52 +10:00
bunnei
2c9c0d70a3
Merge pull request #1312 from lioncash/fwd
...
service/vi: Replace includes with forward declarations where applicable
2018-09-17 12:32:28 -04:00
bunnei
fc46183e03
Merge pull request #1318 from lioncash/errors-sm
...
services/sm: Amend error code constants
2018-09-17 12:27:01 -04:00
fearlessTobi
63c2e32e20
Port #4182 from Citra: "Prefix all size_t with std::"
2018-09-15 15:21:06 +02:00
Lioncash
da64da367b
services/sm: Amend error code constants
...
Courtesy of @ogniK5377.
This also moves them into the cpp file and limits the visibility to
where they're directly used. It also gets rid of unused or duplicate
error codes.
2018-09-14 01:44:02 -04:00
bunnei
df5a44a40b
Merge pull request #1310 from lioncash/kernel-ns
...
kernel/thread: Include thread-related enums within the kernel namespace
2018-09-13 19:50:47 -04:00
bunnei
fb65076b0f
Merge pull request #1309 from lioncash/nested
...
service: Use nested namespace specifiers where applicable
2018-09-13 19:50:11 -04:00
Lioncash
0258b444ef
service/vi: Replace includes with forward declarations where applicable
2018-09-13 16:55:47 -04:00
Lioncash
2ea45fe75b
kernel/thread: Include thread-related enums within the kernel namespace
...
Previously, these were sitting outside of the Kernel namespace, which
doesn't really make sense, given they're related to the Thread class
which is within the Kernel namespace.
2018-09-13 16:05:57 -04:00
Lioncash
a0e51d8b98
service: Use nested namespace specifiers where applicable
...
There were a few places where nested namespace specifiers weren't being
used where they could be within the service code. This amends that to
make the namespacing a tiny bit more compact.
2018-09-13 15:52:55 -04:00
Lioncash
ce97d8ef6c
services/pl_u: Add missing Korean font to the fallback case for shared fonts
...
Previously this wasn't using the Korean font at all.
2018-09-12 19:23:51 -04:00
bunnei
d9e21eebe8
Merge pull request #1297 from lioncash/pl
...
pl_u: Eliminate mutable file-scope state
2018-09-12 16:03:53 -04:00
bunnei
475222a496
Merge pull request #1296 from lioncash/prepo
...
service/prepo: Move class into the cpp file
2018-09-11 23:15:07 -04:00
Lioncash
c243bc09d4
service/audio: Replace includes with forward declarations where applicable
...
A few headers were including other headers when a forward declaration
can be used instead, allowing the include to be moved to the cpp file.
2018-09-11 21:54:33 -04:00
Lioncash
c061e27155
pl_u: Eliminate mutable file-scope state
...
Converts the PL_U internals to use the PImpl idiom and makes the state
part of the Impl struct, eliminating mutable global/file state.
2018-09-11 21:24:19 -04:00
Lioncash
325c259fc5
service/prepo: Move class into the cpp file
...
This doesn't need to be exposed within the header and be kept in the
translation unit, eliminating the need to include anything within the
header.
2018-09-11 20:49:01 -04:00
bunnei
1470b85af9
Merge pull request #1291 from lioncash/default
...
hle/service: Default constructors and destructors in the cpp file where applicable
2018-09-11 11:42:05 -04:00
Lioncash
46ba1bc40f
externals: Place font data within cpp files
...
This places the font data within cpp files, which mitigates the
possibility of the font data being duplicated within the binary if it's
referred to in more than one translation unit in the future. It also
stores the data within a std::array, which is more flexible when it
comes to operating with the standard library.
Furthermore, it makes the data arrays const. This is what we want, as it
allows the compiler to store the data within the read-only segment. As
it is, having several large sections of mutable data like this just
leaves spots in memory that we can accidentally write to (via accidental
overruns, what have you) and actually have it work. This ensures the
font data remains the same no matter what.
2018-09-11 04:25:33 -04:00
Lioncash
6ac955a0b4
hle/service: Default constructors and destructors in the cpp file where applicable
...
When a destructor isn't defaulted into a cpp file, it can cause the use
of forward declarations to seemingly fail to compile for non-obvious
reasons. It also allows inlining of the construction/destruction logic
all over the place where a constructor or destructor is invoked, which
can lead to code bloat. This isn't so much a worry here, given the
services won't be created and destroyed frequently.
The cause of the above mentioned non-obvious errors can be demonstrated
as follows:
------- Demonstrative example, if you know how the described error happens, skip forwards -------
Assume we have the following in the header, which we'll call "thing.h":
\#include <memory>
// Forward declaration. For example purposes, assume the definition
// of Object is in some header named "object.h"
class Object;
class Thing {
public:
// assume no constructors or destructors are specified here,
// or the constructors/destructors are defined as:
//
// Thing() = default;
// ~Thing() = default;
//
// ... Some interface member functions would be defined here
private:
std::shared_ptr<Object> obj;
};
If this header is included in a cpp file, (which we'll call "main.cpp"),
this will result in a compilation error, because even though no
destructor is specified, the destructor will still need to be generated by
the compiler because std::shared_ptr's destructor is *not* trivial (in
other words, it does something other than nothing), as std::shared_ptr's
destructor needs to do two things:
1. Decrement the shared reference count of the object being pointed to,
and if the reference count decrements to zero,
2. Free the Object instance's memory (aka deallocate the memory it's
pointing to).
And so the compiler generates the code for the destructor doing this inside main.cpp.
Now, keep in mind, the Object forward declaration is not a complete type. All it
does is tell the compiler "a type named Object exists" and allows us to
use the name in certain situations to avoid a header dependency. So the
compiler needs to generate destruction code for Object, but the compiler
doesn't know *how* to destruct it. A forward declaration doesn't tell
the compiler anything about Object's constructor or destructor. So, the
compiler will issue an error in this case because it's undefined
behavior to try and deallocate (or construct) an incomplete type and
std::shared_ptr and std::unique_ptr make sure this isn't the case
internally.
Now, if we had defaulted the destructor in "thing.cpp", where we also
include "object.h", this would never be an issue, as the destructor
would only have its code generated in one place, and it would be in a
place where the full class definition of Object would be visible to the
compiler.
---------------------- End example ----------------------------
Given these service classes are more than certainly going to change in
the future, this defaults the constructors and destructors into the
relevant cpp files to make the construction and destruction of all of
the services consistent and unlikely to run into cases where forward
declarations are indirectly causing compilation errors. It also has the
plus of avoiding the need to rebuild several services if destruction
logic changes, since it would only be necessary to recompile the single
cpp file.
2018-09-10 23:55:31 -04:00
Tobias
3bac3051fc
Use open-source shared fonts if no dumped file is available ( #1269 )
...
* Add open-source shared fonts
* Address review comments
2018-09-10 21:31:01 -04:00
Markus Wick
0cfb0bacb2
video_core: Move command buffer loop.
...
This moves the hot loop into video_core. This refactoring shall reduce the CPU overhead of calling ProcessCommandList.
2018-09-10 22:06:13 +02:00
bunnei
50c191439d
Merge pull request #1276 from FearlessTobi/fix-stupid-stub
...
hid: Implement ReloadInputDevices
2018-09-09 22:31:04 -04:00
Lioncash
136040ee15
service: Remove unused g_kernel_named_ports variable
...
With the named port functionality all migrated over to the kernel,
there's no need to keep this around anymore.
2018-09-09 22:10:54 -04:00
fearlessTobi
500e81429a
hid: Implement ReloadInputDevices
2018-09-09 00:57:41 +02:00
Lioncash
56ab608044
core/core: Remove unnecessary sm/controller include
...
The only reason this include was necessary, was because the constructor
wasn't defaulted in the cpp file and the compiler would inline it
wherever it was used. However, given Controller is forward declared, all
those inlined constructors would see an incomplete type, causing a
compilation failure. So, we just place the constructor in the cpp file,
where it can see the complete type definition, allowing us to remove
this include.
2018-09-06 14:38:39 -04:00
Zach Hilman
c913136eb2
bktr: Fix bucket overlap error
2018-09-04 17:01:54 -04:00
Zach Hilman
9951f6d054
registration: Add RegisteredCacheUnion
...
Aggregates multiple caches into one interface
2018-09-04 16:21:40 -04:00
bunnei
8ec1e16867
Merge pull request #1235 from lioncash/forward-decl
...
file_sys: Replace includes with forward declarations where applicable
2018-09-04 11:51:54 -04:00
bunnei
c156ee8eb8
Merge pull request #1230 from lioncash/ssl
...
ssl: Move SSL class to cpp file
2018-09-04 11:49:22 -04:00
Lioncash
a813c10e1c
file_sys: Replace includes with forward declarations where applicable
...
Cuts down on include dependencies, resulting in less files that need to
be rebuilt when certain things are changed.
2018-09-03 22:52:24 -04:00