// Copyright 2018 yuzu emulator team // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include "core/file_sys/vfs.h" namespace FileSys { VirtualFile PatchIPS(const VirtualFile& in, const VirtualFile& ips); class IPSwitchCompiler { public: explicit IPSwitchCompiler(VirtualFile patch_text); std::array GetBuildID() const; bool IsValid() const; VirtualFile Apply(const VirtualFile& in) const; private: void Parse(); bool valid; struct IPSwitchPatch { std::string name; bool enabled; std::map> records; }; VirtualFile patch_text; std::vector patches; std::array nso_build_id; bool is_little_endian; u64 offset_shift; bool print_values; }; } // namespace FileSys