Zach Hilman
17d8e25cbf
settings: Add option to dump ExeFS of games upon launch
...
When enabled, all exefs(es) will be copied to yuzu/dump/<title_id>/exefs.
2018-11-20 17:49:09 -05:00
Lioncash
31d1e06eb1
kernel/process: Move <random> include to the cpp file
...
<random> isn't necesary directly within the header and can be placed in
the cpp file where its needed. Avoids propagating random generation
utilities via a header file.
2018-11-20 17:46:20 -05: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
bunnei
e9265ac598
Merge pull request #1739 from lioncash/lm
...
lm: Implement SetDestination by doing nothing
2018-11-19 18:40:17 -08:00
Lioncash
5d46038c5c
kernel/resource_limit: Clean up interface
...
Cleans out the citra/3DS-specific implementation details that don't
apply to the Switch. Sets the stage for implementing ResourceLimit
instances properly.
While we're at it, remove the erroneous checks within CreateThread() and
SetThreadPriority(). While these are indeed checked in some capacity,
they are not checked via a ResourceLimit instance.
In the process of moving out Citra-specifics, this also replaces the
system ResourceLimit instance's values with ones from the Switch.
2018-11-19 18:16:39 -05: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
233e495c14
kernel/shared_memory: Make Map() and Unmap() take the target process by reference rather than as a pointer
...
Both member functions assume the passed in target process will not be
null. Instead of making this assumption implicit, we can change the
functions to be references and enforce this at the type-system level.
2018-11-19 09:20:29 -05:00
Lioncash
fb5d4b17de
kernel/shared_memory: Add a const qualified member function overload for GetPointer()
...
Given this doesn't mutate instance state, we can provide a
const-qualified variant as well.
2018-11-19 09:20:29 -05:00
Lioncash
2d37ca3726
kernel/shared_memory: Use 64-bit types for offset and size in CreateForApplet
...
Keeps the interface consistent with the regular Create() function.
2018-11-19 09:20:29 -05:00
Lioncash
76ac234bf6
kernel/shared_memory: Make GetPointer() take a std::size_t instead of a u32
...
Makes the interface nicer to use in terms of 64-bit code, as it makes it
less likely for one to get truncation warnings (and also makes sense in
the context of the rest of the interface where 64-bit types are used for
sizes and offsets
2018-11-19 09:20:29 -05:00
Lioncash
f472232705
kernel/shared_memory: Make data members private
...
Rather than allow unfettered access to the class internals, we hide all
members by default and create and API that other code can operate
against.
2018-11-19 09:20:25 -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
Zach Hilman
c77454b9d0
settings: Add settings for multiple players and controllers
...
Uses the PlayerInput struct to represent all of the data that constitutes a player.
2018-11-18 23:21:33 -05:00
Zach Hilman
fd5fa48674
settings: Add Native type for keyboard
2018-11-18 23:21:33 -05:00
Zach Hilman
152422bab1
settings: Add Native type for mouse buttons
2018-11-18 23:21:33 -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
Mat M
9a1bac840e
Merge pull request #1728 from FearlessTobi/reset-signal
...
svc: ResetSignal is not stubbed
2018-11-18 15:51:32 -05:00
Tobias
13f79cc5bd
svc: ResetSignal is not stubbed
...
https://user-images.githubusercontent.com/20753089/48677874-b8e01c80-eb7b-11e8-8043-b99faa29022c.PNG
2018-11-18 21:49:17 +01: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
a81645400f
qt/main: Register Qt Software Keyboard frontend with AM
...
Allows using Qt provider over default.
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
ae53b84efd
frontend/applets: Add frontend software keyboard provider and default
...
Default implementation will return "yuzu" for any string. GUI clients (or CLI) can implement the Frontend::SoftwareKeyboardApplet class and register an instance to provide functionality.
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
7901de2b75
svc: Implement svcCreateTransferMemory
...
Seems to be used and created identically to SharedMemory, so just reuse that.
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
6552d75be1
Merge pull request #1719 from bunnei/hwopus-fix
...
hwopus: DecodeInterleavedWithPerformance: Fix ordering of output parameters.
2018-11-16 20:08:17 -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
Lioncash
d21b2164e9
kernel/errors: Clean up error codes
...
Similar to PR 1706, which cleans up the error codes for the filesystem
code, but done for the kernel error codes. This removes the ErrCodes
namespace and specifies the errors directly. This also fixes up any
straggling lines of code that weren't using the named error codes where
applicable.
2018-11-16 14:32:30 -05:00
Mat M
14cede1a0c
Merge pull request #1638 from FreddyFunk/SetMemoryPermission-Stubbed
...
Implement SetMemoryPermission
2018-11-16 10:35:56 -05: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
5c9c33e8ad
file_sys/errors: Remove currently unused filesystem error codes
...
Rather than keeping around unused values, we can just introduce them as
needed.
2018-11-16 00:18:22 -05:00
Lioncash
edd5b6f12f
file_sys/errors: Get rid of the ErrCodes namespace
...
There's no real point to keeping the separate enum around, especially
given the name of the error code itself is supposed to document what the
value actually represents.
2018-11-16 00:13:50 -05: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
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
f7319b0d3c
Merge pull request #1687 from lioncash/deduplication
...
kernel/thread: Deduplicate scheduler switching code
2018-11-15 14:47:42 -08: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
0276761a1e
process: Make MirrorMemory take state to map new memory as
...
Credits to Subv
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