Compare commits
4 commits
1ac7e27638
...
8297c6f8bc
| Author | SHA1 | Date | |
|---|---|---|---|
| 8297c6f8bc | |||
| 4b8db8e2ab | |||
| 8712807dec | |||
| 58e64d3a28 |
31 changed files with 368 additions and 75 deletions
17
.config example
Normal file
17
.config example
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
WORKDIR="/tmp/wacca"
|
||||
# VERSION
|
||||
VERSION=""
|
||||
# NETWORKING
|
||||
NET_KEYCHIP_ID=""
|
||||
NET_HOSTNAME=""
|
||||
NET_COMPATIBILITY="3.0" # Which versions to enable networking for (3.0,2.5,1.0 e.t.c)
|
||||
# PORT BINDINGS
|
||||
PORT_CONSOLE_LEFT=""
|
||||
PORT_CONSOLE_RIGHT=""
|
||||
PORT_AIME_READER=""
|
||||
# APPLY BINARY PATCHES 3.07.01 ONLY
|
||||
BINPATCH_DISABLE_LOCKOUT=0 # Fully disable lockout
|
||||
BINPATCH_FORCE_ENGINE_LOCALE=0 # Force Engine locale (ignore router country language)
|
||||
BINPATCH_ALLOW_CHN_REGION=0 # Allow using CHN region (don't change to HKG)
|
||||
BINPATCH_FORCE_HIDDEN_LUIN_TITLE=1 # Force enable Hidden Luin title screen
|
||||
ENABLE_EN_US_TRANSLATION=1
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1 +1,3 @@
|
|||
images/*
|
||||
imagestore/*
|
||||
.config
|
||||
43
applypatches.sh
Executable file
43
applypatches.sh
Executable file
|
|
@ -0,0 +1,43 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 <profile>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
profile="$1"
|
||||
|
||||
source .config
|
||||
source ./profiles/$profile/metadata
|
||||
dir="/tmp/wacca/$profile"
|
||||
PATCHES_DIR="./patches"
|
||||
|
||||
[ ! -d "$PATCHES_DIR" ] && { echo "Error: $PATCHES_DIR not found"; exit 1; }
|
||||
|
||||
# Change to patches directory and process files in numerical order
|
||||
cd "$PATCHES_DIR" || exit 1
|
||||
|
||||
# Use ls with version sort to handle numbers correctly (1,2,3,10,50,etc.)
|
||||
for script in $(ls -1v 2>/dev/null); do
|
||||
[ -f "$script" ] && [ -r "$script" ] || continue
|
||||
|
||||
echo -e "\033[0;34m=== Applying: $script ===\033[0m"
|
||||
|
||||
# Create a named pipe for real-time output
|
||||
pipe=$(mktemp -u)
|
||||
mkfifo "$pipe"
|
||||
|
||||
# Execute the script with real-time output
|
||||
if (source "$script" 2>&1 | while IFS= read -r line; do
|
||||
echo "[$script] $line"
|
||||
done); then
|
||||
echo -e "\033[0;32m=== Successfully applied: $script ======\033[0m"
|
||||
else
|
||||
exit_code=$?
|
||||
echo -e "\033[0;31m=== Failed: $script (exit code: $exit_code) ===\033[0m"
|
||||
fi
|
||||
|
||||
# Clean up the pipe
|
||||
rm -f "$pipe"
|
||||
echo
|
||||
done
|
||||
3
bindinggen.sh
Normal file
3
bindinggen.sh
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
IFS='_' read -r game version timestamp internalid subversion <<< "SDFE_2.50.00_20210129180947_1_2.00.00"
|
||||
echo $component
|
||||
mkdir imagestore/binding/$game/
|
||||
22
downloadsegatools.sh
Executable file
22
downloadsegatools.sh
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 <profile>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
profile="$1"
|
||||
wget https://gitea.tendokyu.moe/TeamTofuShop/segatools/releases/download/latest/segatools.zip -O /tmp/segatools.zip
|
||||
unzip -p /tmp/segatools.zip mercury.zip | bsdtar -xf- -C /tmp/wacca/$profile/game/bin
|
||||
mkdir -p /tmp/wacca/$profile/segatools/{amfs,appdata,option}
|
||||
source profiles/$profile/metadata
|
||||
wget $icf -O /tmp/wacca/$profile/segatools/amfs/ICF1
|
||||
|
||||
# [vfs]
|
||||
# ; Insert the path to the game AMFS directory here (contains ICF1 and ICF2)
|
||||
# amfs=..\\..\\segatools\amfs
|
||||
# ; Insert the path to the game Option directory here (unused in Mercury)
|
||||
# option=..\\..\\segatools\option
|
||||
# ; Create an empty directory somewhere and insert the path here.
|
||||
# ; This directory may be shared between multiple SEGA games.
|
||||
# ; NOTE: This has nothing to do with Windows %APPDATA%.
|
||||
# appdata=..\\..\\segatools\appdata
|
||||
|
|
@ -18,7 +18,8 @@ do
|
|||
else
|
||||
echo "Decrypting $file"
|
||||
fsdecrypt images/app/$file
|
||||
mv images/app/*.vhd images/vhd
|
||||
mkdir -p images/vhd
|
||||
mv images/app/*.vhd images/vhd/
|
||||
fi
|
||||
else
|
||||
if [ ! -f images/vhd/$vhd ]; then
|
||||
|
|
@ -27,6 +28,7 @@ do
|
|||
|
||||
echo "Decrypting $file"
|
||||
fsdecrypt images/app/$file
|
||||
mkdir -p images/vhd
|
||||
mv images/app/*.vhd images/vhd
|
||||
fi
|
||||
fi
|
||||
|
|
|
|||
123
genbind.sh
Executable file
123
genbind.sh
Executable file
|
|
@ -0,0 +1,123 @@
|
|||
#!/bin/bash
|
||||
source .config
|
||||
|
||||
workdir=${WORKDIR:-/tmp/wacca}
|
||||
version=${VERSION:-3.07.01}
|
||||
|
||||
check_prereqs () {
|
||||
tools=("vhdimount" "umu-run" "fsdecrypt" "xdelta3" "aria2c")
|
||||
echo "Checking for required tools..."
|
||||
echo "=============================="
|
||||
|
||||
all_installed=true
|
||||
|
||||
for tool in "${tools[@]}"; do
|
||||
if command -v "$tool" &> /dev/null; then
|
||||
echo -e "\033[0;32m✓\033[0m $tool is installed"
|
||||
else
|
||||
echo -e "\033[0;31m✗\033[0m $tool is NOT installed"
|
||||
all_installed=false
|
||||
fi
|
||||
done
|
||||
|
||||
echo "=============================="
|
||||
if [ "$all_installed" != true ]; then
|
||||
echo "Some tools are missing :("
|
||||
if [ "$ignore_prereqs" = true ]; then
|
||||
echo "Ignoring prerequisites"
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
# GET NEEDED APPS FROM $VERSION
|
||||
get_required_app () {
|
||||
apps=""
|
||||
while IFS=',' read -r version url prettyname; do
|
||||
apps+="$url,"
|
||||
if [[ "$version" == "$VERSION" ]]; then
|
||||
break
|
||||
fi
|
||||
done < <(grep "$(echo "^$VERSION" | cut -c1-4)" imagestore/index.csv)
|
||||
}
|
||||
|
||||
extract_apps () {
|
||||
mkdir -p imagestore/vhd
|
||||
for url in ${apps//,/ }; do
|
||||
file=$(basename "$url")
|
||||
local vhd=$(basename "$url" | sed -E "s/.app/.vhd/")
|
||||
if [ -f imagestore/app/$file ]; then
|
||||
echo "Found $file"
|
||||
if [ -f imagestore/vhd/$vhd ]; then
|
||||
echo "Found $vhd"
|
||||
else
|
||||
echo "Decrypting $file"
|
||||
fsdecrypt imagestore/app/$file
|
||||
mv imagestore/app/$vhd imagestore/vhd/
|
||||
fi
|
||||
else
|
||||
if [ ! -f imagestore/vhd/$vhd ]; then
|
||||
echo "Downloading $file"
|
||||
aria2c -x 8 -j 8 -o imagestore/app/$file $url
|
||||
|
||||
echo "Decrypting $file"
|
||||
fsdecrypt imagestore/app/$file
|
||||
mv imagestore/app/$vhd imagestore/vhd/
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
patchbin () {
|
||||
# local targetvhd="$1"
|
||||
# local tmp=$(mktemp -u)
|
||||
# dd if=$targetvhd of=$tmp bs=1 count=576
|
||||
# dd if=TEST.vhd of=$tmp bs=1 skip=575 seek=576 count=80
|
||||
# dd if=$tmp of=$targetvhd bs=1 conv=notrunc
|
||||
# echo -n $(basename $1) | iconv -f UTF-8 -t UTF-16BE | dd of=test
|
||||
|
||||
for url in ${apps//,/ }; do
|
||||
local file=$(basename $url)
|
||||
IFS='_' read gameid version date vhdpos parentversion <<< "${file%.app}"
|
||||
if [[ "$vhdpos" != "0" ]]; then
|
||||
local vhd=$(basename "$url" | sed -E "s/.app/.vhd/")
|
||||
input=$(vhdiinfo imagestore/vhd/$vhd)
|
||||
|
||||
identifier=$(echo "$input" | grep -i "Identifier" | head -1 | awk '{print $NF}')
|
||||
parent_identifier=$(echo "$input" | grep -i "Parent identifier" | awk '{print $NF}')
|
||||
parent_filename=$(echo "$input" | grep -i "Parent filename" | awk -F': ' '{print $2}')
|
||||
echo "Checking $vhd parent"
|
||||
if [[ ! "$parent_filename" =~ ^\\SDFE ]]; then
|
||||
echo "$vhd Parent filename incorrect"
|
||||
new_parent_filename=$(grep "^$parentversion" imagestore/index.csv | cut -d',' -f2 | xargs basename | sed -E "s/.app/.vhd/")
|
||||
new_parent_filename="\\$new_parent_filename"
|
||||
local len=${#new_parent_filename}
|
||||
result=$(((len * 2)))
|
||||
echo "Writing parent filename $new_parent_filename to $vhd"
|
||||
echo $new_parent_filename | iconv -f UTF-8 -t UTF-16BE | dd of=imagestore/vhd/$vhd seek=576 bs=1 conv=notrunc
|
||||
echo $new_parent_filename | iconv -f UTF-8 -t UTF-16BE | dd of=imagestore/vhd/$vhd seek=4096 bs=1 conv=notrunc
|
||||
if [ $result -lt 80 ]; then
|
||||
remainder=$((80 - result))
|
||||
dd if=/dev/zero of=imagestore/vhd/$vhd seek=$((576 + result)) bs=1 count=$remainder conv=notrunc
|
||||
dd if=/dev/zero of=imagestore/vhd/$vhd seek=$((4096 + result)) bs=1 count=$remainder conv=notrunc
|
||||
fi # echo $parent_filename
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
mount () {
|
||||
vhdpath=$(grep "^$version" imagestore/index.csv | cut -d',' -f2 | xargs basename | sed -E "s/.app/.vhd/")
|
||||
|
||||
mkdir -p $workdir/$version/{dev,lower,upper,game,work}
|
||||
vhdimount imagestore/vhd/$vhdpath $workdir/$version/dev
|
||||
# sudo mount -t ntfs -o offset=$((2048*512)),uid=$(id -u),gid=$(id -g) $(sudo find /tmp/wacca/$profile/dev -maxdepth 1 -type f | sort -V | tail -1) /tmp/wacca/$profile/lower
|
||||
# sudo mount overlay -t overlay -o lowerdir=/tmp/wacca/$profile/lower,upperdir=/tmp/wacca/$profile/upper,workdir=/tmp/wacca/$profile/work /tmp/wacca/$profile/game
|
||||
}
|
||||
|
||||
check_prereqs
|
||||
get_required_app
|
||||
extract_apps
|
||||
patchbin
|
||||
mount
|
||||
# patchbin "images/vhd/SDFE_2.53.00_20210607052915_3_2.52.00.vhd.old"
|
||||
2
generatetree.sh
Normal file → Executable file
2
generatetree.sh
Normal file → Executable file
|
|
@ -5,6 +5,8 @@ if [ $# -eq 0 ]; then
|
|||
fi
|
||||
|
||||
profile="$1"
|
||||
rm -r images/tree/$profile
|
||||
mkdir -p images/tree/$profile
|
||||
while IFS=, read -r vhd version identifier backingversion parent_identifier parent_filename
|
||||
do
|
||||
match=0
|
||||
|
|
|
|||
8
launch.sh
Executable file
8
launch.sh
Executable file
|
|
@ -0,0 +1,8 @@
|
|||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 <profile>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
profile="$1"
|
||||
|
||||
WINEPREFIX=/tmp/wacca/$profile/prefix umu-run /tmp/wacca/$profile/game/bin/launch.bat
|
||||
15
mountprofile.sh
Executable file
15
mountprofile.sh
Executable file
|
|
@ -0,0 +1,15 @@
|
|||
#!/bin/bash
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 <profile>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
profile="$1"
|
||||
|
||||
mkdir -p /tmp/wacca/$profile/{dev,lower,upper,game,work}
|
||||
mkdir -p /tmp/wacca/$profile/lower
|
||||
mkdir -p /tmp/wacca/$profile/upper
|
||||
mkdir -p /tmp/wacca/$profile/game
|
||||
sudo vhdimount images/tree/$profile/game.vhd /tmp/wacca/$profile/dev
|
||||
sudo mount -t ntfs -o offset=$((2048*512)),uid=$(id -u),gid=$(id -g) $(sudo find /tmp/wacca/$profile/dev -maxdepth 1 -type f | sort -V | tail -1) /tmp/wacca/$profile/lower
|
||||
sudo mount overlay -t overlay -o lowerdir=/tmp/wacca/$profile/lower,upperdir=/tmp/wacca/$profile/upper,workdir=/tmp/wacca/$profile/work /tmp/wacca/$profile/game
|
||||
0
patches/10-binpatch.sh
Normal file
0
patches/10-binpatch.sh
Normal file
22
patches/10-segatools.sh
Executable file
22
patches/10-segatools.sh
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
if [ -z ${dir+x} ]; then echo "\$dir not set, skipping."; exit 22; else
|
||||
wget https://gitea.tendokyu.moe/TeamTofuShop/segatools/releases/download/latest/segatools.zip -O /tmp/segatools.zip
|
||||
mkdir -p $dir/segatools/{amfs,appdata,option}
|
||||
unzip -p /tmp/segatools.zip mercury.zip | bsdtar -xf- -C $dir/game/bin
|
||||
fi
|
||||
|
||||
sed -i '/^\[vfs\]/,/^\[/ {
|
||||
/^amfs=/c\amfs=..\\\\..\\\\segatools\\\\amfs
|
||||
/^option=/c\option=..\\\\..\\\\segatools\\\\option
|
||||
/^appdata=/c\appdata=..\\\\..\\\\segatools\\\\appdata
|
||||
}' $dir/game/bin/segatools.ini
|
||||
|
||||
if [ -z ${PORT_AIME_READER:-} ]; then echo "\$Card reader binding not set, skipping."; else
|
||||
echo "Card reader binding set, disabling card reader assembly emulation"
|
||||
sed -i '/^\[aime\]/,/^enable=1/ s/^enable=1/enable=0/' $dir/game/bin/segatools.ini
|
||||
fi
|
||||
if [ -z ${PORT_CONSOLE_LEFT:-} ]; then echo "\$Left console binding not set, skipping."; else
|
||||
if [ -z ${PORT_CONSOLE_RIGHT:-} ]; then echo "\$Right console binding not set, skipping."; else
|
||||
echo "Console binding set, disabling mercuryio touch hooks"
|
||||
sed -i '/^\[touch\]/,/^enable=1/ s/^enable=1/enable=0/' $dir/game/bin/segatools.ini
|
||||
fi
|
||||
fi
|
||||
5
patches/11-icf.sh
Normal file
5
patches/11-icf.sh
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
if [ -z ${dir+x} ]; then echo "\$dir not set, skipping."; exit 22; else
|
||||
if [ -z ${icf+x} ]; then echo "ICF url not set, skipping."; else
|
||||
wget $icf -O $dir/segatools/amfs/ICF1
|
||||
fi
|
||||
fi
|
||||
12
patches/11-networking.sh
Normal file
12
patches/11-networking.sh
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
if [ -z ${NET_KEYCHIP_ID:-} ]; then
|
||||
echo "Keychip id not set, skipping.";
|
||||
sed -i '/^\[\/Script\/Mercury.MercuryNetworkSettings\]/,/^OfflineMode=false/ s/^OfflineMode=false/OfflineMode=true/' $dir/game/WindowsNoEditor/Mercury/Config/DefaultHardware.ini
|
||||
else
|
||||
sed -i "/^\[keychip\]/,/^id=A69E-01A88888888/ s/^id=A69E-01A88888888/id=$NET_KEYCHIP_ID/" $dir/game/bin/segatools.ini
|
||||
if [ -z ${NET_HOSTNAME:-} ]; then
|
||||
echo "Server hostname not set, skipping.";
|
||||
sed -i '/^\[\/Script\/Mercury.MercuryNetworkSettings\]/,/^OfflineMode=false/ s/^OfflineMode=false/OfflineMode=true/' $dir/game/WindowsNoEditor/Mercury/Config/DefaultHardware.ini
|
||||
else
|
||||
sed -i "/^\[dns\]/,/^default=127.0.0.1/ s/^default=127.0.0.1/default=$NET_HOSTNAME/" $dir/game/bin/segatools.ini
|
||||
fi
|
||||
fi
|
||||
3
patches/15-ledstub.sh
Executable file
3
patches/15-ledstub.sh
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
sed -i '/^\[elisabeth\]/,/^enable=1/ s/^enable=1/enable=0/' $dir/game/bin/segatools.ini
|
||||
cp ../wacca_led.dll $dir/game/WindowsNoEditor/Mercury/Plugins/ElizabethPlugin/Source/LEDDevice/Source/Runtime/Public/Externals/USBIntLED.DLL
|
||||
rm $dir/game/WindowsNoEditor/Mercury/Plugins/ElizabethPlugin/Source/LEDDevice/Source/Runtime/Public/Externals/USBIntLED_.DLL
|
||||
5
patches/15-openssl.sh
Normal file
5
patches/15-openssl.sh
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
if [ -z ${dir+x} ]; then echo "\$dir not set, skipping."; exit 22; else
|
||||
if grep -q "set OPENSSL_ia32cap=:~0x20000000" $dir/game/bin/launch.bat; then echo "Patch already present in file, skipping."; else
|
||||
sed -i '/@echo off/Ia set OPENSSL_ia32cap=:~0x20000000' $dir/game/bin/launch.bat
|
||||
fi
|
||||
fi
|
||||
6
patches/15-wacca1-fixname.sh
Normal file
6
patches/15-wacca1-fixname.sh
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
if [[ "$version" =~ ^1\. ]]; then
|
||||
sed -i 's/Mercury-Win64-Shipping.exe/Mercury.exe/g' $dir/game/bin/launch.bat
|
||||
else
|
||||
echo "Patch not applicable to specified version, skipping."
|
||||
fi
|
||||
10
patches/5-pfx.sh
Executable file
10
patches/5-pfx.sh
Executable file
|
|
@ -0,0 +1,10 @@
|
|||
if [ -z ${PORT_CONSOLE_LEFT+x} ]; then echo "Left console binding not set, skipping."; else
|
||||
WINEPREFIX=$dir/prefix umu-run reg add "HKEY_LOCAL_MACHINE\\Software\\Wine\\Ports" /f /v COM3 /t REG_SZ /d "$PORT_CONSOLE_LEFT" #Console touch left
|
||||
fi
|
||||
if [ -z ${PORT_CONSOLE_RIGHT+x} ]; then echo "Right console binding not set, skipping."; else
|
||||
WINEPREFIX=$dir/prefix umu-run reg add "HKEY_LOCAL_MACHINE\\Software\\Wine\\Ports" /f /v COM4 /t REG_SZ /d "$PORT_CONSOLE_RIGHT" #Console touch right
|
||||
fi
|
||||
if [ -z ${PORT_AIME_READER+x} ]; then echo "Card reader binding not set, skipping."; else
|
||||
WINEPREFIX=$dir/prefix umu-run reg add "HKEY_LOCAL_MACHINE\\Software\\Wine\\Ports" /f /v COM1 /t REG_SZ /d "$PORT_AIME_READER" #aime reader
|
||||
fi
|
||||
|
||||
3
patches/50-disablenetenv.sh
Executable file
3
patches/50-disablenetenv.sh
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
cp -r $dir/game/bin/segatools.ini $dir/game/bin/segatools-netenv.ini
|
||||
sed -i '/^\[netenv\]/,/^enable=1/ s/^enable=1/enable=0/' $dir/game/bin/segatools-netenv.ini
|
||||
sed -i '/inject -d -k mercuryhook.dll ..\/WindowsNoEditor\/Mercury\/Binaries\/Win64/i set SEGATOOLS_CONFIG_PATH=./segatools-netenv.ini' $dir/game/bin/launch.bat
|
||||
BIN
patches/binpatch/chn.xd3
Normal file
BIN
patches/binpatch/chn.xd3
Normal file
Binary file not shown.
BIN
patches/binpatch/enginelocale.xd3
Normal file
BIN
patches/binpatch/enginelocale.xd3
Normal file
Binary file not shown.
BIN
patches/binpatch/hiddenscreen.xd3
Normal file
BIN
patches/binpatch/hiddenscreen.xd3
Normal file
Binary file not shown.
BIN
patches/binpatch/lockout.xd3
Normal file
BIN
patches/binpatch/lockout.xd3
Normal file
Binary file not shown.
|
|
@ -1,20 +0,0 @@
|
|||
#!/bin/bash
|
||||
#Script that patches .vhd files to be correctly read vhditools by turning LE parent filenames into BE
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 <.vhd>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
str=$(strings -e l $1 | head -n 1)
|
||||
|
||||
echo $str
|
||||
read -p "Do you want to patch the listed string? (y/N): " -n 1 -r
|
||||
echo # move to a new line
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
be=$(echo -n $str | iconv -f UTF-8 -t UTF-16BE | xxd -p -c1 | tr -d '\n ' | sed 's/../\\x&/g')
|
||||
le=$(echo -n $str | iconv -f UTF-8 -t UTF-16LE | xxd -p -c1 | tr -d '\n ' | sed 's/../\\x&/g')
|
||||
mv $1 $1.old
|
||||
bbe -e "s/$le/$be/" $1.old | pv -s $(stat --printf="%s" $1.old) > $1
|
||||
fi
|
||||
rm $1.old
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
prettyname="WACCA Lily"
|
||||
version="2.00"
|
||||
version="2.0"
|
||||
icf="https://archive.org/download/WACCA/EXP/2.00.00%20USB/SDFE_ACA.icf"
|
||||
versionupdate="https://archive.org/download/WACCA/EXP/2.00.00%20USB/%5B%5B%5B%5B%5BVersionUpdate%5D%5D%5D%5D%5D"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
prettyname="WACCA Lily R"
|
||||
version="2.50"
|
||||
version="2.5"
|
||||
icf="https://archive.org/download/WACCA/EXP/2.00.00%20USB/SDFE_ACA.icf"
|
||||
versionupdate="https://archive.org/download/WACCA/EXP/2.00.00%20USB/%5B%5B%5B%5B%5BVersionUpdate%5D%5D%5D%5D%5D"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
prettyname="WACCA Reverse"
|
||||
version="3.00"
|
||||
version="3.0"
|
||||
icf="https://archive.org/download/WACCA/EXP/3.00.00%20USB/SDFE_ACA.icf"
|
||||
versionupdate="https://archive.org/download/WACCA/EXP/3.00.00%20USB/%5B%5B%5B%5B%5BVersionUpdate%5D%5D%5D%5D%5D"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
prettyname="WACCA S"
|
||||
version="1.50"
|
||||
version="1.5"
|
||||
icf="https://archive.org/download/WACCA/EXP/1.50.00%20USB/SDFE_ACA.icf"
|
||||
versionupdate="https://archive.org/download/WACCA/EXP/1.50.00%20USB/%5B%5B%5B%5B%5BVersionUpdate%5D%5D%5D%5D%5D"
|
||||
|
|
|
|||
11
unmountprofile.sh
Executable file
11
unmountprofile.sh
Executable file
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 <profile>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
profile="$1"
|
||||
|
||||
sudo umount /tmp/wacca/$profile/game
|
||||
sudo umount /tmp/wacca/$profile/lower
|
||||
sudo fusermount -u /tmp/wacca/$profile/dev
|
||||
25
versionselect.sh
Normal file → Executable file
25
versionselect.sh
Normal file → Executable file
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
|
||||
selectversion() {
|
||||
versions=()
|
||||
count=0
|
||||
for profile_dir in profiles/*/; do
|
||||
|
|
@ -25,18 +26,20 @@ for profile_dir in profiles/*/; do
|
|||
count=$[count+1]
|
||||
versions2+=("$version" "$vhd")
|
||||
done < images/lookup/phase1_$profile.csv
|
||||
echo "${versions2[@]}"
|
||||
exec 3>&1;
|
||||
sel=$(dialog --menu "Select an item:" 20 60 10 "${versions2[@]}" 2>&1 1>&3)
|
||||
echo $sel
|
||||
sed -i "s/VERSION=.*/VERSION=\"$sel\"/" .config
|
||||
fi
|
||||
done
|
||||
# profile="$1"
|
||||
# versions=()
|
||||
# count=0
|
||||
# while IFS=, read -r vhd version identifier backingversion parent_identifier parent_filename
|
||||
# do
|
||||
# count=$[count+1]
|
||||
# versions+=("$count" "$version")
|
||||
# done < images/lookup/phase1_$1.csv
|
||||
# dialog --menu "Select an item:" 20 60 10 "${versions[@]}"
|
||||
}
|
||||
|
||||
setserver() {
|
||||
source .config
|
||||
exec 3>&1;
|
||||
hostname=$(dialog --inputbox "Modify server hostname" 10 30 "${NET_HOSTNAME:-hostname.tld}" 2>&1 1>&3)
|
||||
keychip=$(dialog --inputbox "Modify keychip id" 10 30 "${NET_KEYCHIP_ID:-A$(printf "%02d" $((RANDOM % 100)))$(shuf -e E X | head -n1)-$(shuf -e 01 20 | head -n1)$(shuf -e A B C D U | head -n1)$(tr -dc 0-9 </dev/urandom | head -c 8)}" 2>&1 1>&3)
|
||||
sed -i "s/NET_HOSTNAME=.*/NET_HOSTNAME=\"$hostname\"/" .config
|
||||
sed -i "s/NET_KEYCHIP_ID=.*/NET_KEYCHIP_ID=\"$keychip\"/" .config
|
||||
}
|
||||
setserver
|
||||
# selectversion
|
||||
BIN
wacca_led.dll
Normal file
BIN
wacca_led.dll
Normal file
Binary file not shown.
Loading…
Reference in a new issue