aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2018-10-17controller_base: Default the base class constructor and destructor in the ↵Lioncash
cpp file The destructor doesn't need to be a pure-virtual function.
2018-10-17Merge pull request #1444 from ogniK5377/better-hidbunnei
"Better Hid" Rework Part 1
2018-10-17Merge pull request #1497 from bunnei/flush-framebuffersbunnei
Implement flushing in the rasterizer cache
2018-10-17Merge pull request #1498 from lioncash/aslrbunnei
svc: Clarify enum values for AddressSpaceBaseAddr and AddressSpaceSize in svcGetInfo()
2018-10-17Merge pull request #1509 from DarkLordZach/device-save-databunnei
savedata_factory: Add DeviceSaveData and fix TemporaryStorage
2018-10-18Using dual joycons as the default controllerDavid Marcec
Reason for the change is to allow both docked and undocked mode to work
2018-10-16config: Rename use_accurate_framebuffers -> use_accurate_gpu_emulation.bunnei
- This will be used as a catch-all for slow-but-accurate GPU emulation paths.
2018-10-16Merge pull request #1443 from DarkLordZach/lower-loader-logs-1bunnei
content_archive/patch_manager: Lower log levels to eliminate some unnecessary logs
2018-10-16Implement VI ConvertScalingMode (#1475)David
* Implement VI ConvertScalingMode * Fixed push enum * Scale mode now uses Nintendo scale mode as an enum as well
2018-10-16Merge pull request #1502 from lioncash/uniquebunnei
core: Convert shared_ptr instances into unique_ptr instances where applicable for System and Cpu
2018-10-16savedata_factory: Add TemporaryStorage SaveDataSpaceIdZach Hilman
Required for TemporaryStorage saves (in addition to SaveDataType)
2018-10-16savedata_factory: Add support for DeviceSaveDataZach Hilman
Uses the same path as SaveData except with UID 0. Adds a warning if UID is not 0.
2018-10-16file_sys/registered_cache: Use unique_ptr and regular pointers instead of ↵Lioncash
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-15Merge pull request #1473 from lioncash/cmakebunnei
web_service: Make linkage of web_service-related externals and the library private
2018-10-15file_sys/control_metadata: Get rid of magic constantsLioncash
These are just the size of the data being passed in, so we can specify that via the size() member function.
2018-10-15Merge pull request #1494 from DarkLordZach/aoc-signature-fixesbunnei
aoc: Fix various bugs in current AOC implementation
2018-10-15Merge pull request #1499 from lioncash/nrobunnei
nro/nso: Minor error handling changes
2018-10-15nso: Return an optional address from LoadModuleLioncash
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-15core_cpu: Make Cpu scheduler instances unique_ptrs instead of shared_ptrsLioncash
2018-10-15core: Make the live Cpu instances unique_ptrs instead of shared_ptrsLioncash
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-15core: Make the exclusive monitor a unique_ptr instead of a shared_ptrLioncash
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-15core: Make CPUBarrier a unique_ptr instead of a shared_ptrLioncash
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-14crypto: Various crypto fixes for quickstart guideZach Hilman
2018-10-14nso: Make LoadModule take a VfsFile by const referenceLioncash
2018-10-14nro: Make LoadNro take a VfsFile by const referenceLioncash
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-14svc: Clarify enum values for AddressSpaceBaseAddr and AddressSpaceSize in ↵Lioncash
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-14aoc: Read DLC base title ID from RegisteredCacheZach Hilman
Falls back to title ID + 0x1000, which is what HOS does.
2018-10-14Merge pull request #1486 from lioncash/filebunnei
key_manager/partition_data_manager: Minor changes
2018-10-14Merge pull request #1491 from lioncash/referencebunnei
filesystem: Make CreateFactories() and InstallInterface() take a VfsFilesystem by reference
2018-10-14Merge pull request #1492 from lioncash/procbunnei
svc: Implement svcGetProcessInfo
2018-10-14Stop all threads on svcBreakDavid Marcec
This should help diagnose crashes easier and prevent many users thinking that a game is still running when in fact it's just an audio thread still running(this is typically not killed when svcBreak is hit since the game expects us to do this)
2018-10-13aoc: Return size in ListAddOnContentZach Hilman
2018-10-13svc: Implement svcGetProcessInfoLioncash
A fairly basic service function, which only appears to currently support retrieving the process state. This also alters the ProcessStatus enum to contain all of the values that a kernel process seems to be able of reporting with regards to state.
2018-10-13filesystem: Make CreateFactories() and InstallInterface() take a ↵Lioncash
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-13partition_data_manager: Reserve and insert data within output vector in ↵Lioncash
DecryptPackage2() We can just reserve the memory then perform successive insertions instead of needing to use memcpy. This also avoids the need to zero out the output vector's memory before performing the insertions. We can also std::move the output std::vector into the destination so that we don't need to make a completely new copy of the vector, getting rid of an unnecessary allocation. Additionally, we can use iterators to determine the beginning and end ranges of the std::vector instances that comprise the output vector, as the end of one range just becomes the beginning for the next successive range, and since std::vector's iterator constructor copies data within the range [begin, end), this is more straightforward and gets rid of the need to have an offset variable that keeps getting incremented to determine where to do the next std::memcpy.
2018-10-13partition_data_manager: Remove unused std::map instance within DecryptPackage2()Lioncash
Aside from emplacing elements into the map, the map itself is never actually queried for contained data.
2018-10-13partition_data_manager: Take package2_keys by const referenceLioncash
These are only ever read from, so we don't need to make a copy of all the keys here.
2018-10-13partition_data_manager: Move IV data to where it's needed in DecryptPackage2()Lioncash
Given it's only used in one spot and has a fairly generic name, we can just specify it directly in the function call. This also the benefit of automatically moving it.
2018-10-13partition_data_manager: Remove commented out codeLioncash
Commented out code shouldn't be left in without a reason indicating why in a comment.
2018-10-13key_manager/partition_data_manager: Silence truncation compiler warningsLioncash
2018-10-13partition_data_manager: Dehardcode array boundsLioncash
Instead, we can make it part of the type and make named variables for them, so they only require one definition (and if they ever change for whatever reason, they only need to be changed in one spot).
2018-10-13partition_data_manager: Take VirtualFile by const reference in constructorLioncash
Given the VirtualFile instance isn't stored into the class as a data member, or written to, this can just be turned into a const reference, as the constructor doesn't need to make a copy of it.
2018-10-13partition_data_manager: Amend constructor initializer list orderLioncash
Orders the members in the exact order they would be initialized. This also prevents compiler warnings about this sort of thing.
2018-10-13partition_data_manager: Remove unused includesLioncash
Gets unused includes out of the headers and moves them into the cpp file if they're used there instead.
2018-10-13key_manager: Use std::vector's insert() instead of std::copy with a ↵Lioncash
back_inserter If the data is unconditionally being appended to the back of a std::vector, we can just directly insert it there without the need to insert all of the elements one-by-one with a std::back_inserter.
2018-10-13key_manager: Brace long conditional bodyLioncash
If a conditional (or it's body) travels more than one line, it should be braced.
2018-10-13key_manager: Don't assume file seeks and reads will always succeedLioncash
Given the filesystem should always be assumed to be volatile, we should check and bail out if a seek operation isn't successful. This'll prevent potentially writing/returning garbage data from the function in rare cases. This also allows removing a check to see if an offset is within the bounds of a file before perfoming a seek operation. If a seek is attempted beyond the end of a file, it will fail, so this essentially combines two checks into one in one place.
2018-10-13key_manager: Remove unnecessary seek in DeriveSDSeed()Lioncash
Given the file is opened a few lines above and no operations are done, other than check if the file is in a valid state, the read/write pointer will always be at the beginning of the file.
2018-10-12patch_manager: Move non-Program RomFS patch log to DebugZach Hilman
Normal Program-type patches will still be logged to aid in debugging, but for others (mainly Control), it was moved to Debug.
2018-10-12content_archive: Move get key log to Trace levelZach Hilman
Avoids printing live keys in the general log.