Automated Linux setup for MDK2 (OEM CD release) using Ansible and shell scripting
  • Jinja 60.1%
  • Shell 25.5%
  • Lua 14.4%
Find a file
Fredrick Amnehagen 6308f117ea Overhaul documentation: README as entry point, all docs improved and consistent
- 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.
2026-06-22 07:19:32 +02:00
ansible Package custom key bindings as default controls config 2026-06-21 23:44:25 +02:00
docs Overhaul documentation: README as entry point, all docs improved and consistent 2026-06-22 07:19:32 +02:00
scripts Package custom key bindings as default controls config 2026-06-21 23:44:25 +02:00
.gitignore Initial commit: Automated Linux setup for MDK2 (OEM CD) 2026-06-21 23:28:39 +02:00
AGENTS.md Overhaul documentation: README as entry point, all docs improved and consistent 2026-06-22 07:19:32 +02:00
README.md Overhaul documentation: README as entry point, all docs improved and consistent 2026-06-22 07:19:32 +02:00

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