From 32cf8113e4afe55231da3216dd11b75348723b87 Mon Sep 17 00:00:00 2001 From: giantpune Date: Sun, 15 May 2011 23:17:06 +0000 Subject: [PATCH] * ohneswanzenegger: dont include code for building extracted FS --- WiiQt/nanddump.cpp | 134 +++++++++++++++---------------- WiiQt/nanddump.h | 2 +- ohneschwanzenegger/refleurii.pro | 93 ++++++++++----------- 3 files changed, 109 insertions(+), 120 deletions(-) diff --git a/WiiQt/nanddump.cpp b/WiiQt/nanddump.cpp index f2db30f..232ef80 100644 --- a/WiiQt/nanddump.cpp +++ b/WiiQt/nanddump.cpp @@ -26,8 +26,8 @@ bool NandDump::Flush() bool NandDump::SetPath( const QString &path ) { qDebug() << "NandDump::SetPath(" << path << ")"; - uidDirty = true; - cmDirty = true; + uidDirty = true; + cmDirty = true; //check what is already in this path and create stuff that is missing QFileInfo fi( path ); basePath = fi.absoluteFilePath(); @@ -379,9 +379,9 @@ bool NandDump::InstallNusItem( const NusJob &job ) } quint32 cnt = qFromBigEndian( t.payload()->num_contents ); - if( cnt != (quint32)job.data.size() - 2 ) + if( cnt != (quint32)job.data.size() - 2 ) { - qWarning() << "cnt != (quint32)job.data.size()"; + qWarning() << "cnt != (quint32)job.data.size()"; AbortInstalling( job.tid ); return false; } @@ -440,80 +440,80 @@ bool NandDump::InstallNusItem( const NusJob &job ) bool NandDump::InstallWad( Wad wad ) { - if( !wad.Tid() || wad.content_count() < 3 ) - { - qWarning() << "NandDump::InstallNusItem -> invalid item"; - return false; - } - if( !uidDirty ) - { - uidDirty = uidMap.GetUid( wad.Tid(), false ) == 0;//only flag the uid as dirty if it has to be, this way it is only flushed if needed - } - uidMap.GetUid( wad.Tid() ); - QString p = QString( "%1" ).arg( wad.Tid(), 16, 16, QChar( '0' ) ); - p.insert( 8 ,"/" ); - p.prepend( "/title/" ); - QString path = basePath + p + "/content"; + if( !wad.Tid() || wad.content_count() < 3 ) + { + qWarning() << "NandDump::InstallNusItem -> invalid item"; + return false; + } + if( !uidDirty ) + { + uidDirty = uidMap.GetUid( wad.Tid(), false ) == 0;//only flag the uid as dirty if it has to be, this way it is only flushed if needed + } + uidMap.GetUid( wad.Tid() ); + QString p = QString( "%1" ).arg( wad.Tid(), 16, 16, QChar( '0' ) ); + p.insert( 8 ,"/" ); + p.prepend( "/title/" ); + QString path = basePath + p + "/content"; //remove old title if it exists AbortInstalling( wad.Tid() ); - if( !QFileInfo( path ).exists() && !QDir().mkpath( path ) ) + if( !QFileInfo( path ).exists() && !QDir().mkpath( path ) ) return false; - path = basePath + p + "/data"; - if( !QFileInfo( path ).exists() && !QDir().mkpath( path ) ) + path = basePath + p + "/data"; + if( !QFileInfo( path ).exists() && !QDir().mkpath( path ) ) return false; - QByteArray ba = wad.getTmd(); - if( !InstallTmd( ba, wad.Tid() ) ) + QByteArray ba = wad.getTmd(); + if( !InstallTmd( ba, wad.Tid() ) ) return false; - Tmd t( ba ); + Tmd t( ba ); - ba = wad.getTik(); + ba = wad.getTik(); //Ticket ti( ba ); - if( !InstallTicket( ba, wad.Tid() ) ) - { - AbortInstalling( wad.Tid() ); - return false; - } + if( !InstallTicket( ba, wad.Tid() ) ) + { + AbortInstalling( wad.Tid() ); + return false; + } - quint32 cnt = qFromBigEndian( t.payload()->num_contents ); - if( cnt != wad.content_count() ) - { - AbortInstalling( wad.Tid() ); - return false; - } + quint32 cnt = qFromBigEndian( t.payload()->num_contents ); + if( cnt != wad.content_count() ) + { + AbortInstalling( wad.Tid() ); + return false; + } - for( quint32 i = 0; i < cnt; i++ ) - { - QByteArray decData = wad.Content(i); + for( quint32 i = 0; i < cnt; i++ ) + { + QByteArray decData = wad.Content(i); - if( t.Type( i ) == 0x8001 ) - { - if( !InstallSharedContent( decData, t.Hash( i ) ) ) - { - AbortInstalling( wad.Tid() ); - return false; - } - } - else if( t.Type( i ) == 1 ) - { - if( !InstallPrivateContent( decData, wad.Tid(), t.Cid( i ) ) ) - { - AbortInstalling( wad.Tid() ); - return false; - } - } - else//unknown content type - { - qWarning() << "NandDump::InstallWad -> unknown content type"; - AbortInstalling( wad.Tid() ); - return false; - } - } - return true; + if( t.Type( i ) == 0x8001 ) + { + if( !InstallSharedContent( decData, t.Hash( i ) ) ) + { + AbortInstalling( wad.Tid() ); + return false; + } + } + else if( t.Type( i ) == 1 ) + { + if( !InstallPrivateContent( decData, wad.Tid(), t.Cid( i ) ) ) + { + AbortInstalling( wad.Tid() ); + return false; + } + } + else//unknown content type + { + qWarning() << "NandDump::InstallWad -> unknown content type"; + AbortInstalling( wad.Tid() ); + return false; + } + } + return true; } QMap< quint64, quint16 > NandDump::GetInstalledTitles() @@ -885,7 +885,7 @@ bool NandDump::InstallSave( const SaveGame &save ) QString path = basePath + p + "/data"; //make sure the path exists - if( !QFileInfo( path ).exists() && !QDir().mkpath( path ) ) + if( !QFileInfo( path ).exists() && !QDir().mkpath( path ) ) { qWarning() << "NandDump::InstallSave -> error creating" << path; return false; @@ -894,13 +894,13 @@ bool NandDump::InstallSave( const SaveGame &save ) if( !QFileInfo( basePath + p + "/content" ).exists() ) QDir().mkpath( basePath + p + "/content" ); - path = p + "/data"; + path = p + "/data"; quint16 dataIdx = 0; quint16 entryIdx = 0; foreach( QString entry, save.entries ) - { - QString cp = ToNandPath( entry ); + { + QString cp = ToNandPath( entry ); quint8 attr = save.attr.at( entryIdx ); if( NAND_ATTR_TYPE( attr ) == NAND_FILE )//this is a file { diff --git a/WiiQt/nanddump.h b/WiiQt/nanddump.h index 0f92a27..bb9a858 100644 --- a/WiiQt/nanddump.h +++ b/WiiQt/nanddump.h @@ -46,7 +46,7 @@ public: //if it doesnt exist, the function will try to create it //also creates the normal folders in the nand bool SetPath( const QString &path ); - const QString GetPath(){ return basePath; } + const QString &GetPath(){ return basePath; } //installs a title to the nand dump from an already existing NusJob //returns false if something went wrong diff --git a/ohneschwanzenegger/refleurii.pro b/ohneschwanzenegger/refleurii.pro index fee7878..3819063 100644 --- a/ohneschwanzenegger/refleurii.pro +++ b/ohneschwanzenegger/refleurii.pro @@ -1,52 +1,41 @@ -#------------------------------------------------- -# -# Project created by QtCreator 2010-12-02T23:30:12 -# -#------------------------------------------------- - -QT += core gui\ - network - -TARGET = ohneschwanzenegger -TEMPLATE = app -DEFINES += NAND_BIN_CAN_WRITE - - -SOURCES += main.cpp\ - mainwindow.cpp \ - ../WiiQt/tools.cpp \ - ../WiiQt/sharedcontentmap.cpp \ - ../WiiQt/tiktmd.cpp \ - ../WiiQt/nusdownloader.cpp \ - ../WiiQt/uidmap.cpp \ - ../WiiQt/nanddump.cpp \ - ../WiiQt/settingtxtdialog.cpp \ - ../WiiQt/wad.cpp \ - ../WiiQt/aes.c \ - ../WiiQt/sha1.c \ - newnandbin.cpp \ - ../WiiQt/nandbin.cpp \ - ../WiiQt/nandspare.cpp\ - ../WiiQt/blocks0to7.cpp - -HEADERS += mainwindow.h \ - ../WiiQt/tools.h \ - ../WiiQt/uidmap.h \ - ../WiiQt/sharedcontentmap.h \ - ../WiiQt/tiktmd.h \ - ../WiiQt/nusdownloader.h \ - ../WiiQt/uidmap.h \ - ../WiiQt/nanddump.h \ - ../WiiQt/settingtxtdialog.h \ - ../WiiQt/wad.h \ - newnandbin.h \ - ../WiiQt/nandbin.h \ - ../WiiQt/nandspare.h\ - ../WiiQt/blocks0to7.h - -FORMS += mainwindow.ui \ - ../WiiQt/settingtxtdialog.ui \ - newnandbin.ui - -RESOURCES += \ - rc.qrc +# ------------------------------------------------- +# Project created by QtCreator 2010-12-02T23:30:12 +# ------------------------------------------------- +QT += core \ + gui \ + network +TARGET = ohneschwanzenegger +TEMPLATE = app +DEFINES += NAND_BIN_CAN_WRITE +SOURCES += main.cpp \ + mainwindow.cpp \ + ../WiiQt/tools.cpp \ + ../WiiQt/sharedcontentmap.cpp \ + ../WiiQt/tiktmd.cpp \ + ../WiiQt/nusdownloader.cpp \ + ../WiiQt/uidmap.cpp \ + ../WiiQt/settingtxtdialog.cpp \ + ../WiiQt/wad.cpp \ + ../WiiQt/aes.c \ + ../WiiQt/sha1.c \ + newnandbin.cpp \ + ../WiiQt/nandbin.cpp \ + ../WiiQt/nandspare.cpp \ + ../WiiQt/blocks0to7.cpp +HEADERS += mainwindow.h \ + ../WiiQt/tools.h \ + ../WiiQt/uidmap.h \ + ../WiiQt/sharedcontentmap.h \ + ../WiiQt/tiktmd.h \ + ../WiiQt/nusdownloader.h \ + ../WiiQt/uidmap.h \ + ../WiiQt/settingtxtdialog.h \ + ../WiiQt/wad.h \ + newnandbin.h \ + ../WiiQt/nandbin.h \ + ../WiiQt/nandspare.h \ + ../WiiQt/blocks0to7.h +FORMS += mainwindow.ui \ + ../WiiQt/settingtxtdialog.ui \ + newnandbin.ui +RESOURCES += rc.qrc