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
Lioncash
004277477a
vm_manager: Unstub GetTotalHeapUsage()
...
Now that we've moved all of the heap-related stuff to the VMManager
class, we can unstub this function, as the necessary members are visible
now.
2018-11-13 13:08:26 -05:00
Lioncash
b8e885c6e5
kernel/process: Migrate heap-related memory management out of the process class and into the vm manager
...
Avoids a breach of responsibilities in the interface and keeps the
direct code for memory management within the VMManager class.
2018-11-13 13:08:19 -05:00
Zach Hilman
ab552e4a25
svc: Use proper random entropy generation algorithm
2018-11-13 12:26:03 -05:00
Hedges
af42320021
GDBStub improvements:
...
- Add FPU support
- Fix access to TLS
Fix clang-format.
2018-11-13 15:44:20 +00: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
cb1e63ef09
svc: Return random seed for svcGetInfo RandomEntropy
2018-11-12 21:46:21 -05:00
Zach Hilman
2a16fd7ffc
settings: Add config option to set RNG seed
2018-11-11 23:09:46 -05:00
Zach Hilman
4b4f883aef
csrng: Use std::mt19937 engine for random number generation
2018-11-11 23:08:39 -05:00
bunnei
7474382266
Merge pull request #1652 from FreddyFunk/static-cast
...
configure_system: Fix compiler warning
2018-11-11 12:19:03 -08: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
581406af18
svcBreak now dumps information from the debug buffer passed ( #1646 )
...
* svcBreak now dumps information from the debug buffer passed
info1 and info2 seem to somtimes hold an address to a buffer, this is usually 4 bytes or the size of the int and contains an error code. There's other circumstances where it can be something different so we hexdump these to examine them at a later date.
* Addressed comments
2018-11-07 20:43:54 -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
Frederic Laing
d34d0bfc87
configure_system: Fix compiler warning
2018-11-06 16:38:10 +01:00
Frederic Laing
ba2cdcdc5a
Implement SetMemoryPermission
2018-11-06 10:21:01 +01: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
Frederic Laing
ab7472345b
Stubbed SetMemoryPermission
2018-11-03 16:01:34 +01: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
Zach Hilman
97d425c304
file_sys: Use common KeyManager in NCA container types
...
Creates a single KeyManager for the entire container and then passes it into the NCA constructor, eliminating several unnecessary KeyManager reads.
2018-11-01 20:23:38 -04:00
Zach Hilman
e20db909ee
content_archive: Add optional KeyManager parameter to constructor
...
Allows resuing a common KeyManager when a large amount of NCAs are handled by the same class. Should the parameter not be provided, a new KeyManager will be constructed, as was the default behavior prior to this.
2018-11-01 20:22:29 -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
bunnei
d08457f879
Merge pull request #1604 from FearlessTobi/port-4369
...
Port citra-emu/citra#4369 : "compatdb: Use a seperate endpoint for testcase submission"
2018-10-31 22:37:07 -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
Lioncash
352b56367c
general: Remove unused boost inclusions where applicable
...
Cleans up unused includes and trims off some dependencies on externals.
2018-10-30 00:09:46 -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
bunnei
adf26ae668
Merge pull request #1621 from lioncash/ipc
...
hle_ipc: Make GetDomainMessageHeader return a regular pointer
2018-10-29 23:55:59 -04:00
Lioncash
6383653a8d
hle_ipc: Add member function for querying the existence of a domain header
...
Gets rid of the need to call the getter and then check for null.
2018-10-29 23:28:04 -04:00
Lioncash
0cc347462d
hle_ipc: Make GetDomainMessageHeader return a regular pointer
...
Nothing requires the shared owner ship here, so we can just return a
plain pointer.
2018-10-29 23:18: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
1c0226815d
patch_manager: Add support for dumping decompressed NSOs
...
When enabled in settings, PatchNSO will dump the unmodified NSO that it was passed to a file named <build id>.nso in the dump root for the current title ID.
2018-10-29 16:10:16 -04:00
Zach Hilman
48eb3742b9
settings: Add setting to control NSO dumping
...
Also adds UI option in Debug > Dump section, with the idea later things to be dumped (i.e. other game data or textures, etc) will use the same group box.
2018-10-29 16:09:08 -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
Zach Hilman
f2f679bf3f
loader/nro: Call RegisterRomFS from Load
...
Allows NRO homebrew to use the RomFS in the ASET section.
2018-10-29 13:54:38 -04:00
Zach Hilman
b04e39107f
control_metadata: Add GetRawBytes function to NACP
...
Returns the raw bytes of the NACP file. Needed for GetApplicationControlData which returns the raw, unprocessed NACP to the game.
2018-10-29 13:54:38 -04:00
Lioncash
a973a049b7
core: Make System references const where applicable
2018-10-28 17:45:29 -04:00
Lioncash
b77f571d20
core: Add missing const variants of getters for the System class
...
Many of the Current<Thing> getters (as well as a few others) were
missing const qualified variants, which makes it a pain to retrieve
certain things from const qualified references to System.
2018-10-28 17:44:58 -04:00
fearlessTobi
585b6a6a50
compatdb: Use a seperate endpoint for testcase submission
2018-10-28 13:23:02 +01:00
bunnei
2239d47112
Merge pull request #1593 from lioncash/svc
...
svc: Implement svcGetInfo command 0xF0000002
2018-10-28 04:38:48 -04:00
Frederic L
72d10ce66c
file_sys/patch_manager: Remove unnecessary if-statements ( #1586 )
...
* remove unnecessary if-statements
* Addressed feedback
2018-10-28 02:30:29 -04:00
bunnei
0d449b77e2
Merge pull request #1598 from DeeJayBro/delete-directory
...
service/filesystem: Implemented DeleteDirectory & DeleteDirectoryRecursive
2018-10-28 02:29:52 -04:00
bunnei
6f620b2441
Merge pull request #1600 from DarkLordZach/nsp-secondary-loader-fix
...
loader/nsp: Move secondary loader initialization to constructor
2018-10-28 02:29:14 -04:00
Zach Hilman
1fa31cf74d
key_manager: Use isxdigit instead of isdigit when reading key file
...
Crypto revisions are hex numbers and this function only checks if the string is valid for stoul in base 16, so it should be isxdigit.
2018-10-27 21:56:10 -04:00
Zach Hilman
7c70746ec4
loader/nsp: Move secondary loader initialization to constructor
...
Prevents nullptr bug when trying to dump the RomFS of an NSP resulting from secondary_loader not being initialized.
2018-10-27 10:16:29 -04:00
DeeJayBro
3b1e4c0995
service/filesystem: Add DirectoryDelete & DirectoryDeleteRecursively
2018-10-27 11:56:39 +02:00
Lioncash
7de8e36343
svc: Localize the GetInfo enum class to the function itself
...
Nothing from this enum is intended to be used outside of this function.
2018-10-26 12:49:14 -04:00
Lioncash
6594853eb1
svc: Implement svcGetInfo command 0xF0000002
...
This retrieves:
if (curr_thread == handle_thread) {
result = total_thread_ticks + (hardware_tick_count - last_context_switch_ticks);
} else if (curr_thread == handle_thread && sub_id == current_core_index) {
result = hardware_tick_count - last_context_switch_ticks;
}
2018-10-26 12:49:11 -04:00
bunnei
72e6b31a07
Merge pull request #1430 from DarkLordZach/remove-promote-dir
...
vfs: Remove InterpretAsDirectory and related functions
2018-10-26 00:15:34 -04: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
c2049aa4e5
process: LoadModule should clear JIT instruction cache.
2018-10-25 18:03:54 -04:00
bunnei
a609b6907a
Kernel/Memory: Added a function to first a suitable guest address at which to allocate a region of a given size.
2018-10-25 18:03:54 -04:00
bunnei
ef7b2237d9
nro: Make LoadNro method accessible outside of apploader code.
2018-10-25 18:03:54 -04:00
Zach Hilman
9a87ece837
ips_layer: Use rle_size instead of data_size in RLE patch application
...
Prevents a potential bug when using RLE records in an IPS patch.
2018-10-25 14:23:56 -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
bunnei
c94db0e071
Merge pull request #1577 from lioncash/err
...
kernel/error: Amend error return code values
2018-10-25 01:10:26 -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
ddff188c65
Merge pull request #1563 from lioncash/frame
...
perf_stats: Remove unused variable within DoFrameLimiting()
2018-10-24 16:29:16 -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
bunnei
cdd499c261
Merge pull request #1561 from lioncash/fs
...
file_sys: Remove unused variables
2018-10-24 16:28:17 -04:00
Lioncash
1fb4bebb63
kernel/errors: Remove now-unused, unnecessary, error codes
...
Now that we've gotten the innaccurate error codes out of the way, we can
finally toss away a bunch of these, trimming down the error codes to
ones that are actually used and knocking out two TODO comments.
2018-10-24 14:58:37 -04:00
Lioncash
239dfea34a
kernel/shared_memory: Return ERR_INVALID_MEMORY_PERMISSIONS instead of ERR_INVALID_COMBINATION
...
This is more consistent with what the kernel does.
2018-10-24 14:54:36 -04:00
Lioncash
474bc29208
kernel/server_port: Simplify emptiness check within ShouldWait()
2018-10-24 14:24:36 -04:00
Lioncash
b703aba622
kernel/server_port: Change error case return value in Accept() to ERR_NOT_FOUND
...
This is what the kernel does in this instance.
2018-10-24 14:23:38 -04:00
Lioncash
afb7e5cc05
kernel/error: Remove leftover 3DS error codes
...
These are now entirely unused and can be removed.
2018-10-24 14:21:37 -04:00
Lioncash
fcf8f53a63
kernel/svc: Amend returned error code for invalid priorities in CreateThread
...
Like with the previous change, the kernel doesn't return NOT_AUTHORIZED
here. It returns INVALID_THREAD_PRIORITY.
2018-10-24 14:11:11 -04:00
Lioncash
77328b0f19
kernel/svc: Move and correct returned error code for invalid thread priorities in SetThreadPriority()
...
All priority checks are supposed to occur before checking the validity
of the thread handle, we're also not supposed to return
ERR_NOT_AUTHORIZED here.
2018-10-24 14:10:48 -04:00
Lioncash
c7c346a15d
kernel/error: Add error code for invalid pointers
...
The kernel appears to return 0xE601 for this situation. Particularly in
svcWaitSynchronization, svcReplyAndReceive, and svcGetThreadContext
2018-10-24 13:41:32 -04:00
Lioncash
6df09f5b76
kernel/error: Add error code for closed sessions
...
The kernel appears to return 0xF601 for this case.
2018-10-24 13:38:39 -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
Mat M
77e705a8fa
Merge pull request #1468 from DarkLordZach/profile-manager-ui
...
qt: Add UI to manage emulated user profiles
2018-10-24 10:10:29 -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
7c9f7aeacc
perf_stats: Remove unused variable within DoFrameLimiting()
...
This hasn't been used since ba8ff096fd
2018-10-24 00:33:26 -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
Lioncash
c7c594a6b8
vfs: Handle failure of file reading within VfsRawCopy()
...
Also gets rid of an unused variable.
2018-10-24 00:01:32 -04:00
Lioncash
c6529688fc
key_manager: Remove unused variable in DeriveBase()
2018-10-24 00:00:12 -04:00
bunnei
a94e5d9e68
Merge pull request #1551 from ogniK5377/improved-svcbreak
...
Added break types to svcBreak
2018-10-23 19:56:42 -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
Zach Hilman
e7e3d5898e
settings: Add users and current_user settings and remove username
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
e61a62066a
Merge pull request #1540 from lioncash/handle
...
kernel/process: Make the handle table per-process
2018-10-23 18:43:11 -04:00
David Marcec
38cdb6744d
Added assertion failed, reworked logging levels
2018-10-23 15:17:13 +11:00
David Marcec
8042731da9
Added break types to svcBreak
...
There seems to be more such as type 1, and 2. Unsure what these currently are but when a game hits them we can investigate and add the rest
2018-10-23 15:03:59 +11: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
bunnei
d9923b0dbc
Merge pull request #1538 from lioncash/query
...
svc: Fix vma boundary check in svcQueryMemory
2018-10-22 12:55:36 -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
Lioncash
90a981a03a
kernel/process: Make the handle table per-process
...
In the kernel, there isn't a singular handle table that everything gets
tossed into or used, rather, each process gets its own handle table that
it uses. This currently isn't an issue for us, since we only execute one
process at the moment, but we may as well get this out of the way so
it's not a headache later on.
2018-10-20 16:38:32 -04:00
Lioncash
896c0f61a0
svc: Fix vma boundary check in svcQueryMemory
...
This should be comparing against the queried process' vma_map, not the
current process'. The only reason this hasn't become an issue yet is we
currently only handle one process being active at any time.
2018-10-20 14:56:51 -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
60317e6306
Merge pull request #1520 from lioncash/san
...
svc: Add missing sanitizing checks for MapSharedMemory/UnmapSharedMemory
2018-10-19 22:58:57 -04: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
Zach Hilman
0aef2b9c26
crypto: Use compressed sizes in offset calculation for KIP decompression
...
Fixes a fatal crash on start when deriving keys.
2018-10-19 18:37:58 -04:00
Zach Hilman
a25d79cfaa
vfs: Remove InterpretAsDirectory and related functions
...
When writing VFS, it initally seemed useful to include a function to in-place convert container files into directories in one homogenous directory structure, but re-evaluating it now there have been plenty of chances to use it and there has always been a better way. Removing as it is unused and likely will not be used.
2018-10-19 14:02:07 -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
bunnei
fdd82b754a
Merge pull request #1523 from lioncash/lock
...
svc: Add missing error checks in svcArbitrateLock/svcArbitrateUnlock
2018-10-18 21:50:45 -04:00
bunnei
7f152f2273
Merge pull request #1511 from lioncash/content
...
content_archive: Minor reorganization changes
2018-10-18 21:48:09 -04:00
bunnei
e5d428cf1e
Merge pull request #1521 from ogniK5377/imp-mmu
...
Used better names for mm:u and fixed a bad stub
2018-10-18 21:46:59 -04:00
Lioncash
4b5ae8dbaa
svc: Check for word alignment of addresses within svcArbitrateLock/svcArbitrateUnlock
...
The kernel itself checks whether or not the provided addresses are word
aligned before continuing, so we should be doing the same.
2018-10-18 13:01:29 -04:00
Lioncash
d27f4a4928
common: Move Is4KBAligned() to alignment.h
...
Aligning on 4KB pages isn't a Switch-specific thing, so this can be
moved to common so it can be used with other things as well.
2018-10-18 12:57:02 -04:00
Lioncash
f109615be0
core: Remove unnecessary assert in ArmInterface()
...
CpuCore already does this sort of checking, so we can just call that
instead of duplicating the assertions.
2018-10-18 12:07:25 -04:00
bunnei
d4ff4152ad
Merge pull request #1510 from lioncash/xci
...
XCI: Add function for checking the existence of the program NCA
2018-10-18 11:51:47 -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
33830aa65a
svc: Add missing sanitizing checks for MapSharedMemory/UnmapSharedMemory
...
Now that the changes clarifying the address spaces has been merged, we
can wrap the checks that the kernel performs when mapping shared memory
(and other forms of memory) into its own helper function and then use
those within MapSharedMemory and UnmapSharedMemory to complete the
sanitizing checks that are supposed to be done.
2018-10-18 02:01:21 -04: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
bunnei
f912a82a8e
Merge pull request #1497 from bunnei/flush-framebuffers
...
Implement flushing in the rasterizer cache
2018-10-17 18:40:34 -04:00
bunnei
6e8752881c
Merge pull request #1498 from lioncash/aslr
...
svc: Clarify enum values for AddressSpaceBaseAddr and AddressSpaceSize in svcGetInfo()
2018-10-17 18:31:51 -04:00
Zach Hilman
9d0fb0f815
qt: Add support for dumping a DLC Data RomFS
2018-10-17 18:27:29 -04:00
bunnei
afe22d8405
Merge pull request #1509 from DarkLordZach/device-save-data
...
savedata_factory: Add DeviceSaveData and fix TemporaryStorage
2018-10-17 18:22:05 -04:00
Zach Hilman
59044862a9
registered_cache: Deduplicate results of ListEntry and ListEntryFilter
...
Prevents a Entry from appearing in the list twice if the user has it installed in two places (e.g. User NAND and SDMC)
2018-10-17 14:04:18 -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
Zach Hilman
d8273c3857
patch_manager: Add support for using LayeredFS with Data
2018-10-17 09:03:56 -04:00
bunnei
ee7c2dbf5a
config: Rename use_accurate_framebuffers -> use_accurate_gpu_emulation.
...
- This will be used as a catch-all for slow-but-accurate GPU emulation paths.
2018-10-16 17:02:29 -04:00
Lioncash
871350ae35
content_archive: Simpify assignment of bktr_base_romfs in the constructor
...
std::move doesn't actually dereference the data, so it doesn't matter
whether or not the type is null.
2018-10-16 13:22:31 -04:00
Lioncash
441b5b97bd
content_archive: Make IsValidNCA() an internally linked function
...
This is only ever used within the cpp file, so it can just be an
internal function.
2018-10-16 13:22:31 -04:00
Lioncash
53e77ffbfe
content_archive: Simplify rights ID check
...
This is the same as using std::any_of with an inverted predicate.
2018-10-16 13:22:31 -04:00
Lioncash
d6604fa765
content_archive: Split loading into separate functions
...
The constructor alone is pretty large, the reading code should be split
into its consistuent parts to make it easier to understand it without
having to build a mental model of a 300+ line function.
2018-10-16 13:22:28 -04:00
Lioncash
4783ad54de
content_archive: Pass and take NCASectionHeader instance by reference
...
Each header is 512 bytes in size, which is kind of an excessive amount
to copy all the time when it's possible to avoid doing so.
2018-10-16 12:08:17 -04:00
Lioncash
73e1e929a2
XCI: Add function for checking the existence of the program NCA
...
The only reason the getter existed was to check whether or not the
program NCA was null. Instead, we can just provide a function to query
for the existence of it, instead of exposing it entirely.
2018-10-16 11:36:58 -04:00
bunnei
78f2a6a9e1
Merge pull request #1443 from DarkLordZach/lower-loader-logs-1
...
content_archive/patch_manager: Lower log levels to eliminate some unnecessary logs
2018-10-16 11:26:54 -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
bunnei
88b8383da2
Merge pull request #1502 from lioncash/unique
...
core: Convert shared_ptr instances into unique_ptr instances where applicable for System and Cpu
2018-10-16 11:21:42 -04:00
Zach Hilman
9d4e6176eb
savedata_factory: Add TemporaryStorage SaveDataSpaceId
...
Required for TemporaryStorage saves (in addition to SaveDataType)
2018-10-16 10:20:04 -04:00
Zach Hilman
74890cf2da
savedata_factory: Add support for DeviceSaveData
...
Uses the same path as SaveData except with UID 0. Adds a warning if UID is not 0.
2018-10-16 10:19:21 -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
548958bcaf
Merge pull request #1473 from lioncash/cmake
...
web_service: Make linkage of web_service-related externals and the library private
2018-10-15 21:33:32 -04:00
Lioncash
76fc8b59b2
file_sys/control_metadata: Get rid of magic constants
...
These are just the size of the data being passed in, so we can specify
that via the size() member function.
2018-10-15 20:11:44 -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
bunnei
50e6205c21
Merge pull request #1499 from lioncash/nro
...
nro/nso: Minor error handling changes
2018-10-15 17:48:36 -04:00
Lioncash
bed872ed38
nso: Return an optional address from LoadModule
...
If a malformed NSO is attempted to be loaded, we shouldn't continue
onwards. We should be reporting an error and bailing out.
2018-10-15 17:02:11 -04:00
Lioncash
5484742fda
core_cpu: Make Cpu scheduler instances unique_ptrs instead of shared_ptrs
2018-10-15 14:15:56 -04:00
Lioncash
59f872a8e0
core: Make the live Cpu instances unique_ptrs instead of shared_ptrs
...
There's no need for shared ownership here, as the only owning class
instance of those Cpu instances is the System class itself. We can also
make the thread_to_cpu map use regular pointers instead of shared_ptrs,
given that the Cpu instances will always outlive the cases where they're
used with that map.
2018-10-15 14:15:56 -04:00
Lioncash
aeadbfa790
core: Make the exclusive monitor a unique_ptr instead of a shared_ptr
...
Like the barrier, this is owned entirely by the System and will always
outlive the encompassing state, so shared ownership semantics aren't
necessary here.
2018-10-15 14:15:50 -04:00
Lioncash
c34efbbd60
core: Make CPUBarrier a unique_ptr instead of a shared_ptr
...
This will always outlive the Cpu instances, since it's destroyed after
we destroy the Cpu instances on shutdown, so there's no need for shared
ownership semantics here.
2018-10-15 09:11:47 -04:00
Zach Hilman
720d36ca71
crypto: Various crypto fixes for quickstart guide
2018-10-14 21:57:52 -04:00
Lioncash
bb9cf8a127
nso: Make LoadModule take a VfsFile by const reference
2018-10-14 20:38:19 -04:00
Lioncash
0732786ddc
nro: Make LoadNro take a VfsFile by const reference
...
This function doesn't need to care about ownership semantics, so we can
just pass it a reference to the file itself, rather than a
std::shared_ptr alias.
2018-10-14 20:24:18 -04:00
Lioncash
90f8474fc1
svc: Clarify enum values for AddressSpaceBaseAddr and AddressSpaceSize in svcGetInfo()
...
So, one thing that's puzzled me is why the kernel seemed to *not* use
the direct code address ranges in some cases for some service functions.
For example, in svcMapMemory, the full address space width is compared
against for validity, but for svcMapSharedMemory, it compares against
0xFFE00000, 0xFF8000000, and 0x7FF8000000 as upper bounds, and uses
either 0x200000 or 0x8000000 as the lower-bounds as the beginning of the
compared range. Coincidentally, these exact same values are also used in
svcGetInfo, and also when initializing the user address space, so this
is actually retrieving the ASLR extents, not the extents of the address
space in general.
2018-10-14 20:11:16 -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
bunnei
b3cca34f50
Merge pull request #1486 from lioncash/file
...
key_manager/partition_data_manager: Minor changes
2018-10-14 14:46:47 -04:00