#pragma once #include "pch.h" #include "NES/Loaders/BaseLoader.h" struct RomData; class FdsLoader : public BaseLoader { private: static constexpr size_t FdsDiskSideCapacity = 65500; static constexpr size_t QdDiskSideCapacity = 65536; bool _useQdFormat = false; private: void AddGaps(vector& diskSide, uint8_t* readBuffer, uint32_t bufferSize); int GetSideCapacity(); public: FdsLoader(bool useQdFormat = false); vector RebuildFdsFile(vector> diskData, bool needHeader); void LoadDiskData(vector& romFile, vector> &diskData, vector> &diskHeaders); void LoadRom(RomData& romData, vector& romFile); };