#!/bin/bash


if [ "$#" -ne 2 ]; then
	echo "Usage: $0 <kick13.rom> <output.rom>"
	exit 1
fi

kick=$1
outfile=$2

md5=($(md5sum $kick))

if [ "$md5" != "82a21c1890cae844b3df741f2762d48d" ]; then
	echo "Error: $kick is not the right Kickstart ROM."
	echo "We need Kickstart 1.3 revision 34.5 (md5sum: 82a21c1890cae844b3df741f2762d48d)."
	echo
	echo "Aborted."
	exit 1
fi

echo "OK: $kick seems to be the right version."
echo "Writing $outfile..."
dd if=$kick bs=1 count=165558 of=$outfile
echo -n -e '\x01\x80' >> $outfile
dd if=$kick bs=1 skip=165560 count=122 >> $outfile
tail -n +52 $0 | base64 -d >> $outfile 
dd if=$kick bs=1 skip=166956 count=95188 >> $outfile
echo "Done."
echo

size=$(wc -c <"$outfile")

if [ "$size" = "262144" ]; then
	echo "OK: File size 262144"
else
	echo "Error: File size ($size) not as expected (262144)"
fi

md5=($(md5sum $outfile))

if [ "$md5" = "e463f714fe4dfba6ed02dc6e472136e5" ]; then
	echo "OK: Patched file looking good (md5sum as expected)" 
else
	echo "Error: File contents seem off (expected md5sum: e463f714fe4dfba6ed02dc6e472136e5)"
fi


exit 0


IcwAAEjnPD4gPAAAGq4iPAABAANOrv86KIBmCCA8MAGAAmAWKEBD+gEicABOrv3YKIBmCiA8MAOA
AmAAAMIsQEHsAAROrv80Q+wALE6u/phB7AC2cAIiPAAAAJB0eE6u/npD7ADeSOf//n4BQfoBlmEA
APJM33//KUkAvkPsCU4pSQDCQ+wAPk6u/zpB7AC2KUgArilIAEI5fAB4AB45fACQABxB7ACqKUgA
KEJsACRB7AAEKUgALEHsACxD7AAEMXwA5AAOMXwAcAAMTq7/KEPsACxOrv8uQ+wALE6u/yJH7AA+
QewABEP6AHJwBE6u/0BOrv7yM/yBAADf8JZM33w8TnVI5//+KHgAACAUZzQoQCAUZyYqQMtOM/wB
AADf8JaTyU6u/yJB7AAETq795MtOLHgABCJNTq7+YiJMIDwAABquTN9//051Z3JhcGhpY3MubGli
cmFyeQAADu4NtQAAB3woSCpJLEl0AHYBeIAsPAAABgA/PIAAU0Zm+FIGYVrdBmT6GsZhKGTyfP9h
TGQQfARhJBr1WABTgGb4YRJk3HwDYRR6ApqAZuZP7wwATnUsDcyH4U5gIuFOVAZhHGX6cAFTBmEU
0YBVBmT4TnXYBGYEGBzZBNVC1kNKQ2rwQ/doBtPGMhHoSZNR0lHCw0hBlEFlBJZBTnUGUQ//NgHU
QU51/2AT7tJAPDqnbfKzJj7/B7e3nbTFAPctX4XaqbaNbhs5nY6pAE6+z+zJiZHXOV5m0yT+65wd
A49pitrXQK/S6cbX7UgWBelbzo+6MziBa9++8l+aLn6EHIYOWTYDKr5GsU6Dhxm+tANyH/W9bqwx
TJzs4/L27Iiu4jhGVK2hR1GU7nFizl1g1iVyo0mAJwYXL79mUtePnH1vGOss3S6i3MZa4YSVLmnW
iejDEU8oyh36OmZQnWbAIvtdSKcUCjA6OL7tNl58A+I/m/Rf4qvTQPvn56H6Cngeb90elTLhMP7f
W4d71Odtg3elEkCySNasB0lI1DAxCNMH5MW4j8FNt0p1Az2IspnfDWxKcZeQeaOQfps0m5oQiF61
NHI0UdLn3OOVjlq/LCrpABKA3Qg6s5EAHvy+4LcK4lrbp0a7YnnbmnA1mXhVG23L5fJvz9czzdhU
CI558Qdjxv1Zp+Of9eRfZEB/5SbUtyUZvDeflkvPvVOhqsgmRfMXRwMO1tkhXCG7ghrdT50IunmT
rb/hyP6UTMa1QPXQq25SkkbYRJ3wGmTVS++vaJRDtP4r6xexyckTf3nSB46fuKXg8ia8wdhpPIcO
izMhaDb2PPZBecGKCnnmOvvF5xBfvb7cmZ7Bm5PfSITHAnLOg7TUzDjGvWscCPQXh8nf7702DZrw
7Un7Y7LDJ5WS5qemJw/O01zW/ZHHk2vqMItrFjidg8o9ty++1o9uIDZTYBXNcZVYPWCewGftCeEX
1IqxLnjGWCqM5n7nz0w7DFot7R0PecJah6eCQhCC5SQq99w7h8znb7/tyes431VhVtSAyf6igLw6
j6/vZTLj7vHEzHc6c/x314yQU1RMsbSVtVRmpabsScNA4UMZ7zJNXAJMWeysQ0z/dxxCe3Nevq7g
0/b3WUFykObd2+q5mVbHlWUgQkn3IhTjjnM4YDHPLIvOm/W81kPMrdyaGUrO9qxxKfmBZz82UkQl
JRMsevI6xgRBlRJVPfKeDCgwEXA=
