mirror of
https://github.com/DarkMatterCore/nxdumptool.git
synced 2024-11-23 02:36:41 +00:00
Update to v1.0.2.
This commit is contained in:
parent
a122605b6e
commit
db3f5698e7
5 changed files with 127 additions and 106 deletions
4
Makefile
4
Makefile
|
@ -33,9 +33,9 @@ include $(DEVKITPRO)/libnx/switch_rules
|
||||||
|
|
||||||
VERSION_MAJOR := 1
|
VERSION_MAJOR := 1
|
||||||
VERSION_MINOR := 0
|
VERSION_MINOR := 0
|
||||||
VERSION_MICRO := 1
|
VERSION_MICRO := 2
|
||||||
|
|
||||||
APP_TITLE := Game Card Dump Tool
|
APP_TITLE := gcdumptool
|
||||||
APP_AUTHOR := MCMrARM, DarkMatterCore
|
APP_AUTHOR := MCMrARM, DarkMatterCore
|
||||||
APP_VERSION := ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}
|
APP_VERSION := ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,10 @@ Thanks to
|
||||||
Changelog
|
Changelog
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
|
**v1.0.2:**
|
||||||
|
|
||||||
|
* Fixed a silly bug in the file splitting code.
|
||||||
|
|
||||||
**v1.0.1:**
|
**v1.0.1:**
|
||||||
|
|
||||||
* Minor UI fixes and tweaks.
|
* Minor UI fixes and tweaks.
|
||||||
|
|
|
@ -380,7 +380,7 @@ bool dumpGameCartridge(FsDeviceOperator* fsOperator, bool isFat32, bool dumpCert
|
||||||
|
|
||||||
if (new_file_chunk_size > 0)
|
if (new_file_chunk_size > 0)
|
||||||
{
|
{
|
||||||
if (fwrite(buf, 1, new_file_chunk_size, outFile) != new_file_chunk_size)
|
if (fwrite(buf + old_file_chunk_size, 1, new_file_chunk_size, outFile) != new_file_chunk_size)
|
||||||
{
|
{
|
||||||
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to write chunk to offset 0x%016lX", fileOffset + old_file_chunk_size);
|
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to write chunk to offset 0x%016lX", fileOffset + old_file_chunk_size);
|
||||||
uiDrawString(strbuf, 0, (breaks + 7) * 8, 255, 0, 0);
|
uiDrawString(strbuf, 0, (breaks + 7) * 8, 255, 0, 0);
|
||||||
|
@ -517,7 +517,7 @@ bool dumpGameCartridge(FsDeviceOperator* fsOperator, bool isFat32, bool dumpCert
|
||||||
|
|
||||||
if (new_file_chunk_size > 0)
|
if (new_file_chunk_size > 0)
|
||||||
{
|
{
|
||||||
if (fwrite(buf, 1, new_file_chunk_size, outFile) != new_file_chunk_size)
|
if (fwrite(buf + old_file_chunk_size, 1, new_file_chunk_size, outFile) != new_file_chunk_size)
|
||||||
{
|
{
|
||||||
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to write chunk to offset 0x%016lX", fileOffset + old_file_chunk_size);
|
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to write chunk to offset 0x%016lX", fileOffset + old_file_chunk_size);
|
||||||
uiDrawString(strbuf, 0, (breaks + 7) * 8, 255, 0, 0);
|
uiDrawString(strbuf, 0, (breaks + 7) * 8, 255, 0, 0);
|
||||||
|
@ -770,7 +770,7 @@ bool dumpRawPartition(FsDeviceOperator* fsOperator, u32 partition, bool doSplitt
|
||||||
|
|
||||||
if (new_file_chunk_size > 0)
|
if (new_file_chunk_size > 0)
|
||||||
{
|
{
|
||||||
if (fwrite(buf, 1, new_file_chunk_size, outFile) != new_file_chunk_size)
|
if (fwrite(buf + old_file_chunk_size, 1, new_file_chunk_size, outFile) != new_file_chunk_size)
|
||||||
{
|
{
|
||||||
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to write chunk to offset 0x%016lX", off + old_file_chunk_size);
|
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to write chunk to offset 0x%016lX", off + old_file_chunk_size);
|
||||||
uiDrawString(strbuf, 0, (breaks + 4) * 8, 255, 0, 0);
|
uiDrawString(strbuf, 0, (breaks + 4) * 8, 255, 0, 0);
|
||||||
|
@ -989,12 +989,15 @@ bool copyFile(const char* source, const char* dest, bool doSplitting)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fwrite(buf, 1, new_file_chunk_size, outFile) != new_file_chunk_size)
|
if (new_file_chunk_size > 0)
|
||||||
|
{
|
||||||
|
if (fwrite(buf + old_file_chunk_size, 1, new_file_chunk_size, outFile) != new_file_chunk_size)
|
||||||
{
|
{
|
||||||
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to write chunk to offset 0x%016lX", off + old_file_chunk_size);
|
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to write chunk to offset 0x%016lX", off + old_file_chunk_size);
|
||||||
uiDrawString(strbuf, 0, (breaks + 7) * 8, 255, 0, 0);
|
uiDrawString(strbuf, 0, (breaks + 7) * 8, 255, 0, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (fwrite(buf, 1, n, outFile) != n)
|
if (fwrite(buf, 1, n, outFile) != n)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#include <switch.h>
|
#include <switch.h>
|
||||||
#include <memory.h>
|
#include <memory.h>
|
||||||
#include <switch/services/ns.h>
|
|
||||||
|
|
||||||
#include "dumper.h"
|
#include "dumper.h"
|
||||||
#include "ncmext.h"
|
#include "ncmext.h"
|
||||||
|
@ -37,12 +36,16 @@ int main(int argc, char **argv)
|
||||||
currentFB = gfxGetFramebuffer(¤tFBWidth, ¤tFBHeight);
|
currentFB = gfxGetFramebuffer(¤tFBWidth, ¤tFBHeight);
|
||||||
|
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
Result result;
|
||||||
|
char strbuf[512] = {'\0'};
|
||||||
|
|
||||||
if (R_SUCCEEDED(ncmInitialize()))
|
if (R_SUCCEEDED(result = fsInitialize()))
|
||||||
{
|
{
|
||||||
if (R_SUCCEEDED(nsInitialize()))
|
if (R_SUCCEEDED(result = fsOpenDeviceOperator(&fsOperatorInstance)))
|
||||||
{
|
{
|
||||||
if (R_SUCCEEDED(fsOpenDeviceOperator(&fsOperatorInstance)))
|
if (R_SUCCEEDED(result = ncmInitialize()))
|
||||||
|
{
|
||||||
|
if (R_SUCCEEDED(result = nsInitialize()))
|
||||||
{
|
{
|
||||||
bool exitLoop = false;
|
bool exitLoop = false;
|
||||||
|
|
||||||
|
@ -58,7 +61,7 @@ int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
if (hfs0_header == NULL)
|
if (hfs0_header == NULL)
|
||||||
{
|
{
|
||||||
// Don't access the gamecard immediately to avoid conflicts with the fs-srv, ncm and ns services
|
// Don't access the gamecard immediately to avoid conflicts with the fsp-srv, ncm and ns services
|
||||||
uiPleaseWait();
|
uiPleaseWait();
|
||||||
|
|
||||||
getRootHfs0Header(&fsOperatorInstance);
|
getRootHfs0Header(&fsOperatorInstance);
|
||||||
|
@ -141,23 +144,34 @@ int main(int argc, char **argv)
|
||||||
syncDisplay();
|
syncDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
fsDeviceOperatorClose(&fsOperatorInstance);
|
|
||||||
} else {
|
|
||||||
uiDrawString("Failed to open device operator.", 0, 0, 255, 255, 255);
|
|
||||||
delay(5);
|
|
||||||
ret = -3;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsExit();
|
nsExit();
|
||||||
} else {
|
} else {
|
||||||
uiDrawString("Failed to initialize the NS service.", 0, 0, 255, 255, 255);
|
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to initialize the ns service! (0x%08x)", result);
|
||||||
|
uiDrawString(strbuf, 0, 0, 255, 255, 255);
|
||||||
delay(5);
|
delay(5);
|
||||||
ret = -2;
|
ret = -4;
|
||||||
}
|
}
|
||||||
|
|
||||||
ncmExit();
|
ncmExit();
|
||||||
} else {
|
} else {
|
||||||
uiDrawString("Failed to initialize the NCM service.", 0, 0, 255, 255, 255);
|
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to initialize the ncm service! (0x%08x)", result);
|
||||||
|
uiDrawString(strbuf, 0, 0, 255, 255, 255);
|
||||||
|
delay(5);
|
||||||
|
ret = -3;
|
||||||
|
}
|
||||||
|
|
||||||
|
fsDeviceOperatorClose(&fsOperatorInstance);
|
||||||
|
} else {
|
||||||
|
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to open device operator! (0x%08x)", result);
|
||||||
|
uiDrawString(strbuf, 0, 0, 255, 255, 255);
|
||||||
|
delay(5);
|
||||||
|
ret = -2;
|
||||||
|
}
|
||||||
|
|
||||||
|
fsExit();
|
||||||
|
} else {
|
||||||
|
snprintf(strbuf, sizeof(strbuf) / sizeof(strbuf[0]), "Failed to initialize the fsp-srv service! (0x%08x)", result);
|
||||||
|
uiDrawString(strbuf, 0, 0, 255, 255, 255);
|
||||||
delay(5);
|
delay(5);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
#include <switch.h>
|
#include <switch.h>
|
||||||
|
|
||||||
#define APP_VERSION "1.0.1"
|
#define APP_VERSION "1.0.2"
|
||||||
#define NAME_BUF_LEN 4096
|
#define NAME_BUF_LEN 4096
|
||||||
|
|
||||||
bool isGameCardInserted(FsDeviceOperator* o);
|
bool isGameCardInserted(FsDeviceOperator* o);
|
||||||
|
|
Loading…
Reference in a new issue