summaryrefslogtreecommitdiffstats
path: root/src/core/CMakeLists.txt (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #13135 from german77/hid-interfaceHEADmasterliamwhite2024-02-271-0/+4
|\ | | | | service: hid: Migrate HidServer to new IPC
| * service: hid: Move and migrate AppletResource and ActiveVibrationDeviceNarr the Reg2024-02-241-0/+4
| |
* | ssl: add cert storeLiam2024-02-251-0/+3
| |
* | Merge pull request #13081 from FearlessTobi/aoc-ipcliamwhite2024-02-241-2/+4
|\ \ | |/ |/| aoc: Migrate to use cmif serialization
| * aoc: Rename AOC_U to IAddOnContentManagerFearlessTobi2024-02-231-2/+2
| |
| * core/aoc: Move IPurchaseEventManager to separate fileFearlessTobi2024-02-191-0/+2
| |
* | fs: add ISaveDataTransferProhibiter, stub FindSaveDataWithFilterLiam2024-02-231-0/+2
| |
* | Merge pull request #13115 from liamwhite/olsc-pctlliamwhite2024-02-231-2/+18
|\ \ | | | | | | olsc, pctl: move to new ipc
| * | pctl: move IParentalControlServiceFactoryLiam2024-02-221-2/+2
| | |
| * | pctl: move IParentalControlServiceLiam2024-02-221-0/+2
| | |
| * | pctl: move types and resultsLiam2024-02-221-0/+2
| | |
| * | olsc: rewrite IOlscServiceForSystemServiceLiam2024-02-221-0/+2
| | |
| * | olsc: add IDaemonControllerLiam2024-02-221-0/+2
| | |
| * | olsc: move INativeHandleHolder, IOlscServiceForApplication, IOlscServiceForSystemService, ITransferTaskListControllerLiam2024-02-211-0/+8
| | |
* | | Merge pull request #13100 from liamwhite/audio-ipcliamwhite2024-02-231-14/+24
|\ \ \ | | | | | | | | audio: move to new ipc
| * | | audio: split IHardwarweOpusDecoder, move IHardwareOpusDecoderManagerLiam2024-02-211-2/+4
| | | |
| * | | audio: split IAudioDevice, IAudioRenderer, move IAudioRendererManagerLiam2024-02-211-4/+8
| | | |
| * | | audio: move IFinalOutputRecorderManager{,ForApplet}Liam2024-02-211-4/+4
| | | |
| * | | audio: rewrite IAudioOutManagerLiam2024-02-211-2/+2
| | | |
| * | | audio: rewrite IAudioOutLiam2024-02-211-0/+2
| | | |
| * | | audio: rewrite IAudioInManagerLiam2024-02-211-2/+2
| | | |
| * | | audio: rewrite IAudioInLiam2024-02-211-0/+2
| |/ /
* | | Merge pull request #13073 from FearlessTobi/fsp-srv-ipcliamwhite2024-02-231-1/+6
|\ \ \ | | | | | | | | fsp: Migrate remaining interfaces to cmif serialization
| * | | Address review commentsFearlessTobi2024-02-191-1/+1
| | | |
| * | | fs: Add and use fs_save_data_types.hFearlessTobi2024-02-191-0/+1
| | | |
| * | | fsp: Move IMultiCommitManager to a seperate fileFearlessTobi2024-02-191-0/+2
| | | |
| * | | fsp: Move ISaveDataInfoReader to a seperate fileFearlessTobi2024-02-191-0/+2
| | | |
* | | | Merge pull request #13117 from liamwhite/ovlnliamwhite2024-02-231-0/+15
|\ \ \ \ | | | | | | | | | | psc: stub overlay notification channel
| * | | | psc: stub overlay notification channelLiam2024-02-221-0/+9
| | | | |
| * | | | psc: move IPmControl, IPmModule, IPmServiceLiam2024-02-221-0/+6
| | |/ / | |/| |
* | | | Merge pull request #12982 from FearlessTobi/fs-rewrite-part0liamwhite2024-02-221-0/+4
|\ \ \ \ | |/ / / |/| | | fs: Add FileSystemAccessor and use cmif serialization
| * | | fs: Add FileSystemAccessor classesFearlessTobi2024-02-191-0/+4
| |/ /
* | | Merge pull request #13031 from german77/btm-interfcaeliamwhite2024-02-191-0/+10
|\ \ \ | |/ / |/| | service: btm: Migrate service to new IPC
| * | service: btm: Migrate service to new IPCNarr the Reg2024-02-161-0/+10
| | |
* | | core/CMakeLists: Sort alphabeticallyFearlessTobi2024-02-191-60/+58
| |/ |/|
* | Merge pull request #13035 from liamwhite/vi2Narr the Reg2024-02-191-12/+20
|\ \ | | | | | | vi: manage resources independently of nvnflinger and refactor
| * | vi: manage resources independently of nvnflinger and refactorLiam2024-02-181-6/+16
| | |
| * | vi: move shared buffer management from nvnflingerLiam2024-02-181-2/+2
| | |
| * | nvnflinger: convert to processLiam2024-02-181-2/+2
| | |
| * | am: unify display layer managementLiam2024-02-181-4/+2
| |/
* | Merge pull request #13048 from liamwhite/new-shellNarr the Reg2024-02-191-5/+38
|\ \ | | | | | | ns: rewrite for new IPC
| * | ns: rewrite IQueryServiceLiam2024-02-181-2/+2
| | |
| * | ns: rewrite IServiceGetterInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: rewrite IApplicationManagerInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: move IDevelopInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: rewrite ISystemUpdateInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: move ISystemUpdateControlLiam2024-02-181-0/+2
| | |
| * | ns: rewrite IVulnerabilityManagerInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: rewrite IReadOnlyApplicationControlDataInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: rewrite IReadOnlyApplicationRecordInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: add IDynamicRightsInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: rewrite IDownloadTaskInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: rewrite IDocumentInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: rewrite IContentManagementInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: move IFactoryResetInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: move IECommerceInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: move IApplicationVersionInterfaceLiam2024-02-181-0/+2
| | |
| * | ns: move IAccountProxyInterfaceLiam2024-02-181-0/+3
| | |
| * | ns: rewrite IPlatformServiceManagerLiam2024-02-181-2/+2
| | |
| * | ns: rename results headerLiam2024-02-181-1/+1
| |/
* / service: audio: Rewrite IAudioController to new IPCNarr the Reg2024-02-171-2/+2
|/
* vi: rewrite IApplicationRootService, IManagerRootService, ISystemRootServiceLiam2024-02-141-0/+2
|
* vi: split into implementation filesLiam2024-02-141-7/+16
|
* vi: extract typesLiam2024-02-141-0/+1
|
* Merge pull request #12996 from german77/settings-ipcliamwhite2024-02-141-0/+1
|\ | | | | service: set: Migrate ISettingsServer to new interface
| * service: set: Migrate ISettingsServer to new interfacegerman772024-02-141-0/+1
| |
* | Merge pull request #12993 from liamwhite/am-rewrite-part1Narr the Reg2024-02-141-52/+58
|\ \ | | | | | | am: rewrite part 1
| * | am: move out omm interfaces to new moduleLiam2024-02-121-6/+8
| | |
| * | am: rewrite IApplicationCreatorLiam2024-02-121-2/+2
| | |
| * | am: add IApplicationAccessorLiam2024-02-121-0/+2
| | |
| * | am: rewrite ILockAccessorLiam2024-02-121-2/+2
| | |
| * | am: rewrite IWindowControllerLiam2024-02-121-2/+2
| | |
| * | am: rewrite IStorageLiam2024-02-121-2/+2
| | |
| * | am: rewrite IStorageAccessor, ITransferStorageAccessorLiam2024-02-121-2/+2
| | |
| * | am: rewrite ISelfControllerLiam2024-02-121-2/+2
| | |
| * | am: rewrite IProcessWindingControllerLiam2024-02-121-2/+2
| | |
| * | am: rewrite ILibraryAppletSelfAccessorLiam2024-02-121-2/+2
| | |
| * | am: rewrite ILibraryAppletCreatorLiam2024-02-121-2/+2
| | |
| * | am: rewrite ILibraryAppletAccessorLiam2024-02-121-2/+2
| | |
| * | am: rewrite IHomeMenuFunctionsLiam2024-02-121-2/+2
| | |
| * | am: rewrite IGlobalStateController, add ICradleFirmwareUpdaterLiam2024-02-121-2/+4
| | |
| * | am: rewrite IDisplayControllerLiam2024-02-121-2/+2
| | |
| * | am: move IDebugFunctionsLiam2024-02-121-2/+2
| | |
| * | am: rewrite ICommonStateGetterLiam2024-02-121-2/+2
| | |
| * | am: rewrite IApplicationFunctionsLiam2024-02-121-2/+2
| | |
| * | am: rewrite IAppletCommonFunctionsLiam2024-02-121-2/+2
| | |
| * | am: rewrite IAudioControllerLiam2024-02-121-2/+2
| | |
| * | am: rewrite ISystemAppletProxyLiam2024-02-121-2/+2
| | |
| * | am: rewrite ILibraryAppletProxyLiam2024-02-121-2/+2
| | |
| * | am: rewrite IApplicationProxyLiam2024-02-121-2/+2
| | |
| * | am: rewrite appletAE, appletOELiam2024-02-121-4/+4
| |/
* / service: ldn: Migrate and refractor service to new IPCNarr the Reg2024-02-111-0/+12
|/
* Merge pull request #12969 from german77/bcat-interfaceliamwhite2024-02-101-2/+27
|\ | | | | service: bcat: Migrate and refractor service to new IPC
| * service: bcat: Address review issuesNarr the Reg2024-02-101-4/+4
| |
| * service: bcat: Implement news interfacesNarr the Reg2024-02-101-0/+12
| |
| * service: bcat: Migrate and refractor service to new IPCNarr the Reg2024-02-101-2/+15
| |
* | service: add os types and multi wait APILiam2024-02-071-4/+9
|/
* nvnflinger/gpu: implement layer stack compositionLiam2024-01-311-0/+3
|
* am: return AppletDataBroker and use for frontend appletsLiam2024-01-301-0/+2
|
* am: re-namespace frontend applets to frontend directoryLiam2024-01-301-23/+23
|
* am: add new datatypes for per-applet stateLiam2024-01-301-0/+17
|
* service: split am into componentsLiam2024-01-301-0/+45
|
* Move time services to new IPC.Kelebek12024-01-271-2/+2
| | | | Add some fixes/improvements to usage with the new IPC
* fs: Add path classFearlessTobi2024-01-251-28/+13
|
* vfs: Move vfs files to their own directoryFearlessTobi2024-01-251-44/+67
|
* fs: Move fsp_srv subclasses to separate filesFearlessTobi2024-01-251-2/+11
| | | | fs: Move additional files to the fsp directory
* Merge pull request #12783 from liamwhite/cmif-generationliamwhite2024-01-251-0/+2
|\ | | | | service: add template serializer for method calls
| * service: add template serializer for method callsLiam2024-01-251-0/+2
| |
* | Merge pull request #12499 from Kelebek1/timeliamwhite2024-01-251-35/+59
|\ \ | |/ |/| Rework time services
| * Rework time service to fix time passing offline.Kelebek12024-01-241-35/+59
| |
* | Merge pull request #12579 from FernandoS27/smmuliamwhite2024-01-221-0/+4
|\ \ | |/ |/| Core: Implement Device Mapping & GPU SMMU
| * GPU-SMMU: Estimate game leak and preallocate device region.Fernando Sahmkow2024-01-191-0/+2
| |
| * SMMU: Initial adaptation to video_core.Fernando Sahmkow2024-01-191-0/+2
| |
* | service: set: Refractor setting serviceNarr the Reg2024-01-161-8/+9
|/
* fsp-srv: use program registry for SetCurrentProcessLiam2024-01-111-0/+4
|
* service: set: Rename filesgerman772024-01-071-8/+8
|
* hid_core: Move hid to it's own subprojectNarr the Reg2024-01-051-95/+1
|
* service: hid: Implement NpadResource and NpadDataNarr the Reg2024-01-041-0/+4
|
* Merge pull request #12536 from german77/npad_interfaceliamwhite2024-01-011-3/+13
|\ | | | | service: hid: Use applet resource to get latest shared memory handle
| * service: hid: Use applet resource to get latest shared memory handleNarr the Reg2023-12-311-3/+13
| |
* | Merge pull request #12466 from liamwhite/sh2Narr the Reg2024-01-011-0/+1
|\ \ | | | | | | core: track separate heap allocation for linux
| * | core: track separate heap allocation for linuxLiam2023-12-261-0/+1
| |/
* / jit: use code memory handles correctlyLiam2023-12-291-0/+2
|/
* Merge pull request #12184 from Kelebek1/system_settingsliamwhite2023-12-161-0/+8
|\ | | | | Make system settings persistent across boots
| * Make system settings persistent across bootsKelebek12023-12-161-0/+8
| |
* | Merge pull request #12237 from liamwhite/nce-sigtrapliamwhite2023-12-161-2/+6
|\ \ | | | | | | nce: implement instruction emulation for misaligned memory accesses
| * | nce: implement instruction emulation for misaligned memory accessesLiam2023-12-111-2/+6
| |/
* / service: hid: Allow to create multiple instances of shared memoryNarr the Reg2023-12-141-2/+8
|/
* Merge pull request #12321 from liamwhite/ro2liamwhite2023-12-111-0/+6
|\ | | | | ro: add separate ro service
| * ro: add separate ro serviceLiam2023-12-091-0/+6
| |
* | Merge pull request #12299 from liamwhite/light-ipcliamwhite2023-12-101-0/+6
|\ \ | |/ |/| kernel: implement light IPC
| * kernel: implement light IPCLiam2023-12-071-0/+6
| |
* | Merge pull request #12289 from german77/aruidliamwhite2023-12-091-0/+2
|\ \ | |/ |/| service: hid: Introduce proper AppletResource emulation
| * service: hid: Introduce proper AppletResource emulationNarr the Reg2023-12-071-0/+2
| |
* | core: refactor emulated cpu core activationLiam2023-12-041-0/+2
|/
* core: Rename patcher fileGPUCode2023-11-291-2/+2
|
* qt: add cpu_backend configurationamazingfate2023-11-271-2/+1
|
* core: Define HAS_NCE macroGPUCode2023-11-251-1/+2
|
* arm: Implement native code execution backendLiam2023-11-251-0/+16
|
* service: hid: Create appropriate hid resourcesNarr the Reg2023-11-211-2/+7
|
* Merge pull request #11912 from liamwhite/nv-graphic-bufferliamwhite2023-11-181-0/+1
|\ | | | | nvnflinger: use graphic buffer lifetime for map handle
| * nvnflinger: use graphic buffer lifetime for map handleLiam2023-10-301-0/+1
| |
* | service: hid: Introduce firmware settings and update activate controller callsNarr the Reg2023-11-171-0/+2
| |
* | service: hid: Split hid.cpp into individual interfacesNarr the Reg2023-11-151-0/+8
| |
* | kernel: add KPageTableBaseLiam2023-11-101-3/+3
|/ | | | Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk>
* service: caps: Implement album manager and reorganize serviceNarr the Reg2023-10-081-2/+6
|
* service: nvnflinger: Implement shared bufferNarr the Reg2023-10-011-0/+2
| | | | Co-authored-by: Liam <byteslice@airmail.cc>
* Merge pull request #11526 from german77/mii_service_v2liamwhite2023-09-191-0/+4
|\ | | | | service: mii: Update implementation Part2 - Mii database support
| * service: mii: Implement database managergerman772023-09-181-0/+2
| |
| * service: mii: Implement figurine databasegerman772023-09-181-0/+2
| |
* | cmake: prefer system renderdoc headerAlexandre Bouvier2023-09-181-1/+1
|/
* Reimplement HardwareOpusKelebek12023-09-161-1/+1
|
* debug: Add renderdoc capture hotkeyGPUCode2023-09-141-1/+4
|
* ngc: implement serviceLiam2023-09-141-2/+2
|
* service: mii: separate mii types into their own filegerman772023-09-111-3/+11
|
* service: mii: Add mii util and resultgerman772023-09-111-0/+2
|
* vfs: expand support for NCA readingLiam2023-08-151-2/+43
|
* ssl: Link with crypt32 for secure channel backendMorph2023-07-171-1/+1
|
* Merge pull request #10912 from comex/sslliamwhite2023-07-161-0/+18
|\ | | | | Implement SSL service
| * Updates:comex2023-07-021-0/+4
| | | | | | | | | | - Address PR feedback. - Add SecureTransport backend for macOS.
| * Merge remote-tracking branch 'origin/master' into sslcomex2023-07-021-1/+0
| |\
| * | Fix more Windows build errorscomex2023-06-261-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...
| * | Implement SSL servicecomex2023-06-251-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.
* | | k_server_session: translate special header for non-HLE requestsLiam2023-07-081-0/+1
| |/ |/|
* | Merge pull request #10086 from Morph1984/coretiming-ng-1bunnei2023-06-221-1/+0
|\ \ | |/ |/| core_timing: Use CNTPCT as the guest CPU tick
| * core_timing: Use CNTPCT as the guest CPU tickMorph2023-06-081-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.
* | Merge pull request #10603 from lat9nq/tz-more-completebunnei2023-06-131-1/+1
|\ \ | | | | | | core,common: Implement missing time zone data/computations
| * | time_zone_binary: Add zoneinfo datalat9nq2023-06-051-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
* | | core: decouple ARM interface from DynarmicLiam2023-06-131-4/+5
| |/ |/|
* | Merge pull request #10508 from yuzu-emu/limebunnei2023-06-061-0/+1
|\ \ | |/ |/| Project Lime - yuzu Android Port
| * core: frontend: Refactor GraphicsContext to its own module.bunnei2023-06-031-0/+1
| |
* | vfs: add vfs_cached for romfs buildLiam2023-06-031-0/+2
|/
* service: nfc: Merge device interfaces and create the device managerNarr the Reg2023-05-061-10/+11
|
* service: nfp: Use an unique interfaceNarr the Reg2023-04-141-2/+2
|
* kernel: use KTypedAddress for addressesLiam2023-03-221-0/+1
|
* kernel: move KMemoryLayout for NX boardLiam2023-03-131-1/+1
|
* kernel: remove KLinkedListLiam2023-03-131-1/+0
|
* hle: rename legacy errors to ResultsLiam2023-03-071-1/+0
|
* nvnflinger: fix nameLiam2023-03-011-29/+29
|
* service: move hle_ipc from kernelLiam2023-03-011-3/+3
|
* Merge pull request #9832 from liamwhite/hle-mpliamwhite2023-03-011-2/+4
|\ | | | | service: HLE multiprocess
| * service: refactor server architectureLiam2023-02-211-2/+4
| | | | | | | | Converts services to have their own processes
* | cmake: use correct boost imported targetsAlexandre Bouvier2023-02-281-1/+1
| |
* | Partially apply LTO to only core and video_core projects.Matías Locatti2023-02-271-0/+4
|/
* kernel: add KObjectNameLiam2023-02-171-0/+2
|
* service: remove deleted servicesLiam2023-02-141-16/+0
|
* kernel/svc: switch to generated wrappersLiam2023-02-071-0/+1
|
* kernel/svc: Split implementations into separate filesLiam2023-02-051-1/+36
|
* kernel: add KDeviceAddressSpaceLiam2023-02-011-0/+2
|
* kernel: add KCapabilitiesLiam2023-01-301-0/+2
|
* Revert "Revert "k_page_group: synchronize""bunnei2023-01-081-0/+1
|
* Revert "k_page_group: synchronize"gidoly2022-12-291-1/+0
|
* k_page_group: synchronizeLiam2022-12-251-0/+1
|
* kernel: remove TimeManagerLiam2022-12-191-2/+0
|
* kernel: add KHardwareTimerLiam2022-12-181-0/+4
|
* Merge pull request #9369 from german77/mifareliamwhite2022-12-061-0/+2
|\ | | | | service: nfc: Implement mifare service
| * service: nfc: Implement mifare serviceNarr the Reg2022-12-021-0/+2
| |
* | cmake: prefer system librariesAlexandre Bouvier2022-12-041-1/+1
| |
* | CMake: Use precompiled headersameerj2022-11-301-0/+5
|/
* Merge branch 'master' into nfc_implNarr the Reg2022-11-201-0/+4
|\
| * service: am: Implement cabinet applet backendgerman772022-11-131-0/+4
| |
* | service: nfc: Implement nfc userNarr the Reg2022-11-191-0/+5
|/
* Initial ARM64 supportLiam2022-11-091-7/+7
|
* core: hle: kernel: Add KSystemResource.bunnei2022-11-041-0/+2
|
* core: hle: kernel: Add KPageTableManager.bunnei2022-11-041-0/+1
|
* core: hle: kernel: Add KPageTableSlabHeap.bunnei2022-11-041-0/+1
|
* core: hle: kernel: Add KEventInfo.bunnei2022-11-041-0/+1
|
* core: hle: kernel: Add KDebug.bunnei2022-11-041-0/+1
|
* general: Enforce C4800 everywhere except in video_coreMorph2022-10-221-0/+1
|
* CMakeLists: Remove all redundant warningsMorph2022-10-221-6/+1
| | | | These are already explicitly or implicitly set in src/CMakeLists.txt
* kernel: add KSessionRequestLiam2022-10-191-0/+2
|
* core: hle: kernel: Add KDynamicResourceManager.bunnei2022-10-191-0/+1
|
* core: hle: kernel: Add KDynamicSlabHeap.bunnei2022-10-191-0/+1
|
* core: hle: kernel: Add KDynamicPageManager.bunnei2022-10-191-0/+1
|
* kernel: remove KWritableEventLiam2022-10-131-2/+0
|
* NVDRV: Further refactors and eliminate old code.Fernando Sahmkow2022-10-061-2/+0
|
* NVDRV: Refactor and add new NvMap.Fernando Sahmkow2022-10-061-2/+6
|
* Merge pull request #8955 from german77/amiibo-rewritebunnei2022-10-021-1/+4
|\ | | | | core: nfp: Rewrite implementation to remove direct access from the frontend
| * service: nfp: Rewrite and implement applet callsgerman772022-10-021-1/+4
| |
* | Merge pull request #8876 from FearlessTobi/multiplayer-part3bunnei2022-10-011-0/+2
|\ \ | |/ |/| ldn: Implement "local wireless" networked multiplayer
| * ldn: Initial implementationFearlessTobi2022-09-091-0/+2
| |
* | service: hid: Partially implement palma controllerNarr the Reg2022-09-251-0/+2
| |
* | Merge pull request #8827 from german77/amiibo_releasebunnei2022-09-171-0/+3
|\ \ | | | | | | core: nfp: Implement amiibo encryption
| * | core: nfp: Implement amiibo encryptiongerman772022-09-071-0/+3
| |/
* / core/CMakeLists.txt: Remove duplicate files.SachinVin2022-09-081-6/+0
|/
* Merge pull request #8855 from german77/plsliamwhite2022-09-041-2/+2
|\ | | | | core: ns: Implement pl:s service
| * core: ns: Implement pl:s serviceNarr the Reg2022-09-031-2/+2
| |
* | yuzu_room: Remove dependency on coreFearlessTobi2022-08-271-2/+0
|/
* Merge pull request #8660 from Tachi107/findmodules-pkg-configliamwhite2022-08-211-1/+1
|\ | | | | build: simplify find modules
| * build(externals): rename Findopus to FindOpusAndrea Pappacoda2022-08-011-1/+1
| | | | | | | | | | This better matches upstream's FindOpus.cmake file, and it will make using upstream's FindOpus.cmake file easier.
* | core, network: Add ability to proxy socket packetsFearlessTobi2022-08-151-0/+2
| |
* | Merge pull request #8731 from FearlessTobi/better-ldnliamwhite2022-08-121-1/+2
|\ \ | | | | | | ldn: Add better stubs and more data types
| * | ldn: Add better stubs and more data typesFearlessTobi2022-08-071-1/+2
| | | | | | | | | | | | | | | Co-Authored-By: Narr the Reg <5944268+german77@users.noreply.github.com> Co-Authored-By: Morph <39850852+Morph1984@users.noreply.github.com>
* | | Merge pull request #8637 from liamwhite/bad-interruptsbunnei2022-08-081-2/+0
|\ \ \ | |/ / |/| | kernel: unlayer CPU interrupt handling
| * | kernel: unlayer CPU interrupt handlingLiam2022-07-251-2/+0
| | |
* | | core/loader: remove ELF loaderLiam2022-08-011-2/+0
| |/ |/|
* | Merge pull request #8636 from german77/irs_cluster_releaseliamwhite2022-07-271-0/+1
|\ \ | | | | | | service: irs: Implement clustering processor
| * | service: irs: Implement clustering processorgerman772022-07-241-0/+1
| |/
* | chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-271-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
* | Address first part of review commentsFearlessTobi2022-07-251-5/+5
| |
* | yuzu: Add ui files for multiplayer roomsFearlessTobi2022-07-251-6/+8
|/
* service: irs: Split processors and implement ImageTransferProcessorgerman772022-07-241-0/+14
|
* core: hid: Add cammera supportgerman772022-07-241-0/+1
|
* service: ptm: Rewrite PSM and add TSgerman772022-06-291-0/+4
|
* core: kernel: Replace instances of KPageLinkedList with KPageGroupgerman772022-06-271-1/+1
|
* CMakeLists: Make variable shadowing a compile-time errorMorph2022-06-141-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.
* core/debugger: Improved stepping mechanism and misc fixesLiam2022-06-011-0/+3
|
* core/debugger: Implement new GDB stub debuggerLiam2022-06-011-0/+7
|
* hidbus: Implement hidbus and ringcongerman772022-04-161-0/+10
|
* service: jit: Implement the JIT serviceLiam2022-04-131-0/+2
|
* core: extract symbol readingLiam2022-04-091-0/+2
|
* service: jit: stub JIT serviceLiam2022-04-071-0/+2
|
* hle: nvflinger: Merge Rect with Common::Rectangle.bunnei2022-03-251-1/+0
|
* hle: nvflinger: Add implementation for HosBinderDriverServer service.bunnei2022-03-251-0/+2
|
* hle: nvflinger: Add implementation for BufferQueueProducer class.bunnei2022-03-251-2/+2
|
* hle: nvflinger: Add implementation for BufferQueueCore class.bunnei2022-03-251-0/+2
|
* hle: nvflinger: Add implementation for BufferQueueConsumer class.bunnei2022-03-251-0/+2
|
* hle: nvflinger: Add implementation for QueueBufferInput and QueueBufferOutput structs.bunnei2022-03-251-0/+2
|
* hle: nvflinger: Add implementation for BufferItemConsumer class.bunnei2022-03-251-0/+2
|
* hle: nvflinger: Add implementation for ConsumerBase class.bunnei2022-03-251-0/+2
|
* hle: nvflinger: Add implementation for BufferSlot class.bunnei2022-03-251-0/+1
|
* hle: nvflinger: Add implementation for BufferItem class.bunnei2022-03-251-0/+1
|
* hle: nvflinger: Move implementation for Parcel to its own header.bunnei2022-03-251-0/+1
|
* hle: nvflinger: Add android buffer queue definitions to its own header.bunnei2022-03-251-0/+1
|
* hle: nvflinger: Add IBinder interface.bunnei2022-03-251-0/+1
|
* hle: nvflinger: Add IConsumerListener interface.bunnei2022-03-251-0/+1
|
* hle: nvflinger: Add ProducerListener interface.bunnei2022-03-251-0/+1
|
* hle: nvflinger: Add android window enumerations to its own header.bunnei2022-03-251-0/+1
|
* hle: nvflinger: Move BufferTransformFlags to its own header.bunnei2022-03-251-0/+1
|
* hle: nvflinger: Move PixelFormat to its own header.bunnei2022-03-251-0/+1
|
* hle: nvflinger: Add implementation for GraphicBuffer class.bunnei2022-03-251-0/+1
|
* hle: nvflinger: Add implementation for Fence class.bunnei2022-03-251-0/+2
|
* hle: nvflinger: Add implementation for Rect class.bunnei2022-03-251-0/+1
|
* applets/mii: Move MiiEdit applet types into its own fileMorph2022-03-221-0/+1
|
* applets: Rename Mii to MiiEditMorph2022-03-221-4/+4
|
* general: Reduce core.h includesameerj2022-03-181-0/+1
|
* Merge pull request #7964 from german77/miiiibunnei2022-03-171-0/+4
|\ | | | | applet: mii: Simple implementation of mii applet
| * applet: mii: Simple implementation of mii appletgerman772022-03-011-0/+4
| |
* | core: hle: kernel: k_page_buffer: Add KThreadLocalPage primitive.bunnei2022-03-151-0/+2
| |
* | core: hle: kernel: k_page_buffer: Add KPageBuffer primitive.bunnei2022-03-151-0/+1
| |
* | hle: kernel: Add initial_process.h header.bunnei2022-02-271-0/+1
| |
* | hle: kernel: board: nx: Add k_memory_layout.h header.bunnei2022-02-271-0/+1
|/
* service/mnpp: Stub mnpp_appNarr the Reg2022-02-111-0/+2
| | | | Used in Super Nintendo Entertainment System™ - Nintendo Switch Online
* core: hle: kernel: Add KWorkerTask and KWorkerTaskManager.bunnei2022-01-151-0/+3
| | | | - These primitives are used to dispatch asynchronous kernel tasks from KThread and KProcess.
* core: hle: kernel: Implement thread pinning.bunnei2021-12-311-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.
* core: hle: Remove global HLE lock.bunnei2021-12-181-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.
* Merge pull request #7462 from bunnei/kernel-improve-schedulingbunnei2021-12-131-0/+2
|\ | | | | Kernel: Improve threading & scheduling V3
| * hle: kernel: KLightConditionVariable: Migrate to updated KThreadQueue.bunnei2021-12-071-0/+1
| |
| * hle: kernel: Update KThreadQueue and migrate KSynchronizationObject.bunnei2021-12-071-0/+1
| |
* | Merge pull request #7519 from itsmeft24/masterbunnei2021-12-091-0/+2
|\ \ | | | | | | kernel: svc: Implement ProcessMemory and CodeMemory SVCs
| * | Add KCodeMemory to CMakeLists.txtitsmeft242021-12-051-0/+2
| |/
* / service/notif: Add notif:a and stub ListAlarmSettings,Initializegerman772021-12-061-0/+2
|/ | | | Used by ring fit adventure 1.2.0
* core/pdm: Stub QueryPlayStatisticsByApplicationIdAndUserAccountIdNarr the Reg2021-11-281-0/+2
| | | | Used in checkpoint homebrew
* service/hid: Create ring LIFOgerman772021-11-251-1/+1
|
* core/hid: Add emulated controllersgerman772021-11-251-0/+8
|
* core/hid: Move motion_input, create input converter and hid_typesgerman772021-11-251-0/+5
|
* core/hid: Move input_interpreter to hidgerman772021-11-251-2/+2
|
* Merge pull request #7091 from vonchenplus/fix_memroy_leakAmeer J2021-10-041-0/+1
|\ | | | | core: Fix memory leak
| * Fix KShareMemory object leakFeng Chen2021-09-291-0/+1
| |
* | service: bcat: Remove BoxCat BCAT implementationMorph2021-09-291-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.
* | externals: Remove libzipMorph2021-09-291-1/+1
| |
* | file_sys: Remove vfs_libzipMorph2021-09-291-2/+0
|/
* account: EnsureTokenIdCacheAsyncChloe Marcec2021-09-061-0/+2
| | | | Closes #2547, #6946
* ngct: Stub NGCT:U servicegerman772021-08-271-0/+2
|
* configuration: add option to select network interfacespholz2021-08-121-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.
* hle: service: Add a helper module for managing kernel objects.bunnei2021-07-211-0/+2
|
* service: Append service name prefix to common filenamesMorph2021-07-141-22/+22
|
* applets: Append applet_ prefix to backend appletsMorph2021-07-141-14/+14
|
* CMakeLists: Treat -Wsign-compare as an error on GCC/ClangMorph2021-07-061-2/+0
| | | | Treats (un)signed comparison mismatches as errors to be consistent with MSVC
* core: Enforce C4242Morph2021-06-281-6/+3
|
* hle: api_version: Add HLE API version constantsMorph2021-06-161-0/+1
|
* spl: Add SPL typesMorph2021-06-161-0/+1
|
* spl: Add SPL result codesMorph2021-06-161-0/+1
|
* core: Make variable shadowing a compile-time errorLioncash2021-05-161-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.
* hle: kernel: Migrate to KHandleTable.bunnei2021-05-061-2/+2
|
* hle: kernel: Rename Process to KProcess.bunnei2021-05-061-2/+2
|
* hle: kernel: Remove deprecated Object class.bunnei2021-05-061-2/+0
|
* hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject.bunnei2021-05-061-0/+2
|
* hle: kernel: Migrate KServerPort to KAutoObject.bunnei2021-05-061-2/+2
|
* hle: kernel: Migrate KClientPort to KAutoObject.bunnei2021-05-061-2/+2
|
* hle: kernel: Migrate KTransferMemory to KAutoObject.bunnei2021-05-061-2/+2
|
* hle: kernel: Migrate KSession, KClientSession, and KServerSession to KAutoObject.bunnei2021-05-061-6/+6
|
* hle: kernel: Migrate more of KThread to KAutoObject.bunnei2021-05-061-0/+2
|
* hle: kernel: Add initial impl. of slab setup.bunnei2021-05-061-0/+2
|
* hle: kernel: Add initial impl. of KLinkedList.bunnei2021-05-061-0/+1
|
* hle: kernel: Add initial impl. of KSlabAllocated.bunnei2021-05-061-0/+1
|
* hle: kernel: Add initial impl. of KAutoObjectWithListContainer.bunnei2021-05-061-0/+2
|
* hle: kernel: Add initial impl. of KAutoObject.bunnei2021-05-061-0/+2
|
* Merge pull request #6226 from german77/sevensixbunnei2021-04-301-0/+2
|\ | | | | hid: Implement SevenSixAxis and ConsoleSixAxisSensor
| * hid: Implement SevenSixAxis and ConsoleSixAxisSensorgerman772021-04-241-0/+2
| |
* | glue: Add ectx:aw placeholdergerman772021-04-241-0/+2
|/
* applets/swkbd: Implement the Normal and Inline Software Keyboard AppletMorph2021-04-151-0/+1
|
* common: Move settings to common from core.bunnei2021-04-151-2/+0
| | | | - Removes a dependency on core and input_common from common.
* Merge pull request #6172 from degasus/cmake_opusbunnei2021-04-101-1/+1
|\ | | | | externals: Search for shared opus installation.
| * externals: Search for shared opus installation.Markus Wick2021-04-081-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.
* | hle: kernel: k_memory_layout: Derive memory regions based on board layout.bunnei2021-03-211-0/+2
| |
* | hle: kernel: board: Add secure_monitor module.bunnei2021-03-211-0/+1
| |
* | hle: kernel: Add k_trace module.bunnei2021-03-211-0/+1
| |
* | hle: kernel: KSystemControl: Update to reflect board-specific behavior.bunnei2021-03-211-1/+2
| |
* | hle: kernel: Add initial KMemoryRegionType module.bunnei2021-03-211-0/+1
| |
* | hle: kernel: Move KMemoryRegion to its own module and update.bunnei2021-03-211-0/+1
|/
* hle: kernel: Migrate PageHeap/PageTable to KPageHeap/KPageTable.bunnei2021-02-191-4/+4
|
* hle: kernel: Migrate MemoryManager to KMemoryManager.bunnei2021-02-191-2/+2
|
* hle: kernel: Migrate PageLinkedList to KPageLinkedList.bunnei2021-02-191-1/+1
|
* hle: kernel: Migrate to KMemoryBlock, KMemoryBlockManager, and others.bunnei2021-02-191-4/+4
|
* hle: kernel: Migrate SlabHeap to KSlabHeap.bunnei2021-02-191-1/+1
|
* hle: kernel: Migrate MemoryLayout to KMemoryLayout.bunnei2021-02-191-1/+1
|
* hle: kernel: Migrate AddressSpaceInfo to KAddressSpaceInfo.bunnei2021-02-191-2/+2
|
* hle: kernel: KSystemControl does not belong in Memory namespace.bunnei2021-02-191-2/+2
|
* hle: kernel: Add KPageBitmap class.bunnei2021-02-191-0/+1
|
* hle: kernel: Add KSpinLock implementation.bunnei2021-02-191-0/+2
|
* hle: kernel: Rename SharedMemory to KSharedMemory.bunnei2021-02-191-2/+2
|
* core: core_timing_util: Optimize core timing math.bunnei2021-02-151-1/+0
| | | | - Avoids a lot of unnecessary 128-bit math for imperceptible accuracy.
* core/CMakeLists: Add web_types.hMorph2021-02-151-0/+1
|
* hle: service: ldn: IUserLocalCommunicationService: Indicate that LDN is disabled.bunnei2021-02-141-0/+1
| | | | - Fixes crash on Pokemon Sword/Shield when pressing 'Y'.
* kernel: KScopedReservation implementationameerj2021-02-131-0/+1
| | | | This implements KScopedReservation, allowing resource limit reservations to be more HW accurate, and release upon failure without requiring too many conditionals.
* kernel: Unify result codes (#5890)Chloe2021-02-131-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
* core: Add -fsized-dealloction as a Clang flaglat9nq2021-02-101-0/+2
| | | | Prevents a operator delete error when compiling with Clang 11.
* hle: kernel: Implement KEvent.bunnei2021-02-051-0/+2
|
* hle: kernel: Rename WritableEvent to KWritableEvent.bunnei2021-02-051-2/+2
|
* hle: kernel: Rename ReadableEvent to KReadableEvent.bunnei2021-02-051-2/+2
|
* kernel: Rewrite resource limit to be more accurateChloe Marcec2021-01-301-2/+3
| | | | Matches closer to hardware
* core: hle: kernel: Implement KLightLock.bunnei2021-01-291-0/+2
|
* core: hle: kernel: Implement KThreadQueue.bunnei2021-01-291-0/+1
|
* core: hle: kernel: Rename Thread to KThread.bunnei2021-01-291-2/+2
|
* lm: Recode LM serviceChloe Marcec2021-01-201-2/+0
| | | | Rework the service to spit out to logs instead of a seperate file as well as fix any crashes caused by lm.
* core/cmake: Enforce Wclass-memaccessReinUsesLisp2021-01-151-0/+1
| | | | Treat -Wclass-memaccess as an error.
* core/cmake: Remove Werror flags already defined code-base wideReinUsesLisp2021-01-151-2/+0
|
* core: hle: Integrate new KConditionVariable and KAddressArbiter implementations.bunnei2021-01-111-4/+0
|
* core: hle: kernel: Update KAddressArbiter.bunnei2021-01-111-0/+2
|
* core: hle: kernel: Update KConditionVariable.bunnei2021-01-111-0/+2
|
* core: hle: kernel: Begin moving common SVC defintions to its own header.bunnei2021-01-111-0/+1
|
* core: hle: kernel: Update KSynchronizationObject.bunnei2021-01-111-4/+2
|
* core: hle: kernel: Begin moving common SVC results to its own header.bunnei2021-01-111-0/+1
|
* core: Enforce C4715 (not all control paths return a value)ReinUsesLisp2021-01-051-0/+2
|
* hle: service: bsd: Update to work with service threads, removing SleepClientThread.bunnei2020-12-291-1/+0
|
* core: hle: server_session: Use separate threads for each service connection.bunnei2020-12-291-0/+2
|
* Merge pull request #5042 from Morph1984/project-aetherbunnei2020-12-221-0/+2
|\ | | | | Project Aether: Reimplementation of the Web Browser Applet
| * frontend/input_interpreter: Add InputInterpreter APIMorph2020-12-181-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>
* | Merge pull request #5131 from bunnei/scheduler-rewritebunnei2020-12-211-2/+9
|\ \ | |/ |/| Rewrite Kernel scheduler based on Atmosphere
| * hle: kernel: Migrate to KScopedSchedulerLock.bunnei2020-12-061-0/+1
| |
| * hle: kernel: Separate KScopedSchedulerLockAndSleep from k_scheduler.bunnei2020-12-061-0/+1
| |
| * hle: kernel: Separate KScheduler from GlobalSchedulerContext class.bunnei2020-12-061-0/+2
| |
| * hle: kernel: Rewrite scheduler implementation based on Mesopshere.bunnei2020-12-061-2/+2
| |
| * hle: kernel: Port KAbstractSchedulerLock from Mesosphere.bunnei2020-12-061-0/+1
| |
| * common: Port KPriorityQueue from Mesosphere.bunnei2020-12-061-0/+1
| |
| * hle: kernel: Port KAffinityMask from Mesosphere.bunnei2020-12-061-0/+1
| |
* | file_sys: Consolidate common Title ID operationsMorph2020-12-081-0/+1
|/
* core: Eliminate remaining usages of the global system instanceLioncash2020-11-271-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.
* hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled functions.bunnei2020-11-191-0/+2
| | | | - Used by Animal Cross: New Horizons v1.6.0 update, minimal stub gets this update working.
* Merge pull request #4888 from lioncash/unicorn-removebunnei2020-11-071-3/+1
|\ | | | | core: Remove usage of unicorn
| * core: Remove usage of unicornLioncash2020-11-041-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.
* | hle: service: nvdrv: Implement SyncpointManager, to manage syncpoints.bunnei2020-11-011-0/+2
|/
* video_core: NVDEC Implementationameerj2020-10-271-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>
* core: Fix clang build pt.2Lioncash2020-10-211-2/+5
| | | | Resolves the clang build issue in a more unintrusive way.
* Revert "core: Fix clang build"bunnei2020-10-211-3/+2
|
* Merge pull request #4796 from lioncash/clangLC2020-10-211-2/+3
|\ | | | | core: Fix clang build
| * core: Fix clang buildLioncash2020-10-181-2/+3
| | | | | | | | | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* | core: Add boxcat sources with target_sourcesLioncash2020-10-181-7/+7
|/ | | | Same behavior, minus a script variable.
* core/CMakeLists: Make some warnings errorsLioncash2020-10-131-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.
* Merge pull request #4597 from Morph1984/mjolnir-p2bunnei2020-09-111-0/+4
|\ | | | | Project Mjölnir: Part 2 - Controller Applet
| * Project Mjölnir: Part 2 - Controller AppletMorph2020-09-041-0/+4
| | | | | | | | Co-authored-by: Its-Rei <kupfel@gmail.com>
* | service/sockets: Add worker abstraction to execute blocking calls asynchronouslyReinUsesLisp2020-07-281-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.
* | service/sockets: Add translate functionsReinUsesLisp2020-07-281-0/+2
|/ | | | | These functions translate from Network enumerations/structures to guest enumerations/structures and viceversa.
* core/network: Add network abstractionReinUsesLisp2020-07-191-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.
* core/CMakeLists: Add missing physical_memory.h header fileLioncash2020-07-171-0/+1
| | | | Allows this header file to show up in IDE CMake generators.
* hle: service: mii: Rewrite service to properly support creation of random and default miis.bunnei2020-07-121-2/+5
|
* externals: Track opus as submodule instead of using conanDavid Marcec2020-07-011-1/+1
| | | | Supersedes #4068 see for details.
* ARM: Update Dynarmic and Setup A32 according to latest interface.Fernando Sahmkow2020-06-271-0/+8
|
* General: Cleanup legacy code.Fernando Sahmkow2020-06-271-2/+0
|
* General: Recover Prometheus project from harddrive failure Fernando Sahmkow2020-06-271-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.
* Merge pull request #3396 from FernandoS27/prometheus-1David2020-06-271-0/+2
|\ | | | | Implement SpinLocks, Fibers and a Host Timer
| * Core: Implement a Host Timer.Fernando Sahmkow2020-06-181-0/+2
| |
* | Fix compilation when not building with boxcatDavid Marcec2020-06-191-2/+2
|/ | | | Fixes compilation when trying to build without boxcat enabled
* Replace externals with Conan (#3735)James Rowe2020-05-081-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
* kernel: Remove old VMManager class.bunnei2020-04-171-2/+0
|
* kernel: memory: Add PageTable class, to manage process address space.bunnei2020-04-171-0/+2
|
* kernel: memory: Add MemoryLayout class, to build physical memory layout.bunnei2020-04-171-0/+1
|
* kernel: memory: Add MemoryManager class, to manage page heaps.bunnei2020-04-171-0/+2
|
* kernel: memory: Add MemoryBlockManager class, to manage memory blocks.bunnei2020-04-171-0/+2
|
* kernel: memory: Add PageHeap class, to manage a heap of pages.bunnei2020-04-171-0/+2
|
* kernel: memory: Add PageLinkedList class, to manage a list of pages.bunnei2020-04-171-0/+1
|
* kernel: memory: Add system_control code, which will be used for ASLR support.bunnei2020-04-171-0/+2
|
* kernel: memory: Add MemoryBlock class, for managing memory blocks and their state.bunnei2020-04-171-0/+1
|
* kernel: memory: Add memory_types.h, for things that are commonly used in memory code.bunnei2020-04-171-0/+1
|
* kernel: memory: Add SlabHeap class, for managing memory heaps.bunnei2020-04-171-0/+1
| | | | - This will be used for TLS pages, among other things.
* kernel: memory: Add AddressSpaceInfo class, for managing the memory address space.bunnei2020-04-171-0/+2
|
* core: device_manager: Add a simple class to manage device RAM.bunnei2020-04-171-0/+2
|
* core: kernel: Add svc_types header to include SVC-specific types.bunnei2020-04-171-0/+1
|
* externals: Move LibreSSL linking to httplib.Markus Wick2020-04-161-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.
* Merge pull request #3552 from jroweboy/single-contextRodrigo Locatti2020-04-021-2/+0
|\ | | | | Refactor Context management (Fixes renderdoc on opengl issues)
| * Frontend/GPU: Refactor context managementJames Rowe2020-03-251-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
* | capsrv: Split Capture services into individual files and stub GetAlbumContentsFileListForApplication (#3571)Morph2020-04-011-0/+12
|/ | | | | | | * Organize capture services into individual files * Stub GetAlbumContentsFileListForApplication * Address feedback
* core: Implement separate A32/A64 ARM interfaces.bunnei2020-03-031-2/+4
|
* core: dynarmic: Add CP15 from Citra.bunnei2020-03-031-0/+2
|
* core: frontend: Refactor scope_acquire_window_context to scope_acquire_context.bunnei2020-02-261-2/+2
|
* Kernel: Implement Time Manager.Fernando Sahmkow2020-02-221-0/+2
|
* Kernel: Refactor synchronization to better match REFernando Sahmkow2020-02-111-0/+2
|
* Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.Fernando Sahmkow2020-02-111-2/+2
|
* Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.Fernando Sahmkow2020-01-261-4/+4
| | | | This commit instends on better naming the new purpose of this classes.
* Core: Refactor CPU Management.Fernando Sahmkow2020-01-251-0/+2
| | | | This commit moves ARM Interface and Scheduler handling into the kernel.
* system_archive: Add a basic HLE implementation for time zone binary.bunnei2020-01-041-0/+2
|
* service: time: Rewrite implementation of glue services.bunnei2020-01-041-0/+28
|
* kernel: Implement a more accurate IPC dispatch.bunnei2019-11-281-0/+1
|
* core/memory: Migrate over memory mapping functions to the new Memory classLioncash2019-11-271-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.
* CMakeLists: Make most implicit type conversion warnings errors on MSVCLioncash2019-11-121-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.
* externals: Move OSS font data to file_sys in coreZach Hilman2019-10-131-1/+15
|
* Merge pull request #2654 from DarkLordZach/lm-log-rewritebunnei2019-10-091-0/+2
|\ | | | | lm: Rewrite logger to use core reporting services
| * core: Add LM::Manager to systemZach Hilman2019-09-221-0/+2
| | | | | | Allows centralized control over logging mechanisms.
* | module: Create BCAT backend based upon Settings value on constructionZach Hilman2019-09-301-0/+20
|/
* Revert "Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1"David Marcec2019-09-221-15/+1
| | | | | This reverts commit fa1c60c33ef88c6cd0b72da46842dc9098db712d, reversing changes made to e34899067b60a69bca02761bd1290c6824bb559a.
* Merge pull request #2535 from DarkLordZach/cheat-v2David2019-09-221-2/+5
|\ | | | | cheat_engine: Use Atmosphere's Cheat VM and fix cheat crash
| * cheat_engine: Move to memory and strip VMZach Hilman2019-09-221-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.
* | externals: Move OSS font data to file_sys in coreZach Hilman2019-09-221-1/+15
|/
* Merge pull request #2707 from DarkLordZach/oss-miimodelDavid2019-09-051-0/+2
|\ | | | | system_archive: Add open-source reimplementation of MiiModel data
| * system_archive: Add open-source reimplementation of MiiModel dataZach Hilman2019-07-101-0/+2
| |
* | Merge pull request #2592 from FernandoS27/sync1bunnei2019-07-261-0/+3
|\ \ | |/ |/| Implement GPU Synchronization Mechanisms & Correct NVFlinger
| * Gpu: Implement Hardware Interrupt Manager and manage GPU interruptsFernando Sahmkow2019-07-051-0/+2
| |
| * nv_services: Correct buffer queue fencing and GPFifo fencingFernando Sahmkow2019-07-051-0/+1
| |
* | Merge pull request #2657 from ogniK5377/npad-assignmentsZach Hilman2019-07-081-0/+1
|\ \ | | | | | | hid:StartLrAssignmentMode, hid:StopLrAssignmentMode, hid:SwapNpadAssignment
| * | hid:StartLrAssignmentMode, hid:StopLrAssignmentMode, hid:SwapNpadAssignmentDavid Marcec2019-07-011-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
* | | Merge pull request #2651 from DarkLordZach/apm-boost-mode-1bunnei2019-07-081-0/+2
|\ \ \ | |_|/ |/| | apm: Initial implementation of performance config and boost mode
| * | apm: Add Controller class to manage speed data and applicationZach Hilman2019-06-291-0/+2
| | |
* | | Merge pull request #2613 from ogniK5377/InitalizeApplicationInfoZach Hilman2019-07-041-0/+1
|\ \ \ | | | | | | | | Implemented InitializeApplicationInfo & InitializeApplicationInfoRestricted
| * | | Added errors.h to cmakelistDavid Marcec2019-06-281-0/+1
| |/ /
* | | Merge pull request #2608 from ogniK5377/Time_GetSharedMemoryNativeHandleZach Hilman2019-07-041-0/+2
|\ \ \ | | | | | | | | Implement Time::GetSharedMemoryNativeHandle
| * | | Implement Time::GetSharedMemoryNativeHandleDavid Marcec2019-06-251-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
* | | | Merge pull request #2604 from ogniK5377/INotificationServicebunnei2019-07-031-0/+1
|\ \ \ \ | |_|_|/ |/| | | Implemented INotificationService
| * | | Implemented INotificationServiceDavid Marcec2019-06-241-0/+1
| |/ /
* | | Merge pull request #2533 from DarkLordZach/memory-frozenbunnei2019-06-281-0/+2
|\ \ \ | |_|/ |/| | memory: Add class to manage and enforce memory freezing
| * | core: Move Freezer class to tools namespaceZach Hilman2019-06-211-2/+2
| | |
| * | memory: Add class to manage and enforce memory freezingZach Hilman2019-06-211-0/+2
| | |
* | | glue: Add errors for glue/arp servicesZach Hilman2019-06-251-2/+7
| | |
* | | glue: Add manager to keep track of application registryZach Hilman2019-06-251-0/+2
| |/ |/| | | | | Manages mapping between title IDs and application launch and control properties.
* | Merge pull request #2546 from DarkLordZach/kipsbunnei2019-06-211-0/+4
|\ \ | | | | | | loader, file_sys: Add support for parsing and loading KIP (Kernel Internal Process) files
| * | loader: Add AppLoader_KIP for KIP filesZach Hilman2019-06-051-0/+2
| | |
| * | file_sys: Add classes to parse KIP1 and INI1 filesZach Hilman2019-06-051-0/+2
| | |
* | | Merge pull request #2482 from DarkLordZach/prepobunnei2019-06-211-1/+3
|\ \ \ | |_|/ |/| | core: Add detailed local reporting feature for development
| * | core: Add Reporter class to take/save reportsZach Hilman2019-05-251-1/+3
| | |
* | | core: Remove unused CiTrace source filesLioncash2019-06-181-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.
* | | constants: Extract backup JPEG used by account servicesZach Hilman2019-06-071-0/+2
| | |
* | | Merge pull request #2510 from SciresM/desired_languageZach Hilman2019-06-051-0/+3
|\ \ \ | |_|/ |/| | Implement/Fix IApplicationFunctions::GetDesiredLanguage
| * | Address review commentsMichael Scire2019-05-231-2/+2
| | |
| * | Implement IApplicationFunctions::GetDesiredLanguageMichael Scire2019-05-231-0/+3
| |/
* / mii: Implement IDatabaseService commands using MiiManagerZach Hilman2019-04-251-0/+2
|/ | | Since the MiiManager was designed around the IPC interface, this is quite easy. Only functions that were clearly defined were implemented.
* frontend: Add frontend receiver for Error appletZach Hilman2019-04-171-2/+8
|
* core: Do not link LZ4 to core. Use common/data_compression for nso segment decompression instead.unknown2019-03-291-1/+1
|
* Merge pull request #2232 from lioncash/transfer-memorybunnei2019-03-241-0/+2
|\ | | | | core/hle/kernel: Split transfer memory handling out into its own class
| * core/hle/kernel: Split transfer memory handling out into its own classLioncash2019-03-131-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.
* | Merge pull request #2221 from DarkLordZach/firmware-versionbunnei2019-03-231-0/+2
|\ \ | | | | | | set_sys: Implement GetFirmwareVersion(2) for libnx hosversion
| * | set_sys: Implement GetFirmwareVersion(2) for libnx hosversionZach Hilman2019-03-101-0/+2
| |/ | | | | Uses the synthesized system archive 9 (SystemVersion) and reports v5.1.0-0.0
* | Merge pull request #1933 from DarkLordZach/cheat-enginebunnei2019-03-221-0/+2
|\ \ | | | | | | file_sys: Implement parser and interpreter for game memory cheats
| * | cheat_engine: Add parser and interpreter for game cheatsZach Hilman2019-03-051-0/+2
| | |
* | | kernel: Move CodeSet structure to its own source filesLioncash2019-03-201-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.
* | | loader: Remove Linker classLioncash2019-03-201-2/+0
| | | | | | | | | | | | Given the class is now currently unused, it can be removed.
* | | core: Move PageTable struct into Common.bunnei2019-03-171-2/+0
| |/ |/|
* | hle/service/audio: Extract audio error codes to a headerLioncash2019-03-051-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).
* service/nvflinger: Relocate definitions of Layer and Display to the vi serviceLioncash2019-02-201-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.
* kernel: Remove the Timer classLioncash2019-02-011-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).
* frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl.bunnei2019-01-241-0/+2
|
* Merge pull request #1939 from DarkLordZach/web-appletbunnei2019-01-101-0/+4
|\ | | | | applets: Implement HLE web browser applet (LibAppletOff)
| * core: Add getter and setter for WebBrowserApplet frontendZach Hilman2018-12-281-0/+2
| |
| * applets: Implement LibAppletOff (Web) appletZach Hilman2018-12-281-0/+2
| |
* | Merge pull request #1847 from ogniK5377/backtrace-breakbunnei2018-12-301-0/+1
|\ \ | |/ |/| Print backtrace on svcBreak
| * Moved log backtrace to arm_interface.cpp. Added printing of error code to fatalDavid Marcec2018-12-291-0/+1
| |
* | Merge pull request #1928 from lioncash/capsbunnei2018-12-271-0/+2
|\ \ | | | | | | kernel: Handle kernel capability descriptors
| * | kernel/process: Introduce process capability parsing skeletonLioncash2018-12-211-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.
* | | Merge pull request #1781 from DarkLordZach/applet-profile-selectbunnei2018-12-231-0/+4
|\ \ \ | |/ / |/| | am: Implement HLE profile selector applet
| * | qt: Implement GUI dialog frontend for ProfileSelectorZach Hilman2018-12-031-0/+2
| | | | | | | | | Presents profiles in a list, similar to switch.
| * | frontend: Add frontend applet for ProfileSelectZach Hilman2018-12-031-0/+2
| | | | | | | | | Responsible for selecting a profile and firing callback upon completion.
* | | Merge pull request #1704 from DarkLordZach/oss-sysarchivebunnei2018-12-051-0/+4
|\ \ \ | |/ / |/| | file_sys: Implement open source system archives
| * | file_sys: Add framework for synthesizing open source archivesZach Hilman2018-11-161-0/+4
| | |
* | | kernel: Divide Event into ReadableEvent and WritableEventZach Hilman2018-11-291-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.
* | Merge pull request #1770 from DarkLordZach/applet-stubbunnei2018-11-231-0/+2
|\ \ | | | | | | applets: Add StubApplet and use it as fallback when AppletId is not implemented
| * | applets: Add StubAppletZach Hilman2018-11-221-0/+2
| | | | | | | | | | | | This will log all data it receives, log all calls to its methods and push dummy data into both channels on execution.
* | | core: Relocate CPU core management to its own classLioncash2018-11-221-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.
* | am/applets: Add connector between frontend and AM applet classesZach Hilman2018-11-181-0/+2
| | | | | | Provides a middleman between the Frontend provider class and the expected AM::Applets::Applet class needed by ILibraryAppletAccessor
* | frontend/applets: Add frontend software keyboard provider and defaultZach Hilman2018-11-181-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.
* | am/applets: Add Applet superclass to describe a generic appletZach Hilman2018-11-181-0/+2
|/ | | Adds an Initialize and Execute methods which are used by the ILibraryAppletAccessor to start and control the applet.
* Merge pull request #1545 from DarkLordZach/psmbunnei2018-10-221-0/+2
|\ | | | | psm: Add psm service and stub commands 0 and 1
| * service: Add skeleton for psm serviceZach Hilman2018-10-211-0/+2
| | | | | | | | Seems to be the power controller. Listed in switchbrew under the category PTM services.
* | service: Add the basic skeleton for the NPNS servicesLioncash2018-10-211-0/+2
| |
* | am: Add the basic skeleton for the tcap serviceLioncash2018-10-211-0/+2
|/ | | | Added based off information provided by Switchbrew.
* Merge pull request #1444 from ogniK5377/better-hidbunnei2018-10-181-0/+18
|\ | | | | "Better Hid" Rework Part 1
| * "Better Hid" rework part 1David Marcec2018-10-101-0/+18
| |
* | Merge pull request #1473 from lioncash/cmakebunnei2018-10-161-2/+2
|\ \ | | | | | | web_service: Make linkage of web_service-related externals and the library private
| * | core/CMakeLists: Make all web_service-related libraries privateLioncash2018-10-111-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.
| * | core/CMakeLists: Use target_compile_definitions instead of add_definitions for specifying ENABLE_WEB_SERVICELioncash2018-10-111-1/+1
| |/ | | | | | | | | Avoids introducing the definition to the whole directory space and localizes it to being added to the library that needs it.
* | crypto: Add PartitionDataManagerZach Hilman2018-10-071-0/+2
| | | | | | | | Keeps track of system files for key derivation
* | key_manager: Add ETicket key derivationZach Hilman2018-10-071-0/+1
|/ | | | Derives titlekeys
* Merge pull request #1332 from FearlessTobi/port-web-backendbunnei2018-10-061-0/+4
|\ | | | | Port web_service from Citra
| * Review comments -part 4fearlessTobi2018-10-021-0/+1
| |
| * Port web_service from CitrafearlessTobi2018-10-021-0/+3
| |
* | patch_manager: Add PatchNSO functionZach Hilman2018-10-011-0/+2
|/ | | | While PatchExeFS operated on the entire directory, this function operates on the uncompressed NSO. Avoids copying decompression code to PatchManager.
* fsmitm: Cleanup and modernize fsmitm portZach Hilman2018-09-241-1/+1
|
* bis_factory: Add mod directory VFS getterZach Hilman2018-09-221-0/+4
|
* vfs_static: Add StaticVfsFileZach Hilman2018-09-221-0/+1
| | | | Always returns the template argument byte for all reads. Doesn't support writes.
* Use open-source shared fonts if no dumped file is available (#1269)Tobias2018-09-111-1/+1
| | | | | | * Add open-source shared fonts * Address review comments
* loader: Add BKTR-specific error messages and codesZach Hilman2018-09-041-0/+4
|
* qt: Add UI support for NSP filesZach Hilman2018-09-041-0/+4
|
* file_sys: Implement NAX containersZach Hilman2018-08-231-0/+6
|
* Merge pull request #1017 from ogniK5377/better-accountbunnei2018-08-201-0/+2
|\ | | | | New account backend to allow for future extended support
| * began initial implementation of "ProfileManager"David Marcec2018-08-081-0/+2
| |
* | Merge pull request #1005 from DarkLordZach/registered-fmtbunnei2018-08-161-0/+8
|\ \ | | | | | | file_sys: Add support for registration format
| * | file_sys: Add support for parsing NCA metadata (CNMT)Zach Hilman2018-08-121-0/+8
| |/
* / Added missing channel devicesDavid Marcec2018-08-131-0/+4
|/
* hle: Remove unused romfs.cpp/.hLioncash2018-08-081-2/+0
| | | | These files are no longer used, so we can get rid of them.
* service: Add usb servicesLioncash2018-08-071-0/+2
| | | | Adds basic skeleton for the usb services based off the information provided by Switch Brew.
* service: Add arp servicesLioncash2018-08-051-0/+2
| | | | | Adds the basic skeleton of the arp services based off the information provided by Switch Brew.
* Merge pull request #849 from DarkLordZach/xcibunnei2018-08-041-1/+13
|\ | | | | XCI and Encrypted NCA Support
| * Fix merge conflicts with opus and update docsZach Hilman2018-08-011-1/+1
| |
| * Extract mbedtls to cpp fileZach Hilman2018-08-011-0/+1
| |
| * Remove files that are not usedZach Hilman2018-08-011-0/+11
| |
* | Merge pull request #908 from lioncash/memorybunnei2018-08-031-2/+0
|\ \ | | | | | | core/memory: Get rid of 3DS leftovers
| * | core/memory: Get rid of 3DS leftoversLioncash2018-08-031-2/+0
| | | | | | | | | | | | Removes leftover code from citra that isn't needed.
* | | Merge pull request #898 from lioncash/migbunnei2018-08-031-0/+2
|\ \ \ | |/ / |/| | service: Add migration services
| * | service: Add migration servicesLioncash2018-08-021-0/+2
| | | | | | | | | | | | | | | Adds the basic skeleton for the mig:usr service based off information provided by Switch Brew.
* | | Merge pull request #894 from lioncash/objectbunnei2018-08-031-0/+2
|\ \ \ | | | | | | | | kernel: Move object class to its own source files
| * | | kernel: Move object class to its own source filesLioncash2018-08-021-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.
* | | Merge pull request #899 from lioncash/unusedbunnei2018-08-021-4/+0
|\ \ \ | | | | | | | | hw: Remove unused files
| * | | hw: Remove unused filesLioncash2018-08-021-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.
* / / service: Add psc servicesLioncash2018-08-021-0/+2
|/ / | | | | | | | | Adds the basic skeleton for the psc services based off the information provided by Switch Brew.
* | Merge pull request #888 from lioncash/capsbunnei2018-08-021-0/+2
|\ \ | | | | | | service: Add capture services
| * | service: Add capture servicesLioncash2018-08-011-0/+2
| |/ | | | | | | | | Adds the basic skeleton for the capture services based off information provided by Switch Brew.
* | Merge pull request #889 from lioncash/fspbunnei2018-08-021-0/+4
|\ \ | | | | | | service/filesystem: Add fsp:ldr and fsp:pr services
| * | service/filesystem: Add fsp:ldr and fsp:pr servicesLioncash2018-08-011-0/+4
| |/ | | | | | | | | Adds the basic skeleton for the remaining fsp services based off information provided by Switch Brew.
* / service: Add bpc and pcv servicesLioncash2018-08-011-0/+4
|/ | | | | Adds the basic skeleton for the remaining pcv-related services based off information on Switch Brew.
* Merge pull request #877 from lioncash/removebunnei2018-08-011-2/+0
|\ | | | | kernel: Remove unused object_address_table.cpp/.h
| * kernel: Remove unused object_address_table.cpp/.hLioncash2018-07-311-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.
* | service/audio: Add missing servicesLioncash2018-08-011-2/+12
| | | | | | | | | | Adds the missing audctl service, as well as the :a and :d services for audin, audout, audrec, and audren.
* | Merge pull request #875 from lioncash/fgmbunnei2018-07-311-0/+2
|\ \ | | | | | | service: Add fgm services
| * | service: Add fgm servicesLioncash2018-07-311-0/+2
| |/ | | | | | | | | Adds the basic skeleton for the fgm services based off the information provided by Switch Brew.
* | Merge pull request #874 from lioncash/ambunnei2018-07-311-0/+6
|\ \ | | | | | | service/am: Add missing am services
| * | service/am: Add missing am servicesLioncash2018-07-311-0/+6
| |/ | | | | | | | | Adds the basic skeleton for missing am services idle:sys, omm, and spsm based off the information provided by Switch Brew.
* / service: Add the pcie serviceLioncash2018-07-311-0/+2
|/ | | | | Adds the basic skeleton of the pcie service based off information on Switch Brew.
* Implemented various hwopus functions (#853)David2018-07-311-1/+1
|
* Merge pull request #857 from lioncash/wlanbunnei2018-07-301-0/+2
|\ | | | | service: Add wlan services
| * service: Add wlan servicesLioncash2018-07-291-0/+2
| | | | | | | | | | Adds the basic skeleton for the wlan services based off the information on Switch Brew.
* | service: Add btm servicesLioncash2018-07-291-0/+2
|/ | | | | Adds the skeleton for the btm services based off the information on Switch Brew.
* Merge pull request #847 from lioncash/ncmbunnei2018-07-281-0/+2
|\ | | | | service: Add ncm services
| * service: Add ncm servicesLioncash2018-07-271-0/+2
| | | | | | | | | | Adds the basic skeleton for the ncm services based off information on Switch Brew.
* | Merge pull request #846 from lioncash/miibunnei2018-07-281-0/+2
|\ \ | | | | | | service: Add mii services
| * | service: Add mii servicesLioncash2018-07-271-0/+2
| | | | | | | | | | | | | | | Adds the skeleton for the mii services based off information provided by Switch Brew
* | | Merge pull request #842 from bunnei/audio-corebunnei2018-07-281-1/+1
|\ \ \ | | | | | | | | Initial implementation of Audio Core
| * | | audio_core: Add initial code for keeping track of audout state.bunnei2018-07-281-1/+1
| | |/ | |/|
* / | RomFS ExtractionZach Hilman2018-07-281-0/+4
|/ /
* | Merge pull request #845 from lioncash/nfcbunnei2018-07-271-0/+2
|\ \ | | | | | | service: Add nfc services
| * | service: Add nfc servicesLioncash2018-07-271-0/+2
| |/ | | | | | | | | Adds the skeleton of the nfc service based off the information provided on Switch Brew.
* | Merge pull request #844 from lioncash/lblbunnei2018-07-271-0/+2
|\ \ | | | | | | service: Add the lbl service
| * | service: Add the lbl serviceLioncash2018-07-271-0/+2
| |/ | | | | | | | | Adds the skeleton of the lbl service based off the information provided by Switch Brew.
* | Merge pull request #841 from lioncash/btdrvbunnei2018-07-271-0/+2
|\ \ | |/ |/| service: Add the btdrv service
| * service: Add the btdrv serviceLioncash2018-07-271-0/+2
| | | | | | | | Adds the skeleton for the btdrv service based off the information provided by Switch Brew
* | service/hid: Add the xcd:sys serviceLioncash2018-07-261-0/+2
| |
* | service/hid: Add irs servicesLioncash2018-07-261-0/+2
|/
* Merge pull request #834 from lioncash/grcbunnei2018-07-261-0/+2
|\ | | | | service: Add the grc:c service
| * service: Add the grc:c serviceLioncash2018-07-261-0/+2
| | | | | | | | | | Adds the basic skeleton for the grc:c service based off the information provided by Switch Brew.
* | Merge pull request #832 from lioncash/nimbunnei2018-07-261-0/+2
|\ \ | | | | | | service: Add the nim services
| * | service: Add the nim servicesLioncash2018-07-261-0/+2
| |/ | | | | | | | | Adds the skeleton for the nim services based off information from Switch Brew.
* | Merge pull request #831 from lioncash/ldnbunnei2018-07-261-0/+2
|\ \ | | | | | | service: Add ldn services
| * | service: Add ldn servicesLioncash2018-07-261-0/+2
| |/ | | | | | | Adds ldn services based off information provided by Switch Brew.
* / service/sockets: Add ethc:c and ethc:i servicesLioncash2018-07-261-0/+2
|/
* Merge pull request #828 from lioncash/ldrSebastian Valle2018-07-261-0/+2
|\ | | | | service: Add ldr services
| * service: Add ldr servicesLioncash2018-07-261-0/+2
| | | | | | | | | | Adds the skeleton for the ldr-related services based off the information provided on Switch Brew.
* | Merge pull request #826 from lioncash/erptSebastian Valle2018-07-261-0/+4
|\ \ | | | | | | service: Add erpt and eupld services
| * | service: Add eupld servicesLioncash2018-07-261-0/+2
| | | | | | | | | | | | | | | Adds the skeleton for the eupld services based off information on Switch Brew.
| * | service: Add the erpt servicesLioncash2018-07-261-0/+2
| | | | | | | | | | | | | | | Adds the basic skeleton of the erpt service based off information on Switch Brew.
* | | Merge pull request #823 from lioncash/nifmSebastian Valle2018-07-261-6/+0
|\ \ \ | |_|/ |/| | service/nifm: Deduplicate interface code
| * | service/nifm: Deduplicate interface codeLioncash2018-07-251-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.
* | | Merge pull request #822 from lioncash/pmbunnei2018-07-261-0/+2
|\ \ \ | |_|/ |/| | service: Add pm services
| * | service: Add pm servicesLioncash2018-07-251-0/+2
| |/ | | | | | | | | Adds the skeleton for the process management services based off information on Switch Brew.
* / service: Add the es serviceLioncash2018-07-251-0/+2
|/ | | | | Adds the skeleton for the ETicket service based off the information on Switch Brew
* Merge pull request #801 from lioncash/timeMat M2018-07-251-4/+2
|\ | | | | time: Add the time:a service
| * time: Simplify interface creationLioncash2018-07-241-4/+2
| | | | | | | | We can use one instance of the interface instead of duplicating code.
* | Merge pull request #803 from MerryMage/core_timing_utilbunnei2018-07-251-9/+11
|\ \ | | | | | | core_timing: Split off utility functions into core_timing_util
| * | core_timing: Split off utility functions into core_timing_utilMerryMage2018-07-241-0/+2
| | |
| * | CMakeLists: Sort filenamesMerryMage2018-07-241-9/+9
| |/
* / friend: Deduplicate interfacesLioncash2018-07-241-4/+2
|/
* Merge pull request #779 from lioncash/sharedbunnei2018-07-241-4/+0
|\ | | | | hle: Remove unused config_mem and shared_page source files
| * hle: Remove config_mem.h/.cppLioncash2018-07-231-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.
| * hle: Remove shared_page.h/.cppLioncash2018-07-231-2/+0
| | | | | | | | This is a holdover from citra that's essentially unused.
* | NRO Assets and NACP file formatZach Hilman2018-07-231-0/+2
|/ | | | | | Cleanup Review fixes
* Implement exclusive monitorMerryMage2018-07-221-0/+2
|
* Virtual Filesystem 2: Electric Boogaloo (#676)Zach Hilman2018-07-191-9/+9
| | | | | | | | | | * Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression
* Revert "Virtual Filesystem (#597)"bunnei2018-07-081-8/+10
| | | | This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2.
* Virtual Filesystem (#597)Zach Hilman2018-07-061-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
* Service/Audio: add hwopus service, stub GetWorkBufferSize functionmailwl2018-06-251-0/+2
|
* Merge pull request #579 from SciresM/masterbunnei2018-06-221-0/+2
|\ | | | | svc: Fully implement svcSignalToAddress and svcWaitForAddress
| * Kernel/Arbiters: Initialize arb_wait_address in thread struct.Michael Scire2018-06-211-0/+2
| |
* | Add support for decrypted NCA files (#567)Zach Hilman2018-06-211-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
* Service/MM: add service and stub some functionsmailwl2018-06-051-0/+2
|
* Services/nvdrv: add '/dev/nvhost-nvdec' devicemailwl2018-05-301-0/+2
|
* Service/BCAT: add module and servicesmailwl2018-05-281-0/+4
|
* core: Move common CPU core things to its own class.bunnei2018-05-111-0/+2
|
* memory_hook: Default virtual destructor in the cpp fileLioncash2018-05-031-0/+1
| | | | | Prevents creating multiple copies of the vtable in every translation unit that uses the class. Also silences a -Wweak-vtables warning
* Merge branch 'master' of https://github.com/yuzu-emu/yuzu into service-implDavid Marcec2018-04-261-4/+2
|\
| * Service/PCTL: convert to module, add services, stubmailwl2018-04-251-2/+2
| | | | | | | | PCTL::CreateServiceWithoutInitialize and IParentalControlService::Initialize, required by Kirby Star Allies
| * Kernel: Remove unused ConditionVariable class.Subv2018-04-211-2/+0
| |
* | Implemented GetIUserInterface properly, Playreport and SSL::SetInterfaceVersion. Fixed ipc issues with IAudioDevice(wrong ids)David Marcec2018-04-221-0/+2
|/
* file_sys: Add HFS/PFS helper componentshinyquagsire232018-04-161-0/+2
|
* Service/ACC: convert to module, add acc:aa, acc:su, acc:u1 servicesmailwl2018-04-101-0/+6
|
* service: Add friend:u interface.bunnei2018-04-031-0/+2
|
* service: Add NFP module interface.bunnei2018-03-301-0/+4
| | | | | | service: Initialize NFP service. Log: Add NFP service as a log subtype.
* Service/sockets: add bsd:s, nsd:a, nsd:u servicesmailwl2018-03-251-2/+4
|
* Merge pull request #255 from Subv/sd_cardbunnei2018-03-241-0/+2
|\ | | | | FS: Implemented access to the SD card
| * FS: Added an SDMC archive factory and registered it to the SDMC archive on startup.Subv2018-03-201-0/+2
| |
* | Service/SSL: add ssl servicemailwl2018-03-231-0/+2
| |
* | Service/spl: add module and servicesmailwl2018-03-221-0/+6
| |
* | Service: add fatal:u, fatal:p servicesmailwl2018-03-201-0/+6
|/
* Service/Set: add more servicesmailwl2018-03-031-0/+8
|
* Filesystem: Added a SaveData Factory and associated Disk_FileSystem.Subv2018-03-021-0/+4
|
* file_sys: Add support for parsing NPDM filesshinyquagsire232018-02-251-0/+2
|
* service: Add Friend service interface.bunnei2018-02-191-0/+4
|
* kernel: Add Scheduler, which encapsulates the scheduling loading from Thread module.bunnei2018-02-181-0/+2
|
* kernel: Remove unused address_arbiter code.bunnei2018-02-181-2/+0
|
* pl_u: Implement basic shared font loading from RAM dump.bunnei2018-02-151-0/+4
|
* Make a GPU class in VideoCore to contain the GPU state.Subv2018-02-121-2/+0
| | | | Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there.
* apm: Refactor service impl. to support multiple ports.bunnei2018-02-101-0/+2
|
* nvdrv: Add MemoryManager class to track GPU memory.bunnei2018-02-081-0/+2
|
* Extra nvdrv support (#162)David2018-02-061-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
* Service:nifm: add nifm:a, nifm:s and nifm:u servicesmailwl2018-02-031-0/+8
|
* Service/am: Add AppletAE service (#153)mailwl2018-02-021-0/+2
| | | | | | * Add AppletAE, step 1: move common interfaces to am.h * Add AppletAE, step 2
* Services/vi: add vi:s and vi:u servicesmailwl2018-02-021-0/+4
|
* [WIP] sfdnsres: stub (#146)mailwl2018-01-301-0/+1
| | | sfdnsres: Add several stubs
* Merge pull request #148 from MerryMage/feature/special-memorybunnei2018-01-271-1/+1
|\ | | | | memory: Replace all memory hooking with Special regions
| * memory: Replace all memory hooking with Special regionsMerryMage2018-01-271-1/+1
| |
* | hle: Remove Domain and SyncObject kernel objects.bunnei2018-01-251-3/+0
| |
* | VI: Move BufferQueue and NVFlinger to their own folder/namespace.Subv2018-01-221-0/+4
| |
* | Added stubs for audio services. (#116)st4rk2018-01-221-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)
* | Added nvmemp, Added /dev/nvhost-ctrl, SetClientPID now stores pid (#114)David2018-01-211-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
* | filesystem: Implement basic IStorage functionality.David Marcec2018-01-211-0/+4
| |
* | file_sys: Cleanup to better match Switch file system constructs.bunnei2018-01-211-6/+8
| | | | | | | | file_sys: Add factory class for RomFS file system.
* | file_sys: Remove disk_archive, savedata_archive, and title_metadata.bunnei2018-01-211-6/+0
| |
* | file_sys: Repurpose 3DS IVFC code for Switch ROMFS.bunnei2018-01-211-2/+2
|/
* loader: Add DeconstructedRomDirectory for game dumps.bunnei2018-01-201-0/+2
|
* Port citra #3352 to yuzu (#103)River City Ransomware2018-01-201-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
* acc, set, applet_oe: stub various functions, add set service (#105)goaaats2018-01-191-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
* Merge pull request #100 from Rozelette/masterbunnei2018-01-191-0/+4
|\ | | | | time: Refactor time:* to use a single shared module
| * time: Refactor time:* to use a single shared moduleRozlette2018-01-181-0/+4
| |
* | Start to implement/stub BSD:U and SFDNSRES services (#78)flerovium^-^2018-01-181-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)
* CMakeLists: Derive the source directory grouping from targets themselvesLioncash2018-01-181-170/+167
| | | | | Removes the need to store to separate SRC and HEADER variables, and then construct the target in most cases.
* Merge pull request #73 from N00byKing/3093bunnei2018-01-181-0/+1
|\ | | | | Implement Pull #3093 from citra: Added missing headers to CMakeLists.txt and fixed includes.
| * Update CMakeLists.txtN00byKing2018-01-171-0/+1
| |
* | TIME: consolidate time:* interfaces, stub functions and structsRozlette2018-01-171-2/+0
| |
* | acc_u0: Add IPC interface and stub InitializeApplicationInfo.bunnei2018-01-171-0/+4
| |
* | NV: Implemented the nvdrv service, which uses the same interface as nvdrv:aSubv2018-01-171-2/+2
|/
* time: Implement GetStandardUserSystemClock, GetCurrentTime.bunnei2018-01-151-0/+4
|
* audio: Add files to CMake.bunnei2018-01-151-0/+4
|
* Remove references to PICA and rasterizers in video_coreJames Rowe2018-01-131-16/+1
|
* core: Gut out cryptop, since it doesn't compile with C++17.bunnei2018-01-131-1/+1
|
* arm_dynarmic: Implement coreMerryMage2018-01-121-1/+1
|
* CMakeLists: Add framebuffer_layout.cpp.bunnei2018-01-111-0/+1
|
* frontend: Update for undocked Switch screen layout.bunnei2018-01-111-2/+0
|
* NV: Move the nv device nodes to their own directory and namespace.Subv2018-01-111-0/+7
|
* NV: Implemented (with stubs) the vi:m service and some of its subservices.Subv2018-01-111-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.
* kernel: Rename Semaphore to ConditionVariable.bunnei2018-01-091-2/+2
|
* cmake: Don't compile Dynarmic as it's unused.bunnei2018-01-041-1/+1
|
* unicorn: Use for arm interface on Windows.bunnei2018-01-041-1/+1
|
* core: Remove unicorn_dynload.bunnei2018-01-041-2/+0
|
* arm: Remove SkyEye/Dyncom code that is ARMv6-only.bunnei2018-01-031-25/+0
|
* hle: Move SVC code to kernel namespace.bunnei2018-01-031-3/+3
|
* cmake: Add missing object_address_table.bunnei2018-01-011-0/+2
|
* service: Add empty interface for pctl:a.bunnei2017-12-291-0/+4
|
* kernel: Add basic support for Domain object.bunnei2017-12-291-0/+2
|
* kernel: Add SyncObject primitive, use it for ClientSession.bunnei2017-12-291-0/+1
|
* service: Add empty interface for aoc:u.bunnei2017-12-281-0/+2
|
* core: Refactor MakeMagic usage and remove dead code.bunnei2017-10-151-3/+0
|
* hle: Add service stubs for apm and appletOE.bunnei2017-10-151-0/+6
|
* hle: Initial implementation of NX service framework and IPC.bunnei2017-10-151-2/+4
|
* Remove more 3DS-specific code.bunnei2017-10-131-2/+0
|
* Remove more 3DS-specific code.bunnei2017-10-131-44/+0
|
* hle: Remove a large amount of 3ds-specific service code.bunnei2017-10-101-190/+0
|
* Merge remote-tracking branch 'upstream/master' into nxbunnei2017-10-101-5/+15
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Conflicts: # src/core/CMakeLists.txt # src/core/arm/dynarmic/arm_dynarmic.cpp # src/core/arm/dyncom/arm_dyncom.cpp # src/core/hle/kernel/process.cpp # src/core/hle/kernel/thread.cpp # src/core/hle/kernel/thread.h # src/core/hle/kernel/vm_manager.cpp # src/core/loader/3dsx.cpp # src/core/loader/elf.cpp # src/core/loader/ncch.cpp # src/core/memory.cpp # src/core/memory.h # src/core/memory_setup.h
| * file_sys: add class for Title Metadata (TMD)shinyquagsire232017-10-011-0/+1
| |
| * Loader/NCCH: Add support for loading application updates (#2927)Max Thomas2017-09-251-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
| * Merge pull request #2906 from Subv/ns_new_frameworkYuri Kunde Schlesner2017-09-161-2/+4
| |\ | | | | | | Services/NS: Port ns:s to the new service framework.
| | * Services/NS: Port ns:s to the new service framework.Subv2017-09-161-2/+4
| | |
| * | Merge pull request #2831 from Subv/uds_authWeiyi Wang2017-09-051-0/+2
| |\ \ | | |/ | |/| Services/UDS: Handle beacon frames and the basic AP connection sequence frames.
| | * Services/UDS: Add functions to generate 802.11 auth and assoc response frames.Subv2017-08-271-0/+2
| | |
| * | Merge pull request #2839 from Subv/global_kernel_lockJames Rowe2017-08-241-0/+2
| |\ \ | | | | | | | | Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).
| | * | Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).Subv2017-08-221-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.
| * | | Merge pull request #2861 from wwylele/motion-refactorJames Rowe2017-08-201-2/+0
| |\ \ \ | | | | | | | | | | Refactor MotionEmu into a InputDevice
| | * | | move MotionEmu from core/frontend to input_common as a InputDevicewwylele2017-08-111-2/+0
| | |/ /
| * / / Added missing parts in libnetwork (#2838)B3n302017-08-191-1/+1
| |/ / | | | | | | | | | | | | * Network: Set and send the game information over enet Added Callbacks for RoomMember and GetMemberList to Room in preparation for web_services.
* | | loader: Add support for NRO, as well as various fixes and shared linker.bunnei2017-10-061-0/+4
| | |
* | | loader: Add support for loading an NSO.bunnei2017-09-301-0/+2
| | |
* | | externals: Add lz4.bunnei2017-09-301-1/+1
|/ /
* | Merge pull request #2784 from wwylele/font-archiveWeiyi Wang2017-07-161-0/+2
|\ \ | | | | | | load shared font from system archive
| * | apt: load shared font from system archivewwylele2017-06-261-0/+2
| | |
* | | web_service: Add CMake flag to enable.bunnei2017-07-121-1/+4
| | |
* | | web_service: Add skeleton project.bunnei2017-07-101-1/+1
| |/ |/|
* | UDS: Stub SendTo to generate the unencrypted data frame with the right headers.Subv2017-06-151-0/+2
|/
* Service: Add new ServiceFramework framework for writing HLE servicesYuri Kunde Schlesner2017-06-081-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.
* Service: Make service registration part of the sm implementationYuri Kunde Schlesner2017-06-061-0/+2
| | | | Also enhances the GetServiceHandle implementation to be more accurate.
* Service: Move SRV interface to a new sm/ subdirectoryYuri Kunde Schlesner2017-06-061-2/+2
| | | | | This will contain the implementation of the sm (Service Manager) system module.
* HLE: Move SessionRequestHandler from Service:: to Kernel::Yuri Kunde Schlesner2017-06-061-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.
* Merge pull request #2739 from yuriks/kernel-reorgbunnei2017-06-011-0/+4
|\ | | | | Split-up kernel.h
| * Kernel: Move HandleTable to a separate fileYuri Kunde Schlesner2017-05-301-0/+2
| |
| * Kernel: Move WaitObject to a separate fileYuri Kunde Schlesner2017-05-301-0/+2
| | | | | | | | | | Now that HandleTable doesn't directly depend on WaitObject anymore, this can be separated from the main kernel.h header.
* | CMake: Remove unnecessary include_directories for dynarmicYuri Kunde Schlesner2017-05-281-3/+0
| | | | | | | | Dynarmic already adds the correct include paths to the library target.
* | CMake: Add cryptopp include path to target propertyYuri Kunde Schlesner2017-05-281-1/+0
| |
* | CMake: Use IMPORTED target for BoostYuri Kunde Schlesner2017-05-281-1/+1
|/
* CMake: Correct inter-module dependencies and library visibilityYuri Kunde Schlesner2017-05-281-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.
* Move screen size constants from video_core to coreYuri Kunde Schlesner2017-05-281-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.
* Move framebuffer_layout from Common to CoreYuri Kunde Schlesner2017-05-281-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.
* Merge pull request #2716 from yuriks/decentralized-resultbunnei2017-05-261-0/+1
|\ | | | | Decentralize ResultCode
| * Kernel: Centralize error definitions in errors.hYuri Kunde Schlesner2017-05-251-0/+1
| |
* | core: Keep track of telemetry for the current emulation session.bunnei2017-05-251-0/+2
|/
* Merge pull request #2406 from Subv/session_disconnectYuri Kunde Schlesner2017-05-221-0/+1
|\ | | | | Kernel: Properly update port counters on session disconnection.
| * Kernel: Use a Session object to keep track of the status of a Client/Server session pair.Subv2017-05-151-0/+1
| | | | | | | | Reduce the associated port's connection count when a ServerSession is destroyed.
* | Merge pull request #2661 from Subv/uds5bunnei2017-05-191-0/+2
|\ \ | | | | | | Services/UDS: Generate 802.11 beacon frames when a network is open.
| * | Services/UDS: Generate the UDS beacons when the beacon callback fires.Subv2017-05-151-0/+2
| |/
* | Dyncom: Remove disassembler codeYuri Kunde Schlesner2017-05-081-2/+0
| | | | | | | | | | | | Had licensing issue around it, in addition to several bugs. Closes #1632, #1280
* | Remove unused symbols codeYuri Kunde Schlesner2017-05-081-2/+0
| |
* | ir: implement circle pad prowwylele2017-05-031-0/+2
|/
* Input: remove unused stuff & clean upwwylele2017-03-011-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
* Input: add device and factory templatewwylele2017-03-011-0/+1
|
* Merge pull request #2587 from yuriks/status-barYuri Kunde Schlesner2017-02-271-0/+2
|\ | | | | Replace built-in Profiler with indicators in status bar
| * Add performance statistics to status barYuri Kunde Schlesner2017-02-271-0/+2
| |
* | Merge pull request #2569 from wwylele/wrap-unwrapbunnei2017-02-251-0/+6
|\ \ | |/ |/| APT: implemented Wrap and Unwrap
| * HW: add AES engine & implement AES-CCMwwylele2017-02-211-0/+6
| |
* | core: add missing errors.h in CMakeLists.txtwwylele2017-02-151-0/+1
|/
* Core: add cryptopp library (#2412)Weiyi Wang2017-02-131-1/+2
|
* loader: use self NCCH archivewwylele2017-02-131-2/+0
|
* file_sys: add Self NCCH archivewwylele2017-02-131-0/+2
|
* Merge pull request #2027 from Lectem/ipcrefactorWeiyi Wang2017-02-051-0/+1
|\ | | | | IPC helper
| * IPC helpersLectem2016-12-261-0/+1
| |
* | Merge pull request #2518 from MerryMage/coprocYuri Kunde Schlesner2017-02-041-0/+2
|\ \ | | | | | | arm_dynarmic: Coprocessor support
| * | arm_dynarmic: CP15 supportMerryMage2017-02-031-0/+2
| | |
* | | HLE/Applets: Stub Mint (eShop) Applet (#2463)mailwl2017-01-311-0/+2
|/ / | | | | | | This allows Phoenix Wright - Dual Destinies to boot.
* | Merge pull request #2368 from wwylele/camera-2Yuri Kunde Schlesner2017-01-301-0/+6
|\ \ | | | | | | CAM: build the service framework with a dummy implementation
| * | CAM: implement basic camera functions with a blank camerawwylele2017-01-111-0/+6
| |/
* | Merge pull request #2308 from mailwl/ac-ibunnei2017-01-121-2/+6
|\ \ | | | | | | Service/AC: add ac:i service
| * | Service/AC: add ac:i servicemailwl2016-12-301-2/+6
| |/
* / Frontend: emulate motion sensorwwylele2016-12-261-0/+2
|/
* core: Move emu_window and key_map into coreMerryMage2016-12-231-0/+4
| | | | * Removes circular dependences (common should not depend on core)
* Service/NWM: add nwm servicesmailwl2016-12-221-2/+16
|
* core: Remove HLE module, consolidate code & various cleanups.bunnei2016-12-221-2/+0
|
* core: Consolidate core and system state, remove system module & cleanups.bunnei2016-12-221-2/+0
|
* Merge pull request #2320 from mailwl/cecd-updateYuri Kunde Schlesner2016-12-161-0/+2
|\ | | | | Service/CECD: Add cecd:ndm service
| * Service/CECD: Add cecd:ndm servicemailwl2016-12-151-0/+2
| |
* | Merge pull request #2314 from mailwl/accountbunnei2016-12-151-4/+6
|\ \ | |/ |/| Service/ACT: move ACT services to folder
| * Service/ACT: move ACT services to foldermailwl2016-12-141-4/+6
| |
* | Merge pull request #2249 from Subv/sessions_v3Yuri Kunde Schlesner2016-12-151-2/+5
|\ \ | |/ |/| Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
| * Use std::move where appropriate.Subv2016-12-081-0/+1
| |
| * Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.Subv2016-12-011-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.
* | service: Add cfg:nor serviceLioncash2016-12-091-0/+2
| |
* | service: Add ptm::gets and ptm::sets servicesLioncash2016-12-081-0/+4
| |
* | service: Add mvd and qtm servicesLioncash2016-12-081-0/+12
| | | | | | | | | | | | Adds the two New3DS-only modules. 3dbrew was used for command information.
* | service: Add nfc servicesLioncash2016-12-081-0/+6
| | | | | | | | 3dbrew was used for the command information.
* | FileSys: Implement OtherSaveDatawwylele2016-11-291-0/+2
| |
* | FileSys: abstract SD save data archive sourcewwylele2016-11-291-0/+2
|/
* FileSys: rename SaveDataCheck archive to NCCH archivewwylele2016-11-191-2/+2
| | | | According to the observation from game and 3dbrew "Used for accessing general NCCH data"
* FileSys: add SDMCWriteOnlyArchivewwylele2016-11-191-0/+2
|
* FileSys: add SaveDataArchivewwylele2016-11-191-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.
* FileSys: add PathParserwwylele2016-11-191-0/+2
|
* dynarmic: Implement ARM CPU interface.bunnei2016-09-151-0/+6
|
* LDR: Implement CROwwylele2016-08-271-2/+6
|
* HLE/Applets: Implement ErrEula appletmailwl2016-07-041-0/+2
|
* Merge pull request #1898 from archshift/interpreter-split-take2bunnei2016-06-161-0/+2
|\ | | | | Refactor arm_dyncom_interpreter into several files (take 2)
| * Make arm_dyncom_trans* into a fully fledged compilation unitarchshift2016-06-121-0/+2
| |
* | Merge pull request #1842 from Subv/portsbunnei2016-06-121-0/+4
|\ \ | | | | | | Kernel: Added ClientPort and ServerPort classes, along with svcCreatePort.
| * | Kernel: Added ClientPort and ServerPort classes.Subv2016-06-051-0/+4
| | | | | | | | | | | | This is part of an ongoing effort to implement support for multiple processes.
* | | Revert "Split huge interpreter source file into translation info and interpreter (+ some tiny misc style fixes)"archshift2016-06-111-2/+0
| | |
* | | arm_dyncom_interpreter.cpp: Split by translation and interpreter logicarchshift2016-06-091-0/+2
| |/ |/| | | | | | | To facilitate the split, some small changes were made to names of various structures and functions.
* | service: Add other DLP servicesLioncash2016-06-051-2/+8
|/ | | | | | Specifically, dlp::CLNT and dlp::FKCL Moves them to their own folder like with other services.
* Loader: Split SMDH into its own header and import helpers from QGameListEmmanuel Gil Peyrot2016-05-211-0/+2
| | | | Also rewrite Qt wrappers to use those.
* Update ACT:U and create ACT:A (#1809)András Domonkos2016-05-181-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
* APT: Move the shared font loading and relocation functions to their own subdirectory services/apt/bcfnt.Subv2016-05-131-0/+2
|
* Dummy implementation dlp:SRVR Service.exhalatio2016-04-021-0/+2
|
* Reorganize the ndm service path for dummy implement functionJamePeng2016-03-141-2/+4
| | | | | | SuspendDaemons , ResumeDaemons , OverrideDefaultDaemons The NDM file move to /core/hle/service/ndm/ now!
* Merge pull request #1266 from Subv/miiappletbunnei2016-03-121-0/+2
|\ | | | | HLE/Applets: Implemented a dummy Mii Selector applet.
| * HLE/Applets: Implemented a dummy Mii Selector applet.Subv2016-03-121-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.
* | Memory: Implement MMIOMerryMage2016-01-301-0/+1
|/
* Implement gdbstubpolaris-2015-10-041-0/+2
|
* Move core/mem_map.{cpp,h} => core/hle/kernel/memory.{cpp,h}Yuri Kunde Schlesner2015-08-161-2/+2
|
* dyncom: Use ARMul_State as an objectLioncash2015-07-261-3/+1
| | | | Gets rid of C-like parameter passing.
* dyncom: Rename armdefs.h to armstate.hLioncash2015-07-261-1/+1
|
* dyncom: Move helper functions to their own headerLioncash2015-07-261-0/+1
|
* dyncom: Move arminit.cpp and armsupp.cpp into skyeye_commonLioncash2015-07-261-2/+2
|
* CiTrace: Record default vertex attributes.Tony Wasserka2015-07-131-1/+1
|
* Add CiTrace recording support.Tony Wasserka2015-07-131-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).
* HLE/APT: Initial HLE support for applets.Subv2015-07-121-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.
* Merge pull request #860 from yuriks/y2r-colorYuri Kunde Schlesner2015-06-221-0/+2
|\ | | | | Color support for Y2R
| * Y2R: Rework conversion process, enabling support for all formatsYuri Kunde Schlesner2015-06-221-0/+2
| |
* | Services: Continue separation of services into their own folderspurpasmart962015-06-121-28/+52
|/
* Kernel: Add VMManager to manage process address spacesYuri Kunde Schlesner2015-05-271-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.
* dyncom: Get rid of armemu.hLioncash2015-05-241-1/+0
|
* Core/ResourceLimits: Implemented the basic structure of ResourceLimits.Subv2015-05-151-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.
* Memory: Use a table based lookup scheme to read from memory regionsYuri Kunde Schlesner2015-05-151-0/+1
|
* Memmap: Re-organize memory function in two filesYuri Kunde Schlesner2015-05-151-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.
* Kernel: Introduce skeleton Process class to hold process dataYuri Kunde Schlesner2015-05-091-0/+2
|
* Core: Fix sorting in CMakeFiles.txtYuri Kunde Schlesner2015-05-081-21/+21
|
* Remove unnecessary dyncom header filesLioncash2015-05-081-2/+0
|
* FileSys: De-inline Path membersYuri Kunde Schlesner2015-05-071-0/+1
|
* dyncom: Remove unused/unnecessary VFP cruftLioncash2015-04-181-1/+0
|
* IR: Move The IR services to their own folder and implement "GetHandles"purpasmart962015-04-041-4/+8
|
* Services: Stubs and minor changespurpasmart962015-04-031-0/+2
|
* Added LCD registers, and implementation for color filling in OGL code.archshift2015-03-091-0/+2
|
* Services: Moved the PTM and APT services to their own folderSubv2015-03-041-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.
* Explicitly instantiate constructors/destructors for Kernel objectsYuri Kunde Schlesner2015-02-021-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.)
* arm: Adios armemuLioncash2015-02-011-5/+0
|
* arm: Get rid of armcpu.h and skyeye_types.hLioncash2015-01-301-2/+0
|
* Services: Stubbed more services.Subv2015-01-241-0/+14
| | | | Implemented FSUser::CreateExtSaveData
* Merge pull request #493 from archshift/ptmplaybunnei2015-01-221-0/+4
|\ | | | | Stubbed some services
| * Stubbed cam:u servicearchshift2015-01-211-0/+2
| |
| * Stubbed ptm:play servicearchshift2015-01-211-0/+2
| |
* | Added HID_SPVR service and split HID_U implementation into service/hid/hid.xxxarchshift2015-01-211-2/+6
|/
* Merge pull request #383 from zhuowei/shared_pagebunnei2015-01-191-0/+2
|\ | | | | Add some support for the shared page
| * Add some support for the shared page (currently 3d slider is implemented)Zhuowei Zhang2015-01-161-0/+2
| |
* | Services: Added some missing services.Subv2015-01-131-0/+6
| | | | | | | | | | cfg:s, ptm:sysm, apt:s. apt:s is almost exactly the same as apt:u as per 3dbrew
* | SVC: Implemented the Timer service calls.Subv2015-01-091-0/+2
|/
* Merge pull request #386 from archshift/y2rubunnei2015-01-051-0/+2
|\ | | | | Stub the y2r:u service
| * Stub the y2r:u servicearchshift2015-01-031-0/+2
| |
* | Archives: Reduced duplicate code in RomFS and SaveCheck.Subv2015-01-031-4/+4
|/ | | | Fixed a few warnings and cleaned up the code
* Archives: Implemented ExtSaveData and SharedExtSaveDataSubv2014-12-301-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.
* More services & small clean upspurpasmart962014-12-261-4/+12
|
* CFG: Create a new subfolder cfg inside service to handle cfgSubv2014-12-211-4/+6
| | | | Moved most of the shared CFG code there, implemented a few CFG:I functions
* SaveData: Implemented the SystemSaveData archive.Subv2014-12-181-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.
* Filesystem/Archives: Implemented the SaveData archiveSubv2014-12-181-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
* Merge pull request #283 from yuriks/archive-refactorbunnei2014-12-161-7/+7
|\ | | | | Archive refactor
| * Service.FS: Rename FileSys::File to FileBackendYuri Kunde Schlesner2014-12-161-1/+1
| |
| * Service.FS: Rename FileSys::Directory to DirectoryBackendYuri Kunde Schlesner2014-12-161-1/+1
| |
| * Service.FS: Rename FileSys::Archive to ArchiveBackendYuri Kunde Schlesner2014-12-161-1/+1
| |
| * HLE: Move kernel/archive.* to service/fs/Yuri Kunde Schlesner2014-12-161-4/+4
| |
* | Merge pull request #282 from archshift/servicesbunnei2014-12-161-0/+8
|\ \ | |/ |/| Added stubs for ldr:ro, cecd:u, nim:aoc, and am:app services
| * Added stub for nim:aoc service...archshift2014-12-161-0/+2
| |
| * Added stub for cecd:u service...archshift2014-12-161-0/+2
| | | | | | | | I couldn't find any information about this service...
| * Added stub for ldr:ro service...archshift2014-12-161-0/+2
| |
| * Added am:app service stub.archshift2014-12-161-0/+2
| | | | | | | | Apparently nothing at all is known about this service...
* | Remove SyncRequest from K::Object and create a new K::Session typeYuri Kunde Schlesner2014-12-151-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.)
* SVC: Implemented svcCreateSemaphoreSubv2014-12-131-0/+2
| | | | | ToDo: Implement svcReleaseSemaphore * Some testing against hardware needed
* Remove unused NDMA moduleYuri Kunde Schlesner2014-12-091-2/+0
|
* Loader: Add 3DSX supportichfly2014-12-081-0/+2
|
* HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner2014-11-241-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.
* Add more services and some fixes, along with more "override"purpasmart962014-11-211-0/+12
| | | | in the service's headers
* Add missing boss:U service, needed according to Nintendo Zone logs.archshift2014-11-171-0/+2
|
* Add FRD:U service and functionsarchshift2014-11-111-0/+2
|
* Added stub err:f service.archshift2014-11-021-0/+2
|
* Added a bunch of servicespurpasmart962014-11-011-0/+16
|
* Renamed souce files of services to match port namesGareth Poole2014-10-291-10/+10
|
* ARM: Removed unnecessary and unused SkyEye MMU code.bunnei2014-10-251-15/+0
| | | | Added license header back in. I originally removed this because I mostly rewrote the file, but meh
* ARM: Removed unused armos code from SkyEye.bunnei2014-10-251-1/+0
|
* ARM: Integrate SkyEye faster "dyncom" interpreter.bunnei2014-10-251-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.
* ARM: Reorganized file structure to move shared SkyEye code to a more common area.bunnei2014-10-251-15/+15
| | | | Removed s_ prefix
* Added configuration file system.archshift2014-10-081-0/+2
| | | | Uses QSettings on citra-qt, and inih on citra-cli.
* Core: Add a Directory object, with both a stub and a passthrough implementations.Emmanuel Gil Peyrot2014-09-171-0/+5
|
* Core: Add a passthrough backend for the filesystem, exposed as SDMC.Emmanuel Gil Peyrot2014-09-171-0/+4
|
* Core: Add a new File class, obtainable from an Archive, and a stub implementation.Emmanuel Gil Peyrot2014-09-171-0/+3
|
* CMake cleanupYuri Kunde Schlesner2014-09-011-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.
* Kernel: Added preliminary support for address arbiters.bunnei2014-07-091-0/+2
| | | | | | | | AddressArbiter: Added documentation comment, fixed whitespace issue. AddressArbiter: Fixed incorrect comment, reordered if-statement to be more clear. SVC: Removed trailing whitespace.
* Kernel: Added support for shared memory objects.bunnei2014-07-051-0/+2
| | | | SharedMemory: Added optional name field for tracking known objects.
* FileSys: Added preliminary support for applications reading the RomFS archive.bunnei2014-07-051-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.
* FS: Added stubbed code to intercept and decode file system service functions.bunnei2014-06-271-0/+2
| | | | FS: Added to CMakeLists.txt
* Kernel: Added stubbed code to support creation of kernel Archive objects.bunnei2014-06-271-0/+2
|
* Core: Removed unused directory_file_system and meta_file_system modules.bunnei2014-06-271-4/+0
| | | | Core: Updated CMakeLists.txt to remove directory_file_system and meta_file_system modules.
* Elf: Renamed modules to be consistent with new loader naming, fixed tabs -> spaces.bunnei2014-06-171-3/+2
|
* Loader: Added support for booting NCCH executables.bunnei2014-06-171-0/+2
| | | | NCCH: Fixed typo in printing NCCH filename.
* Loader: Moved elf and loader modules to a "loader" subdirectory.bunnei2014-06-171-5/+5
|
* Merge branch 'threading' of https://github.com/bunnei/citrabunnei2014-06-141-0/+2
|\ | | | | | | | | | | Conflicts: src/core/hle/function_wrappers.h src/core/hle/service/gsp.cpp
| * hle: added stubbed service for ndm_ubunnei2014-05-301-0/+1
| |
| * event: fixed typos and updated CMakeListsbunnei2014-05-281-0/+1
| |
* | Rename LCD to GPU.Tony Wasserka2014-06-121-2/+2
| |
* | core: fixed headers in CMakeListsbunnei2014-05-231-1/+4
| |
* | Merge branch 'threading'bunnei2014-05-231-1/+4
|\|
| * mutex: initial commit of HLE modulebunnei2014-05-211-0/+1
| |
| * renamed "syscall" module to "svc" (more accurate naming)bunnei2014-05-211-1/+1
| |
| * Merge master into threading to add support for VFPbunnei2014-05-171-1/+13
| |\
| * | added initial kernel/thread modulesbunnei2014-05-101-0/+2
| | |
* | | CMakeLists: rename HEADS, improved commentsarchshift2014-05-201-2/+2
| | | | | | | | | | | | Changes for clarity of comments, removed redundant compiler flags.
* | | Updated cmakelistsarchshift2014-05-171-6/+12
| | |
* | | Merge remote-tracking branch 'upstream/master' into issue-7-fixarchshift2014-05-171-2/+16
|\ \ \ | | |/ | |/|
| * | fixed typo in CMakeLists.txtbunnei2014-05-171-1/+1
| | |
| * | added maverick.cpp to ARM core from skyeyebunnei2014-05-161-1/+2
| | |
| * | added missing armcopro from skyeyebunnei2014-05-161-0/+1
| | |
| * | added missing skyeye mmu codebunnei2014-05-161-0/+6
| | |
| * | - moved mmu to arm/interpreter folderbunnei2014-05-161-1/+5
| |/ | | | | | | - added initial VFP code from skyeye
| * added config_mem module for HLE of firmware configuration memory settingsbunnei2014-05-071-0/+1
| |
| * renamed hle "mrc" module to "coprocessor"bunnei2014-05-021-1/+1
| |
| * added a module to load symbol map files for debuggingbunnei2014-05-011-0/+1
| |
* | Fixed indentsarchshift2014-05-011-2/+2
| |
* | A bit of Cmake lovearchshift2014-05-011-1/+38
|/
* moved HLE::MRC to its own module, added support for catching data synchronization barrier commandbunnei2014-04-251-0/+1
|
* updated CMakeLists for missing filesShizZy2014-04-231-1/+9
|
* fixed a bunch of errors in CMakeListsbunnei2014-04-101-1/+1
|
* updated CMakeListsbunnei2014-04-101-8/+21
|
* adding initial project layoutShizZy2013-08-301-0/+10