mirror of https://github.com/n64decomp/007.git
97 lines
3.0 KiB
Bash
Executable File
97 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#set defaults
|
|
DOALL="1"
|
|
BASEROM="baserom.u.z64"
|
|
|
|
clear
|
|
|
|
if [ -z "$2" ]; then
|
|
if [ -z "$1" ]; then
|
|
#No Args
|
|
echo "Processing Everything"
|
|
elif [ "$1" = "files" ] || [ "$1" = "images" ]; then
|
|
#Arg1 is "files" or "images"
|
|
DOALL="0"
|
|
echo "Processing $1 Only"
|
|
else
|
|
#Arg1 is ROM
|
|
BASEROM=$1
|
|
echo "Processing Everything using $BASEROM"
|
|
fi
|
|
else
|
|
BASEROM=$2
|
|
if [ "$1" = "files" ] || [ "$1" != "images" ]; then
|
|
#Arg1 is "files" or "images
|
|
DOALL="0"
|
|
echo "Processing $1 Only using $BASEROM"
|
|
else
|
|
echo "Processing Everything using $BASEROM"
|
|
fi
|
|
fi
|
|
|
|
|
|
true="1"
|
|
|
|
DIRs='assets assets/font assets/images assets/images/split assets/music assets/ramrom/e assets/obseg assets/obseg/bg assets/obseg/brief assets/obseg/chr assets/obseg/gun assets/obseg/prop assets/obseg/setup assets/obseg/setup/u assets/obseg/stan assets/obseg/text assets/obseg/text/u'
|
|
|
|
for DIR in $DIRs
|
|
do
|
|
# if dir not exist, make
|
|
if [ ! -d $DIR ]; then
|
|
mkdir -p $DIR
|
|
fi
|
|
done
|
|
|
|
#build/rebuild extractor
|
|
[ ! -x tools/extractor/extractor ] && make -C tools/extractor
|
|
|
|
if [ "$DOALL" == "1" ] || [ $1 == 'files' ]; then
|
|
echo "Processing Files"
|
|
if [ -x tools/extractor/extractor ]; then
|
|
tools/extractor/extractor "$BASEROM" scripts/filelist.u.csv
|
|
else
|
|
while IFS=, read -r offset size name compressed extract
|
|
do
|
|
if [ "$extract" == "$true" ]; then
|
|
if [ "$compressed" == "$true" ]; then
|
|
echo "Extracting compressed $name, $size bytes..."
|
|
dd bs=1 skip=$offset count=$size if="$BASEROM" of="${name}.temp" status=none
|
|
GZ=gzip tools/1172inflate.sh "${name}.temp" "${name}"
|
|
rm "${name}.temp"
|
|
else
|
|
echo "Extracting uncompressed $name, $size bytes..."
|
|
dd bs=1 skip=$offset count=$size if="$BASEROM" of=$name status=none
|
|
echo "Successfully Extracted $name"
|
|
fi
|
|
else
|
|
echo "skip $name"
|
|
fi
|
|
done < scripts/filelist.u.csv
|
|
fi
|
|
#filelist.u.csv should follow pattern of:
|
|
#offset,size,name,compressed,extract
|
|
#formatting matters, no comments, no extra lines, unix line endings only
|
|
#and always end with a newline
|
|
fi
|
|
|
|
if [ "$DOALL" == "1" ] || [ $1 == 'images' ]; then
|
|
echo "Processing Images"
|
|
if [ -x tools/extractor/extractor ]; then
|
|
tools/extractor/extractor "$BASEROM" imagelist.u.csv
|
|
else
|
|
while IFS=, read -r offset size name
|
|
do
|
|
echo "Extracting $name, $size bytes..."
|
|
dd bs=1 skip=$offset count=$size if="$BASEROM" of=$name status=none
|
|
echo "Successfully Extracted $name"
|
|
done < imagelist.u.csv
|
|
fi
|
|
#imageslist.u.csv should follow pattern of:
|
|
#offset,size,name,compressed,extract
|
|
#formatting matters, no comments, no extra lines, unix line endings only
|
|
#and always end with a newline
|
|
fi
|
|
mkdir -p ./bin
|
|
./scripts/extract_asp_gsp_rsp.sh
|