public async UniTask <uint> LoadFile(Context context, string path, uint baseAddress = 0) { await FileSystem.PrepareFile(context.BasePath + path); if (!FileSystem.FileExists(context.BasePath + path)) { return(0); } if (baseAddress != 0) { PS1MemoryMappedFile file = new PS1MemoryMappedFile(context, baseAddress, InvalidPointerMode) { filePath = path, Endianness = BinaryFile.Endian.Big }; context.AddFile(file); return(file.Length); } else { LinearSerializedFile file = new LinearSerializedFile(context) { filePath = path, Endianness = BinaryFile.Endian.Big }; context.AddFile(file); return(0); } }
public async UniTask <uint> LoadFile(Context context, string path, uint baseAddress) { await FileSystem.PrepareFile(context.BasePath + path); if (baseAddress != 0) { PS1MemoryMappedFile file = new PS1MemoryMappedFile(context, baseAddress, InvalidPointerMode) { filePath = path, Length = FileSizes[path] }; context.AddFile(file); return(FileSizes[path]); } else { LinearSerializedFile file = new LinearSerializedFile(context) { filePath = path, length = FileSizes.ContainsKey(path) ? FileSizes[path] : 0 }; context.AddFile(file); return(0); } }