summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-09-30aoc_u: Extract AccumulateAOCTitleIDs to separate functionZach Hilman
2018-09-30aoc_u: Implement GetAddOnContentBaseIdZach Hilman
Command #5
2018-09-30aoc_u: Implement Count, List and Prepare AddOnContentZach Hilman
Commands #2, #3, and #7
2018-09-30romfs_factory: Read from all locations with StorageId NoneZach Hilman
Previous behavior was to assert. Seems to mirror expected game behavior.
2018-09-30patch_manager: Add DLC recognition to PatchManagerZach Hilman
2018-09-30Merge pull request #1338 from raven02/service_vibunnei
Implement ISystemDisplayService::GetDisplayMode
2018-09-30kernel/svc: Implement svcGetThreadContext()Lioncash
Now that we have all of the rearranging and proper structure sizes in place, it's fairly trivial to implement svcGetThreadContext(). In the 64-bit case we can more or less just write out the context as is, minus some minor value sanitizing. In the 32-bit case we'll need to clear out the registers that wouldn't normally be accessible from a 32-bit AArch32 exectuable (or process).
2018-09-30kernel/process: Add a data member to determine if a process is 64-bit or not.Lioncash
This will be necessary for the implementation of svcGetThreadContext(), as the kernel checks whether or not the process that owns the thread that has it context being retrieved is a 64-bit or 32-bit process. If the process is 32-bit, then the upper 15 general-purpose registers and upper 16 vector registers are cleared to zero (as AArch32 only has 15 GPRs and 16 128-bit vector registers. not 31 general-purpose registers and 32 128-bit vector registers like AArch64).
2018-09-30kernel/process: Make data member variables privateLioncash
Makes the public interface consistent in terms of how accesses are done on a process object. It also makes it slightly nicer to reason about the logic of the process class, as we don't want to expose everything to external code.
2018-09-30arm_interface: Add missing fpsr/tpidr members to the ThreadContext structLioncash
Internally within the kernel, it also includes a member variable for the floating-point status register, and TPIDR, so we should do the same here to match it. While we're at it, also fix up the size of the struct and add a static assertion to ensure it always stays the correct size.
2018-09-30Implement ISystemDisplayService::GetDisplayModeraven02
2018-09-29loader: Make the Load() function take a process as a regular reference, not ↵Lioncash
a SharedPtr A process should never require being reference counted in this situation. If the handle to a process is freed before this function is called, it's definitely a bug with our lifetime management, so we can put the requirement in place for the API that the process must be a valid instance.
2018-09-29Merge pull request #1412 from lioncash/movebunnei
kernel/object: Remove unnecessary std::move from DynamicObjectCast()
2018-09-29Merge pull request #1411 from ReinUsesLisp/point-sizebunnei
video_core: Implement point_size and add point state sync
2018-09-29Merge pull request #1406 from ReinUsesLisp/multibind-samplersbunnei
gl_state: Pack sampler bindings into a single ARB_multi_bind
2018-09-29Merge pull request #1395 from lioncash/vmbunnei
process/vm_manager: Initial modifications to load NPDM metadata
2018-09-28kernel/object: Remove unnecessary std::move from DynamicObjectCast()Lioncash
boost::static_pointer_cast for boost::intrusive_ptr (what SharedPtr is), takes its parameter by const reference. Given that, it means that this std::move doesn't actually do anything other than obscure what the function's actual behavior is, so we can remove this. To clarify, this would only do something if the parameter was either taking its argument by value, by non-const ref, or by rvalue-reference.
2018-09-28video_core: Implement point_size and add point state syncReinUsesLisp
2018-09-28gl_state: Pack sampler bindings into a single ARB_multi_bindReinUsesLisp
2018-09-27Merge pull request #1360 from FearlessTobi/port-3979bunnei
Port citra-emu/citra#3979 game_list: move SearchField to game_list_p.h and fix untranslated text
2018-09-27Merge pull request #1394 from lioncash/streambunnei
stream: Preserve enum class type in GetState()
2018-09-27Merge pull request #1389 from PhiBabin/valgrindMat M
FPCR register was uninitialized at start up
2018-09-27Merge pull request #1377 from FernandoS27/faster-swizzlebunnei
Improved Fast Swizzle and Legacy Swizzle
2018-09-26fsmitm_romfsbuild: std::move std::vector instances in Build()Lioncash
Avoids making copies of large std::vector instances where it's trivially avoidable to do so.
2018-09-26fsmitm_romfsbuild: Replace manual value aligning with Common::AlignUp()Lioncash
Theres no need to do explicit bitwise arithmetic here, when we have a function that does this with a more descriptive name.
2018-09-26Merge pull request #1399 from lioncash/schedbunnei
kernel/scheduler: Take ARM_Interface instances by reference
2018-09-26Merge pull request #1400 from lioncash/headerbunnei
service: Add missing headers inclusions where applicable
2018-09-26Merge pull request #1402 from ReinUsesLisp/assertsbunnei
video_core: Add asserts for CS, TFB and alpha testing
2018-09-25patch_manager: Invert conditionals within ApplyLayeredFS()Lioncash
Avoids the need to nest code quite a bit by early-exiting in error cases.
2018-09-25video_core: Add asserts for CS, TFB and alpha testingReinUsesLisp
Add asserts for compute shader dispatching, transform feedback being enabled and alpha testing. These have in common that they'll probably break rendering without logging.
2018-09-25vfs_vector: Amend initializer list order in VectorVfsFile's constructor ↵Lioncash
initializer list Orders the initializer list members to be in the same order that they would be initialized in. Avoids compiler warnings.
2018-09-25fsmitm_romfsbuild: Avoid type truncation warningsLioncash
Cast where explicitly necessary and in other cases we can simply modify the algorithm to accomodate larger data.
2018-09-25fsmitm_romfsbuild: Remove unnecessary constructors and initializers for ↵Lioncash
RomFSBuildFileContext and RomFSBuildDirectoryContext There's no need to duplicate in-class initializers with a constructor initializer list. std::strings also initialize to empty by default.
2018-09-25fsmitm_romfsbuild: Remove unnecessary loops in Build()Lioncash
The std::vector instances are already initially allocated with all entries having these values, there's no need to loop through and fill them with it again when they aren't modified.
2018-09-25fsmitm_romfsbuild: Make auto variable into a std::size_t variable within Build()Lioncash
auto x = 0; auto-deduces x to be an int. This is undesirable when working with unsigned values. It also causes sign conversion warnings. Instead, we can make it a proper unsigned value with the correct width that the following expressions operate on.
2018-09-25yuzu/main: Resolve precedence bug within CalculateRomFSEntrySize()Lioncash
Ternary operators have a lower precedence than arithmetic operators, so what was actually occurring here is "return (out + full) ? x : y" which most definitely isn't intended, given we calculate out recursively above. We were essentially doing a lot of work for nothing.
2018-09-25yuzu/main: Move functions stored into static std::function instances out of ↵Lioncash
OnGameListDumpRomFS() This can cause warnings about static constructors, and is also not ideal performance-wise due to the indirection through std::function. This also keeps the behavior itself separate from the surrounding code, which can make it nicer to read, due to the size of the code.
2018-09-25vfs/etc: Append std:: to size_t usagesLioncash
Given we just recently had a patch backport this from citra, let's try and keep the convention uniform.
2018-09-25vfs_concat/vfs_layered: Remove friend declarations from ConcatenatedVfsFileLioncash
Given these are only added to the class to allow those functions to access the private constructor, it's a better approach to just make them static functions in the interface, to make the dependency explicit.
2018-09-25vfs_static: Remove template byte parameter from StaticVfsFileLioncash
This converts it into a regular constructor parameter. There's no need to make this a template parameter on the class when it functions perfectly well as a constructor argument. This also reduces the amount of code bloat produced by the compiler, as it doesn't need to generate the same code for multiple different instantiations of the same class type, but with a different fill value.
2018-09-25service: Add missing headers inclusions where applicableLioncash
Gets rid of a few indirect inclusions.
2018-09-25Merge pull request #1365 from DarkLordZach/lfsbunnei
file_sys: Add support for LayeredFS mods
2018-09-25core_cpu: Make arm_interface instances a std::unique_ptrLioncash
This is only exposed by reference, so we can just make it a unique pointer to get rid of the need to also use reference counting for the pointer.
2018-09-25kernel/scheduler: Take ARM_Interface instance by reference in the constructorLioncash
It doesn't make sense to allow a scheduler to be constructed around a null pointer.
2018-09-25Merge pull request #1393 from tech4me/svcbunnei
svc: Updated svc names
2018-09-24memory: Dehardcode the use of fixed memory range constantsLioncash
The locations of these can actually vary depending on the address space layout, so we shouldn't be using these when determining where to map memory or be using them as offsets for calculations. This keeps all the memory ranges flexible and malleable based off of the virtual memory manager instance state.
2018-09-24svc: Report correct memory-related values within some of the cases in ↵Lioncash
svcGetInfo() Previously, these were reporting hardcoded values, but given the regions can change depending on the requested address spaces, these need to report the values that the memory manager contains.
2018-09-24memory: Dehardcode the use of a 36-bit address spaceLioncash
Given games can also request a 32-bit or 39-bit address space, we shouldn't be hardcoding the address space range as 36-bit.
2018-09-24process/vm_manager: Amend API to allow reading parameters from NPDM metadataLioncash
Rather than hard-code the address range to be 36-bit, we can derive the parameters from supplied NPDM metadata if the supplied exectuable supports it. This is the bare minimum necessary for this to be possible. The following commits will rework the memory code further to adjust to this.
2018-09-23Implemented fatal:u properly (#1347)David
* Implemented fatal:u properly fatal:u now is properly implemented with all the ipc cmds. Error reports/Crash reports are also now implemented for fatal:u. Crash reports save to yuzu/logs/crash_reports/ The register dump is currently known as sysmodules send all zeros. If there are any non zero values for the "registers" or the unknown values, let me know! * Fatal:U fixups * Made fatal:u execution break more clear * Fatal fixups