Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Splatoon .pack File

Featured Replies

  • Author
  • Localization

Larsenv, posted Thu Oct 08, 2015 12:47 am (8198)


Here.
  • Author
  • Localization

einstein95, posted Sat Oct 10, 2015 2:41 am (8290)


Reworked the script somewhat to work with any SARC from a 3DS game, also works with SARC archives from other Wii U games. Feel free to take credit for this one.
Code:
# Nintendo SARC
#   the script automatically extracts all the extracted SARC archives
#   but will be created a backup copy of the archive in the destination folder
#   for technical reasons related to opening the TEMPORARY_FILE and reopening the old one

math RECURSIVE_SARC_EXTRACTION = 1

comtype yaz0

if RECURSIVE_SARC_EXTRACTION != 0
    print "Press 'a' if asked to overwrite TEMPORARY_FILE"
    get SIZE asize
    get MYFILE_NAME filename
    log MYFILE_NAME OFFSET SIZE  # long story...
endif

set NAME string ""
set PATH string ""
callfunction SARC_EXTRACT 1

if RECURSIVE_SARC_EXTRACTION != 0
    print "You can delete the file %MYFILE_NAME% in the output folder"
endif

startfunction SARC_EXTRACT
    string PATH NAME
    string PATH /

    getdstring SIGN 4
    if SIGN == "SARC"
        get HEAD_SIZE short
        get END short
        if END == 0xFFFE
            endian big
        else
            endian little
        endif
        get PACK_SIZE long
        get BASE_OFF long
        get UNK long
        idstring "SFAT"
        get DUMMY short
        get FILES short
        get DUMMY long
        for i = 0 < FILES
            get DUMMY long
            get NAME_OFF long
            math NAME_OFF & 0x00FFFFFF
            get OFFSET long
            get SIZE long
            math SIZE - OFFSET
            math OFFSET BASE_OFF
            math NAME_OFF * 4
            putarray 0 i OFFSET
            putarray 1 i SIZE
            putarray 2 i NAME_OFF
        next i
        idstring "SFNT"
        get DUMMY short
        get DUMMY short
        savepos NAMES_OFF
        for i = 0 < FILES
            getarray OFFSET   0 i
            getarray SIZE     1 i
            getarray NAME_OFF 2 i

            math NAME_OFF NAMES_OFF
            goto NAME_OFF
            get NAME string
            string FNAME p "%s%s" PATH NAME

            goto OFFSET
            getdstring SIGN 4
            if SIGN == "Yaz0"
                math ZSIZE = SIZE
                math ZSIZE - 0x10
                get SIZE long
                get FLAGS long
                get ZERO long
                savepos OFFSET

                if RECURSIVE_SARC_EXTRACTION != 0
                    clog TEMPORARY_FILE OFFSET ZSIZE SIZE

                    string NAME - 4
                    get MYFILE_NAME filename
                    open "." TEMPORARY_FILE
                    callfunction SARC_EXTRACT
                    open "." MYFILE_NAME
                else
                    clog NAME OFFSET ZSIZE SIZE
                endif

            else
                log FNAME OFFSET SIZE
            endif
        next i
    else
        get SIZE asize
        log FNAME OFFSET SIZE
    endif
endfunction
  • Author
  • Localization

aluigi, posted Sat Oct 10, 2015 8:06 am (8297)


Cool thanks.
I have updated the script with some modifications that should make it compatible with all the versions.
  • Author
  • Localization

Larsenv, posted Fri Jul 22, 2016 2:13 am (15537)


Please make this script use Yaz0 if it's detected as Yaz0.

Not all SARCs use Yaz0.
  • Author
  • Localization

aluigi, posted Fri Jul 22, 2016 4:18 am (15540)


That's what it does.
It checks if the file starts with the magic "Yaz0" and uses the yaz0 compression on it.
Have you encountered any specific problem?
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.