lat9nq
2adc5f524d
*nix systems can read any-case patch directories
...
Changes many patch_manager functions to use a case-less variant of
GetSubdirectory. Fixes patches not showing up on *nix systems when
patch directories are named with odd cases, i.e. `exeFS'.
2020-05-27 23:12:56 -04:00
bunnei
9d095bbb06
Merge pull request #3946 from ogniK5377/sysverdat-10-0-2
...
file_sys: Update SystemVersion archive to version 10.0.2
2020-05-20 19:21:27 -04:00
FearlessTobi
5e9e8073a0
crypto: Make KeyManager a singleton class
...
Previously, we were reading the keys everytime a KeyManager object was created, causing yuzu to reread the keys file multiple hundreds of times when loading the game list.
With this change, it is only loaded once.
On my system, this decreased game list loading times by a factor of 20.
2020-05-20 21:28:16 +02:00
David Marcec
d50dd8f7a0
file_sys: Update SystemVersion archive to version 10.0.2
2020-05-16 13:56:06 +10:00
bunnei
97e2eb439c
file_sys: savefata_factory: Update to support DeviceSaveData.
2020-05-11 12:54:30 -04:00
bunnei
f870a935d4
file_sys: control_metadata: Expose device_save_data_size.
2020-05-11 12:54:30 -04:00
bunnei
4dbf21a6cf
file_sys: program_metadata: Add a helper function for generating reasonable default metadata.
...
- We need this for homebrew process initialization.
2020-04-20 18:19:45 -04:00
bunnei
5b9e69e7fe
core: memory: Move to Core::Memory namespace.
...
- helpful to disambiguate Kernel::Memory namespace.
2020-04-17 00:59:28 -04:00
Lioncash
02e095313a
CMakeLists: Specify -Wextra on linux builds
...
Allows reporting more cases where logic errors may exist, such as
implicit fallthrough cases, etc.
We currently ignore unused parameters, since we currently have many
cases where this is intentional (virtual interfaces).
While we're at it, we can also tidy up any existing code that causes
warnings. This also uncovered a few bugs as well.
2020-04-15 21:33:46 -04:00
bunnei
72c1dd467d
file_sys: patch_manager: Return early when there are no layers to apply.
2020-04-14 16:25:55 -04:00
enler
d7dc7964f1
file_sys: fix LayeredFS error when loading some games made with… ( #3602 )
...
* fix LayeredFS error when loading some games made with the Unity
2020-04-07 02:03:32 +02:00
bunnei
72a8ed19c3
Revert "system_archive: Fix Korean and Chinese fonts"
2020-01-30 22:02:15 -05:00
bunnei
40a54f6de7
Merge pull request #3151 from FearlessTobi/fix-korean
...
system_archive: Fix Korean and Chinese fonts
2020-01-30 15:09:55 -05:00
FearlessTobi
40c05f9028
Disable clang-format for font files
2020-01-24 23:54:19 +01:00
FearlessTobi
6df85b466d
system_archive: Fix Chinese font
...
Adds the proper OSS font for the Chinese language.
2020-01-19 15:09:53 +01:00
FearlessTobi
4be062de19
system_archive: Fix Korean font
...
Fixes Korean fonts when using Open-source system archives.
2020-01-19 15:09:50 +01:00
bunnei
756c19b448
system_archive: Add a basic HLE implementation for time zone binary.
2020-01-04 13:48:29 -05:00
bunnei
5a1be49f6e
Merge pull request #3171 from lioncash/internal-link
...
filesys/romfs: Make ProcessFile and ProcessDirectory internally linked
2019-11-28 01:18:10 -05:00
Morph
2b0823df12
patch_manager: Adds check for disabled cheats to prevent them from being enabled ( #3178 )
...
* Adds check for disabled cheats to prevent them from being added to the CheatList
* Address feedback
2019-11-28 01:17:17 -05:00
Lioncash
0da88a9876
filesys/romfs: Remove unused includes
...
These inclusions aren't used at all within the public interface, so they
can be removed.
2019-11-27 05:29:52 -05:00
Lioncash
eada47f40f
filesys/romfs: Make ProcessFile and ProcessDirectory internally linked
...
These functions aren't used outside of this file, so we can place them
within an anonymous namespace.
2019-11-27 05:26:35 -05:00
Lioncash
a56ce41cc2
file_sys/directory: Make EntryType an enum class
...
This can trivially be an enum class rather than a regular enum, making
it more strongly typed.
2019-11-27 05:11:02 -05:00
bunnei
5897348571
Merge pull request #3091 from lioncash/core-conversion
...
core: Make most implicit type conversion warnings errors on MSVC
2019-11-15 12:08:50 -05:00
bunnei
9364f4d30c
Merge pull request #3093 from lioncash/mbedtls
...
core: Migrate off deprecated mbedtls functions
2019-11-14 13:47:23 -05:00
Lioncash
fd6e676326
xts_archive: Remove redundant std::string constructor
...
We can just call the .data() member of path instead of constructing a
completely new string.
2019-11-13 10:02:10 -05:00
Lioncash
4c6cd8b9e8
core: Migrate off deprecated mbedtls functions
...
These functions are marked for deprecation and it's recommended that the
*_ret variants be used instead.
2019-11-12 08:45:56 -05:00
Lioncash
93dd86b390
loader; Resolve sign conversion/truncation errors
2019-11-12 07:55:39 -05:00
Lioncash
e7f1a6b096
file_sys: Resolve sign conversion warnings
...
Resolves a few trivial sign conversion/mismatch errors.
2019-11-12 07:55:39 -05:00
bunnei
fe02b9f968
common_func: Use std::array for INSERT_PADDING_* macros.
...
- Zero initialization here is useful for determinism.
2019-11-03 22:22:41 -05:00
Zach Hilman
d5f1f99d99
savedata_factory: Automatically create certain savedata
...
After further hardware investigation, it appears that some games, perhaps those more lazily coded, will not call EnsureSaveData, meaning that they expect the normal (current) save to be automatically made. Additionally, some games do not create a cache or temporary save before use.
In these 3 specific instances, the save is created automatically for the game if it doesn't exist.
2019-10-22 15:47:38 -04:00
bunnei
09223fe372
Merge pull request #2897 from DarkLordZach/oss-ext-fonts-1
...
pl_u: Move open source font archives and fix NAND error
2019-10-14 15:13:41 -04:00
bunnei
d3f4d79642
Merge pull request #2930 from DarkLordZach/gamecard-partitions
...
file_sys: Add code to access raw gamecard partitions and lazily load them
2019-10-14 10:29:10 -04:00
Zach Hilman
fd66788be4
card_image: Implement system update commands in XCI
2019-10-13 14:18:45 -04:00
Zach Hilman
8d904c20be
pl_u: Fix mismatched rebase size error in font encryption
2019-10-13 13:46:27 -04:00
Zach Hilman
1dcc71fc9c
pl_u: Use kernel physical memory
2019-10-13 13:46:27 -04:00
Zach Hilman
d37be63099
pl_u: Use OSS system archives if real archives don't exist
2019-10-13 13:46:27 -04:00
Zach Hilman
612b086bd4
system_archive: Synthesize shared fonts system archives
2019-10-13 13:46:10 -04:00
Zach Hilman
cd8c6a4afd
externals: Move OSS font data to file_sys in core
2019-10-13 13:46:10 -04:00
Lioncash
922799f1d5
core: Remove Core::CurrentProcess()
...
This only encourages the use of the global system instance (which will
be phased out long-term). Instead, we use the direct system function
call directly to remove the appealing but discouraged short-hand.
2019-10-06 13:53:12 -04:00
Lioncash
e4e4af80e8
hle/service: Replace global system instance calls with instance-based ones
...
Migrates the HLE service code off the use of directly accessing the
global system instance where trivially able to do so.
This removes all usages of Core::CurrentProcess from the service code,
only 8 occurrences of this function exist elsewhere. There's still quite
a bit of "System::GetInstance()" being used, however this was able to
replace a few instances.
2019-10-06 13:42:23 -04:00
Zach Hilman
098f7e89fd
bcat: Implement DeliveryCacheProgressImpl structure
...
Huge thanks to lioncash for re-ing this for me.
2019-09-30 17:27:23 -04:00
Zach Hilman
9f3dfba950
boxcat: Use Etag header names for file digest
2019-09-30 17:27:23 -04:00
Zach Hilman
010cc6e4f4
filesystem: Add getter for BCAT temporary directory
2019-09-30 17:20:49 -04:00
Zach Hilman
82f636f1ed
vfs: Add function to extract ZIP file into virtual filesystem
2019-09-30 17:18:38 -04:00
Zach Hilman
30eb8fa105
card_image: Add accessors for raw partitions in XCI
2019-09-22 21:51:46 -04:00
Zach Hilman
2e7ba9d78f
card_image: Lazily load partitions in XCI
2019-09-22 21:50:29 -04:00
Zach Hilman
7e56536d35
pfs: Provide accessors for file sizes and offsets
2019-09-22 21:44:36 -04:00
David Marcec
f35665aa28
Revert "Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1"
...
This reverts commit 66d80be727 , reversing
changes made to 43decd1681 .
2019-09-22 17:47:25 +10:00
David
b890029175
Merge pull request #2535 from DarkLordZach/cheat-v2
...
cheat_engine: Use Atmosphere's Cheat VM and fix cheat crash
2019-09-22 16:24:42 +10:00
David
66d80be727
Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1
...
system_archive: Move shared font data to system_archive and fix extended font data
2019-09-22 16:09:22 +10:00
Zach Hilman
949a913356
pl_u: Use kernel physical memory
2019-09-21 23:00:22 -04:00
Zach Hilman
bcac1b8ff5
dmnt_cheat_vm: Default initialize structure values
2019-09-21 22:43:49 -04:00
Zach Hilman
977d27ed15
pl_u: Use OSS system archives if real archives don't exist
2019-09-21 21:50:41 -04:00
Zach Hilman
2b944e0d70
patch_manager: Update cheat parsing for new VM
2019-09-21 21:45:05 -04:00
Zach Hilman
deacc2bb25
cheat_engine: Move to memory and strip VM
...
This is to go with the Atmosphere VM port, now it just contains the callbacks needed for the interface between DmntCheatVm and yuzu, along with the cheat parsers.
2019-09-21 21:44:22 -04:00
Zach Hilman
f005898fb4
system_archive: Synthesize shared fonts system archives
2019-09-21 19:21:58 -04:00
Zach Hilman
896045aa4f
externals: Move OSS font data to file_sys in core
2019-09-21 19:21:22 -04:00
Zach Hilman
04078a2139
configure_debug: Move reporting option to logging
2019-09-21 18:43:20 -04:00
Zach Hilman
541bf1b996
filesystem: Add const qualification to various accessors
2019-09-21 16:50:39 -04:00
Zach Hilman
c3ad37b707
yuzu: Port old usages of Filesystem namespace to FilesystemController
2019-09-21 16:43:10 -04:00
Zach Hilman
c094f75276
card_image: Add accessors for gamecard certificate
...
Used by fsp-srv/IDeviceOperator
2019-09-21 16:43:10 -04:00
Zach Hilman
58dba10b63
card_image: Add functions to query gamecard update partition
...
Includes version and meta title ID, used by fsp-srv/IDeviceOperator
2019-09-21 16:43:10 -04:00
Zach Hilman
8dcda218d8
content_archive: Add accessors for Rights ID and SDK Version
2019-09-21 16:43:10 -04:00
Zach Hilman
a4b2e1c5ce
sdmc_factory: Add SD Card size getters
2019-09-21 16:43:10 -04:00
Zach Hilman
4a2e1c6ae6
bis_factory: Add getters for NAND partition sizes
2019-09-21 16:43:10 -04:00
Zach Hilman
91d032d433
submisson_package: Fix edge case with improperly sized filenames
...
Prevents a crash if the filename is less than 9 characters long.
2019-09-21 16:43:10 -04:00
Zach Hilman
915ea374f8
sdmc_factory: Add accessor for SDMC Album directory
2019-09-21 16:43:10 -04:00
Zach Hilman
3c2e2156e0
sdmc_factory: Add accessor for SDMC PlaceholderCache
2019-09-21 16:43:10 -04:00
Zach Hilman
147fa325d9
sdmc_factory: Add accessor for content directory
2019-09-21 16:43:10 -04:00
Zach Hilman
85ae125737
savedata_factory: Implement savedata creation and don't create dir on open
...
Matches hardware behavior and eliminates some nasty behavior we were doing that wasn't hw-accurate at all.
2019-09-21 16:43:10 -04:00
Zach Hilman
1d342149cd
patch_manager: Add short-circuit edge-case to GetPatchVersionNames
...
If title ID is 0, there are no add ons, prevents wasting time looking for them.
2019-09-21 16:43:10 -04:00
Zach Hilman
e4336e33d6
patch_manager: Add error checking to load dir to prevent crashes
...
Prevents a crash if the load dir would be nullptr, instead logs an error and returns appropriately.
2019-09-21 16:43:10 -04:00
Zach Hilman
ae762910b1
registered_cache: Process *.cnmt.nca files
...
Needed to use the RegisteredCache/PlaceholderCache on gamecards.
2019-09-21 16:43:10 -04:00
Zach Hilman
24ae0aacbc
registered_cache: Implement PlaceholderCache to manage placeholder and installing content
2019-09-21 16:43:10 -04:00
Zach Hilman
9cef1068c5
bis_factory: Fix mod loader edge-case with homebrew title IDs
...
Fixes a bug where homebrew that has a title ID with the update bit set can cause issues with the PatchManager
2019-09-21 16:43:10 -04:00
Zach Hilman
8660185e63
bis_factory: Add accessors for BIS placeholder caches
2019-09-21 16:43:10 -04:00
Zach Hilman
af109c066e
bis_factory: Add accessor for NAND Image Directory
2019-09-21 16:43:10 -04:00
Zach Hilman
2146600c38
bis_factory: Add accessors for BIS content directories
2019-09-21 16:43:10 -04:00
Zach Hilman
17c5f05179
bis_factory: Add accessors for BIS partitions
2019-09-21 16:43:10 -04:00
David
95f4d78e87
Merge pull request #2576 from DarkLordZach/nsp-fix-1
...
nsp: Fix various errors with loading and processing of extracted NSPs
2019-09-21 20:05:24 +10:00
David
ea025af713
Merge pull request #2707 from DarkLordZach/oss-miimodel
...
system_archive: Add open-source reimplementation of MiiModel data
2019-09-05 10:56:32 +10:00
Zach Hilman
f458590c85
system_archive: Add open-source reimplementation of MiiModel data
2019-07-10 07:21:36 -04:00
Michael Scire
6a33b060b7
Implement MapPhysicalMemory/UnmapPhysicalMemory
...
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-07 11:45:53 -07:00
Bakugo
81c1c139fe
file_sys: Rename other ContentRecordType members
2019-07-02 00:57:23 +01:00
Bakugo
e377bcd699
file_sys/registered_cache: Improve missing metadata error
...
This can happen when installing NSPs too, not just XCIs.
2019-07-01 07:31:32 +01:00
Bakugo
d046ef7112
file_sys/submission_package: Don't warn about missing DeltaFragment NCAs
...
DeltaFragments are not useful to us and are often not included in patch NSPs.
2019-07-01 06:46:05 +01:00
Bakugo
88a70b40ba
file_sys/registered_cache: Ignore DeltaFragment NCAs during installation
...
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-01 06:37:22 +01:00
Bakugo
29f1d01c06
file_sys: Rename ContentRecordType::Patch to DeltaFragment
...
Avoids potential confusion, since patches and DeltaFragments are not the same thing. Actual full patches are listed under the Program type.
2019-07-01 06:32:13 +01:00
Zach Hilman
12105d8909
glue: Correct missing bytes in ApplicationLaunchParameter
2019-06-25 22:25:10 -04:00
Zach Hilman
fb8b87dbaf
registered_cache: Add getter to determine source slot in content provider union
...
Used to determine StorageId source for application data.
2019-06-24 19:10:17 -04:00
Zach Hilman
7891b418d4
patch_manager: Add getter for title version
2019-06-24 19:05:50 -04:00
bunnei
a43061206c
Merge pull request #2546 from DarkLordZach/kips
...
loader, file_sys: Add support for parsing and loading KIP (Kernel Internal Process) files
2019-06-21 14:28:18 -04:00
jonsn0w
cbb3371437
Update content_archive.cpp
...
log clutter in debug logs when theres really no need
2019-06-19 22:01:41 -04:00
David Marcec
7b451419b4
Addressed issues
2019-06-17 08:17:26 +10:00
David Marcec
5f5f8c6341
Impl'd IsUserAccountSwitchLocked, SetAudioOutVolume, GetAudioOutVolume & Partial impl of GetAccumulatedSuspendedTickChangedEvent
...
IPC-100 was changed to InitializeApplicationInfoOld instead of InitializeApplicationInfo. IPC-150 makes an indentical call to IPC-100 however does extra processing. They should not have the same name as it's quite confusing to debug.
2019-06-16 19:06:33 +10:00
Zach Hilman
aca05af798
Merge pull request #2581 from lioncash/hex
...
common/hex_util: Combine HexVectorToString() and HexArrayToString()
2019-06-15 16:47:13 -04:00
bunnei
6507034f95
Merge pull request #2582 from lioncash/reserved
...
file_sys/ips_layer: Remove unnecessary reserve() call
2019-06-14 11:24:18 -04:00
Zach Hilman
3cf9150679
Merge pull request #2577 from lioncash/fs
...
file_sys/card_image: Minor cleanup
2019-06-12 19:23:33 -04:00
Lioncash
af914546f2
file_sys/ips_layer: Remove unnecessary reserve() call
...
Given 'replace' is assigned to on the following line, this isn't
necessary, given the underlying data is going to be overwritten
entirely.
2019-06-12 18:12:45 -04:00
Lioncash
59d55c8137
common/hex_util: Combine HexVectorToString() and HexArrayToString()
...
These can be generified together by using a concept type to designate
them. This also has the benefit of not making copies of potentially very
large arrays.
2019-06-12 17:54:05 -04:00
Lioncash
14aca37172
file_sys/card_image: Remove obsolete TODO
...
We already support Rev 1+.
2019-06-12 16:52:19 -04:00
Lioncash
348c03b1bd
file_sys/nca_metadata: Update CNMT structures
...
Names a few more entries in relevant structures. Information based off
SwitchBrew and my own RE.
2019-06-10 23:51:06 -04:00
Lioncash
c45be86d6e
file_sys/card_image: Deduplicate casts within AddNCAFromPartition()
...
Makes for nicer reading.
2019-06-10 23:27:14 -04:00
Lioncash
f5f9c52900
file_sys/card_image: Make bracing consistent
...
Makes for more consistent reading.
2019-06-10 23:27:13 -04:00
Lioncash
8bfb8e3dce
file_sys/card_image: Assign collapsed NCA contents directly to ncas member
...
Same thing, significantly less noisy.
2019-06-10 23:27:13 -04:00
Lioncash
907c499608
file_sys/card_image: Deduplicate type cast
...
Same thing, less duplication. We can also std::move raw into the
PartitionFilesystem constructor.
2019-06-10 23:27:05 -04:00
Lioncash
c305601f9b
file_sys/card_image: Get rid of a magic number
...
We can just use the size of the array to dehardcode it.
2019-06-10 22:58:08 -04:00
Lioncash
bfafb5f7d1
file_sys/card_image: Use std::array deduction guides
...
Same thing, less code.
2019-06-10 22:57:53 -04:00
Zach Hilman
e62e715ac2
nsp: Correct status codes for extracted NSPs
...
Avoids all extracted NSPs being marked as error file type because they don't have program NCAs.
2019-06-10 00:21:41 -04:00
Zach Hilman
5231fb95e6
nsp: Use title ID from NPDM metadata for extracted type NSPs
...
Avoids 0 being used as title ID for all extracted NSPs.
2019-06-10 00:19:23 -04:00
Zach Hilman
ae00309771
kernel_executable: Optimize BLZ decompression
2019-06-06 19:20:15 -04:00
Zach Hilman
5f6dba8ece
game_list: Accept *.kip as a file extension of executables
2019-06-05 00:33:05 -04:00
Zach Hilman
04a69eb6c7
program_metadata: Add function to load meta from raw parameters
...
Needed for KIP loading as KIPs do not have an NPDM but do have the essential parts of the data within.
2019-06-05 00:20:26 -04:00
Zach Hilman
48bb330ad1
file_sys: Add classes to parse KIP1 and INI1 files
2019-06-05 00:18:25 -04:00
Michael Scire
e417da5070
Implement IApplicationFunctions::GetDesiredLanguage
2019-05-23 00:55:56 -07:00
bunnei
53c9e7aab2
Merge pull request #1957 from DarkLordZach/title-provider
...
file_sys: Provide generic interface for accessing game data
2019-04-09 19:16:37 -04:00
bunnei
2ad085e283
Merge pull request #2340 from lioncash/view
...
file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash
2019-04-05 23:40:16 -04:00
bunnei
980c16b58f
Merge pull request #2341 from lioncash/compare
...
file_sys/nca_metadata: Remove unnecessary comparison operators for TitleType
2019-04-05 23:38:37 -04:00
bunnei
41cc5be7b8
Merge pull request #2339 from lioncash/rank
...
service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structs
2019-04-05 23:36:46 -04:00
Lioncash
633d55d503
file_sys/program_metadata: Remove obsolete TODOs
...
BitField has been trivially copyable since
b20657a36f , so we can eliminate these
TODO comments and use ReadObject() directly instead of memcpying the
data.
2019-04-05 15:57:47 -04:00
Lioncash
0359cba0f3
file_sys/nca_metadata: Remove unnecessary comparison operators for TitleType
...
enum class elements from the same enum can already be compared against
one another without the need for explicitly defined comparison
operators.
2019-04-05 15:20:07 -04:00
Lioncash
d7f670204b
file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash()
...
The given string instance doesn't need to be copied entirely, we can
just use a view instead.
2019-04-05 15:12:20 -04:00
Lioncash
7d93ed3f70
service/fsp_srv: Don't pass SaveDataDescriptor instances by value.
...
Passing around a 64 byte data struct by value is kind of wasteful,
instead pass a reference to the struct.
2019-04-05 11:04:01 -04:00
Lioncash
90abd76bd9
service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structs
...
I realized that I updated the documentation on SwitchBrew a while ago,
but never actually updated the structs within yuzu.
2019-04-05 11:03:53 -04:00
Lioncash
74c41c4095
file_sys/control_metadata: Amend naming of members
...
Quite a bit of these were out of sync with Switchbrew (and in some cases
entirely wrong). While we're at it, also expand the section of named
members. A segment within the control metadata is used to specify
maximum values for the user, device, and cache storage max sizes and
journal sizes.
These appear to be generally used by the am service (e.g. in
CreateCacheStorage, etc).
2019-04-03 21:18:12 -04:00
Zach Hilman
d6744d9b06
patch_manager: Dump NSO name with build ID
2019-03-27 20:09:01 -04:00
Zach Hilman
3f62d06b38
core: Port current uses of RegisteredCache to ContentProvider
2019-03-26 22:05:37 -04:00
Zach Hilman
0cfcb928ce
file_sys: Create ContentProvider interface and default implementations
2019-03-26 22:03:26 -04:00
Lioncash
ff47991967
core/cheat_engine: Make MemoryReadImpl and MemoryWriteImpl internally linked
...
These don't need to be visible outside of the translation unit, so they
can be enclosed within an anonymous namespace.
2019-03-24 18:34:42 -04:00
bunnei
3ee41ee7e2
Merge pull request #2221 from DarkLordZach/firmware-version
...
set_sys: Implement GetFirmwareVersion(2) for libnx hosversion
2019-03-23 13:48:29 -04:00
bunnei
a5edb8d391
Merge pull request #2280 from lioncash/nso
...
loader/nso: Minor refactoring
2019-03-23 13:46:09 -04:00
Lioncash
0d44c061fe
file_sys/cheat_engine: Silence truncation and sign-conversion warnings
2019-03-22 14:43:41 -04:00
Lioncash
b59b7084c7
file_sys/cheat_engine: Remove use of global system accessors
...
Instead, pass in the core timing instance and make the dependency
explicit in the interface.
2019-03-22 14:43:37 -04:00
Lioncash
be2b64e8bc
file_sys/patch_manager: Deduplicate NSO header
...
This source file was utilizing its own version of the NSO header.
Instead of keeping this around, we can have the patch manager also use
the version of the header that we have defined in loader/nso.h
2019-03-22 14:39:10 -04:00
Lioncash
782461221f
file_sys/patch_manager: Remove two magic values
...
These correspond to the NSOBuildHeader.
2019-03-22 14:17:50 -04:00
bunnei
92870ed060
Merge pull request #1933 from DarkLordZach/cheat-engine
...
file_sys: Implement parser and interpreter for game memory cheats
2019-03-21 21:41:59 -04:00
Lioncash
43fd362174
file_sys/content_archive: Amend name of Data_Unknown5 enum entry
...
While we're at it, give each entry some documentation.
2019-03-19 15:58:38 -04:00
Zach Hilman
03c5d788da
set_sys: Use official nintendo version string
2019-03-10 19:54:13 -04:00
Zach Hilman
d741f8ee90
system_version: Correct sizes on VectorVfsFile construction
2019-03-10 19:16:17 -04:00
Zach Hilman
d9ef55ed76
set_sys: Implement GetFirmwareVersion(2) for libnx hosversion
...
Uses the synthesized system archive 9 (SystemVersion) and reports v5.1.0-0.0
2019-03-10 16:51:42 -04:00
Zach Hilman
20c46b9242
vm_manager: Remove cheat-specific ranges from VMManager
2019-03-05 10:09:36 -05:00
Zach Hilman
b6ac32dc35
cheat_engine: Add parser and interpreter for game cheats
2019-03-04 18:39:58 -05:00
Zach Hilman
81302571bf
patch_manager: Display cheats in game list add-ons
2019-03-04 18:39:57 -05:00
Zach Hilman
57c6d77be0
patch_manager: Add support for loading cheats lists
...
Uses load/<title_id>/<mod_name>/cheats as root dir, file name is all upper or lower hex first 8 bytes build ID.
2019-03-04 18:39:57 -05:00
Frederic L
b0f1eaee7a
file_sys/vfs_vector: Fix ignored offset on Write
2019-02-25 00:27:49 +01:00
bunnei
531f203a9b
Merge pull request #2025 from DarkLordZach/loader-banner-logo
...
loader: Add getters for application banner and logo
2019-01-20 13:26:27 -05:00
Lioncash
a5d7387d47
file_sys/directory: Remove unused DirectoryBackend class
...
This isn't used at all, so we can just get rid of it.
2019-01-18 14:33:50 -05:00
Zach Hilman
fa4a624cc6
content_archive: Add getter for logo section of NCA
2019-01-15 16:00:29 -05:00
Zach Hilman
94149affe0
romfs: Add SingleDiscard extraction type
...
Needed for manual RomFS extraction, as Full generates an extra directory and Truncated generates variable results.
2018-12-28 15:30:36 -05:00
Lioncash
a72bda4ecc
file_sys/program_metadata: Print out more descriptive address space descriptions
...
Provides extra information that makes it easier to tell if an executable
being run is using a 36-bit address space or a 39-bit address space.
While we don't support AArch32 executables yet, this also puts in
distinguishing information for the 32-bit address space types as well.
2018-12-27 19:16:45 -05:00
bunnei
25a218248a
Merge pull request #1928 from lioncash/caps
...
kernel: Handle kernel capability descriptors
2018-12-27 11:15:34 -05:00
Zach Hilman
9121887ae4
am: Implement GetSaveDataSize and ExtendSaveData
...
These functions come in a pair and are needed by Smash Ultimate, Minecraft, and Skyrim, amongst others.
2018-12-27 00:18:00 -05:00
Zach Hilman
cfb21a8781
savedata_factory: Partially implement IVFC save sizes using files
...
This stores a file in the save directory called '.yuzu_save_size' which stores the two save sizes (normal area and journaled area) sequentially as u64s.
2018-12-27 00:18:00 -05:00
Zach Hilman
80ae27c5fc
control_metadata: Update NACP fields with latest Switchbrew data
2018-12-27 00:16:55 -05:00
Zach Hilman
8e1160d668
control_metadata: Use value member instead of unique_ptr to store struct
...
Serves no actual purpose in this instance besides making NACP's copy assignment deleted, which is not intended behavior.
2018-12-27 00:16:55 -05:00
Zach Hilman
f6755b94db
vfs: Add reinterpret_casts to WriteArray and Object
...
Allows these functions to compile when T is not u8.
2018-12-27 00:16:55 -05:00
Lioncash
b221836d5d
kernel/process: Hook up the process capability parser to the process itself
...
While we're at it, we can also toss out the leftover capability parsing
from Citra.
2018-12-21 07:05:34 -05:00
David Marcec
1dfb0a513a
Fixed uninitialized memory due to missing returns in canary
...
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
2018-12-19 12:52:32 +11:00
Lioncash
9cb11d1ae4
patch_manager: Prevent use of a dangling pointer within PatchRomFS
...
fmt::format() returns a std::string instance by value, so calling
.c_str() on it here is equivalent to doing:
auto* ptr = std::string{}.c_str();
The data being pointed to isn't guaranteed to actually be valid anymore
after that expression ends. Instead, we can just take the string as is,
and provide the necessary formatting parameters.
2018-12-11 10:08:13 -05:00
bunnei
d2177aa20d
Merge pull request #1846 from lioncash/dir
...
file_sys/directory: Amend path buffer size for directory entries
2018-12-10 21:54:03 -05:00
bunnei
841d21795d
Merge pull request #1819 from DarkLordZach/disable-addons
...
patch_manager: Add support for disabling patches
2018-12-10 21:52:19 -05:00
bunnei
e6ee018d18
Merge pull request #1885 from lioncash/data_id
...
file_sys/save_data_factory: Update SaveDataSpaceId enum
2018-12-10 21:44:50 -05:00
Lioncash
e7d4f1aebc
file_sys/save_data_factory: Update SaveDataSpaceId enum
...
Amends it with missing values deduced from RE (ProperSystem being from
SwitchBrew for naming)
(SdCardUser wasn't that difficult to discern given it's used alongside
SdCardSystem when creating the save data indexer, based off the usage of
the string "saveDataIxrDbSd" nearby).
2018-12-07 18:52:18 -05:00
Zach Hilman
e809d6c791
savedata_factory: Add support for CacheStorage
2018-12-07 08:47:32 -05:00
Zach Hilman
27b5ca24e8
savedata_factory: Delete TemporaryStorage on startup
...
Mimics hardware behavior.
2018-12-06 22:07:34 -05:00
Zach Hilman
1f604f5be3
system_archive: Implement open source NgWord2
2018-12-06 10:17:50 -05:00
Lioncash
4d5bca8e2d
ng_word: Deduplicate use of a constant value
...
We've already given the constant to the vector itself, so we don't need
to re-hardcode it in the array.
2018-12-05 02:36:45 -05:00
Lioncash
79627baf05
system_archive: Use a regular function pointer instead of std::function for file-scope system archive array
...
This allows the array to be constexpr. std::function is also allowed to
allocate memory, which makes its constructor non-trivial, we definitely
don't want to have all of these execute at runtime, taking up time
before the application can actually load.
2018-12-05 02:33:17 -05:00
bunnei
fe2a091cdf
Merge pull request #1704 from DarkLordZach/oss-sysarchive
...
file_sys: Implement open source system archives
2018-12-04 19:59:52 -05:00
bunnei
0a498c72d7
Merge pull request #1838 from lioncash/dedup
...
file_sys/registered_cache: Eliminate variable shadowing
2018-12-04 18:34:49 -05:00
Zach Hilman
1c3bade698
patch_manager: Obey disabled add-ons list when patching game
2018-12-03 17:21:25 -05:00
bunnei
21855362e2
Merge pull request #1835 from lioncash/cache-global
...
filesystem: De-globalize registered_cache_union
2018-12-03 17:11:26 -05:00
Lioncash
1207174abb
file_sys/directory: Amend path buffer size for directory entries
...
The path buffer is actually 0x301 (769) characters in length, with the
extra character being intended for the null-terminator.
2018-12-02 23:15:58 -05:00
Lioncash
24480be3da
file_sys/registered_cache: Eliminate variable shadowing
...
Also inverts if statements where applicable to allow unindenting code a
little bit.
2018-12-01 23:50:13 -05:00
Lioncash
de9051633c
filesystem: De-globalize registered_cache_union
...
We can just return a new instance of this when it's requested. This only
ever holds pointers to the existing registed caches, so it's not a large
object. Plus, this also gets rid of the need to keep around a separate
member function just to properly clear out the union.
Gets rid of one of five globals in the filesystem code.
2018-12-01 23:43:23 -05:00
Lioncash
7a47740f52
file_sys: Override missing mutating functions to be stubbed out for ReadOnlyVfsDirectory by default
...
Ensures that read only indeed means read only.
2018-11-30 23:52:56 -05:00
Lioncash
9c56be6af9
service/fsp_srv: Implement CleanDirectoryRecursively
...
This is the same behavior-wise as DeleteDirectoryRecursively, with the
only difference being that it doesn't delete the top level directory in
the hierarchy, so given:
root_dir/
- some_dir/
- File.txt
- OtherFile.txt
The end result is just:
root_dir/
2018-11-30 20:17:28 -05:00
bunnei
d79678070b
Merge pull request #1814 from lioncash/ptr
...
file_sys/registered_cache: Use regular const references instead of std::shared_ptr for InstallEntry()
2018-11-27 19:20:12 -05:00
Lioncash
0e9f6039fe
file_sys/registered_cache: Remove unused <map> include
2018-11-27 16:33:18 -05:00
Lioncash
e83ede49f2
file_sys/registered_cache: Use regular const references instead of std::shared_ptr for InstallEntry()
...
These parameters don't need to utilize a shared lifecycle directly in
the interface. Instead, the caller should provide a regular reference
for the function to use. This also allows the type system to flag
attempts to pass nullptr and makes it more generic, since it can now be
used in contexts where a shared_ptr isn't being used (in other words, we
don't constrain the usage of the interface to a particular mode of
memory management).
2018-11-27 16:33:14 -05:00
Lioncash
455e66c08b
control_metadata: Correct typo in language name (Portugese -> Portuguese)
...
While we're at it, organize the array linearly, since clang formats the
array elements quite wide length-wise with the addition of the missing
'u'.
Technically also fixes patch lookup and icon lookup with Portuguese,
though I doubt anyone has actually run into this issue.
2018-11-27 13:21:46 -05:00
bunnei
78314332c2
Merge pull request #1747 from DarkLordZach/exefs-lfs
...
patch_manager: Add support for applying LayeredFS patches to ExeFS
2018-11-23 23:31:48 -05:00
Zach Hilman
de323f7dc6
file_sys: Implement system archive synthesizer for NgWord (806)
2018-11-22 21:39:10 -05:00
Zach Hilman
9192141822
patch_manager: Show LayeredExeFS patch in add-ons column
...
The decision was made to name them LayeredExeFS instead of just LayeredFS to differentiate from normal RomFS-based mods. The name may be long/unweildy, but conveys the meaning well.
2018-11-20 19:22:34 -05:00
Lioncash
843a440afc
file_sys/card_image: Provide named members for the GamecardInfo struct
...
Fills out the struct according to information provided by SwitchBrew
2018-11-20 18:40:53 -05:00
Zach Hilman
67e33e8866
patch_manager: Apply LayeredExeFS patches
...
This will scan the <mod>/exefs dir for all files and then layer those on top of the game's exefs and use this as the new exefs. This allows for overriding of the compressed NSOs or adding new files. This does use the same dir as IPS/IPSwitch patch, but since the loader will not look for those they are ignored.
2018-11-20 17:51:00 -05:00
Zach Hilman
df1c902e44
settings: Add option to dump ExeFS of games upon launch
...
When enabled, all exefs(es) will be copied to yuzu/dump/<title_id>/exefs.
2018-11-20 17:49:09 -05:00
bunnei
66ee595d1e
Merge pull request #1632 from DarkLordZach/keys-manager-optimizations
...
game_list: Optimize game list refresh
2018-11-16 07:02:37 -08:00
Lioncash
57fca18145
file_sys/errors: Remove currently unused filesystem error codes
...
Rather than keeping around unused values, we can just introduce them as
needed.
2018-11-16 00:18:22 -05:00
Lioncash
21e653aab6
file_sys/errors: Get rid of the ErrCodes namespace
...
There's no real point to keeping the separate enum around, especially
given the name of the error code itself is supposed to document what the
value actually represents.
2018-11-16 00:13:50 -05:00
Lioncash
55f9f05772
file_sys/errors: Extract FS-related error codes to file_sys/errors.h
...
Keeps filesystem-related error codes in one spot.
2018-11-16 00:13:50 -05:00
Zach Hilman
f1104a4be5
file_sys: Add framework for synthesizing open source archives
2018-11-15 22:34:35 -05:00
Zach Hilman
5489763aee
vfs_vector: Add VFS backend for std::array
...
Allows using constexpr/static const data with VFS.
2018-11-15 22:33:52 -05:00
bunnei
95a21eb3ef
Merge pull request #1618 from DarkLordZach/dump-nso
...
patch_manager: Add support for dumping uncompressed NSOs
2018-11-15 14:46:10 -08:00
bunnei
ddb654fe02
Merge pull request #1608 from DarkLordZach/save-data-reader
...
[ns|fsp_srv]: Implement various functions to boot Checkpoint
2018-11-13 18:51:08 -08:00
Zach Hilman
cf81685cc8
file_sys: Use common KeyManager in NCA container types
...
Creates a single KeyManager for the entire container and then passes it into the NCA constructor, eliminating several unnecessary KeyManager reads.
2018-11-01 20:23:38 -04:00
Zach Hilman
141551e560
content_archive: Add optional KeyManager parameter to constructor
...
Allows resuing a common KeyManager when a large amount of NCAs are handled by the same class. Should the parameter not be provided, a new KeyManager will be constructed, as was the default behavior prior to this.
2018-11-01 20:22:29 -04:00
Lioncash
70e4492d49
general: Remove unused boost inclusions where applicable
...
Cleans up unused includes and trims off some dependencies on externals.
2018-10-30 00:09:46 -04:00
Frederic L
c76f4b6aec
global: Use std::optional instead of boost::optional ( #1578 )
...
* get rid of boost::optional
* Remove optional references
* Use std::reference_wrapper for optional references
* Fix clang format
* Fix clang format part 2
* Adressed feedback
* Fix clang format and MacOS build
2018-10-30 00:03:25 -04:00
Zach Hilman
08ce39a982
ns: Implement command 400: GetApplicationControlData
...
Returns the raw NACP bytes and the raw icon bytes into a title-provided buffer. Pulls from Registration Cache for control data, returning all zeros should it not exist.
2018-10-29 16:20:16 -04:00