# alphablueofficial/eql-audio-crash-workaround architecture

> Architecture diagram of the GitHub repository alphablueofficial/eql-audio-crash-workaround, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/alphablueofficial/eql-audio-crash-workaround
- Repository: https://github.com/alphablueofficial/eql-audio-crash-workaround

## Overview

This is a per-launch Windows workaround for a narrowly identified EverQuest Legends audio startup crash. The user runs a launcher, selects the official LaunchPad if needed, approves elevation, then starts the game normally after the workaround signals readiness. The PowerShell phase temporarily changes Windows MIDI configuration, monitors the launch, and restores and verifies the original state; a separate emergency entry point handles recovery. Relationships reflect the README; source excerpts were unavailable.

Main entry points: [`EQL-Audio-Fix.ps1`](https://github.com/alphablueofficial/eql-audio-crash-workaround/blob/main/EQL-Audio-Fix.ps1) (PowerShell workaround), [`Launch EQL Audio Fix.cmd`](https://github.com/alphablueofficial/eql-audio-crash-workaround/blob/main/Launch%20EQL%20Audio%20Fix.cmd) (Launch button), [`Emergency Restore Windows MIDI.cmd`](https://github.com/alphablueofficial/eql-audio-crash-workaround/blob/main/Emergency%20Restore%20Windows%20MIDI.cmd) (Emergency restore)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Launch and recovery"]
  node_launch["Launch button"]
  node_emergency["Emergency restore"]
end

subgraph group_runtime["Workaround runtime"]
  node_script["PowerShell workaround<br/>[EQL-Audio-Fix.ps1]"]
  node_watchdog["Restoration watchdog<br/>[EQL-Audio-Fix.ps1]"]
end

subgraph group_state["MIDI and transaction state"]
  node_registry[("Windows MIDI registry")]
  node_transactions[("Recovery transactions")]
end

node_user(("Player"))
node_picker["File picker"]
node_launchpad["Official LaunchPad"]
node_game["EverQuest Legends"]
node_midi["MIDI output devices"]

node_user -->|"runs"| node_launch
node_launch -->|"starts"| node_script
node_script -.->|"requests selection"| node_picker
node_user -.->|"selects launcher"| node_picker
node_script -->|"opens after ready"| node_launchpad
node_user -->|"clicks Play"| node_launchpad
node_launchpad -->|"starts"| node_game
node_script -->|"temporarily changes"| node_registry
node_script -->|"enumerates and verifies"| node_midi
node_script -->|"saves baseline"| node_transactions
node_script -->|"arms"| node_watchdog
node_watchdog -->|"restores"| node_registry
node_watchdog -->|"verifies baseline"| node_midi
node_user -.->|"runs if needed"| node_emergency
node_emergency -.->|"requests recovery"| node_script
node_script -.->|"validates recovery record"| node_transactions
node_script -.->|"restores on recovery"| node_registry

click node_launch "https://github.com/alphablueofficial/eql-audio-crash-workaround/blob/main/Launch%20EQL%20Audio%20Fix.cmd"
click node_emergency "https://github.com/alphablueofficial/eql-audio-crash-workaround/blob/main/Emergency%20Restore%20Windows%20MIDI.cmd"
click node_script "https://github.com/alphablueofficial/eql-audio-crash-workaround/blob/main/EQL-Audio-Fix.ps1"
click node_watchdog "https://github.com/alphablueofficial/eql-audio-crash-workaround/blob/main/EQL-Audio-Fix.ps1"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_launch,node_emergency toneBlue
class node_script,node_watchdog toneAmber
class node_registry,node_transactions toneMint
class node_user,node_picker,node_launchpad,node_game,node_midi toneIndigo
```

## Components

### Launch and recovery

- [Launch button](https://github.com/alphablueofficial/eql-audio-crash-workaround/blob/main/Launch%20EQL%20Audio%20Fix.cmd): `Launch EQL Audio Fix.cmd`
- [Emergency restore](https://github.com/alphablueofficial/eql-audio-crash-workaround/blob/main/Emergency%20Restore%20Windows%20MIDI.cmd): `Emergency Restore Windows MIDI.cmd`

### Workaround runtime

- [PowerShell workaround](https://github.com/alphablueofficial/eql-audio-crash-workaround/blob/main/EQL-Audio-Fix.ps1): `EQL-Audio-Fix.ps1`
- [Restoration watchdog](https://github.com/alphablueofficial/eql-audio-crash-workaround/blob/main/EQL-Audio-Fix.ps1): `EQL-Audio-Fix.ps1`

### MIDI and transaction state

- **Windows MIDI registry**
- **Recovery transactions**

### Other components

- **Player**
- **File picker**
- **Official LaunchPad**
- **EverQuest Legends**
- **MIDI output devices**

## Connections

- Player → Launch button: runs
- Launch button → PowerShell workaround: starts
- PowerShell workaround → File picker: requests selection
- Player → File picker: selects launcher
- PowerShell workaround → Official LaunchPad: opens after ready
- Player → Official LaunchPad: clicks Play
- Official LaunchPad → EverQuest Legends: starts
- PowerShell workaround → Windows MIDI registry: temporarily changes
- PowerShell workaround → MIDI output devices: enumerates and verifies
- PowerShell workaround → Recovery transactions: saves baseline
- PowerShell workaround → Restoration watchdog: arms
- Restoration watchdog → Windows MIDI registry: restores
- Restoration watchdog → MIDI output devices: verifies baseline
- Player → Emergency restore: runs if needed
- Emergency restore → PowerShell workaround: requests recovery
- PowerShell workaround → Recovery transactions: validates recovery record
- PowerShell workaround → Windows MIDI registry: restores on recovery
