@Meliodas2255 right now I am using this:
Code:
#!/bin/bash
rm -fr tmp_dir > /dev/null 2>&1
mkdir -p tmp_dir
mkdir -p tmp_dir/source
mkdir -p tmp_dir/exefs
mkdir -p tmp_dir/logo
mkdir -p tmp_dir/romfs
mkdir -p tmp_dir/control
NRO_PATH=$1
NRO_NAME=`basename "$NRO_PATH" .nro`
TITLE_ID=$2
TARGET_NRO_PATH=$3
../bin/nstool --type nro --icon tmp_dir/control/icon_AmericanEnglish.dat --nacp tmp_dir/control/control.nacp $NRO_PATH > /dev/null 2>&1
mogrify -strip tmp_dir/control/icon_AmericanEnglish.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_Japanese.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_French.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_German.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_Italian.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_Spanish.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_Chinese.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_Korean.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_Dutch.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_Portuguese.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_Russian.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_Taiwanese.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_BritishEnglish.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_CanadianFrench.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_LatinAmericanSpanish.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_SimplifiedChinese.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_TraditionalChinese.dat
cp tmp_dir/control/icon_AmericanEnglish.dat tmp_dir/control/icon_BrazilianPortuguese.dat
read -r -d$'\n' APP_NAME < <(dd if=tmp_dir/control/control.nacp skip=0 bs=1 count=400 status=none | tr -s '\000' '\n')
read -r -d$'\n' APP_AUTH < <(dd if=tmp_dir/control/control.nacp skip=512 bs=1 count=400 status=none | tr -s '\000' '\n')
read -r -d$'\n' APP_VERS < <(dd if=tmp_dir/control/control.nacp skip=12384 bs=1 count=400 status=none | tr -s '\000' '\n')
echo "name: '""$APP_NAME""'"
echo "auth: '""$APP_AUTH""'"
echo "vers: '""$APP_VERS""'"
cp template.trampoline.s tmp_dir/source/trampoline.s
cp template.NintendoLogo.png tmp_dir/logo/
cp template.StartupMovie.gif tmp_dir/logo/
cp template.app.json tmp_dir/app.json
rpl "Title_ID" "$TITLE_ID" tmp_dir/app.json > /dev/null 2>&1
rpl "App_Name" "$APP_NAME" tmp_dir/app.json > /dev/null 2>&1
rpl "Created_By" "$APP_AUTH" tmp_dir/app.json > /dev/null 2>&1
rpl "Version_Number" "$APP_VERS" tmp_dir/app.json > /dev/null 2>&1
cp template.Makefile tmp_dir/Makefile
rpl "Title_ID" "$TITLE_ID" tmp_dir/Makefile > /dev/null 2>&1
rpl "App_Name" "$APP_NAME" tmp_dir/Makefile > /dev/null 2>&1
rpl "Created_By" "$APP_AUTH" tmp_dir/Makefile > /dev/null 2>&1
rpl "Version_Number" "$APP_VERS" tmp_dir/Makefile > /dev/null 2>&1
cp template.main.c tmp_dir/source/main.c
rpl "placeholder_to_be_replaced.nro" "$TARGET_NRO_PATH" tmp_dir/source/main.c > /dev/null 2>&1
make -C tmp_dir
../bin/hacbrewpack \
--tempdir tmp_dir/raw \
--ncadir tmp_dir/nca \
--nspdir tmp_dir \
--exefsdir tmp_dir/build/exefs \
--romfsdir tmp_dir/romfs \
--logodir tmp_dir/logo \
--controldir tmp_dir/control \
--keepncadir
rm -fr ./hacbrewpack_backup/
TITLE_ID=`echo "$TITLE_ID" | tr '[:upper:]' '[:lower:]'`
mv tmp_dir/$TITLE_ID.nsp "./$NRO_NAME""_[$TITLE_ID].nsp"
--------------------- MERGED ---------------------------
only change to hbl's main.c is nbmenu.nro -> placeholder_to_be_replaced.nro