From 3fab04ff1ab5fdfadd096b9219cba3cb2a2074ef Mon Sep 17 00:00:00 2001 From: Jack Andersen Date: Thu, 21 Jan 2016 10:46:07 -1000 Subject: [PATCH] GCN image generation fixes --- driver/main.cpp | 5 ++++- lib/DiscBase.cpp | 4 +++- lib/DiscGCN.cpp | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/driver/main.cpp b/driver/main.cpp index af97add..9477ac0 100644 --- a/driver/main.cpp +++ b/driver/main.cpp @@ -93,7 +93,10 @@ int main(int argc, char* argv[]) lastIdx = idx; printf("\n"); } - printf("\r%s %" PRISize " B", name.c_str(), bytes); + if (bytes != -1) + printf("\r%s %" PRISize " B", name.c_str(), bytes); + else + printf("\r%s", name.c_str()); fflush(stdout); }; diff --git a/lib/DiscBase.cpp b/lib/DiscBase.cpp index 2f43ba9..a376789 100644 --- a/lib/DiscBase.cpp +++ b/lib/DiscBase.cpp @@ -167,7 +167,7 @@ void DiscBuilderBase::IPartitionBuilder::recursiveBuildNodes(const SystemChar* d if (e.m_isDir) { size_t dirNodeIdx = m_buildNodes.size(); - m_buildNodes.emplace_back(true, m_buildNameOff, 0, 1); + m_buildNodes.emplace_back(true, m_buildNameOff, 0, dirNodeIdx+1); addBuildName(e.m_name); incParents(); recursiveBuildNodes(e.m_path.c_str(), dolInode, [&](){m_buildNodes[dirNodeIdx].incrementLength(); incParents();}); @@ -213,6 +213,8 @@ bool DiscBuilderBase::IPartitionBuilder::buildFromDirectory(const SystemChar* di /* Clear file */ m_parent.getFileIO().beginWriteStream(); + ++m_parent.m_progressIdx; + m_parent.m_progressCB(m_parent.m_progressIdx, "Preparing output image", -1); m_buildNodes.emplace_back(true, m_buildNameOff, 0, 1); addBuildName(_S("")); diff --git a/lib/DiscGCN.cpp b/lib/DiscGCN.cpp index e664b20..f0c94cc 100644 --- a/lib/DiscGCN.cpp +++ b/lib/DiscGCN.cpp @@ -165,6 +165,7 @@ public: size_t fstSz = sizeof(FSTNode) * m_buildNodes.size(); for (size_t i=0 ; iwrite("\xff", 1); + fstOff += 0x2440; ws->write(m_buildNodes.data(), fstSz); for (const std::string& str : m_buildNames) ws->write(str.data(), str.size()+1);