Zach Hilman
2e4c791f79
RomFS Extraction
8 years ago
Zach Hilman
bd410ce242
VFS Regression and Accuracy Fixes ( #776 )
* Regression and Mode Fixes
* Review Fixes
* string_view correction
* Add operator& for FileSys::Mode
* Return std::string from SanitizePath
* Farming Simulator Fix
* Use != With mode operator&
8 years ago
Lioncash
6904f9f6b1
partition_filesystem: Use std::move where applicable
Avoids copying a std::string instance and avoids unnecessary atomic
reference count incrementing and decrementing.
8 years ago
Zach Hilman
ac0c52dd5f
NRO Assets and NACP file format
Cleanup
Review fixes
8 years ago
Lioncash
2cbc2717e4
vfs: Correct file_p variable usage within InterpretAsDirectory()
ReplaceFileWithSubdirectory() takes a VirtualFile and a VirtualDir, but
it was being passed a string as one of its arguments. The only reason
this never caused issues is because this template isn't instantiated
anywhere yet.
This corrects an issue before it occurs.
8 years ago
Lioncash
861405d6c0
file_util, vfs: Use std::string_view where applicable
Avoids unnecessary construction of std::string instances where
applicable.
8 years ago
Lioncash
574be087d4
file_util: Use a u64 to represent number of entries
This avoids a truncating cast on size. I doubt we'd ever traverse a
directory this large, however we also shouldn't truncate sizes away.
8 years ago
Lioncash
25e1111621
file_sys/errors: Remove redundant object constructor calls
Given we're already constructing the error code, we don't need to call
the constructor inside of it.
8 years ago
Lioncash
285dfd1a6d
vfs_real: Remove redundant copying of std::vector instances in GetFiles() and GetSubdirectories()
We already return by value, so we don't explicitly need to make the
copy.
8 years ago
Lioncash
97f7a15e70
partition_filesystem, vfs_real: Add missing standard includes
8 years ago
Lioncash
ed7f23ef32
partition_filesystem, vfs_real: Use std::move in ReplaceFileWithSubdirectory() where applicable
Avoids unnecessary atomic increment and decrement operations.
8 years ago
Lioncash
24fc1a425a
partition_filesystem, vfs_real: Use std::distance() instead of subtraction
This is a little bit more self-documenting on what is being done here.
8 years ago
Lioncash
785d86d181
vfs_offset: Simplify TrimToFit()
We can simply use std::clamp() here, instead of using an equivalent
with std::max() and std::min().
8 years ago
Lioncash
25510961ea
vfs: Make WriteBytes() overload taking a std::vector pass the std::vector by const reference
Given the data is intended to be directly written, there's no need to
take the std::vector by value and copy the data.
8 years ago
Lioncash
e523ab8b03
vfs: Use variable template variants of std::is_trivially_copyable
Provides the same behavior, but with less writing
8 years ago
Lioncash
556aaf9627
vfs: Amend constness on pointers in WriteBytes() and WriteArrays() member functions to be const qualified
These functions don't modify the data being pointed to, so these can be
pointers to const data
8 years ago
Lioncash
02e5e6fba3
vfs_offset: std::move file and name parameters of OffsetVfsFile
Avoids potentially unnecessary atomic reference count incrementing and
decrementing, as well as string copying.
8 years ago
Lioncash
3fbde66789
partition_filesystem: Return pfs_dirs member variable within GetSubdirectories()
This should be returned here, otherwise pfs_dirs is effectively only
ever added to, but never read.
8 years ago
Lioncash
f92bb43138
savedata_factory: Make SaveDataDescriptor's DebugInfo() function a const member function
This function doesn't alter class state.
8 years ago
Lioncash
a9b596c444
partition_filesystem: Ensure all class members of PartitionFilesystem are initialized
Previously is_hfs and pfs_header members wouldn't be initialized in the
constructor, as they were stored in locals instead. This would result in
things like GetName() and PrintDebugInfo() behaving incorrectly.
While we're at it, initialize the members to deterministic values as
well, in case loading ever fails.
8 years ago
Lioncash
9eb43dc910
content_archive: Make IsDirectoryExeFS() take a shared_ptr as a const reference
There's no need to take this by value when it's possible to avoid
unnecessary copies entirely like this.
8 years ago
Lioncash
701bdfd753
content_archive: Add missing standard includes
8 years ago
Lioncash
bff53f234d
content_archive: std::move VirtualFile in NCA's constructor
Gets rid of unnecessary atomic reference count incrementing and
decrementing.
8 years ago
Lioncash
47858aed98
vfs: Deduplicate accumulation code in VfsDirectory's GetSize()
We can just use a generic lambda to avoid writing the same thing twice.
8 years ago
Zach Hilman
82150bd5c1
Virtual Filesystem 2: Electric Boogaloo ( #676 )
* Virtual Filesystem
* Fix delete bug and documentate
* Review fixes + other stuff
* Fix puyo regression
8 years ago
Zach Hilman
753d85fb0c
General Filesystem and Save Data Fixes ( #670 )
8 years ago
Subv
d4a639a08e
FileSys: Append the requested path to the filesystem base path in DeleteFile.
We were trying to delete things in the current directory instead of the actual filesystem directory. This may fix some savedata issues in some games.
8 years ago
bunnei
99a359777c
savedata_factory: Always create a save directory for games.
8 years ago
bunnei
0c22a8d514
Revert "Virtual Filesystem ( #597 )"
This reverts commit 12e9522b32 .
8 years ago
Zach Hilman
12e9522b32
Virtual Filesystem ( #597 )
* Add VfsFile and VfsDirectory classes
* Finish abstract Vfs classes
* Implement RealVfsFile (computer fs backend)
* Finish RealVfsFile and RealVfsDirectory
* Finished OffsetVfsFile
* More changes
* Fix import paths
* Major refactor
* Remove double const
* Use experimental/filesystem or filesystem depending on compiler
* Port partition_filesystem
* More changes
* More Overhaul
* FSP_SRV fixes
* Fixes and testing
* Try to get filesystem to compile
* Filesystem on linux
* Remove std::filesystem and document/test
* Compile fixes
* Missing include
* Bug fixes
* Fixes
* Rename v_file and v_dir
* clang-format fix
* Rename NGLOG_* to LOG_*
* Most review changes
* Fix TODO
* Guess 'main' to be Directory by filename
8 years ago
James Rowe
d74d2a77cb
Update clang format
8 years ago
James Rowe
e159c550d8
Rename logging macro back to LOG_*
8 years ago
Zach Hilman
a47f36da7b
Add support for decrypted NCA files ( #567 )
* Start to add NCA support in loader
* More nca stuff
* More changes to nca.cpp
* Now identifies decrypted NCA cont.
* Game list fixes and more structs and stuff
* More updates to Nca class
* Now reads ExeFs (i think)
* ACTUALLY LOADS EXEFS!
* RomFS loads and games execute
* Cleanup and Finalize
* plumbing, cleanup and testing
* fix some things that i didnt think of before
* Preliminary Review Changes
* Review changes for bunnei and subv
8 years ago
Subv
cb4ff57322
Build: Fixed some MSVC warnings in various parts of the code.
8 years ago
Subv
62a67fbd0a
Services/FS: Return the correct error code when trying to mount a nonexistent savedata.
8 years ago
Lioncash
1b310cbb3a
general: Make formatting of logged hex values more straightforward
This makes the formatting expectations more obvious (e.g. any zero padding specified
is padding that's entirely dedicated to the value being printed, not any pretty-printing
that also gets tacked on).
8 years ago
Lioncash
1cd301f2c0
file-sys: convert a StringFromFormat call into fmt::format in GetFullPath()
Lessens the amount to read and gets rid of the PRIX64 macro, allowing us to use a single string
for the whole path, making it easier to read.
8 years ago
Lioncash
a1dc050bbf
file-sys: Move logging macros over to the new fmt-capable ones
8 years ago
mailwl
8fffc0962c
Service/FS: implement IFileSystem::RenameFile
8 years ago
Lioncash
5b8891df28
disk_filesystem: Remove unused total_entries_in_directory member from Disk_Directory
8 years ago
Lioncash
eb2bb5500e
disk_filesystem: Remove redundant initializer in Disk_Directory's constructor
8 years ago
Lioncash
19fe9a92ec
disk_filesystem: Make constructors explicit where applicable
8 years ago
shinyquagsire23
5634f49b60
file_sys: Use NGLOG
8 years ago
shinyquagsire23
13ab489cb7
file_sys: tweaks
8 years ago
shinyquagsire23
bba0a351e7
file_sys: Add HFS/PFS helper component
8 years ago
bunnei
dc852fda3b
fsp_srv: Implement DeleteFile.
- Used by Binding of Isaac.
8 years ago
bunnei
db8fc2ea57
fsp_srv: Implement GetSize and SetSize.
8 years ago
Subv
6610bee69e
FS: Move the file open mode calculation to a separate function.
8 years ago
Subv
43295efd0e
FS: Implemented IFileSystem::CreateDirectory.
8 years ago
Subv
bf1c4bf16c
FS: Implement DiskFileSystem's OpenDirectory interface.
8 years ago