Automated Linux setup for MDK2 (OEM CD release) using Ansible and shell scripting
- Jinja 60.1%
- Shell 25.5%
- Lua 14.4%
- README.md: comprehensive overview with quick start, status table, launch stack, tested config, and repo structure - docs/README.md: better doc index with descriptions and quick ref - installation.md: updated to 24 tasks, controls fix, custom key bindings, improved status table - troubleshooting.md: added controls menu Lua error, key bindings not applied, reorganized for clarity - system-requirements.md: tabular dependency listing, expanded display requirements - contributing.md: updated to 24 tasks/checks, added key bindings modification guide, improved conventions section - AGENTS.md: consistent with docs, up-to-date structure All docs now reference 24 tasks / 24 checks consistently. |
||
|---|---|---|
| ansible | ||
| docs | ||
| scripts | ||
| .gitignore | ||
| AGENTS.md | ||
| README.md | ||
MDK2 — Linux Setup
Automated setup for running MDK2 (OEM CD release) on modern Linux using Ansible and shell scripting. Tested on CachyOS + Hyprland + NVIDIA Optimus.
Quick Start
# 1. Place MDK2OEM.ISO in the repo root, then run:
ansible-playbook ansible/playbooks/setup-mdk2.yml -K
# 2. Verify everything is correct
bash scripts/verify-setup.sh
# 3. Play
~/Games/mdk2.sh
Documentation
| Document | Description |
|---|---|
| Installation Guide | Full setup, how it works, current status |
| Troubleshooting | Solutions to known issues |
| System Requirements | Hardware, software, dependencies |
| Contributing | Development guidelines |
Current Status
All known issues are resolved. The game is fully playable.
| Feature | Status |
|---|---|
| Launch and fullscreen | ✓ gamescope, auto-detected resolution |
| Rendering | ✓ OpenGL via XWayland, X11 driver forced |
| V-sync and framerate | ✓ 60 FPS cap via gamescope |
| Video settings menu | ✓ patched options.lua in override/ |
| Controls menu (key bindings) | ✓ full original options.lua restored |
| Custom default keys | ✓ user-configured keys.lua deployed |
| Speech audio | ✓ local.zip from language directory |
| Music and sound effects | ✓ ACM files + sounds.zip |
| Desktop shortcut and icon | ✓ extracted from MDK2.exe |
| Verification suite | ✓ 24 automated checks |
Launch Stack
mdk2Main.exe → Wine X11 driver → XWayland → gamescope → Hyprland
(1280x720) (GLX/OpenGL) (X11) (upscaled to (Wayland)
1920x1080@60fps)
Tested Configuration
| Component | Detail |
|---|---|
| Laptop | ThinkPad T480 |
| OS | CachyOS, kernel 7.0.9-1-cachyos |
| GPU | NVIDIA GeForce MX150 (driver 580.159.04) |
| Display | Hyprland + XWayland |
| Wine | 11.11 (X11 driver) |
| Game | OEM CD release 1.0.0 (v.4000.1) |
Repository Structure
├── MDK2OEM.ISO User-provided CD image (not committed)
├── ansible/ Ansible playbooks and roles
│ └── roles/mdk2/
│ ├── files/keys.lua Custom default key bindings
│ ├── templates/options.lua.j2 Patched options (dx=0 fix)
│ ├── templates/mdk2.sh.j2 gamescope + wine launcher
│ └── templates/mdk2.desktop.j2
├── scripts/ Shell utilities (extract, setup, verify)
├── docs/ Documentation
└── AGENTS.md AI agent reference
License
MIT