summaryrefslogtreecommitdiff
path: root/src/preprocess/CompTool.h
blob: a995480193802934bfb09e4e2363c7afb6ae7252 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

#include "lib/binarytools/BinaryWriter.h"
#include <cstdint>
#include <string>
#include <vector>

enum class CompType {
    UNCOMPRESSED,
    COMPRESSED,
    UNKNOWN
};

class CompTool {
public:
    static std::vector<uint8_t> Decompress(std::vector<uint8_t> rom);
private:
    static uint32_t FindFileTable(std::vector<uint8_t>& rom);
    static std::pair<uint32_t, uint32_t> CalculateCRCs(LUS::BinaryWriter& decompFile);
    static inline const uint32_t sCrcSeed = 0xF8CA4DDC;
};