summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-09-21common_paths: Add Load and Dump dirsZach Hilman
2018-09-21Merge pull request #1379 from lioncash/bitwisebunnei
gl_stream_buffer: Fix use of bitwise OR instead of logical OR in Map()
2018-09-21gl_stream_buffer: Fix use of bitwise OR instead of logical OR in Map()Lioncash
This was very likely intended to be a logical OR based off the conditioning and testing of inversion in one case. Even if this was intentional, this is the kind of non-obvious thing one should be clarifying with a comment.
2018-09-21Added support for uncompressed NSOs (#1374)David
* Added support for uncompressed NSOs * Moved compressed section check to NsoHeader
2018-09-20Merge pull request #1337 from DarkLordZach/create-fs-cmdbunnei
yuzu-cmd: Add filesystem service initializer call
2018-09-20Merge pull request #1372 from lioncash/threadbunnei
kernel/thread: Use owner_process when setting the page table in SetupMainThread()
2018-09-20Merge pull request #1371 from lioncash/fwd-armbunnei
arm_interface: Replace kernel vm_manager include with a forward declaration
2018-09-20Merge pull request #1375 from Subv/gl_clearbunnei
RasterizerGL: Use the correct framebuffer when clearing via the CLEAR_BUFFERS register.
2018-09-20RasterizerGL: Use the correct framebuffer when clearing via the ↵Subv
CLEAR_BUFFERS register. Previously we were clearing the default backbuffer framebuffer. Found thanks to a Piglit test :)
2018-09-20Merge pull request #1364 from lioncash/contentbunnei
file-sys: Default heavy-weight class destructors in the cpp file
2018-09-20Merge pull request #1367 from lioncash/pluralbunnei
game_list: Handle plurals within setFilterResult() better
2018-09-20Merge pull request #1368 from ogniK5377/nifm-fixbunnei
Added IRequest::Submit
2018-09-20Merge pull request #1352 from lioncash/sharingbunnei
ring_buffer: Use std::hardware_destructive_interference_size to determine alignment size for avoiding false sharing
2018-09-21Revert GetRequestStateDavid Marcec
Even though setting this value to 3 is more correct. We break more games than we fix due to missing implementations. We should keep this as 0 for the time being
2018-09-20kernel/thread: Use owner_process when setting the page table in ↵Lioncash
SetupMainThread() The owning process of a thread is required to exist before the thread, so we can enforce this API-wise by using a reference. We can also avoid the reliance on the system instance by using that parameter to access the page table that needs to be set.
2018-09-20arm_interface: Replace kernel vm_manager include with a forward declarationLioncash
Avoids an unnecessary inclusion and also uncovers three places where indirect inclusions were relied upon, which allows us to also resolve those.
2018-09-20Merge pull request #1370 from Hedges/GDBCleanMat M
Correct endianness of BRK
2018-09-20Merge pull request #1362 from MerryMage/dynarmicMat M
externals: Update dynarmic to 171d116
2018-09-20Correct endianness of BKPTJarek Syrylak
2018-09-20arm_dynarmic: Halt when BRK encounteredMerryMage
2018-09-21Fixed submitDavid Marcec
2018-09-21Added IRequest::SubmitDavid Marcec
This fixes updated versions of SMO. Currently unable to test as I don't have an updated version
2018-09-20Merge pull request #1358 from DarkLordZach/temp-storagebunnei
savedata_factory: Add TemporaryStorage SaveDataType
2018-09-20Merge pull request #1363 from lioncash/controlbunnei
control_metadata: Move language name array definition to the cpp file
2018-09-20Merge pull request #1361 from lioncash/naxbunnei
xts_archive/nax: Minor interface changes
2018-09-20game_list: Handle plurals within setFilterResult() betterLioncash
Qt provides an overload of tr() that operates on quantities in relation to pluralization. This also allows the translation to adapt based on the target language rules better. For example, the previous code would result in an incorrect translation for the French language (which doesn't use the pluralized version of "result" in the case of a total of zero. While in English it's correct to use the pluralized version of "result", that is, "results" --- For example: English: "0 results" French: "0 résultat" (uses the singular form) In French, the noun being counted is singular if the quantity is 0 or 1. In English, on the other hand, if the noun being counted has a quantity of 0 or N > 1, then the noun is pluralized. --- For another example in a language that has different counting methods than the above, consider English and Irish. Irish has a special form of of a grammatical number called a dual. Which alters how a word is written when N of something is 2. This won't appear in this case with a direct number "2", but it would change if we ever used "Two" to refer to two of something. For example: English: "Zero results" Irish: "Toradh ar bith" English: "One result" Irish: "Toradh amháin" English: "Two results" Irish: "Dhá thorthaí" <- Dual case Which is an important distinction to make between singular and plural, because in other situations, "two" on its own would be written as "dó" in Irish. There's also a few other cases where the order the words are placed *and* whether or not the plural or singular variant of the word is used *and* whether or not the word is placed after or between a set of numbers can vary. Counting in Irish also differs depending on whether or not you're counting things (like above) or counting people, in which case an entirely different set of numbers are used. It's not important for this case, but it's provided as an example as to why one should never assume the placement of values in text will be like that of English or other languages. Some languages have very different ways to represent counting, and breaking up the translated string like this isn't advisable because it makes it extremely difficult to get right depending on what language a translator is translating text into due to the ambiguity of the strings being presented for translation. In this case a translator would see three fragmented strings on Transifex (and not necessarily grouped beside one another, but even then, it would still be annoying to decipher): - "of" - "result" - "results" There is no way a translator is going to know what those sets of words are actually used for unless they look at the code to see what is being done with them (which they shouldn't have to do).
2018-09-20Removed unneeded event clearDavid Marcec
2018-09-20Implemented NTC & IEnsureNetworkClockAvailabilityServiceDavid Marcec
Needed because of the recent nim fixes
2018-09-19file-sys: Default heavy-weight class destructors in the cpp fileLioncash
Several classes have a lot of non-trivial members within them, or don't but likely should have the destructor defaulted in the cpp file for future-proofing/being more friendly to forward declarations. Leaving the destructor unspecified allows the compiler to inline the destruction code all over the place, which is generally undesirable from a code bloat perspective.
2018-09-19control_metadata: Remove unnecessary else within GetLanguageEntry()Lioncash
There's no need to indent the code here, given the if case contains a return statement at the end of it.
2018-09-19control_metadata: Move language name array definition to the cpp fileLioncash
This was used in two different translation units (deconstructed_rom_directory and patch_manager). This means we'd be pointlessly duplicating the whole array twice due to it being defined within the header.
2018-09-19arm_dynarmic: Support BKPT instructionMerryMage
2018-09-19xts_archive: Remove unused variables from CalculateHMAC256()Lioncash
These variables aren't used, which still has an impact, as std::vector cannot be optimized away by the compiler (it's constructor and destructor are both non-trivial), so this was just wasting memory.
2018-09-19xts_archive: Make AsNCA() return a std::unique_ptr instead of a std::shared_ptrLioncash
std::shared_ptr isn't strictly necessary here and is only ever used in contexts where the object doesn't depend on being shared. This also makes the interface more flexible, as it's possible to create a std::shared_ptr from a std::unique_ptr (std::shared_ptr has a constructor that accepts a std::unique_ptr), but not the other way around.
2018-09-19nax: Avoid re-parsing NAX data with GetFileType()Lioncash
An instance of the NAX apploader already has an existing NAX instance in memory. Calling directly into IdentifyType() directly would re-parse the whole file again into yet another NAX instance, only to toss it away again. This gets rid of unnecessary/redundant file parsing and allocations.
2018-09-19nax: Avoid unnecessary calls to AsNCA() in IdentifyType()Lioncash
AsNCA() allocates an NCA instance every time it's called. In the current manner it's used, it's quite inefficient as it's making a redundant allocation. We can just amend the order of the conditionals to make it easier to just call it once.
2018-09-19xts_archive: Ensure NAX's type member is always initializedLioncash
Ensures that the member always has a deterministic value.
2018-09-19xts_archive: Amend initializer order of NAX's constructorLioncash
Orders the initializer list in the same order the members would be initialized. Avoids compiler warnings.
2018-09-19Reworked incorrect nifm stubs (#1355)David
* Reworked incorrect nifm stubs Need confirmation on `CreateTemporaryNetworkProfile`, unsure which game uses it but according to reversing. It should return a uuid which we currently don't do. Any 0 client id is considered an invalid client id. GetRequestState 0 is considered invalid. * Fixups for nifm
2018-09-19Merge pull request #1356 from degasus/hotfixbunnei
gl_rasterizer: Fix StartAddress handling with indexed draw calls.
2018-09-19Merge pull request #1359 from ogniK5377/nesbunnei
Fixed GetAccountId stub, Added error code for OpenDirectory and added ActivateNpadWithRevision
2018-09-19Fixed GetAccountId stub, Added error code for OpenDirectory and added ↵David Marcec
ActivateNpadWithRevision With these, `Nintendo Entertainment System - Nintendo Switch Online` loads
2018-09-19yuzu-cmd: Add call to CreateFactoriesZach Hilman
Ensures all relevant filesystem objects are initialized and eliminates a crash related to the RegisteredCache.
2018-09-19savedata_factory: Add TemporaryStorage SaveDataTypeZach Hilman
Seems to be used by NSO NES Emulator
2018-09-19gl_rasterizer: Fix StartAddress handling with indexed draw calls.Markus Wick
We uploaded the wrong data before. So the offset on the host GPU pointer may work for the first vertices, the last ones run out bounds. Let's just offset the upload instead.
2018-09-19Removed MakeBuilder as it's not needed anymoreDavid Marcec
2018-09-19Removed the use of rp.MakeBuilderDavid Marcec
Due to keeping the code style consistent in the yuzu codebase. `rb = rp.MakeBuilder(...)` was replaced with `rb{ctx, ...}`
2018-09-18ring_buffer: Use std::atomic_size_t in a static assertLioncash
Avoids the need to repeat "std::" twice
2018-09-18ring_buffer: Use std::hardware_destructive_interference_size to determine ↵Lioncash
alignment size for avoiding false sharing MSVC 19.11 (A.K.A. VS 15.3)'s C++ standard library implements P0154R1 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html) which defines two new constants within the <new> header, std::hardware_destructive_interference_size and std::hardware_constructive_interference_size. std::hardware_destructive_interference_size defines the minimum recommended offset between two concurrently-accessed objects to avoid performance degradation due to contention introduced by the implementation (with the lower-bound being at least alignof(max_align_t)). In other words, the minimum offset between objects necessary to avoid false-sharing. std::hardware_constructive_interference_size on the other hand defines the maximum recommended size of contiguous memory occupied by two objects accessed wth temporal locality by concurrent threads (also defined to be at least alignof(max_align_t)). In other words the maximum size to promote true-sharing. So we can simply use this facility to determine the ideal alignment size. Unfortunately, only MSVC supports this right now, so we need to enclose it within an ifdef for the time being.
2018-09-18Merge pull request #1348 from ogniK5377/GetImageSizebunnei
Implemented IProfile::GetImageSize