Found this python script in my files:
#!/usr/bin/env python3
# Author: AnalogMan + Marcin 'Maki' Gomulak
# Modified Date: 2023-06-03
# Purpose: Compress/Decompress DDSZ files for Switch
# Requirements: LZ4 (pip install lz4)
import argparse
import lz4.block
import os
import sys
from pathlib import Path
args = None
def RecurseDecode(folder_path):
if not args.ext:
args.ext = 'ddsz'
for path in Path(folder_path).rglob('*.' + args.ext):
with open(path, 'rb') as f:
data = f.read()
decodedData = lz4.block.decompress(data[4:])
with open(str(path).replace(args.ext, args.ext[:-1]), 'wb') as fd:
bytesWritten = fd.write(decodedData)
if args.verbose:
print('Decoded ' + str(path) + ' (' + str(bytesWritten) + ' bytes)')
def main():
global args
print('\n======== DDSZ Archive Tool ========\n\n')
if sys.version_info <= (3, 1, 0):
print('Python version 3.1.x+ needed to run this script.\n\n')
return 1
# Arg parser for program options
parser = argparse.ArgumentParser(description='Process DDSZ files with LZ4')
parser.add_argument('--decompress', '-d', action='store', help='Decompress DDSZ file', dest='filename_decomp')
parser.add_argument('--recurseFolder', '-r', action='store', help='Recursive mode path', dest='folder_path_recurse')
parser.add_argument('--verbose', '-v', action='store_true', help='Verbose mode', dest='verbose')
parser.add_argument('--extension', '-e', action='store', help='Override default DDSZ extension', dest='ext')
# Check passed arguments
args = parser.parse_args()
# Check if required files exist
if args.folder_path_recurse:
RecurseDecode(args.folder_path_recurse)
return 0
filename = args.filename
# If DDSZ, decompress RAW block
if (filename[-4:].lower()) == 'ddsz':
try:
with open(filename, 'rb') as f:
compressed = f.read()
with open(filename[:-4] + 'dds', 'wb') as f:
f.write(lz4.block.decompress(compressed[4:]))
print('DDS file decompressed successfully.\n\n')
except:
print('Could not decompress file.\n\n')
# If DDS, compress to DDSZ and include filesize.
elif (filename[-3:].lower()) == 'dds':
try:
with open(filename, 'rb') as f:
decompressed = f.read()
with open(filename[:-3] + 'ddsz', 'wb') as f:
compressed = lz4.block.compress(decompressed)
f.write((len(compressed) + 4).to_bytes(4, byteorder='little', signed=True))
f.write(compressed)
print('DDS file compressed successfully.\n\n')
except:
print('Could not compress file.\n\n')
else:
print('Unsupported file.\n')
return 1
if __name__ == "__main__":
main()