ROM Hack [Release] 3DS_CTR_Decryptor-VOiD

  • Thread starter Thread starter Relys
  • Start date Start date
  • Views Views 649,102
  • Replies Replies 2,226
  • Likes Likes 30
I get "00040000000EC400.Main.romfs.xorpad" , "00040000000EC400.Main.exefs_norm.xorpad" when i decrypt legend of zelda a link between world.
Is it correct ?
 
ctrtool crashed on extract romfs of Monster hunter 4G.

here is a quick fix on romfs.c for this bug.
Code:
void romfs_visit_file(romfs_context* ctx, u32 fileoffset, u32 depth, u32 actions, filepath* rootpath)
{
    u32 siblingoffset = 0;
    filepath currentpath;
    romfs_fileentry* entry = &ctx->fileentry;
 
    do {
        if (!romfs_fileblock_readentry(ctx, fileoffset, entry))
            return; // need breakall?
 
 
        //    fprintf(stdout, "%08X %08X %016llX %016llX %08X ",
        //        getle32(entry->parentdiroffset), getle32(entry->siblingoffset), ctx->datablockoffset+getle64(entry->dataoffset),
        //            getle64(entry->datasize), getle32(entry->unknown));
        //    fwprintf(stdout, L"%ls\n", entry->name);
 
        if (rootpath && rootpath->valid)
        {
            filepath_copy(&currentpath, rootpath);
            filepath_append_utf16(&currentpath, entry->name);
            if (currentpath.valid)
            {
                fprintf(stdout, "Saving %s...\n", currentpath.pathname);
                romfs_extract_datafile(ctx, getle64(entry->dataoffset), getle64(entry->datasize), &currentpath);
            }
            else
            {
                fprintf(stderr, "Error creating directory in root %s\n", rootpath->pathname);
                return; // <- need add a &break in argument
            }
        }
        else
        {
            filepath_init(&currentpath);
            if (settings_get_list_romfs_files(ctx->usersettings))
            {
                u32 i;
 
                for(i=0; i<depth; i++)
                    printf(" ");
                fwprintf(stdout, L"%ls\n", entry->name);
            }
        }
 
        fileoffset = getle32(entry->siblingoffset);
    } while (fileoffset != (~0));
}
original code is a recursion call with only fileoffset upate. always carshed on folder contains lots of file.
if depth is untouched, recursion must be prevent.
 
and here's
ctrtool crashed on extract romfs of Monster hunter 4G.

here is a quick fix on romfs.c for this bug.

-snip-

original code is a recursion call with only fileoffset upate. always carshed on folder contains lots of file.
if depth is untouched, recursion must be prevent.

and here's a compiled version for everyone unable to install Visual Studio.
 

Attachments

  • Like
Reactions: Margen67 and cearp
http://3dbrew.org/wiki/NCCH#CFA
"The CFA (CTR File Archive) specialisation of the NCCH container, is not executable, but are used in conjunction with CXI files."
How can an installed title not be executable?
if its a dlc/addon pack...i think its used for the manuals too on games, basically anything that is read but doesn't contain any sort of running code its just read by something else
 
So are any of the current public tools capable of building the header and metadata to remake into a .cia, or is that still a manual process?
 
So are any of the current public tools capable of building the header and metadata to remake into a .cia, or is that still a manual process?


No, I don't think I've seen any such tool. Wouldn't be hard to make if you had the time to figure something out.
 

Site & Scene News

Popular threads in this forum