Commit Graph

28 Commits

Author SHA1 Message Date
Selver
34f6c4dc4e
Additional comment for fsFsSetArchiveBit()
Describe why HOS might have done this.  While the below is conjecture, the effect matches the comment added to the file.

FAT32 has a (4GiB-1) byte limit per file, but they had to support that media.
They likely wanted to avoid forcing game makers to partition game files.
If the above is true, then this hack could make sense....

The directory, rather than being a "real" directory, is storing the file in multiple parts.

Example (ignoring actual hash-based file names that HOS uses for simplicity):
* The game ships with a file named "FOO.DAT" that is 6GB in size.
* HOS does not attempt to create a 6GB file on FAT32 media (which would fail)
* HOS creates a directory named "FOO.DAT" instead.
* Inside that directory, HOS stores the first 2GB as "FileChunk01"
* Inside that directory, HOS stores the second 2GB portion as "FileChunk02"
* Inside that directory, HOS stores the final 2GB of the data as "FileChunk03"

Unfortunately, by using the archive bit, it can cause problems, especially when an OS (ahem... MacOS) or other utility changes the archive bit settings on directories....
2018-11-30 13:01:15 -08:00
yellows8
36bed9f8fc Added support for getting file timestamps via 3.0.0+ fsFsGetFileTimeStampRaw, *stat() timestamps are now set when fsFsGetFileTimeStampRaw is successful. This is now used in fsdev_open() for supporting fstat. The sysver is now checked in fsFsCleanDirectoryRecursively(). Closes #204. 2018-11-20 14:22:19 -05:00
Michael Scire
e943eb6ea5 Add fs gamecard attribute retrieve commands 2018-11-14 19:52:40 -05:00
SciresM
e19765445d fs: Add fsFsQueryEntry (and fsFsSetArchiveBit helper) (#202)
* fs: Add fsFsSetArchiveBit

* Add fsdevSetArchiveBit wrapper
2018-11-09 22:03:47 -05:00
Rajko Stojadinovic
dcdb5c28a4 Fix fsOpenFileSystem (#153)
* Fix fsOpenFileSystem

* Make fsOpenFileSystem and fsOpenFileSystemWithId work on all firmware versions

* Add some comments for fsOpenFileSystem(WithId)
2018-09-09 19:56:38 +02:00
Rajko Stojadinovic
d726c7c55c Implement some missing fs functions (#141) 2018-07-28 17:49:14 +02:00
klockee
27b8868646 Wrapped and implemented fsOpenBisFilesystem() (#140) 2018-07-28 17:08:42 +02:00
Joel16
2bcede91ba Add fsFsCleanDirectoryRecursively 2018-07-19 11:33:56 -04:00
tesnos
9530da3237 Add fsOpenBisStorage and fsStorageGetSize (#130)
* add fsOpenBisStorage and fsStorageGetSize
2018-07-19 11:16:38 -04:00
Michael Scire
6f248b9b9e Add FS commands for SD card state change detection. 2018-05-08 13:29:56 +02:00
yellows8
8091db8931 Added FsStorageId. Added pmshell init/exit and pmshellLaunchProcess. 2018-04-12 02:52:49 -04:00
yellows8
29211c1800 Use Service for all fs sessions. This fixes an issue with savedata commit. 2018-04-06 12:39:57 -04:00
yellows8
26d2e6d7f4 Implemented FsSaveDataIterator (aka ISaveDataInfoReader). In fs*Close(), set the handle to INVALID_HANDLE after closing the handle. Changed ContentStorageId in FsSave to SaveDataType. Added enums FsSaveDataSpaceId and FsSaveDataType. Removed FS_MOUNTSAVEDATA_INVAL_DEFAULT/FS_MOUNTSYSTEMSAVEDATA_INVAL_DEFAULT. 2018-03-26 14:45:12 -04:00
yellows8
bf216aa667 Added mounting for SystemSaveData. 2018-03-22 22:56:38 -04:00
yellows8
b964c69da8 Added comments regarding direct FS usage in fs.h. 2018-02-24 21:38:53 -05:00
yellows8
4c1b09d6b9 Check for invalid handle in fs*Close(). Added fsOpenDataStorageByCurrentProcess(), fsStorageRead(), and fsStorageClose(). Added fsdevGetDefaultFileSystem(). Imported nro.h from nx-hbmenu. Implemented proper RomFS support. 2018-02-23 22:29:43 -05:00
fincs
95592641f5 services/: Add Doxygen file headers; document sm.h 2018-02-10 22:40:11 +01:00
plutoo
673651a51f Fix broken header files 2018-01-23 00:27:00 +01:00
plutoo
6fa8370bfb This looks better 2018-01-22 20:11:55 +01:00
TuxSH
5abc4873d8 Include only what is really necessary...
add pragma once in every header, etc.
2018-01-22 18:42:57 +01:00
plutoo
f70d70f029 Introducing "Service" object, implemented service override, fixing minor formatting mistakes
NOT TESTED :(
2018-01-12 23:29:49 +01:00
plutoo
edcf789b6e C was developed in 1972 2018-01-06 13:54:59 +01:00
yellows8
0c5efe5f9c Added a comment in fs_dev.h. Adjusted fs.h formatting, etc. Added support for mounting SaveData. 2017-11-30 01:58:21 -05:00
yellows8
49959e4e37 FS adjustments + fixed fsFsGetFreeSpace/fsFsGetTotalSpace. In fs_dev: fixed cwd handling, unmounting adjustments, use fsFsGetEntryType(), updated fsdev_dirnext(), and properly handle fsdev_statvfs(). 2017-11-29 01:47:11 -05:00
yellows8
59880e9488 Removed output bytes_written for fsFileWrite() since the command doesn't actually return that. In fsdev_open(), set the FS_OPEN_APPEND flag when opening for writing. Adjusted file-creation handling in fsdev_open(). 2017-11-27 17:40:49 -05:00
yellows8
25f2839c75 Imported util/utf from libctru. Updated appInit/appExit. Fs adjustments + implemented IDirectory. Imported a modified version of sdmc_dev from libctru as fs_dev, this currently isn't usable. 2017-11-23 15:00:56 -05:00
yellows8
68dbb72b04 Added fsExit and fsGetServiceSession. Check whether initialization was already done in fsInitialize, etc. Added fs to __appInit/__appExit. 2017-10-14 21:45:59 -04:00
plutoo
74b14f4c63 Introducing fs.. 2017-10-07 22:49:16 +02:00