mirror of
https://github.com/hedge-dev/XenonRecomp.git
synced 2025-04-23 01:01:26 +00:00
36 lines
1.3 KiB
C++
36 lines
1.3 KiB
C++
// Referenced from: https://github.com/xenia-canary/xenia-canary/blob/canary_experimental/src/xenia/cpu/xex_module.cc
|
|
|
|
/**
|
|
******************************************************************************
|
|
* Xenia : Xbox 360 Emulator Research Project *
|
|
******************************************************************************
|
|
* Copyright 2023 Ben Vanik. All rights reserved. *
|
|
* Released under the BSD license - see LICENSE in the root for more details. *
|
|
******************************************************************************
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <filesystem>
|
|
#include <span>
|
|
#include <vector>
|
|
|
|
struct XexPatcher
|
|
{
|
|
enum class Result {
|
|
Success,
|
|
FileOpenFailed,
|
|
FileWriteFailed,
|
|
XexFileUnsupported,
|
|
XexFileInvalid,
|
|
PatchFileInvalid,
|
|
PatchIncompatible,
|
|
PatchFailed,
|
|
PatchUnsupported
|
|
};
|
|
|
|
static Result apply(const uint8_t* xexBytes, size_t xexBytesSize, const uint8_t* patchBytes, size_t patchBytesSize, std::vector<uint8_t> &outBytes, bool skipData);
|
|
static Result apply(const std::filesystem::path &baseXexPath, const std::filesystem::path &patchXexPath, const std::filesystem::path &newXexPath);
|
|
};
|