Hmm. I suppose sce_lbn references may not work properly with a 2+ GB iso, although umd: access will (it's by LBA.)
If you change seekPos from unsigned int to u64, as well as openSize. Then also change startingPosition of the TreeEntry struct to u64. Might need to add some casts to this line:
e->startingPosition = dir.firstDataSector() * 2048;
And then change:
To:
(both times)
And then in parseLBN:
If that works, it'll mean some hassles to make savestates upgrade, but that could maybe/hopefully do the trick.
Oh, also, you'll need:
Change to u64, and possibly some related casts.
If not (very possible, I'm not sure why it would be reading the second sector...), hmm...
-[Unknown]
If you change seekPos from unsigned int to u64, as well as openSize. Then also change startingPosition of the TreeEntry struct to u64. Might need to add some casts to this line:
e->startingPosition = dir.firstDataSector() * 2048;
And then change:
Code:
u32 sectorStart = 0xFFFFFFFF, readSize = 0xFFFFFFFF;
parseLBN(filename, §orStart, &readSize);To:
Code:
u32 sectorStart = 0xFFFFFFFF;
u64 readSize = 0xFFFFFFFFFFFFFFFFULL;
parseLBN(filename, §orStart, &readSize);(both times)
And then in parseLBN:
Code:
bool parseLBN(std::string filename, u32 *sectorStart, u32 *readSize)
...
if (sscanf(filename_c + pos, "%x", readSize) != 1)
*readSize = 0;
return true;
}Code:
bool parseLBN(std::string filename, u32 *sectorStart, u32 *readSize)
...
if (sscanf(filename_c + pos, "%llx", readSize) != 1)
*readSize = 0;
return true;
}If that works, it'll mean some hassles to make savestates upgrade, but that could maybe/hopefully do the trick.
Oh, also, you'll need:
Code:
u32 positionOnIso;Change to u64, and possibly some related casts.
If not (very possible, I'm not sure why it would be reading the second sector...), hmm...
-[Unknown]

