- Created complete gaming detection and priority system - Added gaming schedule configuration and enforcement - Implemented Steam library monitoring with auto-detection - Built comprehensive game process detection for multiple platforms - Added gaming-aware Tdarr worker management with priority controls - Created emergency gaming mode for immediate worker shutdown - Integrated Discord notifications for gaming state changes - Replaced old bash monitoring with enhanced Python monitoring system - Added persistent state management and memory tracking - Implemented configurable gaming time windows and schedules - Updated .gitignore to exclude logs directories 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
280 lines
6.3 KiB
Bash
Executable File
280 lines
6.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Ready or Not Crash Fix Script
|
|
# Fixes common crash issues with splash screen crashes
|
|
|
|
set -e
|
|
|
|
GAME_ID="1144200"
|
|
STL_CONFIG_DIR="$HOME/.config/steamtinkerlaunch"
|
|
GAME_CONFIG="$STL_CONFIG_DIR/gamecfgs/$GAME_ID.conf"
|
|
|
|
# Colors
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
|
|
log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
|
|
log_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; }
|
|
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
|
|
|
backup_config() {
|
|
if [ -f "$GAME_CONFIG" ]; then
|
|
local backup="$GAME_CONFIG.crash-fix-backup.$(date +%Y%m%d_%H%M%S)"
|
|
cp "$GAME_CONFIG" "$backup"
|
|
log_success "Config backed up to: $backup"
|
|
fi
|
|
}
|
|
|
|
create_minimal_config() {
|
|
log_info "Creating minimal crash-resistant configuration..."
|
|
|
|
cat > "$GAME_CONFIG" << 'EOF'
|
|
## config Version: v12.12 - MINIMAL CRASH FIX
|
|
##########################
|
|
#GAMENAME="Ready Or Not"
|
|
#GAMEEXE="ReadyOrNot.exe"
|
|
#GAMEID="1144200"
|
|
##########################
|
|
|
|
# Essential settings only
|
|
KEEPSTLOPEN="0"
|
|
USESLR="1"
|
|
FORCESLR="0"
|
|
USEREAP="1"
|
|
FORCEREAP="0"
|
|
|
|
# Proton settings - using stable version
|
|
USEPROTON="GE-Proton9-11"
|
|
REDIRCOMPDATA="disabled"
|
|
REDIRSTEAMUSER="disabled"
|
|
AUTOBUMPGE="0"
|
|
AUTOBUMPPROTON="0"
|
|
|
|
# Game arguments - minimal for crash fix
|
|
GAMEARGS="-noeac"
|
|
HARDARGS="nope"
|
|
|
|
# Performance tools - disabled for crash testing
|
|
USEGAMEMODERUN="0"
|
|
USEGAMESCOPE="0"
|
|
GAMESCOPE_ARGS="none"
|
|
USEMANGOHUD="0"
|
|
USEMANGOAPP="0"
|
|
|
|
# Audio - basic settings
|
|
CHANGE_PULSE_LATENCY="1"
|
|
STL_PULSE_LATENCY_MSEC="120"
|
|
|
|
# Basic Wine/Proton settings
|
|
USEWINE="0"
|
|
VIRTUALDESKTOP="0"
|
|
VDRES="none"
|
|
|
|
# DXVK - disabled for crash testing
|
|
USE_STLDXVKCFG="0"
|
|
DXVK_HUD="0"
|
|
DXVK_LOG_LEVEL="none"
|
|
DXVK_LOG_PATH="none"
|
|
DXVK_ASYNC="0"
|
|
DXVK_HDR="0"
|
|
|
|
# Proton crash prevention
|
|
PROTON_USE_WINED3D="1"
|
|
PROTON_NO_D3D11="0"
|
|
PROTON_NO_D3D10="0"
|
|
PROTON_NO_ESYNC="0"
|
|
PROTON_NO_FSYNC="0"
|
|
PROTON_FORCE_LARGE_ADDRESS_AWARE="1"
|
|
PROTON_LOG="1"
|
|
PROTON_LOG_DIR="STLCFGDIR/logs/proton/id"
|
|
|
|
# NVIDIA settings - basic only
|
|
PROTON_ENABLE_NVAPI="0"
|
|
PROTON_HIDE_NVIDIA_GPU="1"
|
|
USEDLSS="0"
|
|
|
|
# Cleanup and debugging
|
|
CLEANPROTONTEMP="1"
|
|
CRASHGUESS="5"
|
|
STLWINEDEBUG="-all"
|
|
|
|
# Disable all extras that could cause crashes
|
|
USECUSTOMCMD="0"
|
|
USEIGCS="0"
|
|
UUUSEIGCS="0"
|
|
UUUSEPATCH="0"
|
|
UUUSEVR="0"
|
|
USEOBSCAP="0"
|
|
USEZINK="0"
|
|
USEPRIMERUN="0"
|
|
TOGSTEAMWEBHELPER="0"
|
|
ENABLE_VKBASALT="0"
|
|
RUN_NYRNA="0"
|
|
RUN_REPLAY="0"
|
|
RUN_X64DBG="0"
|
|
RUN_GDB="0"
|
|
USE_WDIB="0"
|
|
USEVORTEX="0"
|
|
RUN_WINETRICKS="0"
|
|
USEGEOELF="0"
|
|
INSTALL_RESHADE="0"
|
|
USERESHADE="0"
|
|
USEOPENVRFSR="0"
|
|
RUNSBSVR="0"
|
|
REGEDIT="0"
|
|
WAITEDITOR="0"
|
|
STEAMAPPIDFILE="0"
|
|
CHECKCOLLECTIONS="1"
|
|
BACKUPSTEAMUSER="0"
|
|
RESTORESTEAMUSER="none"
|
|
USESUSYM="0"
|
|
USEGLOBSUSYM="0"
|
|
STRACERUN="0"
|
|
USENETMON="0"
|
|
BLOCKINTERNET="0"
|
|
USEWINEDEBUGPROTON="0"
|
|
PROTON_DUMP_DEBUG_COMMANDS="0"
|
|
ENABLE_WINESYNC="0"
|
|
USERAYTRACING="0"
|
|
WINE_FULLSCREEN_INTEGER_SCALING="0"
|
|
WINE_FULLSCREEN_FSR="0"
|
|
WINE_FULLSCREEN_FSR_STRENGTH="2"
|
|
STLWINEDLLOVERRIDES="none"
|
|
WINE_LOG_DIR="STLCFGDIR/logs/wine"
|
|
USERSTART="none"
|
|
USERSTOP="none"
|
|
AUTOCONTY="0"
|
|
USECONTY="0"
|
|
ONLYWICO="0"
|
|
GAMESCREENRES="none"
|
|
HELPURL="none"
|
|
CREATEDESKTOPICON="0"
|
|
FIXSYMLINKS="0"
|
|
UNSYMLINK="0"
|
|
DELPFX="0"
|
|
RUN_DEPS="0"
|
|
SORTGARGS="0"
|
|
WAITMO2="0"
|
|
MO2MODE="disabled"
|
|
USESPECIALK="0"
|
|
SDLUSEWAYLAND="0"
|
|
STLRAD_PFTST="none"
|
|
SPEKVERS="default"
|
|
AUTOSPEK="0"
|
|
USEFWS="0"
|
|
USEPEV_PELDD="0"
|
|
USEPEV_PEPACK="0"
|
|
USEPEV_PERES="0"
|
|
USEPEV_PESCAN="0"
|
|
USEPEV_PESEC="0"
|
|
USEPEV_PESTR="0"
|
|
USEPEV_READPE="0"
|
|
STL_VKD3D_CONFIG="none"
|
|
STL_VKD3D_DEBUG="none"
|
|
STL_VKD3D_SHADER_DEBUG="none"
|
|
STL_VKD3D_LOG_FILE="none"
|
|
STL_VKD3D_VULKAN_DEVICE="none"
|
|
STL_VKD3D_FILTER_DEVICE_NAME="none"
|
|
STL_VKD3D_DISABLE_EXTENSIONS="none"
|
|
STL_VKD3D_TEST_DEBUG="0"
|
|
STL_VKD3D_TEST_FILTER="none"
|
|
STL_VKD3D_TEST_EXCLUDE="none"
|
|
STL_VKD3D_TEST_PLATFORM="none"
|
|
STL_VKD3D_TEST_BUG="none"
|
|
STL_VKD3D_PROFILE_PATH="none"
|
|
SLOARGS="none"
|
|
ASKCNT="0"
|
|
EOF
|
|
|
|
log_success "Minimal configuration created"
|
|
}
|
|
|
|
clean_old_data() {
|
|
log_info "Cleaning old game data that might cause crashes..."
|
|
|
|
# Remove old compatdata
|
|
local compatdata_paths=(
|
|
"$HOME/.steam/steam/steamapps/compatdata/$GAME_ID"
|
|
"$HOME/.local/share/Steam/steamapps/compatdata/$GAME_ID"
|
|
)
|
|
|
|
for path in "${compatdata_paths[@]}"; do
|
|
if [ -d "$path" ]; then
|
|
log_info "Removing old compatdata: $path"
|
|
rm -rf "$path"
|
|
fi
|
|
done
|
|
|
|
# Clean DXVK cache
|
|
if [ -d "/tmp/dxvk-cache" ]; then
|
|
log_info "Cleaning DXVK cache"
|
|
rm -rf /tmp/dxvk-cache/*
|
|
fi
|
|
|
|
log_success "Old data cleaned"
|
|
}
|
|
|
|
create_debug_launch_script() {
|
|
log_info "Creating debug launch script..."
|
|
|
|
cat > "$HOME/.local/bin/launch-ready-or-not-debug" << 'EOF'
|
|
#!/bin/bash
|
|
|
|
# Ready or Not Debug Launch Script
|
|
# Use this to get detailed crash information
|
|
|
|
export PROTON_LOG=1
|
|
export PROTON_LOG_DIR="$HOME/.config/steamtinkerlaunch/logs/proton/debug"
|
|
export WINEDEBUG="+dll,+module"
|
|
|
|
# Create log directory
|
|
mkdir -p "$HOME/.config/steamtinkerlaunch/logs/proton/debug"
|
|
|
|
echo "Launching Ready or Not in debug mode..."
|
|
echo "Logs will be in: $HOME/.config/steamtinkerlaunch/logs/proton/debug"
|
|
|
|
# Launch game
|
|
steam steam://rungameid/1144200
|
|
|
|
echo "Check logs for crash details:"
|
|
echo "Main log: $HOME/.config/steamtinkerlaunch/logs/proton/debug/steam-1144200.log"
|
|
EOF
|
|
|
|
chmod +x "$HOME/.local/bin/launch-ready-or-not-debug"
|
|
log_success "Debug launcher created: ~/.local/bin/launch-ready-or-not-debug"
|
|
}
|
|
|
|
show_next_steps() {
|
|
echo
|
|
log_success "Crash fix applied!"
|
|
echo
|
|
log_info "Next Steps:"
|
|
echo "1. Launch Ready or Not through Steam"
|
|
echo "2. If it still crashes, use debug launcher:"
|
|
echo " ~/.local/bin/launch-ready-or-not-debug"
|
|
echo "3. Check debug logs in ~/.config/steamtinkerlaunch/logs/"
|
|
echo "4. If it works, gradually re-enable features:"
|
|
echo " - Enable DXVK: PROTON_USE_WINED3D=\"0\", DXVK_ASYNC=\"1\""
|
|
echo " - Enable GameScope: USEGAMESCOPE=\"1\""
|
|
echo " - Enable NVIDIA features: PROTON_ENABLE_NVAPI=\"1\""
|
|
echo
|
|
log_warning "Current config uses WineD3D for stability"
|
|
log_warning "Performance will be lower but game should run"
|
|
}
|
|
|
|
main() {
|
|
log_info "Fixing Ready or Not splash screen crash..."
|
|
echo
|
|
|
|
backup_config
|
|
clean_old_data
|
|
create_minimal_config
|
|
create_debug_launch_script
|
|
show_next_steps
|
|
}
|
|
|
|
main "$@" |