mirror of
https://github.com/milkdrop2077/MilkDrop3.git
synced 2025-10-29 11:26:16 +00:00
Merge pull request #134 from dangerousbeans/feature/linux-setup-guide
Add Linux setup guide and launcher script
This commit is contained in:
commit
f88e2c3932
281
LINUX_SETUP_GUIDE.md
Normal file
281
LINUX_SETUP_GUIDE.md
Normal file
@ -0,0 +1,281 @@
|
||||
# MilkDrop3 on Linux with Wine - Setup Guide
|
||||
|
||||
This guide will help you run MilkDrop3 on Linux using Wine.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Linux distribution (tested on Manjaro with Wine 10.13 Staging)
|
||||
- Wine (10.13 or later recommended, Wine Staging preferred)
|
||||
- winetricks
|
||||
- Basic terminal knowledge
|
||||
|
||||
## System Requirements
|
||||
|
||||
- **Wine version**: 10.13 or later (Wine Staging recommended)
|
||||
- **Architecture**: 64-bit system with wow64 support
|
||||
- **Graphics**: OpenGL-capable GPU with decent 3D support
|
||||
|
||||
## Installation Steps
|
||||
|
||||
### 1. Install Required Packages
|
||||
|
||||
#### On Arch/Manjaro:
|
||||
```bash
|
||||
sudo pacman -S wine winetricks
|
||||
```
|
||||
|
||||
#### On Ubuntu/Debian:
|
||||
```bash
|
||||
sudo apt install wine winetricks
|
||||
```
|
||||
|
||||
#### On Fedora:
|
||||
```bash
|
||||
sudo dnf install wine winetricks
|
||||
```
|
||||
|
||||
### 2. Download MilkDrop3
|
||||
|
||||
Download the official MilkDrop3 installer:
|
||||
```bash
|
||||
wget -O MilkDrop3.exe "https://github.com/milkdrop2077/MilkDrop3/releases/download/MilkDrop3/MilkDrop3.exe"
|
||||
```
|
||||
|
||||
### 3. Set Up Wine Environment
|
||||
|
||||
Install necessary Windows dependencies:
|
||||
```bash
|
||||
winetricks -q d3dx9 vcrun2019
|
||||
```
|
||||
|
||||
This will install:
|
||||
- DirectX 9 libraries (d3dx9)
|
||||
- Visual C++ 2019 Redistributables
|
||||
|
||||
**Note**: This process may take 5-10 minutes depending on your internet connection.
|
||||
|
||||
### 4. Install MilkDrop3
|
||||
|
||||
Run the installer with Wine:
|
||||
```bash
|
||||
wine MilkDrop3.exe
|
||||
```
|
||||
|
||||
Follow the on-screen installation prompts. The default installation location will be:
|
||||
```
|
||||
~/.wine/drive_c/users/YOUR_USERNAME/Desktop/MilkDrop 3.31/
|
||||
```
|
||||
|
||||
### 5. Replace with Linux-Compatible Executable
|
||||
|
||||
MilkDrop3 requires a special Linux-compatible build. Replace the standard executable:
|
||||
|
||||
```bash
|
||||
# Download the Linux-compatible version
|
||||
wget -O "MilkDrop 3 linux.exe" "https://raw.githubusercontent.com/milkdrop2077/MilkDrop3/main/linux/MilkDrop%203%20linux.exe"
|
||||
|
||||
# Replace the executable (adjust path if needed)
|
||||
cd ~/.wine/drive_c/users/$USER/Desktop/"MilkDrop 3.31"/
|
||||
rm "MilkDrop 3.exe"
|
||||
mv /path/to/downloaded/"MilkDrop 3 linux.exe" "MilkDrop 3.exe"
|
||||
```
|
||||
|
||||
### 6. Run MilkDrop3
|
||||
|
||||
Navigate to the installation directory and run:
|
||||
```bash
|
||||
cd ~/.wine/drive_c/users/$USER/Desktop/"MilkDrop 3.31"/
|
||||
wine "MilkDrop 3.exe"
|
||||
```
|
||||
|
||||
## Using the Launcher Script
|
||||
|
||||
A convenient launcher script is included in the repository. Use it to easily start MilkDrop3:
|
||||
|
||||
```bash
|
||||
# Download the launcher script from the repository
|
||||
wget -O milkdrop3-launcher.sh "https://raw.githubusercontent.com/milkdrop2077/MilkDrop3/main/milkdrop3-launcher.sh"
|
||||
|
||||
# Make it executable
|
||||
chmod +x milkdrop3-launcher.sh
|
||||
|
||||
# Run MilkDrop3
|
||||
./milkdrop3-launcher.sh
|
||||
```
|
||||
|
||||
The launcher script automatically:
|
||||
- Sets optimal Wine environment variables for performance
|
||||
- Verifies installation paths
|
||||
- Displays helpful keyboard shortcuts
|
||||
- Suppresses unnecessary debug output
|
||||
|
||||
## Known Issues and Workarounds
|
||||
|
||||
### Text Rendering Issues
|
||||
As mentioned in the original README, menu text (F1 help, L/M menus) may appear glitchy. This is a known issue with the Wine rendering layer.
|
||||
|
||||
**Workaround**: The visualization itself works perfectly; you can navigate menus by memorizing keyboard shortcuts.
|
||||
|
||||
### D3D Texture Warnings
|
||||
You may see numerous warnings like:
|
||||
```
|
||||
err:d3d:wined3d_texture_invalidate_location Sub-resource X does not have any up to date location
|
||||
```
|
||||
|
||||
These are harmless Wine warnings related to texture management and don't affect functionality.
|
||||
|
||||
### GLSL Shader Warnings
|
||||
Warnings about uninitialized shader variables are cosmetic and don't impact the visualizations.
|
||||
|
||||
### Performance Issues
|
||||
If you experience performance issues:
|
||||
|
||||
1. **Use Wine Staging**: It has better DirectX support
|
||||
2. **Enable CSMT**: Run with `STAGING_SHARED_MEMORY=1`
|
||||
3. **Try different Wine versions**: Sometimes newer/older versions work better
|
||||
4. **Check your GPU drivers**: Ensure you have the latest drivers installed
|
||||
|
||||
## Audio Configuration
|
||||
|
||||
MilkDrop3 needs an audio source to visualize. Options include:
|
||||
|
||||
1. **System Audio**:
|
||||
- Use PulseAudio/PipeWire loopback to route system audio to MilkDrop3
|
||||
- Install `pavucontrol` to manage audio routing
|
||||
|
||||
2. **Music Players**:
|
||||
- MilkDrop3 can capture audio from Spotify, YouTube, VLC, etc.
|
||||
- Make sure audio is playing before starting visualizations
|
||||
|
||||
3. **Configure in Wine**:
|
||||
```bash
|
||||
winecfg
|
||||
```
|
||||
Go to the Audio tab and ensure PulseAudio is selected.
|
||||
|
||||
## Keyboard Shortcuts (Essential for Linux)
|
||||
|
||||
Since menu text may be glitchy, here are the essential shortcuts:
|
||||
|
||||
- **F1**: Help menu (toggle)
|
||||
- **F2**: Toggle FPS (60/90/120 fps)
|
||||
- **F3**: Change auto-transition time
|
||||
- **F7**: Toggle always on top / borderless mode
|
||||
- **F8**: Beat detection mode
|
||||
- **F9**: Double-preset mode
|
||||
- **L**: Load preset
|
||||
- **M**: Mash-up presets
|
||||
- **Spacebar**: Next transition
|
||||
- **A**: Random preset
|
||||
- **Shift+A**: Previous preset
|
||||
- **C**: Randomize colors
|
||||
- **Escape**: Exit
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Application Won't Start
|
||||
```bash
|
||||
# Check Wine is working
|
||||
wine --version
|
||||
|
||||
# Reinstall dependencies
|
||||
winetricks -q --force d3dx9 vcrun2019
|
||||
|
||||
# Try running with more verbose output
|
||||
WINEDEBUG=+d3d wine "MilkDrop 3.exe"
|
||||
```
|
||||
|
||||
### Crashes on Startup
|
||||
- Ensure you're using the Linux-compatible executable
|
||||
- Check that DirectX 9 libraries are installed
|
||||
- Try running with a 32-bit Wine prefix:
|
||||
```bash
|
||||
WINEARCH=win32 WINEPREFIX=~/.wine32 winetricks d3dx9 vcrun2019
|
||||
```
|
||||
|
||||
### No Visualizations Appearing
|
||||
- Ensure audio is playing
|
||||
- Check audio input in Windows sound settings (via `winecfg`)
|
||||
- Try running a music player first, then launch MilkDrop3
|
||||
|
||||
## Performance Optimization
|
||||
|
||||
### Environment Variables
|
||||
```bash
|
||||
# Enable Wine Staging shared memory (better performance)
|
||||
export STAGING_SHARED_MEMORY=1
|
||||
|
||||
# Force OpenGL version
|
||||
export MESA_GL_VERSION_OVERRIDE=4.5
|
||||
|
||||
# Run MilkDrop3
|
||||
wine "MilkDrop 3.exe"
|
||||
```
|
||||
|
||||
### Graphics Settings
|
||||
In MilkDrop3:
|
||||
- Lower resolution if needed (in settings.ini)
|
||||
- Reduce FPS with F2 if experiencing lag
|
||||
- Disable complex effects if GPU struggles
|
||||
|
||||
## Advanced: Desktop Entry (Optional)
|
||||
|
||||
Create a desktop launcher at `~/.local/share/applications/milkdrop3.desktop`:
|
||||
|
||||
```desktop
|
||||
[Desktop Entry]
|
||||
Name=MilkDrop3
|
||||
Comment=Music Visualization
|
||||
Exec=bash -c 'cd ~/.wine/drive_c/users/$USER/Desktop/"MilkDrop 3.31/" && wine "MilkDrop 3.exe"'
|
||||
Icon=applications-multimedia
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=AudioVideo;Audio;
|
||||
```
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- **Official Repository**: https://github.com/milkdrop2077/MilkDrop3
|
||||
- **Preset Collections**: Located in `Milkdrop3/presets/`
|
||||
- **Creating Presets**: Press F9 then Spacebar for double-presets
|
||||
- **WineHQ**: https://www.winehq.org/ for Wine documentation
|
||||
|
||||
## Credits
|
||||
|
||||
- **MilkDrop3**: Created by MilkDrop2077
|
||||
- **Original MilkDrop**: Ryan Geiss
|
||||
- **BeatDrop**: Maxim Volskiy
|
||||
|
||||
## Support the Project
|
||||
|
||||
If you enjoy MilkDrop3, consider supporting the developer:
|
||||
- Patreon: https://www.patreon.com/MilkDrop3
|
||||
- Buy Me a Coffee: https://www.buymeacoffee.com/MilkDrop2077/
|
||||
|
||||
---
|
||||
|
||||
## Quick Start Summary
|
||||
|
||||
```bash
|
||||
# 1. Install Wine and winetricks
|
||||
sudo pacman -S wine winetricks # Adjust command for your distro
|
||||
|
||||
# 2. Install Windows dependencies (takes 5-10 minutes)
|
||||
winetricks -q d3dx9 vcrun2019
|
||||
|
||||
# 3. Download and install MilkDrop3
|
||||
wget -O MilkDrop3.exe "https://github.com/milkdrop2077/MilkDrop3/releases/download/MilkDrop3/MilkDrop3.exe"
|
||||
wine MilkDrop3.exe
|
||||
|
||||
# 4. Replace with Linux-compatible executable
|
||||
cd ~/.wine/drive_c/users/$USER/Desktop/"MilkDrop 3.31"/
|
||||
wget -O "MilkDrop 3.exe" "https://raw.githubusercontent.com/milkdrop2077/MilkDrop3/main/linux/MilkDrop%203%20linux.exe"
|
||||
|
||||
# 5. Download and run the launcher script
|
||||
cd ~
|
||||
wget -O milkdrop3-launcher.sh "https://raw.githubusercontent.com/milkdrop2077/MilkDrop3/main/milkdrop3-launcher.sh"
|
||||
chmod +x milkdrop3-launcher.sh
|
||||
./milkdrop3-launcher.sh
|
||||
```
|
||||
|
||||
**Enjoy the visualizations!** 🎵🎨
|
||||
47
milkdrop3-launcher.sh
Executable file
47
milkdrop3-launcher.sh
Executable file
@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
# MilkDrop3 Launcher for Linux
|
||||
# This script launches MilkDrop3 under Wine with optimized settings
|
||||
|
||||
# Set Wine environment variables for better performance
|
||||
export STAGING_SHARED_MEMORY=1
|
||||
export WINEPREFIX="${WINEPREFIX:-$HOME/.wine}"
|
||||
|
||||
# MilkDrop3 installation directory
|
||||
MILKDROP_DIR="$WINEPREFIX/drive_c/users/$USER/Desktop/MilkDrop 3.31"
|
||||
MILKDROP_EXE="MilkDrop 3.exe"
|
||||
|
||||
# Check if MilkDrop3 is installed
|
||||
if [ ! -d "$MILKDROP_DIR" ]; then
|
||||
echo "ERROR: MilkDrop3 not found at: $MILKDROP_DIR"
|
||||
echo "Please run the installer first. See LINUX_SETUP_GUIDE.md for instructions."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$MILKDROP_DIR/$MILKDROP_EXE" ]; then
|
||||
echo "ERROR: MilkDrop 3.exe not found!"
|
||||
echo "Make sure you've replaced it with the Linux-compatible version."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Starting MilkDrop3..."
|
||||
echo "Installation directory: $MILKDROP_DIR"
|
||||
echo ""
|
||||
echo "Keyboard shortcuts:"
|
||||
echo " F1 - Help menu"
|
||||
echo " F2 - Toggle FPS"
|
||||
echo " F7 - Toggle always on top"
|
||||
echo " L - Load preset"
|
||||
echo " ESC - Exit"
|
||||
echo ""
|
||||
|
||||
# Change to MilkDrop directory and launch
|
||||
cd "$MILKDROP_DIR" || exit 1
|
||||
|
||||
# Suppress Wine debug output (comment out for troubleshooting)
|
||||
wine "$MILKDROP_EXE" 2>/dev/null &
|
||||
|
||||
# Alternative: Show debug output (uncomment for troubleshooting)
|
||||
# wine "$MILKDROP_EXE" &
|
||||
|
||||
echo "MilkDrop3 launched! (PID: $!)"
|
||||
echo "Close this terminal or press Ctrl+C to keep it running in background."
|
||||
Loading…
x
Reference in New Issue
Block a user