summaryrefslogtreecommitdiffstats
path: root/src/core/CMakeLists.txt (unfollow)
Commit message (Collapse)AuthorFilesLines
2024-02-25ssl: add cert storeLiam1-0/+3
2024-02-24service: hid: Move and migrate AppletResource and ActiveVibrationDeviceNarr the Reg1-0/+4
2024-02-23fs: add ISaveDataTransferProhibiter, stub FindSaveDataWithFilterLiam1-0/+2
2024-02-23aoc: Rename AOC_U to IAddOnContentManagerFearlessTobi1-2/+2
2024-02-22pctl: move IParentalControlServiceFactoryLiam1-2/+2
2024-02-22pctl: move IParentalControlServiceLiam1-0/+2
2024-02-22pctl: move types and resultsLiam1-0/+2
2024-02-22psc: stub overlay notification channelLiam1-0/+9
2024-02-22psc: move IPmControl, IPmModule, IPmServiceLiam1-0/+6
2024-02-22olsc: rewrite IOlscServiceForSystemServiceLiam1-0/+2
2024-02-22olsc: add IDaemonControllerLiam1-0/+2
2024-02-21olsc: move INativeHandleHolder, IOlscServiceForApplication, IOlscServiceForSystemService, ITransferTaskListControllerLiam1-0/+8
2024-02-21audio: split IHardwarweOpusDecoder, move IHardwareOpusDecoderManagerLiam1-2/+4
2024-02-21audio: split IAudioDevice, IAudioRenderer, move IAudioRendererManagerLiam1-4/+8
2024-02-21audio: move IFinalOutputRecorderManager{,ForApplet}Liam1-4/+4
2024-02-21audio: rewrite IAudioOutManagerLiam1-2/+2
2024-02-21audio: rewrite IAudioOutLiam1-0/+2
2024-02-21audio: rewrite IAudioInManagerLiam1-2/+2
2024-02-21audio: rewrite IAudioInLiam1-0/+2
2024-02-19fs: Add FileSystemAccessor classesFearlessTobi1-0/+4
2024-02-19Address review commentsFearlessTobi1-1/+1
2024-02-19fs: Add and use fs_save_data_types.hFearlessTobi1-0/+1
2024-02-19fsp: Move IMultiCommitManager to a seperate fileFearlessTobi1-0/+2
2024-02-19fsp: Move ISaveDataInfoReader to a seperate fileFearlessTobi1-0/+2
2024-02-19core/aoc: Move IPurchaseEventManager to separate fileFearlessTobi1-0/+2
2024-02-19core/CMakeLists: Sort alphabeticallyFearlessTobi1-60/+58
2024-02-18ns: rewrite IQueryServiceLiam1-2/+2
2024-02-18ns: rewrite IServiceGetterInterfaceLiam1-0/+2
2024-02-18ns: rewrite IApplicationManagerInterfaceLiam1-0/+2
2024-02-18ns: move IDevelopInterfaceLiam1-0/+2
2024-02-18ns: rewrite ISystemUpdateInterfaceLiam1-0/+2
2024-02-18ns: move ISystemUpdateControlLiam1-0/+2
2024-02-18ns: rewrite IVulnerabilityManagerInterfaceLiam1-0/+2
2024-02-18ns: rewrite IReadOnlyApplicationControlDataInterfaceLiam1-0/+2
2024-02-18ns: rewrite IReadOnlyApplicationRecordInterfaceLiam1-0/+2
2024-02-18ns: add IDynamicRightsInterfaceLiam1-0/+2
2024-02-18ns: rewrite IDownloadTaskInterfaceLiam1-0/+2
2024-02-18ns: rewrite IDocumentInterfaceLiam1-0/+2
2024-02-18ns: rewrite IContentManagementInterfaceLiam1-0/+2
2024-02-18ns: move IFactoryResetInterfaceLiam1-0/+2
2024-02-18ns: move IECommerceInterfaceLiam1-0/+2
2024-02-18ns: move IApplicationVersionInterfaceLiam1-0/+2
2024-02-18ns: move IAccountProxyInterfaceLiam1-0/+3
2024-02-18ns: rewrite IPlatformServiceManagerLiam1-2/+2
2024-02-18ns: rename results headerLiam1-1/+1
2024-02-18vi: manage resources independently of nvnflinger and refactorLiam1-6/+16
2024-02-18vi: move shared buffer management from nvnflingerLiam1-2/+2
2024-02-18nvnflinger: convert to processLiam1-2/+2
2024-02-18am: unify display layer managementLiam1-4/+2
2024-02-17service: audio: Rewrite IAudioController to new IPCNarr the Reg1-2/+2
2024-02-16service: btm: Migrate service to new IPCNarr the Reg1-0/+10
2024-02-14vi: rewrite IApplicationRootService, IManagerRootService, ISystemRootServiceLiam1-0/+2
2024-02-14vi: split into implementation filesLiam1-7/+16
2024-02-14vi: extract typesLiam1-0/+1
2024-02-14service: set: Migrate ISettingsServer to new interfacegerman771-0/+1
2024-02-12am: move out omm interfaces to new moduleLiam1-6/+8
2024-02-12am: rewrite IApplicationCreatorLiam1-2/+2
2024-02-12am: add IApplicationAccessorLiam1-0/+2
2024-02-12am: rewrite ILockAccessorLiam1-2/+2
2024-02-12am: rewrite IWindowControllerLiam1-2/+2
2024-02-12am: rewrite IStorageLiam1-2/+2
2024-02-12am: rewrite IStorageAccessor, ITransferStorageAccessorLiam1-2/+2
2024-02-12am: rewrite ISelfControllerLiam1-2/+2
2024-02-12am: rewrite IProcessWindingControllerLiam1-2/+2
2024-02-12am: rewrite ILibraryAppletSelfAccessorLiam1-2/+2
2024-02-12am: rewrite ILibraryAppletCreatorLiam1-2/+2
2024-02-12am: rewrite ILibraryAppletAccessorLiam1-2/+2
2024-02-12am: rewrite IHomeMenuFunctionsLiam1-2/+2
2024-02-12am: rewrite IGlobalStateController, add ICradleFirmwareUpdaterLiam1-2/+4
2024-02-12am: rewrite IDisplayControllerLiam1-2/+2
2024-02-12am: move IDebugFunctionsLiam1-2/+2
2024-02-12am: rewrite ICommonStateGetterLiam1-2/+2
2024-02-12am: rewrite IApplicationFunctionsLiam1-2/+2
2024-02-12am: rewrite IAppletCommonFunctionsLiam1-2/+2
2024-02-12am: rewrite IAudioControllerLiam1-2/+2
2024-02-12am: rewrite ISystemAppletProxyLiam1-2/+2
2024-02-12am: rewrite ILibraryAppletProxyLiam1-2/+2
2024-02-12am: rewrite IApplicationProxyLiam1-2/+2
2024-02-12am: rewrite appletAE, appletOELiam1-4/+4
2024-02-11service: ldn: Migrate and refractor service to new IPCNarr the Reg1-0/+12
2024-02-10service: bcat: Address review issuesNarr the Reg1-4/+4
2024-02-10service: bcat: Implement news interfacesNarr the Reg1-0/+12
2024-02-10service: bcat: Migrate and refractor service to new IPCNarr the Reg1-2/+15
2024-02-07service: add os types and multi wait APILiam1-4/+9
2024-01-31nvnflinger/gpu: implement layer stack compositionLiam1-0/+3
2024-01-30am: return AppletDataBroker and use for frontend appletsLiam1-0/+2
2024-01-30am: re-namespace frontend applets to frontend directoryLiam1-23/+23
2024-01-30am: add new datatypes for per-applet stateLiam1-0/+17
2024-01-30service: split am into componentsLiam1-0/+45
2024-01-27Move time services to new IPC.Kelebek11-2/+2
Add some fixes/improvements to usage with the new IPC
2024-01-25fs: Add path classFearlessTobi1-28/+13
2024-01-25vfs: Move vfs files to their own directoryFearlessTobi1-44/+67
2024-01-25fs: Move fsp_srv subclasses to separate filesFearlessTobi1-2/+11
fs: Move additional files to the fsp directory
2024-01-25service: add template serializer for method callsLiam1-0/+2
2024-01-24Rework time service to fix time passing offline.Kelebek11-35/+59
2024-01-19GPU-SMMU: Estimate game leak and preallocate device region.Fernando Sahmkow1-0/+2
2024-01-19SMMU: Initial adaptation to video_core.Fernando Sahmkow1-0/+2
2024-01-16service: set: Refractor setting serviceNarr the Reg1-8/+9
2024-01-11fsp-srv: use program registry for SetCurrentProcessLiam1-0/+4
2024-01-07service: set: Rename filesgerman771-8/+8
2024-01-05hid_core: Move hid to it's own subprojectNarr the Reg1-95/+1
2024-01-04service: hid: Implement NpadResource and NpadDataNarr the Reg1-0/+4
2023-12-31service: hid: Use applet resource to get latest shared memory handleNarr the Reg1-3/+13
2023-12-29jit: use code memory handles correctlyLiam1-0/+2
2023-12-26core: track separate heap allocation for linuxLiam1-0/+1
2023-12-16Make system settings persistent across bootsKelebek11-0/+8
2023-12-14service: hid: Allow to create multiple instances of shared memoryNarr the Reg1-2/+8
2023-12-11nce: implement instruction emulation for misaligned memory accessesLiam1-2/+6
2023-12-09ro: add separate ro serviceLiam1-0/+6
2023-12-07kernel: implement light IPCLiam1-0/+6
2023-12-07service: hid: Introduce proper AppletResource emulationNarr the Reg1-0/+2
2023-12-04core: refactor emulated cpu core activationLiam1-0/+2
2023-11-29core: Rename patcher fileGPUCode1-2/+2
2023-11-27qt: add cpu_backend configurationamazingfate1-2/+1
2023-11-25core: Define HAS_NCE macroGPUCode1-1/+2
2023-11-25arm: Implement native code execution backendLiam1-0/+16
2023-11-21service: hid: Create appropriate hid resourcesNarr the Reg1-2/+7
2023-11-17service: hid: Introduce firmware settings and update activate controller callsNarr the Reg1-0/+2
2023-11-15service: hid: Split hid.cpp into individual interfacesNarr the Reg1-0/+8
2023-11-10kernel: add KPageTableBaseLiam1-3/+3
Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk>
2023-10-30nvnflinger: use graphic buffer lifetime for map handleLiam1-0/+1
2023-10-08service: caps: Implement album manager and reorganize serviceNarr the Reg1-2/+6
2023-10-01service: nvnflinger: Implement shared bufferNarr the Reg1-0/+2
Co-authored-by: Liam <byteslice@airmail.cc>
2023-09-18cmake: prefer system renderdoc headerAlexandre Bouvier1-1/+1
2023-09-18service: mii: Implement database managergerman771-0/+2
2023-09-18service: mii: Implement figurine databasegerman771-0/+2
2023-09-16Reimplement HardwareOpusKelebek11-1/+1
2023-09-14debug: Add renderdoc capture hotkeyGPUCode1-1/+4
2023-09-14ngc: implement serviceLiam1-2/+2
2023-09-11service: mii: separate mii types into their own filegerman771-3/+11
2023-09-11service: mii: Add mii util and resultgerman771-0/+2
2023-08-15vfs: expand support for NCA readingLiam1-2/+43
2023-07-17ssl: Link with crypt32 for secure channel backendMorph1-1/+1
2023-07-08k_server_session: translate special header for non-HLE requestsLiam1-0/+1
2023-07-02Updates:comex1-0/+4
- Address PR feedback. - Add SecureTransport backend for macOS.
2023-06-26Fix more Windows build errorscomex1-1/+1
I did test this beforehand, but not on MinGW, and the error that showed up on the msvc builder didn't happen for me...
2023-06-25Implement SSL servicecomex1-0/+14
This implements some missing network APIs including a large chunk of the SSL service, enough for Mario Maker (with an appropriate mod applied) to connect to the fan server [Open Course World](https://opencourse.world/). Connecting to first-party servers is out of scope of this PR and is a minefield I'd rather not step into. ## TLS TLS is implemented with multiple backends depending on the system's 'native' TLS library. Currently there are two backends: Schannel for Windows, and OpenSSL for Linux. (In reality Linux is a bit of a free-for-all where there's no one 'native' library, but OpenSSL is the closest it gets.) On macOS the 'native' library is SecureTransport but that isn't implemented in this PR. (Instead, all non-Windows OSes will use OpenSSL unless disabled with `-DENABLE_OPENSSL=OFF`.) Why have multiple backends instead of just using a single library, especially given that Yuzu already embeds mbedtls for cryptographic algorithms? Well, I tried implementing this on mbedtls first, but the problem is TLS policies - mainly trusted certificate policies, and to a lesser extent trusted algorithms, SSL versions, etc. ...In practice, the chance that someone is going to conduct a man-in-the-middle attack on a third-party game server is pretty low, but I'm a security nerd so I like to do the right security things. My base assumption is that we want to use the host system's TLS policies. An alternative would be to more closely emulate the Switch's TLS implementation (which is based on NSS). But for one thing, I don't feel like reverse engineering it. And I'd argue that for third-party servers such as Open Course World, it's theoretically preferable to use the system's policies rather than the Switch's, for two reasons 1. Someday the Switch will stop being updated, and the trusted cert list, algorithms, etc. will start to go stale, but users will still want to connect to third-party servers, and there's no reason they shouldn't have up-to-date security when doing so. At that point, homebrew users on actual hardware may patch the TLS implementation, but for emulators it's simpler to just use the host's stack. 2. Also, it's good to respect any custom certificate policies the user may have added systemwide. For example, they may have added custom trusted CAs in order to use TLS debugging tools or pass through corporate MitM middleboxes. Or they may have removed some CAs that are normally trusted out of paranoia. Note that this policy wouldn't work as-is for connecting to first-party servers, because some of them serve certificates based on Nintendo's own CA rather than a publicly trusted one. However, this could probably be solved easily by using appropriate APIs to adding Nintendo's CA as an alternate trusted cert for Yuzu's connections. That is not implemented in this PR because, again, first-party servers are out of scope. (If anything I'd rather have an option to _block_ connections to Nintendo servers, but that's not implemented here.) To use the host's TLS policies, there are three theoretical options: a) Import the host's trusted certificate list into a cross-platform TLS library (presumably mbedtls). b) Use the native TLS library to verify certificates but use a cross-platform TLS library for everything else. c) Use the native TLS library for everything. Two problems with option a). First, importing the trusted certificate list at minimum requires a bunch of platform-specific code, which mbedtls does not have built in. Interestingly, OpenSSL recently gained the ability to import the Windows certificate trust store... but that leads to the second problem, which is that a list of trusted certificates is [not expressive enough](https://bugs.archlinux.org/task/41909) to express a modern certificate trust policy. For example, Windows has the concept of [explicitly distrusted certificates](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn265983(v=ws.11)), and macOS requires Certificate Transparency validation for some certificates with complex rules for when it's required. Option b) (using native library just to verify certs) is probably feasible, but it would miss aspects of TLS policy other than trusted certs (like allowed algorithms), and in any case it might well require writing more code, not less, compared to using the native library for everything. So I ended up at option c), using the native library for everything. What I'd *really* prefer would be to use a third-party library that does option c) for me. Rust has a good library for this, [native-tls](https://docs.rs/native-tls/latest/native_tls/). I did search, but I couldn't find a good option in the C or C++ ecosystem, at least not any that wasn't part of some much larger framework. I was surprised - isn't this a pretty common use case? Well, many applications only need TLS for HTTPS, and they can use libcurl, which has a TLS abstraction layer internally but doesn't expose it. Other applications only support a single TLS library, or use one of the aforementioned larger frameworks, or are platform-specific to begin with, or of course are written in a non-C/C++ language, most of which have some canonical choice for TLS. But there are also many applications that have a set of TLS backends just like this; it's just that nobody has gone ahead and abstracted the pattern into a library, at least not a widespread one. Amusingly, there is one TLS abstraction layer that Yuzu already bundles: the one in ffmpeg. But it is missing some features that would be needed to use it here (like reusing an existing socket rather than managing the socket itself). Though, that does mean that the wiki's build instructions for Linux (and macOS for some reason?) already recommend installing OpenSSL, so no need to update those. ## Other APIs implemented - Sockets: - GetSockOpt(`SO_ERROR`) - SetSockOpt(`SO_NOSIGPIPE`) (stub, I have no idea what this does on Switch) - `DuplicateSocket` (because the SSL sysmodule calls it internally) - More `PollEvents` values - NSD: - `Resolve` and `ResolveEx` (stub, good enough for Open Course World and probably most third-party servers, but not first-party) - SFDNSRES: - `GetHostByNameRequest` and `GetHostByNameRequestWithOptions` - `ResolverSetOptionRequest` (stub) ## Fixes - Parts of the socket code were previously allocating a `sockaddr` object on the stack when calling functions that take a `sockaddr*` (e.g. `accept`). This might seem like the right thing to do to avoid illegal aliasing, but in fact `sockaddr` is not guaranteed to be large enough to hold any particular type of address, only the header. This worked in practice because in practice `sockaddr` is the same size as `sockaddr_in`, but it's not how the API is meant to be used. I changed this to allocate an `sockaddr_in` on the stack and `reinterpret_cast` it. I could try to do something cleverer with `aligned_storage`, but casting is the idiomatic way to use these particular APIs, so it's really the system's responsibility to avoid any aliasing issues. - I rewrote most of the `GetAddrInfoRequest[WithOptions]` implementation. The old implementation invoked the host's getaddrinfo directly from sfdnsres.cpp, and directly passed through the host's socket type, protocol, etc. values rather than looking up the corresponding constants on the Switch. To be fair, these constants don't tend to actually vary across systems, but still... I added a wrapper for `getaddrinfo` in `internal_network/network.cpp` similar to the ones for other socket APIs, and changed the `GetAddrInfoRequest` implementation to use it. While I was at it, I rewrote the serialization to use the same approach I used to implement `GetHostByNameRequest`, because it reduces the number of size calculations. While doing so I removed `AF_INET6` support because the Switch doesn't support IPv6; it might be nice to support IPv6 anyway, but that would have to apply to all of the socket APIs. I also corrected the IPC wrappers for `GetAddrInfoRequest` and `GetAddrInfoRequestWithOptions` based on reverse engineering and hardware testing. Every call to `GetAddrInfoRequestWithOptions` returns *four* different error codes (IPC status, getaddrinfo error code, netdb error code, and errno), and `GetAddrInfoRequest` returns three of those but in a different order, and it doesn't really matter but the existing implementation was a bit off, as I discovered while testing `GetHostByNameRequest`. - The new serialization code is based on two simple helper functions: ```cpp template <typename T> static void Append(std::vector<u8>& vec, T t); void AppendNulTerminated(std::vector<u8>& vec, std::string_view str); ``` I was thinking there must be existing functions somewhere that assist with serialization/deserialization of binary data, but all I could find was the helper methods in `IOFile` and `HLERequestContext`, not anything that could be used with a generic byte buffer. If I'm not missing something, then maybe I should move the above functions to a new header in `common`... right now they're just sitting in `sfdnsres.cpp` where they're used. - Not a fix, but `SocketBase::Recv`/`Send` is changed to use `std::span<u8>` rather than `std::vector<u8>&` to avoid needing to copy the data to/from a vector when those methods are called from the TLS implementation.
2023-06-13core: decouple ARM interface from DynarmicLiam1-4/+5
2023-06-08core_timing: Use CNTPCT as the guest CPU tickMorph1-1/+0
Previously, we were mixing the raw CPU frequency and CNTFRQ. The raw CPU frequency (1020 MHz) should've never been used as CNTPCT (whose frequency is CNTFRQ) is the only counter available.
2023-06-05time_zone_binary: Add zoneinfo datalat9nq1-1/+1
Adds the basic time zone data for the system archive. time_zone_binary: Implement full system archive time_zone_binary: Remove unneeded template tz_binary: Make GenerateFiles static
2023-06-03vfs: add vfs_cached for romfs buildLiam1-0/+2
2023-06-03core: frontend: Refactor GraphicsContext to its own module.bunnei1-0/+1
2023-05-06service: nfc: Merge device interfaces and create the device managerNarr the Reg1-10/+11
2023-04-14service: nfp: Use an unique interfaceNarr the Reg1-2/+2
2023-03-22kernel: use KTypedAddress for addressesLiam1-0/+1
2023-03-13kernel: move KMemoryLayout for NX boardLiam1-1/+1
2023-03-13kernel: remove KLinkedListLiam1-1/+0
2023-03-07hle: rename legacy errors to ResultsLiam1-1/+0
2023-03-01nvnflinger: fix nameLiam1-29/+29
2023-03-01service: move hle_ipc from kernelLiam1-3/+3
2023-02-28cmake: use correct boost imported targetsAlexandre Bouvier1-1/+1
2023-02-27Partially apply LTO to only core and video_core projects.Matías Locatti1-0/+4
2023-02-21service: refactor server architectureLiam1-2/+4
Converts services to have their own processes
2023-02-17kernel: add KObjectNameLiam1-0/+2
2023-02-14service: remove deleted servicesLiam1-16/+0
2023-02-07kernel/svc: switch to generated wrappersLiam1-0/+1
2023-02-05kernel/svc: Split implementations into separate filesLiam1-1/+36
2023-02-01kernel: add KDeviceAddressSpaceLiam1-0/+2
2023-01-30kernel: add KCapabilitiesLiam1-0/+2
2023-01-08Revert "Revert "k_page_group: synchronize""bunnei1-0/+1
2022-12-29Revert "k_page_group: synchronize"gidoly1-1/+0
2022-12-25k_page_group: synchronizeLiam1-0/+1
2022-12-19kernel: remove TimeManagerLiam1-2/+0
2022-12-18kernel: add KHardwareTimerLiam1-0/+4
2022-12-04cmake: prefer system librariesAlexandre Bouvier1-1/+1
2022-12-02service: nfc: Implement mifare serviceNarr the Reg1-0/+2
2022-11-30CMake: Use precompiled headersameerj1-0/+5
2022-11-19service: nfc: Implement nfc userNarr the Reg1-0/+5
2022-11-13service: am: Implement cabinet applet backendgerman771-0/+4
2022-11-09Initial ARM64 supportLiam1-7/+7
2022-11-04core: hle: kernel: Add KSystemResource.bunnei1-0/+2
2022-11-04core: hle: kernel: Add KPageTableManager.bunnei1-0/+1
2022-11-04core: hle: kernel: Add KPageTableSlabHeap.bunnei1-0/+1
2022-11-04core: hle: kernel: Add KEventInfo.bunnei1-0/+1
2022-11-04core: hle: kernel: Add KDebug.bunnei1-0/+1
2022-10-22general: Enforce C4800 everywhere except in video_coreMorph1-0/+1
2022-10-22CMakeLists: Remove all redundant warningsMorph1-6/+1
These are already explicitly or implicitly set in src/CMakeLists.txt
2022-10-19kernel: add KSessionRequestLiam1-0/+2
2022-10-19core: hle: kernel: Add KDynamicResourceManager.bunnei1-0/+1
2022-10-19core: hle: kernel: Add KDynamicSlabHeap.bunnei1-0/+1
2022-10-19core: hle: kernel: Add KDynamicPageManager.bunnei1-0/+1
2022-10-13kernel: remove KWritableEventLiam1-2/+0
2022-10-06NVDRV: Further refactors and eliminate old code.Fernando Sahmkow1-2/+0
2022-10-06NVDRV: Refactor and add new NvMap.Fernando Sahmkow1-2/+6
2022-10-02service: nfp: Rewrite and implement applet callsgerman771-1/+4
2022-09-25service: hid: Partially implement palma controllerNarr the Reg1-0/+2
2022-09-09ldn: Initial implementationFearlessTobi1-0/+2
2022-09-08core/CMakeLists.txt: Remove duplicate files.SachinVin1-6/+0
2022-09-07core: nfp: Implement amiibo encryptiongerman771-0/+3
2022-09-03core: ns: Implement pl:s serviceNarr the Reg1-2/+2
2022-08-27yuzu_room: Remove dependency on coreFearlessTobi1-2/+0
2022-08-15core, network: Add ability to proxy socket packetsFearlessTobi1-0/+2
2022-08-07ldn: Add better stubs and more data typesFearlessTobi1-1/+2
Co-Authored-By: Narr the Reg <5944268+german77@users.noreply.github.com> Co-Authored-By: Morph <39850852+Morph1984@users.noreply.github.com>
2022-08-01core/loader: remove ELF loaderLiam1-2/+0
2022-08-01build(externals): rename Findopus to FindOpusAndrea Pappacoda1-1/+1
This better matches upstream's FindOpus.cmake file, and it will make using upstream's FindOpus.cmake file easier.
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda1-0/+3
[REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
2022-07-25Address first part of review commentsFearlessTobi1-5/+5
2022-07-25yuzu: Add ui files for multiplayer roomsFearlessTobi1-6/+8
2022-07-25kernel: unlayer CPU interrupt handlingLiam1-2/+0
2022-07-24service: irs: Implement clustering processorgerman771-0/+1
2022-07-24service: irs: Split processors and implement ImageTransferProcessorgerman771-0/+14
2022-07-24core: hid: Add cammera supportgerman771-0/+1
2022-06-29service: ptm: Rewrite PSM and add TSgerman771-0/+4
2022-06-27core: kernel: Replace instances of KPageLinkedList with KPageGroupgerman771-1/+1
2022-06-14CMakeLists: Make variable shadowing a compile-time errorMorph1-5/+0
Now that the entire project is free of variable shadowing, we can enforce this as a compile time error to prevent any further introduction of this logic bug.
2022-06-01core/debugger: Improved stepping mechanism and misc fixesLiam1-0/+3
2022-06-01core/debugger: Implement new GDB stub debuggerLiam1-0/+7
2022-04-16hidbus: Implement hidbus and ringcongerman771-0/+10
2022-04-13service: jit: Implement the JIT serviceLiam1-0/+2
2022-04-09core: extract symbol readingLiam1-0/+2
2022-04-07service: jit: stub JIT serviceLiam1-0/+2
2022-03-25hle: nvflinger: Merge Rect with Common::Rectangle.bunnei1-1/+0
2022-03-25hle: nvflinger: Add implementation for HosBinderDriverServer service.bunnei1-0/+2
2022-03-25hle: nvflinger: Add implementation for BufferQueueProducer class.bunnei1-2/+2
2022-03-25hle: nvflinger: Add implementation for BufferQueueCore class.bunnei1-0/+2
2022-03-25hle: nvflinger: Add implementation for BufferQueueConsumer class.bunnei1-0/+2
2022-03-25hle: nvflinger: Add implementation for QueueBufferInput and QueueBufferOutput structs.bunnei1-0/+2
2022-03-25hle: nvflinger: Add implementation for BufferItemConsumer class.bunnei1-0/+2
2022-03-25hle: nvflinger: Add implementation for ConsumerBase class.bunnei1-0/+2
2022-03-25hle: nvflinger: Add implementation for BufferSlot class.bunnei1-0/+1
2022-03-25hle: nvflinger: Add implementation for BufferItem class.bunnei1-0/+1
2022-03-25hle: nvflinger: Move implementation for Parcel to its own header.bunnei1-0/+1
2022-03-25hle: nvflinger: Add android buffer queue definitions to its own header.bunnei1-0/+1
2022-03-25hle: nvflinger: Add IBinder interface.bunnei1-0/+1
2022-03-25hle: nvflinger: Add IConsumerListener interface.bunnei1-0/+1
2022-03-25hle: nvflinger: Add ProducerListener interface.bunnei1-0/+1
2022-03-25hle: nvflinger: Add android window enumerations to its own header.bunnei1-0/+1
2022-03-25hle: nvflinger: Move BufferTransformFlags to its own header.bunnei1-0/+1
2022-03-25hle: nvflinger: Move PixelFormat to its own header.bunnei1-0/+1
2022-03-25hle: nvflinger: Add implementation for GraphicBuffer class.bunnei1-0/+1
2022-03-25hle: nvflinger: Add implementation for Fence class.bunnei1-0/+2
2022-03-25hle: nvflinger: Add implementation for Rect class.bunnei1-0/+1
2022-03-22applets/mii: Move MiiEdit applet types into its own fileMorph1-0/+1
2022-03-22applets: Rename Mii to MiiEditMorph1-4/+4
2022-03-18general: Reduce core.h includesameerj1-0/+1
2022-03-15core: hle: kernel: k_page_buffer: Add KThreadLocalPage primitive.bunnei1-0/+2
2022-03-15core: hle: kernel: k_page_buffer: Add KPageBuffer primitive.bunnei1-0/+1
2022-03-01applet: mii: Simple implementation of mii appletgerman771-0/+4
2022-02-27hle: kernel: Add initial_process.h header.bunnei1-0/+1
2022-02-27hle: kernel: board: nx: Add k_memory_layout.h header.bunnei1-0/+1
2022-02-11service/mnpp: Stub mnpp_appNarr the Reg1-0/+2
Used in Super Nintendo Entertainment System™ - Nintendo Switch Online
2022-01-15core: hle: kernel: Add KWorkerTask and KWorkerTaskManager.bunnei1-0/+3
- These primitives are used to dispatch asynchronous kernel tasks from KThread and KProcess.
2021-12-31core: hle: kernel: Implement thread pinning.bunnei1-0/+2
- We largely had the mechanics in place for thread pinning, this change hooks these up. - Validated with tests https://github.com/Atmosphere-NX/Atmosphere/blob/master/tests/TestSvc/source/test_thread_pinning.cpp.
2021-12-18core: hle: Remove global HLE lock.bunnei1-2/+0
- This was added early on as a hack to protect against some concurrency issues. - It's not clear that this serves any purpose anymore, and if it does, individual components should be fixed rather than using a global recursive mutex.
2021-12-07hle: kernel: KLightConditionVariable: Migrate to updated KThreadQueue.bunnei1-0/+1
2021-12-07hle: kernel: Update KThreadQueue and migrate KSynchronizationObject.bunnei1-0/+1
2021-12-06service/notif: Add notif:a and stub ListAlarmSettings,Initializegerman771-0/+2
Used by ring fit adventure 1.2.0
2021-12-05Add KCodeMemory to CMakeLists.txtitsmeft241-0/+2
2021-11-28core/pdm: Stub QueryPlayStatisticsByApplicationIdAndUserAccountIdNarr the Reg1-0/+2
Used in checkpoint homebrew
2021-11-25service/hid: Create ring LIFOgerman771-1/+1
2021-11-25core/hid: Add emulated controllersgerman771-0/+8
2021-11-25core/hid: Move motion_input, create input converter and hid_typesgerman771-0/+5
2021-11-25core/hid: Move input_interpreter to hidgerman771-2/+2
2021-09-29service: bcat: Remove BoxCat BCAT implementationMorph1-12/+0
The current implementation of BoxCat as it stands is non-functional due to the reliance on a server providing BCAT files. This implementation will eventually be replaced with one that allows the use of local BCAT files dumped from a Nintendo Switch.
2021-09-29externals: Remove libzipMorph1-1/+1
2021-09-29file_sys: Remove vfs_libzipMorph1-2/+0
2021-09-29Fix KShareMemory object leakFeng Chen1-0/+1
2021-09-06account: EnsureTokenIdCacheAsyncChloe Marcec1-0/+2
Closes #2547, #6946
2021-08-27ngct: Stub NGCT:U servicegerman771-0/+2
2021-08-12configuration: add option to select network interfacespholz1-0/+2
This commit renames the "Services" tab to "Network" and adds a combobox that allows the user to select the network interface that yuzu should use. This new setting is now used to get the local IP address in Network::GetHostIPv4Address. This prevents yuzu from selecting the wrong network interface and thus using the wrong IP address. The return type of Network::GetHostIPv4Adress has also been changed.
2021-07-21hle: service: Add a helper module for managing kernel objects.bunnei1-0/+2
2021-07-14service: Append service name prefix to common filenamesMorph1-22/+22
2021-07-14applets: Append applet_ prefix to backend appletsMorph1-14/+14
2021-07-06CMakeLists: Treat -Wsign-compare as an error on GCC/ClangMorph1-2/+0
Treats (un)signed comparison mismatches as errors to be consistent with MSVC
2021-06-28core: Enforce C4242Morph1-6/+3
2021-06-16hle: api_version: Add HLE API version constantsMorph1-0/+1
2021-06-16spl: Add SPL typesMorph1-0/+1
2021-06-16spl: Add SPL result codesMorph1-0/+1
2021-05-16core: Make variable shadowing a compile-time errorLioncash1-14/+12
Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely.
2021-05-06hle: kernel: Migrate to KHandleTable.bunnei1-2/+2
2021-05-06hle: kernel: Rename Process to KProcess.bunnei1-2/+2
2021-05-06hle: kernel: Remove deprecated Object class.bunnei1-2/+0
2021-05-06hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject.bunnei1-0/+2
2021-05-06hle: kernel: Migrate KServerPort to KAutoObject.bunnei1-2/+2
2021-05-06hle: kernel: Migrate KClientPort to KAutoObject.bunnei1-2/+2
2021-05-06hle: kernel: Migrate KTransferMemory to KAutoObject.bunnei1-2/+2
2021-05-06hle: kernel: Migrate KSession, KClientSession, and KServerSession to KAutoObject.bunnei1-6/+6
2021-05-06hle: kernel: Migrate more of KThread to KAutoObject.bunnei1-0/+2
2021-05-06hle: kernel: Add initial impl. of slab setup.bunnei1-0/+2
2021-05-06hle: kernel: Add initial impl. of KLinkedList.bunnei1-0/+1
2021-05-06hle: kernel: Add initial impl. of KSlabAllocated.bunnei1-0/+1
2021-05-06hle: kernel: Add initial impl. of KAutoObjectWithListContainer.bunnei1-0/+2
2021-05-06hle: kernel: Add initial impl. of KAutoObject.bunnei1-0/+2
2021-04-24glue: Add ectx:aw placeholdergerman771-0/+2
2021-04-24hid: Implement SevenSixAxis and ConsoleSixAxisSensorgerman771-0/+2
2021-04-15applets/swkbd: Implement the Normal and Inline Software Keyboard AppletMorph1-0/+1
2021-04-15common: Move settings to common from core.bunnei1-2/+0
- Removes a dependency on core and input_common from common.
2021-04-08externals: Search for shared opus installation.Markus Wick1-1/+1
We had used conan for opus before, but there was a bug in the AVX detection. However we still had the Findopus.cmake file within the repository, but not used. This patch reenables the Findopus helper and prefer the system wide installation of opus.
2021-03-21hle: kernel: k_memory_layout: Derive memory regions based on board layout.bunnei1-0/+2
2021-03-21hle: kernel: board: Add secure_monitor module.bunnei1-0/+1
2021-03-21hle: kernel: Add k_trace module.bunnei1-0/+1
2021-03-21hle: kernel: KSystemControl: Update to reflect board-specific behavior.bunnei1-1/+2
2021-03-21hle: kernel: Add initial KMemoryRegionType module.bunnei1-0/+1
2021-03-21hle: kernel: Move KMemoryRegion to its own module and update.bunnei1-0/+1
2021-02-19hle: kernel: Migrate PageHeap/PageTable to KPageHeap/KPageTable.bunnei1-4/+4
2021-02-19hle: kernel: Migrate MemoryManager to KMemoryManager.bunnei1-2/+2
2021-02-19hle: kernel: Migrate PageLinkedList to KPageLinkedList.bunnei1-1/+1
2021-02-19hle: kernel: Migrate to KMemoryBlock, KMemoryBlockManager, and others.bunnei1-4/+4
2021-02-19hle: kernel: Migrate SlabHeap to KSlabHeap.bunnei1-1/+1
2021-02-19hle: kernel: Migrate MemoryLayout to KMemoryLayout.bunnei1-1/+1
2021-02-19hle: kernel: Migrate AddressSpaceInfo to KAddressSpaceInfo.bunnei1-2/+2
2021-02-19hle: kernel: KSystemControl does not belong in Memory namespace.bunnei1-2/+2
2021-02-19hle: kernel: Add KPageBitmap class.bunnei1-0/+1
2021-02-19hle: kernel: Add KSpinLock implementation.bunnei1-0/+2
2021-02-19hle: kernel: Rename SharedMemory to KSharedMemory.bunnei1-2/+2
2021-02-15core: core_timing_util: Optimize core timing math.bunnei1-1/+0
- Avoids a lot of unnecessary 128-bit math for imperceptible accuracy.
2021-02-15core/CMakeLists: Add web_types.hMorph1-0/+1
2021-02-14hle: service: ldn: IUserLocalCommunicationService: Indicate that LDN is disabled.bunnei1-0/+1
- Fixes crash on Pokemon Sword/Shield when pressing 'Y'.
2021-02-13kernel: KScopedReservation implementationameerj1-0/+1
This implements KScopedReservation, allowing resource limit reservations to be more HW accurate, and release upon failure without requiring too many conditionals.
2021-02-13kernel: Unify result codes (#5890)Chloe1-2/+1
* kernel: Unify result codes Drop the usage of ERR_NAME convention in kernel for ResultName. Removed seperation between svc_results.h & errors.h as we mainly include both most of the time anyways. * oops * rename errors to svc_results
2021-02-10core: Add -fsized-dealloction as a Clang flaglat9nq1-0/+2
Prevents a operator delete error when compiling with Clang 11.
2021-02-05hle: kernel: Implement KEvent.bunnei1-0/+2
2021-02-05hle: kernel: Rename WritableEvent to KWritableEvent.bunnei1-2/+2
2021-02-05hle: kernel: Rename ReadableEvent to KReadableEvent.bunnei1-2/+2
2021-01-30kernel: Rewrite resource limit to be more accurateChloe Marcec1-2/+3
Matches closer to hardware
2021-01-29core: hle: kernel: Implement KLightLock.bunnei1-0/+2
2021-01-29core: hle: kernel: Implement KThreadQueue.bunnei1-0/+1
2021-01-29core: hle: kernel: Rename Thread to KThread.bunnei1-2/+2
2021-01-20lm: Recode LM serviceChloe Marcec1-2/+0
Rework the service to spit out to logs instead of a seperate file as well as fix any crashes caused by lm.
2021-01-15core/cmake: Enforce Wclass-memaccessReinUsesLisp1-0/+1
Treat -Wclass-memaccess as an error.
2021-01-15core/cmake: Remove Werror flags already defined code-base wideReinUsesLisp1-2/+0
2021-01-11core: hle: Integrate new KConditionVariable and KAddressArbiter implementations.bunnei1-4/+0
2021-01-11core: hle: kernel: Update KAddressArbiter.bunnei1-0/+2
2021-01-11core: hle: kernel: Update KConditionVariable.bunnei1-0/+2
2021-01-11core: hle: kernel: Begin moving common SVC defintions to its own header.bunnei1-0/+1
2021-01-11core: hle: kernel: Update KSynchronizationObject.bunnei1-4/+2
2021-01-11core: hle: kernel: Begin moving common SVC results to its own header.bunnei1-0/+1
2021-01-05core: Enforce C4715 (not all control paths return a value)ReinUsesLisp1-0/+2
2020-12-29hle: service: bsd: Update to work with service threads, removing SleepClientThread.bunnei1-1/+0
2020-12-29core: hle: server_session: Use separate threads for each service connection.bunnei1-0/+2
2020-12-18frontend/input_interpreter: Add InputInterpreter APIMorph1-0/+2
The InputInterpreter class interfaces with HID to retrieve button press states. Input is intended to be polled every 50ms so that a button is considered to be held down after 400ms has elapsed since the initial button press and subsequent repeated presses occur every 50ms. Co-authored-by: Chloe <25727384+ogniK5377@users.noreply.github.com>
2020-12-08file_sys: Consolidate common Title ID operationsMorph1-0/+1
2020-12-06hle: kernel: Migrate to KScopedSchedulerLock.bunnei1-0/+1
2020-12-06hle: kernel: Separate KScopedSchedulerLockAndSleep from k_scheduler.bunnei1-0/+1
2020-12-06hle: kernel: Separate KScheduler from GlobalSchedulerContext class.bunnei1-0/+2
2020-12-06hle: kernel: Rewrite scheduler implementation based on Mesopshere.bunnei1-2/+2
2020-12-06hle: kernel: Port KAbstractSchedulerLock from Mesosphere.bunnei1-0/+1
2020-12-06common: Port KPriorityQueue from Mesosphere.bunnei1-0/+1
2020-12-06hle: kernel: Port KAffinityMask from Mesosphere.bunnei1-0/+1
2020-11-27core: Eliminate remaining usages of the global system instanceLioncash1-2/+0
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.
2020-11-19hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled functions.bunnei1-0/+2
- Used by Animal Cross: New Horizons v1.6.0 update, minimal stub gets this update working.
2020-11-04core: Remove usage of unicornLioncash1-3/+1
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.
2020-11-01hle: service: nvdrv: Implement SyncpointManager, to manage syncpoints.bunnei1-0/+2
2020-10-27video_core: NVDEC Implementationameerj1-0/+2
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>
2020-10-21core: Fix clang build pt.2Lioncash1-2/+5
Resolves the clang build issue in a more unintrusive way.
2020-10-21Revert "core: Fix clang build"bunnei1-3/+2
2020-10-18core: Add boxcat sources with target_sourcesLioncash1-7/+7
Same behavior, minus a script variable.
2020-10-18core: Fix clang buildLioncash1-2/+3
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
2020-10-13core/CMakeLists: Make some warnings errorsLioncash1-0/+11
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.
2020-09-04Project Mjölnir: Part 2 - Controller AppletMorph1-0/+4
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-07-28service/sockets: Add worker abstraction to execute blocking calls asynchronouslyReinUsesLisp1-0/+1
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.
2020-07-28service/sockets: Add translate functionsReinUsesLisp1-0/+2
These functions translate from Network enumerations/structures to guest enumerations/structures and viceversa.
2020-07-19core/network: Add network abstractionReinUsesLisp1-0/+3
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.
2020-07-17core/CMakeLists: Add missing physical_memory.h header fileLioncash1-0/+1
Allows this header file to show up in IDE CMake generators.
2020-07-12hle: service: mii: Rewrite service to properly support creation of random and default miis.bunnei1-2/+5
2020-07-01externals: Track opus as submodule instead of using conanDavid Marcec1-1/+1
Supersedes #4068 see for details.
2020-06-27ARM: Update Dynarmic and Setup A32 according to latest interface.Fernando Sahmkow1-0/+8
2020-06-27General: Cleanup legacy code.Fernando Sahmkow1-2/+0
2020-06-27General: Recover Prometheus project from harddrive failure Fernando Sahmkow1-2/+2
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.
2020-06-19Fix compilation when not building with boxcatDavid Marcec1-2/+2
Fixes compilation when trying to build without boxcat enabled
2020-06-18Core: Implement a Host Timer.Fernando Sahmkow1-0/+2
2020-05-08Replace externals with Conan (#3735)James Rowe1-2/+2
* 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
2020-04-17kernel: Remove old VMManager class.bunnei1-2/+0
2020-04-17kernel: memory: Add PageTable class, to manage process address space.bunnei1-0/+2
2020-04-17kernel: memory: Add MemoryLayout class, to build physical memory layout.bunnei1-0/+1
2020-04-17kernel: memory: Add MemoryManager class, to manage page heaps.bunnei1-0/+2
2020-04-17kernel: memory: Add MemoryBlockManager class, to manage memory blocks.bunnei1-0/+2
2020-04-17kernel: memory: Add PageHeap class, to manage a heap of pages.bunnei1-0/+2
2020-04-17kernel: memory: Add PageLinkedList class, to manage a list of pages.bunnei1-0/+1
2020-04-17kernel: memory: Add system_control code, which will be used for ASLR support.bunnei1-0/+2
2020-04-17kernel: memory: Add MemoryBlock class, for managing memory blocks and their state.bunnei1-0/+1
2020-04-17kernel: memory: Add memory_types.h, for things that are commonly used in memory code.bunnei1-0/+1
2020-04-17kernel: memory: Add SlabHeap class, for managing memory heaps.bunnei1-0/+1
- This will be used for TLS pages, among other things.
2020-04-17kernel: memory: Add AddressSpaceInfo class, for managing the memory address space.bunnei1-0/+2
2020-04-17core: device_manager: Add a simple class to manage device RAM.bunnei1-0/+2
2020-04-17core: kernel: Add svc_types header to include SVC-specific types.bunnei1-0/+1
2020-04-16externals: Move LibreSSL linking to httplib.Markus Wick1-5/+2
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.
2020-04-01capsrv: Split Capture services into individual files and stub GetAlbumContentsFileListForApplication (#3571)Morph1-0/+12
* Organize capture services into individual files * Stub GetAlbumContentsFileListForApplication * Address feedback
2020-03-25Frontend/GPU: Refactor context managementJames Rowe1-2/+0
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
2020-03-03core: Implement separate A32/A64 ARM interfaces.bunnei1-2/+4
2020-03-03core: dynarmic: Add CP15 from Citra.bunnei1-0/+2
2020-02-26core: frontend: Refactor scope_acquire_window_context to scope_acquire_context.bunnei1-2/+2
2020-02-22Kernel: Implement Time Manager.Fernando Sahmkow1-0/+2
2020-02-11Kernel: Refactor synchronization to better match REFernando Sahmkow1-0/+2
2020-02-11Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.Fernando Sahmkow1-2/+2
2020-01-26Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.Fernando Sahmkow1-4/+4
This commit instends on better naming the new purpose of this classes.
2020-01-25Core: Refactor CPU Management.Fernando Sahmkow1-0/+2
This commit moves ARM Interface and Scheduler handling into the kernel.
2020-01-04system_archive: Add a basic HLE implementation for time zone binary.bunnei1-0/+2
2020-01-04service: time: Rewrite implementation of glue services.bunnei1-0/+28
2019-11-28kernel: Implement a more accurate IPC dispatch.bunnei1-0/+1
2019-11-27core/memory: Migrate over memory mapping functions to the new Memory classLioncash1-1/+0
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.
2019-11-12CMakeLists: Make most implicit type conversion warnings errors on MSVCLioncash1-0/+17
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.
2019-10-13externals: Move OSS font data to file_sys in coreZach Hilman1-1/+15
2019-09-30module: Create BCAT backend based upon Settings value on constructionZach Hilman1-0/+20
2019-09-22core: Add LM::Manager to systemZach Hilman1-0/+2
Allows centralized control over logging mechanisms.
2019-09-22Revert "Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1"David Marcec1-15/+1
This reverts commit fa1c60c33ef88c6cd0b72da46842dc9098db712d, reversing changes made to e34899067b60a69bca02761bd1290c6824bb559a.
2019-09-22cheat_engine: Move to memory and strip VMZach Hilman1-2/+5
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.
2019-09-22externals: Move OSS font data to file_sys in coreZach Hilman1-1/+15
2019-07-10system_archive: Add open-source reimplementation of MiiModel dataZach Hilman1-0/+2
2019-07-05Gpu: Implement Hardware Interrupt Manager and manage GPU interruptsFernando Sahmkow1-0/+2
2019-07-05nv_services: Correct buffer queue fencing and GPFifo fencingFernando Sahmkow1-0/+1
2019-07-01hid:StartLrAssignmentMode, hid:StopLrAssignmentMode, hid:SwapNpadAssignmentDavid Marcec1-0/+1
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
2019-06-29apm: Add Controller class to manage speed data and applicationZach Hilman1-0/+2
2019-06-28Added errors.h to cmakelistDavid Marcec1-0/+1
2019-06-25Implement Time::GetSharedMemoryNativeHandleDavid Marcec1-0/+2
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
2019-06-25glue: Add errors for glue/arp servicesZach Hilman1-2/+7
2019-06-25glue: Add manager to keep track of application registryZach Hilman1-0/+2
Manages mapping between title IDs and application launch and control properties.
2019-06-24Implemented INotificationServiceDavid Marcec1-0/+1
2019-06-21core: Move Freezer class to tools namespaceZach Hilman1-2/+2
2019-06-21memory: Add class to manage and enforce memory freezingZach Hilman1-0/+2
2019-06-18core: Remove unused CiTrace source filesLioncash1-3/+0
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.
2019-06-07constants: Extract backup JPEG used by account servicesZach Hilman1-0/+2
2019-06-05loader: Add AppLoader_KIP for KIP filesZach Hilman1-0/+2
2019-06-05file_sys: Add classes to parse KIP1 and INI1 filesZach Hilman1-0/+2
2019-05-25core: Add Reporter class to take/save reportsZach Hilman1-1/+3
2019-05-23Address review commentsMichael Scire1-2/+2
2019-05-23Implement IApplicationFunctions::GetDesiredLanguageMichael Scire1-0/+3
2019-04-25mii: Implement IDatabaseService commands using MiiManagerZach Hilman1-0/+2
Since the MiiManager was designed around the IPC interface, this is quite easy. Only functions that were clearly defined were implemented.
2019-04-17frontend: Add frontend receiver for Error appletZach Hilman1-2/+8
2019-03-29core: Do not link LZ4 to core. Use common/data_compression for nso segment decompression instead.unknown1-1/+1
2019-03-20kernel: Move CodeSet structure to its own source filesLioncash1-0/+2
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.
2019-03-20loader: Remove Linker classLioncash1-2/+0
Given the class is now currently unused, it can be removed.
2019-03-17core: Move PageTable struct into Common.bunnei1-2/+0
2019-03-13core/hle/kernel: Split transfer memory handling out into its own classLioncash1-0/+2
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.
2019-03-10set_sys: Implement GetFirmwareVersion(2) for libnx hosversionZach Hilman1-0/+2
Uses the synthesized system archive 9 (SystemVersion) and reports v5.1.0-0.0
2019-03-05hle/service/audio: Extract audio error codes to a headerLioncash1-0/+1
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).
2019-03-05cheat_engine: Add parser and interpreter for game cheatsZach Hilman1-0/+2
2019-02-20service/nvflinger: Relocate definitions of Layer and Display to the vi serviceLioncash1-0/+4
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.
2019-02-01kernel: Remove the Timer classLioncash1-2/+0
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).
2019-01-24frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl.bunnei1-0/+2
2018-12-29Moved log backtrace to arm_interface.cpp. Added printing of error code to fatalDavid Marcec1-0/+1
2018-12-28core: Add getter and setter for WebBrowserApplet frontendZach Hilman1-0/+2
2018-12-28applets: Implement LibAppletOff (Web) appletZach Hilman1-0/+2
2018-12-21kernel/process: Introduce process capability parsing skeletonLioncash1-0/+2
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.
2018-12-03qt: Implement GUI dialog frontend for ProfileSelectorZach Hilman1-0/+2
Presents profiles in a list, similar to switch.
2018-12-03frontend: Add frontend applet for ProfileSelectZach Hilman1-0/+2
Responsible for selecting a profile and firing callback upon completion.
2018-11-29kernel: Divide Event into ReadableEvent and WritableEventZach Hilman1-2/+4
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.
2018-11-22core: Relocate CPU core management to its own classLioncash1-0/+2
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-22applets: Add StubAppletZach Hilman1-0/+2
This will log all data it receives, log all calls to its methods and push dummy data into both channels on execution.
2018-11-18am/applets: Add connector between frontend and AM applet classesZach Hilman1-0/+2
Provides a middleman between the Frontend provider class and the expected AM::Applets::Applet class needed by ILibraryAppletAccessor
2018-11-18frontend/applets: Add frontend software keyboard provider and defaultZach Hilman1-0/+2
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.
2018-11-18am/applets: Add Applet superclass to describe a generic appletZach Hilman1-0/+2
Adds an Initialize and Execute methods which are used by the ILibraryAppletAccessor to start and control the applet.
2018-11-16file_sys: Add framework for synthesizing open source archivesZach Hilman1-0/+4
2018-10-21service: Add the basic skeleton for the NPNS servicesLioncash1-0/+2
2018-10-21am: Add the basic skeleton for the tcap serviceLioncash1-0/+2
Added based off information provided by Switchbrew.
2018-10-21service: Add skeleton for psm serviceZach Hilman1-0/+2
Seems to be the power controller. Listed in switchbrew under the category PTM services.
2018-10-11core/CMakeLists: Make all web_service-related libraries privateLioncash1-1/+1
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.
2018-10-11core/CMakeLists: Use target_compile_definitions instead of add_definitions for specifying ENABLE_WEB_SERVICELioncash1-1/+1
Avoids introducing the definition to the whole directory space and localizes it to being added to the library that needs it.
2018-10-10"Better Hid" rework part 1David Marcec1-0/+18
2018-10-07crypto: Add PartitionDataManagerZach Hilman1-0/+2
Keeps track of system files for key derivation
2018-10-07key_manager: Add ETicket key derivationZach Hilman1-0/+1
Derives titlekeys
2018-10-02Review comments -part 4fearlessTobi1-0/+1
2018-10-02Port web_service from CitrafearlessTobi1-0/+3
2018-10-01patch_manager: Add PatchNSO functionZach Hilman1-0/+2
While PatchExeFS operated on the entire directory, this function operates on the uncompressed NSO. Avoids copying decompression code to PatchManager.
2018-09-24fsmitm: Cleanup and modernize fsmitm portZach Hilman1-1/+1
2018-09-22bis_factory: Add mod directory VFS getterZach Hilman1-0/+4
2018-09-22vfs_static: Add StaticVfsFileZach Hilman1-0/+1
Always returns the template argument byte for all reads. Doesn't support writes.
2018-09-11Use open-source shared fonts if no dumped file is available (#1269)Tobias1-1/+1
* Add open-source shared fonts * Address review comments
2018-09-04loader: Add BKTR-specific error messages and codesZach Hilman1-0/+4
2018-09-04qt: Add UI support for NSP filesZach Hilman1-0/+4
2018-08-23file_sys: Implement NAX containersZach Hilman1-0/+6
2018-08-13Added missing channel devicesDavid Marcec1-0/+4
2018-08-12file_sys: Add support for parsing NCA metadata (CNMT)Zach Hilman1-0/+8
2018-08-08began initial implementation of "ProfileManager"David Marcec1-0/+2
2018-08-08hle: Remove unused romfs.cpp/.hLioncash1-2/+0
These files are no longer used, so we can get rid of them.
2018-08-07service: Add usb servicesLioncash1-0/+2
Adds basic skeleton for the usb services based off the information provided by Switch Brew.
2018-08-05service: Add arp servicesLioncash1-0/+2
Adds the basic skeleton of the arp services based off the information provided by Switch Brew.
2018-08-03core/memory: Get rid of 3DS leftoversLioncash1-2/+0
Removes leftover code from citra that isn't needed.
2018-08-02hw: Remove unused filesLioncash1-4/+0
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.
2018-08-02service: Add migration servicesLioncash1-0/+2
Adds the basic skeleton for the mig:usr service based off information provided by Switch Brew.
2018-08-02kernel: Move object class to its own source filesLioncash1-0/+2
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.
2018-08-02service: Add psc servicesLioncash1-0/+2
Adds the basic skeleton for the psc services based off the information provided by Switch Brew.
2018-08-01service/filesystem: Add fsp:ldr and fsp:pr servicesLioncash1-0/+4
Adds the basic skeleton for the remaining fsp services based off information provided by Switch Brew.
2018-08-01service: Add capture servicesLioncash1-0/+2
Adds the basic skeleton for the capture services based off information provided by Switch Brew.
2018-08-01service: Add bpc and pcv servicesLioncash1-0/+4
Adds the basic skeleton for the remaining pcv-related services based off information on Switch Brew.
2018-08-01Fix merge conflicts with opus and update docsZach Hilman1-1/+1
2018-08-01Extract mbedtls to cpp fileZach Hilman1-0/+1
2018-08-01Remove files that are not usedZach Hilman1-0/+11
2018-08-01service/audio: Add missing servicesLioncash1-2/+12
Adds the missing audctl service, as well as the :a and :d services for audin, audout, audrec, and audren.
2018-07-31kernel: Remove unused object_address_table.cpp/.hLioncash1-2/+0
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.
2018-07-31service/am: Add missing am servicesLioncash1-0/+6
Adds the basic skeleton for missing am services idle:sys, omm, and spsm based off the information provided by Switch Brew.
2018-07-31service: Add fgm servicesLioncash1-0/+2
Adds the basic skeleton for the fgm services based off the information provided by Switch Brew.
2018-07-31service: Add the pcie serviceLioncash1-0/+2
Adds the basic skeleton of the pcie service based off information on Switch Brew.
2018-07-31Implemented various hwopus functions (#853)David1-1/+1
2018-07-29service: Add wlan servicesLioncash1-0/+2
Adds the basic skeleton for the wlan services based off the information on Switch Brew.
2018-07-29service: Add btm servicesLioncash1-0/+2
Adds the skeleton for the btm services based off the information on Switch Brew.
2018-07-28audio_core: Add initial code for keeping track of audout state.bunnei1-1/+1
2018-07-28RomFS ExtractionZach Hilman1-0/+4
2018-07-27service: Add ncm servicesLioncash1-0/+2
Adds the basic skeleton for the ncm services based off information on Switch Brew.
2018-07-27service: Add mii servicesLioncash1-0/+2
Adds the skeleton for the mii services based off information provided by Switch Brew
2018-07-27service: Add nfc servicesLioncash1-0/+2
Adds the skeleton of the nfc service based off the information provided on Switch Brew.
2018-07-27service: Add the lbl serviceLioncash1-0/+2
Adds the skeleton of the lbl service based off the information provided by Switch Brew.
2018-07-27service: Add the btdrv serviceLioncash1-0/+2
Adds the skeleton for the btdrv service based off the information provided by Switch Brew
2018-07-26service/hid: Add the xcd:sys serviceLioncash1-0/+2
2018-07-26service/hid: Add irs servicesLioncash1-0/+2
2018-07-26service: Add the grc:c serviceLioncash1-0/+2
Adds the basic skeleton for the grc:c service based off the information provided by Switch Brew.
2018-07-26service: Add the nim servicesLioncash1-0/+2
Adds the skeleton for the nim services based off information from Switch Brew.
2018-07-26service: Add ldn servicesLioncash1-0/+2
Adds ldn services based off information provided by Switch Brew.
2018-07-26service/sockets: Add ethc:c and ethc:i servicesLioncash1-0/+2
2018-07-26service: Add ldr servicesLioncash1-0/+2
Adds the skeleton for the ldr-related services based off the information provided on Switch Brew.
2018-07-26service: Add eupld servicesLioncash1-0/+2
Adds the skeleton for the eupld services based off information on Switch Brew.
2018-07-26service: Add the erpt servicesLioncash1-0/+2
Adds the basic skeleton of the erpt service based off information on Switch Brew.
2018-07-25service/nifm: Deduplicate interface codeLioncash1-6/+0
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.
2018-07-25service: Add pm servicesLioncash1-0/+2
Adds the skeleton for the process management services based off information on Switch Brew.
2018-07-25service: Add the es serviceLioncash1-0/+2
Adds the skeleton for the ETicket service based off the information on Switch Brew
2018-07-24friend: Deduplicate interfacesLioncash1-4/+2
2018-07-24time: Simplify interface creationLioncash1-4/+2
We can use one instance of the interface instead of duplicating code.
2018-07-24core_timing: Split off utility functions into core_timing_utilMerryMage1-0/+2
2018-07-24CMakeLists: Sort filenamesMerryMage1-9/+9
2018-07-23hle: Remove config_mem.h/.cppLioncash1-2/+0
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.
2018-07-23hle: Remove shared_page.h/.cppLioncash1-2/+0
This is a holdover from citra that's essentially unused.
2018-07-23NRO Assets and NACP file formatZach Hilman1-0/+2
Cleanup Review fixes
2018-07-22Implement exclusive monitorMerryMage1-0/+2
2018-07-19Virtual Filesystem 2: Electric Boogaloo (#676)Zach Hilman1-9/+9
* Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression
2018-07-08Revert "Virtual Filesystem (#597)"bunnei1-8/+10
This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2.
2018-07-06Virtual Filesystem (#597)Zach Hilman1-10/+8
* 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
2018-06-25Service/Audio: add hwopus service, stub GetWorkBufferSize functionmailwl1-0/+2
2018-06-21Add support for decrypted NCA files (#567)Zach Hilman1-0/+2
* 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
2018-06-21Kernel/Arbiters: Initialize arb_wait_address in thread struct.Michael Scire1-0/+2
2018-06-05Service/MM: add service and stub some functionsmailwl1-0/+2
2018-05-30Services/nvdrv: add '/dev/nvhost-nvdec' devicemailwl1-0/+2
2018-05-28Service/BCAT: add module and servicesmailwl1-0/+4
2018-05-11core: Move common CPU core things to its own class.bunnei1-0/+2
2018-05-03memory_hook: Default virtual destructor in the cpp fileLioncash1-0/+1
Prevents creating multiple copies of the vtable in every translation unit that uses the class. Also silences a -Wweak-vtables warning
2018-04-25Service/PCTL: convert to module, add services, stubmailwl1-2/+2
PCTL::CreateServiceWithoutInitialize and IParentalControlService::Initialize, required by Kirby Star Allies
2018-04-22Implemented GetIUserInterface properly, Playreport and SSL::SetInterfaceVersion. Fixed ipc issues with IAudioDevice(wrong ids)David Marcec1-0/+2
2018-04-21Kernel: Remove unused ConditionVariable class.Subv1-2/+0
2018-04-16file_sys: Add HFS/PFS helper componentshinyquagsire231-0/+2
2018-04-10Service/ACC: convert to module, add acc:aa, acc:su, acc:u1 servicesmailwl1-0/+6
2018-04-03service: Add friend:u interface.bunnei1-0/+2
2018-03-30service: Add NFP module interface.bunnei1-0/+4
service: Initialize NFP service. Log: Add NFP service as a log subtype.
2018-03-25Service/sockets: add bsd:s, nsd:a, nsd:u servicesmailwl1-2/+4
2018-03-23Service/SSL: add ssl servicemailwl1-0/+2
2018-03-22Service/spl: add module and servicesmailwl1-0/+6
2018-03-20Service: add fatal:u, fatal:p servicesmailwl1-0/+6
2018-03-20FS: Added an SDMC archive factory and registered it to the SDMC archive on startup.Subv1-0/+2
2018-03-03Service/Set: add more servicesmailwl1-0/+8
2018-03-02Filesystem: Added a SaveData Factory and associated Disk_FileSystem.Subv1-0/+4
2018-02-25file_sys: Add support for parsing NPDM filesshinyquagsire231-0/+2
2018-02-19service: Add Friend service interface.bunnei1-0/+4
2018-02-18kernel: Add Scheduler, which encapsulates the scheduling loading from Thread module.bunnei1-0/+2
2018-02-18kernel: Remove unused address_arbiter code.bunnei1-2/+0
2018-02-15pl_u: Implement basic shared font loading from RAM dump.bunnei1-0/+4
2018-02-12Make a GPU class in VideoCore to contain the GPU state.Subv1-2/+0
Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there.
2018-02-10apm: Refactor service impl. to support multiple ports.bunnei1-0/+2
2018-02-08nvdrv: Add MemoryManager class to track GPU memory.bunnei1-0/+2
2018-02-06Extra nvdrv support (#162)David1-0/+4
* 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
2018-02-03Service:nifm: add nifm:a, nifm:s and nifm:u servicesmailwl1-0/+8
2018-02-02Service/am: Add AppletAE service (#153)mailwl1-0/+2
* Add AppletAE, step 1: move common interfaces to am.h * Add AppletAE, step 2
2018-02-02Services/vi: add vi:s and vi:u servicesmailwl1-0/+4
2018-01-30[WIP] sfdnsres: stub (#146)mailwl1-0/+1
sfdnsres: Add several stubs
2018-01-27memory: Replace all memory hooking with Special regionsMerryMage1-1/+1
2018-01-25hle: Remove Domain and SyncObject kernel objects.bunnei1-3/+0
2018-01-22VI: Move BufferQueue and NVFlinger to their own folder/namespace.Subv1-0/+4
2018-01-22Added stubs for audio services. (#116)st4rk1-0/+10
* 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)
2018-01-21Added nvmemp, Added /dev/nvhost-ctrl, SetClientPID now stores pid (#114)David1-0/+4
* 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
2018-01-21filesystem: Implement basic IStorage functionality.David Marcec1-0/+4
2018-01-21file_sys: Cleanup to better match Switch file system constructs.bunnei1-6/+8
file_sys: Add factory class for RomFS file system.
2018-01-21file_sys: Remove disk_archive, savedata_archive, and title_metadata.bunnei1-6/+0
2018-01-21file_sys: Repurpose 3DS IVFC code for Switch ROMFS.bunnei1-2/+2
2018-01-20loader: Add DeconstructedRomDirectory for game dumps.bunnei1-0/+2
2018-01-20Port citra #3352 to yuzu (#103)River City Ransomware1-3/+9
* 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
2018-01-19acc, set, applet_oe: stub various functions, add set service (#105)goaaats1-0/+2
* 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
2018-01-18Start to implement/stub BSD:U and SFDNSRES services (#78)flerovium^-^1-0/+5
* 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)
2018-01-18time: Refactor time:* to use a single shared moduleRozlette1-0/+4
2018-01-18CMakeLists: Derive the source directory grouping from targets themselvesLioncash1-170/+167
Removes the need to store to separate SRC and HEADER variables, and then construct the target in most cases.
2018-01-17TIME: consolidate time:* interfaces, stub functions and structsRozlette1-2/+0
2018-01-17Update CMakeLists.txtN00byKing1-0/+1
2018-01-17acc_u0: Add IPC interface and stub InitializeApplicationInfo.bunnei1-0/+4
2018-01-17NV: Implemented the nvdrv service, which uses the same interface as nvdrv:aSubv1-2/+2
2018-01-15time: Implement GetStandardUserSystemClock, GetCurrentTime.bunnei1-0/+4
2018-01-15audio: Add files to CMake.bunnei1-0/+4
2018-01-13Remove references to PICA and rasterizers in video_coreJames Rowe1-16/+1
2018-01-13core: Gut out cryptop, since it doesn't compile with C++17.bunnei1-1/+1
2018-01-12arm_dynarmic: Implement coreMerryMage1-1/+1
2018-01-11CMakeLists: Add framebuffer_layout.cpp.bunnei1-0/+1
2018-01-11frontend: Update for undocked Switch screen layout.bunnei1-2/+0
2018-01-11NV: Move the nv device nodes to their own directory and namespace.Subv1-0/+7
2018-01-11NV: Implemented (with stubs) the vi:m service and some of its subservices.Subv1-0/+8
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.
2018-01-09kernel: Rename Semaphore to ConditionVariable.bunnei1-2/+2
2018-01-04cmake: Don't compile Dynarmic as it's unused.bunnei1-1/+1
2018-01-04unicorn: Use for arm interface on Windows.bunnei1-1/+1
2018-01-04core: Remove unicorn_dynload.bunnei1-2/+0
2018-01-03arm: Remove SkyEye/Dyncom code that is ARMv6-only.bunnei1-25/+0
2018-01-03hle: Move SVC code to kernel namespace.bunnei1-3/+3
2018-01-01cmake: Add missing object_address_table.bunnei1-0/+2
2017-12-29service: Add empty interface for pctl:a.bunnei1-0/+4
2017-12-29kernel: Add basic support for Domain object.bunnei1-0/+2
2017-12-29kernel: Add SyncObject primitive, use it for ClientSession.bunnei1-0/+1
2017-12-28service: Add empty interface for aoc:u.bunnei1-0/+2
2017-10-15core: Refactor MakeMagic usage and remove dead code.bunnei1-3/+0
2017-10-15hle: Add service stubs for apm and appletOE.bunnei1-0/+6
2017-10-15hle: Initial implementation of NX service framework and IPC.bunnei1-2/+4
2017-10-13Remove more 3DS-specific code.bunnei1-2/+0
2017-10-13Remove more 3DS-specific code.bunnei1-44/+0
2017-10-10hle: Remove a large amount of 3ds-specific service code.bunnei1-190/+0
2017-10-06loader: Add support for NRO, as well as various fixes and shared linker.bunnei1-0/+4
2017-10-01file_sys: add class for Title Metadata (TMD)shinyquagsire231-0/+1
2017-09-30loader: Add support for loading an NSO.bunnei1-0/+2
2017-09-30externals: Add lz4.bunnei1-1/+1
2017-09-25Loader/NCCH: Add support for loading application updates (#2927)Max Thomas1-0/+1
* 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
2017-09-16Services/NS: Port ns:s to the new service framework.Subv1-2/+4
2017-08-27Services/UDS: Add functions to generate 802.11 auth and assoc response frames.Subv1-0/+2
2017-08-22Kernel/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).Subv1-0/+2
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.
2017-08-19Added missing parts in libnetwork (#2838)B3n301-1/+1
* Network: Set and send the game information over enet Added Callbacks for RoomMember and GetMemberList to Room in preparation for web_services.
2017-08-11move MotionEmu from core/frontend to input_common as a InputDevicewwylele1-2/+0
2017-07-12web_service: Add CMake flag to enable.bunnei1-1/+4
2017-07-10web_service: Add skeleton project.bunnei1-1/+1
2017-06-26apt: load shared font from system archivewwylele1-0/+2
2017-06-15UDS: Stub SendTo to generate the unencrypted data frame with the right headers.Subv1-0/+2
2017-06-08Service: Add new ServiceFramework framework for writing HLE servicesYuri Kunde Schlesner1-1/+1
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.
2017-06-06Service: Make service registration part of the sm implementationYuri Kunde Schlesner1-0/+2
Also enhances the GetServiceHandle implementation to be more accurate.
2017-06-06Service: Move SRV interface to a new sm/ subdirectoryYuri Kunde Schlesner1-2/+2
This will contain the implementation of the sm (Service Manager) system module.
2017-06-06HLE: Move SessionRequestHandler from Service:: to Kernel::Yuri Kunde Schlesner1-0/+2
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.
2017-05-30Kernel: Move HandleTable to a separate fileYuri Kunde Schlesner1-0/+2
2017-05-30Kernel: Move WaitObject to a separate fileYuri Kunde Schlesner1-0/+2
Now that HandleTable doesn't directly depend on WaitObject anymore, this can be separated from the main kernel.h header.
2017-05-28CMake: Remove unnecessary include_directories for dynarmicYuri Kunde Schlesner1-3/+0
Dynarmic already adds the correct include paths to the library target.
2017-05-28CMake: Add cryptopp include path to target propertyYuri Kunde Schlesner1-1/+0
2017-05-28CMake: Use IMPORTED target for BoostYuri Kunde Schlesner1-1/+1
2017-05-28CMake: Correct inter-module dependencies and library visibilityYuri Kunde Schlesner1-2/+2
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.
2017-05-28Move screen size constants from video_core to coreYuri Kunde Schlesner1-0/+1
video_core didn't even properly use them, and they were the source of many otherwise-unnecessary dependencies from core to video_core.
2017-05-28Move framebuffer_layout from Common to CoreYuri Kunde Schlesner1-0/+2
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.
2017-05-25Kernel: Centralize error definitions in errors.hYuri Kunde Schlesner1-0/+1
2017-05-25core: Keep track of telemetry for the current emulation session.bunnei1-0/+2
2017-05-15Services/UDS: Generate the UDS beacons when the beacon callback fires.Subv1-0/+2
2017-05-15Kernel: Use a Session object to keep track of the status of a Client/Server session pair.Subv1-0/+1
Reduce the associated port's connection count when a ServerSession is destroyed.
2017-05-08Dyncom: Remove disassembler codeYuri Kunde Schlesner1-2/+0
Had licensing issue around it, in addition to several bugs. Closes #1632, #1280
2017-05-08Remove unused symbols codeYuri Kunde Schlesner1-2/+0
2017-05-03ir: implement circle pad prowwylele1-0/+2
2017-03-01Input: remove unused stuff & clean upwwylele1-2/+0
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
2017-03-01Input: add device and factory templatewwylele1-0/+1
2017-02-27Add performance statistics to status barYuri Kunde Schlesner1-0/+2
2017-02-21HW: add AES engine & implement AES-CCMwwylele1-0/+6
2017-02-15core: add missing errors.h in CMakeLists.txtwwylele1-0/+1
2017-02-13Core: add cryptopp library (#2412)Weiyi Wang1-1/+2
2017-02-13loader: use self NCCH archivewwylele1-2/+0
2017-02-13file_sys: add Self NCCH archivewwylele1-0/+2
2017-02-03arm_dynarmic: CP15 supportMerryMage1-0/+2
2017-01-31HLE/Applets: Stub Mint (eShop) Applet (#2463)mailwl1-0/+2
This allows Phoenix Wright - Dual Destinies to boot.
2017-01-11CAM: implement basic camera functions with a blank camerawwylele1-0/+6
2016-12-30Service/AC: add ac:i servicemailwl1-2/+6
2016-12-26IPC helpersLectem1-0/+1
2016-12-26Frontend: emulate motion sensorwwylele1-0/+2
2016-12-23core: Move emu_window and key_map into coreMerryMage1-0/+4
* Removes circular dependences (common should not depend on core)
2016-12-22Service/NWM: add nwm servicesmailwl1-2/+16
2016-12-22core: Remove HLE module, consolidate code & various cleanups.bunnei1-2/+0
2016-12-22core: Consolidate core and system state, remove system module & cleanups.bunnei1-2/+0
2016-12-15Service/CECD: Add cecd:ndm servicemailwl1-0/+2
2016-12-14Service/ACT: move ACT services to foldermailwl1-4/+6
2016-12-09service: Add cfg:nor serviceLioncash1-0/+2
2016-12-08Use std::move where appropriate.Subv1-0/+1
2016-12-08service: Add ptm::gets and ptm::sets servicesLioncash1-0/+4
2016-12-08service: Add mvd and qtm servicesLioncash1-0/+12
Adds the two New3DS-only modules. 3dbrew was used for command information.
2016-12-08service: Add nfc servicesLioncash1-0/+6
3dbrew was used for the command information.
2016-12-01 Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.Subv1-2/+4
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.
2016-11-29FileSys: Implement OtherSaveDatawwylele1-0/+2
2016-11-29FileSys: abstract SD save data archive sourcewwylele1-0/+2
2016-11-19FileSys: rename SaveDataCheck archive to NCCH archivewwylele1-2/+2
According to the observation from game and 3dbrew "Used for accessing general NCCH data"
2016-11-19FileSys: add SDMCWriteOnlyArchivewwylele1-0/+2
2016-11-19FileSys: add SaveDataArchivewwylele1-0/+2
The error checking of SaveDataArchive is completely different from DiskArchive, so it has to be a new class instead of a subclass of DiskArchive.
2016-11-19FileSys: add PathParserwwylele1-0/+2
2016-09-15dynarmic: Implement ARM CPU interface.bunnei1-0/+6
2016-08-27LDR: Implement CROwwylele1-2/+6
2016-07-04HLE/Applets: Implement ErrEula appletmailwl1-0/+2
2016-06-12Make arm_dyncom_trans* into a fully fledged compilation unitarchshift1-0/+2
2016-06-11Revert "Split huge interpreter source file into translation info and interpreter (+ some tiny misc style fixes)"archshift1-2/+0
2016-06-09arm_dyncom_interpreter.cpp: Split by translation and interpreter logicarchshift1-0/+2
To facilitate the split, some small changes were made to names of various structures and functions.
2016-06-05Kernel: Added ClientPort and ServerPort classes.Subv1-0/+4
This is part of an ongoing effort to implement support for multiple processes.
2016-06-05service: Add other DLP servicesLioncash1-2/+8
Specifically, dlp::CLNT and dlp::FKCL Moves them to their own folder like with other services.
2016-05-21Loader: Split SMDH into its own header and import helpers from QGameListEmmanuel Gil Peyrot1-0/+2
Also rewrite Qt wrappers to use those.
2016-05-18Update ACT:U and create ACT:A (#1809)András Domonkos1-0/+2
* Update ACT_U * Create act_a.h * Create act_a.cpp * Add service ACT:A * Add ACT:A source and header * Fix wrong header
2016-05-13APT: Move the shared font loading and relocation functions to their own subdirectory services/apt/bcfnt.Subv1-0/+2
2016-04-02Dummy implementation dlp:SRVR Service.exhalatio1-0/+2
2016-03-14Reorganize the ndm service path for dummy implement functionJamePeng1-2/+4
SuspendDaemons , ResumeDaemons , OverrideDefaultDaemons The NDM file move to /core/hle/service/ndm/ now!
2016-03-12HLE/Applets: Implemented a dummy Mii Selector applet.Subv1-0/+2
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.
2016-01-30Memory: Implement MMIOMerryMage1-0/+1
2015-10-04Implement gdbstubpolaris-1-0/+2
2015-09-20Implement gdbstubpolaris-1-0/+2
2015-08-16Move core/mem_map.{cpp,h} => core/hle/kernel/memory.{cpp,h}Yuri Kunde Schlesner1-2/+2
2015-07-26dyncom: Use ARMul_State as an objectLioncash1-3/+1
Gets rid of C-like parameter passing.
2015-07-26dyncom: Rename armdefs.h to armstate.hLioncash1-1/+1
2015-07-26dyncom: Move helper functions to their own headerLioncash1-0/+1
2015-07-26dyncom: Move arminit.cpp and armsupp.cpp into skyeye_commonLioncash1-2/+2
2015-07-13CiTrace: Record default vertex attributes.Tony Wasserka1-1/+1
2015-07-13Add CiTrace recording support.Tony Wasserka1-0/+3
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).
2015-07-12HLE/APT: Initial HLE support for applets.Subv1-0/+4
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.
2015-06-22Y2R: Rework conversion process, enabling support for all formatsYuri Kunde Schlesner1-0/+2
2015-06-12Services: Continue separation of services into their own folderspurpasmart961-28/+52
2015-05-27Kernel: Add VMManager to manage process address spacesYuri Kunde Schlesner1-0/+2
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.
2015-05-24dyncom: Get rid of armemu.hLioncash1-1/+0
2015-05-15Core/ResourceLimits: Implemented the basic structure of ResourceLimits.Subv1-0/+2
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.
2015-05-15Memory: Use a table based lookup scheme to read from memory regionsYuri Kunde Schlesner1-0/+1
2015-05-15Memmap: Re-organize memory function in two filesYuri Kunde Schlesner1-1/+2
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.
2015-05-09Kernel: Introduce skeleton Process class to hold process dataYuri Kunde Schlesner1-0/+2
2015-05-08Core: Fix sorting in CMakeFiles.txtYuri Kunde Schlesner1-21/+21
2015-05-08Remove unnecessary dyncom header filesLioncash1-2/+0
2015-05-07FileSys: De-inline Path membersYuri Kunde Schlesner1-0/+1
2015-04-18dyncom: Remove unused/unnecessary VFP cruftLioncash1-1/+0
2015-04-04IR: Move The IR services to their own folder and implement "GetHandles"purpasmart961-4/+8
2015-04-03Services: Stubs and minor changespurpasmart961-0/+2
2015-03-09Added LCD registers, and implementation for color filling in OGL code.archshift1-0/+2
2015-03-04Services: Moved the PTM and APT services to their own folderSubv1-12/+16
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.
2015-02-02Explicitly instantiate constructors/destructors for Kernel objectsYuri Kunde Schlesner1-0/+1
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.)
2015-02-01arm: Adios armemuLioncash1-5/+0
2015-01-30arm: Get rid of armcpu.h and skyeye_types.hLioncash1-2/+0
2015-01-24Services: Stubbed more services.Subv1-0/+14
Implemented FSUser::CreateExtSaveData
2015-01-21Added HID_SPVR service and split HID_U implementation into service/hid/hid.xxxarchshift1-2/+6
2015-01-21Stubbed cam:u servicearchshift1-0/+2
2015-01-21Stubbed ptm:play servicearchshift1-0/+2
2015-01-16Add some support for the shared page (currently 3d slider is implemented)Zhuowei Zhang1-0/+2
2015-01-13Services: Added some missing services.Subv1-0/+6
cfg:s, ptm:sysm, apt:s. apt:s is almost exactly the same as apt:u as per 3dbrew
2015-01-09SVC: Implemented the Timer service calls.Subv1-0/+2
2015-01-03Stub the y2r:u servicearchshift1-0/+2
2015-01-03Archives: Reduced duplicate code in RomFS and SaveCheck.Subv1-4/+4
Fixed a few warnings and cleaned up the code
2014-12-30Archives: Implemented ExtSaveData and SharedExtSaveDataSubv1-0/+2
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.
2014-12-26More services & small clean upspurpasmart961-4/+12
2014-12-21CFG: Create a new subfolder cfg inside service to handle cfgSubv1-4/+6
Moved most of the shared CFG code there, implemented a few CFG:I functions
2014-12-18SaveData: Implemented the SystemSaveData archive.Subv1-0/+2
It will be stored in the /syssavedata folder. This archive is user by various Services and possibly games via the FS:U service.
2014-12-18Filesystem/Archives: Implemented the SaveData archiveSubv1-4/+4
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
2014-12-16Service.FS: Rename FileSys::File to FileBackendYuri Kunde Schlesner1-1/+1
2014-12-16Service.FS: Rename FileSys::Directory to DirectoryBackendYuri Kunde Schlesner1-1/+1
2014-12-16Service.FS: Rename FileSys::Archive to ArchiveBackendYuri Kunde Schlesner1-1/+1
2014-12-16HLE: Move kernel/archive.* to service/fs/Yuri Kunde Schlesner1-4/+4
2014-12-16Added stub for nim:aoc service...archshift1-0/+2
2014-12-16Added stub for cecd:u service...archshift1-0/+2
I couldn't find any information about this service...
2014-12-16Added stub for ldr:ro service...archshift1-0/+2
2014-12-16Added am:app service stub.archshift1-0/+2
Apparently nothing at all is known about this service...
2014-12-15Remove SyncRequest from K::Object and create a new K::Session typeYuri Kunde Schlesner1-0/+1
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.)
2014-12-13SVC: Implemented svcCreateSemaphoreSubv1-0/+2
ToDo: Implement svcReleaseSemaphore * Some testing against hardware needed
2014-12-09Remove unused NDMA moduleYuri Kunde Schlesner1-2/+0
2014-12-08Loader: Add 3DSX supportichfly1-0/+2
2014-11-24HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner1-0/+1
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.
2014-11-21Add more services and some fixes, along with more "override"purpasmart961-0/+12
in the service's headers
2014-11-17Add missing boss:U service, needed according to Nintendo Zone logs.archshift1-0/+2
2014-11-11Add FRD:U service and functionsarchshift1-0/+2
2014-11-02Added stub err:f service.archshift1-0/+2
2014-11-01Added a bunch of servicespurpasmart961-0/+16
2014-10-29Renamed souce files of services to match port namesGareth Poole1-10/+10
2014-10-25ARM: Removed unnecessary and unused SkyEye MMU code.bunnei1-15/+0
Added license header back in. I originally removed this because I mostly rewrote the file, but meh
2014-10-25ARM: Removed unused armos code from SkyEye.bunnei1-1/+0
2014-10-25ARM: Integrate SkyEye faster "dyncom" interpreter.bunnei1-5/+14
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.
2014-10-25ARM: Reorganized file structure to move shared SkyEye code to a more common area.bunnei1-15/+15
Removed s_ prefix
2014-10-08Added configuration file system.archshift1-0/+2
Uses QSettings on citra-qt, and inih on citra-cli.
2014-09-17Core: Add a Directory object, with both a stub and a passthrough implementations.Emmanuel Gil Peyrot1-0/+5
2014-09-17Core: Add a passthrough backend for the filesystem, exposed as SDMC.Emmanuel Gil Peyrot1-0/+4
2014-09-17Core: Add a new File class, obtainable from an Archive, and a stub implementation.Emmanuel Gil Peyrot1-0/+3
2014-09-01CMake cleanupYuri Kunde Schlesner1-47/+56
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.
2014-07-09Kernel: Added preliminary support for address arbiters.bunnei1-0/+2
AddressArbiter: Added documentation comment, fixed whitespace issue. AddressArbiter: Fixed incorrect comment, reordered if-statement to be more clear. SVC: Removed trailing whitespace.
2014-07-05Kernel: Added support for shared memory objects.bunnei1-0/+2
SharedMemory: Added optional name field for tracking known objects.
2014-07-05FileSys: Added preliminary support for applications reading the RomFS archive.bunnei1-1/+3
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.
2014-06-27FS: Added stubbed code to intercept and decode file system service functions.bunnei1-0/+2
FS: Added to CMakeLists.txt
2014-06-27Kernel: Added stubbed code to support creation of kernel Archive objects.bunnei1-0/+2
2014-06-27Core: Removed unused directory_file_system and meta_file_system modules.bunnei1-4/+0
Core: Updated CMakeLists.txt to remove directory_file_system and meta_file_system modules.
2014-06-17Elf: Renamed modules to be consistent with new loader naming, fixed tabs -> spaces.bunnei1-3/+2
2014-06-17Loader: Added support for booting NCCH executables.bunnei1-0/+2
NCCH: Fixed typo in printing NCCH filename.
2014-06-17Loader: Moved elf and loader modules to a "loader" subdirectory.bunnei1-5/+5
2014-06-12Rename LCD to GPU.Tony Wasserka1-2/+2
2014-05-30hle: added stubbed service for ndm_ubunnei1-0/+1
2014-05-28event: fixed typos and updated CMakeListsbunnei1-0/+1
2014-05-23core: fixed headers in CMakeListsbunnei1-1/+4
2014-05-21mutex: initial commit of HLE modulebunnei1-0/+1
2014-05-21renamed "syscall" module to "svc" (more accurate naming)bunnei1-1/+1
2014-05-20CMakeLists: rename HEADS, improved commentsarchshift1-2/+2
Changes for clarity of comments, removed redundant compiler flags.
2014-05-17Updated cmakelistsarchshift1-6/+12
2014-05-17fixed typo in CMakeLists.txtbunnei1-1/+1
2014-05-16added maverick.cpp to ARM core from skyeyebunnei1-1/+2
2014-05-16added missing armcopro from skyeyebunnei1-0/+1
2014-05-16added missing skyeye mmu codebunnei1-0/+6
2014-05-16- moved mmu to arm/interpreter folderbunnei1-1/+5
- added initial VFP code from skyeye
2014-05-10added initial kernel/thread modulesbunnei1-0/+2
2014-05-07added config_mem module for HLE of firmware configuration memory settingsbunnei1-0/+1
2014-05-02renamed hle "mrc" module to "coprocessor"bunnei1-1/+1
2014-05-01added a module to load symbol map files for debuggingbunnei1-0/+1
2014-05-01Fixed indentsarchshift1-2/+2
2014-05-01A bit of Cmake lovearchshift1-1/+38
2014-04-25moved HLE::MRC to its own module, added support for catching data synchronization barrier commandbunnei1-0/+1
2014-04-23updated CMakeLists for missing filesShizZy1-1/+9
2014-04-10fixed a bunch of errors in CMakeListsbunnei1-1/+1
2014-04-10updated CMakeListsbunnei1-8/+21
2013-08-30adding initial project layoutShizZy1-0/+10