aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2019-07-11core/arm: Remove obsolete Unicorn memory mappingLioncash
This was initially necessary when AArch64 JIT emulation was in its infancy and all memory-related instructions weren't implemented. Given the JIT now has all of these facilities implemented, we can remove these functions from the CPU interface.
2019-07-11Restore memory perms on svcUnmapMemory/UnloadNroMichael Scire
Prior to PR, Yuzu did not restore memory to RW- on unmap of mirrored memory or unloading of NRO. (In fact, in the NRO case, the memory was unmapped instead of reprotected to --- on Load, so it was actually lost entirely...) This PR addresses that, and restores memory to RW- as it should. This fixes a crash in Super Smash Bros when creating a World of Light save for the first time, and possibly other games/circumstances.
2019-07-10Merge pull request #2700 from ogniK5377/GetFriendListbunnei
IFriendService::GetFriendList
2019-07-10Merge pull request #2611 from DarkLordZach/pm-info-cmdbunnei
pm: Implement various pm commands for finding process and title IDs
2019-07-10Merge pull request #2650 from DarkLordZach/mii-iface-verbunnei
mii: Implement IDatabaseService SetInterfaceVersion
2019-07-10system_archive: Add open-source reimplementation of MiiModel dataZach Hilman
2019-07-10mii: Handle logging of unknown database sourceZach Hilman
2019-07-09IFriendService::GetFriendListDavid Marcec
We don't have any friends implemented in Yuzu yet so it doesn't make sense to return any friends. For now we'll be returning 0 friends however the information provided will allow a proper implementation of this cmd when needed.
2019-07-08Prevent merging of device mapped memory blocks.Michael Scire
This sets the DeviceMapped attribute for GPU-mapped memory blocks, and prevents merging device mapped blocks. This prevents memory mapped from the gpu from having its backing address changed by block coalesce.
2019-07-08Merge pull request #2657 from ogniK5377/npad-assignmentsZach Hilman
hid:StartLrAssignmentMode, hid:StopLrAssignmentMode, hid:SwapNpadAssignment
2019-07-08addressed issuesDavid Marcec
2019-07-07Merge pull request #2651 from DarkLordZach/apm-boost-mode-1bunnei
apm: Initial implementation of performance config and boost mode
2019-07-07Merge pull request #2642 from DarkLordZach/fsp-log-2bunnei
fsp-srv: Implement Access Logging Functionality
2019-07-07key_manager: Convert Ticket union to std::variantZach Hilman
2019-07-07es: Populate/synthesize tickets on constructionZach Hilman
2019-07-07key_manager: Add structure for Ticket parsingZach Hilman
2019-07-07es: Implement ETicket GetPersonalizedTicketData (17)Zach Hilman
Copies the raw personal ticket data into the buffer provided.
2019-07-07es: Implement ETicket GetCommonTicketData (16)Zach Hilman
Copies the raw common ticket data for the specified rights ID into the buffer provided.
2019-07-07es: Implement ETicket GetPersonalizedTicketSize (15)Zach Hilman
Returns the size of the buffer needed to hold the personal ticket associated with the rights ID.
2019-07-07es: Implement ETicket GetCommonTicketSize (14)Zach Hilman
Returns the size of the buffer needed to hold the common ticket associated with the rights ID.
2019-07-07es: Implement ETicket ListPersonalizedTicket (12)Zach Hilman
Returns an application-specific number of entries of personal tickets, starting at offset 0.
2019-07-07es: Implement ETicket ListCommonTicket (11)Zach Hilman
Returns an application specified count of entries of common tickets, starting at offset 0.
2019-07-07es: Implement ETicket CountPersonalizedTicket (10)Zach Hilman
Returns the number of personalized (console/user-unique) tickets in the KeyManager.
2019-07-07es: Implement ETicket CountCommonTicket (9)Zach Hilman
Returns the number of common (non-console-unique) tickets in the KeyManager.
2019-07-07es: Implement ETicket GetTitleKey (8)Zach Hilman
Takes a rights ID as input and returns the associated title key, if it exists.
2019-07-07es: Implement ETicket ImportTicket (1)Zach Hilman
Takes a ticket and certificate and installs it to the KeyManager.
2019-07-07key_manager: Add accessors/helpers for ticket managementZach Hilman
2019-07-07key_manager: Add equality operator for RSAKeyPairZach Hilman
2019-07-07Remove unused member function declarationMichael Scire
2019-07-07physmem: add helpers, cleanup logic.Michael Scire
2019-07-07clang-format fixesMichael Scire
2019-07-07address review commentaryMichael Scire
2019-07-07Implement MapPhysicalMemory/UnmapPhysicalMemoryMichael Scire
This implements svcMapPhysicalMemory/svcUnmapPhysicalMemory for Yuzu, which can be used to map memory at a desired address by games since 3.0.0. It also properly parses SystemResourceSize from NPDM, and makes information available via svcGetInfo. This is needed for games like Super Smash Bros. and Diablo 3 -- this PR's implementation does not run into the "ASCII reads" issue mentioned in the comments of #2626, which was caused by the following bugs in Yuzu's memory management that this PR also addresses: * Yuzu's memory coalescing does not properly merge blocks. This results in a polluted address space/svcQueryMemory results that would be impossible to replicate on hardware, which can lead to game code making the wrong assumptions about memory layout. * This implements better merging for AllocatedMemoryBlocks. * Yuzu's implementation of svcMirrorMemory unprotected the entire virtual memory range containing the range being mirrored. This could lead to games attempting to map data at that unprotected range/attempting to access that range after yuzu improperly unmapped it. * This PR fixes it by simply calling ReprotectRange instead of Reprotect.
2019-07-07kernel/process: Allocate the process' TLS region during initializationLioncash
Prior to execution within a process beginning, the process establishes its own TLS region for uses (as far as I can tell) related to exception handling. Now that TLS creation was decoupled from threads themselves, we can add this behavior to our Process class. This is also good, as it allows us to remove a stub within svcGetInfo, namely querying the address of that region.
2019-07-07kernel/process: Move main thread stack allocation to its own functionLioncash
Keeps this particular set of behavior isolated to its own function.
2019-07-06mii: Implement IDatabaseService SetInterfaceVersionZach Hilman
Appears to set a member variable used to affect the API that games access, and the method used to store data.
2019-07-06Merge pull request #2674 from lioncash/reporterZach Hilman
core/reporter: Minor changes
2019-07-06Merge pull request #2677 from lioncash/assertZach Hilman
kernel/vm_manager: Handle stack/TLS IO region placement a little better
2019-07-06clang-format fixesMichael Scire
2019-07-06am: Implement GetAccumulatedSuspendedTickValueMichael Scire
2019-07-06memory: Remove unused includesLioncash
These aren't used within the central memory management code, so they can be removed.
2019-07-06memory: Remove unused PageTable forward declarationLioncash
This isn't used by anything in the header file, so it can be removed.
2019-07-06kernel/vm_manager: Rename 'new map' to 'stack'Lioncash
Provides a more accurate name for the memory region and also disambiguates between the map and new map regions of memory, making it easier to understand.
2019-07-05kernel/vm_manager: Handle stack/TLS IO region placement betterLioncash
Handles the placement of the stack a little nicer compared to the previous code, which was off in a few ways. e.g. The stack (new map) region, shouldn't be the width of the entire address space if the size of the region calculation ends up being zero. It should be placed at the same location as the TLS IO region and also have the same size. In the event the TLS IO region contains a size of zero, we should also be doing the same thing. This fixes our memory layout a little bit and also resolves some cases where assertions can trigger due to the memory layout being incorrect.
2019-07-05core/reporter: Allow moves into SaveToFile()Lioncash
Taking the json instance as a constant reference, makes all moves into the parameter non-functional, resulting in copies. Taking it by value allows moves to function.
2019-07-05core/reporter: Add missing includes and forward declarationsLioncash
Adds missing inclusions to prevent potential compilation issues.
2019-07-05core/reporter: Remove unnecessary namespace qualifiersLioncash
The Reporter class is part of the Core namespace, so the System class doesn't need to be qualified.
2019-07-05core/reporter: Remove pessimizing move in GetHLERequestContextData()Lioncash
This can inhibit copy-elision, so we can remove this redundant move.
2019-07-05core/reporter: Make bracing consistentLioncash
Makes all control statements braced, regardless of their size, making code more uniform.
2019-07-05core/reporter: Return in error case in SaveToFile()Lioncash
If the path couldn't be created, then we shouldn't be attempting to save the file.