1. 21 Sep, 2018 6 commits
  2. 20 Sep, 2018 13 commits
    • Mat M's avatar
      Merge pull request #1370 from Hedges/GDBClean · f2372651
      Mat M authored
      Correct endianness of BRK
      f2372651
    • Mat M's avatar
      Merge pull request #1362 from MerryMage/dynarmic · 1e35d8fa
      Mat M authored
      externals: Update dynarmic to 171d116
      1e35d8fa
    • Jarek Syrylak's avatar
      Correct endianness of BKPT · 74f96640
      Jarek Syrylak authored
      74f96640
    • MerryMage's avatar
      arm_dynarmic: Halt when BRK encountered · ef314876
      MerryMage authored
      ef314876
    • David Marcec's avatar
      Fixed submit · 3f49725a
      David Marcec authored
      3f49725a
    • David Marcec's avatar
      Added IRequest::Submit · cfc9fe44
      David Marcec authored
      This fixes updated versions of SMO. Currently unable to test as I don't have an updated version
      cfc9fe44
    • bunnei's avatar
      Merge pull request #1358 from DarkLordZach/temp-storage · 8fe95722
      bunnei authored
      savedata_factory: Add TemporaryStorage SaveDataType
      8fe95722
    • bunnei's avatar
      Merge pull request #1363 from lioncash/control · 0931a711
      bunnei authored
      control_metadata: Move language name array definition to the cpp file
      0931a711
    • bunnei's avatar
      Merge pull request #1361 from lioncash/nax · b02a1e38
      bunnei authored
      xts_archive/nax: Minor interface changes
      b02a1e38
    • bunnei's avatar
      Merge pull request #1366 from ogniK5377/splat-fix · e57aa62b
      bunnei authored
      Implemented NTC & IEnsureNetworkClockAvailabilityService
      e57aa62b
    • Lioncash's avatar
      game_list: Handle plurals within setFilterResult() better · e980e90d
      Lioncash authored
      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).
      e980e90d
    • David Marcec's avatar
      Removed unneeded event clear · 58313770
      David Marcec authored
      58313770
    • David Marcec's avatar
      Implemented NTC & IEnsureNetworkClockAvailabilityService · 335e9d18
      David Marcec authored
      Needed because of the recent nim fixes
      335e9d18
  3. 19 Sep, 2018 21 commits
    • Lioncash's avatar
      file-sys: Default heavy-weight class destructors in the cpp file · 05ef9dfc
      Lioncash authored
      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.
      05ef9dfc
    • Lioncash's avatar
      control_metadata: Remove unnecessary else within GetLanguageEntry() · 3146502a
      Lioncash authored
      There's no need to indent the code here, given the if case contains a
      return statement at the end of it.
      3146502a
    • Lioncash's avatar
      control_metadata: Move language name array definition to the cpp file · 05d49962
      Lioncash authored
      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.
      05d49962
    • MerryMage's avatar
      arm_dynarmic: Support BKPT instruction · 3b4a1582
      MerryMage authored
      3b4a1582
    • MerryMage's avatar
      externals: Update dynarmic to 171d116 · 321eb0b6
      MerryMage authored
      171d116 A64: Implement SCVTF, UCVTF (vector, fixed-point), scalar variant
      f221bb0 emit_x64_floating_point: Reduce fallback LUT code in EmitFPToFixed
      eb123e2 A64: Implement FCVTZS, FCVTZU, UCVTF, SCVTF (vector, fixed-point), vector variant
      487d37a A64: Implement UQSHL's vector immediate and register variants
      f698933 ir: Add opcodes for unsigned saturating left shifts
      7148e66 A64/translate/impl: Make signatures consistent for unimplemented by-element SIMD variants
      fdde4ca A64: Implement BRK
      b1490db A64/imm: Add full range of comparison operators to Imm template
      1ec40ef IR: Add fbits argument to FPVectorFrom{Signed,Unsigned}Fixed
      d6d5e98 A64: Implement SCVTF, UCVTF (scalar, fixed-point)
      6513595 opcodes.inc: Align columns to a tabstop of 4
      6b0d2b5 IR: Add fbits argument to FixedToFP-related opcodes
      c4b3831 A64: Implement SQSHL's vector immediate variant
      e0d8d2d A64: Implement SQSHL's vector register variant
      5327625 ir: Add opcodes for left signed saturated shifts
      9705252 branch: Make variables const where applicable
      650946e move_wide: Make variables const where applicable
      62b3a6d load_store_register_unprivileged: Make variables const where applicable
      3add1c7 load_store_register_immediate: Place conditional bodies on their own line
      2fc4088 load_store_load_literal: Make variables const where applicable
      b2c1462 data_processing_logical: Move datasize declarations after early-exit conditionals
      028028f data_processing_conditional_select: Make variables const where applicable
      c66042d data_processing_addsub: Move datasize declarations after early-exit conditionals
      6bc546e data_processing_bitfield: Move datasize variables after early-exit conditionals
      2aad5fa A64: Implement CLS's vector variant
      6c877ff emit_x64_vector: Make EmitVectorUnsignedSaturatedAccumulateSigned() internally linked
      4b5926d perf_map: Use std::string_view instead of std::string for PerfMapRegister()
      7445947 A64: Implement SQRDMULH (vector), vector variant
      03b80f2 A64: Implement SQDMULL (vector), vector variant
      4a2c596 IR: Add VectorSignedSaturatedDoublingMultiplyLong
      59dc33e emit_x64_vector: Changes to VectorSignedSaturatedDoublingMultiply
      bbaebeb IR: Implement Vector{Signed,Unsigned}Multiply{16,32}
      baac5a8 backend_x64/a64_interface: Re-enable the constant folding pass
      e78ca19 emit_x64_vector_floating_point: Hardware FMA implementation for RSqrtStepFused
      8a5ae9a emit_x64_vector_floating_point: Hardware FMA implementation of FPVectorRecipStepFused
      39818f9 emit_x64_floating_point: Hardware FMA implementation of FPRSqrtStepFused
      3d0a0b4 emit_x64_floating_point: Hardware FMA implementation of FPRecipStepFused{32,64}
      2293dff emit_x64_vector: SSE implementation of VectorSignedSaturatedAccumulateUnsigned{8,16,32}
      2047683 emit_x64_vector: Correct static asserts for < 64-bit type checks in saturated accumulate fallbacks
      55e9e40 emit_x64_vector: EmitVectorSignedSaturatedAccumulateUnsigned64: SSE implementation
      1076651 emit_x64_vector: Simplify fpsr_qc related code
      4039030 A64: Implement CLZ's vector variant
      0bb908f ir: Add opcodes for vector CLZ operations
      3b13259 A64/translate: VectorZeroUpper for V(64) stores
      1931d44 simd_two_register_misc: FNEG (vector) with Q == 0 had dirty upper
      a0790f0 emit_x64_vector: Remove unnecessary [[maybe_unused]] attributes
      b0e1eb5 A64: Implement USQADD's scalar and vector variants
      28424c7 ir: Add opcodes form unsigned saturated accumulations of signed values
      9923ea0 A64: Implement SUQADD's scalar and vector variants
      4c0adbb ir: Add opcodes for signed saturated accumulations of unsigned values
      799bfed A64: Implement SMLAL{2}, SMLSL{2}, UMLAL{2}, and UMLSL{2}'s vector by-element variants
      94451ec A64: Implement UMULL{2}'s vector by-element variant
      45867de A64: Implement SMULL{2}'s vector by-element variant
      0235793 ir/value: Replace includes with forward declarations
      450f721 ir/cond: Migrate to C++17 nested namespace specifiers
      e649988 CMakeLists: Add missing cond.h header to file listing
      d20e769 A64: Implement URSQRTE
      4f3bde5 ir: Add opcodes for performing unsigned reciprocal square root estimates
      cfeeaec A64: Implement URECPE
      622b60e ir: Add opcodes for unsigned reciprocal estimate
      d17599a Update Xbyak to 5.71
      f7c26e9 Squashed 'externals/xbyak/' changes from 671fc805..1de435ed
      8782b69 travis: Make macOS build with Xcode 9.4.1
      b575b23 A64: Implement SQNEG's scalar and vector variant
      06062a9 A64: Add opcodes for signed saturating negations
      1c40579 emit_x64_vector: Simplify "position == 0" case for EmitVectorExtract()
      e335050 emit_x64_vector: Simplify "position == 0" case for EmitVectorExtractLower()
      8b13421 A64: Implement SQDMULH's by-element scalar variant
      9122a6e A64: Implement SQDMULH's by-element vector variant
      176e60e backend/x64: Do not clear fast_dispatch_table if not enabled
      321eb0b6
    • Lioncash's avatar
      xts_archive: Remove unused variables from CalculateHMAC256() · 2e5f0e50
      Lioncash authored
      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.
      2e5f0e50
    • Lioncash's avatar
      xts_archive: Make AsNCA() return a std::unique_ptr instead of a std::shared_ptr · 27521838
      Lioncash authored
      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.
      27521838
    • Lioncash's avatar
      nax: Avoid re-parsing NAX data with GetFileType() · 45195a51
      Lioncash authored
      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.
      45195a51
    • Lioncash's avatar
      nax: Avoid unnecessary calls to AsNCA() in IdentifyType() · c8c41056
      Lioncash authored
      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.
      c8c41056
    • Lioncash's avatar
      xts_archive: Ensure NAX's type member is always initialized · f272261c
      Lioncash authored
      Ensures that the member always has a deterministic value.
      f272261c
    • Lioncash's avatar
      xts_archive: Amend initializer order of NAX's constructor · 92a98a8b
      Lioncash authored
      Orders the initializer list in the same order the members would be
      initialized. Avoids compiler warnings.
      92a98a8b
    • David's avatar
      Reworked incorrect nifm stubs (#1355) · 0432af5a
      David authored
      * 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
      0432af5a
    • bunnei's avatar
      Merge pull request #1356 from degasus/hotfix · 52fb86c6
      bunnei authored
      gl_rasterizer: Fix StartAddress handling with indexed draw calls.
      52fb86c6
    • bunnei's avatar
      Merge pull request #1359 from ogniK5377/nes · 8dff92c5
      bunnei authored
      Fixed GetAccountId stub, Added error code for OpenDirectory and added ActivateNpadWithRevision
      8dff92c5
    • bunnei's avatar
      Merge pull request #1353 from ogniK5377/remove-MakeBuilder · 5fbc3542
      bunnei authored
      Removed the use of rp.MakeBuilder in the yuzu codebase
      5fbc3542
    • David Marcec's avatar
      Fixed GetAccountId stub, Added error code for OpenDirectory and added ActivateNpadWithRevision · cbc7ad8f
      David Marcec authored
      With these, `Nintendo Entertainment System - Nintendo Switch Online` loads
      cbc7ad8f
    • Zach Hilman's avatar
      savedata_factory: Add TemporaryStorage SaveDataType · dfaea55b
      Zach Hilman authored
      Seems to be used by NSO NES Emulator
      dfaea55b
    • Markus Wick's avatar
      gl_rasterizer: Fix StartAddress handling with indexed draw calls. · f465e4aa
      Markus Wick authored
      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.
      f465e4aa
    • David Marcec's avatar
      08819ec7
    • David Marcec's avatar
      Removed the use of rp.MakeBuilder · 6a0612f2
      David Marcec authored
      Due to keeping the code style consistent in the yuzu codebase. `rb = rp.MakeBuilder(...)` was replaced with `rb{ctx, ...}`
      6a0612f2
    • Lioncash's avatar
      ring_buffer: Use std::atomic_size_t in a static assert · ab6dfa4f
      Lioncash authored
      Avoids the need to repeat "std::" twice
      ab6dfa4f