Permalink
Browse files
VFS: Make VFile.truncate work growing files on PSV (fixes #885)
- Loading branch information...
Showing
with
15 additions
and
1 deletion.
-
+1
−0
CHANGES
-
+14
−1
src/platform/psp2/sce-vfs.c
|
|
@@ -56,6 +56,7 @@ Misc: |
|
|
- GBA: Detect hardware for Pokémon FireRed ROM hacks
|
|
|
- CMake: Fix CPack dependencies for libpng 1.6
|
|
|
- Qt: Allow overrides to be saved before a game is loaded
|
|
|
+ - VFS: Make VFile.truncate work growing files on PSV (fixes mgba.io/i/885)
|
|
|
|
|
|
0.6.0: (2017-07-16)
|
|
|
Features:
|
|
|
|
|
|
@@ -120,7 +120,20 @@ static void _vfsceUnmap(struct VFile* vf, void* memory, size_t size) { |
|
|
|
|
|
static void _vfsceTruncate(struct VFile* vf, size_t size) {
|
|
|
struct VFileSce* vfsce = (struct VFileSce*) vf;
|
|
|
- // TODO
|
|
|
+ SceOff cur = sceIoLseek(vfsce->fd, 0, SEEK_CUR);
|
|
|
+ SceOff end = sceIoLseek(vfsce->fd, 0, SEEK_END);
|
|
|
+ if (end < size) {
|
|
|
+ uint8_t buffer[2048] = {};
|
|
|
+ size_t write = size - end;
|
|
|
+ while (write >= sizeof(buffer)) {
|
|
|
+ sceIoWrite(vfsce->fd, buffer, sizeof(buffer));
|
|
|
+ write -= sizeof(buffer);
|
|
|
+ }
|
|
|
+ if (write) {
|
|
|
+ sceIoWrite(vfsce->fd, buffer, write);
|
|
|
+ }
|
|
|
+ } // TODO: Else
|
|
|
+ sceIoLseek(vfsce->fd, cur, SEEK_SET);
|
|
|
}
|
|
|
|
|
|
ssize_t _vfsceSize(struct VFile* vf) {
|
|
|
|
0 comments on commit
a8f2990