| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Removes all remaining usages of the global system instance. After this,
migration can begin to migrate to being constructed and managed entirely
by the various frontends.
|
|
|
|
| |
- Used by Animal Cross: New Horizons v1.6.0 update, minimal stub gets this update working.
|
|\
| |
| | |
core: Remove usage of unicorn
|
| |
| |
| |
| |
| |
| |
| |
| | |
Unicorn long-since lost most of its use, due to dynarmic gaining support
for handling most instructions. At this point any further issues
encountered should be used to make dynarmic better.
This also allows us to remove our dependency on Python.
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library.
The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data.
To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library.
Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header.
Async GPU is not properly implemented at the moment.
Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
|
|
|
|
| |
Resolves the clang build issue in a more unintrusive way.
|
| |
|
|\
| |
| | |
core: Fix clang build
|
| |
| |
| |
| |
| |
| |
| | |
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.
Fixes #4795
|
|/
|
|
| |
Same behavior, minus a script variable.
|
|
|
|
|
|
|
|
|
| |
Makes our error coverage a little more consistent across the board by
applying it to Linux side of things as well. This also makes it more
consistent with the warning settings in other libraries in the project.
This also updates httplib to 0.7.9, as there are several warning
cleanups made that allow us to enable several warnings as errors.
|
|\
| |
| | |
Project Mjölnir: Part 2 - Controller Applet
|
| |
| |
| |
| | |
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
| |
| |
| |
| |
| |
| | |
This abstraction allows executing blocking functions (like recvfrom on a
socket configured for blocking) without blocking the service thread.
It is intended to be used with SleepClientThread.
|
|/
|
|
|
| |
These functions translate from Network enumerations/structures to guest
enumerations/structures and viceversa.
|
|
|
|
|
|
|
|
|
|
| |
This commit adds a network abstraction designed to implement bsd:s but
at the same time work as a generic abstraction to implement any
networking code we have to use from core.
This is implemented on top of BSD sockets on Unix systems and winsock on
Windows. The code is designed around winsocks having compatibility
definitions to support both BSD and Windows sockets.
|
|
|
|
| |
Allows this header file to show up in IDE CMake generators.
|
| |
|
|
|
|
| |
Supersedes #4068 see for details.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host
Timing, Reworks the Kernel's Scheduler, Introduce Idle State and
Suspended State, Recreates the bootmanager, Initializes Multicore
system.
|
|\
| |
| | |
Implement SpinLocks, Fibers and a Host Timer
|
| | |
|
|/
|
|
| |
Fixes compilation when trying to build without boxcat enabled
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Remove git submodules that will be loaded through conan
* Move custom Find modules to their own folder
* Use conan for downloading missing external dependencies
* CI: Change the yuzu source folder user to the user that the containers run on
* Attempt to remove dirty mingw build hack
* Install conan on the msvc build
* Only set release build type when using not using multi config generator
* Re-add qt bundled to workaround an issue with conan qt not downloading prebuilt binaries
* Add workaround for submodules that use legacy CMAKE variables
* Re-add USE_BUNDLED_QT on the msvc build bot
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
- This will be used for TLS pages, among other things.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Neither core nor web_services use OpenSSL nor LibreSSL.
However they need to link them as it's a requirement of httplib.
So let's declare this within httplib instead of core and web_services.
|
|\
| |
| | |
Refactor Context management (Fixes renderdoc on opengl issues)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Changes the GraphicsContext to be managed by the GPU core. This
eliminates the need for the frontends to fool around with tricky
MakeCurrent/DoneCurrent calls that are dependent on the settings (such
as async gpu option).
This also refactors out the need to use QWidget::fromWindowContainer as
that caused issues with focus and input handling. Now we use a regular
QWidget and just access the native windowHandle() directly.
Another change is removing the debug tool setting in FrameMailbox.
Instead of trying to block the frontend until a new frame is ready, the
core will now take over presentation and draw directly to the window if
the renderer detects that its hooked by NSight or RenderDoc
Lastly, since it was in the way, I removed ScopeAcquireWindowContext and
replaced it with a simple subclass in GraphicsContext that achieves the
same result
|
|/
|
|
|
|
|
| |
* Organize capture services into individual files
* Stub GetAlbumContentsFileListForApplication
* Address feedback
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This commit instends on better naming the new purpose of this classes.
|
|
|
|
| |
This commit moves ARM Interface and Scheduler handling into the kernel.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Migrates all of the direct mapping facilities over to the new memory
class. In the process, this also obsoletes the need for memory_setup.h,
so we can remove it entirely from the project.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Quite frequently there have been cases where code has been merged into
the core that produces warning. In order to prevent this from occurring,
we can make the compiler flag these cases and allow our CI to flag down
any code that would generate these warnings.
This is beneficial given silent conversions from signed/unsigned can
result in logic bugs. This forces one writing changes to be explicit
about when signedness conversions are desirable, rather than leaving it
up to readers' interpretation.
Currently the codebase isn't in a state where it will build successfully
with this change applied, but this will be addressed in subsequent
follow-up changes. This set of changes will focus on making it build
properly with these changes for MSVC as a starting point for basic
coverage.
|
| |
|
|\
| |
| | |
lm: Rewrite logger to use core reporting services
|
| |
| |
| | |
Allows centralized control over logging mechanisms.
|
|/ |
|
|
|
|
|
| |
This reverts commit fa1c60c33ef88c6cd0b72da46842dc9098db712d, reversing
changes made to e34899067b60a69bca02761bd1290c6824bb559a.
|
|\
| |
| | |
cheat_engine: Use Atmosphere's Cheat VM and fix cheat crash
|
| |
| |
| | |
This is to go with the Atmosphere VM port, now it just contains the callbacks needed for the interface between DmntCheatVm and yuzu, along with the cheat parsers.
|
|/ |
|
|\
| |
| | |
system_archive: Add open-source reimplementation of MiiModel data
|
| | |
|
|\ \
| |/
|/| |
Implement GPU Synchronization Mechanisms & Correct NVFlinger
|
| | |
|
| | |
|
|\ \
| | |
| | | |
hid:StartLrAssignmentMode, hid:StopLrAssignmentMode, hid:SwapNpadAssignment
|
| | |
| | |
| | |
| | | |
StartLrAssignmentMode and StopLrAssignmentMode don't require any implementation as it's just used for showing the screen of changing the controller orientation if the user wishes to do so. Ever since #1634 this has not been needed as users can specify the controller orientation from the config and swap at any time. We store a private member just in case this gets used for anything extra in the future
|
|\ \ \
| |_|/
|/| | |
apm: Initial implementation of performance config and boost mode
|
| | | |
|
|\ \ \
| | | |
| | | | |
Implemented InitializeApplicationInfo & InitializeApplicationInfoRestricted
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
Implement Time::GetSharedMemoryNativeHandle
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This PR attempts to implement the shared memory provided by GetSharedMemoryNativeHandle. There is still more work to be done however that requires a rehaul of the current time module to handle clock contexts. This PR is mainly to get the basic functionality of the SharedMemory working and allow the use of addition to it whilst things get improved on.
Things to note:
Memory Barriers are used in the SharedMemory and a better solution would need to be done to implement this. Currently in this PR I’m faking the memory barriers as everything is sync and single threaded. They work by incrementing the counter and just populate the two data slots. On data reading, it will read the last added data.
Specific values in the shared memory would need to be updated periodically. This isn't included in this PR since we don't actively do this yet. In a later PR when time is refactored this should be done.
Finally, as we don't handle clock contexts. When time is refactored, we will need to update the shared memory for specific contexts. This PR does this already however since the contexts are all identical and not separated. We're just updating the same values for each context which in this case is empty.
Tiime:SetStandardUserSystemClockAutomaticCorrectionEnabled, Time:IsStandardUserSystemClockAutomaticCorrectionEnabled are also partially implemented in this PR. The reason the implementation is partial is because once again, a lack of clock contexts. This will be improved on in a future PR.
This PR closes issue #2556
|
|\ \ \ \
| |_|_|/
|/| | | |
Implemented INotificationService
|
| |/ / |
|
|\ \ \
| |_|/
|/| | |
memory: Add class to manage and enforce memory freezing
|
| | | |
|
| | | |
|
| | | |
|
| |/
|/|
| |
| | |
Manages mapping between title IDs and application launch and control properties.
|
|\ \
| | |
| | | |
loader, file_sys: Add support for parsing and loading KIP (Kernel Internal Process) files
|
| | | |
|
| | | |
|
|\ \ \
| |_|/
|/| | |
core: Add detailed local reporting feature for development
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
These source files have been unused for the entire lifecycle of the
project. They're a hold-over from Citra and only add to the build time
of the project, so they can be removed.
There's also likely no way this would ever work in yuzu in its current
form without revamping quite a bit of it, given how different the GPU on
the Switch is compared to the 3DS.
|
| | | |
|
|\ \ \
| |_|/
|/| | |
Implement/Fix IApplicationFunctions::GetDesiredLanguage
|
| | | |
|
| |/ |
|
|/
|
| |
Since the MiiManager was designed around the IPC interface, this is quite easy. Only functions that were clearly defined were implemented.
|
| |
|
| |
|
|\
| |
| | |
core/hle/kernel: Split transfer memory handling out into its own class
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Within the kernel, shared memory and transfer memory facilities exist as
completely different kernel objects. They also have different validity
checking as well. Therefore, we shouldn't be treating the two as the
same kind of memory.
They also differ in terms of their behavioral aspect as well. Shared
memory is intended for sharing memory between processes, while transfer
memory is intended to be for transferring memory to other processes.
This breaks out the handling for transfer memory into its own class and
treats it as its own kernel object. This is also important when we
consider resource limits as well. Particularly because transfer memory
is limited by the resource limit value set for it.
While we currently don't handle resource limit testing against objects
yet (but we do allow setting them), this will make implementing that
behavior much easier in the future, as we don't need to distinguish
between shared memory and transfer memory allocations in the same place.
|
|\ \
| | |
| | | |
set_sys: Implement GetFirmwareVersion(2) for libnx hosversion
|
| |/
| |
| | |
Uses the synthesized system archive 9 (SystemVersion) and reports v5.1.0-0.0
|
|\ \
| | |
| | | |
file_sys: Implement parser and interpreter for game memory cheats
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Given this is utilized by the loaders, this allows avoiding inclusion of
the kernel process definitions where avoidable.
This also keeps the loading format for all executable data separate from
the kernel objects.
|
| | |
| | |
| | |
| | | |
Given the class is now currently unused, it can be removed.
|
| |/
|/| |
|
|/
|
|
|
|
|
| |
Places all error codes in an easily includable header.
This also corrects the unsupported error code (I accidentally used the
hex value when I meant to use the decimal one).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are more closely related to the vi service as opposed to the
intermediary nvflinger.
This also places them in their relevant subfolder, as future changes to
these will likely result in subclassing to represent various displays
and services, as they're done within the service itself on hardware.
The reasoning for prefixing the display and layer source files is to
avoid potential clashing if two files with the same name are compiled
(e.g. if 'display.cpp/.h' or 'layer.cpp/.h' is added to another service
at any point), which MSVC will actually warn against. This prevents that
case from occurring.
This also presently coverts the std::array introduced within
f45c25aabacc70861723a7ca1096a677bd987487 back to a std::vector to allow
the forward declaration of the Display type. Forward declaring a type
within a std::vector is allowed since the introduction of N4510
(http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html) by
Zhihao Yuan.
|
|
|
|
|
|
|
|
|
|
|
|
| |
A holdover from citra, the Horizon kernel on the switch has no
prominent kernel object that functions as a timer. At least not
to the degree of sophistication that this class provided.
As such, this can be removed entirely. This class also wasn't used at
all in any meaningful way within the core, so this was just code sitting
around doing nothing. This also allows removing a few things from the
main KernelCore class that allows it to use slightly less resources
overall (though very minor and not anything really noticeable).
|
| |
|
|\
| |
| | |
applets: Implement HLE web browser applet (LibAppletOff)
|
| | |
|
| | |
|
|\ \
| |/
|/| |
Print backtrace on svcBreak
|
| | |
|
|\ \
| | |
| | | |
kernel: Handle kernel capability descriptors
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We've had the old kernel capability parser from Citra, however, this is
unused code and doesn't actually map to how the kernel on the Switch
does it. This introduces the basic functional skeleton for parsing
process capabilities.
|
|\ \ \
| |/ /
|/| | |
am: Implement HLE profile selector applet
|
| | |
| | |
| | | |
Presents profiles in a list, similar to switch.
|
| | |
| | |
| | | |
Responsible for selecting a profile and firing callback upon completion.
|
|\ \ \
| |/ /
|/| | |
file_sys: Implement open source system archives
|
| | | |
|
| |/
|/|
| |
| | |
More hardware accurate. On the actual system, there is a differentiation between the signaler and signalee, they form a client/server relationship much like ServerPort and ClientPort.
|
|\ \
| | |
| | | |
applets: Add StubApplet and use it as fallback when AppletId is not implemented
|
| | |
| | |
| | |
| | | |
This will log all data it receives, log all calls to its methods and push dummy data into both channels on execution.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| | |
Provides a middleman between the Frontend provider class and the expected AM::Applets::Applet class needed by ILibraryAppletAccessor
|
| |
| |
| | |
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.
|
|/
|
| |
Adds an Initialize and Execute methods which are used by the ILibraryAppletAccessor to start and control the applet.
|
|\
| |
| | |
psm: Add psm service and stub commands 0 and 1
|
| |
| |
| |
| | |
Seems to be the power controller. Listed in switchbrew under the category PTM services.
|
| | |
|
|/
|
|
| |
Added based off information provided by Switchbrew.
|
|\
| |
| | |
"Better Hid" Rework Part 1
|
| | |
|
|\ \
| | |
| | | |
web_service: Make linkage of web_service-related externals and the library private
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Now that all external dependencies are hidden, we can remove
json-headers from the publically linked libraries, as the use of this
library is now completely hidden from external users of the web_service
library. We can also make the web_services library private as well,
considering it's not a requirement. If a library needs to link in
web_service, it should be done explicitly -- not via indirect linking.
|
| |/
| |
| |
| |
| | |
Avoids introducing the definition to the whole directory space and
localizes it to being added to the library that needs it.
|
| |
| |
| |
| | |
Keeps track of system files for key derivation
|
|/
|
|
| |
Derives titlekeys
|
|\
| |
| | |
Port web_service from Citra
|
| | |
|
| | |
|
|/
|
|
| |
While PatchExeFS operated on the entire directory, this function operates on the uncompressed NSO. Avoids copying decompression code to PatchManager.
|
| |
|
| |
|
|
|
|
| |
Always returns the template argument byte for all reads. Doesn't support writes.
|
|
|
|
|
|
| |
* Add open-source shared fonts
* Address review comments
|
| |
|
| |
|
| |
|
|\
| |
| | |
New account backend to allow for future extended support
|
| | |
|
|\ \
| | |
| | | |
file_sys: Add support for registration format
|
| |/ |
|
|/ |
|
|
|
|
| |
These files are no longer used, so we can get rid of them.
|
|
|
|
| |
Adds basic skeleton for the usb services based off the information provided by Switch Brew.
|
|
|
|
|
| |
Adds the basic skeleton of the arp services based off the information
provided by Switch Brew.
|
|\
| |
| | |
XCI and Encrypted NCA Support
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
core/memory: Get rid of 3DS leftovers
|
| | |
| | |
| | |
| | | |
Removes leftover code from citra that isn't needed.
|
|\ \ \
| |/ /
|/| | |
service: Add migration services
|
| | |
| | |
| | |
| | |
| | | |
Adds the basic skeleton for the mig:usr service based off information
provided by Switch Brew.
|
|\ \ \
| | | |
| | | | |
kernel: Move object class to its own source files
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
General moving to keep kernel object types separate from the direct
kernel code. Also essentially a preliminary cleanup before eliminating
global kernel state in the kernel code.
|
|\ \ \
| | | |
| | | | |
hw: Remove unused files
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
None of these files are used in any meaningful way. They're just
leftovers from citra. Also has the benefit of getting rid of an unused
global variable.
|
|/ /
| |
| |
| |
| | |
Adds the basic skeleton for the psc services based off the information
provided by Switch Brew.
|
|\ \
| | |
| | | |
service: Add capture services
|
| |/
| |
| |
| |
| | |
Adds the basic skeleton for the capture services based off information
provided by Switch Brew.
|
|\ \
| | |
| | | |
service/filesystem: Add fsp:ldr and fsp:pr services
|
| |/
| |
| |
| |
| | |
Adds the basic skeleton for the remaining fsp services based off
information provided by Switch Brew.
|
|/
|
|
|
| |
Adds the basic skeleton for the remaining pcv-related services based off
information on Switch Brew.
|
|\
| |
| | |
kernel: Remove unused object_address_table.cpp/.h
|
| |
| |
| |
| |
| |
| | |
These source files were entirely unused throughout the rest of the
codebase. This also has the benefit of getting rid of a global variable
as well.
|
| |
| |
| |
| |
| | |
Adds the missing audctl service, as well as the :a and :d services for
audin, audout, audrec, and audren.
|
|\ \
| | |
| | | |
service: Add fgm services
|
| |/
| |
| |
| |
| | |
Adds the basic skeleton for the fgm services based off the information
provided by Switch Brew.
|
|\ \
| | |
| | | |
service/am: Add missing am services
|
| |/
| |
| |
| |
| | |
Adds the basic skeleton for missing am services idle:sys, omm, and spsm
based off the information provided by Switch Brew.
|
|/
|
|
|
| |
Adds the basic skeleton of the pcie service based off information on
Switch Brew.
|
| |
|
|\
| |
| | |
service: Add wlan services
|
| |
| |
| |
| |
| | |
Adds the basic skeleton for the wlan services based off the information
on Switch Brew.
|
|/
|
|
|
| |
Adds the skeleton for the btm services based off the information on
Switch Brew.
|
|\
| |
| | |
service: Add ncm services
|
| |
| |
| |
| |
| | |
Adds the basic skeleton for the ncm services based off information on
Switch Brew.
|
|\ \
| | |
| | | |
service: Add mii services
|
| | |
| | |
| | |
| | |
| | | |
Adds the skeleton for the mii services based off information provided by
Switch Brew
|
|\ \ \
| | | |
| | | | |
Initial implementation of Audio Core
|
| | |/
| |/| |
|
|/ / |
|
|\ \
| | |
| | | |
service: Add nfc services
|
| |/
| |
| |
| |
| | |
Adds the skeleton of the nfc service based off the information provided
on Switch Brew.
|
|\ \
| | |
| | | |
service: Add the lbl service
|
| |/
| |
| |
| |
| | |
Adds the skeleton of the lbl service based off the information provided
by Switch Brew.
|
|\ \
| |/
|/| |
service: Add the btdrv service
|
| |
| |
| |
| | |
Adds the skeleton for the btdrv service based off the information provided by Switch Brew
|
| | |
|
|/ |
|
|\
| |
| | |
service: Add the grc:c service
|
| |
| |
| |
| |
| | |
Adds the basic skeleton for the grc:c service based off the information
provided by Switch Brew.
|
|\ \
| | |
| | | |
service: Add the nim services
|
| |/
| |
| |
| |
| | |
Adds the skeleton for the nim services based off information from Switch
Brew.
|
|\ \
| | |
| | | |
service: Add ldn services
|
| |/
| |
| |
| | |
Adds ldn services based off information provided by Switch Brew.
|
|/ |
|
|\
| |
| | |
service: Add ldr services
|
| |
| |
| |
| |
| | |
Adds the skeleton for the ldr-related services based off the information
provided on Switch Brew.
|
|\ \
| | |
| | | |
service: Add erpt and eupld services
|
| | |
| | |
| | |
| | |
| | | |
Adds the skeleton for the eupld services based off information on Switch
Brew.
|
| | |
| | |
| | |
| | |
| | | |
Adds the basic skeleton of the erpt service based off information on
Switch Brew.
|
|\ \ \
| |_|/
|/| | |
service/nifm: Deduplicate interface code
|
| | |
| | |
| | |
| | |
| | | |
Rather than having the same code for each nifm service variant, we can
centralize it on one class and get rid of a bit of extra code.
|
|\ \ \
| |_|/
|/| | |
service: Add pm services
|
| |/
| |
| |
| |
| | |
Adds the skeleton for the process management services based off
information on Switch Brew.
|
|/
|
|
|
| |
Adds the skeleton for the ETicket service based off the information on
Switch Brew
|
|\
| |
| | |
time: Add the time:a service
|
| |
| |
| |
| | |
We can use one instance of the interface instead of duplicating code.
|
|\ \
| | |
| | | |
core_timing: Split off utility functions into core_timing_util
|
| | | |
|
| |/ |
|
|/ |
|
|\
| |
| | |
hle: Remove unused config_mem and shared_page source files
|
| |
| |
| |
| |
| | |
This is just an unused hold-over from citra, so we can get rid of this
to trim off an exposed global, among other things.
|
| |
| |
| |
| | |
This is a holdover from citra that's essentially unused.
|
|/
|
|
|
|
| |
Cleanup
Review fixes
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Virtual Filesystem
* Fix delete bug and documentate
* Review fixes + other stuff
* Fix puyo regression
|
|
|
|
| |
This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add VfsFile and VfsDirectory classes
* Finish abstract Vfs classes
* Implement RealVfsFile (computer fs backend)
* Finish RealVfsFile and RealVfsDirectory
* Finished OffsetVfsFile
* More changes
* Fix import paths
* Major refactor
* Remove double const
* Use experimental/filesystem or filesystem depending on compiler
* Port partition_filesystem
* More changes
* More Overhaul
* FSP_SRV fixes
* Fixes and testing
* Try to get filesystem to compile
* Filesystem on linux
* Remove std::filesystem and document/test
* Compile fixes
* Missing include
* Bug fixes
* Fixes
* Rename v_file and v_dir
* clang-format fix
* Rename NGLOG_* to LOG_*
* Most review changes
* Fix TODO
* Guess 'main' to be Directory by filename
|
| |
|
|\
| |
| | |
svc: Fully implement svcSignalToAddress and svcWaitForAddress
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Start to add NCA support in loader
* More nca stuff
* More changes to nca.cpp
* Now identifies decrypted NCA cont.
* Game list fixes and more structs and stuff
* More updates to Nca class
* Now reads ExeFs (i think)
* ACTUALLY LOADS EXEFS!
* RomFS loads and games execute
* Cleanup and Finalize
* plumbing, cleanup and testing
* fix some things that i didnt think of before
* Preliminary Review Changes
* Review changes for bunnei and subv
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Prevents creating multiple copies of the vtable in every translation unit that uses the class.
Also silences a -Wweak-vtables warning
|
|\ |
|
| |
| |
| |
| | |
PCTL::CreateServiceWithoutInitialize and IParentalControlService::Initialize, required by Kirby Star Allies
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
service: Initialize NFP service.
Log: Add NFP service as a log subtype.
|
| |
|
|\
| |
| | |
FS: Implemented access to the SD card
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* FinishInitalize needed for 3.0.1+ games
* nvdrv:s and nvdrv:t both use NVDRV
* Most settings return 0 on hardware, disabled NV_MEMORY_PROFILER for now.
NVN_THROUGH_OPENGL & NVRM_GPU_PREVENT_USE are a few interesting settings to look at. Carefully choosing settings can help with drawing graphics later on
* Initial /dev/nvhost-gpu support
* ZCullBind
* Stubbed SetErrorNotifier
* Fixed SetErrorNotifier log, Added SetChannelPriority
* Allocate GPFIFO Ex2, Allocate Obj Ctx, Submit GPFIFO
* oops
* Fixed up naming/structs/enums. Used vector instead of array for "gpfifo_entry"
* Added missing fixes
* /dev/nvhost-ctrl-gpu
* unneeded struct
* Forgot u32 in enum class
* Automatic descriptor swapping for ioctls, fixed nvgpu_gpu_get_tpc_masks_args being incorrect size
* nvdrv#QueryEvent
* Renamed logs for nvdrv
* Refactor ioctl so nv_result isn't needed
* /dev/nvhost-as-gpu
* Fixed Log service naming, CtxObjects now u32, renamed all structs, added static_asserts to structs, used INSERT_PADDING_WORDS instead of u32s
* nvdevices now uses "Ioctl" union,
* IoctlGpfifoEntry now uses bit field
* final changes
|
| |
|
|
|
|
|
|
| |
* Add AppletAE, step 1: move common interfaces to am.h
* Add AppletAE, step 2
|
| |
|
|
|
| |
sfdnsres: Add several stubs
|
|\
| |
| | |
memory: Replace all memory hooking with Special regions
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
* stubs for audout:u, audin:u, audrec:u, audren:u, codecctl and decoding tables with nullptr for future implementations
* fixing the changes requested (remove private, explicit)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Added nvmemp, Added /dev/nvhost-ctrl, SetClientPID now stores pid
* used clang-format-3.9 instead
* lowercase pid
* Moved nvmemp handlers to cpp
* Removed unnecessary logging for NvOsGetConfigU32. Cleaned up log and changed to LOG_DEBUG
* using std::arrays instead of c arrays
* nvhost get config now uses std::array completely
* added pid logging back
* updated cmakelist
* missing includes
* added array, removed memcpy
* clang-format6.0
|
| | |
|
| |
| |
| |
| | |
file_sys: Add factory class for RomFS file system.
|
| | |
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Port citra #3352 to yuzu
This change allows non x86_64 architectures to compile yuzu by skipping the building of dynarmic
* Fixed clang-format errors
* fixes more clang-format errors
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Stubs for various acc:u0 funcs needed
* Stub for GetDesiredLanguage in IApplicationFunctions
* Add set service + stubs needed for games
* Fix formatting
* Implement IProfile, IManagerForApplication, return bool in CheckAvailability, style fixes
* Remove IProfile::Get(needs more research), fix IPC response sizes
|
|\
| |
| | |
time: Refactor time:* to use a single shared module
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* bsd: start stubbing bsd:u and sfdnsres
* bsd: stubbed RegisterClient
* bsd: attempt to get past socket()
* bsd: fix some wrong assumptions about IPC
* bsd: fix format specifiers
* bsd: stubbed Connect()
* bsd: stubbed SendTo()
* made requested changes
* sockets: respect alphabetical order at service installation
* run clang-format
* bsd: start stubbing bsd:u and sfdnsres
* bsd: stubbed RegisterClient
* bsd: attempt to get past socket()
* bsd: fix some wrong assumptions about IPC
* bsd: fix format specifiers
* bsd: stubbed Connect()
* bsd: stubbed SendTo()
* made requested changes
* sockets: respect alphabetical order at service installation
* run clang-format
* run clang-format (2)
|
|
|
|
|
| |
Removes the need to store to separate SRC and HEADER variables, and then
construct the target in most cases.
|
|\
| |
| | |
Implement Pull #3093 from citra: Added missing headers to CMakeLists.txt and fixed includes.
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
The homebrew display test application now properly writes graphics data to the graphics buffer but we still don't have a way to compose the display layers.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
# Conflicts:
# src/core/CMakeLists.txt
# src/core/arm/dynarmic/arm_dynarmic.cpp
# src/core/arm/dyncom/arm_dyncom.cpp
# src/core/hle/kernel/process.cpp
# src/core/hle/kernel/thread.cpp
# src/core/hle/kernel/thread.h
# src/core/hle/kernel/vm_manager.cpp
# src/core/loader/3dsx.cpp
# src/core/loader/elf.cpp
# src/core/loader/ncch.cpp
# src/core/memory.cpp
# src/core/memory.h
# src/core/memory_setup.h
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* loader/ncch: split NCCH parsing into its own file
* loader/ncch: add support for loading update NCCHs from the SD card
* loader/ncch: fix formatting
* file_sys/ncch_container: Return a value for OpenFile
* loader/ncch: cleanup, always instantiate overlay_ncch to base_ncch
* file_sys/ncch_container: better encryption checks, allow non-app NCCHs to load properly and for the existence of NCCH structures to be checked
* file_sys/ncch_container: pass filepath as a const reference
|
| |\
| | |
| | | |
Services/NS: Port ns:s to the new service framework.
|
| | | |
|
| |\ \
| | |/
| |/| |
Services/UDS: Handle beacon frames and the basic AP connection sequence frames.
|
| | | |
|
| |\ \
| | | |
| | | | |
Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).
|
| | | |
| | | |
| | | |
| | | | |
This mutex is acquired in SVC::CallSVC, ie, as soon as the guest application enters the HLE kernel, and should be acquired by the aforementioned threads before modifying kernel structures.
|
| |\ \ \
| | | | |
| | | | | |
Refactor MotionEmu into a InputDevice
|
| | |/ / |
|
| |/ /
| | |
| | |
| | |
| | | |
* Network: Set and send the game information over enet
Added Callbacks for RoomMember and GetMemberList to Room in preparation for web_services.
|
| | | |
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
load shared font from system archive
|
| | | |
|
| | | |
|
| |/
|/| |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old "Interface" class had a few problems such as using free
functions (Which didn't allow you to write the service handler as if it
were a regular class.) which weren't very extensible. (Only received one
parameter with a pointer to the Interface object.)
The new ServiceFramework aims to solve these problems by working with
member functions and passing a generic context struct as parameter. This
struct can be extended in the future without having to update all
existing service implementations.
|
|
|
|
| |
Also enhances the GetServiceHandle implementation to be more accurate.
|
|
|
|
|
| |
This will contain the implementation of the sm (Service Manager) system
module.
|
|
|
|
|
| |
Most of the code that works with this is or will be in the kernel, so
it's a more appropriate place for it to be.
|
|\
| |
| | |
Split-up kernel.h
|
| | |
|
| |
| |
| |
| |
| | |
Now that HandleTable doesn't directly depend on WaitObject anymore, this
can be separated from the main kernel.h header.
|
| |
| |
| |
| | |
Dynarmic already adds the correct include paths to the library target.
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
| |
Modules didn't correctly define their dependencies before, which relied
on the frontends implicitly including every module for linking to
succeed.
Also changed every target_link_libraries call to specify visibility of
dependencies to avoid leaking definitions to dependents when not
necessary.
|
|
|
|
|
| |
video_core didn't even properly use them, and they were the source of
many otherwise-unnecessary dependencies from core to video_core.
|
|
|
|
|
|
| |
This removes a dependency inversion between core and common. It's also
the proper place for the file since it makes screen layout decisions
specific to the 3DS.
|
|\
| |
| | |
Decentralize ResultCode
|
| | |
|
|/ |
|
|\
| |
| | |
Kernel: Properly update port counters on session disconnection.
|
| |
| |
| |
| | |
Reduce the associated port's connection count when a ServerSession is destroyed.
|
|\ \
| | |
| | | |
Services/UDS: Generate 802.11 beacon frames when a network is open.
|
| |/ |
|
| |
| |
| |
| |
| |
| | |
Had licensing issue around it, in addition to several bugs.
Closes #1632, #1280
|
| | |
|
|/ |
|
|
|
|
|
|
|
| |
1. removed zl, zr and c-stick from HID::PadState. They are handled by IR, not HID
2. removed button handling in EmuWindow
3. removed key_map
4. cleanup #include
|
| |
|
|\
| |
| | |
Replace built-in Profiler with indicators in status bar
|
| | |
|
|\ \
| |/
|/| |
APT: implemented Wrap and Unwrap
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|\
| |
| | |
IPC helper
|
| | |
|
|\ \
| | |
| | | |
arm_dynarmic: Coprocessor support
|
| | | |
|
|/ /
| |
| |
| | |
This allows Phoenix Wright - Dual Destinies to boot.
|
|\ \
| | |
| | | |
CAM: build the service framework with a dummy implementation
|
| |/ |
|
|\ \
| | |
| | | |
Service/AC: add ac:i service
|
| |/ |
|
|/ |
|
|
|
|
| |
* Removes circular dependences (common should not depend on core)
|
| |
|
| |
|
| |
|
|\
| |
| | |
Service/CECD: Add cecd:ndm service
|
| | |
|
|\ \
| |/
|/| |
Service/ACT: move ACT services to folder
|
| | |
|
|\ \
| |/
|/| |
Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
All handles obtained via srv::GetServiceHandle or svcConnectToPort are references to ClientSessions.
Service modules will wait on the counterpart of those ClientSessions (Called ServerSessions) using svcReplyAndReceive or svcWaitSynchronization[1|N], and will be awoken when a SyncRequest is performed.
HLE Interfaces are now ClientPorts which override the HandleSyncRequest virtual member function to perform command handling immediately.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Adds the two New3DS-only modules.
3dbrew was used for command information.
|
| |
| |
| |
| | |
3dbrew was used for the command information.
|
| | |
|
|/ |
|
|
|
|
| |
According to the observation from game and 3dbrew "Used for accessing general NCCH data"
|
| |
|
|
|
|
| |
The error checking of SaveDataArchive is completely different from DiskArchive, so it has to be a new class instead of a subclass of DiskArchive.
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
Refactor arm_dyncom_interpreter into several files (take 2)
|
| | |
|
|\ \
| | |
| | | |
Kernel: Added ClientPort and ServerPort classes, along with svcCreatePort.
|
| | |
| | |
| | |
| | | |
This is part of an ongoing effort to implement support for multiple processes.
|
| | | |
|
| |/
|/|
| |
| |
| | |
To facilitate the split, some small changes were made to names of
various structures and functions.
|
|/
|
|
|
|
| |
Specifically, dlp::CLNT and dlp::FKCL
Moves them to their own folder like with other services.
|
|
|
|
| |
Also rewrite Qt wrappers to use those.
|
|
|
|
|
|
|
|
| |
* Update ACT_U
* Create act_a.h
* Create act_a.cpp
* Add service ACT:A
* Add ACT:A source and header
* Fix wrong header
|
| |
|
| |
|
|
|
|
|
|
| |
SuspendDaemons , ResumeDaemons , OverrideDefaultDaemons
The NDM file move to /core/hle/service/ndm/ now!
|
|\
| |
| | |
HLE/Applets: Implemented a dummy Mii Selector applet.
|
| |
| |
| |
| | |
This prevents some games (like Super Mario 3D Land) from freezing when trying to launch it, however, it's not complete and won't let you go past Mii selection as the parameter structure hasn't been reverse engineered yet.
|
|/ |
|
| |
|
| |
|
|
|
|
| |
Gets rid of C-like parameter passing.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This is exposed in the GUI as a new "CiTrace Recording" widget.
Playback is implemented by a standalone 3DS homebrew application (which only runs reliably within Citra currently; on an actual 3DS it will often crash still).
|
|
|
|
| |
Currently only the SWKBD is emulated, and there's currently no way to ask the user for input, so it always returns "Subv" as the text.
|
|\
| |
| | |
Color support for Y2R
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
| |
This enables more dynamic management of the process address space,
compared to just directly configuring the page table for major areas.
This will serve as the foundation upon which the rest of the Kernel
memory management functions will be built.
|
| |
|
|
|
|
|
|
| |
Implemented svcs GetResourceLimit, GetResourceLimitCurrentValues and GetResourceLimitLimitValues.
Note that the resource limits do not currently keep track of used objects, since we have no way to distinguish between an object created by the application, and an object created by some HLE module once we're inside Kernel::T::Create.
|
| |
|
|
|
|
|
|
|
| |
memory.cpp/h contains definitions related to acessing memory and
configuring the address space
mem_map.cpp/h contains higher-level definitions related to configuring
the address space accoording to the kernel and allocating memory.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This coincidentally fixes an issue about the PTM service failing to create its SharedExtSaveData archive due to the FS service not being initialized by the time the creating code runs.
Ideally I'd like to move each process to its own folder, and have a single file per process that registers the service classes, which would be in their own files inside that folder. Then each service class would just call functions from the process to complete the commands.
|
|
|
|
|
|
| |
This should speed up compile times a bit, as well as enable more liberal
use of forward declarations. (Due to SharedPtr not trying to emit the
destructor anymore.)
|
| |
|
| |
|
|
|
|
| |
Implemented FSUser::CreateExtSaveData
|
|\
| |
| | |
Stubbed some services
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
Add some support for the shared page
|
| | |
|
| |
| |
| |
| |
| | |
cfg:s, ptm:sysm, apt:s.
apt:s is almost exactly the same as apt:u as per 3dbrew
|
|/ |
|
|\
| |
| | |
Stub the y2r:u service
|
| | |
|
|/
|
|
| |
Fixed a few warnings and cleaned up the code
|
|
|
|
|
|
|
|
| |
They will be stored in /extsavedata/SDMC and /extsavedata/NAND respectively.
Also redirect some APT_A functions to their APT_U equivalents.
Implemented the gamecoin.dat file in SharedExtSaveData in the PTM module.
Implemented formatting the savegame.
Retake a previous savegame if it exists instead of reporting them as not formatted every time a game is loaded.
|
| |
|
|
|
|
| |
Moved most of the shared CFG code there, implemented a few CFG:I functions
|
|
|
|
| |
It will be stored in the /syssavedata folder. This archive is user by various Services and possibly games via the FS:U service.
|
|
|
|
|
|
|
|
|
|
| |
The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information
Got rid of the code duplication in File and Directory
Files that deal with the host machine's file system now live in DiskFile, similarly for directories and DiskDirectory and archives with DiskArchive.
FS_U: Use the correct error code when a file wasn't found
|
|\
| |
| | |
Archive refactor
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
|/| |
Added stubs for ldr:ro, cecd:u, nim:aoc, and am:app services
|
| | |
|
| |
| |
| |
| | |
I couldn't find any information about this service...
|
| | |
|
| |
| |
| |
| | |
Apparently nothing at all is known about this service...
|
|/
|
|
|
|
|
| |
This is a first step at fixing the conceptual insanity that is our
handling of service and IPC calls. For now, interfaces still directly
derived from Session because we don't have the infrastructure to do it
properly. (That is, Processes and scheduling them.)
|
|
|
|
|
| |
ToDo: Implement svcReleaseSemaphore
* Some testing against hardware needed
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All service calls in the CTR OS return result codes indicating the
success or failure of the call. Previous to this commit, Citra's HLE
emulation of services and the kernel universally either ignored errors
or returned dummy -1 error codes.
This commit makes an initial effort to provide an infrastructure for
error reporting and propagation which can be use going forward to make
HLE calls accurately return errors as the original system. A few parts
of the code have been updated to use the new system where applicable.
One part of this effort is the definition of the `ResultCode` type,
which provides facilities for constructing and parsing error codes in
the structured format used by the CTR.
The `ResultVal` type builds on `ResultCode` by providing a container for
values returned by function that can report errors. It enforces that
correct error checking will be done on function returns by preventing
the use of the return value if the function returned an error code.
Currently this change is mostly internal since errors are still
suppressed on the ARM<->HLE border, as a temporary compatibility hack.
As functionality is implemented and tested this hack can be eventually
removed.
|
|
|
|
| |
in the service's headers
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Added license header back in. I originally removed this because I mostly rewrote the file, but meh
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixed typo (make protected member public)
Added license header back in. I originally removed this because I mostly rewrote the file, but meh
ARM: Fixed a type error in dyncom interpreter.
ARM: Updated dyncom to use unique_ptr for internal ARM state.
|
|
|
|
| |
Removed s_ prefix
|
|
|
|
| |
Uses QSettings on citra-qt, and inih on citra-cli.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Several cleanups to the buildsystem:
- Do better factoring of common libs between platforms.
- Add support to building on Windows.
- Remove Qt4 support.
- Re-sort file lists and add missing headers.
|
|
|
|
|
|
|
|
| |
AddressArbiter: Added documentation comment, fixed whitespace issue.
AddressArbiter: Fixed incorrect comment, reordered if-statement to be more clear.
SVC: Removed trailing whitespace.
|
|
|
|
| |
SharedMemory: Added optional name field for tracking known objects.
|
|
|
|
|
|
|
|
|
|
| |
Archive: Fixed brace ugliness for neobrain :)
FS: Commented out unused local variables to prevent warnings.
...But keeping them here for future use.
archive_romfs: Removed unused #include.
|
|
|
|
| |
FS: Added to CMakeLists.txt
|
| |
|
|
|
|
| |
Core: Updated CMakeLists.txt to remove directory_file_system and meta_file_system modules.
|
| |
|
|
|
|
| |
NCCH: Fixed typo in printing NCCH filename.
|
| |
|
|\
| |
| |
| |
| |
| | |
Conflicts:
src/core/hle/function_wrappers.h
src/core/hle/service/gsp.cpp
|
| | |
|
| | |
|
| | |
|
| | |
|
|\| |
|
| | |
|
| | |
|
| |\ |
|
| | | |
|
| | |
| | |
| | |
| | | |
Changes for clarity of comments, removed redundant compiler flags.
|
| | | |
|
|\ \ \
| | |/
| |/| |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |/
| |
| |
| | |
- added initial VFP code from skyeye
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
|
|