mirror of https://github.com/n64decomp/007.git
179 lines
5.9 KiB
Bash
Executable File
179 lines
5.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
COUNTRY_CODE=""
|
|
OUTFILE=""
|
|
|
|
usage() {
|
|
echo "$0 usage:"
|
|
echo ""
|
|
echo "$0 -v u [-o results_file]"
|
|
echo ""
|
|
echo " -o output filename. Optional. Defaults to full_hashtable_{version}.csv"
|
|
echo " -v version. Supported options are: US,u, JP,j, EU,e"
|
|
echo ""
|
|
exit 0;
|
|
}
|
|
|
|
[ $# -eq 0 ] && usage
|
|
while getopts "o:hv:" arg; do
|
|
case $arg in
|
|
v) # version
|
|
if [ "${OPTARG,,}" = "us" ]; then
|
|
COUNTRY_CODE="u"
|
|
elif [ "${OPTARG,,}" = "u" ]; then
|
|
COUNTRY_CODE="u"
|
|
elif [ "${OPTARG,,}" = "jp" ]; then
|
|
COUNTRY_CODE="j"
|
|
elif [ "${OPTARG,,}" = "j" ]; then
|
|
COUNTRY_CODE="j"
|
|
elif [ "${OPTARG,,}" = "eu" ]; then
|
|
COUNTRY_CODE="e"
|
|
elif [ "${OPTARG,,}" = "e" ]; then
|
|
COUNTRY_CODE="e"
|
|
fi
|
|
|
|
ARG_VERSION="${OPTARG}"
|
|
;;
|
|
o) # out file
|
|
OUTFILE="${OPTARG}"
|
|
;;
|
|
h | *) # Display help.
|
|
usage
|
|
exit 0
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if ! command -v "mips-linux-gnu-objcopy" &> /dev/null
|
|
then
|
|
echo "command mips-linux-gnu-objcopy not found"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${OUTFILE}" = "" ] ; then
|
|
OUTFILE="full_hashtable_${version}.csv"
|
|
fi
|
|
|
|
TMP=$(mktemp /tmp/ge_test_files.XXXXXX)
|
|
|
|
rm -f "${OUTFILE}"
|
|
|
|
touch "${OUTFILE}"
|
|
|
|
# output format is simple csv, one entry per line
|
|
# 32 character md5, name of section extracted from ELF binary, and path to file relative from repo root (where this script is)
|
|
#
|
|
# escaped csv, quotes or commas in filenames are not supported.
|
|
|
|
for FILE in build/${COUNTRY_CODE}/src/*.o
|
|
do
|
|
echo "adding ${FILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .text -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.text,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .code -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.code,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .bss -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.bss,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .data -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.data,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .rodata -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.rodata,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
done
|
|
|
|
for FILE in build/${COUNTRY_CODE}/src/game/*.o
|
|
do
|
|
echo "adding ${FILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .text -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.text,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .code -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.code,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .bss -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.bss,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .data -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.data,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .rodata -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.rodata,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
done
|
|
|
|
for FILE in build/${COUNTRY_CODE}/assets/obseg/bg/*.o
|
|
do
|
|
echo "adding ${FILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .bss -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.bss,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .data -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.data,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .rodata -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.rodata,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
done
|
|
|
|
for FILE in build/${COUNTRY_CODE}/assets/obseg/brief/*.o
|
|
do
|
|
echo "adding ${FILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .bss -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.bss,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .data -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.data,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .rodata -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.rodata,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
done
|
|
|
|
for FILE in build/${COUNTRY_CODE}/assets/obseg/setup/*.o
|
|
do
|
|
echo "adding ${FILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .bss -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.bss,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .data -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.data,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .rodata -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.rodata,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
done
|
|
|
|
for FILE in build/${COUNTRY_CODE}/assets/obseg/stan/*.o
|
|
do
|
|
echo "adding ${FILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .bss -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.bss,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .data -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.data,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .rodata -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.rodata,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
done
|
|
|
|
for FILE in build/${COUNTRY_CODE}/assets/obseg/text/*.o
|
|
do
|
|
echo "adding ${FILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .bss -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.bss,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .data -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.data,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
|
|
mips-linux-gnu-objcopy -j .rodata -O binary "${FILE}" "${TMP}"
|
|
printf "%s,.rodata,%s\n" $(md5sum -b "${TMP}" | cut -c -32) "${FILE}" >> "${OUTFILE}"
|
|
done
|
|
|
|
rm -f "${TMP}"
|