yay README.md
This commit is contained in:
parent
82d3d51dbf
commit
e49c21ce74
12 changed files with 97 additions and 32 deletions
|
|
@ -1,21 +0,0 @@
|
||||||
WORKDIR="/tmp/wacca"
|
|
||||||
MOUNT_AS_ROOT=true
|
|
||||||
MANGOHUD_ENABLE=false
|
|
||||||
AIRGAP=false # Disable downloading game requirements and expect them to be present offline
|
|
||||||
ENABLE_CUSTOM_CHARTS=false # Enable injecting custom charts from customcharts folder
|
|
||||||
# VERSION
|
|
||||||
VERSION="3.07.01"
|
|
||||||
# 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=0 # Force enable Hidden Luin title screen
|
|
||||||
ENABLE_EN_US_TRANSLATION=1
|
|
||||||
22
.config.example
Normal file
22
.config.example
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
WORKDIR="/tmp/wacca"
|
||||||
|
MOUNT_AS_ROOT=true
|
||||||
|
MANGOHUD_ENABLE=false
|
||||||
|
AIRGAP=false # Disable downloading game requirements and expect them to be present offline
|
||||||
|
ENABLE_CUSTOM_CHARTS=false # Enable injecting custom charts from customcharts folder
|
||||||
|
ELAPSEIO_ENABLE=true # Enable mercuryhook .dll that connects with ELApse
|
||||||
|
# VERSION
|
||||||
|
VERSION="3.07.01"
|
||||||
|
# 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=false # Fully disable lockout
|
||||||
|
BINPATCH_FORCE_ENGINE_LOCALE=false # Force Engine locale (ignore router country language) (Enable if using ENABLE_EN_US_TRANSLATION with online mode)
|
||||||
|
BINPATCH_ALLOW_CHN_REGION=false # Allow using CHN region (don't change to HKG)
|
||||||
|
BINPATCH_FORCE_HIDDEN_LUIN_TITLE=false # Force enable Hidden Luin title screen
|
||||||
|
ENABLE_EN_US_TRANSLATION=false # Enable translation injection from ./imagestore/misc/translations/*.toml
|
||||||
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -1,7 +1,8 @@
|
||||||
images/*
|
images/*
|
||||||
imagestore/app/*.app
|
imagestore/app/*.app
|
||||||
imagestore/vhd/*.vhd
|
imagestore/vhd/*.vhd
|
||||||
imagestore/misc/ICF1
|
imagestore/misc/*
|
||||||
imagestore/misc/*.zip
|
!imagestore/misc/README.md
|
||||||
customcharts/*
|
!imagestore/misc/translations/README.md
|
||||||
|
!imagestore/misc/customcharts/README.md
|
||||||
.config
|
.config
|
||||||
49
README.md
Normal file
49
README.md
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
# wackman
|
||||||
|
|
||||||
|
Bunch of scripts to assist in running WACCA on linux
|
||||||
|
**WARNING:** I made these scripts for personal use. Use with your own discretion.
|
||||||
|
**ANOTHER WARNING:** The data for WACCA S (1.50) from archive.org is corrupted. The game will not work with this version.
|
||||||
|
## Requirements
|
||||||
|
- [vhditools](https://github.com/libyal/libvhdi) (Build from git, otherwise vhdimount will complain about missing VHDI subsystem)
|
||||||
|
- [umu-launcher](https://github.com/Open-Wine-Components/umu-launcher)
|
||||||
|
- [fsdecrypt](https://gitea.tendokyu.moe/beerpsi/fsdecrypt)
|
||||||
|
- [aria2c](https://aria2.github.io/)
|
||||||
|
- udisks2
|
||||||
|
- [MercuryModder](https://github.com/szymex73/MercuryModder) (**Optional:** only required for injecting charts into the game)
|
||||||
|
- [metra](https://git.drgn.moe/BlackDragon/metra) (**Optional:** Only required for injecting english translations into the game)
|
||||||
|
- [mangohud](https://github.com/flightlessmango/MangoHud) (**Optional:** Only required if you want to have a FPS counter)
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
Configuration is done with the `.config` file, an example can be found in `.config.example`
|
||||||
|
|
||||||
|
## Folder structure
|
||||||
|
- imagestore:
|
||||||
|
- index.csv: File containing all versions of the game with their respective archive.org links
|
||||||
|
- app: Folder containing source .app files
|
||||||
|
- vhd: Folder containing decrypted .vhd files
|
||||||
|
- misc:
|
||||||
|
- customcharts: Folder containing custom charts for MercuryModder to inject
|
||||||
|
- translations: Folder containing .toml files like [this](https://gitea.tendokyu.moe/Raymonf/WACCA-en_US/) that contain translations for the game
|
||||||
|
- ICF1: File that is required by the game
|
||||||
|
- segatools.zip: File that is required by the game
|
||||||
|
|
||||||
|
## What do the scripts do?
|
||||||
|
### ./init.sh
|
||||||
|
- check_prereqs: Check if requirements are installed
|
||||||
|
- get_required_app: Get a list of required .app files
|
||||||
|
- import_from_ins: Check for the presence of a SEGA_INS drive and pulls game files from it
|
||||||
|
- extract_apps:
|
||||||
|
- Download .app from archive.org with aria2c (Only if `AIRGAP=false` in .config)
|
||||||
|
- Extract the .vhd from the .app with fsdecrypt
|
||||||
|
- patchbin: Normalize the parent filename of the .vhd so that vhdimount wont freak out
|
||||||
|
- mount:
|
||||||
|
- Make required folders in \$WORKDIR/\$VERSION
|
||||||
|
- Mount the blockdevice that `vhdimount` presents in \$WORKDIR/\$VERSION/dev
|
||||||
|
- Mount the NTFS partition from the mounted blockdevice in \$WORKDIR/\$VERSION/lower
|
||||||
|
- Mount an overlayfs consisting of the \$WORKDIR/\$VERSION/lower at \$WORKDIR/\$VERSION/game
|
||||||
|
- apply_patches: Apply scripts from the ./patches dir that configure the game to work
|
||||||
|
### ./launch.sh
|
||||||
|
- Launches the game
|
||||||
|
### ./unmount.sh
|
||||||
|
- Unmounts the game files
|
||||||
|
|
||||||
1
imagestore/misc/customcharts/README.md
Normal file
1
imagestore/misc/customcharts/README.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
# Place charts here (In Mercurymodder format)
|
||||||
1
imagestore/misc/translations/README.md
Normal file
1
imagestore/misc/translations/README.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
# Place translations here (in WTT format)
|
||||||
1
init.sh
1
init.sh
|
|
@ -79,7 +79,6 @@ import_from_ins () {
|
||||||
|
|
||||||
extract_apps () {
|
extract_apps () {
|
||||||
missingapps=()
|
missingapps=()
|
||||||
mkdir -p imagestore/vhd
|
|
||||||
for url in ${apps//,/ }; do
|
for url in ${apps//,/ }; do
|
||||||
local file=$(basename "$url")
|
local file=$(basename "$url")
|
||||||
local vhd=$(basename "$url" | sed -E "s/.app/.vhd/")
|
local vhd=$(basename "$url" | sed -E "s/.app/.vhd/")
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
source .config
|
source .config
|
||||||
|
|
||||||
workdir=${WORKDIR:-/tmp/wacca}
|
workdir=${WORKDIR:-/tmp/wacca}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ force_engine_locale=${BINPATCH_FORCE_ENGINE_LOCALE:-false}
|
||||||
allow_chn_region=${BINPATCH_ALLOW_CHN_REGION:-false}
|
allow_chn_region=${BINPATCH_ALLOW_CHN_REGION:-false}
|
||||||
force_hidden_luin_title=${BINPATCH_FORCE_HIDDEN_LUIN_TITLE:-false}
|
force_hidden_luin_title=${BINPATCH_FORCE_HIDDEN_LUIN_TITLE:-false}
|
||||||
|
|
||||||
dir=/tmp/wacca/3.07.01
|
|
||||||
file=$dir/game/WindowsNoEditor/Mercury/Binaries/Win64/Mercury-Win64-Shipping.exe
|
file=$dir/game/WindowsNoEditor/Mercury/Binaries/Win64/Mercury-Win64-Shipping.exe
|
||||||
|
|
||||||
patch () {
|
patch () {
|
||||||
|
|
|
||||||
|
|
@ -23,12 +23,12 @@ sed -i '/^\[vfs\]/,/^\[/ {
|
||||||
/^appdata=/c\appdata=..\\\\..\\\\segatools\\\\appdata
|
/^appdata=/c\appdata=..\\\\..\\\\segatools\\\\appdata
|
||||||
}' $dir/game/bin/segatools.ini
|
}' $dir/game/bin/segatools.ini
|
||||||
|
|
||||||
if [ -z ${PORT_AIME_READER:-} ]; then echo "\$Card reader binding not set, skipping."; else
|
if [ -z ${PORT_AIME_READER:-} ]; then echo "Card reader binding not set, skipping."; else
|
||||||
echo "Card reader binding set, disabling card reader assembly emulation"
|
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
|
sed -i '/^\[aime\]/,/^enable=1/ s/^enable=1/enable=0/' $dir/game/bin/segatools.ini
|
||||||
fi
|
fi
|
||||||
if [ -z ${PORT_CONSOLE_LEFT:-} ]; then echo "\$Left console binding not set, skipping."; else
|
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
|
if [ -z ${PORT_CONSOLE_RIGHT:-} ]; then echo "Right console binding not set, skipping."; else
|
||||||
echo "Console binding set, disabling mercuryio touch hooks"
|
echo "Console binding set, disabling mercuryio touch hooks"
|
||||||
sed -i '/^\[touch\]/,/^enable=1/ s/^enable=1/enable=0/' $dir/game/bin/segatools.ini
|
sed -i '/^\[touch\]/,/^enable=1/ s/^enable=1/enable=0/' $dir/game/bin/segatools.ini
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
13
patches/15-en-translation.sh
Normal file
13
patches/15-en-translation.sh
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
translate=${ENABLE_EN_US_TRANSLATION:-false}
|
||||||
|
if [ "$translate" = true ]; then
|
||||||
|
if command -v "metra" &> /dev/null; then
|
||||||
|
echo -e "\033[0;32m✓\033[0m metra is installed"
|
||||||
|
else
|
||||||
|
echo -e "\033[0;31m✗\033[0m metra is NOT installed"
|
||||||
|
exit 127
|
||||||
|
fi
|
||||||
|
metra -m $dir/game/WindowsNoEditor/Mercury/Content/Message -t ../imagestore/misc/translations
|
||||||
|
sed -i '/^\[Internationalization\]/,/^Culture=ja-JP/ s/^Culture=ja-JP/Culture=en-US/' $dir/game/WindowsNoEditor/Mercury/Config/DefaultEngine.ini
|
||||||
|
fi
|
||||||
|
|
@ -6,6 +6,6 @@ else
|
||||||
echo -e "\033[0;31m✗\033[0m MercuryModder is NOT installed"
|
echo -e "\033[0;31m✗\033[0m MercuryModder is NOT installed"
|
||||||
exit 127
|
exit 127
|
||||||
fi
|
fi
|
||||||
MercuryModder prepare --tracks ../customcharts
|
MercuryModder prepare --tracks ../imagestore/misc/customcharts
|
||||||
MercuryModder check --tracks ../customcharts
|
MercuryModder check --tracks ../imagestore/misc/customcharts
|
||||||
MercuryModder modify --tracks ../customcharts --gameDir $dir/game/WindowsNoEditor --output $dir/game/WindowsNoEditor
|
MercuryModder modify --tracks ../imagestore/misc/customcharts --gameDir $dir/game/WindowsNoEditor --output $dir/game/WindowsNoEditor
|
||||||
Loading…
Reference in a new issue