* common: Move settings to common from core.
- Removes a dependency on core and input_common from common.
* code: Wrap settings values
* Port from yuzu to allow per game settings
* citra_qt: Initial per-game settings dialog
* citra_qt: Use new API for read/save of config values
* citra_qt: Per game audio settings
* citra_qt: Per game graphics settings
* citra_qt: Per game system settings
* citra_qt: Per game general settings
* citra_qt: Document and run clang format
* citra_qt: Make icon smaller and centered
* citra_qt: Remove version number
* Not sure how to extract that, can always add it back later
* citra_qt: Wrap UISettings
* citra_qt: Fix unthottled fps setting
* citra_qt: Remove margin in emulation tab
* citra_qt: Implement some suggestions
* Bring back speed switch hotkey
* Allow configuration when game is running
* Rename/adjust UI stuff
* citra_qt: Fix build with separate windows
* citra_qt: Address feedback
* citra_qt: Log per-game settings before launching games
* citra_qt: Add shader cache options
* Also fix android build
* citra_qt: Add DLC menu option
* citra_qt: Run clang-format
* citra_qt: Adjust for time offset
* citra_qt: Implement suggestions
* Run clang-format
Co-authored-by: bunnei <bunneidev@gmail.com>
Follows the video core PR. fmt doesn't require casts for enum classes
anymore, so we can remove quite a few casts.
Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
* service/apt: Add GetModule and GetAppletManager
These will be used to retrieve and set deliver args across system resets (which are currently implemented as complete restarts)
* applet_manager: Implement DeliverArg
`flags` was added to `ApplicationJumpParameters` as flags 0x2 is handled differently from 0x0.
* service/apt: Add ReceiveDeliverArg, implement GetStartupArgument
Some based on guesses.
* Address review comments
Quite a few service functions are stubbed but still pop all their
arguments, which can lead to unused variable warnings.
We can mark the unused arguments with [[maybe_unused]] to silence these
warnings until a full implementation of these functions are made.
Allows interfaces to move the vector into the calls, avoiding any
reallocations.
Many existing call sites already std::move into the parameter, expecting
a move to occur. Only a few remain where this wasn't already
being done, which we can convert over.
This one is similar to the ReceiveCaptureBufferInfo function except it doesn't clear the capture buffer, according to 3dbrew.
This function is used by the Home Menu
The Home Menu uses this to determine whether it is allowed to launch an app (call StartApplication)
This is a no-op for us, we allow any and all titles to be launched. The official APT module holds a list of some forbidden titles like some versions of IronFall and Flipnote Studio 3D.
They are called by the Home Menu during initialization.
These functions will not see much use until we actually implement application jumping and system rebooting. For now we just need them to prevent some unmapped reads in the Home Menu due to the static buffers not being properly set up.
* Kernel: reimplement memory management on physical FCRAM
* Kernel/Process: Unmap does not care the source memory permission
What game usually does is after mapping the memory, they reprotect the source memory as no permission to avoid modification there
* Kernel/SharedMemory: zero initialize new-allocated memory
* Process/Thread: zero new TLS entry
* Kernel: fix a bug where code segments memory usage are accumulated twice
It is added to both misc and heap (done inside HeapAlloc), which results a doubled number reported by svcGetProcessInfo. While we are on it, we just merge the three number misc, heap and linear heap usage together, as there is no where they are distinguished.
Question: is TLS page also added to this number?
* Kernel/SharedMemory: add more object info on mapping error
* Process: lower log level; SharedMemory: store phys offset
* VMManager: add helper function to retrieve backing block list for a range
Two functional change:
QueryProcessMemory uses the process passed from handle instead current_process
Thread::Stop() uses TLS from owner_process instead of current_process