Yet another sarc tool 3DS

From GameBrew

Revision as of 11:54, 5 April 2022 by HydeWing (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Yet another sarc tool
3dspc.png
General
AuthorLITTOMA
Last Updated2018/11/30
TypeFile Operation
Version2018
LicenseMixed
Links
Download
Website
Source

A simple archive tool with auto padding feature.

Features

  • Creating archives.
  • Extracting archives.
  • Support both big and little endianess archives.
  • Auto padding (Support bflim files only for now).
  • Importable.

User guide

Using as a script:

sarc.py [-h] [-v] (-x | -c | -l) [-e {big,little}] [-k HASHKEY] [-d DIR] -f ARCHIVE
optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         Enable verbose output
  -x, --extract         Extract the archive
  -c, --create          Create an archive
  -l, --list            List contents of the archive
  -e {big,little}, --endianess {big,little}
                        Set archive endianess
  -k HASHKEY, --hashkey HASHKEY
                        Set hash key
  -d DIR, --dir DIR     Set working directory
  -f ARCHIVE, --archive ARCHIVE
                        Set archive file

Import as a module:

 from sarc import *
 
 #Initialize an archive with a file:
 arc = Sarc('Path/To/Archive')
 
 #Initialize an archive with a directory:
 arc = Sarc(path='Path/To/Directory/', order='<', hash_key=0x65)
 
 #Add a file to the archive:
 arc.add_file_entry('Path/to/File') 
 
 #Save the archive:
 arc.archive(archive_path='Path/To/Archive')
 
 #Extract the archive file entries:
 arc.extract(path='Path/To/Output/', all=True)
 
 #Extract a single file from the archive by name:
 arc.extract(path='Path/To/Output/', name='Name/Of/File')
 
 #Extract a single file from the archive by hash:
 arc.extract(path='Path/To/Output/', hash=0x12345678)
 
 #List out all file entries (Hash and Name):
 arc.extract(path='', all=True, save_file=False)

External links