aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2018-11-23Merge pull request #1641 from DarkLordZach/sm-register-unregisterbunnei
sm: Implement RegisterService and UnregisterService
2018-11-23Merge pull request #1731 from DarkLordZach/change-dir-crashbunnei
filesystem: Clear registered union paths on factory creation
2018-11-23Merge pull request #1692 from Hedges/GDBCleanbunnei
GDBStub Improvements
2018-11-23Merge pull request #1708 from ogniK5377/res-scalebunnei
Report resolution scaling support for vi and am
2018-11-23Merge pull request #1747 from DarkLordZach/exefs-lfsbunnei
patch_manager: Add support for applying LayeredFS patches to ExeFS
2018-11-23nvdrv: Implement/stub DumpGraphicsMemoryInfo and GetStatus.bunnei
- Used by Undertale.
2018-11-23Merge pull request #1770 from DarkLordZach/applet-stubbunnei
applets: Add StubApplet and use it as fallback when AppletId is not implemented
2018-11-23Merge pull request #1777 from lioncash/core-mgrbunnei
core: Relocate CPU core management to its own class
2018-11-23Merge pull request #1762 from bunnei/getgputimebunnei
nvhost_ctrl_gpu: Implement IoctlGetGpuTime.
2018-11-22file_sys: Implement system archive synthesizer for NgWord (806)Zach Hilman
2018-11-22am: Return StubApplet instead of nullptr when AppletId not foundZach Hilman
2018-11-22debug_pad: Avoid loading input for nonexistent buttons (Home and Screenshot)Zach Hilman
Prevents memory exceptions when the debug pad is enabled.
2018-11-22Merge pull request #1765 from bunnei/multi-audoutbunnei
audout_u: Add support for multiple IAudioOut streams.
2018-11-22core: Relocate CPU core management to its own classLioncash
Keeps the CPU-specific behavior from being spread throughout the main System class. This will also act as the home to contain member functions that perform operations on all cores. The reason for this being that the following pattern is sort of prevalent throughout sections of the codebase: If clearing the instruction cache for all 4 cores is necessary: Core::System::GetInstance().ArmInterface(0).ClearInstructionCache(); Core::System::GetInstance().ArmInterface(1).ClearInstructionCache(); Core::System::GetInstance().ArmInterface(2).ClearInstructionCache(); Core::System::GetInstance().ArmInterface(3).ClearInstructionCache(); This is kind of... well, silly to copy around whenever it's needed. especially when it can be reduced down to a single line. This change also puts the basics in place to begin "ungrafting" all of the forwarding member functions from the System class that are used to access CPU state or invoke CPU-specific behavior. As such, this change itself makes no changes to the direct external interface of System. This will be covered by another changeset.
2018-11-22audout_u: Add support for multiple IAudioOut streams.bunnei
- Used by Undertale.
2018-11-22scheduler: Add explanations for YieldWith and WithoutLoadBalancingZach Hilman
2018-11-21Merge pull request #1767 from lioncash/handlebunnei
kernel/handle_table: Minor changes
2018-11-21applets: Add StubAppletZach Hilman
This will log all data it receives, log all calls to its methods and push dummy data into both channels on execution.
2018-11-21kernel/handle_table: Move private static functions into the cpp fileLioncash
These don't depend on class state, and are effectively implementation details, so they can go into the cpp file .
2018-11-21kernel/handle_table: Restrict handle table size to 1024 entriesLioncash
The previous handle table size is a holdover from Citra. The actual handle table construct on Horizon only allows for a maximum of 1024 entries.
2018-11-21kernel/handle_table: Default destructor in the cpp fileLioncash
We don't need to potentially inline the teardown logic of all of the handle instances.
2018-11-21Merge pull request #1742 from lioncash/hle-swkbdbunnei
am/applets: Minor cleanup
2018-11-21nvhost_ctrl_gpu: Implement IoctlGetGpuTime.bunnei
- Used by Undertale.
2018-11-20am: Correct build failureLioncash
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-20patch_manager: Show LayeredExeFS patch in add-ons columnZach Hilman
The decision was made to name them LayeredExeFS instead of just LayeredFS to differentiate from normal RomFS-based mods. The name may be long/unweildy, but conveys the meaning well.
2018-11-20Merge pull request #1734 from lioncash/sharedbunnei
kernel/shared_memory: Make data members private, plus minor interface changes
2018-11-20Merge pull request #1733 from lioncash/ldrbunnei
ldr: Clean up error codes
2018-11-20Merge pull request #1746 from lioncash/randombunnei
kernel/process: Move <random> include to the cpp file
2018-11-20file_sys/card_image: Provide named members for the GamecardInfo structLioncash
Fills out the struct according to information provided by SwitchBrew
2018-11-20patch_manager: Apply LayeredExeFS patchesZach Hilman
This will scan the <mod>/exefs dir for all files and then layer those on top of the game's exefs and use this as the new exefs. This allows for overriding of the compressed NSOs or adding new files. This does use the same dir as IPS/IPSwitch patch, but since the loader will not look for those they are ignored.
2018-11-20settings: Add option to dump ExeFS of games upon launchZach Hilman
When enabled, all exefs(es) will be copied to yuzu/dump/<title_id>/exefs.
2018-11-20kernel/process: Move <random> include to the cpp fileLioncash
<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-20am/applets: Make the applet data broker part of the applet itself.Lioncash
The accessor should be doing just that, accessing, rather than retaining the lifetime of the data broker as well.
2018-11-20am/applets: Replace includes with forward declarations where applicableLioncash
Also resolve places where includes should have been provided, but weren't.
2018-11-20am/applets: Relocate comments above the relevant data member in AppletDataBrokerLioncash
Avoids wonky wrapping and makes it nicer to read.
2018-11-20Merge pull request #1667 from DarkLordZach/swkbdbunnei
am: Implement HLE software keyboard applet
2018-11-19Merge pull request #1739 from lioncash/lmbunnei
lm: Implement SetDestination by doing nothing
2018-11-19kernel/resource_limit: Clean up interfaceLioncash
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-19lm: Implement SetDestination by doing nothingLioncash
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-19software_keyboard: Fix erroneous extra PushNormalDataZach Hilman
2018-11-19software_keyboard: Return correct result code on user cancel operationZach Hilman
2018-11-19applet: Add AppletDataBroker to manage HLE to AM service interactionZach Hilman
This cleans up most of the callbacks and such in the Applets::Applet interface, while also properly implementing all four data channels.
2018-11-19software_keyboard: Use correct offset for inital text stringZach Hilman
2018-11-19kernel/shared_memory: Make Map() and Unmap() take the target process by ↵Lioncash
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-19kernel/shared_memory: Add a const qualified member function overload for ↵Lioncash
GetPointer() Given this doesn't mutate instance state, we can provide a const-qualified variant as well.
2018-11-19kernel/shared_memory: Use 64-bit types for offset and size in CreateForAppletLioncash
Keeps the interface consistent with the regular Create() function.
2018-11-19kernel/shared_memory: Make GetPointer() take a std::size_t instead of a u32Lioncash
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-19kernel/shared_memory: Make data members privateLioncash
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-19ldr: Clean up error codesLioncash
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-18svc: Implement yield types 0 and -1Zach Hilman