Skip to content

Synthesizer-repair/emxp-nix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EMXP // NIX

machines : E-mu.  EMAX I/II.  Emulator II/III/IIIX.  ESI.  SP-12/1200,
          plus Oberheim DPX-1
payload : EMXP by E-Synthesist (emxp.net).  win32 console binary.
carrier : Wine.  classic WoW64.  pinned.  nix builds the cage.

Cold storage for warm samplers.

WHY?

emxpn.exe is not DOS. It is PE32, i386 — a Windows console program. Windows is a 40 year tire fire. DOSBox is the wrong tool. Wine, the right one.

Run it attached to a Linux terminal and ESC arrives as an escape sequence — mangled, late, wrong. Run it in Wine's own console window and ESC arrives as VK_ESCAPE, a key event, the way it did on the XP box it was written for. The launcher forces the second mode. The whole trick is:

wine start /wait /unix emxpn.exe

The binary is 32-bit, so the prefix is win32. Upstream Wine is retiring classic WoW64; nixpkgs follows. This flake pins nixos-25.05, where the old build still breathes. The lockfile is the headstone — nothing moves unless you move it. Everything is wrapped: this Wine never enters your profile, never collides with the Wine you already run.

DEPLOY

Anywhere nix exists. Requirements: x86_64-linux, a graphical session, flakes enabled.

nix run github:Synthesizer-repair/emxp-nix                # transient
nix profile install github:Synthesizer-repair/emxp-nix    # resident
nix build .#                                              # artifact

home-manager:

inputs.emxp-nix.url = "github:Synthesizer-repair/emxp-nix";
# ...
home.packages = [ inputs.emxp-nix.packages.x86_64-linux.defiault ];

NixOS, system-wide:

imports = [ inputs.emxp-nix.nixosModules.default ];
users.users.<you>.extraGroups = [ "disk" ];   # raw media access, no sudo

The proprietary emxpn.exe is not shipped and never will be. Get it from emxp.net. Run emxp from the directory containing it, or export EMXP_EXE=/path/to/emxpn.exe. It is copied once into a dedicated prefix (~/.local/share/emxp/prefix) and lives there.

OPERATE

emxp                          the program. opens its own console window.
                              keyboard only. no mouse. as intended.
emxp -NOSIZING -SCREENREFRESH basic console mode, when the screen lies.

Host filesystem is visible inside EMXP as drive Z:. State persists in the prefix. Delete ~/.local/share/emxp to reset.

MEDIA

Sampler disks do not mount. They get imaged. This is the vendor-sanctioned procedure: image the media, operate on the image, write it back.

emxp-image list                          # identify the target
emxp-image read  /dev/sdX bank.iso       # media -> image. read-only on source.
# ... open bank.iso in EMXP, via Z: ...
emxp-image write bank.iso /dev/sdX       # image -> media. DESTRUCTIVE.

write makes you type the device path back. It means it.

emxp-map /dev/sdX g                      # device straight into the prefix as G:
emxp-map unmap g

emxp-map is direct passthrough — Linux only, unsupported by the vendor, works when it works. If the Disk Manager stays silent, image.

Raw block access requires the disk group or sudo. Floppies, SCSI2SD, CF, CD-ROM: all the same to ddrescue.

PIN

The dependency chain:

emxpn.exe
  -> win32 prefix
  -> classic WoW64 Wine
  -> nixos-25.05 (lockfile-frozen)

nix flake update walks the pin forward along 25.05. Do it deliberately. Test EMXP after.

Exit strategy: new-WoW64 runs 32-bit code in a win64 prefix. When classic WoW64 is gone everywhere, set wine = pkgs.wineWow64Packages.stable and wineArch = "win64" in flake.nix this should work, but untested. Until then: the published pin holds.

LICENSE

Glue (scripts, flake): MIT. See LICENSE. emxpn.exe: © E-Synthesist. Not included. Not redistributed. Respect the disclaimer in the reference manual before touching irreplaceable media.

EOF // no warranty. Remember, backups are not optional!

About

Run the classic E-mu Systems sampler data tool EMXP (emxp.net) anywhere!

Topics

Resources

License

Stars

Watchers

Forks

Contributors