summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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-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.
2019-07-05Merge pull request #2601 from FernandoS27/texture_cacheZach Hilman
Implement a new Texture Cache
2019-07-05texture_cache: Address FeedbackFernando Sahmkow
2019-07-04texture_cache: Correct Texture Buffer UploadingFernando Sahmkow
2019-07-04Merge pull request #2669 from FearlessTobi/move-cpujit-settingZach Hilman
yuzu: Move CPU Jit setting to Debug tab
2019-07-04Merge pull request #2555 from lioncash/tlsZach Hilman
kernel/process: Decouple TLS handling from threads
2019-07-04yuzu: Remove CPU Jit setting from the UIfearlessTobi
A normal user shouldn't change this, as it will slow down the emulation and can lead to bugs or crashes. The renaming is done in order to prevent users from leaving this on without a way to turn it off from the UI.
2019-07-04Merge pull request #2670 from DarkLordZach/fix-merge-discrep-1bunnei
gl_shader_cache: Make CachedShader constructor private
2019-07-04Merge pull request #2658 from ogniK5377/QueryAudioDeviceOutputEventbunnei
IAudioDevice::QueryAudioDeviceOutputEvent
2019-07-04Merge pull request #2638 from DarkLordZach/quest-flagbunnei
set: Implement GetQuestFlag with config option
2019-07-03gl_shader_cache: Make CachedShader constructor privateZach Hilman
Fixes missing review comments introduced.
2019-07-03kernel/process: Default initialize all member variablesLioncash
Ensures a Process instance is always created with a deterministic initial state.
2019-07-03kernel/process: Decouple TLS handling from threadsLioncash
Extracts out all of the thread local storage management from thread instances themselves and makes the owning process handle the management of the memory. This brings the memory management slightly more in line with how the kernel handles these allocations. Furthermore, this also makes the TLS page management a little more readable compared to the lingering implementation that was carried over from Citra.
2019-07-03kernel/vm_manager: Add overload of FindFreeRegion() that operates on a boundaryLioncash
This will be necessary for making our TLS slot management slightly more straightforward. This can also be utilized for other purposes in the future. We can implement the existing simpler overload in terms of this one anyways, we just pass the beginning and end of the ASLR region as the boundaries.
2019-07-03Merge pull request #2613 from ogniK5377/InitalizeApplicationInfoZach Hilman
Implemented InitializeApplicationInfo & InitializeApplicationInfoRestricted
2019-07-03Merge pull request #2608 from ogniK5377/Time_GetSharedMemoryNativeHandleZach Hilman
Implement Time::GetSharedMemoryNativeHandle
2019-07-03Merge pull request #2563 from ReinUsesLisp/shader-initializersZach Hilman
gl_shader_cache: Use static constructors for CachedShader initialization
2019-07-02Merge pull request #2604 from ogniK5377/INotificationServicebunnei
Implemented INotificationService
2019-07-02Merge pull request #2659 from FernandoS27/safe-cachesbunnei
rasterizer_cache: Protect inherited caches from submission level
2019-07-02file_sys: Rename other ContentRecordType membersBakugo
2019-07-01rasterizer_cache: Protect inherited caches from submission levelFernando Sahmkow
2019-07-01IAudioDevice::QueryAudioDeviceOutputEventDavid Marcec
The event should only be signaled when an output audio device gets changed. Example, Speaker to USB headset. We don't identify different devices internally yet so there's no need to signal the event yet.
2019-07-01file_sys/registered_cache: Improve missing metadata errorBakugo
This can happen when installing NSPs too, not just XCIs.
2019-07-01file_sys/submission_package: Don't warn about missing DeltaFragment NCAsBakugo
DeltaFragments are not useful to us and are often not included in patch NSPs.
2019-07-01file_sys/registered_cache: Ignore DeltaFragment NCAs during installationBakugo
DeltaFragments are only used to download and apply partial patches on a real console, and are not useful to us at all. Most patch NSPs do not include them, and when they do, it's a waste of space to install them.
2019-07-01file_sys: Rename ContentRecordType::Patch to DeltaFragmentBakugo
Avoids potential confusion, since patches and DeltaFragments are not the same thing. Actual full patches are listed under the Program type.
2019-06-30Merge pull request #2583 from FernandoS27/core-timing-safebunnei
Core_Timing: Make core_timing threadsafe by default.
2019-06-29texture_cache: Pack sibling queries inside a methodReinUsesLisp
2019-06-29texture_cache: Use std::vector reservation for sampled_texturesReinUsesLisp
2019-06-29texture_cache: Style changesReinUsesLisp
2019-06-29texture_cache: Use std::array for siblings_tableReinUsesLisp
2019-06-29texture_cache: Address feedbackReinUsesLisp
2019-06-28set: Implement GetQuestFlagZach Hilman
Simply returns a true/false value indicating if the system is a kiosk system. This has been mapped to a config option for the purposes of yuzu.
2019-06-28settings: Add config option for kiosk (quest) modeZach Hilman
2019-06-28Merge pull request #2533 from DarkLordZach/memory-frozenbunnei
memory: Add class to manage and enforce memory freezing
2019-06-28Attemp clang format fix?David Marcec
Seems to be an issue with clang format