Skip to content

Instantly share code, notes, and snippets.

@m0rb
Created December 13, 2023 01:49
Show Gist options
  • Save m0rb/8280f8c5c4e19c4ea9181cd974511810 to your computer and use it in GitHub Desktop.
Save m0rb/8280f8c5c4e19c4ea9181cd974511810 to your computer and use it in GitHub Desktop.
neo-geo repacked rom carving
#!/bin/bash
# DotEmu Shock Troopers -> MAME romset (shocktroa)
# shoutout to Richard Roe // milkchoco.info
#
# 12/12/23 -- morb
TITLE=shocktroa
OUTDIR=${TITLE}
tiles2crom() {
( cat t2c | while read c; do T=($c)
printf "${T[1]/*:/}\n${T[2]/*:/}\n${T[3]/*:/}\n${OUTDIR}/${T[0]/*:/}\n"
done ; echo -1 ) | wine tiles2crom.exe ${OUTDIR}/$1
}
romcutter() {
dd if=$1 of=${OUTDIR}/$2 bs=1 skip=$(( 16#$3 )) count=$(( 16#$4 ))
}
copy() {
[ "$1" == "/b" ] && ( B=$2;cat ${OUTDIR}/${B/+*/} ${OUTDIR}/${B/*+/} > ${OUTDIR}/$3 ) || (
cp $1 ${OUTDIR}/$2 ; )
}
answap() {
wine answap.exe $1 ${OUTDIR}/$2
}
tileswap() {
wine tileswap.exe $1 ${OUTDIR}/$2
}
cat > t2c << _EOF_
238-c1.c1 StartAddr:0 Odd_or_Even:0 SplitSize:400000
238-c2.c2 StartAddr:0 Odd_or_Even:1 SplitSize:400000
238-c3.c3 StartAddr:400000 Odd_or_Even:0 SplitSize:400000
238-c4.c4 StartAddr:400000 Odd_or_Even:1 SplitSize:400000
238-c5.c5 StartAddr:800000 Odd_or_Even:0 SplitSize:400000
238-c6.c6 StartAddr:800000 Odd_or_Even:1 SplitSize:400000
238-c7.c7 StartAddr:C00000 Odd_or_Even:0 SplitSize:400000
238-c8.c8 StartAddr:C00000 Odd_or_Even:1 SplitSize:400000
_EOF_
rm -rf ${TITLE}
mkdir $TITLE
#------
# @echo off ;)
copy shocktro_game_z80 238-m1.m1
romcutter shocktro_adpcm 238-v1.v1 0 400000
romcutter shocktro_adpcm 238-v2.v2 400000 200000
romcutter shocktro_game_m68k 238-p1.p1 0 100000
romcutter shocktro_game_m68k 238-p2.sp2 100000 400000
answap shocktro_game_sfix 238-s1.s1
tileswap shocktro_tiles 238-c.swp
tiles2crom 238-c.swp
#
#------
rm -f ${OUTDIR}/*.{tmp,swp} *.tmp
mame64 -romident ${OUTDIR}
zip -r ${TITLE}.zip ${OUTDIR}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment