diff options
author | bunnei <bunneidev@gmail.com> | 2018-07-28 04:10:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-28 04:10:05 +0200 |
commit | abb489418834848965f6ccb38d2cd7cf01cedf35 (patch) | |
tree | beff5b868534a8bfb4eea7992553fa5fb5db5287 /src/core/file_sys/romfs.h | |
parent | Merge pull request #845 from lioncash/nfc (diff) | |
parent | RomFS Extraction (diff) | |
download | yuzu-abb489418834848965f6ccb38d2cd7cf01cedf35.tar yuzu-abb489418834848965f6ccb38d2cd7cf01cedf35.tar.gz yuzu-abb489418834848965f6ccb38d2cd7cf01cedf35.tar.bz2 yuzu-abb489418834848965f6ccb38d2cd7cf01cedf35.tar.lz yuzu-abb489418834848965f6ccb38d2cd7cf01cedf35.tar.xz yuzu-abb489418834848965f6ccb38d2cd7cf01cedf35.tar.zst yuzu-abb489418834848965f6ccb38d2cd7cf01cedf35.zip |
Diffstat (limited to 'src/core/file_sys/romfs.h')
-rw-r--r-- | src/core/file_sys/romfs.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/core/file_sys/romfs.h b/src/core/file_sys/romfs.h new file mode 100644 index 000000000..03a876d22 --- /dev/null +++ b/src/core/file_sys/romfs.h @@ -0,0 +1,35 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <array> +#include "common/common_funcs.h" +#include "common/swap.h" +#include "core/file_sys/vfs.h" + +namespace FileSys { + +struct IVFCLevel { + u64_le offset; + u64_le size; + u32_le block_size; + u32_le reserved; +}; +static_assert(sizeof(IVFCLevel) == 0x18, "IVFCLevel has incorrect size."); + +struct IVFCHeader { + u32_le magic; + u32_le magic_number; + INSERT_PADDING_BYTES(8); + std::array<IVFCLevel, 6> levels; + INSERT_PADDING_BYTES(64); +}; +static_assert(sizeof(IVFCHeader) == 0xE0, "IVFCHeader has incorrect size."); + +// Converts a RomFS binary blob to VFS Filesystem +// Returns nullptr on failure +VirtualDir ExtractRomFS(VirtualFile file); + +} // namespace FileSys |